[silo-llnl] 01/01: Upstream 4.10.2

Alastair McKinstry mckinstry at moszumanska.debian.org
Tue Jul 21 13:09:57 UTC 2015


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

mckinstry pushed a commit to tag upstream_4.10.2
in repository silo-llnl.

commit dfb6e208617038d1441cff72b9e0190843b05f8b
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Fri Dec 12 15:12:57 2014 +0000

    Upstream 4.10.2
---
 BSD_LICENSE_README                                 |    2 +-
 Makefile.am                                        |    9 +-
 Makefile.in                                        |   15 +-
 .../{MSVC2010 => MSVC2012}/BaseIncludes.props      |    0
 SiloWindows/{MSVC2010 => MSVC2012}/DepLibs.props   |   28 +-
 .../{MSVC2010 => MSVC2012}/HDF5_Defines.props      |    2 +-
 .../{MSVC2010 => MSVC2012}/ModernDTPR.props        |    0
 SiloWindows/MSVC2012/NON_BSD_DEFINES.props         |   13 +
 .../{MSVC2010 => MSVC2012}/NO_SEC_DEP.props        |    0
 .../{MSVC2010 => MSVC2012}/QT_Defines.props        |    0
 SiloWindows/{MSVC2010 => MSVC2012}/Silo.sln        |   26 +-
 SiloWindows/{MSVC2010 => MSVC2012}/Silo.vcxproj    |  104 +-
 .../{MSVC2010 => MSVC2012}/Silo.vcxproj.filters    |  186 ++
 .../Tests/CopyTestDependencies.bat                 |   27 +-
 SiloWindows/MSVC2012/Tests/Preparation.vcxproj     |  123 +
 SiloWindows/MSVC2012/Tests/TestIncludes.props      |   15 +
 SiloWindows/MSVC2012/Tests/TestReadMask.vcxproj    |  257 ++
 SiloWindows/{MSVC9 => MSVC2012}/Tests/Tests.sln    |  335 ++-
 SiloWindows/MSVC2012/Tests/alltypes.vcxproj        |  257 ++
 SiloWindows/MSVC2012/Tests/arbpoly.vcxproj         |  257 ++
 SiloWindows/MSVC2012/Tests/arbpoly3d.vcxproj       |  257 ++
 SiloWindows/MSVC2012/Tests/array.vcxproj           |  257 ++
 SiloWindows/MSVC2012/Tests/array_f.vfproj          |   52 +
 SiloWindows/MSVC2012/Tests/compression.vcxproj     |  257 ++
 SiloWindows/MSVC2012/Tests/csg.vcxproj             |  257 ++
 SiloWindows/MSVC2012/Tests/csgmesh_f.vfproj        |   52 +
 SiloWindows/MSVC2012/Tests/curve_f.vfproj          |   52 +
 SiloWindows/MSVC2012/Tests/dirtest.vcxproj         |  258 ++
 SiloWindows/MSVC2012/Tests/empty.vcxproj           |  257 ++
 SiloWindows/MSVC2012/Tests/extface.vcxproj         |  257 ++
 SiloWindows/MSVC2012/Tests/grab.vcxproj            |  265 ++
 SiloWindows/MSVC2012/Tests/group_test.vcxproj      |  257 ++
 SiloWindows/MSVC2012/Tests/largefile.vcxproj       |  257 ++
 SiloWindows/MSVC2012/Tests/listtypes.vcxproj       |  266 ++
 SiloWindows/MSVC2012/Tests/mat3d_3across.vcxproj   |  257 ++
 SiloWindows/MSVC2012/Tests/mat_f.vfproj            |   52 +
 SiloWindows/MSVC2012/Tests/merge_block.vcxproj     |  257 ++
 SiloWindows/MSVC2012/Tests/mmadjacency.vcxproj     |  257 ++
 SiloWindows/MSVC2012/Tests/multi_file.vcxproj      |  257 ++
 SiloWindows/MSVC2012/Tests/multi_test.vcxproj      |  256 ++
 SiloWindows/MSVC2012/Tests/multispec.vcxproj       |  257 ++
 SiloWindows/MSVC2012/Tests/namescheme.vcxproj      |  257 ++
 SiloWindows/MSVC2012/Tests/obj.vcxproj             |  257 ++
 SiloWindows/MSVC2012/Tests/onehex.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/oneprism.vcxproj        |  257 ++
 SiloWindows/MSVC2012/Tests/onepyramid.vcxproj      |  257 ++
 SiloWindows/MSVC2012/Tests/onetet.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/partial_io.vcxproj      |  257 ++
 SiloWindows/MSVC2012/Tests/point.vcxproj           |  257 ++
 SiloWindows/MSVC2012/Tests/point_f.vfproj          |   52 +
 SiloWindows/MSVC2012/Tests/polyzl.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/quad.vcxproj            |  258 ++
 SiloWindows/MSVC2012/Tests/quad_f.vfproj           |   52 +
 SiloWindows/MSVC2012/Tests/sami.vcxproj            |  265 ++
 SiloWindows/MSVC2012/Tests/simple.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/spec.vcxproj            |  257 ++
 SiloWindows/MSVC2012/Tests/specmix.vcxproj         |  257 ++
 SiloWindows/MSVC2012/Tests/subhex.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/testall.vcxproj         |  257 ++
 SiloWindows/MSVC2012/Tests/testall_f.vfproj        |   52 +
 SiloWindows/MSVC2012/Tests/testfs.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/testpdb.vcxproj         |  257 ++
 SiloWindows/MSVC2012/Tests/twohex.vcxproj          |  257 ++
 SiloWindows/MSVC2012/Tests/ucd.vcxproj             |  257 ++
 SiloWindows/MSVC2012/Tests/ucd1d.vcxproj           |  257 ++
 SiloWindows/MSVC2012/Tests/ucd_f.vfproj            |   52 +
 SiloWindows/MSVC2012/Tests/ucdsamp3.vcxproj        |  257 ++
 SiloWindows/MSVC2012/Tests/version.vcxproj         |  257 ++
 SiloWindows/MSVC2012/Tests/wave.vcxproj            |  257 ++
 SiloWindows/{MSVC9 => MSVC2012}/bin/RunTests.bat   |   25 +-
 SiloWindows/{MSVC2010 => MSVC2012}/browser.vcxproj |   20 +-
 .../{MSVC2010 => MSVC2012}/browser.vcxproj.filters |    0
 .../pdb_detect/pdb_detect.vcxproj                  |    4 +-
 .../pdb_detect/pdb_detect.vcxproj.filters          |    0
 SiloWindows/{MSVC2010 => MSVC2012}/silex.vcxproj   |   34 +-
 .../{MSVC2010 => MSVC2012}/silex.vcxproj.filters   |    0
 SiloWindows/MSVC9/BaseIncludes.vsprops             |   12 -
 SiloWindows/MSVC9/DepLibs.vsprops                  |   59 -
 SiloWindows/MSVC9/HDF5_Defines.vsprops             |   11 -
 SiloWindows/MSVC9/ModernDTPR.vsprops               |   11 -
 SiloWindows/MSVC9/NO_SEC_DEP.vsprops               |   11 -
 SiloWindows/MSVC9/QT_Defines.vsprops               |   16 -
 SiloWindows/MSVC9/Silo.vcproj                      |  570 ----
 SiloWindows/MSVC9/SiloWindows.sln                  |   64 -
 SiloWindows/MSVC9/Tests/Preparation.vcproj         |  121 -
 SiloWindows/MSVC9/Tests/TestIncludes.vsprops       |   11 -
 SiloWindows/MSVC9/Tests/TestReadMask.vcproj        |  399 ---
 SiloWindows/MSVC9/Tests/alltypes.vcproj            |  400 ---
 SiloWindows/MSVC9/Tests/arbpoly.vcproj             |  399 ---
 SiloWindows/MSVC9/Tests/arbpoly3d.vcproj           |  399 ---
 SiloWindows/MSVC9/Tests/array.vcproj               |  399 ---
 SiloWindows/MSVC9/Tests/array_f.vfproj             |   52 -
 SiloWindows/MSVC9/Tests/compression.vcproj         |  399 ---
 SiloWindows/MSVC9/Tests/csg.vcproj                 |  399 ---
 SiloWindows/MSVC9/Tests/curve_f.vfproj             |   52 -
 SiloWindows/MSVC9/Tests/dirtest.vcproj             |  403 ---
 SiloWindows/MSVC9/Tests/empty.vcproj               |  399 ---
 SiloWindows/MSVC9/Tests/extface.vcproj             |  399 ---
 SiloWindows/MSVC9/Tests/grab.vcproj                |  399 ---
 SiloWindows/MSVC9/Tests/group_test.vcproj          |  399 ---
 SiloWindows/MSVC9/Tests/largefile.vcproj           |  399 ---
 SiloWindows/MSVC9/Tests/listtypes.vcproj           |  399 ---
 SiloWindows/MSVC9/Tests/mat3d_3across.vcproj       |  399 ---
 SiloWindows/MSVC9/Tests/mat_f.vfproj               |   52 -
 SiloWindows/MSVC9/Tests/merge_block.vcproj         |  399 ---
 SiloWindows/MSVC9/Tests/mmadjacency.vcproj         |  399 ---
 SiloWindows/MSVC9/Tests/multi_file.vcproj          |  399 ---
 SiloWindows/MSVC9/Tests/multi_test.vcproj          |  399 ---
 SiloWindows/MSVC9/Tests/multispec.vcproj           |  399 ---
 SiloWindows/MSVC9/Tests/namescheme.vcproj          |  399 ---
 SiloWindows/MSVC9/Tests/obj.vcproj                 |  399 ---
 SiloWindows/MSVC9/Tests/onehex.vcproj              |  399 ---
 SiloWindows/MSVC9/Tests/oneprism.vcproj            |  399 ---
 SiloWindows/MSVC9/Tests/onepyramid.vcproj          |  399 ---
 SiloWindows/MSVC9/Tests/onetet.vcproj              |  399 ---
 SiloWindows/MSVC9/Tests/partial_io.vcproj          |  399 ---
 SiloWindows/MSVC9/Tests/point.vcproj               |  399 ---
 SiloWindows/MSVC9/Tests/point_f.vfproj             |   52 -
 SiloWindows/MSVC9/Tests/polyzl.vcproj              |  399 ---
 SiloWindows/MSVC9/Tests/quad.vcproj                |  403 ---
 SiloWindows/MSVC9/Tests/quad_f.vfproj              |   52 -
 SiloWindows/MSVC9/Tests/sami.vcproj                |  399 ---
 SiloWindows/MSVC9/Tests/simple.vcproj              |  399 ---
 SiloWindows/MSVC9/Tests/spec.vcproj                |  399 ---
 SiloWindows/MSVC9/Tests/specmix.vcproj             |  399 ---
 SiloWindows/MSVC9/Tests/subhex.vcproj              |  399 ---
 SiloWindows/MSVC9/Tests/testall.vcproj             |  399 ---
 SiloWindows/MSVC9/Tests/testall_f.vfproj           |   52 -
 SiloWindows/MSVC9/Tests/testpdb.vcproj             |  399 ---
 SiloWindows/MSVC9/Tests/twohex.vcproj              |  399 ---
 SiloWindows/MSVC9/Tests/ucd.vcproj                 |  399 ---
 SiloWindows/MSVC9/Tests/ucd1d.vcproj               |  399 ---
 SiloWindows/MSVC9/Tests/ucd_f.vfproj               |   52 -
 SiloWindows/MSVC9/Tests/ucdsamp3.vcproj            |  399 ---
 SiloWindows/MSVC9/Tests/version.vcproj             |  399 ---
 SiloWindows/MSVC9/Tests/wave.vcproj                |  399 ---
 SiloWindows/MSVC9/browser.vcproj                   |  481 ----
 SiloWindows/MSVC9/pdb_detect/pdb_detect.vcproj     |  200 --
 SiloWindows/MSVC9/silex.vcproj                     |  480 ----
 SiloWindows/Makefile                               |  343 +--
 SiloWindows/Makefile.am                            |  260 +-
 SiloWindows/Makefile.in                            |  263 +-
 SiloWindows/include/config.h                       |    2 +-
 VERSION                                            |    2 +-
 config-site/Makefile.in                            |    4 +-
 config/Makefile.in                                 |    4 +-
 config/ax_have_qt.m4                               |    8 +-
 config/config.h.in                                 |    3 +
 config/mkinc                                       |  228 +-
 configure                                          |  198 +-
 configure.ac                                       |  303 +--
 docs/Chapter1.fm                                   |  Bin 98304 -> 98304 bytes
 docs/Chapter2-man_pages.fm                         |  Bin 851968 -> 886784 bytes
 docs/Chapter2-start.fm                             |  Bin 36864 -> 35840 bytes
 docs/Cover.fm                                      |  Bin 101376 -> 110592 bytes
 docs/Makefile.in                                   |    4 +-
 docs/Silo.book.fm                                  |  Bin 26624 -> 26624 bytes
 docs/Silo.book.pdf                                 |  Bin 4066727 -> 2986140 bytes
 docs/Silo.bookLOP.fm                               |  Bin 126976 -> 126976 bytes
 docs/silo.h.fm                                     |  Bin 190464 -> 188416 bytes
 src/Makefile.am                                    |    8 +-
 src/Makefile.in                                    |   11 +-
 src/debug/Makefile.in                              |    4 +-
 src/debug/silo_debug.c                             |   20 +-
 src/debug/silo_debug_private.h                     |   19 +-
 src/filters/Makefile.in                            |    4 +-
 src/filters/f_ale3d.c                              |   17 +-
 src/filters/f_sample.c                             |   45 +-
 {tools/python => src/fpzip}/Makefile.am            |   58 +-
 src/{debug => fpzip}/Makefile.in                   |  139 +-
 src/fpzip/codec.h                                  |   32 +
 src/fpzip/error.cpp                                |   17 +
 src/fpzip/fpe.h                                    |   60 +
 src/fpzip/fpe.inl                                  |   61 +
 src/fpzip/fpzip.h                                  |  218 ++
 src/fpzip/front.h                                  |   50 +
 src/fpzip/pccodec.h                                |   14 +
 src/fpzip/pccodec.inl                              |   15 +
 src/fpzip/pcdecoder.h                              |   24 +
 src/fpzip/pcdecoder.inl                            |   67 +
 src/fpzip/pcencoder.h                              |   23 +
 src/fpzip/pcencoder.inl                            |   71 +
 src/fpzip/pcmap.h                                  |   68 +
 src/fpzip/pcmap.inl                                |  137 +
 src/fpzip/rcdecoder.cpp                            |   72 +
 src/fpzip/rcdecoder.h                              |   50 +
 src/fpzip/rcdecoder.inl                            |   39 +
 src/fpzip/rcencoder.cpp                            |   65 +
 src/fpzip/rcencoder.h                              |   50 +
 src/fpzip/rcencoder.inl                            |   40 +
 src/fpzip/rcmodel.h                                |   23 +
 src/fpzip/rcqsmodel.cpp                            |  125 +
 src/fpzip/rcqsmodel.h                              |   49 +
 src/fpzip/rcqsmodel.inl                            |   12 +
 src/fpzip/read.cpp                                 |  354 +++
 src/fpzip/read.h                                   |   66 +
 src/fpzip/write.cpp                                |  339 +++
 src/fpzip/write.h                                  |   77 +
 src/hdf5_drv/H5FDsilo.c                            |    2 +-
 src/hdf5_drv/Makefile.in                           |    4 +-
 src/hdf5_drv/silo_hdf5.c                           | 2523 ++++++++++++------
 src/hdf5_drv/silo_hdf5_private.h                   |  329 ++-
 {tools/python => src/hzip}/Makefile.am             |   56 +-
 src/{filters => hzip}/Makefile.in                  |  147 +-
 src/hzip/bitvector.h                               |   44 +
 src/hzip/hzio.h                                    |   22 +
 src/hzip/hzio.inl                                  |   36 +
 src/hzip/hzip.h                                    |  353 +++
 src/hzip/hzmap.h                                   |  140 +
 src/hzip/hzmcodec.h                                |   40 +
 src/hzip/hzmcodec.inl                              |   31 +
 src/hzip/hzmdecoder.cpp                            |   33 +
 src/hzip/hzmdecoder.h                              |   20 +
 src/hzip/hzmencoder.cpp                            |   39 +
 src/hzip/hzmencoder.h                              |   23 +
 src/hzip/hzmio.cpp                                 |   69 +
 src/hzip/hzmio.h                                   |   25 +
 src/hzip/hzmpredictor.cpp                          |   80 +
 src/hzip/hzmpredictor.h                            |   35 +
 src/hzip/hzmread.cpp                               |  106 +
 src/hzip/hzmwrite.cpp                              |  137 +
 src/hzip/hzncodec.h                                |   41 +
 src/hzip/hzncodec.inl                              |   26 +
 src/hzip/hzndecoder.h                              |   31 +
 src/hzip/hzndecoder.inl                            |   39 +
 src/hzip/hznencoder.h                              |   34 +
 src/hzip/hznencoder.inl                            |   48 +
 src/hzip/hznio.cpp                                 |  114 +
 src/hzip/hznio.h                                   |   33 +
 src/hzip/hznpredictor.cpp                          |  134 +
 src/hzip/hznpredictor.h                            |   20 +
 src/hzip/hznpredictor.inl                          |   25 +
 src/hzip/hznread.cpp                               |  148 ++
 src/hzip/hznwrite.cpp                              |  173 ++
 src/hzip/hzresidual.h                              |   59 +
 src/hzip/hzresidual.inl                            |   45 +
 src/hzip/hzutil.cpp                                |   48 +
 src/hzip/ibstream.h                                |  245 ++
 src/hzip/obstream.h                                |  206 ++
 src/netcdf/Makefile.in                             |    4 +-
 src/netcdf/api.c                                   |    8 +-
 src/netcdf/ent.c                                   |    4 +-
 src/netcdf/netcdf.c                                |    2 +-
 src/netcdf/silo_netcdf.c                           |  199 +-
 src/netcdf/silo_netcdf_private.h                   |   58 +-
 src/pdb/Makefile.in                                |    4 +-
 src/pdb/pdb.c                                      |    6 +-
 src/pdb/pdlow.c                                    |    8 +-
 src/pdb/pdrdwr.c                                   |    8 +-
 src/pdb_drv/Makefile.in                            |    4 +-
 src/pdb_drv/silo_pdb.c                             | 1258 +++++----
 src/pdb_drv/silo_pdb_private.h                     |  315 ++-
 src/pdbp_drv/Makefile.in                           |    4 +-
 src/score/Makefile.in                              |    4 +-
 src/score/scctla.c                                 |    3 +-
 src/silo/Makefile.am                               |   28 +-
 src/silo/Makefile.in                               |   51 +-
 src/silo/alloc.c                                   |  197 +-
 src/silo/silo.c                                    | 2734 +++++++++++---------
 src/silo/silo.h.in                                 | 1218 ++++-----
 src/silo/silo.inc                                  | 1310 ++++++----
 src/silo/silo_drivers.h                            |   26 +-
 src/silo/silo_exports.h                            |   20 +
 src/silo/silo_f.c                                  |  182 +-
 src/silo/silo_f.h                                  |    3 +-
 src/silo/silo_f77.inc                              |  842 ++++++
 src/silo/silo_f9x.inc                              |  433 ++++
 src/silo/silo_json.c                               | 1794 +++++++++++++
 src/silo/silo_json.h                               |  120 +
 src/silo/silo_ns.c                                 |   45 +-
 src/silo/silo_private.h                            |   74 +-
 src/taurus/Makefile.in                             |    4 +-
 src/taurus/silo_taurus.c                           |   47 +-
 src/taurus/silo_taurus_private.h                   |   30 +-
 src/taurus/taurus.c                                |    4 +-
 src/unknown/Makefile.in                            |    4 +-
 svn_bin/Makefile.in                                |    4 +-
 tests/Makefile.am                                  |   35 +-
 tests/Makefile.in                                  |  525 ++--
 tests/TestReadMask.c                               |   80 +-
 tests/arbpoly.c                                    |   36 +-
 tests/arbpoly2d.c                                  |   32 +-
 tests/array.c                                      |    4 +-
 tests/arrayf90.f90                                 |  162 ++
 tests/bcastopen.c                                  |   64 +
 tests/checksums                                    |   21 +-
 tests/csg.c                                        |    4 +-
 tests/dir.c                                        |    2 +-
 tests/efcentering.c                                |    8 +-
 tests/empty.c                                      |  310 ++-
 tests/extface.c                                    |    4 +-
 tests/grab.c                                       |    4 +-
 tests/group_test.c                                 |   67 +-
 tests/ioperf_hdf5.c                                |    3 +
 tests/ioperf_pdb.c                                 |    2 +-
 tests/ioperf_silo.c                                |    2 +-
 tests/json.c                                       |  220 ++
 tests/listtypes.c                                  |  160 +-
 tests/listtypes_main.c                             |  134 +
 tests/mat3d_3across.c                              |   67 +-
 tests/merge_block.c                                |   16 +-
 tests/mmadjacency.c                                |    6 +-
 tests/multi_file.c                                 |   72 +-
 tests/multi_test.c                                 |   57 +-
 tests/multispec.c                                  |   19 +-
 tests/namescheme.c                                 |  138 +-
 tests/onehex.c                                     |    8 +-
 tests/oneprism.c                                   |    4 +-
 tests/onepyramid.c                                 |    4 +-
 tests/onetet.c                                     |    4 +-
 tests/package.m4                                   |    6 +-
 tests/pdbtst.c                                     |   12 +-
 tests/point.c                                      |   40 +-
 tests/polyzl.c                                     |    4 +-
 tests/quadf77.f                                    |   14 +-
 tests/readstuff.c                                  |    2 +-
 tests/{ioperf_pdb.c => realloc_obj_and_opts.c}     |  124 +-
 tests/rocket.cxx                                   |    2 +-
 tests/rocket.h                                     |    1 -
 tests/rocket_silo.cxx                              |    6 +-
 tests/sami.c                                       |   25 +-
 tests/simple.c                                     |    2 +-
 tests/spec.c                                       |    8 +-
 tests/specmix.c                                    |  327 ++-
 tests/std.c                                        |    1 +
 tests/subhex.c                                     |   10 +-
 tests/test_write.py                                |    4 +-
 tests/testall.c                                    |  224 +-
 tests/testallf77.f                                 |   49 +-
 tests/testdtypes                                   |    2 +-
 tests/testfs.c                                     |    2 +-
 tests/testhzip                                     |    9 +-
 tests/testlib.c                                    |  110 +-
 tests/testpdb.c                                    |    5 +-
 tests/testsuite                                    | 1727 +++++++------
 tests/testsuite.at                                 |   28 +-
 tests/twohex.c                                     |    4 +-
 tests/ucd.c                                        |   34 +-
 tests/ucdf77.f                                     |    4 +-
 tests/ucdsamp3.c                                   |   16 +-
 tests/version.c                                    |  194 +-
 tests/wave.c                                       |    4 +-
 tools/Makefile.am                                  |   11 +-
 tools/Makefile.in                                  |   14 +-
 tools/browser/Makefile.am                          |    4 +
 tools/browser/Makefile.in                          |   14 +-
 tools/browser/array.c                              |   68 +-
 tools/browser/bif.c                                |    6 +-
 tools/browser/browser.c                            |  157 +-
 tools/browser/browser.h                            |   26 +-
 tools/browser/cons.c                               |    6 +-
 tools/browser/file.c                               |  531 +++-
 tools/browser/func.c                               |   18 +-
 tools/browser/lex.c                                |   10 +-
 tools/browser/num.c                                |    6 +-
 tools/browser/obj.c                                |   30 +-
 tools/browser/output.c                             |    2 +-
 tools/browser/parse.c                              |    7 +-
 tools/browser/prim.c                               |   41 +-
 tools/browser/ptr.c                                |    8 +-
 tools/browser/range.c                              |    6 +-
 tools/browser/sdo.c                                |   12 +-
 tools/browser/silodiff                             |   75 +-
 tools/browser/silofile                             |   31 +-
 tools/browser/stc.c                                |  479 ++--
 tools/browser/str.c                                |    8 +-
 tools/browser/switch.c                             |    6 +-
 tools/browser/sym.c                                |   26 +-
 tools/{ => json}/Makefile.am                       |   22 +-
 {svn_bin => tools/json}/Makefile.in                |   46 +-
 tools/json/json-c-0.10.tar.gz                      |  Bin 0 -> 595497 bytes
 tools/json/jsonify_silo_example.c                  |  287 ++
 tools/{ => mapred}/Makefile.am                     |   21 +-
 {svn_bin => tools/mapred}/Makefile.in              |   22 +-
 tools/mapred/mapper.py                             |  226 ++
 tools/mapred/reducer.py                            |   47 +
 tools/mapred/stream_silo.c                         |  295 +++
 tools/python/Makefile.am                           |    3 +
 tools/python/Makefile.in                           |   17 +-
 tools/python/pydbfile.cpp                          |    7 +-
 tools/python/pydbtoc.cpp                           |    4 +
 tools/silex/Makefile.am                            |   10 +-
 tools/silex/Makefile.in                            |   23 +-
 tools/silex/SiloArrayView.cpp                      |   91 +-
 tools/silex/SiloDirTreeView.cpp                    |    2 +-
 tools/silex/SiloDirView.cpp                        |   38 +-
 tools/silex/SiloFile.cpp                           |    4 +-
 tools/silex/main.cpp                               |    1 +
 tools/silock/Makefile.am                           |    5 +-
 tools/silock/Makefile.in                           |   19 +-
 390 files changed, 33294 insertions(+), 28054 deletions(-)

diff --git a/BSD_LICENSE_README b/BSD_LICENSE_README
index 0086696..a784ff8 100644
--- a/BSD_LICENSE_README
+++ b/BSD_LICENSE_README
@@ -53,7 +53,7 @@ This  means any objects  within a  Silo file  containing data  that is
 compressed with Hzip  or FPzip from a legacy  distribution will not be
 readable  in a BSD  distribution. Since  compression features  must be
 explicitly turned on by a  Silo application, this impact can be easily
-mitigating by  ensuring that Hzip and FPzip compression are  used only
+mitigated by  ensuring that Hzip and FPzip compression are  used  only
 for objects within Silo files not intended to be read by BSD releases.
 
 For more  information on availability  of Hzip and  FPzip compression,
diff --git a/Makefile.am b/Makefile.am
index 4a40d8e..ad75329 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -102,16 +102,13 @@ dist-gzip-bsd: dist-gzip
 	cp -R $(PACKAGE)-$(VERSION) $(PACKAGE)-$(VERSION)-bsd
 	rm -rf $(PACKAGE)-$(VERSION)-bsd/src/hzip
 	rm -rf $(PACKAGE)-$(VERSION)-bsd/src/fpzip
-	rm -rf $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC9
-	rm -rf $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2010
-	mv $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC9-BSD $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC9
-	mv $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2010-BSD $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2010
+	rm -rf $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2012
+	mv $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2012-BSD $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2012
 	tar cf - $(PACKAGE)-$(VERSION)-bsd | gzip --best > $(PACKAGE)-$(VERSION)-bsd.tar.gz
 	rm -rf $(PACKAGE)-$(VERSION)-bsd/tests/{amr3d.silo,pion0244.silo,amr2d.silo,xvers_data.tar.bz2}
 	tar cf - $(PACKAGE)-$(VERSION)-bsd | gzip --best > $(PACKAGE)-$(VERSION)-bsd-smalltest.tar.gz
 	rm -rf $(PACKAGE)-$(VERSION)-bsd
-	rm -rf $(PACKAGE)-$(VERSION)/SiloWindows/MSVC9-BSD
-	rm -rf $(PACKAGE)-$(VERSION)/SiloWindows/MSVC2010-BSD
+	rm -rf $(PACKAGE)-$(VERSION)/SiloWindows/MSVC2012-BSD
 	tar cf - $(PACKAGE)-$(VERSION) | gzip --best > $(PACKAGE)-$(VERSION).tar.gz
 	rm -rf $(PACKAGE)-$(VERSION)
 
diff --git a/Makefile.in b/Makefile.in
index 33a690b..cb34094 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -229,6 +229,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -277,9 +278,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -684,7 +682,7 @@ distcheck: dist
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	chmod -R a-w $(distdir); chmod u+w $(distdir)
 	mkdir $(distdir)/_build
 	mkdir $(distdir)/_inst
 	chmod a-w $(distdir)
@@ -879,16 +877,13 @@ dist-gzip-bsd: dist-gzip
 	cp -R $(PACKAGE)-$(VERSION) $(PACKAGE)-$(VERSION)-bsd
 	rm -rf $(PACKAGE)-$(VERSION)-bsd/src/hzip
 	rm -rf $(PACKAGE)-$(VERSION)-bsd/src/fpzip
-	rm -rf $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC9
-	rm -rf $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2010
-	mv $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC9-BSD $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC9
-	mv $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2010-BSD $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2010
+	rm -rf $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2012
+	mv $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2012-BSD $(PACKAGE)-$(VERSION)-bsd/SiloWindows/MSVC2012
 	tar cf - $(PACKAGE)-$(VERSION)-bsd | gzip --best > $(PACKAGE)-$(VERSION)-bsd.tar.gz
 	rm -rf $(PACKAGE)-$(VERSION)-bsd/tests/{amr3d.silo,pion0244.silo,amr2d.silo,xvers_data.tar.bz2}
 	tar cf - $(PACKAGE)-$(VERSION)-bsd | gzip --best > $(PACKAGE)-$(VERSION)-bsd-smalltest.tar.gz
 	rm -rf $(PACKAGE)-$(VERSION)-bsd
-	rm -rf $(PACKAGE)-$(VERSION)/SiloWindows/MSVC9-BSD
-	rm -rf $(PACKAGE)-$(VERSION)/SiloWindows/MSVC2010-BSD
+	rm -rf $(PACKAGE)-$(VERSION)/SiloWindows/MSVC2012-BSD
 	tar cf - $(PACKAGE)-$(VERSION) | gzip --best > $(PACKAGE)-$(VERSION).tar.gz
 	rm -rf $(PACKAGE)-$(VERSION)
 
diff --git a/SiloWindows/MSVC2010/BaseIncludes.props b/SiloWindows/MSVC2012/BaseIncludes.props
similarity index 100%
rename from SiloWindows/MSVC2010/BaseIncludes.props
rename to SiloWindows/MSVC2012/BaseIncludes.props
diff --git a/SiloWindows/MSVC2010/DepLibs.props b/SiloWindows/MSVC2012/DepLibs.props
similarity index 60%
rename from SiloWindows/MSVC2010/DepLibs.props
rename to SiloWindows/MSVC2012/DepLibs.props
index 7958393..b366a0f 100644
--- a/SiloWindows/MSVC2010/DepLibs.props
+++ b/SiloWindows/MSVC2012/DepLibs.props
@@ -2,19 +2,21 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Label="PropertySheets" />
   <PropertyGroup Label="UserMacros">
-    <HDF5_INC_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC2010\include</HDF5_INC_DIR>
-    <HDF5_INC_DIR_X64>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC2010-x64\include</HDF5_INC_DIR_X64>
-    <HDF5_LIB_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC2010\lib</HDF5_LIB_DIR>
-    <HDF5_LIB_DIR_X64>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC2010-x64\lib</HDF5_LIB_DIR_X64>
-    <SZIP_INC_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\szip\include</SZIP_INC_DIR>
-    <SZIP_LIB_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\szip\lib\MSVC2010</SZIP_LIB_DIR>
-    <SZIP_LIB_DIR_X64>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\szip\lib\MSVC2010-x64</SZIP_LIB_DIR_X64>
-    <ZLIB_INC_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\zlib\include</ZLIB_INC_DIR>
-    <ZLIB_LIB_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\zlib\lib\MSVC2010</ZLIB_LIB_DIR>
-    <ZLIB_LIB_DIR_X64>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\zlib\lib\MSVC2010-x64</ZLIB_LIB_DIR_X64>
-    <QT_INC_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\Qt-4.8.3\include</QT_INC_DIR>
-    <QT_LIB_DIR>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\Qt-4.8.3\lib\MSVC2010</QT_LIB_DIR>
-    <QT_LIB_DIR_X64>C:\a_VisIt\VisItDev\windowsbuild\ThirdParty\Qt-4.8.3\lib\MSVC2010-x64</QT_LIB_DIR_X64>
+    <HDF5_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\include</HDF5_INC_DIR>
+    <HDF5_INC_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\include</HDF5_INC_DIR_X64>
+    <HDF5_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\lib</HDF5_LIB_DIR>
+    <HDF5_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\lib</HDF5_LIB_DIR_X64>
+    <HDF5_BIN_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\hdf5\1.8.12\bin</HDF5_BIN_DIR>
+    <HDF5_BIN_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\hdf5\1.8.12\bin</HDF5_BIN_DIR_X64>
+    <SZIP_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\szip\2.1\include</SZIP_INC_DIR>
+    <SZIP_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\szip\2.1\lib</SZIP_LIB_DIR>
+    <SZIP_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\szip\2.1\lib</SZIP_LIB_DIR_X64>
+    <ZLIB_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\zlib\1.2.8\include</ZLIB_INC_DIR>
+    <ZLIB_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\zlib\1.2.8\lib</ZLIB_LIB_DIR>
+    <ZLIB_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\zlib\1.2.8\lib</ZLIB_LIB_DIR_X64>
+    <QT_INC_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\Qt\4.8.3\include</QT_INC_DIR>
+    <QT_LIB_DIR>C:\A_VisIt\trunk\windowsbuild\MSVC2012\Qt\4.8.3\lib</QT_LIB_DIR>
+    <QT_LIB_DIR_X64>C:\A_VisIt\trunk\windowsbuild\MSVC2012-x64\Qt\4.8.3\lib</QT_LIB_DIR_X64>
   </PropertyGroup>
   <PropertyGroup />
   <ItemDefinitionGroup />
diff --git a/SiloWindows/MSVC2010/HDF5_Defines.props b/SiloWindows/MSVC2012/HDF5_Defines.props
similarity index 91%
rename from SiloWindows/MSVC2010/HDF5_Defines.props
rename to SiloWindows/MSVC2012/HDF5_Defines.props
index a7692c7..c7c1906 100644
--- a/SiloWindows/MSVC2010/HDF5_Defines.props
+++ b/SiloWindows/MSVC2012/HDF5_Defines.props
@@ -13,7 +13,7 @@
     <Link>
       <AdditionalLibraryDirectories Condition="'$(Platform)'=='Win32'">$(HDF5_LIB_DIR);$(ZLIB_LIB_DIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories Condition="'$(Platform)'=='x64'">$(HDF5_LIB_DIR_X64);$(ZLIB_LIB_DIR_X64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>hdf5dll.lib;zlib1.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>hdf5.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
 </Project>
diff --git a/SiloWindows/MSVC2010/ModernDTPR.props b/SiloWindows/MSVC2012/ModernDTPR.props
similarity index 100%
rename from SiloWindows/MSVC2010/ModernDTPR.props
rename to SiloWindows/MSVC2012/ModernDTPR.props
diff --git a/SiloWindows/MSVC2012/NON_BSD_DEFINES.props b/SiloWindows/MSVC2012/NON_BSD_DEFINES.props
new file mode 100644
index 0000000..677093b
--- /dev/null
+++ b/SiloWindows/MSVC2012/NON_BSD_DEFINES.props
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <_PropertySheetDisplayName>NON_BSD_DEFINES</_PropertySheetDisplayName>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PreprocessorDefinitions>HAVE_FPZIP=1;FPZIP_FP=FPZIP_FP_SAFE;HAVE_HZIP=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\src\fpzip;..\..\src\hzip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+  </ItemDefinitionGroup>
+</Project>
diff --git a/SiloWindows/MSVC2010/NO_SEC_DEP.props b/SiloWindows/MSVC2012/NO_SEC_DEP.props
similarity index 100%
rename from SiloWindows/MSVC2010/NO_SEC_DEP.props
rename to SiloWindows/MSVC2012/NO_SEC_DEP.props
diff --git a/SiloWindows/MSVC2010/QT_Defines.props b/SiloWindows/MSVC2012/QT_Defines.props
similarity index 100%
rename from SiloWindows/MSVC2010/QT_Defines.props
rename to SiloWindows/MSVC2012/QT_Defines.props
diff --git a/SiloWindows/MSVC2010/Silo.sln b/SiloWindows/MSVC2012/Silo.sln
similarity index 77%
rename from SiloWindows/MSVC2010/Silo.sln
rename to SiloWindows/MSVC2012/Silo.sln
index 49347c9..f23fd14 100644
--- a/SiloWindows/MSVC2010/Silo.sln
+++ b/SiloWindows/MSVC2012/Silo.sln
@@ -1,21 +1,21 @@
 
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silo", "Silo.vcxproj", "{3F76AF02-F554-BD84-E19C-AACBB8DAF098}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silo", "Silo.vcxproj", "{3A796AF3-3578-B923-4A26-3E27F5305DC9}"
 	ProjectSection(ProjectDependencies) = postProject
 		{17857422-AD82-4D37-A5AF-94C4556935D0} = {17857422-AD82-4D37-A5AF-94C4556935D0}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "silex", "silex.vcxproj", "{5B19C3D2-D3F9-4A39-A1CD-5A557D83E990}"
 	ProjectSection(ProjectDependencies) = postProject
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098} = {3F76AF02-F554-BD84-E19C-AACBB8DAF098}
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9} = {3A796AF3-3578-B923-4A26-3E27F5305DC9}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pdb_detect", "pdb_detect\pdb_detect.vcxproj", "{17857422-AD82-4D37-A5AF-94C4556935D0}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "browser", "browser.vcxproj", "{239DB654-39CC-46B4-85EC-894F6592BF17}"
 	ProjectSection(ProjectDependencies) = postProject
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098} = {3F76AF02-F554-BD84-E19C-AACBB8DAF098}
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9} = {3A796AF3-3578-B923-4A26-3E27F5305DC9}
 	EndProjectSection
 EndProject
 Global
@@ -26,14 +26,14 @@ Global
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Debug|Win32.Build.0 = Debug|Win32
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Debug|x64.ActiveCfg = Debug|x64
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Debug|x64.Build.0 = Debug|x64
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Release|Win32.ActiveCfg = Release|Win32
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Release|Win32.Build.0 = Release|Win32
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Release|x64.ActiveCfg = Release|x64
-		{3F76AF02-F554-BD84-E19C-AACBB8DAF098}.Release|x64.Build.0 = Release|x64
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Debug|Win32.Build.0 = Debug|Win32
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Debug|x64.ActiveCfg = Debug|x64
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Debug|x64.Build.0 = Debug|x64
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Release|Win32.ActiveCfg = Release|Win32
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Release|Win32.Build.0 = Release|Win32
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Release|x64.ActiveCfg = Release|x64
+		{3A796AF3-3578-B923-4A26-3E27F5305DC9}.Release|x64.Build.0 = Release|x64
 		{5B19C3D2-D3F9-4A39-A1CD-5A557D83E990}.Debug|Win32.ActiveCfg = Debug|Win32
 		{5B19C3D2-D3F9-4A39-A1CD-5A557D83E990}.Debug|Win32.Build.0 = Debug|Win32
 		{5B19C3D2-D3F9-4A39-A1CD-5A557D83E990}.Debug|x64.ActiveCfg = Debug|x64
diff --git a/SiloWindows/MSVC2010/Silo.vcxproj b/SiloWindows/MSVC2012/Silo.vcxproj
similarity index 63%
rename from SiloWindows/MSVC2010/Silo.vcxproj
rename to SiloWindows/MSVC2012/Silo.vcxproj
index 8ed332f..e538716 100644
--- a/SiloWindows/MSVC2010/Silo.vcxproj
+++ b/SiloWindows/MSVC2012/Silo.vcxproj
@@ -20,23 +20,28 @@
   </ItemGroup>
   <PropertyGroup Label="Globals">
     <Keyword>Win32Proj</Keyword>
+    <ProjectGuid>{3A796AF3-3578-B923-4A26-3E27F5305DC9}</ProjectGuid>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
@@ -47,6 +52,7 @@
     <Import Project="ModernDTPR.props" />
     <Import Project="HDF5_Defines.props" />
     <Import Project="BaseIncludes.props" />
+    <Import Project="NON_BSD_DEFINES.props" />
     <Import Project="NO_SEC_DEP.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
@@ -55,6 +61,7 @@
     <Import Project="ModernDTPR.props" />
     <Import Project="HDF5_Defines.props" />
     <Import Project="BaseIncludes.props" />
+    <Import Project="NON_BSD_DEFINES.props" />
     <Import Project="NO_SEC_DEP.props" />
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -63,6 +70,7 @@
     <Import Project="ModernDTPR.props" />
     <Import Project="HDF5_Defines.props" />
     <Import Project="BaseIncludes.props" />
+    <Import Project="NON_BSD_DEFINES.props" />
     <Import Project="NO_SEC_DEP.props" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
@@ -71,32 +79,33 @@
     <Import Project="ModernDTPR.props" />
     <Import Project="HDF5_Defines.props" />
     <Import Project="BaseIncludes.props" />
+    <Import Project="NON_BSD_DEFINES.props" />
     <Import Project="NO_SEC_DEP.props" />
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
     <TargetName>silohdf5</TargetName>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <TargetName>silohdf5</TargetName>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <TargetName>silohdf5</TargetName>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>true</LinkIncremental>
+    <LinkIncremental>false</LinkIncremental>
     <TargetName>silohdf5</TargetName>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -110,6 +119,8 @@
       <TargetMachine>MachineX86</TargetMachine>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -123,6 +134,9 @@
     <Link>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
+      <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>%(AdditionalDependencies);</AdditionalDependencies>
+      <IgnoreSpecificDefaultLibraries>/NODEFAULTLIB:msvcrtd; libcmtd</IgnoreSpecificDefaultLibraries>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -134,32 +148,61 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX86</TargetMachine>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <ShowProgress>NotSet</ShowProgress>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SILO_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <AdditionalIncludeDirectories>..\..\src\fpzip;..\..\src\hzip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\debug\silo_debug.c" />
     <ClCompile Include="..\..\src\filters\f_ale3d.c" />
     <ClCompile Include="..\..\src\filters\f_sample.c" />
+    <ClCompile Include="..\..\src\fpzip\error.cpp" />
+    <ClCompile Include="..\..\src\fpzip\rcdecoder.cpp" />
+    <ClCompile Include="..\..\src\fpzip\rcencoder.cpp" />
+    <ClCompile Include="..\..\src\fpzip\rcqsmodel.cpp" />
+    <ClCompile Include="..\..\src\fpzip\read.cpp" />
+    <ClCompile Include="..\..\src\fpzip\write.cpp" />
     <ClCompile Include="..\..\src\hdf5_drv\H5FDsilo.c" />
     <ClCompile Include="..\..\src\hdf5_drv\silo_hdf5.c" />
+    <ClCompile Include="..\..\src\hzip\hzmdecoder.cpp" />
+    <ClCompile Include="..\..\src\hzip\hzmencoder.cpp" />
+    <ClCompile Include="..\..\src\hzip\hzmio.cpp" />
+    <ClCompile Include="..\..\src\hzip\hzmpredictor.cpp" />
+    <ClCompile Include="..\..\src\hzip\hzmread.cpp" />
+    <ClCompile Include="..\..\src\hzip\hzmwrite.cpp" />
+    <ClCompile Include="..\..\src\hzip\hznio.cpp" />
+    <ClCompile Include="..\..\src\hzip\hznpredictor.cpp" />
+    <ClCompile Include="..\..\src\hzip\hznread.cpp" />
+    <ClCompile Include="..\..\src\hzip\hznwrite.cpp" />
+    <ClCompile Include="..\..\src\hzip\hzutil.cpp" />
+    <ClCompile Include="..\..\src\netcdf\api.c" />
+    <ClCompile Include="..\..\src\netcdf\ent.c" />
+    <ClCompile Include="..\..\src\netcdf\netcdf.c" />
+    <ClCompile Include="..\..\src\netcdf\obj.c" />
+    <ClCompile Include="..\..\src\netcdf\silo_netcdf.c" />
+    <ClCompile Include="..\..\src\netcdf\table.c" />
     <ClCompile Include="..\..\src\pdb\pdb.c" />
     <ClCompile Include="..\..\src\pdb\pdbdir.c" />
     <ClCompile Include="..\..\src\pdb\pdbio.c" />
@@ -188,8 +231,41 @@
   <ItemGroup>
     <ClInclude Include="..\..\src\debug\silo_debug_private.h" />
     <ClInclude Include="..\..\src\filters\filter.h" />
+    <ClInclude Include="..\..\src\fpzip\codec.h" />
+    <ClInclude Include="..\..\src\fpzip\fpe.h" />
+    <ClInclude Include="..\..\src\fpzip\fpzip.h" />
+    <ClInclude Include="..\..\src\fpzip\front.h" />
+    <ClInclude Include="..\..\src\fpzip\pccodec.h" />
+    <ClInclude Include="..\..\src\fpzip\pcdecoder.h" />
+    <ClInclude Include="..\..\src\fpzip\pcencoder.h" />
+    <ClInclude Include="..\..\src\fpzip\pcmap.h" />
+    <ClInclude Include="..\..\src\fpzip\rcdecoder.h" />
+    <ClInclude Include="..\..\src\fpzip\rcencoder.h" />
+    <ClInclude Include="..\..\src\fpzip\rcmodel.h" />
+    <ClInclude Include="..\..\src\fpzip\rcqsmodel.h" />
+    <ClInclude Include="..\..\src\fpzip\read.h" />
+    <ClInclude Include="..\..\src\fpzip\write.h" />
     <ClInclude Include="..\..\src\hdf5_drv\H5FDsilo.h" />
     <ClInclude Include="..\..\src\hdf5_drv\silo_hdf5_private.h" />
+    <ClInclude Include="..\..\src\hzip\bitvector.h" />
+    <ClInclude Include="..\..\src\hzip\hzio.h" />
+    <ClInclude Include="..\..\src\hzip\hzip.h" />
+    <ClInclude Include="..\..\src\hzip\hzmap.h" />
+    <ClInclude Include="..\..\src\hzip\hzmcodec.h" />
+    <ClInclude Include="..\..\src\hzip\hzmdecoder.h" />
+    <ClInclude Include="..\..\src\hzip\hzmencoder.h" />
+    <ClInclude Include="..\..\src\hzip\hzmio.h" />
+    <ClInclude Include="..\..\src\hzip\hzmpredictor.h" />
+    <ClInclude Include="..\..\src\hzip\hzncodec.h" />
+    <ClInclude Include="..\..\src\hzip\hzndecoder.h" />
+    <ClInclude Include="..\..\src\hzip\hznencoder.h" />
+    <ClInclude Include="..\..\src\hzip\hznio.h" />
+    <ClInclude Include="..\..\src\hzip\hznpredictor.h" />
+    <ClInclude Include="..\..\src\hzip\hzresidual.h" />
+    <ClInclude Include="..\..\src\hzip\ibstream.h" />
+    <ClInclude Include="..\..\src\hzip\obstream.h" />
+    <ClInclude Include="..\..\src\netcdf\silo_netcdf_private.h" />
+    <ClInclude Include="..\..\src\netcdf\table.h" />
     <ClInclude Include="..\..\src\pdb\pdb.h" />
     <ClInclude Include="..\..\src\pdb_drv\silo_pdb_private.h" />
     <ClInclude Include="..\..\src\score\score.h" />
@@ -208,4 +284,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2010/Silo.vcxproj.filters b/SiloWindows/MSVC2012/Silo.vcxproj.filters
similarity index 52%
rename from SiloWindows/MSVC2010/Silo.vcxproj.filters
rename to SiloWindows/MSVC2012/Silo.vcxproj.filters
index 5af1371..8114a5d 100644
--- a/SiloWindows/MSVC2010/Silo.vcxproj.filters
+++ b/SiloWindows/MSVC2012/Silo.vcxproj.filters
@@ -18,6 +18,9 @@
     <Filter Include="Source Files\pdb_drv">
       <UniqueIdentifier>{a5a05c0d-c9ff-479d-b704-e8e36367455a}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Source Files\hzip">
+      <UniqueIdentifier>{8e94745c-5c88-4e93-85dd-2deea4931e36}</UniqueIdentifier>
+    </Filter>
     <Filter Include="Header Files\taurus_drv">
       <UniqueIdentifier>{5cfee3fc-3f25-4ace-9c79-58ec311615c4}</UniqueIdentifier>
     </Filter>
@@ -33,9 +36,15 @@
     <Filter Include="Header Files\filters">
       <UniqueIdentifier>{33c5d424-dd8d-4a6d-9e66-fd4b812b7486}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Header Files\fpzip">
+      <UniqueIdentifier>{0e50d8e5-08a2-43c9-bc5c-83cbfe085c4a}</UniqueIdentifier>
+    </Filter>
     <Filter Include="Header Files\hdf5_drv">
       <UniqueIdentifier>{f1de1134-82ac-4e1a-ac70-9072c99a7dae}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Header Files\hzip">
+      <UniqueIdentifier>{ffad09ef-114d-4a38-9021-b8ef6275aabb}</UniqueIdentifier>
+    </Filter>
     <Filter Include="Header Files\silo">
       <UniqueIdentifier>{0c828d0b-349d-4989-91c7-0d9a310af1b4}</UniqueIdentifier>
     </Filter>
@@ -45,6 +54,9 @@
     <Filter Include="Source Files\hdf5_drv">
       <UniqueIdentifier>{57a6a43e-8406-4fdf-9c59-35197de4a97f}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Source Files\fpzip">
+      <UniqueIdentifier>{c5f18c01-2ec3-4865-a621-a61bc6e942cc}</UniqueIdentifier>
+    </Filter>
     <Filter Include="Source Files\filters">
       <UniqueIdentifier>{9476e32e-ba96-4459-a75a-254258fcc5ef}</UniqueIdentifier>
     </Filter>
@@ -63,6 +75,12 @@
     <Filter Include="Header Files\debug">
       <UniqueIdentifier>{bed62ec2-c976-4850-8d57-bd00ec661159}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Source Files\netcdf">
+      <UniqueIdentifier>{b32bd034-316c-4299-9839-7d2be066ae55}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\netcdf">
+      <UniqueIdentifier>{a912ddf3-dd06-417f-a708-bc075541a3d8}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\silo\silo_ns.c">
@@ -134,12 +152,63 @@
     <ClCompile Include="..\..\src\pdb\pdconv.c">
       <Filter>Source Files\pdb</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzmdecoder.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzmencoder.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzmio.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzmpredictor.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzmread.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzmwrite.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hznio.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hznpredictor.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hznread.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hznwrite.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\hzip\hzutil.cpp">
+      <Filter>Source Files\hzip</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\hdf5_drv\H5FDsilo.c">
       <Filter>Source Files\hdf5_drv</Filter>
     </ClCompile>
     <ClCompile Include="..\..\src\hdf5_drv\silo_hdf5.c">
       <Filter>Source Files\hdf5_drv</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\fpzip\error.cpp">
+      <Filter>Source Files\fpzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\fpzip\rcdecoder.cpp">
+      <Filter>Source Files\fpzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\fpzip\rcencoder.cpp">
+      <Filter>Source Files\fpzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\fpzip\rcqsmodel.cpp">
+      <Filter>Source Files\fpzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\fpzip\read.cpp">
+      <Filter>Source Files\fpzip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\fpzip\write.cpp">
+      <Filter>Source Files\fpzip</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\filters\f_ale3d.c">
       <Filter>Source Files\filters</Filter>
     </ClCompile>
@@ -152,6 +221,24 @@
     <ClCompile Include="..\..\src\debug\silo_debug.c">
       <Filter>Source Files\debug</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\netcdf\api.c">
+      <Filter>Source Files\netcdf</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\netcdf\ent.c">
+      <Filter>Source Files\netcdf</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\netcdf\netcdf.c">
+      <Filter>Source Files\netcdf</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\netcdf\obj.c">
+      <Filter>Source Files\netcdf</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\netcdf\silo_netcdf.c">
+      <Filter>Source Files\netcdf</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\netcdf\table.c">
+      <Filter>Source Files\netcdf</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\silo\pmpio.h">
@@ -187,18 +274,117 @@
     <ClInclude Include="..\..\src\filters\filter.h">
       <Filter>Header Files\filters</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\codec.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\fpe.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\fpzip.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\front.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\pccodec.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\pcdecoder.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\pcencoder.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\pcmap.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\rcdecoder.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\rcencoder.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\rcmodel.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\rcqsmodel.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\read.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\fpzip\write.h">
+      <Filter>Header Files\fpzip</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\hdf5_drv\H5FDsilo.h">
       <Filter>Header Files\hdf5_drv</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\hdf5_drv\silo_hdf5_private.h">
       <Filter>Header Files\hdf5_drv</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\hzip\bitvector.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzio.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzip.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzmap.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzmcodec.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzmdecoder.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzmencoder.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzmio.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzmpredictor.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzncodec.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzndecoder.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hznencoder.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hznio.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hznpredictor.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\hzresidual.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\ibstream.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\hzip\obstream.h">
+      <Filter>Header Files\hzip</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\unknown\silo_unknown_private.h">
       <Filter>Header Files\unknown</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\debug\silo_debug_private.h">
       <Filter>Header Files\debug</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\netcdf\silo_netcdf_private.h">
+      <Filter>Header Files\netcdf</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\netcdf\table.h">
+      <Filter>Header Files\netcdf</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\silo\silo.inc">
diff --git a/SiloWindows/MSVC9/Tests/CopyTestDependencies.bat b/SiloWindows/MSVC2012/Tests/CopyTestDependencies.bat
similarity index 54%
rename from SiloWindows/MSVC9/Tests/CopyTestDependencies.bat
rename to SiloWindows/MSVC2012/Tests/CopyTestDependencies.bat
index 8689a9c..1f91a9f 100644
--- a/SiloWindows/MSVC9/Tests/CopyTestDependencies.bat
+++ b/SiloWindows/MSVC2012/Tests/CopyTestDependencies.bat
@@ -1,14 +1,20 @@
 @echo off
-set HDF5_IN=%1\hdf5dll.dll
-set ZLIB_IN=%2\zlib1.dll
+set HDF5_IN=%1\hdf5.dll
+set ZLIB_IN=%2\zlib.dll
 set SZIP_IN=%3\szlibdll.dll
 set SILO_IN=%4\silohdf5.dll
 
-set HDF5_OUT=%5\hdf5dll.dll
-set ZLIB_OUT=%5\zlib1.dll
+set HDF5_OUT=%5\hdf5.dll
+set ZLIB_OUT=%5\zlib.dll
 set SZIP_OUT=%5\szlibdll.dll
 set SILO_OUT=%5\silohdf5.dll
 
+set PION_IN=%5\..\..\..\tests\pion0244.silo
+set PION_OUT=%5\pion0244.silo
+
+set Z1PLT_IN=%5\..\..\..\tests\z1plt.silo
+set Z1PLT_OUT=%5\z1plt
+
 echo ************************************************************************
 echo copying dependent libs to test directory
 echo ...
@@ -29,6 +35,19 @@ if not exist %SILO_OUT% (
  copy %SILO_IN% %SILO_OUT%
 )
 
+echo ************************************************************************
+echo copying test data files to test directory
+echo ... from
+
+if not exist %PION_OUT% (
+ copy %PION_IN% %PION_OUT%
+)
+
+if not exist %Z1PLT_OUT% (
+ copy %Z1PLT_IN% %Z1PLT_OUT%
+)
+
+
 echo ...
 echo Done.
 echo ************************************************************************
diff --git a/SiloWindows/MSVC2012/Tests/Preparation.vcxproj b/SiloWindows/MSVC2012/Tests/Preparation.vcxproj
new file mode 100644
index 0000000..43579e6
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/Preparation.vcxproj
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{EF8EC721-3949-484B-862F-2BB07460526D}</ProjectGuid>
+    <RootNamespace>Preparation</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir>$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir>$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <PreBuildEvent>
+      <Command>CopyTestDependencies.bat $(HDF5_BIN_DIR) $(ZLIB_LIB_DIR) $(SZIP_LIB_DIR) $(SolutionDir)..\$(Platform)\$(Configuration) $(SolutionDir)..\bin</Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <PreBuildEvent>
+      <Command>CopyTestDependencies.bat $(HDF5_BIN_DIR_X64) $(ZLIB_LIB_DIR_X64) $(SZIP_LIB_DIR_X64) $(SolutionDir)..\$(Platform)\$(Configuration) $(SolutionDir)..\bin</Command>
+    </PreBuildEvent>
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <PreBuildEvent>
+      <Command>CopyTestDependencies.bat $(HDF5_BIN_DIR) $(ZLIB_LIB_DIR) $(SZIP_LIB_DIR) $(SolutionDir)..\$(Platform)\$(Configuration) $(SolutionDir)..\bin</Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <PreBuildEvent>
+      <Command>CopyTestDependencies.bat $(HDF5_BIN_DIR_X64) $(ZLIB_LIB_DIR_X64) $(SZIP_LIB_DIR_X64) $(SolutionDir)..\$(Platform)\$(Configuration) $(SolutionDir)..\bin</Command>
+    </PreBuildEvent>
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/SiloWindows/MSVC2012/Tests/TestIncludes.props b/SiloWindows/MSVC2012/Tests/TestIncludes.props
new file mode 100644
index 0000000..bdb0184
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/TestIncludes.props
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(SolutionDir)..\..\..\src\silo;$(SolutionDir)..\..\..\tests;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup />
+</Project>
diff --git a/SiloWindows/MSVC2012/Tests/TestReadMask.vcxproj b/SiloWindows/MSVC2012/Tests/TestReadMask.vcxproj
new file mode 100644
index 0000000..7bd1818
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/TestReadMask.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{D47B6498-6A8D-4E87-A3B6-C6D08DF29FE2}</ProjectGuid>
+    <RootNamespace>TestReadMask</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\TestReadMask.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC9/Tests/Tests.sln b/SiloWindows/MSVC2012/Tests/Tests.sln
similarity index 68%
rename from SiloWindows/MSVC9/Tests/Tests.sln
rename to SiloWindows/MSVC2012/Tests/Tests.sln
index 821f5ce..4442887 100644
--- a/SiloWindows/MSVC9/Tests/Tests.sln
+++ b/SiloWindows/MSVC2012/Tests/Tests.sln
@@ -1,111 +1,124 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wave", "wave.vcproj", "{3D443B05-403C-4907-8F50-DC396DB6BB23}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wave", "wave.vcxproj", "{3D443B05-403C-4907-8F50-DC396DB6BB23}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alltypes", "alltypes.vcproj", "{627C8E54-0ABD-4B8A-B76B-0BD13F5E684B}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alltypes", "alltypes.vcxproj", "{627C8E54-0ABD-4B8A-B76B-0BD13F5E684B}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array", "array.vcproj", "{CB409787-8ACF-4854-A2AB-6CD727E7120D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "array", "array.vcxproj", "{CB409787-8ACF-4854-A2AB-6CD727E7120D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compression", "compression.vcproj", "{AA9DE89B-47C8-4164-944A-6D42B4AF0FEB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "compression", "compression.vcxproj", "{AA9DE89B-47C8-4164-944A-6D42B4AF0FEB}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csg", "csg.vcproj", "{6DE8948E-8CF8-4650-9749-1C21066AA957}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csg", "csg.vcxproj", "{6DE8948E-8CF8-4650-9749-1C21066AA957}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extface", "extface.vcproj", "{3482A43B-3A21-4583-88C4-45A4422E2307}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "extface", "extface.vcxproj", "{3482A43B-3A21-4583-88C4-45A4422E2307}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testall", "testall.vcproj", "{E4105EA9-2AB2-4656-B966-01F16961A14B}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testall", "testall.vcxproj", "{E4105EA9-2AB2-4656-B966-01F16961A14B}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grab", "grab.vcproj", "{DCFFC0C8-1C81-4016-8364-1678FAB1D2D2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grab", "grab.vcxproj", "{DCFFC0C8-1C81-4016-8364-1678FAB1D2D2}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "largefile", "largefile.vcproj", "{EA0DA3EC-DD78-4C57-A0A9-F0EEAE35A85A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "largefile", "largefile.vcxproj", "{EA0DA3EC-DD78-4C57-A0A9-F0EEAE35A85A}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "listtypes", "listtypes.vcproj", "{A79DA077-0644-4DA7-8D8A-BB115597F474}"
-	ProjectSection(ProjectDependencies) = postProject
-		{9B955616-D58C-4ED8-AB6F-FBA74E768B54} = {9B955616-D58C-4ED8-AB6F-FBA74E768B54}
-	EndProjectSection
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "listtypes", "listtypes.vcxproj", "{A79DA077-0644-4DA7-8D8A-BB115597F474}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mat3d_3across", "mat3d_3across.vcproj", "{CEA025B3-7259-4852-980F-CB39E8206304}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mat3d_3across", "mat3d_3across.vcxproj", "{CEA025B3-7259-4852-980F-CB39E8206304}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "merge_block", "merge_block.vcproj", "{2B22FE6C-0C77-445A-8320-50EEF60EEF7D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "merge_block", "merge_block.vcxproj", "{2B22FE6C-0C77-445A-8320-50EEF60EEF7D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mmadjacency", "mmadjacency.vcproj", "{809F6E22-2B80-4264-A220-7974EC9EDBBF}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mmadjacency", "mmadjacency.vcxproj", "{809F6E22-2B80-4264-A220-7974EC9EDBBF}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_file", "multi_file.vcproj", "{8CC26B54-D539-4A0A-B461-26F074B790FD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_file", "multi_file.vcxproj", "{8CC26B54-D539-4A0A-B461-26F074B790FD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_test", "multi_test.vcproj", "{7535A535-FDEC-4448-AF9C-C031C9EA8459}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_test", "multi_test.vcxproj", "{7535A535-FDEC-4448-AF9C-C031C9EA8459}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multispec", "multispec.vcproj", "{2D46EF91-58B2-43B5-ADD7-6908D6794578}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multispec", "multispec.vcxproj", "{2D46EF91-58B2-43B5-ADD7-6908D6794578}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj", "obj.vcproj", "{AC0F21DF-ECA4-4B17-9829-59634B68B0D2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj", "obj.vcxproj", "{AC0F21DF-ECA4-4B17-9829-59634B68B0D2}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "onehex", "onehex.vcproj", "{3863899B-7F9F-4823-9383-AE2205DCB054}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "onehex", "onehex.vcxproj", "{3863899B-7F9F-4823-9383-AE2205DCB054}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oneprism", "oneprism.vcproj", "{4BCA7F35-0742-424F-8E50-39B934312F8F}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oneprism", "oneprism.vcxproj", "{4BCA7F35-0742-424F-8E50-39B934312F8F}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "onepyramid", "onepyramid.vcproj", "{2AFC873D-E906-4145-A0CB-6264E8CAE97D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "onepyramid", "onepyramid.vcxproj", "{2AFC873D-E906-4145-A0CB-6264E8CAE97D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "onetet", "onetet.vcproj", "{A76CCA62-BC5F-44F8-B090-9C45DA138680}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "onetet", "onetet.vcxproj", "{A76CCA62-BC5F-44F8-B090-9C45DA138680}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "partial_io", "partial_io.vcproj", "{4F6A7EC6-F141-4512-B2A8-D108CBD6FAC1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "partial_io", "partial_io.vcxproj", "{4F6A7EC6-F141-4512-B2A8-D108CBD6FAC1}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "point", "point.vcproj", "{025CFEA1-6C43-404D-9DA4-5392A17FA162}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "point", "point.vcxproj", "{025CFEA1-6C43-404D-9DA4-5392A17FA162}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "polyzl", "polyzl.vcproj", "{8C6BC636-FF71-4D58-9D63-E12265523982}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "polyzl", "polyzl.vcxproj", "{8C6BC636-FF71-4D58-9D63-E12265523982}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quad", "quad.vcproj", "{4D5EA26A-8356-4665-A13D-51CCEE2BA7F4}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quad", "quad.vcxproj", "{4D5EA26A-8356-4665-A13D-51CCEE2BA7F4}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sami", "sami.vcproj", "{B3C7F964-68B8-4F8C-B5E7-7607836FB101}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sami", "sami.vcxproj", "{B3C7F964-68B8-4F8C-B5E7-7607836FB101}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple", "simple.vcproj", "{7AB46C61-04D5-4E77-AD3F-E7726F3E173A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple", "simple.vcxproj", "{7AB46C61-04D5-4E77-AD3F-E7726F3E173A}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spec", "spec.vcproj", "{7A5F618C-F98A-4F8E-BBC7-C4F5C6BCD5A4}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spec", "spec.vcxproj", "{7A5F618C-F98A-4F8E-BBC7-C4F5C6BCD5A4}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "specmix", "specmix.vcproj", "{27C64509-94EB-406D-9978-93AE531CEB1E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "specmix", "specmix.vcxproj", "{27C64509-94EB-406D-9978-93AE531CEB1E}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "subhex", "subhex.vcproj", "{8C02951E-155B-4D09-A1DD-F98695F02A0E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "subhex", "subhex.vcxproj", "{8C02951E-155B-4D09-A1DD-F98695F02A0E}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpdb", "testpdb.vcproj", "{29110B58-9FD5-4A8E-B9F7-064650EE16C6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpdb", "testpdb.vcxproj", "{29110B58-9FD5-4A8E-B9F7-064650EE16C6}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestReadMask", "TestReadMask.vcproj", "{D47B6498-6A8D-4E87-A3B6-C6D08DF29FE2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestReadMask", "TestReadMask.vcxproj", "{D47B6498-6A8D-4E87-A3B6-C6D08DF29FE2}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "twohex", "twohex.vcproj", "{64A6CE79-710F-405C-AAE8-F604E74A4374}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "twohex", "twohex.vcxproj", "{64A6CE79-710F-405C-AAE8-F604E74A4374}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ucd1d", "ucd1d.vcproj", "{C065DCD0-DE87-4B6E-A1E6-8F7EDB272D53}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ucd1d", "ucd1d.vcxproj", "{C065DCD0-DE87-4B6E-A1E6-8F7EDB272D53}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ucd", "ucd.vcproj", "{9B955616-D58C-4ED8-AB6F-FBA74E768B54}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ucd", "ucd.vcxproj", "{9B955616-D58C-4ED8-AB6F-FBA74E768B54}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ucdsamp3", "ucdsamp3.vcproj", "{94D10A14-5A9B-4E1E-B204-DE3196750126}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ucdsamp3", "ucdsamp3.vcxproj", "{94D10A14-5A9B-4E1E-B204-DE3196750126}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version.vcproj", "{CBBCFD38-0F91-4CA2-8CBF-2833AC284438}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version.vcxproj", "{CBBCFD38-0F91-4CA2-8CBF-2833AC284438}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dirtest", "dirtest.vcproj", "{B8FE1ABF-E1AD-41C7-AFAE-333BAB3636E1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dirtest", "dirtest.vcxproj", "{B8FE1ABF-E1AD-41C7-AFAE-333BAB3636E1}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "group_test", "group_test.vcproj", "{69340E63-F15C-4A33-85B7-344666F8F25C}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "group_test", "group_test.vcxproj", "{69340E63-F15C-4A33-85B7-344666F8F25C}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "namescheme", "namescheme.vcproj", "{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "namescheme", "namescheme.vcxproj", "{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "array_f", "array_f.vfproj", "{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Preparation", "Preparation.vcxproj", "{EF8EC721-3949-484B-862F-2BB07460526D}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "curve_f", "curve_f.vfproj", "{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arbpoly3d", "arbpoly3d.vcxproj", "{BF87D83F-575E-49B5-87BD-02C6E581FD6A}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "mat_f", "mat_f.vfproj", "{595357B8-132D-4F3E-9679-6E52B474E8A5}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arbpoly", "arbpoly.vcxproj", "{970CE296-FB4C-4990-8FC7-F26078998302}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "point_f", "point_f.vfproj", "{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfs", "testfs.vcxproj", "{619248C9-5C52-48D3-BD1C-4BE670F6B67F}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "quad_f", "quad_f.vfproj", "{12C054D3-D396-45F9-912E-8A7FF6548738}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "empty", "empty.vcxproj", "{F167FF6B-B926-43D7-A5DA-086B87336B06}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "testall_f", "testall_f.vfproj", "{BCC584B3-571E-4441-8ABF-D2CDD0646116}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FortranTests", "FortranTests", "{F5BE7648-E253-49AE-B86B-F651383ED45B}"
 EndProject
-Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "ucd_f", "ucd_f.vfproj", "{A8A0C0C5-A117-4430-B47A-E98603255D01}"
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "array_f", "array_f.vfproj", "{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Preparation", "Preparation.vcproj", "{EF8EC721-3949-484B-862F-2BB07460526D}"
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "csgmesh_f", "csgmesh_f.vfproj", "{E42AC159-E83D-4812-BFE2-E5196DC0FA82}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FortranTests", "FortranTests", "{E7608C74-F664-43A4-823C-D4370571FD4C}"
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "curve_f", "curve_f.vfproj", "{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arbpoly3d", "arbpoly3d.vcproj", "{BF87D83F-575E-49B5-87BD-02C6E581FD6A}"
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "mat_f", "mat_f.vfproj", "{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arbpoly", "arbpoly.vcproj", "{970CE296-FB4C-4990-8FC7-F26078998302}"
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "point_f", "point_f.vfproj", "{7974C002-4D5E-4442-8DE6-93D3F4C777A9}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "empty", "empty.vcproj", "{2C3B0E05-5959-4630-A94F-625C9BCE9B10}"
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "quad_f", "quad_f.vfproj", "{CE5B119E-30CC-4D89-9C51-443047010B49}"
+EndProject
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "testall_f", "testall_f.vfproj", "{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}"
+EndProject
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "ucd_f", "ucd_f.vfproj", "{6A0FF443-4276-4204-BA54-32E85C59D941}"
+EndProject
+Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "array_f90", "array_f90.vfproj", "{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arbpoly2d", "arbpoly2d.vcxproj", "{C86C207F-7D5B-4950-B058-476CC008F27E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "efcentering", "efcentering.vcxproj", "{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "majorder", "majorder.vcxproj", "{E8BA727C-3251-41FC-9587-1588E1950E2E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "readstuff", "readstuff.vcxproj", "{000E8237-2470-4133-A39F-CFC19F595DBF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "realloc_obj_and_opts", "realloc_obj_and_opts.vcxproj", "{4491049B-1A5D-492C-836F-32871AB8FE62}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -435,62 +448,6 @@ Global
 		{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}.Release|Win32.Build.0 = Release|Win32
 		{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}.Release|x64.ActiveCfg = Release|x64
 		{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}.Release|x64.Build.0 = Release|x64
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Debug|Win32.Build.0 = Debug|Win32
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Debug|x64.ActiveCfg = Debug|x64
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Debug|x64.Build.0 = Debug|x64
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Release|Win32.ActiveCfg = Release|Win32
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Release|Win32.Build.0 = Release|Win32
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Release|x64.ActiveCfg = Release|x64
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}.Release|x64.Build.0 = Release|x64
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Debug|Win32.Build.0 = Debug|Win32
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Debug|x64.ActiveCfg = Debug|x64
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Debug|x64.Build.0 = Debug|x64
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Release|Win32.ActiveCfg = Release|Win32
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Release|Win32.Build.0 = Release|Win32
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Release|x64.ActiveCfg = Release|x64
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35}.Release|x64.Build.0 = Release|x64
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Debug|Win32.ActiveCfg = Debug|Win32
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Debug|Win32.Build.0 = Debug|Win32
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Debug|x64.ActiveCfg = Debug|x64
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Debug|x64.Build.0 = Debug|x64
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Release|Win32.ActiveCfg = Release|Win32
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Release|Win32.Build.0 = Release|Win32
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Release|x64.ActiveCfg = Release|x64
-		{595357B8-132D-4F3E-9679-6E52B474E8A5}.Release|x64.Build.0 = Release|x64
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Debug|Win32.Build.0 = Debug|Win32
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Debug|x64.ActiveCfg = Debug|x64
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Debug|x64.Build.0 = Debug|x64
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Release|Win32.ActiveCfg = Release|Win32
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Release|Win32.Build.0 = Release|Win32
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Release|x64.ActiveCfg = Release|x64
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC}.Release|x64.Build.0 = Release|x64
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Debug|Win32.ActiveCfg = Debug|Win32
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Debug|Win32.Build.0 = Debug|Win32
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Debug|x64.ActiveCfg = Debug|x64
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Debug|x64.Build.0 = Debug|x64
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Release|Win32.ActiveCfg = Release|Win32
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Release|Win32.Build.0 = Release|Win32
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Release|x64.ActiveCfg = Release|x64
-		{12C054D3-D396-45F9-912E-8A7FF6548738}.Release|x64.Build.0 = Release|x64
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Debug|Win32.Build.0 = Debug|Win32
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Debug|x64.ActiveCfg = Debug|x64
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Debug|x64.Build.0 = Debug|x64
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Release|Win32.ActiveCfg = Release|Win32
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Release|Win32.Build.0 = Release|Win32
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Release|x64.ActiveCfg = Release|x64
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116}.Release|x64.Build.0 = Release|x64
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Debug|Win32.ActiveCfg = Debug|Win32
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Debug|Win32.Build.0 = Debug|Win32
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Debug|x64.ActiveCfg = Debug|x64
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Debug|x64.Build.0 = Debug|x64
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Release|Win32.ActiveCfg = Release|Win32
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Release|Win32.Build.0 = Release|Win32
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Release|x64.ActiveCfg = Release|x64
-		{A8A0C0C5-A117-4430-B47A-E98603255D01}.Release|x64.Build.0 = Release|x64
 		{EF8EC721-3949-484B-862F-2BB07460526D}.Debug|Win32.ActiveCfg = Debug|Win32
 		{EF8EC721-3949-484B-862F-2BB07460526D}.Debug|Win32.Build.0 = Debug|Win32
 		{EF8EC721-3949-484B-862F-2BB07460526D}.Debug|x64.ActiveCfg = Debug|x64
@@ -515,25 +472,147 @@ Global
 		{970CE296-FB4C-4990-8FC7-F26078998302}.Release|Win32.Build.0 = Release|Win32
 		{970CE296-FB4C-4990-8FC7-F26078998302}.Release|x64.ActiveCfg = Release|x64
 		{970CE296-FB4C-4990-8FC7-F26078998302}.Release|x64.Build.0 = Release|x64
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Debug|Win32.ActiveCfg = Debug|Win32
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Debug|Win32.Build.0 = Debug|Win32
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Debug|x64.ActiveCfg = Debug|x64
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Debug|x64.Build.0 = Debug|x64
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Release|Win32.ActiveCfg = Release|Win32
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Release|Win32.Build.0 = Release|Win32
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Release|x64.ActiveCfg = Release|x64
-		{2C3B0E05-5959-4630-A94F-625C9BCE9B10}.Release|x64.Build.0 = Release|x64
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Debug|Win32.Build.0 = Debug|Win32
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Debug|x64.ActiveCfg = Debug|x64
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Debug|x64.Build.0 = Debug|x64
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Release|Win32.ActiveCfg = Release|Win32
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Release|Win32.Build.0 = Release|Win32
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Release|x64.ActiveCfg = Release|x64
+		{619248C9-5C52-48D3-BD1C-4BE670F6B67F}.Release|x64.Build.0 = Release|x64
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Debug|Win32.Build.0 = Debug|Win32
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Debug|x64.ActiveCfg = Debug|x64
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Debug|x64.Build.0 = Debug|x64
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Release|Win32.ActiveCfg = Release|Win32
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Release|Win32.Build.0 = Release|Win32
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Release|x64.ActiveCfg = Release|x64
+		{F167FF6B-B926-43D7-A5DA-086B87336B06}.Release|x64.Build.0 = Release|x64
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Debug|Win32.Build.0 = Debug|Win32
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Debug|x64.ActiveCfg = Debug|x64
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Debug|x64.Build.0 = Debug|x64
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Release|Win32.ActiveCfg = Release|Win32
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Release|Win32.Build.0 = Release|Win32
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Release|x64.ActiveCfg = Release|x64
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}.Release|x64.Build.0 = Release|x64
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Debug|Win32.ActiveCfg = Debug|Win32
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Debug|Win32.Build.0 = Debug|Win32
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Debug|x64.ActiveCfg = Debug|x64
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Debug|x64.Build.0 = Debug|x64
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Release|Win32.ActiveCfg = Release|Win32
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Release|Win32.Build.0 = Release|Win32
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Release|x64.ActiveCfg = Release|x64
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82}.Release|x64.Build.0 = Release|x64
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Debug|Win32.ActiveCfg = Debug|Win32
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Debug|Win32.Build.0 = Debug|Win32
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Debug|x64.ActiveCfg = Debug|x64
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Debug|x64.Build.0 = Debug|x64
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Release|Win32.ActiveCfg = Release|Win32
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Release|Win32.Build.0 = Release|Win32
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Release|x64.ActiveCfg = Release|x64
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}.Release|x64.Build.0 = Release|x64
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Debug|Win32.Build.0 = Debug|Win32
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Debug|x64.ActiveCfg = Debug|x64
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Debug|x64.Build.0 = Debug|x64
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Release|Win32.ActiveCfg = Release|Win32
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Release|Win32.Build.0 = Release|Win32
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Release|x64.ActiveCfg = Release|x64
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}.Release|x64.Build.0 = Release|x64
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Debug|Win32.ActiveCfg = Debug|Win32
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Debug|Win32.Build.0 = Debug|Win32
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Debug|x64.ActiveCfg = Debug|x64
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Debug|x64.Build.0 = Debug|x64
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Release|Win32.ActiveCfg = Release|Win32
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Release|Win32.Build.0 = Release|Win32
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Release|x64.ActiveCfg = Release|x64
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9}.Release|x64.Build.0 = Release|x64
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Debug|Win32.ActiveCfg = Debug|Win32
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Debug|Win32.Build.0 = Debug|Win32
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Debug|x64.ActiveCfg = Debug|x64
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Debug|x64.Build.0 = Debug|x64
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Release|Win32.ActiveCfg = Release|Win32
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Release|Win32.Build.0 = Release|Win32
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Release|x64.ActiveCfg = Release|x64
+		{CE5B119E-30CC-4D89-9C51-443047010B49}.Release|x64.Build.0 = Release|x64
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Debug|Win32.Build.0 = Debug|Win32
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Debug|x64.ActiveCfg = Debug|x64
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Debug|x64.Build.0 = Debug|x64
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Release|Win32.ActiveCfg = Release|Win32
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Release|Win32.Build.0 = Release|Win32
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Release|x64.ActiveCfg = Release|x64
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}.Release|x64.Build.0 = Release|x64
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Debug|Win32.Build.0 = Debug|Win32
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Debug|x64.ActiveCfg = Debug|x64
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Debug|x64.Build.0 = Debug|x64
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Release|Win32.ActiveCfg = Release|Win32
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Release|Win32.Build.0 = Release|Win32
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Release|x64.ActiveCfg = Release|x64
+		{6A0FF443-4276-4204-BA54-32E85C59D941}.Release|x64.Build.0 = Release|x64
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Debug|Win32.Build.0 = Debug|Win32
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Debug|x64.ActiveCfg = Debug|x64
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Debug|x64.Build.0 = Debug|x64
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Release|Win32.ActiveCfg = Release|Win32
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Release|Win32.Build.0 = Release|Win32
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Release|x64.ActiveCfg = Release|x64
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B}.Release|x64.Build.0 = Release|x64
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Debug|Win32.Build.0 = Debug|Win32
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Debug|x64.ActiveCfg = Debug|x64
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Debug|x64.Build.0 = Debug|x64
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Release|Win32.ActiveCfg = Release|Win32
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Release|Win32.Build.0 = Release|Win32
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Release|x64.ActiveCfg = Release|x64
+		{C86C207F-7D5B-4950-B058-476CC008F27E}.Release|x64.Build.0 = Release|x64
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Debug|Win32.Build.0 = Debug|Win32
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Debug|x64.ActiveCfg = Debug|x64
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Debug|x64.Build.0 = Debug|x64
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Release|Win32.ActiveCfg = Release|Win32
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Release|Win32.Build.0 = Release|Win32
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Release|x64.ActiveCfg = Release|x64
+		{4F7E7FAD-BDF0-4C0E-87F4-24E19265304F}.Release|x64.Build.0 = Release|x64
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Debug|Win32.ActiveCfg = Debug|Win32
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Debug|Win32.Build.0 = Debug|Win32
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Debug|x64.ActiveCfg = Debug|x64
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Debug|x64.Build.0 = Debug|x64
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Release|Win32.ActiveCfg = Release|Win32
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Release|Win32.Build.0 = Release|Win32
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Release|x64.ActiveCfg = Release|x64
+		{E8BA727C-3251-41FC-9587-1588E1950E2E}.Release|x64.Build.0 = Release|x64
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Debug|Win32.Build.0 = Debug|Win32
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Debug|x64.ActiveCfg = Debug|x64
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Debug|x64.Build.0 = Debug|x64
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Release|Win32.ActiveCfg = Release|Win32
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Release|Win32.Build.0 = Release|Win32
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Release|x64.ActiveCfg = Release|x64
+		{000E8237-2470-4133-A39F-CFC19F595DBF}.Release|x64.Build.0 = Release|x64
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Debug|Win32.ActiveCfg = Debug|Win32
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Debug|Win32.Build.0 = Debug|Win32
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Debug|x64.ActiveCfg = Debug|x64
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Debug|x64.Build.0 = Debug|x64
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Release|Win32.ActiveCfg = Release|Win32
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Release|Win32.Build.0 = Release|Win32
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Release|x64.ActiveCfg = Release|x64
+		{4491049B-1A5D-492C-836F-32871AB8FE62}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{D08D4EA4-8AF5-4FD2-BFBE-4FFB247B2A35} = {E7608C74-F664-43A4-823C-D4370571FD4C}
-		{595357B8-132D-4F3E-9679-6E52B474E8A5} = {E7608C74-F664-43A4-823C-D4370571FD4C}
-		{EC9BB75A-9691-4DAF-A876-5116DDCBAFBC} = {E7608C74-F664-43A4-823C-D4370571FD4C}
-		{12C054D3-D396-45F9-912E-8A7FF6548738} = {E7608C74-F664-43A4-823C-D4370571FD4C}
-		{BCC584B3-571E-4441-8ABF-D2CDD0646116} = {E7608C74-F664-43A4-823C-D4370571FD4C}
-		{A8A0C0C5-A117-4430-B47A-E98603255D01} = {E7608C74-F664-43A4-823C-D4370571FD4C}
-		{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB} = {E7608C74-F664-43A4-823C-D4370571FD4C}
+		{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{E42AC159-E83D-4812-BFE2-E5196DC0FA82} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{5A8CC395-8D24-4D00-8208-079FFCA0BDA5} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{7974C002-4D5E-4442-8DE6-93D3F4C777A9} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{CE5B119E-30CC-4D89-9C51-443047010B49} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{6A0FF443-4276-4204-BA54-32E85C59D941} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
+		{6E62E7BF-D2E0-4E24-9836-D5FB1032BC7B} = {F5BE7648-E253-49AE-B86B-F651383ED45B}
 	EndGlobalSection
 EndGlobal
diff --git a/SiloWindows/MSVC2012/Tests/alltypes.vcxproj b/SiloWindows/MSVC2012/Tests/alltypes.vcxproj
new file mode 100644
index 0000000..a71814a
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/alltypes.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{627C8E54-0ABD-4B8A-B76B-0BD13F5E684B}</ProjectGuid>
+    <RootNamespace>alltypes</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\alltypes.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/SiloWindows/MSVC2012/Tests/arbpoly.vcxproj b/SiloWindows/MSVC2012/Tests/arbpoly.vcxproj
new file mode 100644
index 0000000..dabac65
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/arbpoly.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{970CE296-FB4C-4990-8FC7-F26078998302}</ProjectGuid>
+    <RootNamespace>arbpoly</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\arbpoly.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/arbpoly3d.vcxproj b/SiloWindows/MSVC2012/Tests/arbpoly3d.vcxproj
new file mode 100644
index 0000000..8bd42c8
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/arbpoly3d.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{BF87D83F-575E-49B5-87BD-02C6E581FD6A}</ProjectGuid>
+    <RootNamespace>arbpoly3d</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\arbpoly3d.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/array.vcxproj b/SiloWindows/MSVC2012/Tests/array.vcxproj
new file mode 100644
index 0000000..4768827
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/array.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{CB409787-8ACF-4854-A2AB-6CD727E7120D}</ProjectGuid>
+    <RootNamespace>array</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\array.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/array_f.vfproj b/SiloWindows/MSVC2012/Tests/array_f.vfproj
new file mode 100644
index 0000000..d3d4c6d
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/array_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{0BBBC8AF-EA63-4B58-AAD4-2D4F0CC4DA85}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\arrayf77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/compression.vcxproj b/SiloWindows/MSVC2012/Tests/compression.vcxproj
new file mode 100644
index 0000000..6f858da
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/compression.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{AA9DE89B-47C8-4164-944A-6D42B4AF0FEB}</ProjectGuid>
+    <RootNamespace>compression</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\compression.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/csg.vcxproj b/SiloWindows/MSVC2012/Tests/csg.vcxproj
new file mode 100644
index 0000000..503f459
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/csg.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{6DE8948E-8CF8-4650-9749-1C21066AA957}</ProjectGuid>
+    <RootNamespace>csg</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\csg.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/csgmesh_f.vfproj b/SiloWindows/MSVC2012/Tests/csgmesh_f.vfproj
new file mode 100644
index 0000000..889b02d
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/csgmesh_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{E42AC159-E83D-4812-BFE2-E5196DC0FA82}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\csgmesh.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/curve_f.vfproj b/SiloWindows/MSVC2012/Tests/curve_f.vfproj
new file mode 100644
index 0000000..d5d6754
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/curve_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{5A8CC395-8D24-4D00-8208-079FFCA0BDA5}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\curvef77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/dirtest.vcxproj b/SiloWindows/MSVC2012/Tests/dirtest.vcxproj
new file mode 100644
index 0000000..2fafa8d
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/dirtest.vcxproj
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{B8FE1ABF-E1AD-41C7-AFAE-333BAB3636E1}</ProjectGuid>
+    <RootNamespace>dirtest</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\dir.c" />
+    <ClCompile Include="..\..\..\tests\testlib.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/empty.vcxproj b/SiloWindows/MSVC2012/Tests/empty.vcxproj
new file mode 100644
index 0000000..02220d6
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/empty.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{F167FF6B-B926-43D7-A5DA-086B87336B06}</ProjectGuid>
+    <RootNamespace>empty</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\empty.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/extface.vcxproj b/SiloWindows/MSVC2012/Tests/extface.vcxproj
new file mode 100644
index 0000000..8b65114
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/extface.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{3482A43B-3A21-4583-88C4-45A4422E2307}</ProjectGuid>
+    <RootNamespace>extface</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\extface.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/grab.vcxproj b/SiloWindows/MSVC2012/Tests/grab.vcxproj
new file mode 100644
index 0000000..252d54a
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/grab.vcxproj
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{DCFFC0C8-1C81-4016-8364-1678FAB1D2D2}</ProjectGuid>
+    <RootNamespace>grab</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(HDF5_INC_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(HDF5_INC_DIR_X64);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR_X64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include\;$(HDF5_INC_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\include;$(HDF5_INC_DIR_X64);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR_X64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\grab.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/group_test.vcxproj b/SiloWindows/MSVC2012/Tests/group_test.vcxproj
new file mode 100644
index 0000000..4a8611e
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/group_test.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{69340E63-F15C-4A33-85B7-344666F8F25C}</ProjectGuid>
+    <RootNamespace>group_test</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\group_test.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/largefile.vcxproj b/SiloWindows/MSVC2012/Tests/largefile.vcxproj
new file mode 100644
index 0000000..1a2ece7
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/largefile.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{EA0DA3EC-DD78-4C57-A0A9-F0EEAE35A85A}</ProjectGuid>
+    <RootNamespace>largefile</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\largefile.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/listtypes.vcxproj b/SiloWindows/MSVC2012/Tests/listtypes.vcxproj
new file mode 100644
index 0000000..27c4104
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/listtypes.vcxproj
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{A79DA077-0644-4DA7-8D8A-BB115597F474}</ProjectGuid>
+    <RootNamespace>listtypes</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+    <Import Project="..\DepLibs.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+    <Import Project="..\DepLibs.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+    <Import Project="..\DepLibs.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+    <Import Project="..\DepLibs.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\listtypes.c" />
+    <ClCompile Include="..\..\..\tests\listtypes_main.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/mat3d_3across.vcxproj b/SiloWindows/MSVC2012/Tests/mat3d_3across.vcxproj
new file mode 100644
index 0000000..61ea99c
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/mat3d_3across.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{CEA025B3-7259-4852-980F-CB39E8206304}</ProjectGuid>
+    <RootNamespace>mat3d_3across</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\mat3d_3across.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/mat_f.vfproj b/SiloWindows/MSVC2012/Tests/mat_f.vfproj
new file mode 100644
index 0000000..01971a2
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/mat_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{7B759F0D-723F-4BFA-B99A-21AD2BC7B45B}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\matf77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/merge_block.vcxproj b/SiloWindows/MSVC2012/Tests/merge_block.vcxproj
new file mode 100644
index 0000000..2e9a4aa
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/merge_block.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2B22FE6C-0C77-445A-8320-50EEF60EEF7D}</ProjectGuid>
+    <RootNamespace>merge_block</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\merge_block.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/mmadjacency.vcxproj b/SiloWindows/MSVC2012/Tests/mmadjacency.vcxproj
new file mode 100644
index 0000000..1ace8c2
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/mmadjacency.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{809F6E22-2B80-4264-A220-7974EC9EDBBF}</ProjectGuid>
+    <RootNamespace>mmadjacency</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\mmadjacency.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/multi_file.vcxproj b/SiloWindows/MSVC2012/Tests/multi_file.vcxproj
new file mode 100644
index 0000000..60c617e
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/multi_file.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8CC26B54-D539-4A0A-B461-26F074B790FD}</ProjectGuid>
+    <RootNamespace>multi_file</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\multi_file.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/multi_test.vcxproj b/SiloWindows/MSVC2012/Tests/multi_test.vcxproj
new file mode 100644
index 0000000..aad98c4
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/multi_test.vcxproj
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{7535A535-FDEC-4448-AF9C-C031C9EA8459}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)multi_test.tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(OutDir)multi_test.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(OutDir)</AssemblerListingLocation>
+      <ObjectFileName>$(OutDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(OutDir)multi_test</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(OutDir)multi_test.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(OutDir)multi_test.tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(OutDir)multi_test.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(OutDir)</AssemblerListingLocation>
+      <ObjectFileName>$(OutDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(OutDir)multi_test</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(OutDir)multi_test.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)multi_test.tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(OutDir)multi_test.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(OutDir)</AssemblerListingLocation>
+      <ObjectFileName>$(OutDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(OutDir)multi_test.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(OutDir)multi_test.tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(OutDir)multi_test.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(OutDir)</AssemblerListingLocation>
+      <ObjectFileName>$(OutDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(OutDir)multi_test.pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\multi_test.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/multispec.vcxproj b/SiloWindows/MSVC2012/Tests/multispec.vcxproj
new file mode 100644
index 0000000..474284d
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/multispec.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2D46EF91-58B2-43B5-ADD7-6908D6794578}</ProjectGuid>
+    <RootNamespace>mutlispec</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\multispec.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/namescheme.vcxproj b/SiloWindows/MSVC2012/Tests/namescheme.vcxproj
new file mode 100644
index 0000000..2c8e9d9
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/namescheme.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}</ProjectGuid>
+    <RootNamespace>namescheme</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\namescheme.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/obj.vcxproj b/SiloWindows/MSVC2012/Tests/obj.vcxproj
new file mode 100644
index 0000000..97f0d1b
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/obj.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{AC0F21DF-ECA4-4B17-9829-59634B68B0D2}</ProjectGuid>
+    <RootNamespace>obj</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\obj.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/onehex.vcxproj b/SiloWindows/MSVC2012/Tests/onehex.vcxproj
new file mode 100644
index 0000000..cca43b7
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/onehex.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{3863899B-7F9F-4823-9383-AE2205DCB054}</ProjectGuid>
+    <RootNamespace>onehex</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\onehex.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/oneprism.vcxproj b/SiloWindows/MSVC2012/Tests/oneprism.vcxproj
new file mode 100644
index 0000000..4f02aee
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/oneprism.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4BCA7F35-0742-424F-8E50-39B934312F8F}</ProjectGuid>
+    <RootNamespace>oneprism</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\oneprism.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/onepyramid.vcxproj b/SiloWindows/MSVC2012/Tests/onepyramid.vcxproj
new file mode 100644
index 0000000..75dcd00
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/onepyramid.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{2AFC873D-E906-4145-A0CB-6264E8CAE97D}</ProjectGuid>
+    <RootNamespace>onepyramid</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\onepyramid.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/onetet.vcxproj b/SiloWindows/MSVC2012/Tests/onetet.vcxproj
new file mode 100644
index 0000000..ef087c0
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/onetet.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{A76CCA62-BC5F-44F8-B090-9C45DA138680}</ProjectGuid>
+    <RootNamespace>onetet</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\onetet.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/partial_io.vcxproj b/SiloWindows/MSVC2012/Tests/partial_io.vcxproj
new file mode 100644
index 0000000..a1f1eaa
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/partial_io.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4F6A7EC6-F141-4512-B2A8-D108CBD6FAC1}</ProjectGuid>
+    <RootNamespace>partial_io</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\partial_io.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/point.vcxproj b/SiloWindows/MSVC2012/Tests/point.vcxproj
new file mode 100644
index 0000000..9effe9d
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/point.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{025CFEA1-6C43-404D-9DA4-5392A17FA162}</ProjectGuid>
+    <RootNamespace>point</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\point.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/point_f.vfproj b/SiloWindows/MSVC2012/Tests/point_f.vfproj
new file mode 100644
index 0000000..e81123a
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/point_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{7974C002-4D5E-4442-8DE6-93D3F4C777A9}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\pointf77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/polyzl.vcxproj b/SiloWindows/MSVC2012/Tests/polyzl.vcxproj
new file mode 100644
index 0000000..a65e1ae
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/polyzl.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8C6BC636-FF71-4D58-9D63-E12265523982}</ProjectGuid>
+    <RootNamespace>polyzl</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\polyzl.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/quad.vcxproj b/SiloWindows/MSVC2012/Tests/quad.vcxproj
new file mode 100644
index 0000000..92f99b4
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/quad.vcxproj
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{4D5EA26A-8356-4665-A13D-51CCEE2BA7F4}</ProjectGuid>
+    <RootNamespace>quad</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\quad.c" />
+    <ClCompile Include="..\..\..\tests\testlib.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/quad_f.vfproj b/SiloWindows/MSVC2012/Tests/quad_f.vfproj
new file mode 100644
index 0000000..c05ebe9
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/quad_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{CE5B119E-30CC-4D89-9C51-443047010B49}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\quadf77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/sami.vcxproj b/SiloWindows/MSVC2012/Tests/sami.vcxproj
new file mode 100644
index 0000000..4d30334
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/sami.vcxproj
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{B3C7F964-68B8-4F8C-B5E7-7607836FB101}</ProjectGuid>
+    <RootNamespace>sami</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\DepLibs.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+    <Import Project="..\HDF5_Defines.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(HDF5_INC_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(HDF5_INC_DIR_X64);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR_X64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(HDF5_INC_DIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(HDF5_INC_DIR_X64);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;hdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);$(HDF5_LIB_DIR_X64);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\sami.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/simple.vcxproj b/SiloWindows/MSVC2012/Tests/simple.vcxproj
new file mode 100644
index 0000000..43816b0
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/simple.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{7AB46C61-04D5-4E77-AD3F-E7726F3E173A}</ProjectGuid>
+    <RootNamespace>simple</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\simple.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/spec.vcxproj b/SiloWindows/MSVC2012/Tests/spec.vcxproj
new file mode 100644
index 0000000..06588b0
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/spec.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{7A5F618C-F98A-4F8E-BBC7-C4F5C6BCD5A4}</ProjectGuid>
+    <RootNamespace>spec</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\spec.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/specmix.vcxproj b/SiloWindows/MSVC2012/Tests/specmix.vcxproj
new file mode 100644
index 0000000..9574cc2
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/specmix.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{27C64509-94EB-406D-9978-93AE531CEB1E}</ProjectGuid>
+    <RootNamespace>specmix</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\specmix.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/subhex.vcxproj b/SiloWindows/MSVC2012/Tests/subhex.vcxproj
new file mode 100644
index 0000000..3030628
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/subhex.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8C02951E-155B-4D09-A1DD-F98695F02A0E}</ProjectGuid>
+    <RootNamespace>subhex</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\subhex.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/testall.vcxproj b/SiloWindows/MSVC2012/Tests/testall.vcxproj
new file mode 100644
index 0000000..e1329de
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/testall.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{E4105EA9-2AB2-4656-B966-01F16961A14B}</ProjectGuid>
+    <RootNamespace>testall</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\testall.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/testall_f.vfproj b/SiloWindows/MSVC2012/Tests/testall_f.vfproj
new file mode 100644
index 0000000..0bb0c53
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/testall_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{8AE7FF32-0E1C-4192-9CF2-A674F81A68E5}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\testallf77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/testfs.vcxproj b/SiloWindows/MSVC2012/Tests/testfs.vcxproj
new file mode 100644
index 0000000..a04a67a
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/testfs.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{619248C9-5C52-48D3-BD1C-4BE670F6B67F}</ProjectGuid>
+    <RootNamespace>testfs</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\testfs.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/testpdb.vcxproj b/SiloWindows/MSVC2012/Tests/testpdb.vcxproj
new file mode 100644
index 0000000..e0735d2
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/testpdb.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{29110B58-9FD5-4A8E-B9F7-064650EE16C6}</ProjectGuid>
+    <RootNamespace>testpdb</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\src\score;$(SolutionDir)..\..\..\src\pdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;PDB_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\src\score;$(SolutionDir)..\..\..\src\pdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;PDB_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\src\score;$(SolutionDir)..\..\..\src\pdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PDB_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(SoltuionDir)..\..\..\src\score;$(SoltuionDir)..\..\..\src\pdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PDB_LITE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\testpdb.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/twohex.vcxproj b/SiloWindows/MSVC2012/Tests/twohex.vcxproj
new file mode 100644
index 0000000..dd95147
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/twohex.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{64A6CE79-710F-405C-AAE8-F604E74A4374}</ProjectGuid>
+    <RootNamespace>twohex</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\twohex.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/ucd.vcxproj b/SiloWindows/MSVC2012/Tests/ucd.vcxproj
new file mode 100644
index 0000000..b6f49ed
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/ucd.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{9B955616-D58C-4ED8-AB6F-FBA74E768B54}</ProjectGuid>
+    <RootNamespace>ucd</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\ucd.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/ucd1d.vcxproj b/SiloWindows/MSVC2012/Tests/ucd1d.vcxproj
new file mode 100644
index 0000000..f34aa4d
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/ucd1d.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{C065DCD0-DE87-4B6E-A1E6-8F7EDB272D53}</ProjectGuid>
+    <RootNamespace>ucd1d</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\ucd1d.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/ucd_f.vfproj b/SiloWindows/MSVC2012/Tests/ucd_f.vfproj
new file mode 100644
index 0000000..5272cfe
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/ucd_f.vfproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{6A0FF443-4276-4204-BA54-32E85C59D941}">
+	<Platforms>
+		<Platform Name="Win32"/>
+		<Platform Name="x64"/></Platforms>
+	<Configurations>
+		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" WarnInterfaces="true" Traceback="true" BoundsCheck="true" StackFrameCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" GenerateDebugInformation="true" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration>
+		<Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)..\bin\" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\$(ProjectName)">
+				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="$(SolutionDir)..\..\..\src\silo" RuntimeLibrary="rtMultiThreadedDLL"/>
+				<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(Platform)\$(Configuration)" ManifestFile="$(IntDir)\$(TargetName).intermediate.manifest" SubSystem="subSystemConsole" AdditionalDependencies="silohdf5.lib"/>
+				<Tool Name="VFResourceCompilerTool"/>
+				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64"/>
+				<Tool Name="VFCustomBuildTool"/>
+				<Tool Name="VFPreLinkEventTool"/>
+				<Tool Name="VFPreBuildEventTool"/>
+				<Tool Name="VFPostBuildEventTool"/>
+				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(IntDir)$(TargetName).embed.manifest" ResourceFile="$(IntDir)$(TargetName).embed.manifest.res"/></Configuration></Configurations>
+	<Files>
+		<Filter Name="Header Files" Filter="fi;fd"/>
+		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
+		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+		<File RelativePath="..\..\..\tests\ucdf77.f"/></Filter></Files>
+	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC2012/Tests/ucdsamp3.vcxproj b/SiloWindows/MSVC2012/Tests/ucdsamp3.vcxproj
new file mode 100644
index 0000000..3265b78
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/ucdsamp3.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{94D10A14-5A9B-4E1E-B204-DE3196750126}</ProjectGuid>
+    <RootNamespace>ucdsamp3</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\ucdsamp3.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/version.vcxproj b/SiloWindows/MSVC2012/Tests/version.vcxproj
new file mode 100644
index 0000000..a302d25
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/version.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{CBBCFD38-0F91-4CA2-8CBF-2833AC284438}</ProjectGuid>
+    <RootNamespace>version</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\version.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2012/Tests/wave.vcxproj b/SiloWindows/MSVC2012/Tests/wave.vcxproj
new file mode 100644
index 0000000..5d8699e
--- /dev/null
+++ b/SiloWindows/MSVC2012/Tests/wave.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{3D443B05-403C-4907-8F50-DC396DB6BB23}</ProjectGuid>
+    <RootNamespace>wave</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <PlatformToolset>v110</PlatformToolset>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="TestIncludes.props" />
+    <Import Project="..\NO_SEC_DEP.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>$(SolutionDir)..\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <TypeLibraryName>$(OutDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+      <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
+      <HeaderFileName />
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader />
+      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DisableSpecificWarnings>4244;4305;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>silohdf5.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(OutDir)$(TargetFileName)</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <AdditionalLibraryDirectories>$(SolutionDir)..\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention />
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\tests\wave.c" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC9/bin/RunTests.bat b/SiloWindows/MSVC2012/bin/RunTests.bat
similarity index 81%
rename from SiloWindows/MSVC9/bin/RunTests.bat
rename to SiloWindows/MSVC2012/bin/RunTests.bat
index 42e6723..1d631ad 100644
--- a/SiloWindows/MSVC9/bin/RunTests.bat
+++ b/SiloWindows/MSVC2012/bin/RunTests.bat
@@ -3,17 +3,16 @@
 set errorfile=.\error.txt 
 set resultsfile=.\results.txt 
 set drivers=(DB_PDB DB_HDF5)
-set buildDir=..\Win32\DLLwithHDF5_Release\
+set buildDir=..\x64\Release\
 
-
-set gp=(version.exe namescheme.exe point.exe empty.exe extface.exe testall.exe TesReadMask.exe array.exe multi_test.exe partial_io.exe simple.exe ucd.exe ucdsamp3.exe obj.exe onehex.exe oneprism.exe onepyramid.exe onetet.exe subhex.exe twohex.exe multispec.exe sami.exe specmix.exe spec.exe alltypes.exe wave.exe polyzl.exe csg.exe rocket.exe mmadjacency.exe mat3d_3across.exe ucd1d.exe dirtest.exe quad.exe namescheme.exe arbpoly.exe arbpoly3d.exe)
+set gp=(version.exe namescheme.exe point.exe empty.exe extface.exe testall.exe TesReadMask.exe array.exe multi_test.exe partial_io.exe simple.exe ucd.exe ucdsamp3.exe obj.exe onehex.exe oneprism.exe onepyramid.exe onetet.exe subhex.exe twohex.exe multispec.exe sami.exe specmix.exe spec.exe alltypes.exe wave.exe polyzl.exe csg.exe mmadjacency.exe mat3d_3across.exe ucd1d.exe dirtest.exe quad.exe namescheme.exe arbpoly.exe arbpoly3d.exe testfs.exe efcentering.exe arbpoly2d.exe majorder.exe)
 
 
 :: copy necessary dlls to this executable directory
-if not exist .\silohdf5.dll  copy %buildDir%\silohdf5.dll .
-if not exist .\hdf5dll.dll   copy %HDF5_LIB_DIR%\hdf5dll.dll .
-if not exist .\zlib1.dll     copy %ZLIB_LIB_DIR%\zlib1.dll .
-if not exist .\szlibdll.dll  copy %SZIP_LIB_DIR%\szlibdll.dll .
+::if not exist .\silohdf5.dll  copy %buildDir%\silohdf5.dll .
+::if not exist .\hdf5.dll   copy %HDF5_BIN_DIR%\hdf5.dll 
+::if not exist .\zlib.dll     copy %ZLIB_LIB_DIR%\zlib.dll .
+::if not exist .\szlibdll.dll  copy %SZIP_LIB_DIR%\szlibdll.dll .
 
 if exist %resultsfile% (del %resultsfile%)
 
@@ -117,7 +116,7 @@ REM    echo ============================================== >> %resultsfile%
 REM )
 
 REM Fortran tests
-set ft=(array_f.exe curve_f.exe mat_f.exe point_f.exe quad_f.exe testall_f.exe ucd_f.exe)
+set ft=(array_f.exe curve_f.exe mat_f.exe point_f.exe quad_f.exe testall_f.exe ucd_f.exe csgmesh_f.exe array_f90.exe)
 for %%v in %ft% do (
     if exist %%v (
         echo Running %%v
@@ -130,6 +129,16 @@ for %%v in %ft% do (
     )
 )
 
+if exist realloc_obj_and_opts.exe (
+    echo Running realloc_obj_and_opts.exe  
+    echo Running realloc_obj_and_opts.exe  >> %resultsfile%
+    realloc_obj_and_opts.exe > %errorfile% 2>&1
+    type %errorfile% >> %resultsfile% 
+    echo exit code: %errorlevel% >> %resultsfile%
+    echo ============================================== >> %resultsfile%
+    echo ============================================== >> %resultsfile%
+)
+
 
 ::print results
 ::type %resultsfile%
diff --git a/SiloWindows/MSVC2010/browser.vcxproj b/SiloWindows/MSVC2012/browser.vcxproj
similarity index 89%
rename from SiloWindows/MSVC2010/browser.vcxproj
rename to SiloWindows/MSVC2012/browser.vcxproj
index c950b4a..33610ad 100644
--- a/SiloWindows/MSVC2010/browser.vcxproj
+++ b/SiloWindows/MSVC2012/browser.vcxproj
@@ -27,22 +27,26 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
@@ -72,19 +76,21 @@
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>$(Platform)\$(Configuration)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <LinkIncremental>false</LinkIncremental>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -107,12 +113,12 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\include;..\..\tools\browser;..\..\src\silo;..\..\src\filters;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\browser;$(SolutionDir)..\..\src\silo;$(SolutionDir)..\..\src\filters;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -137,7 +143,7 @@
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
@@ -160,7 +166,7 @@
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
diff --git a/SiloWindows/MSVC2010/browser.vcxproj.filters b/SiloWindows/MSVC2012/browser.vcxproj.filters
similarity index 100%
rename from SiloWindows/MSVC2010/browser.vcxproj.filters
rename to SiloWindows/MSVC2012/browser.vcxproj.filters
diff --git a/SiloWindows/MSVC2010/pdb_detect/pdb_detect.vcxproj b/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj
similarity index 96%
rename from SiloWindows/MSVC2010/pdb_detect/pdb_detect.vcxproj
rename to SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj
index f9b6409..fe3451a 100644
--- a/SiloWindows/MSVC2010/pdb_detect/pdb_detect.vcxproj
+++ b/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj
@@ -20,11 +20,13 @@
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
@@ -128,4 +130,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/SiloWindows/MSVC2010/pdb_detect/pdb_detect.vcxproj.filters b/SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj.filters
similarity index 100%
rename from SiloWindows/MSVC2010/pdb_detect/pdb_detect.vcxproj.filters
rename to SiloWindows/MSVC2012/pdb_detect/pdb_detect.vcxproj.filters
diff --git a/SiloWindows/MSVC2010/silex.vcxproj b/SiloWindows/MSVC2012/silex.vcxproj
similarity index 86%
rename from SiloWindows/MSVC2010/silex.vcxproj
rename to SiloWindows/MSVC2012/silex.vcxproj
index 33c90ba..682f8b5 100644
--- a/SiloWindows/MSVC2010/silex.vcxproj
+++ b/SiloWindows/MSVC2012/silex.vcxproj
@@ -28,23 +28,27 @@
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
@@ -80,23 +84,23 @@
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)$(PlatformName)\$(Configuration)\</OutDir>
-    <IntDir>$(PlatformName)\$(Configuration)\</IntDir>
+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -105,7 +109,7 @@
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;$(SolutionDir)..\..\src\silo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -123,7 +127,7 @@
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;$(SolutionDir)..\..\src\silo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -143,11 +147,11 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;$(SolutionDir)..\..\src\silo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
@@ -165,11 +169,11 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\include;$(SolutionDir)..\..\tools\silex;$(SolutionDir)..\..\src\silo;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
@@ -209,4 +213,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/SiloWindows/MSVC2010/silex.vcxproj.filters b/SiloWindows/MSVC2012/silex.vcxproj.filters
similarity index 100%
rename from SiloWindows/MSVC2010/silex.vcxproj.filters
rename to SiloWindows/MSVC2012/silex.vcxproj.filters
diff --git a/SiloWindows/MSVC9/BaseIncludes.vsprops b/SiloWindows/MSVC9/BaseIncludes.vsprops
deleted file mode 100644
index 63012a1..0000000
--- a/SiloWindows/MSVC9/BaseIncludes.vsprops
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="BaseIncludes"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-		AdditionalIncludeDirectories="..\..\include;..\..\..\src\debug;..\..\..\src\hdf5_drv;..\..\..\src\pdb;..\..\..\src\pdb_drv;..\..\..\src\score;..\..\..\src\silo;..\..\..\src\taurus;..\..\..\src\unknown"
-
-	/>
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/DepLibs.vsprops b/SiloWindows/MSVC9/DepLibs.vsprops
deleted file mode 100644
index a81ffa5..0000000
--- a/SiloWindows/MSVC9/DepLibs.vsprops
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-    ProjectType="Visual C++"
-	Version="8.00"
-    Name="DepLibs"
-    >
-    <UserMacro
-        Name="HDF5_INC_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC90\include"
-    />
-    <UserMacro
-        Name="HDF5_INC_DIR_X64"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC90-x64\include"
-    />
-    <UserMacro
-        Name="HDF5_LIB_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC90\lib"
-    />
-    <UserMacro
-        Name="HDF5_LIB_DIR_X64"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\hdf5-1.8.7\MSVC90-x64\lib"
-    />
-    <UserMacro
-        Name="SZIP_INC_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\szip\include"
-    />
-    <UserMacro
-        Name="SZIP_LIB_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\szip\lib\MSVC90"
-    />
-    <UserMacro
-        Name="SZIP_LIB_DIR_X64"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\szip\lib\MSVC90-x64"
-    />
-    <UserMacro
-        Name="ZLIB_INC_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\zlib\include"
-    />
-    <UserMacro
-        Name="ZLIB_LIB_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\zlib\lib\MSVC90"
-    />
-    <UserMacro
-        Name="ZLIB_LIB_DIR_X64"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\zlib\lib\MSVC90-x64"
-    />
-    <UserMacro
-        Name="QT_INC_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\Qt-4.8.3\include"
-    />
-    <UserMacro
-        Name="QT_LIB_DIR"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\Qt-4.8.3\lib\MSVC90"
-    />
-    <UserMacro
-        Name="QT_LIB_DIR_X64"
-        Value="C:\VisIt\TRUNK\windowsbuild\ThirdParty\Qt-4.8.3\lib\MSVC90-x64"
-    />
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/HDF5_Defines.vsprops b/SiloWindows/MSVC9/HDF5_Defines.vsprops
deleted file mode 100644
index d4b0bc5..0000000
--- a/SiloWindows/MSVC9/HDF5_Defines.vsprops
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="HDF5_DEFINES"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-		PreprocessorDefinitions="HAVE_HDF5_DRIVER=1;HAVE_HDF5_H=1;HAVE_LIBHDF5=1"
-	/>
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/ModernDTPR.vsprops b/SiloWindows/MSVC9/ModernDTPR.vsprops
deleted file mode 100644
index 417e921..0000000
--- a/SiloWindows/MSVC9/ModernDTPR.vsprops
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="MODERN_DTPTR"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-		PreprocessorDefinitions="DB_USE_MODERN_DTPTR"
-	/>
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/NO_SEC_DEP.vsprops b/SiloWindows/MSVC9/NO_SEC_DEP.vsprops
deleted file mode 100644
index 9dfa9bc..0000000
--- a/SiloWindows/MSVC9/NO_SEC_DEP.vsprops
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="NO_SEC_DEP"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-		PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_SCL_NO_DEPRECATE"
-	/>
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/QT_Defines.vsprops b/SiloWindows/MSVC9/QT_Defines.vsprops
deleted file mode 100644
index e3c8f30..0000000
--- a/SiloWindows/MSVC9/QT_Defines.vsprops
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="QT_DEFINES"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-                AdditionalIncludeDirectories="$(QT_INC_DIR);$(QT_INC_DIR)\QtCore;"
-	/>
-        <Tool
-	    Name="VCLinkterTool"
-	    AdditionalLibraryDirectories="$(QT_LIB_DIR);"
-            AdditionalDependencies="QtCore4.lib;QtGui4.lib;silohdf5.lib;"
-        />
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/Silo.vcproj b/SiloWindows/MSVC9/Silo.vcproj
deleted file mode 100644
index 79ba6cf..0000000
--- a/SiloWindows/MSVC9/Silo.vcproj
+++ /dev/null
@@ -1,570 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="Silo"
-	ProjectGUID="{20BFB7B0-9F43-43BB-B188-555DEA431CDF}"
-	RootNamespace="Silo"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\HDF5_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				PreprocessorDefinitions="NDEBUG"
-				MkTypLibCompatible="true"
-				SuppressStartupBanner="true"
-				TargetEnvironment="1"
-				TypeLibraryName="$(OutDir)\silohdf5.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="2"
-				AdditionalIncludeDirectories="..\include;..\..\src\debug;..\..\src\hdf5_drv;..\..\src\pdb;..\..\src\pdb_drv;..\..\src\score;..\..\src\silo;..\..\src\taurus;..\..\src\unknown;$(HDF5_INC_DIR);$(ZLIB_INC_DIR)"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silohdf5.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				CompileAs="0"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="zlib1.lib hdf5dll.lib"
-				OutputFile="$(OutDir)\silohdf5.dll"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(ZLIB_LIB_DIR);$(HDF5_LIB_DIR)"
-				ProgramDatabaseFile="$(OutDir)\silohdf5.pdb"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)\silohdf5.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(HDF5_LIB_DIR)\hdf5dll.dll $(OutDir)&#x0D;&#x0A;copy $(ZLIB_LIB_DIR)\zlib1.dll $(OutDir)&#x0D;&#x0A;copy $(SZIP_LIB_DIR)\szlibdll.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\HDF5_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				PreprocessorDefinitions="NDEBUG"
-				MkTypLibCompatible="true"
-				SuppressStartupBanner="true"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\silohdf5.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="2"
-				AdditionalIncludeDirectories="..\include;..\..\src\debug;..\..\src\hdf5_drv;..\..\src\pdb;..\..\src\pdb_drv;..\..\src\score;..\..\src\silo;..\..\src\taurus;..\..\src\unknown;$(HDF5_INC_DIR_X64);$(ZLIB_INC_DIR)"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silohdf5.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				CompileAs="0"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="zlib1.lib hdf5dll.lib"
-				OutputFile="$(OutDir)\silohdf5.dll"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(ZLIB_LIB_DIR_X64);$(HDF5_LIB_DIR_X64)"
-				ProgramDatabaseFile="$(OutDir)\silohdf5.pdb"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)\silohdf5.lib"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(HDF5_LIB_DIR_X64)\hdf5dll.dll $(OutDir)&#x0D;&#x0A;copy $(ZLIB_LIB_DIR_X64)\zlib1.dll $(OutDir)&#x0D;&#x0A;copy $(SZIP_LIB_DIR_X64)\szlibdll.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\HDF5_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				PreprocessorDefinitions=""
-				MkTypLibCompatible="true"
-				SuppressStartupBanner="true"
-				TargetEnvironment="1"
-				TypeLibraryName="$(OutDir)\silohdf5.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\src\debug;..\..\src\hdf5_drv;..\..\src\pdb;..\..\src\pdb_drv;..\..\src\score;..\..\src\silo;..\..\src\taurus;..\..\src\unknown;$(HDF5_INC_DIR);$(ZLIB_INC_DIR)"
-				PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silohdf5.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				CompileAs="0"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="zlib1.lib hdf5dll.lib"
-				OutputFile="$(OutDir)\silohdf5.dll"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(ZLIB_LIB_DIR);$(HDF5_LIB_DIR)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\silohdf5.pdb"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)\silohdf5.lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(HDF5_LIB_DIR)\hdf5dll.dll $(OutDir)&#x0D;&#x0A;copy $(ZLIB_LIB_DIR)\zlib1.dll $(OutDir)&#x0D;&#x0A;copy $(SZIP_LIB_DIR)\szlibdll.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="2"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\HDF5_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				PreprocessorDefinitions=""
-				MkTypLibCompatible="true"
-				SuppressStartupBanner="true"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\silohdf5.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\src\debug;..\..\src\hdf5_drv;..\..\src\pdb;..\..\src\pdb_drv;..\..\src\score;..\..\src\silo;..\..\src\taurus;..\..\src\unknown;$(HDF5_INC_DIR_X64);$(ZLIB_INC_DIR)"
-				PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;SILO_EXPORTS;LITE_EXPORTS"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silohdf5.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				CompileAs="0"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="zlib1.lib hdf5dll.lib"
-				OutputFile="$(OutDir)\silohdf5.dll"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(ZLIB_LIB_DIR_X64);$(HDF5_LIB_DIR_X64)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\silohdf5.pdb"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				ImportLibrary="$(OutDir)\silohdf5.lib"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(HDF5_LIB_DIR_X64)\hdf5dll.dll $(OutDir)&#x0D;&#x0A;copy $(ZLIB_LIB_DIR_X64)\zlib1.dll $(OutDir)&#x0D;&#x0A;copy $(SZIP_LIB_DIR_X64)\szlibdll.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="score"
-			>
-			<File
-				RelativePath="..\..\src\score\memmove.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\score\scctl.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\score\scctla.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\score\schash.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\score\scstr.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="pdb"
-			>
-			<File
-				RelativePath="..\..\src\pdb\pdb.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdbdir.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdbio.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdbmm.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdbx.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdconv.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdlow.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdmemb.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdpath.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\pdb\pdrdwr.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="pdb_drv"
-			>
-			<File
-				RelativePath="..\..\src\pdb_drv\silo_pdb.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="silo"
-			>
-			<File
-				RelativePath="..\..\src\silo\alloc.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\silo\extface.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\silo\silo.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\silo\silo_f.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\silo\silo_ns.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="unknown"
-			>
-			<File
-				RelativePath="..\..\src\unknown\silo_unknown.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="debug"
-			>
-			<File
-				RelativePath="..\..\src\debug\silo_debug.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="hdf5_drv"
-			>
-			<File
-				RelativePath="..\..\src\hdf5_drv\H5FDsilo.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\hdf5_drv\silo_hdf5.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="taurus_drv"
-			>
-			<File
-				RelativePath="..\..\src\taurus\silo_taurus.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\taurus\taurus.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="filters"
-			>
-			<File
-				RelativePath="..\..\src\filters\f_ale3d.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\filters\f_sample.c"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/SiloWindows.sln b/SiloWindows/MSVC9/SiloWindows.sln
deleted file mode 100644
index 7036eaf..0000000
--- a/SiloWindows/MSVC9/SiloWindows.sln
+++ /dev/null
@@ -1,64 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "silex", "silex.vcproj", "{3D443B05-403C-4907-8F50-DC396DB6BB23}"
-	ProjectSection(ProjectDependencies) = postProject
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF} = {20BFB7B0-9F43-43BB-B188-555DEA431CDF}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silo", "Silo.vcproj", "{20BFB7B0-9F43-43BB-B188-555DEA431CDF}"
-	ProjectSection(ProjectDependencies) = postProject
-		{17857422-AD82-4D37-A5AF-94C4556935D0} = {17857422-AD82-4D37-A5AF-94C4556935D0}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pdb_detect", "pdb_detect\pdb_detect.vcproj", "{17857422-AD82-4D37-A5AF-94C4556935D0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "browser", "browser.vcproj", "{7C65A1CE-9430-4012-8CED-783C233AEA1D}"
-	ProjectSection(ProjectDependencies) = postProject
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF} = {20BFB7B0-9F43-43BB-B188-555DEA431CDF}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
-		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Debug|Win32.Build.0 = Debug|Win32
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Debug|x64.ActiveCfg = Debug|x64
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Debug|x64.Build.0 = Debug|x64
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Release|Win32.ActiveCfg = Release|Win32
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Release|Win32.Build.0 = Release|Win32
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Release|x64.ActiveCfg = Release|x64
-		{3D443B05-403C-4907-8F50-DC396DB6BB23}.Release|x64.Build.0 = Release|x64
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Debug|Win32.Build.0 = Debug|Win32
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Debug|x64.ActiveCfg = Debug|x64
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Debug|x64.Build.0 = Debug|x64
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Release|Win32.ActiveCfg = Release|Win32
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Release|Win32.Build.0 = Release|Win32
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Release|x64.ActiveCfg = Release|x64
-		{20BFB7B0-9F43-43BB-B188-555DEA431CDF}.Release|x64.Build.0 = Release|x64
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Debug|Win32.ActiveCfg = Release|Win32
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Debug|Win32.Build.0 = Release|Win32
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Debug|x64.ActiveCfg = Release|x64
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Debug|x64.Build.0 = Release|x64
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Release|Win32.ActiveCfg = Release|Win32
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Release|Win32.Build.0 = Release|Win32
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Release|x64.ActiveCfg = Release|x64
-		{17857422-AD82-4D37-A5AF-94C4556935D0}.Release|x64.Build.0 = Release|x64
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Debug|Win32.Build.0 = Debug|Win32
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Debug|x64.ActiveCfg = Debug|x64
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Debug|x64.Build.0 = Debug|x64
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Release|Win32.ActiveCfg = Release|Win32
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Release|Win32.Build.0 = Release|Win32
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Release|x64.ActiveCfg = Release|x64
-		{7C65A1CE-9430-4012-8CED-783C233AEA1D}.Release|x64.Build.0 = Release|x64
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/SiloWindows/MSVC9/Tests/Preparation.vcproj b/SiloWindows/MSVC9/Tests/Preparation.vcproj
deleted file mode 100644
index 944a7c6..0000000
--- a/SiloWindows/MSVC9/Tests/Preparation.vcproj
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="Preparation"
-	ProjectGUID="{EF8EC721-3949-484B-862F-2BB07460526D}"
-	RootNamespace="Preparation"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="10"
-			InheritedPropertySheets="..\DepLibs.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="CopyTestDependencies.bat $(HDF5_LIB_DIR) $(ZLIB_LIB_DIR) $(SZIP_LIB_DIR) $(SolutionDir)..\$(PlatformName)\$(ConfigurationName) $(SolutionDir)..\bin"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="10"
-			InheritedPropertySheets="..\DepLibs.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="CopyTestDependencies.bat $(HDF5_LIB_DIR_X64) $(ZLIB_LIB_DIR_X64) $(SZIP_LIB_DIR_X64) $(SolutionDir)..\$(PlatformName)\$(ConfigurationName) $(SolutionDir)..\bin"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="10"
-			InheritedPropertySheets="..\DepLibs.vsprops"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="CopyTestDependencies.bat $(HDF5_LIB_DIR) $(ZLIB_LIB_DIR) $(SZIP_LIB_DIR) $(SolutionDir)..\$(PlatformName)\$(ConfigurationName) $(SolutionDir)..\bin"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="10"
-			InheritedPropertySheets="..\DepLibs.vsprops"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="CopyTestDependencies.bat $(HDF5_LIB_DIR_X64) $(ZLIB_LIB_DIR_X64) $(SZIP_LIB_DIR_X64) $(SolutionDir)..\$(PlatformName)\$(ConfigurationName) $(SolutionDir)..\bin"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/TestIncludes.vsprops b/SiloWindows/MSVC9/Tests/TestIncludes.vsprops
deleted file mode 100644
index fbfb3ff..0000000
--- a/SiloWindows/MSVC9/Tests/TestIncludes.vsprops
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="TestIncludes"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-		AdditionalIncludeDirectories="..\..\..\tests"
-	/>
-</VisualStudioPropertySheet>
diff --git a/SiloWindows/MSVC9/Tests/TestReadMask.vcproj b/SiloWindows/MSVC9/Tests/TestReadMask.vcproj
deleted file mode 100644
index 3666034..0000000
--- a/SiloWindows/MSVC9/Tests/TestReadMask.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="TestReadMask"
-	ProjectGUID="{D47B6498-6A8D-4E87-A3B6-C6D08DF29FE2}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\TestReadMask"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\TestReadMask"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\TestReadMask.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\TestReadMask.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\TestReadMask"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\TestReadMask.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\TestReadMask.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\TestReadMask.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\TestReadMask.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\TestReadMask"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\TestReadMask.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\TestReadMask.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\TestReadMask"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\TestReadMask"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\TestReadMask.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\TestReadMask.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\TestReadMask.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\TestReadMask.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\TestReadMask.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\TestReadMask.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\TestReadMask.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\TestReadMask.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\TestReadMask.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/alltypes.vcproj b/SiloWindows/MSVC9/Tests/alltypes.vcproj
deleted file mode 100644
index de38bb1..0000000
--- a/SiloWindows/MSVC9/Tests/alltypes.vcproj
+++ /dev/null
@@ -1,400 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="alltypes"
-	ProjectGUID="{627C8E54-0ABD-4B8A-B76B-0BD13F5E684B}"
-	RootNamespace="alltypes"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\alltypes"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\alltypes"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\alltypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\alltypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\alltypes"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\alltypes.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\alltypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\alltypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\alltypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\alltypes"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\alltypes.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\alltypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\alltypes"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\alltypes"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\alltypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\alltypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\alltypes.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\alltypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\alltypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\alltypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\alltypes.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\alltypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\alltypes.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/arbpoly.vcproj b/SiloWindows/MSVC9/Tests/arbpoly.vcproj
deleted file mode 100644
index 76ca270..0000000
--- a/SiloWindows/MSVC9/Tests/arbpoly.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="arbpoly"
-	ProjectGUID="{970CE296-FB4C-4990-8FC7-F26078998302}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\arbpoly.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\arbpoly"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\arbpoly.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\arbpoly.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\arbpoly"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\arbpoly.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\arbpoly.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\arbpoly.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\arbpoly.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\arbpoly.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\arbpoly.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/arbpoly3d.vcproj b/SiloWindows/MSVC9/Tests/arbpoly3d.vcproj
deleted file mode 100644
index 320f0eb..0000000
--- a/SiloWindows/MSVC9/Tests/arbpoly3d.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="arbpoly3d"
-	ProjectGUID="{BF87D83F-575E-49B5-87BD-02C6E581FD6A}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly3d"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly3d"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\arbpoly3d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly3d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\arbpoly3d"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly3d.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\arbpoly3d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\arbpoly3d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly3d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\arbpoly3d"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly3d.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\arbpoly3d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly3d"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\arbpoly3d"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\arbpoly3d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly3d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly3d.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\arbpoly3d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\arbpoly3d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\arbpoly3d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\arbpoly3d.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\arbpoly3d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\arbpoly3d.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/array.vcproj b/SiloWindows/MSVC9/Tests/array.vcproj
deleted file mode 100644
index af64d35..0000000
--- a/SiloWindows/MSVC9/Tests/array.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="array"
-	ProjectGUID="{CB409787-8ACF-4854-A2AB-6CD727E7120D}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\array.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\array.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\array"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\array.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\array.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\array.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\array.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\array"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\array.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\array.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\array.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\array.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\array.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\array.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\array.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\array.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\array.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\array.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\array.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/array_f.vfproj b/SiloWindows/MSVC9/Tests/array_f.vfproj
deleted file mode 100644
index 8a9c649..0000000
--- a/SiloWindows/MSVC9/Tests/array_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\array_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\arrayf77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/compression.vcproj b/SiloWindows/MSVC9/Tests/compression.vcproj
deleted file mode 100644
index 40aae09..0000000
--- a/SiloWindows/MSVC9/Tests/compression.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="compression"
-	ProjectGUID="{AA9DE89B-47C8-4164-944A-6D42B4AF0FEB}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\compression"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\compression"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\compression.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\compression.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\compression"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\compression.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\compression.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\compression.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\compression.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\compression"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\compression.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\compression.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\compression"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\compression"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\compression.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\compression.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\compression.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\compression.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\compression.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\compression.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\compression.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\compression.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\compression.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/csg.vcproj b/SiloWindows/MSVC9/Tests/csg.vcproj
deleted file mode 100644
index 0aaabca..0000000
--- a/SiloWindows/MSVC9/Tests/csg.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="csg"
-	ProjectGUID="{6DE8948E-8CF8-4650-9749-1C21066AA957}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\csg"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\csg"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\csg.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\csg.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\csg"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\csg.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\csg.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\csg.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\csg.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\csg"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\csg.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\csg.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\csg"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\csg"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\csg.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\csg.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\csg.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\csg.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\csg.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\csg.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\csg.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\csg.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\csg.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/curve_f.vfproj b/SiloWindows/MSVC9/Tests/curve_f.vfproj
deleted file mode 100644
index de0b526..0000000
--- a/SiloWindows/MSVC9/Tests/curve_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\curve_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\curve_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\curve_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\curve_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\curvef77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/dirtest.vcproj b/SiloWindows/MSVC9/Tests/dirtest.vcproj
deleted file mode 100644
index d3815d4..0000000
--- a/SiloWindows/MSVC9/Tests/dirtest.vcproj
+++ /dev/null
@@ -1,403 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="dirtest"
-	ProjectGUID="{B8FE1ABF-E1AD-41C7-AFAE-333BAB3636E1}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\dirtest"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\dirtest"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\dirtest.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\dirtest.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\dirtest"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\dirtest.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\dirtest.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\dirtest.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\dirtest.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\dirtest"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\dirtest.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\dirtest.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\dirtest"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\dirtest"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\dirtest.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\dirtest.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\dirtest.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\dirtest.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\dirtest.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\dirtest.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\dirtest.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\dirtest.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\dir.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\..\tests\testlib.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/empty.vcproj b/SiloWindows/MSVC9/Tests/empty.vcproj
deleted file mode 100644
index 8ed7a5e..0000000
--- a/SiloWindows/MSVC9/Tests/empty.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="empty"
-	ProjectGUID="{2C3B0E05-5959-4630-A94F-625C9BCE9B10}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\empty"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\empty"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\empty.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\empty.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\empty"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\empty.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\empty.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\empty.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\empty.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\empty"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\empty.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\empty.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\empty"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\empty"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\empty.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\empty.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\empty.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\empty.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\empty.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\empty.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\empty.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\empty.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\empty.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/extface.vcproj b/SiloWindows/MSVC9/Tests/extface.vcproj
deleted file mode 100644
index ded50f8..0000000
--- a/SiloWindows/MSVC9/Tests/extface.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="extface"
-	ProjectGUID="{3482A43B-3A21-4583-88C4-45A4422E2307}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\extface"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\extface"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\extface.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\extface.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\extface"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\extface.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\extface.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\extface.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\extface.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\extface"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\extface.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\extface.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\extface"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\extface"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\extface.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\extface.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\extface.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\extface.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\extface.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\extface.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\extface.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\extface.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\extface.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/grab.vcproj b/SiloWindows/MSVC9/Tests/grab.vcproj
deleted file mode 100644
index d9d61ab..0000000
--- a/SiloWindows/MSVC9/Tests/grab.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="grab"
-	ProjectGUID="{DCFFC0C8-1C81-4016-8364-1678FAB1D2D2}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\grab"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\grab"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\grab.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..\..\..\src\silo;$(HDF5_INC_DIR)"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\grab.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\grab"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\grab.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\grab.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\grab.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..\..\..\src\silo;$(HDF5_INC_DIR_X64)"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\grab.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\grab"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\grab.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR_X64)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\grab.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\grab"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\grab"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\grab.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\include\;..\..\..\src\silo;$(HDF5_INC_DIR)"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\grab.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\grab.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR)"
-				ProgramDatabaseFile="$(OutDir)\grab.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\grab.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\include;..\..\..\src\silo;$(HDF5_INC_DIR_X64)"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\grab.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\grab.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR_X64)"
-				ProgramDatabaseFile="$(OutDir)\grab.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\grab.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/group_test.vcproj b/SiloWindows/MSVC9/Tests/group_test.vcproj
deleted file mode 100644
index c968e72..0000000
--- a/SiloWindows/MSVC9/Tests/group_test.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="group_test"
-	ProjectGUID="{69340E63-F15C-4A33-85B7-344666F8F25C}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\group_test"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\group_test"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\group_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\group_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\group_test"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\group_test.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\group_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\group_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\group_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\group_test"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\group_test.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\group_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\group_test"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\group_test"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\group_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\group_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\group_test.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\group_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\group_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\group_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\group_test.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\group_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\group_test.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/largefile.vcproj b/SiloWindows/MSVC9/Tests/largefile.vcproj
deleted file mode 100644
index bdcf096..0000000
--- a/SiloWindows/MSVC9/Tests/largefile.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="largefile"
-	ProjectGUID="{EA0DA3EC-DD78-4C57-A0A9-F0EEAE35A85A}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\largefile"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\largefile"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\largefile.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\largefile.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\largefile"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\largefile.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\largefile.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\largefile.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\largefile.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\largefile"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\largefile.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\largefile.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\largefile"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\largefile"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\largefile.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\largefile.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\largefile.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\largefile.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\largefile.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\largefile.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\largefile.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\largefile.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\largefile.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/listtypes.vcproj b/SiloWindows/MSVC9/Tests/listtypes.vcproj
deleted file mode 100644
index aa25a08..0000000
--- a/SiloWindows/MSVC9/Tests/listtypes.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="listtypes"
-	ProjectGUID="{A79DA077-0644-4DA7-8D8A-BB115597F474}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\listtypes"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\listtypes"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\listtypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\listtypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\listtypes"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\listtypes.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\listtypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\listtypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\listtypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\listtypes"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\listtypes.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\listtypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\listtypes"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\listtypes"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\listtypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\listtypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\listtypes.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\listtypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\listtypes.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\listtypes.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\listtypes.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\listtypes.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\listtypes.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/mat3d_3across.vcproj b/SiloWindows/MSVC9/Tests/mat3d_3across.vcproj
deleted file mode 100644
index d3a0111..0000000
--- a/SiloWindows/MSVC9/Tests/mat3d_3across.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="mat3d_3across"
-	ProjectGUID="{CEA025B3-7259-4852-980F-CB39E8206304}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat3d_3across"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat3d_3across"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\mat3d_3across.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mat3d_3across.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\mat3d_3across"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mat3d_3across.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\mat3d_3across.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\mat3d_3across.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mat3d_3across.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\mat3d_3across"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mat3d_3across.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\mat3d_3across.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat3d_3across"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat3d_3across"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\mat3d_3across.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mat3d_3across.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mat3d_3across.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\mat3d_3across.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\mat3d_3across.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mat3d_3across.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mat3d_3across.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\mat3d_3across.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\mat3d_3across.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/mat_f.vfproj b/SiloWindows/MSVC9/Tests/mat_f.vfproj
deleted file mode 100644
index 76ab0e5..0000000
--- a/SiloWindows/MSVC9/Tests/mat_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mat_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\pointf77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/merge_block.vcproj b/SiloWindows/MSVC9/Tests/merge_block.vcproj
deleted file mode 100644
index 313e949..0000000
--- a/SiloWindows/MSVC9/Tests/merge_block.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="merge_block"
-	ProjectGUID="{2B22FE6C-0C77-445A-8320-50EEF60EEF7D}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\merge_block"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\merge_block"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\merge_block.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\merge_block.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\merge_block"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\merge_block.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\merge_block.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\merge_block.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\merge_block.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\merge_block"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\merge_block.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\merge_block.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\merge_block"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\merge_block"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\merge_block.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\merge_block.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\merge_block.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\merge_block.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\merge_block.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\merge_block.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\merge_block.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\merge_block.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\merge_block.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/mmadjacency.vcproj b/SiloWindows/MSVC9/Tests/mmadjacency.vcproj
deleted file mode 100644
index 8f25d7f..0000000
--- a/SiloWindows/MSVC9/Tests/mmadjacency.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="mmadjacency"
-	ProjectGUID="{809F6E22-2B80-4264-A220-7974EC9EDBBF}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mmadjacency"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mmadjacency"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\mmadjacency.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mmadjacency.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\mmadjacency"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mmadjacency.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\mmadjacency.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\mmadjacency.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mmadjacency.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\mmadjacency"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mmadjacency.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\mmadjacency.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mmadjacency"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\mmadjacency"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\mmadjacency.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mmadjacency.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mmadjacency.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\mmadjacency.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\mmadjacency.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\mmadjacency.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\mmadjacency.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\mmadjacency.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\mmadjacency.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/multi_file.vcproj b/SiloWindows/MSVC9/Tests/multi_file.vcproj
deleted file mode 100644
index e197e3c..0000000
--- a/SiloWindows/MSVC9/Tests/multi_file.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="multi_file"
-	ProjectGUID="{8CC26B54-D539-4A0A-B461-26F074B790FD}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_file"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_file"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\multi_file.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_file.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\multi_file"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_file.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\multi_file.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\multi_file.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_file.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\multi_file"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_file.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\multi_file.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_file"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_file"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\multi_file.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_file.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_file.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\multi_file.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\multi_file.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_file.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_file.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\multi_file.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\multi_file.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/multi_test.vcproj b/SiloWindows/MSVC9/Tests/multi_test.vcproj
deleted file mode 100644
index 0de2c90..0000000
--- a/SiloWindows/MSVC9/Tests/multi_test.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="multi_test"
-	ProjectGUID="{7535A535-FDEC-4448-AF9C-C031C9EA8459}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_test"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_test"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\multi_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\multi_test"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_test.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\multi_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\multi_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\multi_test"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_test.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\multi_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_test"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multi_test"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\multi_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_test.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\multi_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\multi_test.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multi_test.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multi_test.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\multi_test.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\multi_test.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/multispec.vcproj b/SiloWindows/MSVC9/Tests/multispec.vcproj
deleted file mode 100644
index 7d28b16..0000000
--- a/SiloWindows/MSVC9/Tests/multispec.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="multispec"
-	ProjectGUID="{2D46EF91-58B2-43B5-ADD7-6908D6794578}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multispec"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multispec"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\multispec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multispec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\multispec"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multispec.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\multispec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\multispec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multispec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\multispec"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multispec.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\multispec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multispec"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\multispec"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\multispec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multispec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multispec.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\multispec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\multispec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\multispec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\multispec.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\multispec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\multispec.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/namescheme.vcproj b/SiloWindows/MSVC9/Tests/namescheme.vcproj
deleted file mode 100644
index 4f34199..0000000
--- a/SiloWindows/MSVC9/Tests/namescheme.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="namescheme"
-	ProjectGUID="{D839F6C1-3736-4269-A5E7-30B2BC1CBCCD}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\namescheme"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\namescheme"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\namescheme.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\namescheme.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\namescheme"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\namescheme.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\namescheme.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\namescheme.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\namescheme.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\namescheme"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\namescheme.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\namescheme.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\namescheme"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\namescheme"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\namescheme.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\namescheme.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\namescheme.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\namescheme.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\namescheme.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\namescheme.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\namescheme.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\namescheme.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\namescheme.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/obj.vcproj b/SiloWindows/MSVC9/Tests/obj.vcproj
deleted file mode 100644
index 2850562..0000000
--- a/SiloWindows/MSVC9/Tests/obj.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="obj"
-	ProjectGUID="{AC0F21DF-ECA4-4B17-9829-59634B68B0D2}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\obj"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\obj"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\obj.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\obj.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\obj"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\obj.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\obj.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\obj.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\obj.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\obj"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\obj.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\obj.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\obj"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\obj"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\obj.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\obj.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\obj.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\obj.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\obj.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\obj.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\obj.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\obj.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\obj.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/onehex.vcproj b/SiloWindows/MSVC9/Tests/onehex.vcproj
deleted file mode 100644
index efcedab..0000000
--- a/SiloWindows/MSVC9/Tests/onehex.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="onehex"
-	ProjectGUID="{3863899B-7F9F-4823-9383-AE2205DCB054}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onehex"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onehex"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\onehex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onehex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\onehex"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onehex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\onehex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\onehex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onehex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\onehex"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onehex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\onehex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onehex"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onehex"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\onehex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onehex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onehex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\onehex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\onehex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onehex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onehex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\onehex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\onehex.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/oneprism.vcproj b/SiloWindows/MSVC9/Tests/oneprism.vcproj
deleted file mode 100644
index 0ce7201..0000000
--- a/SiloWindows/MSVC9/Tests/oneprism.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="oneprism"
-	ProjectGUID="{4BCA7F35-0742-424F-8E50-39B934312F8F}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\oneprism"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\oneprism"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\oneprism.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\oneprism.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\oneprism"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\oneprism.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\oneprism.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\oneprism.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\oneprism.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\oneprism"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\oneprism.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\oneprism.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\oneprism"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\oneprism"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\oneprism.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\oneprism.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\oneprism.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\oneprism.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\oneprism.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\oneprism.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\oneprism.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\oneprism.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\oneprism.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/onepyramid.vcproj b/SiloWindows/MSVC9/Tests/onepyramid.vcproj
deleted file mode 100644
index c18b31d..0000000
--- a/SiloWindows/MSVC9/Tests/onepyramid.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="onepyramid"
-	ProjectGUID="{2AFC873D-E906-4145-A0CB-6264E8CAE97D}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onepyramid"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onepyramid"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\onepyramid.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onepyramid.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\onepyramid"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onepyramid.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\onepyramid.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\onepyramid.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onepyramid.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\onepyramid"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onepyramid.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\onepyramid.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onepyramid"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onepyramid"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\onepyramid.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onepyramid.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onepyramid.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\onepyramid.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\onepyramid.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onepyramid.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onepyramid.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\onepyramid.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\onepyramid.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/onetet.vcproj b/SiloWindows/MSVC9/Tests/onetet.vcproj
deleted file mode 100644
index fa1b531..0000000
--- a/SiloWindows/MSVC9/Tests/onetet.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="onetet"
-	ProjectGUID="{A76CCA62-BC5F-44F8-B090-9C45DA138680}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onetet"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onetet"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\onetet.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onetet.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\onetet"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onetet.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\onetet.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\onetet.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onetet.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\onetet"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onetet.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\onetet.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onetet"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\onetet"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\onetet.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onetet.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onetet.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\onetet.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\onetet.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\onetet.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\onetet.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\onetet.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\onetet.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/partial_io.vcproj b/SiloWindows/MSVC9/Tests/partial_io.vcproj
deleted file mode 100644
index b2eedc1..0000000
--- a/SiloWindows/MSVC9/Tests/partial_io.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="partial_io"
-	ProjectGUID="{4F6A7EC6-F141-4512-B2A8-D108CBD6FAC1}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\partial_io"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\partial_io"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\partial_io.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\partial_io.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\partial_io"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\partial_io.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\partial_io.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\partial_io.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\partial_io.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\partial_io"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\partial_io.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\partial_io.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\partial_io"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\partial_io"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\partial_io.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\partial_io.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\partial_io.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\partial_io.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\partial_io.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\partial_io.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\partial_io.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\partial_io.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\partial_io.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/point.vcproj b/SiloWindows/MSVC9/Tests/point.vcproj
deleted file mode 100644
index 47fea10..0000000
--- a/SiloWindows/MSVC9/Tests/point.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="point"
-	ProjectGUID="{025CFEA1-6C43-404D-9DA4-5392A17FA162}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\point.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\point.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\point"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\point.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\point.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\point.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\point.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\point"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\point.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\point.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\point.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\point.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\point.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\point.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\point.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\point.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\point.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\point.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\point.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/point_f.vfproj b/SiloWindows/MSVC9/Tests/point_f.vfproj
deleted file mode 100644
index fe1e70b..0000000
--- a/SiloWindows/MSVC9/Tests/point_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\point_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\pointf77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/polyzl.vcproj b/SiloWindows/MSVC9/Tests/polyzl.vcproj
deleted file mode 100644
index 314e59e..0000000
--- a/SiloWindows/MSVC9/Tests/polyzl.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="polyzl"
-	ProjectGUID="{8C6BC636-FF71-4D58-9D63-E12265523982}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\polyzl"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\polyzl"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\polyzl.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\polyzl.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\polyzl"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\polyzl.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\polyzl.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\polyzl.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\polyzl.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\polyzl"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\polyzl.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\polyzl.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\polyzl"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\polyzl"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\polyzl.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\polyzl.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\polyzl.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\polyzl.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\polyzl.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\polyzl.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\polyzl.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\polyzl.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\polyzl.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/quad.vcproj b/SiloWindows/MSVC9/Tests/quad.vcproj
deleted file mode 100644
index a213e00..0000000
--- a/SiloWindows/MSVC9/Tests/quad.vcproj
+++ /dev/null
@@ -1,403 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="quad"
-	ProjectGUID="{4D5EA26A-8356-4665-A13D-51CCEE2BA7F4}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\quad.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\quad.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\quad"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\quad.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\quad.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\quad.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\quad.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\quad"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\quad.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\quad.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\quad.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\quad.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\quad.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\quad.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\quad.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\quad.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\quad.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\quad.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\quad.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\..\tests\testlib.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/quad_f.vfproj b/SiloWindows/MSVC9/Tests/quad_f.vfproj
deleted file mode 100644
index 72e2127..0000000
--- a/SiloWindows/MSVC9/Tests/quad_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\quad_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\quadf77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/sami.vcproj b/SiloWindows/MSVC9/Tests/sami.vcproj
deleted file mode 100644
index 5305da3..0000000
--- a/SiloWindows/MSVC9/Tests/sami.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="sami"
-	ProjectGUID="{B3C7F964-68B8-4F8C-B5E7-7607836FB101}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\sami"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\sami"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\sami.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include\WithHDF5;..\..\..\src\silo;$(HDF5_INC_DIR)"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\sami.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\sami"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\sami.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\sami.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\sami.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include\WithHDF5;..\..\..\src\silo;$(HDF5_INC_DIR_X64)"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\sami.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\sami"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\sami.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR_X64)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\sami.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\sami"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\sami"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\sami.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\include\WithHDF5;..\..\..\src\silo;$(HDF5_INC_DIR)"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\sami.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\sami.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR)"
-				ProgramDatabaseFile="$(OutDir)\sami.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\sami.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\include\WithHDF5;..\..\..\src\silo;$(HDF5_INC_DIR_X64)"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\sami.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib hdf5dll.lib"
-				OutputFile="$(SolutionDir)..\bin\sami.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName);$(HDF5_LIB_DIR_X64)"
-				ProgramDatabaseFile="$(OutDir)\sami.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\sami.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/simple.vcproj b/SiloWindows/MSVC9/Tests/simple.vcproj
deleted file mode 100644
index 8eae385..0000000
--- a/SiloWindows/MSVC9/Tests/simple.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="simple"
-	ProjectGUID="{7AB46C61-04D5-4E77-AD3F-E7726F3E173A}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\simple"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\simple"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\simple.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\simple.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\simple"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\simple.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\simple.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\simple.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\simple.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\simple"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\simple.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\simple.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\simple"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\simple"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\simple.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\simple.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\simple.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\simple.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\simple.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\simple.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\simple.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\simple.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\simple.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/spec.vcproj b/SiloWindows/MSVC9/Tests/spec.vcproj
deleted file mode 100644
index 89920af..0000000
--- a/SiloWindows/MSVC9/Tests/spec.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="spec"
-	ProjectGUID="{7A5F618C-F98A-4F8E-BBC7-C4F5C6BCD5A4}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\spec"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\spec"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\spec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\spec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\spec"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\spec.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\spec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\spec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\spec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\spec"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\spec.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\spec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\spec"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\spec"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\spec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\spec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\spec.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\spec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\spec.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\spec.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\spec.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\spec.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\spec.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/specmix.vcproj b/SiloWindows/MSVC9/Tests/specmix.vcproj
deleted file mode 100644
index beca14a..0000000
--- a/SiloWindows/MSVC9/Tests/specmix.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="specmix"
-	ProjectGUID="{27C64509-94EB-406D-9978-93AE531CEB1E}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\specmix"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\specmix"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\specmix.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\specmix.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\specmix"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\specmix.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\specmix.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\specmix.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\specmix.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\specmix"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\specmix.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\specmix.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\specmix"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\specmix"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\specmix.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\specmix.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\specmix.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\specmix.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\specmix.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\specmix.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\specmix.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\specmix.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\specmix.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/subhex.vcproj b/SiloWindows/MSVC9/Tests/subhex.vcproj
deleted file mode 100644
index ed64251..0000000
--- a/SiloWindows/MSVC9/Tests/subhex.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="subhex"
-	ProjectGUID="{8C02951E-155B-4D09-A1DD-F98695F02A0E}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\subhex"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\subhex"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\subhex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\subhex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\subhex"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\subhex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\subhex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\subhex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\subhex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\subhex"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\subhex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\subhex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\subhex"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\subhex"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\subhex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\subhex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\subhex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\subhex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\subhex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\subhex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\subhex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\subhex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\subhex.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/testall.vcproj b/SiloWindows/MSVC9/Tests/testall.vcproj
deleted file mode 100644
index 852d99d..0000000
--- a/SiloWindows/MSVC9/Tests/testall.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="testall"
-	ProjectGUID="{E4105EA9-2AB2-4656-B966-01F16961A14B}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\testall.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testall.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\testall"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testall.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\testall.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\testall.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testall.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\testall"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testall.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\testall.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\testall.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testall.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testall.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\testall.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\testall.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testall.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testall.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\testall.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\testall.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/testall_f.vfproj b/SiloWindows/MSVC9/Tests/testall_f.vfproj
deleted file mode 100644
index 77e3a69..0000000
--- a/SiloWindows/MSVC9/Tests/testall_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testall_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\testallf77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/testpdb.vcproj b/SiloWindows/MSVC9/Tests/testpdb.vcproj
deleted file mode 100644
index 91eeb25..0000000
--- a/SiloWindows/MSVC9/Tests/testpdb.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="testpdb"
-	ProjectGUID="{29110B58-9FD5-4A8E-B9F7-064650EE16C6}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testpdb"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testpdb"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\testpdb.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo;..\..\..\src\score;..\..\..\src\pdb"
-				PreprocessorDefinitions="WIN32;_CONSOLE;PDB_LITE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testpdb.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\testpdb"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testpdb.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\testpdb.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\testpdb.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo;..\..\..\src\score;..\..\..\src\pdb"
-				PreprocessorDefinitions="WIN32;_CONSOLE;PDB_LITE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testpdb.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\testpdb"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testpdb.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\testpdb.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testpdb"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\testpdb"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\testpdb.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo;..\..\..\src\score;..\..\..\src\pdb"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;PDB_LITE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testpdb.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testpdb.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\testpdb.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\testpdb.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo;..\..\..\src\score;..\..\..\src\pdb"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;PDB_LITE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\testpdb.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\testpdb.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\testpdb.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\testpdb.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/twohex.vcproj b/SiloWindows/MSVC9/Tests/twohex.vcproj
deleted file mode 100644
index e8a1ea5..0000000
--- a/SiloWindows/MSVC9/Tests/twohex.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="twohex"
-	ProjectGUID="{64A6CE79-710F-405C-AAE8-F604E74A4374}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\twohex"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\twohex"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\twohex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\twohex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\twohex"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\twohex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\twohex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\twohex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\twohex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\twohex"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\twohex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\twohex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\twohex"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\twohex"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\twohex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\twohex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\twohex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\twohex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\twohex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\twohex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\twohex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\twohex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\twohex.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/ucd.vcproj b/SiloWindows/MSVC9/Tests/ucd.vcproj
deleted file mode 100644
index 969fe2f..0000000
--- a/SiloWindows/MSVC9/Tests/ucd.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="ucd"
-	ProjectGUID="{9B955616-D58C-4ED8-AB6F-FBA74E768B54}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\ucd.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\ucd"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\ucd.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\ucd.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\ucd"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\ucd.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\ucd.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\ucd.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\ucd.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\ucd.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\ucd.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/ucd1d.vcproj b/SiloWindows/MSVC9/Tests/ucd1d.vcproj
deleted file mode 100644
index 4f82d5f..0000000
--- a/SiloWindows/MSVC9/Tests/ucd1d.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="ucd1d"
-	ProjectGUID="{C065DCD0-DE87-4B6E-A1E6-8F7EDB272D53}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd1d"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd1d"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\ucd1d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE;_USE_MATH_DEFINES"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd1d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\ucd1d"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd1d.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\ucd1d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\ucd1d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE;_USE_MATH_DEFINES"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd1d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\ucd1d"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd1d.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\ucd1d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd1d"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd1d"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\ucd1d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_MATH_DEFINES"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd1d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd1d.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\ucd1d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\ucd1d.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_MATH_DEFINES"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucd1d.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucd1d.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\ucd1d.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\ucd1d.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/ucd_f.vfproj b/SiloWindows/MSVC9/Tests/ucd_f.vfproj
deleted file mode 100644
index 35c10b3..0000000
--- a/SiloWindows/MSVC9/Tests/ucd_f.vfproj
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject ProjectCreator="Intel Fortran" Keyword="Console Application" Version="11.0" ProjectIdGuid="{A1F2E6F2-6E49-4746-9133-9DF0A404C7DB}">
-	<Platforms>
-		<Platform Name="Win32"/>
-		<Platform Name="x64"/></Platforms>
-	<Configurations>
-		<Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" TargetMachine="machineX86" AdditionalDep [...]
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd_f" IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucd_f">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Debug|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="..\..\..\src\silo" Interfaces="true" WarnInterfaces="true" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" GenerateDebugInformation="true" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration>
-		<Configuration Name="Release|x64">
-				<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="..\..\..\src\silo" DiagnosticsFile="$(IntDir)$(TargetName).diag" ModulePath="$(IntDir)" ObjectFile="$(IntDir)"/>
-				<Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)..\bin\$(ProjectName).exe" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)" ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" ProgramDatabaseFile="$(IntDir)$(TargetName).pdb" SubSystem="subSystemConsole" ImportLibrary="$(IntDir)\$(TargetName).lib" AdditionalDependencies="silohdf5.lib"/>
-				<Tool Name="VFResourceCompilerTool" ResourceOutputFileName="$(IntDir)\$(InputName).res"/>
-				<Tool Name="VFMidlTool" SuppressStartupBanner="true" TargetEnvironment="midlTargetAMD64" TypeLibraryName="$(IntDir)\$(ProjectName).tlb"/>
-				<Tool Name="VFCustomBuildTool"/>
-				<Tool Name="VFPreLinkEventTool"/>
-				<Tool Name="VFPreBuildEventTool"/>
-				<Tool Name="VFPostBuildEventTool"/>
-				<Tool Name="VFManifestTool" SuppressStartupBanner="true" OutputManifestFile="$(Intdir)\$(TargetFileName).embed.manifest" ResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res"/></Configuration></Configurations>
-	<Files>
-		<Filter Name="Header Files" Filter="fi;fd"/>
-		<Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"/>
-		<Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
-		<File RelativePath="..\..\..\tests\ucdf77.f"/></Filter></Files>
-	<Globals/></VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/ucdsamp3.vcproj b/SiloWindows/MSVC9/Tests/ucdsamp3.vcproj
deleted file mode 100644
index bfdcdc4..0000000
--- a/SiloWindows/MSVC9/Tests/ucdsamp3.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="ucdsamp3"
-	ProjectGUID="{94D10A14-5A9B-4E1E-B204-DE3196750126}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucdsamp3"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucdsamp3"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\ucdsamp3.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucdsamp3.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\ucdsamp3"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucdsamp3.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\ucdsamp3.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\ucdsamp3.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucdsamp3.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\ucdsamp3"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucdsamp3.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\ucdsamp3.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucdsamp3"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\ucdsamp3"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\ucdsamp3.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucdsamp3.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucdsamp3.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\ucdsamp3.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\ucdsamp3.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\ucdsamp3.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\ucdsamp3.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\ucdsamp3.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\ucdsamp3.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/version.vcproj b/SiloWindows/MSVC9/Tests/version.vcproj
deleted file mode 100644
index 4615ec5..0000000
--- a/SiloWindows/MSVC9/Tests/version.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="version"
-	ProjectGUID="{CBBCFD38-0F91-4CA2-8CBF-2833AC284438}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\version"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\version"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\version.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\version.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\version"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\version.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\version.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\version.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\version.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\version"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\version.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\version.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\version"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\version"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\version.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\version.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\version.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\version.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\version.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\version.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\version.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\version.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\version.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/Tests/wave.vcproj b/SiloWindows/MSVC9/Tests/wave.vcproj
deleted file mode 100644
index 7a87f70..0000000
--- a/SiloWindows/MSVC9/Tests/wave.vcproj
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="wave"
-	ProjectGUID="{3D443B05-403C-4907-8F50-DC396DB6BB23}"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\wave"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\wave"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\wave.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\wave.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\wave"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\wave.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\wave.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\wave.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\wave.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\wave"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\wave.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\wave.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\wave"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)\wave"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\wave.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\wave.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\wave.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\wave.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops;..\ModernDTPR.vsprops;.\TestIncludes.vsprops;..\BaseIncludes.vsprops;..\HDF5_Defines.vsprops;..\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\wave.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\src\silo"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\wave.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(SolutionDir)..\bin\wave.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(SolutionDir)..\$(PlatformName)\$(ConfigurationName)"
-				ProgramDatabaseFile="$(OutDir)\wave.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\..\tests\wave.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/browser.vcproj b/SiloWindows/MSVC9/browser.vcproj
deleted file mode 100644
index 3b9837a..0000000
--- a/SiloWindows/MSVC9/browser.vcproj
+++ /dev/null
@@ -1,481 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="browser"
-	ProjectGUID="{7C65A1CE-9430-4012-8CED-783C233AEA1D}"
-	RootNamespace="browser"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\browser.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\tools\browser;..\..\src\silo;..\..\src\filters"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\browser.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(OutDir)\browser.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(OutDir)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\browser.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(SolutionDir)..\silodiff.bat $(OutDir)"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\browser.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\tools\browser;..\..\src\silo;..\..\src\filters"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\browser.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(OutDir)\browser.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(OutDir)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\browser.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(SolutionDir)..\silodiff.bat $(OutDir)"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\browser.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\include;..\..\tools\browser;..\..\src\silo;..\..\src\filters"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\browser.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				CompileAs="0"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(OutDir)\browser.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(OutDir)"
-				IgnoreDefaultLibraryNames=""
-				ProgramDatabaseFile="$(OutDir)\browser.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(SolutionDir)..\silodiff.bat $(OutDir)"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\browser.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\include;..\..\tools\browser;..\..\src\silo;..\..\src\filters"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\browser.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="silohdf5.lib"
-				OutputFile="$(OutDir)\browser.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(OutDir)"
-				IgnoreDefaultLibraryNames=""
-				ProgramDatabaseFile="$(OutDir)\browser.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(SolutionDir)..\silodiff.bat $(OutDir)"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath="..\..\tools\browser\array.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\bif.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\browser.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\cons.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\file.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\func.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\lex.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\num.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\obj.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\output.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\parse.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\prim.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\ptr.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\range.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\sdo.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\stc.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\str.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\switch.c"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\browser\sym.c"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/pdb_detect/pdb_detect.vcproj b/SiloWindows/MSVC9/pdb_detect/pdb_detect.vcproj
deleted file mode 100644
index 05e5e96..0000000
--- a/SiloWindows/MSVC9/pdb_detect/pdb_detect.vcproj
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="pdb_detect"
-	ProjectGUID="{17857422-AD82-4D37-A5AF-94C4556935D0}"
-	RootNamespace="pdb_detect"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(ProjectDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="cd ..\..\&#x0D;&#x0A;copysilo.bat"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				Description="Create pdbform.h, lite_pdb.h, lite_score.h"
-				CommandLine="$(OutDir)\pdb_detect.exe > ..\..\..\src\pdb\pdform.h&#x0D;&#x0A;perl.exe $(SolutionDir)..\..\config\mklite $(SolutionDir)..\..\src\pdb\pdb.h $(SolutionDir)..\include\lite_pdb.h&#x0D;&#x0A;perl.exe $(SolutionDir)..\..\config\mklite $(SolutionDir)..\..\src\score\score.h $(SolutionDir)..\include\lite_score.h"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="..\NO_SEC_DEP.vsprops"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="cd ..\..\&#x0D;&#x0A;copysilo.bat"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				Description="Create pdbform.h, lite_pdb.h, lite_score.h."
-				CommandLine="$(OutDir)\pdb_detect.exe > ..\..\..\src\pdb\pdform.h&#x0D;&#x0A;perl.exe $(SolutionDir)..\..\config\mklite $(SolutionDir)..\..\src\pdb\pdb.h $(SolutionDir)..\include\lite_pdb.h&#x0D;&#x0A;perl.exe $(SolutionDir)..\..\config\mklite $(SolutionDir)..\..\src\score\score.h $(SolutionDir)..\include\lite_score.h"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\src\pdb\detect.c"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/MSVC9/silex.vcproj b/SiloWindows/MSVC9/silex.vcproj
deleted file mode 100644
index b3d780a..0000000
--- a/SiloWindows/MSVC9/silex.vcproj
+++ /dev/null
@@ -1,480 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="silex"
-	ProjectGUID="{3D443B05-403C-4907-8F50-DC396DB6BB23}"
-	RootNamespace="silex"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\QT_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="..\runsilexmoc.bat $(QT_LIB_DIR)"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\silex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\tools\silex;..\..\src\silo;$(QT_INC_DIR);$(QT_INC_DIR)\QtCore;$(QT_INC_DIR)\QtGui"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="QtCore4.lib QtGui4.lib silohdf5.lib"
-				OutputFile="$(OutDir)\silex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(QT_LIB_DIR);$(OutDir)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\silex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(QT_LIB_DIR)\QtCore4.dll $(OutDir)&#x0D;&#x0A;copy $(QT_LIB_DIR)\QtGui4.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\QT_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="..\runsilexmoc.bat $(QT_LIB_DIR_X64)"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\silex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\tools\silex;..\..\src\silo;$(QT_INC_DIR);$(QT_INC_DIR)\QtCore;$(QT_INC_DIR)\QtGui"
-				PreprocessorDefinitions="WIN32;_CONSOLE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions=""
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="QtCore4.lib QtGui4.lib silohdf5.lib"
-				OutputFile="$(OutDir)\silex.exe"
-				LinkIncremental="2"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(QT_LIB_DIR_X64);$(OutDir)"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)\silex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(QT_LIB_DIR)\QtCore4.dll $(OutDir)&#x0D;&#x0A;copy $(QT_LIB_DIR)\QtGui4.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\QT_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="..\runsilexmoc.bat $(QT_LIB_DIR)"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TypeLibraryName="$(OutDir)\silex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\include;..\..\tools\silex;..\..\src\silo;$(QT_INC_DIR);$(QT_INC_DIR)\QtCore;$(QT_INC_DIR)\QtGui"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="QtCore4.lib QtGui4.lib silohdf5.lib"
-				OutputFile="$(OutDir)\silex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(QT_LIB_DIR);$(OutDir)"
-				IgnoreDefaultLibraryNames=""
-				ProgramDatabaseFile="$(OutDir)\silex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(QT_LIB_DIR)\QtCore4.dll $(OutDir)&#x0D;&#x0A;copy $(QT_LIB_DIR)\QtGui4.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\NO_SEC_DEP.vsprops;.\ModernDTPR.vsprops;.\QT_Defines.vsprops;.\DepLibs.vsprops"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="2"
-			BuildLogFile="$(IntDir)\$(ProjectName)_BuildLog.htm"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine="..\runsilexmoc.bat $(QT_LIB_DIR_X64)"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-				TypeLibraryName="$(OutDir)\silex.tlb"
-				HeaderFileName=""
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\include;..\..\tools\silex;..\..\src\silo;$(QT_INC_DIR);$(QT_INC_DIR)\QtCore;$(QT_INC_DIR)\QtGui"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				PrecompiledHeaderFile="$(OutDir)\silex.pch"
-				AssemblerListingLocation="$(OutDir)\"
-				ObjectFile="$(OutDir)\"
-				ProgramDataBaseFileName="$(OutDir)\"
-				WarningLevel="3"
-				SuppressStartupBanner="true"
-				DisableSpecificWarnings="4244;4305"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="QtCore4.lib QtGui4.lib silohdf5.lib"
-				OutputFile="$(OutDir)\silex.exe"
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="$(QT_LIB_DIR_X64);$(OutDir)"
-				IgnoreDefaultLibraryNames=""
-				ProgramDatabaseFile="$(OutDir)\silex.pdb"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy $(QT_LIB_DIR)\QtCore4.dll $(OutDir)&#x0D;&#x0A;copy $(QT_LIB_DIR)\QtGui4.dll $(OutDir)&#x0D;&#x0A;"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="moc"
-			>
-			<File
-				RelativePath="..\..\tools\silex\Explorer_moc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\silex\SiloArrayView_moc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\silex\SiloDirTreeView_moc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\silex\SiloDirView_moc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\silex\SiloObjectView_moc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\silex\SiloValueView_moc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\silex\SiloView_moc.cpp"
-				>
-			</File>
-		</Filter>
-		<File
-			RelativePath="..\..\tools\silex\Explorer.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\main.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\resources\silex.rc"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloArrayView.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloDirTreeView.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloDirView.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloFile.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloObjectView.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloValueView.cpp"
-			>
-		</File>
-		<File
-			RelativePath="..\..\tools\silex\SiloView.cpp"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/SiloWindows/Makefile b/SiloWindows/Makefile
index 1beca9f..d541643 100644
--- a/SiloWindows/Makefile
+++ b/SiloWindows/Makefile
@@ -74,10 +74,13 @@
 #   Ensure a number of silo project files were included.
 #
 #   Kathleen Bonnell, Fri Dec 10 10:02:09 PST 2010
-#   Add silodiff.bat, browser.vcproj
+#   Add silodiff.bat, browser.vcxproj
 #
 #   Kathleen Bonnell, Thu Mar 3 10:38:05 PST 2011
-#   Add MSVC9 project files.
+#   Add MSVC2012 project files.
+#
+#   Kathleen Bonnell, Thu Mar 3 10:38:05 PST 2011
+#   Remove MSVC2012 and MSVC2010 project files. Add MSVC2012 project files.
 
 pkgdatadir = $(datadir)/silo
 pkgincludedir = $(includedir)/silo
@@ -118,28 +121,28 @@ CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/missing --run aclocal-1.11
-AMTAR = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/missing --run tar
+ACLOCAL = ${SHELL} /g/g11/miller86/silo/trunk/config/missing --run aclocal-1.11
+AMTAR = ${SHELL} /g/g11/miller86/silo/trunk/config/missing --run tar
 AR = ar
-AUTOCONF = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/missing --run automake-1.11
+AUTOCONF = ${SHELL} /g/g11/miller86/silo/trunk/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /g/g11/miller86/silo/trunk/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /g/g11/miller86/silo/trunk/config/missing --run automake-1.11
 AWK = gawk
 BROWSER = browser
 BUNDLE_TARGET = 
 CC = gcc
 CCDEPMODE = depmode=gcc3
 CC_FULLPATH = /usr/local/bin/gcc
-CFLAGS = -g -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wdeclaration-after-statement
-CONFIG_CMD = ./configure '--enable-fortran' 'FC=gfortran' 'F77=gfortran' 'FCFLAGS=-g' 'CFLAGS=-g' 'CXXFLAGS=-g' '--enable-pythonmodule' '--with-hdf5=/usr/gapps/visit/thirdparty_shared_2_7_0/hdf5/1.8.7/linux-x86_64_gcc-4.4/include,/usr/gapps/visit/thirdparty_shared_2_7_0/hdf5/1.8.7/linux-x86_64_gcc-4.4/lib' '--with-szlib=/usr/gapps/visit/thirdparty_shared_2_7_0/szip/2.1/linux-x86_64_gcc-4.4' '--with-Qt-dir=/usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4' '--with-Qt- [...]
-CONFIG_DATE = Tue Mar 19 10:33:26 PDT 2013
-CONFIG_USER = miller86 at edge83
+CFLAGS = -g -m64 -fPIC -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wdeclaration-after-statement
+CONFIG_CMD = ./configure 'CC=gcc' 'CXX=g++' 'FC=gfortran' 'F77=gfortran' 'CFLAGS=-g -m64 -fPIC' 'CXXFLAGS=-g -m64 -fPIC' '--enable-pythonmodule' '--disable-shared' '--with-szlib=/usr/gapps/silo/szip/2.1/chaos_5_x86_64_ib' '--with-hdf5=/usr/gapps/silo/hdf5/1.8.10/chaos_5_x86_64_ib/include,/usr/gapps/silo/hdf5/1.8.10/chaos_5_x86_64_ib/lib' '--with-Qt-dir=/usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4' '--with-Qt-lib=QtGui -lQtCore' '--enable-silex' '--enable-install [...]
+CONFIG_DATE = Mon Oct 13 17:02:30 PDT 2014
+CONFIG_USER = miller86 at edge84
 CPP = gcc -E
-CPPFLAGS = -I/usr/gapps/visit/thirdparty_shared_2_7_0/hdf5/1.8.7/linux-x86_64_gcc-4.4/include 
+CPPFLAGS = -I/usr/gapps/silo/hdf5/1.8.10/chaos_5_x86_64_ib/include 
 CXX = g++
 CXXCPP = g++ -E
 CXXDEPMODE = depmode=gcc3
-CXXFLAGS = -g
+CXXFLAGS = -g -m64 -fPIC
 CXX_FULLPATH = /usr/local/bin/g++
 CYGPATH_W = echo
 DEFS = -DHAVE_CONFIG_H
@@ -153,8 +156,8 @@ EGREP = /bin/grep -E
 EXEEXT = 
 F77 = gfortran
 FC = gfortran
-FCFLAGS = -g
-FCLIBS =  -L/usr/lib/gcc/x86_64-redhat-linux/4.4.6 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../.. -lgfortranbegin -lgfortran -lm
+FCFLAGS = -g -O2
+FCLIBS =  -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. -lgfortranbegin -lgfortran -lm
 FC_FULLPATH = /usr/local/bin/gfortran
 FFLAGS = -g -O2
 FGREP = /bin/grep -F
@@ -168,8 +171,9 @@ INSTALL_DATA = ${INSTALL} -m 644
 INSTALL_PROGRAM = ${INSTALL}
 INSTALL_SCRIPT = ${INSTALL}
 INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JSON = json
 LD = /usr/local/bin/ld -m elf_x86_64
-LDFLAGS = -L/usr/gapps/visit/thirdparty_shared_2_7_0/hdf5/1.8.7/linux-x86_64_gcc-4.4/lib -L/usr/gapps/visit/thirdparty_shared_2_7_0/szip/2.1/linux-x86_64_gcc-4.4/lib  -L/usr/gapps/visit/thirdparty_shared_2_7_0/szip/2.1/linux-x86_64_gcc-4.4/lib
+LDFLAGS = -L/usr/gapps/silo/hdf5/1.8.10/chaos_5_x86_64_ib/lib -L/usr/gapps/silo/szip/2.1/chaos_5_x86_64_ib/lib  -L/usr/gapps/silo/szip/2.1/chaos_5_x86_64_ib/lib
 LIBM = -lm
 LIBOBJS = 
 LIBS = -lhdf5 -lsz -lsz -lz  -lm -lsz
@@ -178,7 +182,7 @@ LIPO =
 LN_S = ln -s
 LTLIBOBJS = 
 MAINT = #
-MAKEINFO = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/missing --run makeinfo
+MAKEINFO = ${SHELL} /g/g11/miller86/silo/trunk/config/missing --run makeinfo
 MKDIR_P = /bin/mkdir -p
 NETCDF = netcdf
 NM = /usr/bin/nm -B
@@ -188,57 +192,54 @@ OBJEXT = o
 OTOOL = 
 OTOOL64 = 
 PACKAGE = silo
-PACKAGE_BUGREPORT = visit-users at email.ornl.gov
+PACKAGE_BUGREPORT = visit-users at elist.ornl.gov
 PACKAGE_NAME = silo
-PACKAGE_STRING = silo 4.9.1
+PACKAGE_STRING = silo 4.10.2
 PACKAGE_TARNAME = silo
-PACKAGE_VERSION = 4.9.1
+PACKAGE_VERSION = 4.10.2
 PATH_SEPARATOR = :
 PDBP_DRV = 
 PDB_DRV = pdb_drv
 PYTHON = /usr/local/bin/python
 PYTHONMODULE = python
-PYTHON_CPPFLAGS = -I/usr/apps/python/include/python2.6
+PYTHON_CPPFLAGS = -I/usr/apps/python/include/python2.7
 PYTHON_EXEC_PREFIX = ${exec_prefix}
 PYTHON_PLATFORM = linux2
 PYTHON_PREFIX = ${prefix}
-PYTHON_VERSION = 2.6
-QT_CXXFLAGS = -I/usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/include -I/usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/include/Qt -I/usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/include/QtCore -I/usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/include/QtGui
-QT_DIR = /usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4
-QT_LIBS = -L/usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/lib -lQtGui  -lSM -lICE  -lX11 -lXext -lXmu -lXt -lXi 
-QT_LRELEASE = /usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/bin/lrelease
-QT_LUPDATE = /usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/bin/lupdate
-QT_MOC = /usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/bin/moc
-QT_UIC = /usr/gapps/visit/thirdparty_shared_2_7_0/qt/4.8.3/linux-x86_64_gcc-4.4/bin/uic
+PYTHON_VERSION = 2.7
+QT_CXXFLAGS = -I/usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/include -I/usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/include/Qt -I/usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/include/QtCore -I/usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/include/QtGui
+QT_DIR = /usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4
+QT_LIBS = -L/usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/lib -lQtGui -lQtCore  -lSM -lICE  -lX11 -lXext -lXmu -lXt -lXi 
+QT_LRELEASE = /usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/bin/lrelease
+QT_LUPDATE = /usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/bin/lupdate
+QT_MOC = /usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/bin/moc
+QT_UIC = /usr/gapps/visit/thirdparty_shared/2.8.1/qt/4.8.3/linux-x86_64_gcc-4.4/bin/uic
 RANLIB = ranlib
 READLINE_LIBS = -lreadline 
 SED = /bin/sed
 SET_MAKE = 
 SHELL = /bin/sh
 SILEX = silex
-SILO_DTYPPTR = void
-SILO_DTYPPTR1 = void*
-SILO_DTYPPTR2 = void*
 SILO_VERS_MAJ = 4
-SILO_VERS_MIN = 9
-SILO_VERS_PAT = 1
+SILO_VERS_MIN = 10
+SILO_VERS_PAT = 2
 SILO_VERS_PRE = 
-SILO_VERS_TAG = Silo_version_4_9_1
+SILO_VERS_TAG = Silo_version_4_10_2
 STRIP = strip
 TAURUS = taurus
-VERSION = 4.9.1
+VERSION = 4.10.2
 XMKMF = 
 X_CFLAGS = 
 X_EXTRA_LIBS = 
 X_LIBS = 
 X_PRE_LIBS =  -lSM -lICE
 ZLIB = zlib
-abs_builddir = /g/g11/miller86/silo/silo_4.9RC/SiloWindows
-abs_srcdir = /g/g11/miller86/silo/silo_4.9RC/SiloWindows
-abs_top_builddir = /g/g11/miller86/silo/silo_4.9RC
-abs_top_srcdir = /g/g11/miller86/silo/silo_4.9RC
+abs_builddir = /g/g11/miller86/silo/trunk/SiloWindows
+abs_srcdir = /g/g11/miller86/silo/trunk/SiloWindows
+abs_top_builddir = /g/g11/miller86/silo/trunk
+abs_top_srcdir = /g/g11/miller86/silo/trunk
 ac_ct_CC = gcc
-ac_ct_CXX = g++
+ac_ct_CXX = 
 ac_ct_DUMPBIN = 
 ac_ct_F77 = 
 ac_ct_FC = 
@@ -267,7 +268,7 @@ host_vendor = unknown
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = ${SHELL} /g/g11/miller86/silo/silo_4.9RC/config/install-sh
+install_sh = ${SHELL} /g/g11/miller86/silo/trunk/config/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${exec_prefix}/libexec
 localedir = ${datarootdir}/locale
@@ -279,11 +280,11 @@ oldincludedir = /usr/include
 pdfdir = ${docdir}
 pkgpyexecdir = ${pyexecdir}/silo
 pkgpythondir = ${pythondir}/silo
-prefix = /usr/gapps/visit/thirdparty_shared_2_7_0/silo/4.9.1-pre1/linux-x86_64_gcc-4.4
+prefix = /g/g11/miller86/silo/trunk/my_install
 program_transform_name = s,x,x,
 psdir = ${docdir}
-pyexecdir = ${exec_prefix}/lib/python2.6/site-packages
-pythondir = ${prefix}/lib/python2.6/site-packages
+pyexecdir = ${exec_prefix}/lib/python2.7/site-packages
+pythondir = ${prefix}/lib/python2.7/site-packages
 sbindir = ${exec_prefix}/sbin
 sharedstatedir = ${prefix}/com
 srcdir = .
@@ -293,73 +294,79 @@ top_build_prefix = ../
 top_builddir = ..
 top_srcdir = ..
 EXTRA_DIST = \
-./MSVC9/Tests/alltypes.vcproj\
-./MSVC9/Tests/arbpoly.vcproj\
-./MSVC9/Tests/arbpoly3d.vcproj\
-./MSVC9/Tests/array.vcproj\
-./MSVC9/Tests/array_f.vfproj\
-./MSVC9/Tests/compression.vcproj\
-./MSVC9/Tests/csg.vcproj\
-./MSVC9/Tests/curve_f.vfproj\
-./MSVC9/Tests/dirtest.vcproj\
-./MSVC9/Tests/empty.vcproj\
-./MSVC9/Tests/extface.vcproj\
-./MSVC9/Tests/grab.vcproj\
-./MSVC9/Tests/group_test.vcproj\
-./MSVC9/Tests/largefile.vcproj\
-./MSVC9/Tests/listtypes.vcproj\
-./MSVC9/Tests/mat3d_3across.vcproj\
-./MSVC9/Tests/mat_f.vfproj\
-./MSVC9/Tests/merge_block.vcproj\
-./MSVC9/Tests/mmadjacency.vcproj\
-./MSVC9/Tests/multi_file.vcproj\
-./MSVC9/Tests/multi_test.vcproj\
-./MSVC9/Tests/multispec.vcproj\
-./MSVC9/Tests/namescheme.vcproj\
-./MSVC9/Tests/obj.vcproj\
-./MSVC9/Tests/onehex.vcproj\
-./MSVC9/Tests/oneprism.vcproj\
-./MSVC9/Tests/onepyramid.vcproj\
-./MSVC9/Tests/onetet.vcproj\
-./MSVC9/Tests/partial_io.vcproj\
-./MSVC9/Tests/point.vcproj\
-./MSVC9/Tests/point_f.vfproj\
-./MSVC9/Tests/polyzl.vcproj\
-./MSVC9/Tests/Preparation.vcproj\
-./MSVC9/Tests/quad.vcproj\
-./MSVC9/Tests/quad_f.vfproj\
-./MSVC9/Tests/sami.vcproj\
-./MSVC9/Tests/simple.vcproj\
-./MSVC9/Tests/spec.vcproj\
-./MSVC9/Tests/specmix.vcproj\
-./MSVC9/Tests/subhex.vcproj\
-./MSVC9/Tests/testall.vcproj\
-./MSVC9/Tests/testall_f.vfproj\
-./MSVC9/Tests/testpdb.vcproj\
-./MSVC9/Tests/TestReadMask.vcproj\
-./MSVC9/Tests/twohex.vcproj\
-./MSVC9/Tests/ucd1d.vcproj\
-./MSVC9/Tests/ucd.vcproj\
-./MSVC9/Tests/ucd_f.vfproj\
-./MSVC9/Tests/ucdsamp3.vcproj\
-./MSVC9/Tests/version.vcproj\
-./MSVC9/Tests/wave.vcproj\
-./MSVC9/Tests/Tests.sln\
-./MSVC9/Tests/CopyTestDependencies.bat\
-./MSVC9/Tests/TestIncludes.vsprops\
-./MSVC9/bin/RunTests.bat\
-./MSVC9/pdb_detect/pdb_detect.vcproj\
-./MSVC9/BaseIncludes.vsprops\
-./MSVC9/DepLibs.vsprops\
-./MSVC9/HDF5_Defines.vsprops\
-./MSVC9/ModernDTPR.vsprops\
-./MSVC9/NO_SEC_DEP.vsprops\
-./MSVC9/NON_BSD_DEFINES.vsprops\
-./MSVC9/QT_Defines.vsprops\
-./MSVC9/browser.vcproj\
-./MSVC9/silex.vcproj\
-./MSVC9/Silo.vcproj\
-./MSVC9/SiloWindows.sln\
+./MSVC2012/Tests/alltypes.vcxproj\
+./MSVC2012/Tests/arbpoly.vcxproj\
+./MSVC2012/Tests/arbpoly3d.vcxproj\
+./MSVC2012/Tests/array.vcxproj\
+./MSVC2012/Tests/array_f.vfproj\
+./MSVC2012/Tests/compression.vcxproj\
+./MSVC2012/Tests/csg.vcxproj\
+./MSVC2012/Tests/csgmesh_f.vfproj\
+./MSVC2012/Tests/curve_f.vfproj\
+./MSVC2012/Tests/dirtest.vcxproj\
+./MSVC2012/Tests/empty.vcxproj\
+./MSVC2012/Tests/extface.vcxproj\
+./MSVC2012/Tests/grab.vcxproj\
+./MSVC2012/Tests/group_test.vcxproj\
+./MSVC2012/Tests/largefile.vcxproj\
+./MSVC2012/Tests/listtypes.vcxproj\
+./MSVC2012/Tests/mat3d_3across.vcxproj\
+./MSVC2012/Tests/mat_f.vfproj\
+./MSVC2012/Tests/merge_block.vcxproj\
+./MSVC2012/Tests/mmadjacency.vcxproj\
+./MSVC2012/Tests/multi_file.vcxproj\
+./MSVC2012/Tests/multi_test.vcxproj\
+./MSVC2012/Tests/multispec.vcxproj\
+./MSVC2012/Tests/namescheme.vcxproj\
+./MSVC2012/Tests/obj.vcxproj\
+./MSVC2012/Tests/onehex.vcxproj\
+./MSVC2012/Tests/oneprism.vcxproj\
+./MSVC2012/Tests/onepyramid.vcxproj\
+./MSVC2012/Tests/onetet.vcxproj\
+./MSVC2012/Tests/partial_io.vcxproj\
+./MSVC2012/Tests/point.vcxproj\
+./MSVC2012/Tests/point_f.vfproj\
+./MSVC2012/Tests/polyzl.vcxproj\
+./MSVC2012/Tests/Preparation.vcxproj\
+./MSVC2012/Tests/quad.vcxproj\
+./MSVC2012/Tests/quad_f.vfproj\
+./MSVC2012/Tests/sami.vcxproj\
+./MSVC2012/Tests/simple.vcxproj\
+./MSVC2012/Tests/spec.vcxproj\
+./MSVC2012/Tests/specmix.vcxproj\
+./MSVC2012/Tests/subhex.vcxproj\
+./MSVC2012/Tests/testall.vcxproj\
+./MSVC2012/Tests/testall_f.vfproj\
+./MSVC2012/Tests/testfs.vcxproj\
+./MSVC2012/Tests/testpdb.vcxproj\
+./MSVC2012/Tests/TestReadMask.vcxproj\
+./MSVC2012/Tests/twohex.vcxproj\
+./MSVC2012/Tests/ucd1d.vcxproj\
+./MSVC2012/Tests/ucd.vcxproj\
+./MSVC2012/Tests/ucd_f.vfproj\
+./MSVC2012/Tests/ucdsamp3.vcxproj\
+./MSVC2012/Tests/version.vcxproj\
+./MSVC2012/Tests/wave.vcxproj\
+./MSVC2012/Tests/Tests.sln\
+./MSVC2012/Tests/CopyTestDependencies.bat\
+./MSVC2012/Tests/TestIncludes.props\
+./MSVC2012/bin/RunTests.bat\
+./MSVC2012/pdb_detect/pdb_detect.vcxproj\
+./MSVC2012/pdb_detect/pdb_detect.vcxproj.filters\
+./MSVC2012/BaseIncludes.props\
+./MSVC2012/DepLibs.props\
+./MSVC2012/HDF5_Defines.props\
+./MSVC2012/ModernDTPR.props\
+./MSVC2012/NO_SEC_DEP.props\
+./MSVC2012/NON_BSD_DEFINES.props\
+./MSVC2012/QT_Defines.props\
+./MSVC2012/browser.vcxproj\
+./MSVC2012/browser.vcxproj.filters\
+./MSVC2012/silex.vcxproj\
+./MSVC2012/silex.vcxproj.filters\
+./MSVC2012/Silo.vcxproj\
+./MSVC2012/Silo.vcxproj.filters\
+./MSVC2012/Silo.sln\
 ./include/config.h\
 ./resources/silex.aps\
 ./resources/silex.ico\
@@ -371,103 +378,21 @@ EXTRA_DIST = \
 ./copysilo.bat\
 ./silodiff.bat\
 ./README\
-./MSVC9-BSD/Tests/alltypes.vcproj\
-./MSVC9-BSD/Tests/arbpoly.vcproj\
-./MSVC9-BSD/Tests/arbpoly3d.vcproj\
-./MSVC9-BSD/Tests/array.vcproj\
-./MSVC9-BSD/Tests/array_f.vfproj\
-./MSVC9-BSD/Tests/compression.vcproj\
-./MSVC9-BSD/Tests/csg.vcproj\
-./MSVC9-BSD/Tests/curve_f.vfproj\
-./MSVC9-BSD/Tests/dirtest.vcproj\
-./MSVC9-BSD/Tests/empty.vcproj\
-./MSVC9-BSD/Tests/extface.vcproj\
-./MSVC9-BSD/Tests/grab.vcproj\
-./MSVC9-BSD/Tests/group_test.vcproj\
-./MSVC9-BSD/Tests/largefile.vcproj\
-./MSVC9-BSD/Tests/listtypes.vcproj\
-./MSVC9-BSD/Tests/mat3d_3across.vcproj\
-./MSVC9-BSD/Tests/mat_f.vfproj\
-./MSVC9-BSD/Tests/merge_block.vcproj\
-./MSVC9-BSD/Tests/mmadjacency.vcproj\
-./MSVC9-BSD/Tests/multi_file.vcproj\
-./MSVC9-BSD/Tests/multi_test.vcproj\
-./MSVC9-BSD/Tests/multispec.vcproj\
-./MSVC9-BSD/Tests/namescheme.vcproj\
-./MSVC9-BSD/Tests/obj.vcproj\
-./MSVC9-BSD/Tests/onehex.vcproj\
-./MSVC9-BSD/Tests/oneprism.vcproj\
-./MSVC9-BSD/Tests/onepyramid.vcproj\
-./MSVC9-BSD/Tests/onetet.vcproj\
-./MSVC9-BSD/Tests/partial_io.vcproj\
-./MSVC9-BSD/Tests/point.vcproj\
-./MSVC9-BSD/Tests/point_f.vfproj\
-./MSVC9-BSD/Tests/polyzl.vcproj\
-./MSVC9-BSD/Tests/Preparation.vcproj\
-./MSVC9-BSD/Tests/quad.vcproj\
-./MSVC9-BSD/Tests/quad_f.vfproj\
-./MSVC9-BSD/Tests/sami.vcproj\
-./MSVC9-BSD/Tests/simple.vcproj\
-./MSVC9-BSD/Tests/spec.vcproj\
-./MSVC9-BSD/Tests/specmix.vcproj\
-./MSVC9-BSD/Tests/subhex.vcproj\
-./MSVC9-BSD/Tests/testall.vcproj\
-./MSVC9-BSD/Tests/testall_f.vfproj\
-./MSVC9-BSD/Tests/testpdb.vcproj\
-./MSVC9-BSD/Tests/TestReadMask.vcproj\
-./MSVC9-BSD/Tests/twohex.vcproj\
-./MSVC9-BSD/Tests/ucd1d.vcproj\
-./MSVC9-BSD/Tests/ucd.vcproj\
-./MSVC9-BSD/Tests/ucd_f.vfproj\
-./MSVC9-BSD/Tests/ucdsamp3.vcproj\
-./MSVC9-BSD/Tests/version.vcproj\
-./MSVC9-BSD/Tests/wave.vcproj\
-./MSVC9-BSD/Tests/Tests.sln\
-./MSVC9-BSD/Tests/CopyTestDependencies.bat\
-./MSVC9-BSD/Tests/TestIncludes.vsprops\
-./MSVC9-BSD/bin/RunTests.bat\
-./MSVC9-BSD/pdb_detect/pdb_detect.vcproj\
-./MSVC9-BSD/BaseIncludes.vsprops\
-./MSVC9-BSD/DepLibs.vsprops\
-./MSVC9-BSD/HDF5_Defines.vsprops\
-./MSVC9-BSD/ModernDTPR.vsprops\
-./MSVC9-BSD/NO_SEC_DEP.vsprops\
-./MSVC9-BSD/QT_Defines.vsprops\
-./MSVC9-BSD/browser.vcproj\
-./MSVC9-BSD/silex.vcproj\
-./MSVC9-BSD/Silo.vcproj\
-./MSVC9-BSD/SiloWindows.sln\
-./MSVC2010/BaseIncludes.props\
-./MSVC2010/DepLibs.props\
-./MSVC2010/HDF5_Defines.props\
-./MSVC2010/ModernDTPR.props\
-./MSVC2010/NON_BSD_DEFINES.props\
-./MSVC2010/NO_SEC_DEP.props\
-./MSVC2010/QT_Defines.props\
-./MSVC2010/Silo.sln\
-./MSVC2010/Silo.vcxproj\
-./MSVC2010/Silo.vcxproj.filters\
-./MSVC2010/browser.vcxproj\
-./MSVC2010/browser.vcxproj.filters\
-./MSVC2010/silex.vcxproj\
-./MSVC2010/silex.vcxproj.filters\
-./MSVC2010/pdb_detect/pdb_detect.vcxproj\
-./MSVC2010/pdb_detect/pdb_detect.vcxproj.filters\
-./MSVC2010-BSD/BaseIncludes.props\
-./MSVC2010-BSD/DepLibs.props\
-./MSVC2010-BSD/HDF5_Defines.props\
-./MSVC2010-BSD/ModernDTPR.props\
-./MSVC2010-BSD/NO_SEC_DEP.props\
-./MSVC2010-BSD/QT_Defines.props\
-./MSVC2010-BSD/Silo.sln\
-./MSVC2010-BSD/Silo.vcxproj\
-./MSVC2010-BSD/Silo.vcxproj.filters\
-./MSVC2010-BSD/browser.vcxproj\
-./MSVC2010-BSD/browser.vcxproj.filters\
-./MSVC2010-BSD/silex.vcxproj\
-./MSVC2010-BSD/silex.vcxproj.filters\
-./MSVC2010-BSD/pdb_detect/pdb_detect.vcxproj\
-./MSVC2010-BSD/pdb_detect/pdb_detect.vcxproj.filters
+./MSVC2012-BSD/pdb_detect/pdb_detect.vcxproj\
+./MSVC2012-BSD/pdb_detect/pdb_detect.vcxproj.filters\
+./MSVC2012-BSD/BaseIncludes.props\
+./MSVC2012-BSD/DepLibs.props\
+./MSVC2012-BSD/HDF5_Defines.props\
+./MSVC2012-BSD/ModernDTPR.props\
+./MSVC2012-BSD/NO_SEC_DEP.props\
+./MSVC2012-BSD/QT_Defines.props\
+./MSVC2012-BSD/browser.vcxproj\
+./MSVC2012-BSD/browser.vcxproj.filters\
+./MSVC2012-BSD/silex.vcxproj\
+./MSVC2012-BSD/silex.vcxproj.filters\
+./MSVC2012-BSD/Silo.vcxproj\
+./MSVC2012-BSD/Silo.vcxproj.filters\
+./MSVC2012-BSD/Silo.sln
 
 all: all-am
 
diff --git a/SiloWindows/Makefile.am b/SiloWindows/Makefile.am
index b6b1f93..0be2836 100644
--- a/SiloWindows/Makefile.am
+++ b/SiloWindows/Makefile.am
@@ -58,80 +58,90 @@
 #   Ensure a number of silo project files were included.
 #
 #   Kathleen Bonnell, Fri Dec 10 10:02:09 PST 2010
-#   Add silodiff.bat, browser.vcproj
+#   Add silodiff.bat, browser.vcxproj
 #
 #   Kathleen Bonnell, Thu Mar 3 10:38:05 PST 2011
-#   Add MSVC9 project files.
+#   Add MSVC2012 project files.
+#
+#   Kathleen Bonnell, Thu Mar 3 10:38:05 PST 2011
+#   Remove MSVC2012 and MSVC2010 project files. Add MSVC2012 project files.
+
 
 
 EXTRA_DIST = \
-./MSVC9/Tests/alltypes.vcproj\
-./MSVC9/Tests/arbpoly.vcproj\
-./MSVC9/Tests/arbpoly3d.vcproj\
-./MSVC9/Tests/array.vcproj\
-./MSVC9/Tests/array_f.vfproj\
-./MSVC9/Tests/compression.vcproj\
-./MSVC9/Tests/csg.vcproj\
-./MSVC9/Tests/curve_f.vfproj\
-./MSVC9/Tests/dirtest.vcproj\
-./MSVC9/Tests/empty.vcproj\
-./MSVC9/Tests/extface.vcproj\
-./MSVC9/Tests/grab.vcproj\
-./MSVC9/Tests/group_test.vcproj\
-./MSVC9/Tests/largefile.vcproj\
-./MSVC9/Tests/listtypes.vcproj\
-./MSVC9/Tests/mat3d_3across.vcproj\
-./MSVC9/Tests/mat_f.vfproj\
-./MSVC9/Tests/merge_block.vcproj\
-./MSVC9/Tests/mmadjacency.vcproj\
-./MSVC9/Tests/multi_file.vcproj\
-./MSVC9/Tests/multi_test.vcproj\
-./MSVC9/Tests/multispec.vcproj\
-./MSVC9/Tests/namescheme.vcproj\
-./MSVC9/Tests/obj.vcproj\
-./MSVC9/Tests/onehex.vcproj\
-./MSVC9/Tests/oneprism.vcproj\
-./MSVC9/Tests/onepyramid.vcproj\
-./MSVC9/Tests/onetet.vcproj\
-./MSVC9/Tests/partial_io.vcproj\
-./MSVC9/Tests/point.vcproj\
-./MSVC9/Tests/point_f.vfproj\
-./MSVC9/Tests/polyzl.vcproj\
-./MSVC9/Tests/Preparation.vcproj\
-./MSVC9/Tests/quad.vcproj\
-./MSVC9/Tests/quad_f.vfproj\
-./MSVC9/Tests/sami.vcproj\
-./MSVC9/Tests/simple.vcproj\
-./MSVC9/Tests/spec.vcproj\
-./MSVC9/Tests/specmix.vcproj\
-./MSVC9/Tests/subhex.vcproj\
-./MSVC9/Tests/testall.vcproj\
-./MSVC9/Tests/testall_f.vfproj\
-./MSVC9/Tests/testpdb.vcproj\
-./MSVC9/Tests/TestReadMask.vcproj\
-./MSVC9/Tests/twohex.vcproj\
-./MSVC9/Tests/ucd1d.vcproj\
-./MSVC9/Tests/ucd.vcproj\
-./MSVC9/Tests/ucd_f.vfproj\
-./MSVC9/Tests/ucdsamp3.vcproj\
-./MSVC9/Tests/version.vcproj\
-./MSVC9/Tests/wave.vcproj\
-./MSVC9/Tests/Tests.sln\
-./MSVC9/Tests/CopyTestDependencies.bat\
-./MSVC9/Tests/TestIncludes.vsprops\
-./MSVC9/bin/RunTests.bat\
-./MSVC9/pdb_detect/pdb_detect.vcproj\
-./MSVC9/BaseIncludes.vsprops\
-./MSVC9/DepLibs.vsprops\
-./MSVC9/HDF5_Defines.vsprops\
-./MSVC9/ModernDTPR.vsprops\
-./MSVC9/NO_SEC_DEP.vsprops\
-./MSVC9/NON_BSD_DEFINES.vsprops\
-./MSVC9/QT_Defines.vsprops\
-./MSVC9/browser.vcproj\
-./MSVC9/silex.vcproj\
-./MSVC9/Silo.vcproj\
-./MSVC9/SiloWindows.sln\
+./MSVC2012/Tests/alltypes.vcxproj\
+./MSVC2012/Tests/arbpoly.vcxproj\
+./MSVC2012/Tests/arbpoly3d.vcxproj\
+./MSVC2012/Tests/array.vcxproj\
+./MSVC2012/Tests/array_f.vfproj\
+./MSVC2012/Tests/compression.vcxproj\
+./MSVC2012/Tests/csg.vcxproj\
+./MSVC2012/Tests/csgmesh_f.vfproj\
+./MSVC2012/Tests/curve_f.vfproj\
+./MSVC2012/Tests/dirtest.vcxproj\
+./MSVC2012/Tests/empty.vcxproj\
+./MSVC2012/Tests/extface.vcxproj\
+./MSVC2012/Tests/grab.vcxproj\
+./MSVC2012/Tests/group_test.vcxproj\
+./MSVC2012/Tests/largefile.vcxproj\
+./MSVC2012/Tests/listtypes.vcxproj\
+./MSVC2012/Tests/mat3d_3across.vcxproj\
+./MSVC2012/Tests/mat_f.vfproj\
+./MSVC2012/Tests/merge_block.vcxproj\
+./MSVC2012/Tests/mmadjacency.vcxproj\
+./MSVC2012/Tests/multi_file.vcxproj\
+./MSVC2012/Tests/multi_test.vcxproj\
+./MSVC2012/Tests/multispec.vcxproj\
+./MSVC2012/Tests/namescheme.vcxproj\
+./MSVC2012/Tests/obj.vcxproj\
+./MSVC2012/Tests/onehex.vcxproj\
+./MSVC2012/Tests/oneprism.vcxproj\
+./MSVC2012/Tests/onepyramid.vcxproj\
+./MSVC2012/Tests/onetet.vcxproj\
+./MSVC2012/Tests/partial_io.vcxproj\
+./MSVC2012/Tests/point.vcxproj\
+./MSVC2012/Tests/point_f.vfproj\
+./MSVC2012/Tests/polyzl.vcxproj\
+./MSVC2012/Tests/Preparation.vcxproj\
+./MSVC2012/Tests/quad.vcxproj\
+./MSVC2012/Tests/quad_f.vfproj\
+./MSVC2012/Tests/sami.vcxproj\
+./MSVC2012/Tests/simple.vcxproj\
+./MSVC2012/Tests/spec.vcxproj\
+./MSVC2012/Tests/specmix.vcxproj\
+./MSVC2012/Tests/subhex.vcxproj\
+./MSVC2012/Tests/testall.vcxproj\
+./MSVC2012/Tests/testall_f.vfproj\
+./MSVC2012/Tests/testfs.vcxproj\
+./MSVC2012/Tests/testpdb.vcxproj\
+./MSVC2012/Tests/TestReadMask.vcxproj\
+./MSVC2012/Tests/twohex.vcxproj\
+./MSVC2012/Tests/ucd1d.vcxproj\
+./MSVC2012/Tests/ucd.vcxproj\
+./MSVC2012/Tests/ucd_f.vfproj\
+./MSVC2012/Tests/ucdsamp3.vcxproj\
+./MSVC2012/Tests/version.vcxproj\
+./MSVC2012/Tests/wave.vcxproj\
+./MSVC2012/Tests/Tests.sln\
+./MSVC2012/Tests/CopyTestDependencies.bat\
+./MSVC2012/Tests/TestIncludes.props\
+./MSVC2012/bin/RunTests.bat\
+./MSVC2012/pdb_detect/pdb_detect.vcxproj\
+./MSVC2012/pdb_detect/pdb_detect.vcxproj.filters\
+./MSVC2012/BaseIncludes.props\
+./MSVC2012/DepLibs.props\
+./MSVC2012/HDF5_Defines.props\
+./MSVC2012/ModernDTPR.props\
+./MSVC2012/NO_SEC_DEP.props\
+./MSVC2012/NON_BSD_DEFINES.props\
+./MSVC2012/QT_Defines.props\
+./MSVC2012/browser.vcxproj\
+./MSVC2012/browser.vcxproj.filters\
+./MSVC2012/silex.vcxproj\
+./MSVC2012/silex.vcxproj.filters\
+./MSVC2012/Silo.vcxproj\
+./MSVC2012/Silo.vcxproj.filters\
+./MSVC2012/Silo.sln\
 ./include/config.h\
 ./resources/silex.aps\
 ./resources/silex.ico\
@@ -143,100 +153,18 @@ EXTRA_DIST = \
 ./copysilo.bat\
 ./silodiff.bat\
 ./README\
-./MSVC9-BSD/Tests/alltypes.vcproj\
-./MSVC9-BSD/Tests/arbpoly.vcproj\
-./MSVC9-BSD/Tests/arbpoly3d.vcproj\
-./MSVC9-BSD/Tests/array.vcproj\
-./MSVC9-BSD/Tests/array_f.vfproj\
-./MSVC9-BSD/Tests/compression.vcproj\
-./MSVC9-BSD/Tests/csg.vcproj\
-./MSVC9-BSD/Tests/curve_f.vfproj\
-./MSVC9-BSD/Tests/dirtest.vcproj\
-./MSVC9-BSD/Tests/empty.vcproj\
-./MSVC9-BSD/Tests/extface.vcproj\
-./MSVC9-BSD/Tests/grab.vcproj\
-./MSVC9-BSD/Tests/group_test.vcproj\
-./MSVC9-BSD/Tests/largefile.vcproj\
-./MSVC9-BSD/Tests/listtypes.vcproj\
-./MSVC9-BSD/Tests/mat3d_3across.vcproj\
-./MSVC9-BSD/Tests/mat_f.vfproj\
-./MSVC9-BSD/Tests/merge_block.vcproj\
-./MSVC9-BSD/Tests/mmadjacency.vcproj\
-./MSVC9-BSD/Tests/multi_file.vcproj\
-./MSVC9-BSD/Tests/multi_test.vcproj\
-./MSVC9-BSD/Tests/multispec.vcproj\
-./MSVC9-BSD/Tests/namescheme.vcproj\
-./MSVC9-BSD/Tests/obj.vcproj\
-./MSVC9-BSD/Tests/onehex.vcproj\
-./MSVC9-BSD/Tests/oneprism.vcproj\
-./MSVC9-BSD/Tests/onepyramid.vcproj\
-./MSVC9-BSD/Tests/onetet.vcproj\
-./MSVC9-BSD/Tests/partial_io.vcproj\
-./MSVC9-BSD/Tests/point.vcproj\
-./MSVC9-BSD/Tests/point_f.vfproj\
-./MSVC9-BSD/Tests/polyzl.vcproj\
-./MSVC9-BSD/Tests/Preparation.vcproj\
-./MSVC9-BSD/Tests/quad.vcproj\
-./MSVC9-BSD/Tests/quad_f.vfproj\
-./MSVC9-BSD/Tests/sami.vcproj\
-./MSVC9-BSD/Tests/simple.vcproj\
-./MSVC9-BSD/Tests/spec.vcproj\
-./MSVC9-BSD/Tests/specmix.vcproj\
-./MSVC9-BSD/Tests/subhex.vcproj\
-./MSVC9-BSD/Tests/testall.vcproj\
-./MSVC9-BSD/Tests/testall_f.vfproj\
-./MSVC9-BSD/Tests/testpdb.vcproj\
-./MSVC9-BSD/Tests/TestReadMask.vcproj\
-./MSVC9-BSD/Tests/twohex.vcproj\
-./MSVC9-BSD/Tests/ucd1d.vcproj\
-./MSVC9-BSD/Tests/ucd.vcproj\
-./MSVC9-BSD/Tests/ucd_f.vfproj\
-./MSVC9-BSD/Tests/ucdsamp3.vcproj\
-./MSVC9-BSD/Tests/version.vcproj\
-./MSVC9-BSD/Tests/wave.vcproj\
-./MSVC9-BSD/Tests/Tests.sln\
-./MSVC9-BSD/Tests/CopyTestDependencies.bat\
-./MSVC9-BSD/Tests/TestIncludes.vsprops\
-./MSVC9-BSD/bin/RunTests.bat\
-./MSVC9-BSD/pdb_detect/pdb_detect.vcproj\
-./MSVC9-BSD/BaseIncludes.vsprops\
-./MSVC9-BSD/DepLibs.vsprops\
-./MSVC9-BSD/HDF5_Defines.vsprops\
-./MSVC9-BSD/ModernDTPR.vsprops\
-./MSVC9-BSD/NO_SEC_DEP.vsprops\
-./MSVC9-BSD/QT_Defines.vsprops\
-./MSVC9-BSD/browser.vcproj\
-./MSVC9-BSD/silex.vcproj\
-./MSVC9-BSD/Silo.vcproj\
-./MSVC9-BSD/SiloWindows.sln\
-./MSVC2010/BaseIncludes.props\
-./MSVC2010/DepLibs.props\
-./MSVC2010/HDF5_Defines.props\
-./MSVC2010/ModernDTPR.props\
-./MSVC2010/NON_BSD_DEFINES.props\
-./MSVC2010/NO_SEC_DEP.props\
-./MSVC2010/QT_Defines.props\
-./MSVC2010/Silo.sln\
-./MSVC2010/Silo.vcxproj\
-./MSVC2010/Silo.vcxproj.filters\
-./MSVC2010/browser.vcxproj\
-./MSVC2010/browser.vcxproj.filters\
-./MSVC2010/silex.vcxproj\
-./MSVC2010/silex.vcxproj.filters\
-./MSVC2010/pdb_detect/pdb_detect.vcxproj\
-./MSVC2010/pdb_detect/pdb_detect.vcxproj.filters\
-./MSVC2010-BSD/BaseIncludes.props\
-./MSVC2010-BSD/DepLibs.props\
-./MSVC2010-BSD/HDF5_Defines.props\
-./MSVC2010-BSD/ModernDTPR.props\
-./MSVC2010-BSD/NO_SEC_DEP.props\
-./MSVC2010-BSD/QT_Defines.props\
-./MSVC2010-BSD/Silo.sln\
-./MSVC2010-BSD/Silo.vcxproj\
-./MSVC2010-BSD/Silo.vcxproj.filters\
-./MSVC2010-BSD/browser.vcxproj\
-./MSVC2010-BSD/browser.vcxproj.filters\
-./MSVC2010-BSD/silex.vcxproj\
-./MSVC2010-BSD/silex.vcxproj.filters\
-./MSVC2010-BSD/pdb_detect/pdb_detect.vcxproj\
-./MSVC2010-BSD/pdb_detect/pdb_detect.vcxproj.filters
+./MSVC2012-BSD/pdb_detect/pdb_detect.vcxproj\
+./MSVC2012-BSD/pdb_detect/pdb_detect.vcxproj.filters\
+./MSVC2012-BSD/BaseIncludes.props\
+./MSVC2012-BSD/DepLibs.props\
+./MSVC2012-BSD/HDF5_Defines.props\
+./MSVC2012-BSD/ModernDTPR.props\
+./MSVC2012-BSD/NO_SEC_DEP.props\
+./MSVC2012-BSD/QT_Defines.props\
+./MSVC2012-BSD/browser.vcxproj\
+./MSVC2012-BSD/browser.vcxproj.filters\
+./MSVC2012-BSD/silex.vcxproj\
+./MSVC2012-BSD/silex.vcxproj.filters\
+./MSVC2012-BSD/Silo.vcxproj\
+./MSVC2012-BSD/Silo.vcxproj.filters\
+./MSVC2012-BSD/Silo.sln
diff --git a/SiloWindows/Makefile.in b/SiloWindows/Makefile.in
index bce4c5d..85b61ea 100644
--- a/SiloWindows/Makefile.in
+++ b/SiloWindows/Makefile.in
@@ -74,10 +74,13 @@
 #   Ensure a number of silo project files were included.
 #
 #   Kathleen Bonnell, Fri Dec 10 10:02:09 PST 2010
-#   Add silodiff.bat, browser.vcproj
+#   Add silodiff.bat, browser.vcxproj
 #
 #   Kathleen Bonnell, Thu Mar 3 10:38:05 PST 2011
-#   Add MSVC9 project files.
+#   Add MSVC2012 project files.
+#
+#   Kathleen Bonnell, Thu Mar 3 10:38:05 PST 2011
+#   Remove MSVC2012 and MSVC2010 project files. Add MSVC2012 project files.
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -168,6 +171,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -216,9 +220,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -293,73 +294,79 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 EXTRA_DIST = \
-./MSVC9/Tests/alltypes.vcproj\
-./MSVC9/Tests/arbpoly.vcproj\
-./MSVC9/Tests/arbpoly3d.vcproj\
-./MSVC9/Tests/array.vcproj\
-./MSVC9/Tests/array_f.vfproj\
-./MSVC9/Tests/compression.vcproj\
-./MSVC9/Tests/csg.vcproj\
-./MSVC9/Tests/curve_f.vfproj\
-./MSVC9/Tests/dirtest.vcproj\
-./MSVC9/Tests/empty.vcproj\
-./MSVC9/Tests/extface.vcproj\
-./MSVC9/Tests/grab.vcproj\
-./MSVC9/Tests/group_test.vcproj\
-./MSVC9/Tests/largefile.vcproj\
-./MSVC9/Tests/listtypes.vcproj\
-./MSVC9/Tests/mat3d_3across.vcproj\
-./MSVC9/Tests/mat_f.vfproj\
-./MSVC9/Tests/merge_block.vcproj\
-./MSVC9/Tests/mmadjacency.vcproj\
-./MSVC9/Tests/multi_file.vcproj\
-./MSVC9/Tests/multi_test.vcproj\
-./MSVC9/Tests/multispec.vcproj\
-./MSVC9/Tests/namescheme.vcproj\
-./MSVC9/Tests/obj.vcproj\
-./MSVC9/Tests/onehex.vcproj\
-./MSVC9/Tests/oneprism.vcproj\
-./MSVC9/Tests/onepyramid.vcproj\
-./MSVC9/Tests/onetet.vcproj\
-./MSVC9/Tests/partial_io.vcproj\
-./MSVC9/Tests/point.vcproj\
-./MSVC9/Tests/point_f.vfproj\
-./MSVC9/Tests/polyzl.vcproj\
-./MSVC9/Tests/Preparation.vcproj\
-./MSVC9/Tests/quad.vcproj\
-./MSVC9/Tests/quad_f.vfproj\
-./MSVC9/Tests/sami.vcproj\
-./MSVC9/Tests/simple.vcproj\
-./MSVC9/Tests/spec.vcproj\
-./MSVC9/Tests/specmix.vcproj\
-./MSVC9/Tests/subhex.vcproj\
-./MSVC9/Tests/testall.vcproj\
-./MSVC9/Tests/testall_f.vfproj\
-./MSVC9/Tests/testpdb.vcproj\
-./MSVC9/Tests/TestReadMask.vcproj\
-./MSVC9/Tests/twohex.vcproj\
-./MSVC9/Tests/ucd1d.vcproj\
-./MSVC9/Tests/ucd.vcproj\
-./MSVC9/Tests/ucd_f.vfproj\
-./MSVC9/Tests/ucdsamp3.vcproj\
-./MSVC9/Tests/version.vcproj\
-./MSVC9/Tests/wave.vcproj\
-./MSVC9/Tests/Tests.sln\
-./MSVC9/Tests/CopyTestDependencies.bat\
-./MSVC9/Tests/TestIncludes.vsprops\
-./MSVC9/bin/RunTests.bat\
-./MSVC9/pdb_detect/pdb_detect.vcproj\
-./MSVC9/BaseIncludes.vsprops\
-./MSVC9/DepLibs.vsprops\
-./MSVC9/HDF5_Defines.vsprops\
-./MSVC9/ModernDTPR.vsprops\
-./MSVC9/NO_SEC_DEP.vsprops\
-./MSVC9/NON_BSD_DEFINES.vsprops\
-./MSVC9/QT_Defines.vsprops\
-./MSVC9/browser.vcproj\
-./MSVC9/silex.vcproj\
-./MSVC9/Silo.vcproj\
-./MSVC9/SiloWindows.sln\
+./MSVC2012/Tests/alltypes.vcxproj\
+./MSVC2012/Tests/arbpoly.vcxproj\
+./MSVC2012/Tests/arbpoly3d.vcxproj\
+./MSVC2012/Tests/array.vcxproj\
+./MSVC2012/Tests/array_f.vfproj\
+./MSVC2012/Tests/compression.vcxproj\
+./MSVC2012/Tests/csg.vcxproj\
+./MSVC2012/Tests/csgmesh_f.vfproj\
+./MSVC2012/Tests/curve_f.vfproj\
+./MSVC2012/Tests/dirtest.vcxproj\
+./MSVC2012/Tests/empty.vcxproj\
+./MSVC2012/Tests/extface.vcxproj\
+./MSVC2012/Tests/grab.vcxproj\
+./MSVC2012/Tests/group_test.vcxproj\
+./MSVC2012/Tests/largefile.vcxproj\
+./MSVC2012/Tests/listtypes.vcxproj\
+./MSVC2012/Tests/mat3d_3across.vcxproj\
+./MSVC2012/Tests/mat_f.vfproj\
+./MSVC2012/Tests/merge_block.vcxproj\
+./MSVC2012/Tests/mmadjacency.vcxproj\
+./MSVC2012/Tests/multi_file.vcxproj\
+./MSVC2012/Tests/multi_test.vcxproj\
+./MSVC2012/Tests/multispec.vcxproj\
+./MSVC2012/Tests/namescheme.vcxproj\
+./MSVC2012/Tests/obj.vcxproj\
+./MSVC2012/Tests/onehex.vcxproj\
+./MSVC2012/Tests/oneprism.vcxproj\
+./MSVC2012/Tests/onepyramid.vcxproj\
+./MSVC2012/Tests/onetet.vcxproj\
+./MSVC2012/Tests/partial_io.vcxproj\
+./MSVC2012/Tests/point.vcxproj\
+./MSVC2012/Tests/point_f.vfproj\
+./MSVC2012/Tests/polyzl.vcxproj\
+./MSVC2012/Tests/Preparation.vcxproj\
+./MSVC2012/Tests/quad.vcxproj\
+./MSVC2012/Tests/quad_f.vfproj\
+./MSVC2012/Tests/sami.vcxproj\
+./MSVC2012/Tests/simple.vcxproj\
+./MSVC2012/Tests/spec.vcxproj\
+./MSVC2012/Tests/specmix.vcxproj\
+./MSVC2012/Tests/subhex.vcxproj\
+./MSVC2012/Tests/testall.vcxproj\
+./MSVC2012/Tests/testall_f.vfproj\
+./MSVC2012/Tests/testfs.vcxproj\
+./MSVC2012/Tests/testpdb.vcxproj\
+./MSVC2012/Tests/TestReadMask.vcxproj\
+./MSVC2012/Tests/twohex.vcxproj\
+./MSVC2012/Tests/ucd1d.vcxproj\
+./MSVC2012/Tests/ucd.vcxproj\
+./MSVC2012/Tests/ucd_f.vfproj\
+./MSVC2012/Tests/ucdsamp3.vcxproj\
+./MSVC2012/Tests/version.vcxproj\
+./MSVC2012/Tests/wave.vcxproj\
+./MSVC2012/Tests/Tests.sln\
+./MSVC2012/Tests/CopyTestDependencies.bat\
+./MSVC2012/Tests/TestIncludes.props\
+./MSVC2012/bin/RunTests.bat\
+./MSVC2012/pdb_detect/pdb_detect.vcxproj\
+./MSVC2012/pdb_detect/pdb_detect.vcxproj.filters\
+./MSVC2012/BaseIncludes.props\
+./MSVC2012/DepLibs.props\
+./MSVC2012/HDF5_Defines.props\
+./MSVC2012/ModernDTPR.props\
+./MSVC2012/NO_SEC_DEP.props\
+./MSVC2012/NON_BSD_DEFINES.props\
+./MSVC2012/QT_Defines.props\
+./MSVC2012/browser.vcxproj\
+./MSVC2012/browser.vcxproj.filters\
+./MSVC2012/silex.vcxproj\
+./MSVC2012/silex.vcxproj.filters\
+./MSVC2012/Silo.vcxproj\
+./MSVC2012/Silo.vcxproj.filters\
+./MSVC2012/Silo.sln\
 ./include/config.h\
 ./resources/silex.aps\
 ./resources/silex.ico\
@@ -371,103 +378,21 @@ EXTRA_DIST = \
 ./copysilo.bat\
 ./silodiff.bat\
 ./README\
-./MSVC9-BSD/Tests/alltypes.vcproj\
-./MSVC9-BSD/Tests/arbpoly.vcproj\
-./MSVC9-BSD/Tests/arbpoly3d.vcproj\
-./MSVC9-BSD/Tests/array.vcproj\
-./MSVC9-BSD/Tests/array_f.vfproj\
-./MSVC9-BSD/Tests/compression.vcproj\
-./MSVC9-BSD/Tests/csg.vcproj\
-./MSVC9-BSD/Tests/curve_f.vfproj\
-./MSVC9-BSD/Tests/dirtest.vcproj\
-./MSVC9-BSD/Tests/empty.vcproj\
-./MSVC9-BSD/Tests/extface.vcproj\
-./MSVC9-BSD/Tests/grab.vcproj\
-./MSVC9-BSD/Tests/group_test.vcproj\
-./MSVC9-BSD/Tests/largefile.vcproj\
-./MSVC9-BSD/Tests/listtypes.vcproj\
-./MSVC9-BSD/Tests/mat3d_3across.vcproj\
-./MSVC9-BSD/Tests/mat_f.vfproj\
-./MSVC9-BSD/Tests/merge_block.vcproj\
-./MSVC9-BSD/Tests/mmadjacency.vcproj\
-./MSVC9-BSD/Tests/multi_file.vcproj\
-./MSVC9-BSD/Tests/multi_test.vcproj\
-./MSVC9-BSD/Tests/multispec.vcproj\
-./MSVC9-BSD/Tests/namescheme.vcproj\
-./MSVC9-BSD/Tests/obj.vcproj\
-./MSVC9-BSD/Tests/onehex.vcproj\
-./MSVC9-BSD/Tests/oneprism.vcproj\
-./MSVC9-BSD/Tests/onepyramid.vcproj\
-./MSVC9-BSD/Tests/onetet.vcproj\
-./MSVC9-BSD/Tests/partial_io.vcproj\
-./MSVC9-BSD/Tests/point.vcproj\
-./MSVC9-BSD/Tests/point_f.vfproj\
-./MSVC9-BSD/Tests/polyzl.vcproj\
-./MSVC9-BSD/Tests/Preparation.vcproj\
-./MSVC9-BSD/Tests/quad.vcproj\
-./MSVC9-BSD/Tests/quad_f.vfproj\
-./MSVC9-BSD/Tests/sami.vcproj\
-./MSVC9-BSD/Tests/simple.vcproj\
-./MSVC9-BSD/Tests/spec.vcproj\
-./MSVC9-BSD/Tests/specmix.vcproj\
-./MSVC9-BSD/Tests/subhex.vcproj\
-./MSVC9-BSD/Tests/testall.vcproj\
-./MSVC9-BSD/Tests/testall_f.vfproj\
-./MSVC9-BSD/Tests/testpdb.vcproj\
-./MSVC9-BSD/Tests/TestReadMask.vcproj\
-./MSVC9-BSD/Tests/twohex.vcproj\
-./MSVC9-BSD/Tests/ucd1d.vcproj\
-./MSVC9-BSD/Tests/ucd.vcproj\
-./MSVC9-BSD/Tests/ucd_f.vfproj\
-./MSVC9-BSD/Tests/ucdsamp3.vcproj\
-./MSVC9-BSD/Tests/version.vcproj\
-./MSVC9-BSD/Tests/wave.vcproj\
-./MSVC9-BSD/Tests/Tests.sln\
-./MSVC9-BSD/Tests/CopyTestDependencies.bat\
-./MSVC9-BSD/Tests/TestIncludes.vsprops\
-./MSVC9-BSD/bin/RunTests.bat\
-./MSVC9-BSD/pdb_detect/pdb_detect.vcproj\
-./MSVC9-BSD/BaseIncludes.vsprops\
-./MSVC9-BSD/DepLibs.vsprops\
-./MSVC9-BSD/HDF5_Defines.vsprops\
-./MSVC9-BSD/ModernDTPR.vsprops\
-./MSVC9-BSD/NO_SEC_DEP.vsprops\
-./MSVC9-BSD/QT_Defines.vsprops\
-./MSVC9-BSD/browser.vcproj\
-./MSVC9-BSD/silex.vcproj\
-./MSVC9-BSD/Silo.vcproj\
-./MSVC9-BSD/SiloWindows.sln\
-./MSVC2010/BaseIncludes.props\
-./MSVC2010/DepLibs.props\
-./MSVC2010/HDF5_Defines.props\
-./MSVC2010/ModernDTPR.props\
-./MSVC2010/NON_BSD_DEFINES.props\
-./MSVC2010/NO_SEC_DEP.props\
-./MSVC2010/QT_Defines.props\
-./MSVC2010/Silo.sln\
-./MSVC2010/Silo.vcxproj\
-./MSVC2010/Silo.vcxproj.filters\
-./MSVC2010/browser.vcxproj\
-./MSVC2010/browser.vcxproj.filters\
-./MSVC2010/silex.vcxproj\
-./MSVC2010/silex.vcxproj.filters\
-./MSVC2010/pdb_detect/pdb_detect.vcxproj\
-./MSVC2010/pdb_detect/pdb_detect.vcxproj.filters\
-./MSVC2010-BSD/BaseIncludes.props\
-./MSVC2010-BSD/DepLibs.props\
-./MSVC2010-BSD/HDF5_Defines.props\
-./MSVC2010-BSD/ModernDTPR.props\
-./MSVC2010-BSD/NO_SEC_DEP.props\
-./MSVC2010-BSD/QT_Defines.props\
-./MSVC2010-BSD/Silo.sln\
-./MSVC2010-BSD/Silo.vcxproj\
-./MSVC2010-BSD/Silo.vcxproj.filters\
-./MSVC2010-BSD/browser.vcxproj\
-./MSVC2010-BSD/browser.vcxproj.filters\
-./MSVC2010-BSD/silex.vcxproj\
-./MSVC2010-BSD/silex.vcxproj.filters\
-./MSVC2010-BSD/pdb_detect/pdb_detect.vcxproj\
-./MSVC2010-BSD/pdb_detect/pdb_detect.vcxproj.filters
+./MSVC2012-BSD/pdb_detect/pdb_detect.vcxproj\
+./MSVC2012-BSD/pdb_detect/pdb_detect.vcxproj.filters\
+./MSVC2012-BSD/BaseIncludes.props\
+./MSVC2012-BSD/DepLibs.props\
+./MSVC2012-BSD/HDF5_Defines.props\
+./MSVC2012-BSD/ModernDTPR.props\
+./MSVC2012-BSD/NO_SEC_DEP.props\
+./MSVC2012-BSD/QT_Defines.props\
+./MSVC2012-BSD/browser.vcxproj\
+./MSVC2012-BSD/browser.vcxproj.filters\
+./MSVC2012-BSD/silex.vcxproj\
+./MSVC2012-BSD/silex.vcxproj.filters\
+./MSVC2012-BSD/Silo.vcxproj\
+./MSVC2012-BSD/Silo.vcxproj.filters\
+./MSVC2012-BSD/Silo.sln
 
 all: all-am
 
diff --git a/SiloWindows/include/config.h b/SiloWindows/include/config.h
index 53b8f02..3b86f5c 100644
--- a/SiloWindows/include/config.h
+++ b/SiloWindows/include/config.h
@@ -102,7 +102,7 @@
 #define HAVE_MEMORY_H 1
 
 /* Support for NetCDF */
-/* #undef HAVE_NETCDF_DRIVER */
+#define HAVE_NETCDF_DRIVER
 
 /* Support for PDB Proper */
 /* #undef HAVE_PDBP_DRIVER */
diff --git a/VERSION b/VERSION
index 5b341fd..0216ba3 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.9.1
+4.10.2
diff --git a/config-site/Makefile.in b/config-site/Makefile.in
index 814b8de..f86b6a8 100644
--- a/config-site/Makefile.in
+++ b/config-site/Makefile.in
@@ -157,6 +157,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -205,9 +206,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/config/Makefile.in b/config/Makefile.in
index 35e8468..56d22b4 100644
--- a/config/Makefile.in
+++ b/config/Makefile.in
@@ -158,6 +158,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -206,9 +207,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/config/ax_have_qt.m4 b/config/ax_have_qt.m4
index b4623f1..4f0d641 100644
--- a/config/ax_have_qt.m4
+++ b/config/ax_have_qt.m4
@@ -292,28 +292,28 @@ int main( int argc, char **argv )
 EOF
 
       ax_cv_qt_test_result="failure"
-      ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null"
+      ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext"
       AC_TRY_EVAL(ax_try_1)
       if test x"$ac_status" != x0; then
         echo "$ax_err_1" >&AS_MESSAGE_LOG_FD
         echo "configure: could not run $QT_MOC on:" >&AS_MESSAGE_LOG_FD
         cat ax_qt_test.h >&AS_MESSAGE_LOG_FD
       else
-        ax_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_ax_qt_test.o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null"
+        ax_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_ax_qt_test.o moc_ax_qt_test.$ac_ext"
         AC_TRY_EVAL(ax_try_2)
         if test x"$ac_status" != x0; then
           echo "$ax_err_2" >&AS_MESSAGE_LOG_FD
           echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD
           cat moc_ax_qt_test.$ac_ext >&AS_MESSAGE_LOG_FD
         else
-          ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext >/dev/null 2>/dev/null"
+          ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext"
           AC_TRY_EVAL(ax_try_3)
           if test x"$ac_status" != x0; then
             echo "$ax_err_3" >&AS_MESSAGE_LOG_FD
             echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD
             cat ax_qt_main.$ac_ext >&AS_MESSAGE_LOG_FD
           else
-            ax_try_4="$CXX -o ax_qt_main ax_qt_main.o moc_ax_qt_test.o $QT_LIBS $LIBS >/dev/null 2>/dev/null"
+            ax_try_4="$CXX -o ax_qt_main ax_qt_main.o moc_ax_qt_test.o $QT_LIBS $LIBS"
             AC_TRY_EVAL(ax_try_4)
             if test x"$ac_status" != x0; then
               echo "$ax_err_4" >&AS_MESSAGE_LOG_FD
diff --git a/config/config.h.in b/config/config.h.in
index db0a461..449a9b0 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -77,6 +77,9 @@
 /* Define to 1 if you have the `isnan' function. */
 #undef HAVE_ISNAN
 
+/* Support for experimental JSON features */
+#undef HAVE_JSON
+
 /* Define to 1 if you have the `hdf5' library (-lhdf5). */
 #undef HAVE_LIBHDF5
 
diff --git a/config/mkinc b/config/mkinc
index 6f5a591..cb89158 100755
--- a/config/mkinc
+++ b/config/mkinc
@@ -17,6 +17,7 @@ exec perl /tmp/visitperl$$ $0 ${1+"$@"}
 unlink $0;
 $0 = shift @ARGV;
 
+#!/usr/bin/perl
 #########################################################################
 # Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
 # LLNL-CODE-425250.
@@ -119,6 +120,26 @@ $0 = shift @ARGV;
 #   Right hand side values computed so that couples (name,value) fit
 #   within 72 characters to hold on a single unwrapped line.
 #
+#   Bob Apthorpe, Sun Jul 28 21:07:21 CDT 2013
+#   Enhanced F77- and F9X-style output. Specifically:
+#   * Better estimate of C string length (fix for Bug #503; see 
+#     https://visitbugs.ornl.gov/issues/503 ). Leading and trailing
+#     delimiters are ignored in length calculation as are escaped
+#     entities (\n, \r, etc.)
+#   * Accepts command-line argument of --f90 to produce F9x-style output
+#     compatible with both fixed- and free-format F9x code
+#   * Improved standards compliance. Changed comment and continuation 
+#     characters to be appropriate for both F77 and F9x. Note that 
+#     Lower-case is an extension to F77 so F77 identifiers have been
+#     upcased
+#   * Converted standalone EXTERNAL and PARAMETER statements to 
+#     attributes of type declarations for F9x. This is a F9x best
+#     practice by putting all variable properties in one place
+#   * Removed line-wrapping code; declarations have been burst into
+#     one per line. This obviates the need for line wrapping and makes
+#     differences in the exposed API clearer between versions.
+#     It's more legible to humans; no complaints from the compiler...
+#
 #########################################################################
 
 
@@ -127,15 +148,39 @@ local ($sdx) = 0;
 
 local($enum_body) = 0;
 local($brace_level) = 0;
-local(%vals) = () ;
+local(%vals) = ();
+
+# Literal command line option passed to this script
+local($arg0) = '';
+
+# Flag indicating F90 style desired
+local($opt_f90) = 0;
+
+# Fortran comment character; use 'C' for F77, '!' for F90 and later
+local($ccmt) = 'C';
+
+# Get command-line option (if any) to select F77 or F9x+ formatting
+# There are better ways of doing this; just not in Perl4 style as of 2013...
+if (length(@ARGV) >= 1) {
+    if ($ARGV[0] eq '--f90') {
+        $opt_f90 = 1;
+        $arg0 = shift @ARGV;
+        $arg0 .= ' ' ;
+        $ccmt = '!';
+    }
+} 
 
 ### Gather the info...
 while (<>) {
     next if (/NO_FORTRAN_DEFINE/);
-    if (/^#[ \t]*define[ \t]+((SILO_VERS|DB|SDX)(OPT|CSG)?_\w+)[ \t]+([^ \t\n]*)/) {
+    if (/^#[ \t]*define[ \t]+((SILO_VERS|DB|SDX)(OPT|CSG)?_\w+)[ \t]+([^ \t\n]*)/)
+    {
         local ($name, $value) = ($1, $4);
         $sdx=1 if ($name=~/^SDX/);
         $name =~ s/^SDX_//;
+        if ($value =~ /\(\((char|int|double)\)(.*)\)/) {
+            $value = $2;
+        }
 	if ($name eq "SILO_VERS_TAG")
 	{
 	    next;
@@ -144,6 +189,10 @@ while (<>) {
 	{
 	    $value = 0;
 	}
+        if ($value eq "1.0e+308") 
+        {
+            $value = "1.0D+308";
+        }
         if (/FORTRAN STRING/)
         {
             push (@strings, join(':',$name,$value));
@@ -179,101 +228,110 @@ $date = `date`;
 chop($date);
 $user = $ENV{USER};
 print <<"EOF";
-!cccccccccccccccccccccccccccccccccccccccccccccccccccccccc -*- fortran -*-
-!
-!     $title include file for Fortan applications.
-!
-! Programmer:   $user $date
-!
-! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-!    This file is generated automatically from C header files in the
-!    SILO distribution.  Do not make changes to this file manually,
-!    as those changes will disappear.
-! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-!
-! This file was generated by the following commands...
+${ccmt}cccccccccccccccccccccccccccccccccccccccccccccccccccccccc -*- fortran -*-
+${ccmt} 
+${ccmt}      $title include file for Fortan applications.
+${ccmt} 
+${ccmt}  Programmer:   $user $date
+${ccmt} 
+${ccmt}  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+${ccmt}     This file is generated automatically from C header files in the
+${ccmt}     SILO distribution.  Do not make changes to this file manually,
+${ccmt}     as those changes will disappear.
+${ccmt}  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+${ccmt} 
+${ccmt}  This file was generated by the following commands...
 EOF
 
 if ($sdx) { print <<"EOF";
-!       mv sdx.inc sdx.inc~
-!       cat sdx.h sdx_server.h | mkinc > sdx.inc
-!
-!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+${ccmt}        mv sdx.inc sdx.inc~
+${ccmt}        cat sdx.h sdx_server.h | mkinc $arg0> sdx.inc
+${ccmt} 
+${ccmt} cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
 
 EOF
 } else { print <<"EOF";
-!       mv silo.inc silo.inc~
-!       cat silo.h silo_f.h | mkinc > silo.inc
-!
-!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+${ccmt}        mv silo.inc silo.inc~
+${ccmt}        cat silo.h silo_f.h | mkinc $arg0> silo.inc
+${ccmt} 
+${ccmt} cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
 
 EOF
 }
 
 ### Write `external' statements for the functions...
-print "!...Functions.\n";
+print "$ccmt...Functions.\n";
 $line = "";
 foreach $var (sort @functions) {
     if (length($line)+2+length($var)>72) {
         print "$line\n";
         $line = "";
-        }
-    if (0==length($line)) {
-        $line = "      external $var";
+    }
+
+    if ($opt_f90) {
+        $line = "      integer, external :: $var";
     } else {
-        $line .= ", " . $var;
+        $line = "      EXTERNAL  " . uc($var);
     }
+    print "$line\n";
 }
-print "$line\n" if (0!=length($line));
 
 ### Write `integer' statements for the functions...
-print "\n";
-$line = "";
-foreach $var (sort @functions) {
-    if (length($line)+2+length($var)>72) {
-        print "$line\n";
-        $line = "";
-        }
-    if (0==length($line)) {
-        $line = "      integer  $var";
-    } else {
-        $line .= ", " . $var;
+if (not $opt_f90) {
+    print "\n";
+    $line = "";
+    foreach $var (sort @functions) {
+        print "      INTEGER  " . uc($var) . "\n";
     }
 }
-print "$line\n" if (0!=length($line));
+
+print "\n\n$ccmt...Parameters.\n";
+
+### Skip separate type and parameter declarations. Better F90 practice
+### is to use attributes (parameter, dimension, etc.) in declarations
+
+if (not $opt_f90) {
 
 ### Write `integer' statements for the constants...
-print "\n\n!...Parameters.\n";
-$line = "";
-foreach $var (sort @parameters) {
-    local ($name, $value) = split (':', $var);
-    if (length($line)+2+length($name)>72) {
-        print "$line\n";
-        $line = "";
+    $line = "";
+    foreach $var (sort @parameters) {
+        local ($name, $value) = split (':', $var);
+        if ($value =~ /\./) {
+            print "      DOUBLE PRECISION " . uc($name) . "\n";
+        } else {
+            print "      INTEGER  " . uc($name) . "\n";
         }
-    if (0==length($line)) {
-        $line = "      integer  $name";
-    } else {
-        $line .= ", " . $name;
     }
-}
-print "$line\n" if (0!=length($line));
 
 ### Write `character' statements for the constants...
-foreach $var (sort @strings)
-{
-    local ($name, $value) = split (':', $var);
-    print "      character*".length($value)."  $name\n";
+    foreach $var (sort @strings) {
+        local ($name, $value) = split (':', $var);
+        local($fstrlen) = 0;
+        local($tmpstr) = $value;
+        if ($tmpstr =~ /^(["'])/) {
+            local($delim) = $1;
+            $tmpstr =~ s/^$delim//;
+            $tmpstr =~ s/$delim$//;
+        }
+        $tmpstr =~ s/\\./*/g;
+        $fstrlen = length($tmpstr);
+
+        $line = '      CHARACTER*' . $fstrlen . '  ' . uc($name) . "\n";
+        print $line;
+    }
+
+    print "\n";
 }
 
 ### Write `parameter' statements for the constants...
-### Don't sort these, because some $value's may depend on
+### Don't sort these, because some $values may depend on
 ### previous parameter statements.
-print "\n";
 push(@temparray, at parameters);
 push(@temparray, at strings);
+local($ftype) = '';
+local($fstrlen) = 0;
 foreach $var (@temparray) {
     local ($name, $value) = split (':', $var);
     if ($value =~ /^0x[0-9A-F]*/) {
@@ -286,7 +344,7 @@ foreach $var (@temparray) {
         $value = "DB_HDF5X+$g1*2048";
     }
     # Evaluate the RHS using array %vals:
-    if ($value =~ /^\d+$/) {
+    if ($value =~ /^\d*\.?\d*([DE]\+)?\d+$/) {
       $vals{$name} = $value ;
     } else {
       # Let us look at the RHS expression:
@@ -311,26 +369,60 @@ foreach $var (@temparray) {
     unless ($name =~ /DB_F77NULL/) {
 	$value = $vals{$name} if (exists $vals{$name}) ;
     }
+
     # Why make the line human readable whereas it only needs be compiler compliant ?
     # $line = sprintf("      parameter (%-25s = %-15s)", $name, $value);
     # Written in a FORTRAN 77/Fortran 90 manner:
-    $line = sprintf("      parameter(%s=%s)", $name, $value);
+    if ($opt_f90) {
+        # Determine type of Fortran parameter (F90 declaration)
+        if ($value =~ /['"]/) {
+            local($tmpstr) = $value;
+            if ($tmpstr =~ /^(["'])/) {
+                local($delim) = $1;
+                $tmpstr =~ s/^$delim//;
+                $tmpstr =~ s/$delim$//;
+            }
+            $tmpstr =~ s/\\./*/g;
+            $fstrlen = length($tmpstr);
+
+            $ftype = 'character (len=' . $fstrlen . ')'
+        }
+        elsif ($value =~ /\./) {
+            $ftype = 'real (kind=8)';
+        } else {
+            $ftype = 'integer';
+        }
+        $line = sprintf("      %s, parameter :: %s = %s", $ftype, $name, $value);
+    } else {
+        $line = sprintf("      PARAMETER (%s=%s)", uc($name), $value);
+    }
+
     if (length($line)>72) {
         local $off=0;
         while ($off < length($line)) {
-            $curline = substr($line, $off, $off+64);
-            if ($off == 0) {
-                printf "$curline\n";
+            if ($opt_f90) {
+                $curline = substr($line, $off, $off+64);
+                if ($off == 0) {
+                    printf "$curline\n";
+                } else {
+                    printf '     &' . $curline . "\n";
+                }
+                $off += 64;
             } else {
-                printf "     c$curline\n";
+                $curline = substr($line, $off, $off+64) . '&';
+                if ($off == 0) {
+                    printf "$curline\n";
+                } else {
+                    printf '     &' . $curline . "\n";
+                }
+                $off += 64;
             }
-            $off += 64;
         }
     } else {
         printf "$line\n";
     }
 }
 
-print "\n\n! End.\n";
+print "\n\n" . $ccmt. " End.\n";
 
 exit 0;
diff --git a/configure b/configure
index 70d7b0c..e326582 100755
--- a/configure
+++ b/configure
@@ -1,9 +1,9 @@
 #! /bin/sh
 # From configure.ac Id.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for silo 4.9.1.
+# Generated by GNU Autoconf 2.63 for silo 4.10.2.
 #
-# Report bugs to <visit-users at email.ornl.gov>.
+# Report bugs to <visit-users at elist.ornl.gov>.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -751,9 +751,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='silo'
 PACKAGE_TARNAME='silo'
-PACKAGE_VERSION='4.9.1'
-PACKAGE_STRING='silo 4.9.1'
-PACKAGE_BUGREPORT='visit-users at email.ornl.gov'
+PACKAGE_VERSION='4.10.2'
+PACKAGE_STRING='silo 4.10.2'
+PACKAGE_BUGREPORT='visit-users at elist.ornl.gov'
 
 ac_unique_file="src/silo/silo.h.in"
 ac_default_prefix="`pwd`"
@@ -804,6 +804,8 @@ CXX_LINK_NEEDED_FALSE
 CXX_LINK_NEEDED_TRUE
 ZLIB_AVAILABLE_FALSE
 ZLIB_AVAILABLE_TRUE
+JSON_NEEDED_FALSE
+JSON_NEEDED_TRUE
 FPZIP_NEEDED_FALSE
 FPZIP_NEEDED_TRUE
 HZIP_NEEDED_FALSE
@@ -854,6 +856,7 @@ X_LIBS
 X_PRE_LIBS
 X_CFLAGS
 XMKMF
+JSON
 FPZIP
 ZLIB
 HZIP
@@ -863,9 +866,6 @@ HDF5_DRV
 TAURUS
 PDB_DRV
 NETCDF
-SILO_DTYPPTR2
-SILO_DTYPPTR1
-SILO_DTYPPTR
 CXXCPP
 OTOOL64
 OTOOL
@@ -1011,7 +1011,6 @@ enable_fast_install
 with_gnu_ld
 enable_libtool_lock
 enable_optimization
-enable_legacy_datatyped_pointers
 enable_normal_sclite_mem_headers
 enable_install_lite_headers
 with_readline
@@ -1020,6 +1019,7 @@ enable_silex
 with_zlib
 enable_hzip
 enable_fpzip
+enable_json
 with_x
 with_Qt_dir
 with_Qt_include_dir
@@ -1600,7 +1600,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 silo 4.9.1 to adapt to many kinds of systems.
+\`configure' configures silo 4.10.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1674,7 +1674,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of silo 4.9.1:";;
+     short | recursive ) echo "Configuration of silo 4.10.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1694,9 +1694,6 @@ Optional Features:
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --enable-optimization   compile with optimization [default=no]
-  --enable-legacy-datatyped-pointers
-                          compile using legacy (float) pointers for datatype'd
-                          pointers [default=no]
   --enable-normal-sclite-mem-headers
                           compile with normal score lite memory headers
                           [default=no]
@@ -1708,6 +1705,7 @@ Optional Features:
                           [default=yes]
   --enable-fpzip          enable Lindstrom float 1,2,3D array compression
                           [default=yes]
+  --enable-json           enable experimental JSON features[default=no]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -1731,7 +1729,8 @@ Optional Packages:
   --with-szlib=DIR        Use szlib library for external szlib I/O filter
                           [default=no]
   --with-hdf5=INC,LIB     Location of HDF5 header and library
-  --with-pdb-proper       directory where PDB proper is installed [default=no]
+  --with-pdb-proper       Turns on PDB proper driver by specifying directory
+                          where PDB proper is installed [default=no]
 
 Some influential environment variables:
   CXX         C++ compiler command
@@ -1754,7 +1753,7 @@ Some influential environment variables:
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-Report bugs to <visit-users at email.ornl.gov>.
+Report bugs to <visit-users at elist.ornl.gov>.
 _ACEOF
 ac_status=$?
 fi
@@ -1817,7 +1816,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-silo configure 4.9.1
+silo configure 4.10.2
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1836,7 +1835,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by silo $as_me 4.9.1, which was
+It was created by silo $as_me 4.10.2, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2686,7 +2685,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='silo'
- VERSION='4.9.1'
+ VERSION='4.10.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2919,13 +2918,13 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 # Grab the version number
 { $as_echo "$as_me:$LINENO: checking what version the package is" >&5
 $as_echo_n "checking what version the package is... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: 4.9.1" >&5
-$as_echo "4.9.1" >&6; }
- SILO_VERS_MAJ="`echo 4.9.1 | cut -d'.' -f1`"
- SILO_VERS_MIN="`echo 4.9.1 | cut -d'.' -f2 | cut -d'-' -f1`"
- SILO_VERS_PAT="`echo 4.9.1 | cut -d'.' -f3 | cut -d'-' -f1`"
- SILO_VERS_PRE="`echo 4.9.1 | grep pre | cut -d'-' -f2 | cut -d'e' -f2`"
- SILO_VERS_TAG="`echo Silo_version 4.9.1 | sed -e 's/ /_/' -e 's/\./_/g' -e 's/-/_/g'`"
+{ $as_echo "$as_me:$LINENO: result: 4.10.2" >&5
+$as_echo "4.10.2" >&6; }
+ SILO_VERS_MAJ="`echo 4.10.2 | cut -d'.' -f1`"
+ SILO_VERS_MIN="`echo 4.10.2 | cut -d'.' -f2 | cut -d'-' -f1`"
+ SILO_VERS_PAT="`echo 4.10.2 | cut -d'.' -f3 | cut -d'-' -f1`"
+ SILO_VERS_PRE="`echo 4.10.2 | grep pre | cut -d'-' -f2 | cut -d'e' -f2`"
+ SILO_VERS_TAG="`echo Silo_version 4.10.2 | sed -e 's/ /_/' -e 's/\./_/g' -e 's/-/_/g'`"
 
  CONFIG_CMD="`echo $0 $ac_configure_args`"
 
@@ -2940,10 +2939,11 @@ fi
 
 DEFAULT_PYTHONMODULE=""
 DEFAULT_BROWSER="browser"
-DEFAULT_SILEX="silex"
+DEFAULT_SILEX=""
 DEFAULT_HZIP="hzip"
 DEFAULT_FPZIP="fpzip"
 DEFAULT_FORTRAN="fortran"
+DEFAULT_JSON=""
 default_detect_readline="yes"
 
 hname="`hostname`"
@@ -23198,22 +23198,6 @@ else
 fi
 
 
-SILO_DTYPPTR="void"
-SILO_DTYPPTR1="void*"
-SILO_DTYPPTR2="void*"
-# Check whether --enable-legacy-datatyped-pointers was given.
-if test "${enable_legacy_datatyped_pointers+set}" = set; then
-  enableval=$enable_legacy_datatyped_pointers; if test $enableval = yes; then
-        SILO_DTYPPTR="float"
-        SILO_DTYPPTR1="float*"
-        SILO_DTYPPTR2="float**"
-    fi
-fi
-
-
-
-
-
 # Check whether --enable-normal-sclite-mem-headers was given.
 if test "${enable_normal_sclite_mem_headers+set}" = set; then
   enableval=$enable_normal_sclite_mem_headers; if test "$enableval" = "yes" ; then
@@ -23292,8 +23276,8 @@ fi
 SILEX=$DEFAULT_SILEX
 # Check whether --enable-silex was given.
 if test "${enable_silex+set}" = set; then
-  enableval=$enable_silex; if test "$enable_silex" = "no"; then
-        SILEX=""
+  enableval=$enable_silex; if test "$enable_silex" = "yes"; then
+        SILEX="silex"
     fi
 fi
 
@@ -23490,7 +23474,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -23646,6 +23630,60 @@ _ACEOF
 
 fi
 
+# Check whether --enable-json was given.
+if test "${enable_json+set}" = set; then
+  enableval=$enable_json; if test "$enable_json" = "yes"; then
+        { $as_echo "$as_me:$LINENO: checking Enabling json..." >&5
+$as_echo_n "checking Enabling json...... " >&6; }
+        if test -e ${ac_abs_confdir}/tools/json/json-c-0.10.tar.gz; then
+            if test -z "$(find tools/json/json-c-0.10 -name libjson.so -o -name libjson.a -o -name libjson.dylib)"; then
+                if test ! -e ./tools/json; then
+                    mkdir tools 1>/dev/null 2>&1
+                    mkdir tools/json 1>/dev/null 2>&1
+                fi
+                pushd tools/json 1>/dev/null 2>&1
+                rm -rf json-c-0.10
+                gunzip < ${ac_abs_confdir}/tools/json/json-c-0.10.tar.gz | tar xf -
+                cd json-c-0.10
+                if test ! "${prefix}" = "NONE"; then
+                    ./configure --prefix=${prefix}/json
+                    make install
+                else
+                    ./configure
+                    make
+                fi
+                if test $? -eq 0; then
+                    { $as_echo "$as_me:$LINENO: result: json-c compiled and installed" >&5
+$as_echo "json-c compiled and installed" >&6; }
+                    JSON="json"
+                else
+                    { $as_echo "$as_me:$LINENO: result: JSON support disabled due to failure to install" >&5
+$as_echo "JSON support disabled due to failure to install" >&6; }
+                    JSON=""
+                fi
+                popd 1>/dev/null 2>&1
+            else
+                { $as_echo "$as_me:$LINENO: result: json-c compiled and installed" >&5
+$as_echo "json-c compiled and installed" >&6; }
+                JSON="json"
+            fi
+        else
+            { $as_echo "$as_me:$LINENO: result: JSON support not available because json-c distribution is not in this tarball" >&5
+$as_echo "JSON support not available because json-c distribution is not in this tarball" >&6; }
+            JSON=""
+        fi
+    fi
+fi
+
+
+if test -n "$JSON"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_JSON 1
+_ACEOF
+
+fi
+
 # Turn on C optimization flags
 { $as_echo "$as_me:$LINENO: checking compiler optimization" >&5
 $as_echo_n "checking compiler optimization... " >&6; }
@@ -24580,7 +24618,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -24742,7 +24780,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -24893,7 +24931,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -25058,7 +25096,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -25209,7 +25247,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -25361,7 +25399,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -28027,7 +28065,7 @@ int main( int argc, char **argv )
 EOF
 
       ax_cv_qt_test_result="failure"
-      ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null"
+      ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext"
       { (eval echo "$as_me:$LINENO: \"$ax_try_1\"") >&5
   (eval $ax_try_1) 2>&5
   ac_status=$?
@@ -28038,7 +28076,7 @@ EOF
         echo "configure: could not run $QT_MOC on:" >&5
         cat ax_qt_test.h >&5
       else
-        ax_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_ax_qt_test.o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null"
+        ax_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_ax_qt_test.o moc_ax_qt_test.$ac_ext"
         { (eval echo "$as_me:$LINENO: \"$ax_try_2\"") >&5
   (eval $ax_try_2) 2>&5
   ac_status=$?
@@ -28049,7 +28087,7 @@ EOF
           echo "configure: could not compile:" >&5
           cat moc_ax_qt_test.$ac_ext >&5
         else
-          ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext >/dev/null 2>/dev/null"
+          ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext"
           { (eval echo "$as_me:$LINENO: \"$ax_try_3\"") >&5
   (eval $ax_try_3) 2>&5
   ac_status=$?
@@ -28060,7 +28098,7 @@ EOF
             echo "configure: could not compile:" >&5
             cat ax_qt_main.$ac_ext >&5
           else
-            ax_try_4="$CXX -o ax_qt_main ax_qt_main.o moc_ax_qt_test.o $QT_LIBS $LIBS >/dev/null 2>/dev/null"
+            ax_try_4="$CXX -o ax_qt_main ax_qt_main.o moc_ax_qt_test.o $QT_LIBS $LIBS"
             { (eval echo "$as_me:$LINENO: \"$ax_try_4\"") >&5
   (eval $ax_try_4) 2>&5
   ac_status=$?
@@ -28789,7 +28827,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -29099,7 +29137,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -29378,7 +29416,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -29795,7 +29833,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -30026,7 +30064,7 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ----------------------------------------- ##
-## Report this to visit-users at email.ornl.gov ##
+## Report this to visit-users at elist.ornl.gov ##
 ## ----------------------------------------- ##
 _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
@@ -30502,6 +30540,14 @@ else
   FPZIP_NEEDED_FALSE=
 fi
 
+ if test -n "$JSON"; then
+  JSON_NEEDED_TRUE=
+  JSON_NEEDED_FALSE='#'
+else
+  JSON_NEEDED_TRUE='#'
+  JSON_NEEDED_FALSE=
+fi
+
  if test -n "$ZLIB"; then
   ZLIB_AVAILABLE_TRUE=
   ZLIB_AVAILABLE_FALSE='#'
@@ -30518,7 +30564,7 @@ else
   CXX_LINK_NEEDED_FALSE=
 fi
 
-ac_config_files="$ac_config_files Makefile SiloWindows/Makefile svn_bin/Makefile config/Makefile config-site/Makefile docs/Makefile src/Makefile src/score/Makefile src/pdb/Makefile src/silo/Makefile src/silo/silo.h src/debug/Makefile src/netcdf/Makefile src/pdb_drv/Makefile src/pdbp_drv/Makefile src/hdf5_drv/Makefile src/taurus/Makefile src/unknown/Makefile src/filters/Makefile tests/Makefile tools/Makefile tools/browser/Makefile tools/python/Makefile tools/silex/Makefile tools/silock/Makefile"
+ac_config_files="$ac_config_files Makefile SiloWindows/Makefile svn_bin/Makefile config/Makefile config-site/Makefile docs/Makefile src/Makefile src/score/Makefile src/pdb/Makefile src/silo/Makefile src/silo/silo.h src/debug/Makefile src/netcdf/Makefile src/pdb_drv/Makefile src/pdbp_drv/Makefile src/hdf5_drv/Makefile src/taurus/Makefile src/unknown/Makefile src/filters/Makefile tests/Makefile tools/Makefile tools/browser/Makefile tools/python/Makefile tools/silex/Makefile tools/silock/Ma [...]
 
 if test -n "$HZIP"; then
   ac_config_files="$ac_config_files src/hzip/Makefile"
@@ -30535,18 +30581,9 @@ else
   ac_config_files="$ac_config_files src/libsilo.settings"
 
 fi
-CC_FULLPATH=""
-if test -n "$CC"; then
-    CC_FULLPATH=`which $CC`
-fi
-CXX_FULLPATH=""
-if test -n "$CXX"; then
-    CXX_FULLPATH=`which $CXX`
-fi
-FC_FULLPATH=""
-if test -n "$FC"; then
-    FC_FULLPATH=`which $FC`
-fi
+CC_FULLPATH=$(which $(echo ${CC:-"nocc"} | cut -d' ' -f1))
+CXX_FULLPATH=$(which $(echo ${CXX:-"nocxx"} | cut -d' ' -f1))
+FC_FULLPATH=$(which $(echo ${FC:-"nofc"} | cut -d' ' -f1))
 
 
 
@@ -30774,6 +30811,13 @@ $as_echo "$as_me: error: conditional \"FPZIP_NEEDED\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${JSON_NEEDED_TRUE}" && test -z "${JSON_NEEDED_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"JSON_NEEDED\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"JSON_NEEDED\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${ZLIB_AVAILABLE_TRUE}" && test -z "${ZLIB_AVAILABLE_FALSE}"; then
   { { $as_echo "$as_me:$LINENO: error: conditional \"ZLIB_AVAILABLE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -31110,7 +31154,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by silo $as_me 4.9.1, which was
+This file was extended by silo $as_me 4.10.2, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -31173,7 +31217,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-silo config.status 4.9.1
+silo config.status 4.10.2
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -31844,6 +31888,8 @@ do
     "tools/python/Makefile") CONFIG_FILES="$CONFIG_FILES tools/python/Makefile" ;;
     "tools/silex/Makefile") CONFIG_FILES="$CONFIG_FILES tools/silex/Makefile" ;;
     "tools/silock/Makefile") CONFIG_FILES="$CONFIG_FILES tools/silock/Makefile" ;;
+    "tools/json/Makefile") CONFIG_FILES="$CONFIG_FILES tools/json/Makefile" ;;
+    "tools/mapred/Makefile") CONFIG_FILES="$CONFIG_FILES tools/mapred/Makefile" ;;
     "src/hzip/Makefile") CONFIG_FILES="$CONFIG_FILES src/hzip/Makefile" ;;
     "src/fpzip/Makefile") CONFIG_FILES="$CONFIG_FILES src/fpzip/Makefile" ;;
     "src/libsiloh5.settings") CONFIG_FILES="$CONFIG_FILES src/libsiloh5.settings" ;;
diff --git a/configure.ac b/configure.ac
index 09ba901..71201fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -55,217 +55,6 @@ dnl Mar 18, 1996
 dnl
 dnl Modifications:
 dnl
-dnl     Robb Matzke, 5 Mar 1997
-dnl     Replaced `touch X' with `echo something > X' because touch doesn't
-dnl     update the mtime when touching an empty file on some old BSD systems
-dnl     (and neither do other commands that open an empty file for read/write
-dnl     access).
-dnl
-dnl     Robb Matzke, 6 Mar 1997
-dnl     Added checks for `-lXpm' and `-lXext' needed by meshtv and meshtvx.
-dnl
-dnl     Robb Matzke, 19 Mar 1997
-dnl     Added a check for a site configuration file based on the host
-dnl     name.  If `hostname` returns X, then the configuration file
-dnl     ./cofig-site/X.conf is sourced.  The file contains envronment
-dnl     variable settings which would have normally appeared on the
-dnl     command line so that when make reruns configure the appropriate
-dnl     variables are set.  For instance, when I work on maya.nuance.mdn.com
-dnl     I use the GNU gcc compiler and I want to turn on warnings and generate
-dnl     debug tables.  This is done by adding the line
-dnl
-dnl           export CFLAGS="-Wall -g"
-dnl
-dnl     to the ./config-site/maya.nuance.mdn.com.conf file.  These personal
-dnl     site configuration files should not be part of a distribution.
-dnl
-dnl     Robb Matzke, 20 Mar 1997
-dnl     The builtin `pwd' command fails on some systems, so we use
-dnl     `/bin/pwd' instead if available.
-dnl
-dnl     Robb Matzke, 20 Mar 1997
-dnl     Added the `-f /dev/null' option to the GNU make test in case
-dnl     a valid makefile accidently exists.
-dnl
-dnl     Robb Matzke, 2 Apr 1997
-dnl     Removed the AC_FUNC_MMAP check since nothing uses it.
-dnl
-dnl     Robb Matzke, 15 May 1997
-dnl     Removed OS_TYPE as a config.h constant since it was never added to
-dnl     acconfig.h anyway.
-dnl
-dnl     Quincey Koziol, 15 May 1997
-dnl     Added link checking for FreeBSD.
-dnl
-dnl     Sean Ahern, 18 June 1997
-dnl     Added the ability to have a config-site configuration file that is
-dnl     named the same as the operating system.  Configure now checks
-dnl     automatically for this (using uname(1)).  For example, I added
-dnl     config-site/OSF1.conf for DEC machines.  Any configuration needed for
-dnl     that operating system should go in that file.
-dnl
-dnl     Robb Matzke, 19 Jun 1997
-dnl     Changed the default from `test -L' to `test -h'.
-dnl
-dnl	Robb Matzke, 27 Aug 1997
-dnl	Added -I/usr/local/include and -L/usr/local/lib to the compile
-dnl	command so we have a better chance of finding the readline
-dnl	library.
-dnl
-dnl     Robb Matzke, 23 Dec 1997
-dnl	Added ability to turn off checking for the GNU readline since lots
-dnl     of systems have the software but it's misconfigured, causing
-dnl     configure to detect it's presence and causing make to fail.  Say
-dnl     `--without-readline' to turn detection off.
-dnl
-dnl	Robb Matzke, 4 Feb 1998
-dnl	Combined GNU target file with non-GNU target file and put the results
-dnl	in include/make-targets.in with the other targets.
-dnl
-dnl     Eric Brugger, Wed Aug 12 15:50:27 PDT 1998
-dnl     I made the libraries load static on Linux since most people do not
-dnl     have Motif.  Added a check for the Motif includes and libraries
-dnl     being found without an explicit include or lib path and added one
-dnl     one if it didn't work.  I changed the CPPFLAGS and LDFLAGS to
-dnl     append /usr/local/include and /usr/local/lib instead of setting it
-dnl     if they weren't already set.  I modified LDFLAGS to contain $tmplib
-dnl     at the beginning so that libraries will be found in the local lib
-dnl     directory before the public lib directories.
-dnl
-dnl     Eric Brugger, Thu Aug 13 13:18:43 PDT 1998
-dnl     I corrected a bug with the checking of the knowledge of the Motif
-dnl     libraries where the test always returned false.
-dnl
-dnl     Eric Brugger, Fri Aug 28 16:43:46 PDT 1998
-dnl     I added support for parallel meshtv.
-dnl
-dnl     Sean Ahern, Wed Dec  2 11:29:54 PST 1998
-dnl     Added a check for "clearmake".  If we're running clearmake,
-dnl     set the verbosity to 0.  Also, create a line for the
-dnl     compile target in the Makefiles so that clearmake only
-dnl     winks in object files that have been created on the same OS
-dnl     type.
-dnl
-dnl     Eric Brugger, Mon Dec 28 09:51:18 PST 1998
-dnl     I removed checks for basename and dirname.  The behavior of both
-dnl     is poorly defined and varies between OSes.  We could check for a
-dnl     specific behavior and then use the system one in that case that
-dnl     is a lot of work when using our own is much simpler.
-dnl
-dnl	Robb Matzke, Tue Feb  9 10:38:54 EST 1999
-dnl	Check for location of hdf5 headers and libraries.
-dnl
-dnl	Robb Matzke, Tue Mar  2 16:35:48 EST 1999
-dnl	Check for location of vbt, dsl, and dmf headers and libraries.
-dnl
-dnl     Eric Brugger, Mon Mar 15 11:39:40 PST 1999
-dnl     Made the silo netcdf, pdb and taurus drivers optional.
-dnl
-dnl	Mark Miller, Thu Mar 25 17:11:34 PST 1999
-dnl     Made dmf and hdf5 drivers optional as Eric did above
-dnl
-dnl     Jeremy Meredith, Thu May 20 15:56:45 PDT 1999
-dnl     Added a check for a site config with the first field of hostname
-dnl     removed.  This allows a single site config for node-addressable
-dnl     machines such as the IBM SP2.  Also reordered the hostname and
-dnl     OSname config checks so that a single machine can override the
-dnl     OS-based default configuration.
-dnl
-dnl     Brad Whitlock, Wed Jun 23 15:30:34 PST 1999
-dnl     Added a check for the VDL libraries. If the environment variable
-dnl     "VDL" is set, then the CFLAGS of meshtvx and Spi are modified
-dnl     to include -DVDL and -I$(VDL)/include and -L$(VDL)/lib.
-dnl
-dnl     Jeremy Meredith, Tue Jul 27 18:27:37 PDT 1999
-dnl     Added code to clear MPI_LIBS if we did not --enable-parallel.
-dnl
-dnl     Eric Brugger, Wed Aug 11 13:11:45 PDT 1999
-dnl     I removed the check for -lXpm.  I modified the script to only
-dnl     check for -lXext on Linux.  I modified the script to only check
-dnl     for -lnsl and -lsocket on Solaris.
-dnl
-dnl     Brad Whitlock, Wed Jul 7 15:29:45 PST 1999
-dnl     Added a check for parallel when the VDL libraries are being 
-dnl     checked. If parallel is enabled at that time, then the VDLP
-dnl     driver will be compiled.
-dnl
-dnl     Eric Brugger, Fri Oct  8 14:12:27 PDT 1999
-dnl     I added a check for -lXp on Linux.
-dnl
-dnl     Brad Whitlock, Fri Nov 5 14:53:17 PST 1999
-dnl     Removed the GL driver from SpiLib.
-dnl
-dnl     Jeremy Meredith, Thu Nov 11 13:35:02 PST 1999
-dnl     Added ability to have dynamic libraries on Linux systems.
-dnl
-dnl     Brad Whitlock, Thu Oct 14 10:23:34 PDT 1999
-dnl     Added build target for the spectrum widget.
-dnl
-dnl     Jeremy Meredith and Sean Ahern, Mon Dec 13 14:24:28 PST 1999
-dnl     Allow override of MPI_LIBS by external configuration.
-dnl
-dnl     Jeremy Meredith, Fri Jan  7 10:19:39 PST 2000
-dnl     Check for existence of Mesa.  If it's not there: error if we need it,
-dnl     don't try to build it if we don't need it.
-dnl
-dnl     Brad Whitlock, Thu Feb 17 15:17:41 PST 2000
-dnl     I added -lpt to the meshtvx link line when using VDL. This makes
-dnl     meshtv work with the new VDL library.
-dnl
-dnl     Sean Ahern, Mon Jan 10 16:26:31 PST 2000
-dnl     I put in logic to read the version number in from a file.
-dnl
-dnl     Brad Whitlock, Thu Feb 10 16:47:50 PST 2000
-dnl     Added --disable-sdx flag. Also added a variable called
-dnl     tflops_override which will be set to yes on TFLOPS systems.
-dnl     (ASCI Red) This bypasses some function tests. Added --disable_gui
-dnl     flag. This disables all X and motif stuff from meshtvx and Spi.
-dnl     Added --disable-browser so it does not have to be compiled.
-dnl
-dnl     Brad Whitlock, Fri Mar 31 16:41:33 PST 2000
-dnl     Fixed a bug that caused a parallel compiler to be used all the time
-dnl     on some platforms.
-dnl
-dnl     Eric Brugger, Mon May 15 12:02:59 PDT 2000
-dnl     I changed references of -lpt to -lptutil to account for the name
-dnl     change of the library.
-dnl
-dnl     Mark Miller, Wed Aug 23 15:38:27 PDT 2000 
-dnl     I changed the logic for lib hdf5 to deal correctly with presence or
-dnl     absence of zlib. 
-dnl
-dnl     Eric Brugger, Fri Apr  6 17:52:30 PDT 2001
-dnl     I added -lXext to the meshtvx link line when using VDL. This makes
-dnl     meshtv work with the new VDL library.
-dnl
-dnl     Brad Whitlock, Tue Jan 22 16:42:30 PST 2002
-dnl     I added options for building JPEG support.
-dnl
-dnl     Eric Brugger, Tue Mar 12 10:44:02 PST 2002
-dnl     I made the tests for jpeg and glr support more robust.  I also added
-dnl     a check which adds the dynamic link library (-ldl) on Linux.
-dnl
-dnl     Jeremy Meredith, Wed Apr 24 11:17:24 PDT 2002
-dnl     I changed the SunOS linker flags for the jpeg library.
-dnl
-dnl     Mark Miller, Tue Oct  1 12:27:07 PDT 2002
-dnl     I removed the old dmf-driver checks 
-dnl	I fixed the check for hdf5 libs to only change $LIB if HDF5 was
-dnl	requested AND found.
-dnl	I removed the checks for GLR
-dnl
-dnl     Eric Brugger, Fri Nov  8 15:15:26 PST 2002
-dnl     I removed the logic that statically loaded the libraries on Linux
-dnl     systems.
-dnl
-dnl     Eric Brugger, Thu Dec  5 13:27:13 PST 2002 
-dnl     I reordered some of the tests to avoid a problem with hdf5 and the
-dnl     size tests.
-dnl
-dnl     Eric Brugger, Thu Sep  4 13:05:39 PDT 2003
-dnl     I corrected a bug with --without-exodus not disabling the exodus
-dnl     driver.
-dnl
 dnl     Eric Brugger, Tue Mar  2 12:41:32 PST 2004
 dnl     I modified the hdf5 library logic to statically link the hdf5
 dnl     library to avoid LD_LIBRARY_PATH problems and having to distribute
@@ -368,7 +157,7 @@ dnl also checkout and edit configure.ac
 dnl
 m4_define(SILO_VERSION, m4_esyscmd([cat VERSION | tr -d '\n']))
 m4_define(SILO_NAME, silo)
-m4_define(SILO_BUGS,visit-users at email.ornl.gov)
+m4_define(SILO_BUGS,visit-users at elist.ornl.gov)
 m4_define(SILO_TOP_SRC_DIR, `pwd`)
 
 AC_PREREQ(2.60)
@@ -457,10 +246,11 @@ dnl while non-empty string means it is enabled.
 dnl
 DEFAULT_PYTHONMODULE=""
 DEFAULT_BROWSER="browser"
-DEFAULT_SILEX="silex"
+DEFAULT_SILEX=""
 DEFAULT_HZIP="hzip"
 DEFAULT_FPZIP="fpzip"
 DEFAULT_FORTRAN="fortran"
+DEFAULT_JSON=""
 default_detect_readline="yes"
 
 dnl Source any special site-specific file
@@ -599,22 +389,6 @@ AC_ARG_ENABLE(optimization,
     esac],
     [USING_DEBUG="yes"])
 
-dnl Conform to legacy API where datatype'd pointers are used
-SILO_DTYPPTR="void"
-SILO_DTYPPTR1="void*"
-SILO_DTYPPTR2="void*"
-AC_ARG_ENABLE(legacy-datatyped-pointers,
-    AC_HELP_STRING([--enable-legacy-datatyped-pointers], 
-        [compile using legacy (float) pointers for datatype'd pointers @<:@default=no@:>@]),
-    if test $enableval = yes; then
-        SILO_DTYPPTR="float"
-        SILO_DTYPPTR1="float*"
-        SILO_DTYPPTR2="float**"
-    fi)
-AC_SUBST(SILO_DTYPPTR)
-AC_SUBST(SILO_DTYPPTR1)
-AC_SUBST(SILO_DTYPPTR2)
-
 dnl Switch to disable score lite memory header optimizations
 AC_ARG_ENABLE(normal-sclite-mem-headers,
     AC_HELP_STRING([--enable-normal-sclite-mem-headers],
@@ -677,8 +451,8 @@ SILEX=$DEFAULT_SILEX
 AC_ARG_ENABLE(silex,
     AC_HELP_STRING([--enable-silex], 
         [build the silex browser @<:@default=no@:>@]),
-    if test "$enable_silex" = "no"; then
-        SILEX=""
+    if test "$enable_silex" = "yes"; then
+        SILEX="silex"
     fi)
 AC_SUBST(SILEX)
 
@@ -760,6 +534,51 @@ if test -n "$FPZIP"; then
     AC_DEFINE(HAVE_FPZIP,1,[Support for Lindstrom float array compression])
 fi
 
+dnl enable experimental JSON support
+AC_ARG_ENABLE(json,
+    AC_HELP_STRING([--enable-json], 
+        [enable experimental JSON features@<:@default=no@:>@]),
+    if test "$enable_json" = "yes"; then
+        AC_MSG_CHECKING(Enabling json...)
+        if test -e ${ac_abs_confdir}/tools/json/json-c-0.10.tar.gz; then
+            if test -z "$(find tools/json/json-c-0.10 -name libjson.so -o -name libjson.a -o -name libjson.dylib)"; then
+                if test ! -e ./tools/json; then
+                    mkdir tools 1>/dev/null 2>&1
+                    mkdir tools/json 1>/dev/null 2>&1
+                fi
+                pushd tools/json 1>/dev/null 2>&1
+                rm -rf json-c-0.10
+                gunzip < ${ac_abs_confdir}/tools/json/json-c-0.10.tar.gz | tar xf -
+                cd json-c-0.10
+                if test ! "${prefix}" = "NONE"; then
+                    ./configure --prefix=${prefix}/json
+                    make install
+                else
+                    ./configure
+                    make
+                fi
+                if test $? -eq 0; then
+                    AC_MSG_RESULT(json-c compiled and installed)
+                    JSON="json"
+                else
+                    AC_MSG_RESULT(JSON support disabled due to failure to install)
+                    JSON=""
+                fi
+                popd 1>/dev/null 2>&1
+            else
+                AC_MSG_RESULT(json-c compiled and installed)
+                JSON="json"
+            fi
+        else
+            AC_MSG_RESULT(JSON support not available because json-c distribution is not in this tarball)
+            JSON=""
+        fi
+    fi)
+AC_SUBST(JSON)
+if test -n "$JSON"; then
+    AC_DEFINE(HAVE_JSON,1,[Support for experimental JSON features])
+fi
+
 # Turn on C optimization flags
 AC_MSG_CHECKING(compiler optimization)
 if test "X$USING_DEBUG" = Xno; then
@@ -1244,7 +1063,7 @@ else
 fi
 
 AC_ARG_WITH(pdb-proper,
-    AC_HELP_STRING([--with-pdb-proper],[directory where PDB proper is installed @<:@default=no@:>@]),
+    AC_HELP_STRING([--with-pdb-proper],[Turns on PDB proper driver by specifying directory where PDB proper is installed @<:@default=no@:>@]),
     if test $withval != yes; then
         PDBP_DRV="pdbp_drv"
         AC_DEFINE(HAVE_PDBP_DRIVER,1,[Support for PDB Proper])
@@ -1325,6 +1144,7 @@ AM_CONDITIONAL(FORTRAN_NEEDED, test -n "$FORTRAN")
 AM_CONDITIONAL(SILEX_NEEDED, test -n "$SILEX")
 AM_CONDITIONAL(HZIP_NEEDED, test -n "$HZIP")
 AM_CONDITIONAL(FPZIP_NEEDED, test -n "$FPZIP")
+AM_CONDITIONAL(JSON_NEEDED, test -n "$JSON")
 AM_CONDITIONAL(ZLIB_AVAILABLE, test -n "$ZLIB")
 AM_CONDITIONAL(CXX_LINK_NEEDED, test "$enable_shared" = "no" -a \( -n "$FPZIP" -o -n "$HZIP" \))
 AC_CONFIG_FILES([
@@ -1352,7 +1172,9 @@ AC_CONFIG_FILES([
             tools/browser/Makefile
             tools/python/Makefile
             tools/silex/Makefile
-            tools/silock/Makefile])
+            tools/silock/Makefile
+            tools/json/Makefile
+            tools/mapred/Makefile])
 if test -n "$HZIP"; then
   AC_CONFIG_FILES([src/hzip/Makefile])
 fi
@@ -1364,18 +1186,9 @@ if test -n "$HDF5_DRV"; then
 else
   AC_CONFIG_FILES([src/libsilo.settings])
 fi
-CC_FULLPATH=""
-if test -n "$CC"; then
-    CC_FULLPATH=`which $CC`
-fi
-CXX_FULLPATH=""
-if test -n "$CXX"; then
-    CXX_FULLPATH=`which $CXX`
-fi
-FC_FULLPATH=""
-if test -n "$FC"; then
-    FC_FULLPATH=`which $FC`
-fi
+CC_FULLPATH=$(which $(echo ${CC:-"nocc"} | cut -d' ' -f1))
+CXX_FULLPATH=$(which $(echo ${CXX:-"nocxx"} | cut -d' ' -f1))
+FC_FULLPATH=$(which $(echo ${FC:-"nofc"} | cut -d' ' -f1))
 AC_SUBST(CC_FULLPATH)
 AC_SUBST(CXX_FULLPATH)
 AC_SUBST(FC_FULLPATH)
diff --git a/docs/Chapter1.fm b/docs/Chapter1.fm
index e2a0432..fe3b91f 100644
Binary files a/docs/Chapter1.fm and b/docs/Chapter1.fm differ
diff --git a/docs/Chapter2-man_pages.fm b/docs/Chapter2-man_pages.fm
index 5130628..55938bf 100644
Binary files a/docs/Chapter2-man_pages.fm and b/docs/Chapter2-man_pages.fm differ
diff --git a/docs/Chapter2-start.fm b/docs/Chapter2-start.fm
index 8a11c16..cd37181 100644
Binary files a/docs/Chapter2-start.fm and b/docs/Chapter2-start.fm differ
diff --git a/docs/Cover.fm b/docs/Cover.fm
index 7eb3e4f..2f551e7 100644
Binary files a/docs/Cover.fm and b/docs/Cover.fm differ
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 49f19f6..0706f27 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -157,6 +157,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -205,9 +206,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/docs/Silo.book.fm b/docs/Silo.book.fm
index b850461..11b5f3c 100644
Binary files a/docs/Silo.book.fm and b/docs/Silo.book.fm differ
diff --git a/docs/Silo.book.pdf b/docs/Silo.book.pdf
index d2b0fca..bbbe46d 100644
Binary files a/docs/Silo.book.pdf and b/docs/Silo.book.pdf differ
diff --git a/docs/Silo.bookLOP.fm b/docs/Silo.bookLOP.fm
index 3bba510..03a43e6 100644
Binary files a/docs/Silo.bookLOP.fm and b/docs/Silo.bookLOP.fm differ
diff --git a/docs/silo.h.fm b/docs/silo.h.fm
index b9f48aa..4c5688d 100644
Binary files a/docs/silo.h.fm and b/docs/silo.h.fm differ
diff --git a/src/Makefile.am b/src/Makefile.am
index 7fb8f71..b105a42 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -85,8 +85,14 @@ DRIVER_LIBS += fpzip/libsilo_fpzip.la
 endif
 SUBDIRS = score pdb silo debug \
 $(DRIVER_DIRS) unknown filters .
-DIST_SUBDIRS = . debug filters hdf5_drv hzip fpzip netcdf \
+DIST_SUBDIRS = . debug filters hdf5_drv netcdf \
 pdb pdb_drv pdbp_drv score silo taurus unknown
+if HZIP_NEEDED
+DIST_SUBDIRS += hzip
+endif
+if FPZIP_NEEDED
+DIST_SUBDIRS += fpzip
+endif
 MAKESETTINGS = make.settings
 
 if HDF5_DRV_NEEDED
diff --git a/src/Makefile.in b/src/Makefile.in
index d9ca3aa..bc23861 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -101,6 +101,8 @@ host_triplet = @host@
 @HZIP_NEEDED_TRUE at am__append_12 = hzip/libsilo_hzip.la
 @FPZIP_NEEDED_TRUE at am__append_13 = fpzip
 @FPZIP_NEEDED_TRUE at am__append_14 = fpzip/libsilo_fpzip.la
+ at HZIP_NEEDED_TRUE@am__append_15 = hzip
+ at FPZIP_NEEDED_TRUE@am__append_16 = fpzip
 subdir = src
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/libsilo.settings.in $(srcdir)/libsiloh5.settings.in
@@ -275,6 +277,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -323,9 +326,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -408,9 +408,8 @@ DRIVER_LIBS = $(am__append_2) $(am__append_4) $(am__append_6) \
 SUBDIRS = score pdb silo debug \
 $(DRIVER_DIRS) unknown filters .
 
-DIST_SUBDIRS = . debug filters hdf5_drv hzip fpzip netcdf \
-pdb pdb_drv pdbp_drv score silo taurus unknown
-
+DIST_SUBDIRS = . debug filters hdf5_drv netcdf pdb pdb_drv pdbp_drv \
+	score silo taurus unknown $(am__append_15) $(am__append_16)
 MAKESETTINGS = make.settings
 @HDF5_DRV_NEEDED_FALSE at SETTINGSFILE = libsilo.settings
 @HDF5_DRV_NEEDED_TRUE at SETTINGSFILE = libsiloh5.settings
diff --git a/src/debug/Makefile.in b/src/debug/Makefile.in
index b8d6322..ac0b1ac 100644
--- a/src/debug/Makefile.in
+++ b/src/debug/Makefile.in
@@ -181,6 +181,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +230,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/debug/silo_debug.c b/src/debug/silo_debug.c
index 6caf1d2..d010c48 100644
--- a/src/debug/silo_debug.c
+++ b/src/debug/silo_debug.c
@@ -117,7 +117,7 @@ db_debug_close(DBfile *_dbfile)
  */
 /* ARGSUSED */
 INTERNAL DBfile *
-db_debug_create(char *name, int mode, int target, int subtype, char *finfo)
+db_debug_create(char const *name, int mode, int target, int subtype, char const *finfo)
 {
 
     char          *me = "db_debug_create";
@@ -173,7 +173,7 @@ db_debug_create(char *name, int mode, int target, int subtype, char *finfo)
  *-------------------------------------------------------------------------*/
 /* ARGSUSED */
 INTERNAL DBfile *
-db_debug_open(char *name, int mode, int subtype)
+db_debug_open(char const *name, int mode, int subtype)
 {
 
     db_perror("Use DBCreate() instead", E_NOTIMP, "db_debug_open");
@@ -224,7 +224,7 @@ db_debug_Filters(DBfile *dbfile, FILE *stream)
  */
 /* ARGSUSED */
 SILO_CALLBACK DBcompoundarray *
-db_debug_GetCompoundarray(DBfile *_file, char *name)
+db_debug_GetCompoundarray(DBfile *_file, char const *name)
 {
 
     db_perror("Debug device driver", E_NOTIMP, "db_debug_GetCompoundarray");
@@ -251,9 +251,17 @@ db_debug_GetCompoundarray(DBfile *_file, char *name)
  */
 /* ARGSUSED */
 SILO_CALLBACK int
-db_debug_PutCompoundarray(DBfile *_dbfile, char *array_name, char **elemnames,
-                          int *elemlengths, int nelems, void *values,
-                          int nvalues, int datatype, DBoptlist *optlist)
+db_debug_PutCompoundarray(
+    DBfile *_dbfile,
+    char const *array_name,
+    char const * const *elemnames,
+    int const *elemlengths,
+    int nelems,
+    void const *values,
+    int nvalues,
+    int datatype,
+    DBoptlist const *optlist
+)
 {
 
     DBfile_debug  *dbfile = (DBfile_debug *) _dbfile;
diff --git a/src/debug/silo_debug_private.h b/src/debug/silo_debug_private.h
index 492538b..90a3245 100644
--- a/src/debug/silo_debug_private.h
+++ b/src/debug/silo_debug_private.h
@@ -71,12 +71,21 @@ typedef struct DBfile_debug {
 } DBfile_debug;
 
 SILO_CALLBACK int db_debug_close(DBfile *);
-SILO_CALLBACK DBcompoundarray *db_debug_GetCompoundarray(DBfile *, char *);
+SILO_CALLBACK DBcompoundarray *db_debug_GetCompoundarray(DBfile *, char const *);
 SILO_CALLBACK int db_debug_Filters(DBfile *, FILE *);
-SILO_CALLBACK int db_debug_PutCompoundarray(DBfile *, char *, char **, int *,
-                                       int, void *, int, int, DBoptlist *);
+SILO_CALLBACK int db_debug_PutCompoundarray(
+    DBfile *dbfile,
+    char const *name,
+    char const * const *elemnames,
+    int const *elemlens,
+    int nelems,
+    void const *elemvalues,
+    int nvalues,
+    int datatype,
+    DBoptlist const *
+);
 
-INTERNAL DBfile *db_debug_create(char *, int, int, int, char *);
-INTERNAL DBfile *db_debug_open(char *, int, int);
+INTERNAL DBfile *db_debug_create(char const *, int, int, int, char const *);
+INTERNAL DBfile *db_debug_open(char const *, int, int);
 
 #endif /* !DEBUG_PRIVATE_H */
diff --git a/src/filters/Makefile.in b/src/filters/Makefile.in
index fcd6544..ce77f85 100644
--- a/src/filters/Makefile.in
+++ b/src/filters/Makefile.in
@@ -181,6 +181,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +230,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/filters/f_ale3d.c b/src/filters/f_ale3d.c
index ddf3fde..2a50f53 100644
--- a/src/filters/f_ale3d.c
+++ b/src/filters/f_ale3d.c
@@ -790,7 +790,7 @@ static struct {                 /*Variable we are intercepting  */
  *-------------------------------------------------------------------------
  */
 static int
-satisfied ( int id, char *name, char *deplist, int *slotno)
+satisfied ( int id, char const *name, char *deplist, int *slotno)
 {
     char          *me = "satisfied";
     DBtoc         *real_toc;
@@ -879,7 +879,7 @@ satisfied ( int id, char *name, char *deplist, int *slotno)
  *-------------------------------------------------------------------------
  */
 static int
-v_exists ( DBtoc *toc, char *name)
+v_exists ( DBtoc *toc, char const *name)
 {
     int            i;
 
@@ -1168,7 +1168,7 @@ f_ale3d_NewToc(DBfile *dbfile)
  *-------------------------------------------------------------------------
  */
 static int
-f_ale3d_SetDir(DBfile *dbfile, char *path)
+f_ale3d_SetDir(DBfile *dbfile, char const *path)
 {
     int            dirid;
     char          *me = "f_ale3d_SetDir";
@@ -1904,7 +1904,7 @@ calc_shell_other(float *result, float **data, int length, int extra)
  *-------------------------------------------------------------------------
  */
 static DBucdvar *
-f_ale3d_GetUcdvar(DBfile *dbfile, char *name)
+f_ale3d_GetUcdvar(DBfile *dbfile, char const *name)
 {
     static int     sequence = 0;
     int            id, inter, ndeps, i, j, size, offset, slice_size, stride;
@@ -2011,7 +2011,7 @@ f_ale3d_GetUcdvar(DBfile *dbfile, char *name)
     uv->name = STRDUP(name);
     uv->units = NULL;
     uv->label = NULL;
-    uv->vals = ALLOC_N(void *, 1);
+    uv->vals = (void **)ALLOC_N(void*, 1);
     uv->nels = size;
     uv->datatype = DB_FLOAT;
     uv->nvals = 1;
@@ -2126,7 +2126,7 @@ f_ale3d_GetUcdvar(DBfile *dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 static int
-f_ale3d_InqMeshType(DBfile *dbfile, char *name)
+f_ale3d_InqMeshType(DBfile *dbfile, char const *name)
 {
     int            id, inter;
     char          *me = "f_ale3d_InqMeshType";
@@ -2180,7 +2180,7 @@ f_ale3d_InqMeshType(DBfile *dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 static int
-f_ale3d_InqMeshName(DBfile *dbfile, char *name, char *meshname /*OUTPUT */)
+f_ale3d_InqMeshName(DBfile *dbfile, char const *name, char *meshname /*OUTPUT */)
 {
     int            id, inter;
     char          *me = "f_ale3d_InqMeshName";
@@ -2256,7 +2256,7 @@ f_ale3d_Open(DBfile *dbfile, char *filter_name)
         return -1;
     }
 
-    f_ale3d_name[id] = safe_strdup(filter_name);
+    f_ale3d_name[id] = _db_safe_strdup(filter_name);
     memcpy(f_ale3d_cb + id, &(dbfile->pub), sizeof(DBfile_pub));
     f_ale3d_cb[id].toc = NULL;
 
@@ -2268,7 +2268,6 @@ f_ale3d_Open(DBfile *dbfile, char *filter_name)
     FILTER_CB(close, f_ale3d_Close);
     FILTER_CB(newtoc, f_ale3d_NewToc);
     FILTER_CB(cd, f_ale3d_SetDir);
-    FILTER_CB(cdid, f_ale3d_SetDirID);
     FILTER_CB(g_dir, f_ale3d_GetDir);
     FILTER_CB(g_uv, f_ale3d_GetUcdvar);
     FILTER_CB(i_meshtype, f_ale3d_InqMeshType);
diff --git a/src/filters/f_sample.c b/src/filters/f_sample.c
index 2a12bb7..3412a7e 100644
--- a/src/filters/f_sample.c
+++ b/src/filters/f_sample.c
@@ -252,7 +252,7 @@ f_debug_Close(DBfile *dbfile)
  *-------------------------------------------------------------------------
  */
 static int
-f_debug_SetDir(DBfile *dbfile, char *path)
+f_debug_SetDir(DBfile *dbfile, char const *path)
 {
     int            id, retval;
     char          *me = "f_debug_SetDir";
@@ -271,40 +271,6 @@ f_debug_SetDir(DBfile *dbfile, char *path)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    f_debug_SetDirID
- *
- * Purpose:     Print debug info for DBSetDirID.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  robb at cloud
- *              Tue Mar  7 13:18:36 EST 1995
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static int
-f_debug_SetDirID(DBfile *dbfile, int dirid)
-{
-    int            id, retval;
-    char          *me = "f_debug_SetDirID";
-
-    if ((id = FILTER_ID(dbfile, me)) < 0)
-        return -1;
-    printf("%s: DBSetDirID (dbfile=0x%lx, dirid=%d)\n",
-           f_debug_name[id], (unsigned long)dbfile, dirid);
-
-    retval = FILTER_CALL(f_debug_cb[id].cdid, (dbfile, dirid), -1, me);
-
-    printf("%s: DBSetDirID=%d\n",
-           f_debug_name[id], retval);
-    return retval;
-}
-
-/*-------------------------------------------------------------------------
  * Function:    f_debug_GetDir
  *
  * Purpose:     Print debugging information about DBGetDir.
@@ -394,7 +360,7 @@ f_debug_NewToc(DBfile *dbfile)
  *-------------------------------------------------------------------------
  */
 static DBucdvar *
-f_debug_GetUcdvar(DBfile *dbfile, char *name)
+f_debug_GetUcdvar(DBfile *dbfile, char const *name)
 {
     int            id;
     char          *me = "f_debug_GetUcdvar";
@@ -431,7 +397,7 @@ f_debug_GetUcdvar(DBfile *dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 static int
-f_debug_InqMeshType(DBfile *dbfile, char *name)
+f_debug_InqMeshType(DBfile *dbfile, char const *name)
 {
     int            id, retval;
     char          *me = "f_debug_InqMeshType";
@@ -470,7 +436,7 @@ f_debug_InqMeshType(DBfile *dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 static int
-f_debug_InqMeshName(DBfile *dbfile, char *name, char *meshname /*OUTPUT */)
+f_debug_InqMeshName(DBfile *dbfile, char const *name, char *meshname /*OUTPUT */)
 {
     int            id, retval;
     char          *me = "f_debug_InqMeshName";
@@ -572,7 +538,7 @@ f_debug_Open(DBfile *dbfile, char *filter_name)
      */
     if (f_debug_name[id])
         free(f_debug_name[id]);
-    f_debug_name[id] = safe_strdup(filter_name);
+    f_debug_name[id] = _db_safe_strdup(filter_name);
 
     /*
      * Save old callbacks.
@@ -587,7 +553,6 @@ f_debug_Open(DBfile *dbfile, char *filter_name)
     FILTER_CB(module, f_debug_Filters);
     FILTER_CB(close, f_debug_Close);
     FILTER_CB(cd, f_debug_SetDir);
-    FILTER_CB(cdid, f_debug_SetDirID);
     FILTER_CB(g_dir, f_debug_GetDir);
     FILTER_CB(newtoc, f_debug_NewToc);
     FILTER_CB(g_uv, f_debug_GetUcdvar);
diff --git a/tools/python/Makefile.am b/src/fpzip/Makefile.am
similarity index 78%
copy from tools/python/Makefile.am
copy to src/fpzip/Makefile.am
index b266648..13e6820 100644
--- a/tools/python/Makefile.am
+++ b/src/fpzip/Makefile.am
@@ -52,27 +52,47 @@
 #
 ## Procss this file with automake to create Makefile.in
 
+noinst_LTLIBRARIES = libsilo_fpzip.la
+libsilo_fpzip_la_SOURCES = $(FILES)
 
-lib_LTLIBRARIES = Silo.la
-Silo_la_SOURCES = $(FILES)
-Silo_la_LDFLAGS = -module -avoid-version
-if HDF5_DRV_NEEDED
-  Silo_la_LIBADD = ../../src/libsiloh5.la
-else
-  Silo_la_LIBADD = ../../src/libsilo.la
-endif
-
-AM_CPPFLAGS = $(PYTHON_CPPFLAGS) -I$(top_builddir)/src/silo -I$(top_srcdir)/src/silo -I$(includedir)
+FPZIP_FP =              FPZIP_FP_SAFE
+#FPZIP_FP =             FPZIP_FP_FAST
+#FPZIP_FP =             FPZIP_FP_EMUL
+#FPZIP_FP =             FPZIP_FP_INT
+FPZIP_BLOCK_SIZE =      0x1000
+FPZIP_VERBOSE =         0
+AM_CPPFLAGS = -DFPZIP_BLOCK_SIZE=$(FPZIP_BLOCK_SIZE) \
+              -DFPZIP_FP=$(FPZIP_FP) \
+              -DFPZIP_VERBOSE=$(FPZIP_VERBOSE)
 
 noinst_HEADERS = \
- pydbfile.h \
- pydbtoc.h \
- pysilo.h 
+ codec.h \
+ fpe.h \
+ fpe.inl \
+ front.h \
+ pccodec.h \
+ pccodec.inl \
+ pcdecoder.h \
+ pcdecoder.inl \
+ pcencoder.h \
+ pcencoder.inl \
+ pcmap.h \
+ pcmap.inl \
+ rcdecoder.h \
+ rcdecoder.inl \
+ rcencoder.h \
+ rcencoder.inl \
+ rcmodel.h \
+ rcqsmodel.h \
+ rcqsmodel.inl \
+ read.h \
+ write.h \
+ fpzip.h
 
 FILES = \
- pydbfile.cpp \
- pydbtoc.cpp \
- pysilo.cpp \
- pydbfile.h \
- pydbtoc.h \
- pysilo.h 
+ error.cpp \
+ rcdecoder.cpp \
+ rcencoder.cpp \
+ rcqsmodel.cpp \
+ read.cpp \
+ write.cpp
diff --git a/src/debug/Makefile.in b/src/fpzip/Makefile.in
similarity index 82%
copy from src/debug/Makefile.in
copy to src/fpzip/Makefile.in
index b8d6322..6783b6f 100644
--- a/src/debug/Makefile.in
+++ b/src/fpzip/Makefile.in
@@ -88,7 +88,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-subdir = src/debug
+subdir = src/fpzip
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -108,25 +108,26 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
-libsilo_debug_la_LIBADD =
-am__objects_1 = silo_debug.lo
-am_libsilo_debug_la_OBJECTS = $(am__objects_1)
-libsilo_debug_la_OBJECTS = $(am_libsilo_debug_la_OBJECTS)
+libsilo_fpzip_la_LIBADD =
+am__objects_1 = error.lo rcdecoder.lo rcencoder.lo rcqsmodel.lo \
+	read.lo write.lo
+am_libsilo_fpzip_la_OBJECTS = $(am__objects_1)
+libsilo_fpzip_la_OBJECTS = $(am_libsilo_fpzip_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(libsilo_debug_la_SOURCES)
-DIST_SOURCES = $(libsilo_debug_la_SOURCES)
+SOURCES = $(libsilo_fpzip_la_SOURCES)
+DIST_SOURCES = $(libsilo_fpzip_la_SOURCES)
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -181,6 +182,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +231,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -305,19 +304,54 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-noinst_LTLIBRARIES = libsilo_debug.la
-libsilo_debug_la_SOURCES = $(FILES)
-AM_CPPFLAGS = -I$(builddir)/../silo -I$(srcdir)/../silo
+noinst_LTLIBRARIES = libsilo_fpzip.la
+libsilo_fpzip_la_SOURCES = $(FILES)
+FPZIP_FP = FPZIP_FP_SAFE
+#FPZIP_FP =             FPZIP_FP_FAST
+#FPZIP_FP =             FPZIP_FP_EMUL
+#FPZIP_FP =             FPZIP_FP_INT
+FPZIP_BLOCK_SIZE = 0x1000
+FPZIP_VERBOSE = 0
+AM_CPPFLAGS = -DFPZIP_BLOCK_SIZE=$(FPZIP_BLOCK_SIZE) \
+              -DFPZIP_FP=$(FPZIP_FP) \
+              -DFPZIP_VERBOSE=$(FPZIP_VERBOSE)
+
 noinst_HEADERS = \
- silo_debug_private.h
+ codec.h \
+ fpe.h \
+ fpe.inl \
+ front.h \
+ pccodec.h \
+ pccodec.inl \
+ pcdecoder.h \
+ pcdecoder.inl \
+ pcencoder.h \
+ pcencoder.inl \
+ pcmap.h \
+ pcmap.inl \
+ rcdecoder.h \
+ rcdecoder.inl \
+ rcencoder.h \
+ rcencoder.inl \
+ rcmodel.h \
+ rcqsmodel.h \
+ rcqsmodel.inl \
+ read.h \
+ write.h \
+ fpzip.h
 
 FILES = \
- silo_debug.c
+ error.cpp \
+ rcdecoder.cpp \
+ rcencoder.cpp \
+ rcqsmodel.cpp \
+ read.cpp \
+ write.cpp
 
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .cpp .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -327,9 +361,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/debug/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/fpzip/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign src/debug/Makefile
+	  $(AUTOMAKE) --foreign src/fpzip/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -357,8 +391,8 @@ clean-noinstLTLIBRARIES:
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libsilo_debug.la: $(libsilo_debug_la_OBJECTS) $(libsilo_debug_la_DEPENDENCIES) 
-	$(LINK)  $(libsilo_debug_la_OBJECTS) $(libsilo_debug_la_LIBADD) $(LIBS)
+libsilo_fpzip.la: $(libsilo_fpzip_la_OBJECTS) $(libsilo_fpzip_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libsilo_fpzip_la_OBJECTS) $(libsilo_fpzip_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -366,28 +400,33 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/silo_debug.Plo at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/error.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rcdecoder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rcencoder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rcqsmodel.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/read.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/write.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/src/fpzip/codec.h b/src/fpzip/codec.h
new file mode 100644
index 0000000..399ff9b
--- /dev/null
+++ b/src/fpzip/codec.h
@@ -0,0 +1,32 @@
+#ifndef CODEC_H
+#define CODEC_H
+
+#define FPZIP_FP_FAST 1
+#define FPZIP_FP_SAFE 2
+#define FPZIP_FP_EMUL 3
+#define FPZIP_FP_INT  4
+
+#ifndef FPZIP_FP
+  #error "floating-point mode FPZIP_FP not defined"
+#elif FPZIP_FP < 1 || FPZIP_FP > 4
+  #error "invalid floating-point mode FPZIP_FP"
+#endif
+
+#if FPZIP_FP == FPZIP_FP_INT
+// identity map for integer arithmetic
+template <typename T, unsigned width>
+struct PCmap<T, width, T> {
+  typedef T DOMAIN;
+  typedef T RANGE;
+  static const unsigned bits = width;
+  static const T        mask = ~T(0) >> (bitsizeof(T) - bits);
+  RANGE forward(DOMAIN d) const { return d & mask; }
+  DOMAIN inverse(RANGE r) const { return r & mask; }
+  DOMAIN identity(DOMAIN d) const { return d & mask; }
+};
+#endif
+
+#define FPZ_MAJ_VERSION 0x0101
+#define FPZ_MIN_VERSION FPZIP_FP
+
+#endif
diff --git a/src/fpzip/error.cpp b/src/fpzip/error.cpp
new file mode 100644
index 0000000..7d37242
--- /dev/null
+++ b/src/fpzip/error.cpp
@@ -0,0 +1,17 @@
+#include "fpzip.h"
+
+fpzipError fpzip_errno;
+
+const char* fpzip_errstr[] = {
+  "success",
+  "cannot open file for reading",
+  "cannot create file for writing",
+  "cannot read stream",
+  "cannot write stream",
+  "not an fpz stream",
+  "fpz format version not supported",
+  "array dimensions do not match",
+  "floating-point types do not match",
+  "precision not supported",
+  "buffer overflow",
+};
diff --git a/src/fpzip/fpe.h b/src/fpzip/fpe.h
new file mode 100644
index 0000000..8889588
--- /dev/null
+++ b/src/fpzip/fpe.h
@@ -0,0 +1,60 @@
+#ifndef FPE_H
+#define FPE_H
+
+// Approximate floating-point arithmetic for normalized inputs and outputs.
+// NOTE: This code has been designed for speed and simplicity, and does not
+// fully implement IEEE floating-point arithmetic.  In particular, it does
+// not properly handle:
+//
+//   (1) Denormalized numbers, infinities, or NaNs.
+//   (2) Overflow or underflow outside the range of normalized numbers.
+//   (3) Proper IEEE rounding.
+//
+// For normalized input and output, the error of a single operation should
+// be no more than one ulp.
+
+template <typename T>
+struct FPEtraits;
+
+template <>
+struct FPEtraits<float> {
+  typedef unsigned U;
+  static const unsigned mbits = 23;
+  static const unsigned ebits = 8;
+};
+
+template <>
+struct FPEtraits<double> {
+  typedef unsigned long long U;
+  static const unsigned mbits = 52;
+  static const unsigned ebits = 11;
+};
+
+template <
+  typename T,                            // floating type to implement
+  typename U = typename FPEtraits<T>::U, // corresponding integer type
+  unsigned mbits = FPEtraits<T>::mbits,  // number of bits in significand
+  unsigned ebits = FPEtraits<T>::ebits   // number of bits in exponent
+>
+class FPE {
+public:
+  FPE(U u = 0) : u(u) {}
+  FPE(T t) : u((U&)t) {}
+  FPE(int i) : u(i) {}
+  operator T() const { return (T&)u; }
+  bool equalsign(FPE x) const { return !((u ^ x.u) & s); }
+  FPE operator -() const { return FPE(u ^ s); }
+  FPE operator +(FPE x) const;
+  FPE operator -(FPE x) const;
+private:
+  FPE add(U g) const;                 // effective addition
+  FPE sub(U g) const;                 // effective subtraction
+  static const unsigned m = mbits;    // number of bits in significand
+  static const U e = U(1) << mbits;   // exponent least significant bit mask
+  static const U s = e << ebits;      // sign bit mask
+  U u;                                // binary representation of float
+};
+
+#include "fpe.inl"
+
+#endif
diff --git a/src/fpzip/fpe.inl b/src/fpzip/fpe.inl
new file mode 100644
index 0000000..f0effaf
--- /dev/null
+++ b/src/fpzip/fpe.inl
@@ -0,0 +1,61 @@
+template <typename T, typename U, unsigned mbits, unsigned ebits>
+FPE<T, U, mbits, ebits>
+FPE<T, U, mbits, ebits>::operator +(FPE<T, U, mbits, ebits> x) const
+{
+  // addition
+  if (equalsign(x))
+    return u > x.u ? add(x.u) : x.add(u);
+  else {
+    x = -x;
+    return u > x.u ? sub(x.u) : u < x.u ? -x.sub(u) : FPE(U(0));
+  }
+}
+
+template <typename T, typename U, unsigned mbits, unsigned ebits>
+FPE<T, U, mbits, ebits>
+FPE<T, U, mbits, ebits>::operator -(FPE<T, U, mbits, ebits> x) const
+{
+  // subtraction
+  if (equalsign(x))
+    return u > x.u ? sub(x.u) : u < x.u ? -x.sub(u) : FPE(U(0));
+  else {
+    x = -x;
+    return u > x.u ? add(x.u) : x.add(u);
+  }
+}
+
+template <typename T, typename U, unsigned mbits, unsigned ebits>
+FPE<T, U, mbits, ebits>
+FPE<T, U, mbits, ebits>::add(U g) const
+{
+  // effective addition f + g, |f| >= |g|
+  U f = u;
+  unsigned k = (f >> m) - (g >> m);
+  if (k <= m) {
+    U c = (e - (f & (e - 1)));
+    U d = (e + (g & (e - 1))) >> k;
+    if (c < d)
+      d = (c + d) >> 1;
+    f += d;
+  }
+  return FPE(f);
+}
+
+template <typename T, typename U, unsigned mbits, unsigned ebits>
+FPE<T, U, mbits, ebits>
+FPE<T, U, mbits, ebits>::sub(U g) const
+{
+  // effective subtraction f - g, |f| >= |g|
+  U f = u;
+  unsigned k = (f >> m) - (g >> m);
+  if (k <= m) {
+    U c = ((0 + (f & (e - 1))) << 1);
+    U d = ((e + (g & (e - 1))) << 1) >> k;
+    while (c < d) {
+      d += d - c;
+      c += e << 1;
+    }
+    f -= d >> 1;
+  }
+  return FPE(f);
+}
diff --git a/src/fpzip/fpzip.h b/src/fpzip/fpzip.h
new file mode 100644
index 0000000..bc61050
--- /dev/null
+++ b/src/fpzip/fpzip.h
@@ -0,0 +1,218 @@
+/*
+** fpzip version 1.0.2, May 30, 2014
+** Part of the LOCAL Toolkit, UCRL-CODE-232243
+** Written by Peter Lindstrom, Lawrence Livermore National Laboratory
+**
+**
+**                               SUMMARY
+**
+** fpzip is a library for lossless or lossy compression of 2D and 3D
+** arrays of single- or double-precision floating-point scalars.
+** Although linear (1D) streams of scalars may be compressed as well,
+** the algorithm has primarily be designed to exploit higher-dimensional
+** structure in the data, and may not perform well on 1D data.  The
+** library supports compression to either a file or to main memory, and
+** allows specifying how many bits of precision to retain; remaining
+** least significant bits are truncated.  The precision is limited to
+** integers 2-32 for floats and 4-64, in increments of two bits, for
+** doubles.  The decompressed data is returned in full precision, possibly
+** with the least significant bits zeroed.  Because floating-point
+** arithmetic may be affected by factors such as register precision,
+** rounding mode, and compiler optimizations, precautions have been taken
+** to ensure correctness and portability via a set of compile-time
+** switches.  For example, it is possible to specify that floating-point
+** operations be emulated via integer arithmetic, or to treat the binary
+** representation of floating-point numbers as integers.  Please consult
+** the Makefile for choosing among these settings.  The compressor works
+** correctly on the IEEE 754 floating-point format, though no particular
+** assumption is made on the floating-point representation other than the
+** most significant bit being the sign bit.  Special values such as
+** infinities, NaNs, and denormalized numbers should be handled correctly
+** by the compressor in lossless mode.  The C functions return zero in
+** case of an error, in which case fpzip_errno can be examined to determine
+** the cause.
+**
+** The code has been modified in minor ways to support its use within Silo.
+** Some assert calls were removed. Some error codes were added. The read
+** interface was ajdusted to return sizing information. - MCM 01Jun14
+**
+** fpzip was developed as part of the LOCAL LDRD project at LLNL, and may
+** be freely used and distributed for noncommercial purposes.  The core
+** library is written in C++ and applications need to be linked with a
+** C++ linker.  The library can, however, be called from C and FORTRAN.
+** For further information and bug reports, please e-mail pl at llnl.gov.
+**
+**
+**                                NOTICE
+**
+** This work was produced at the Lawrence Livermore National Laboratory
+** (LLNL) under contract no. DE-AC-52-07NA27344 (Contract 44) between
+** the U.S. Department of Energy (DOE) and Lawrence Livermore National
+** Security, LLC (LLNS) for the operation of LLNL.  The rights of the
+** Federal Government are reserved under Contract 44.
+**
+**
+**                              DISCLAIMER
+**
+** This work was prepared as an account of work sponsored by an agency of
+** the United States government.  Neither the United States government nor
+** Lawrence Livermore National Security, LLC, nor any of their employees
+** makes any warranty, expressed or implied, or assumes any legal liability
+** or responsibility for the accuracy, completeness, or usefulness of any
+** information, apparatus, product, or process disclosed, or represents
+** that its use would not infringe privately owned rights.  Reference
+** herein to any specific commercial product, process, or service by trade
+** name, trademark, manufacturer, or otherwise does not necessarily
+** constitute or imply its endorsement, recommendation, or favoring by the
+** United States government or Lawrence Livermore National Security, LLC.
+** The views and opinions of authors expressed herein do not necessarily
+** state or reflect those of the United States government or Lawrence
+** Livermore National Security, LLC, and shall not be used for advertising
+** or product endorsement purposes.
+**
+**
+**                            COMMERCIAL USE
+**
+** Commercialization of this product is prohibited without notifying the
+** Department of Energy (DOE) or Lawrence Livermore National Security.
+*/
+
+#ifndef FPZIP_H
+#define FPZIP_H
+
+#include <stddef.h>
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+size_t                /* number of compressed bytes read (zero = error) */
+fpzip_file_read(
+  FILE*       file,   /* binary input stream */
+  void*       data,   /* array to read */
+  int*        prec,   /* returned per field bits of precision (may be null) */
+  int         *dp,    /* returned double precision array if nonzero */
+  unsigned    *nx,    /* returned number of x samples */
+  unsigned    *ny,    /* returned number of y samples */
+  unsigned    *nz,    /* returned number of z samples */
+  unsigned    *nf     /* returned number of fields */
+);
+
+size_t                /* number of compressed bytes read (zero = error) */
+fpzip_memory_read(
+  const void* buffer, /* pointer to compressed data */
+  void*       data,   /* array to read */
+  int*        prec,   /* returned per field bits of precision (may be null) */
+  int         *dp,    /* returned double precision array if nonzero */
+  unsigned    *nx,    /* returned number of x samples */
+  unsigned    *ny,    /* returned number of y samples */
+  unsigned    *nz,    /* returned number of z samples */
+  unsigned    *nf     /* returned number of fields */
+);
+
+size_t                /* number of compressed bytes written (zero = error) */
+fpzip_file_write(
+  FILE*       file,   /* binary output stream */
+  const void* data,   /* array to write */
+  const int*  prec,   /* per field bits of precision (null = full precision) */
+  int         dp,     /* double precision array if nonzero */
+  unsigned    nx,     /* number of x samples */
+  unsigned    ny,     /* number of y samples */
+  unsigned    nz,     /* number of z samples */
+  unsigned    nf      /* number of fields */
+);
+
+size_t                /* number of compressed bytes written (zero = error) */
+fpzip_memory_write(
+  void*       buffer, /* pointer to compressed data */
+  size_t      size,   /* size of allocated storage */
+  const void* data,   /* array to write */
+  const int*  prec,   /* per field bits of precision (null = full precision) */
+  int         dp,     /* double precision array if nonzero */
+  unsigned    nx,     /* number of x samples */
+  unsigned    ny,     /* number of y samples */
+  unsigned    nz,     /* number of z samples */
+  unsigned    nf      /* number of fields */
+);
+
+/*
+** Fortran bindings.
+*/
+
+void
+fpzip_file_read_f(
+  const char* path, /* path to input file */
+  void*       data, /* array to read */
+  int*        prec, /* per field bits of precision */
+  int*        dp,   /* double precision array if nonzero */
+  int*        nx,   /* number of x samples */
+  int*        ny,   /* number of y samples */
+  int*        nz,   /* number of z samples */
+  int*        nf    /* number of fields */
+);
+
+void
+fpzip_file_read_f_(
+  const char* path, /* path to input file */
+  void*       data, /* array to read */
+  int*        prec, /* per field bits of precision */
+  int*        dp,   /* double precision array if nonzero */
+  int*        nx,   /* number of x samples */
+  int*        ny,   /* number of y samples */
+  int*        nz,   /* number of z samples */
+  int*        nf    /* number of fields */
+);
+
+void
+fpzip_file_write_f(
+  const char* path, /* path to output file */
+  const void* data, /* array to write */
+  const int*  prec, /* per field bits of precision */
+  const int*  dp,   /* double precision array if nonzero */
+  const int*  nx,   /* number of x samples */
+  const int*  ny,   /* number of y samples */
+  const int*  nz,   /* number of z samples */
+  const int*  nf    /* number of fields */
+);
+
+void
+fpzip_file_write_f_(
+  const char* path, /* path to output file */
+  const void* data, /* array to write */
+  const int*  prec, /* per field bits of precision */
+  const int*  dp,   /* double precision array if nonzero */
+  const int*  nx,   /* number of x samples */
+  const int*  ny,   /* number of y samples */
+  const int*  nz,   /* number of z samples */
+  const int*  nf    /* number of fields */
+);
+
+/*
+** Error codes.
+*/
+
+typedef enum {
+  fpzipSuccess             =  0, /* no error */
+  fpzipErrorOpenFile       =  1, /* cannot open file for reading */
+  fpzipErrorCreateFile     =  2, /* cannot create file for writing */
+  fpzipErrorReadStream     =  3, /* cannot read stream */
+  fpzipErrorWriteStream    =  4, /* cannot write stream */
+  fpzipErrorBadFormat      =  5, /* magic mismatch; not an fpz stream */
+  fpzipErrorBadVersion     =  6, /* fpz format version not supported */
+  fpzipErrorBadDimensions  =  7, /* array dimensions do not match */
+  fpzipErrorBadType        =  8, /* floating-point types do not match */
+  fpzipErrorBadPrecision   =  9, /* precision not supported */
+  fpzipErrorBufferOverflow = 10, /* compressed buffer overflow */
+  fpzipErrorBitsTooLarge   = 11,
+  fpzipErrorTargetRescaleTooLarge = 12
+} fpzipError;
+
+extern fpzipError fpzip_errno;     /* error code */
+extern const char* fpzip_errstr[]; /* error message indexed by fpzip_errno */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/fpzip/front.h b/src/fpzip/front.h
new file mode 100644
index 0000000..ea84404
--- /dev/null
+++ b/src/fpzip/front.h
@@ -0,0 +1,50 @@
+#ifndef FRONT_H
+#define FRONT_H
+
+// front of encoded but not finalized samples
+template <typename T>
+class FRONT {
+public:
+  FRONT(unsigned nx, unsigned ny, T zero = 0)
+    : zero(zero), dx(1), dy(nx + 1), dz(dy * (ny + 1)), m(mask(dx + dy + dz)),
+      i(0), a(new T[m + 1]) {}
+  ~FRONT() { delete[] a; }
+
+  // fetch neighbor relative to current sample
+  const T& operator()(unsigned x, unsigned y, unsigned z) const
+  {
+    return a[(i - dx * x - dy * y - dz * z) & m];
+  }
+
+  // add n copies of sample f to front
+  void push(T f, unsigned n = 1)
+  {
+    do
+      a[i++ & m] = f;
+    while (--n);
+  }
+
+  // advance front to (x, y, z) relative to current sample and fill with zeros
+  void advance(unsigned x, unsigned y, unsigned z)
+  {
+    push(zero, dx * x + dy * y + dz * z);
+  }
+
+private:
+  const T        zero; // default value
+  const unsigned dx;   // front index x offset
+  const unsigned dy;   // front index y offset
+  const unsigned dz;   // front index z offset
+  const unsigned m;    // index mask
+  unsigned       i;    // modular index of current sample
+  T*const        a;    // circular array of samples
+
+  // return m = 2^k - 1 >= n - 1
+  unsigned mask(unsigned n) const
+  {
+    for (n--; n & (n + 1); n |= n + 1);
+    return n;
+  }
+};
+
+#endif
diff --git a/src/fpzip/pccodec.h b/src/fpzip/pccodec.h
new file mode 100644
index 0000000..3397a57
--- /dev/null
+++ b/src/fpzip/pccodec.h
@@ -0,0 +1,14 @@
+#ifndef PC_CODEC_H
+#define PC_CODEC_H
+
+#ifndef PC_BIT_MAX
+  #define PC_BIT_MAX 8 // maximum bit width of directly encodable integers
+#endif
+
+namespace PC {
+  template <typename U>
+  unsigned bsr(U x);
+  #include "pccodec.inl"
+}
+
+#endif
diff --git a/src/fpzip/pccodec.inl b/src/fpzip/pccodec.inl
new file mode 100644
index 0000000..065b633
--- /dev/null
+++ b/src/fpzip/pccodec.inl
@@ -0,0 +1,15 @@
+template <typename U>
+unsigned bsr(U x)
+{
+  unsigned k;
+#if __i386__ && USEASM
+  __asm__("bsr %1, %0" : "=r"(k) : "r"(x));
+#else
+//  for (y = x, k = 0; y != 1; y >>= 1, k++);
+  k = 0;
+  do k++; while (x >>= 1);
+  k--;
+#endif
+  return k;
+}
+
diff --git a/src/fpzip/pcdecoder.h b/src/fpzip/pcdecoder.h
new file mode 100644
index 0000000..4178390
--- /dev/null
+++ b/src/fpzip/pcdecoder.h
@@ -0,0 +1,24 @@
+#ifndef PC_DECODER_H
+#define PC_DECODER_H
+
+#include "pccodec.h"
+#include "pcmap.h"
+#include "rcdecoder.h"
+#include "rcmodel.h"
+
+template <typename T, class M = PCmap<T>, bool wide = (M::bits > PC_BIT_MAX)>
+class PCdecoder {
+public:
+  PCdecoder(RCdecoder* rd, RCmodel*const* rm);
+  ~PCdecoder();
+
+  // decode a value with prediction and optional context
+  T decode(T pred, unsigned context = 0);
+
+  // number of symbols (needed by probability modeler)
+  static const unsigned symbols;
+};
+
+#include "pcdecoder.inl"
+
+#endif
diff --git a/src/fpzip/pcdecoder.inl b/src/fpzip/pcdecoder.inl
new file mode 100644
index 0000000..861eb61
--- /dev/null
+++ b/src/fpzip/pcdecoder.inl
@@ -0,0 +1,67 @@
+// specialization for small alphabets -----------------------------------------
+
+template <typename T, class M>
+class PCdecoder<T, M, false> {
+public:
+  PCdecoder(RCdecoder* rd, RCmodel*const* rm) : rd(rd), rm(rm) {}
+  ~PCdecoder() {}
+  T decode(T pred, unsigned context = 0);
+  static const unsigned symbols = 2 * (1 << M::bits) - 1;
+private:
+  static const unsigned bias = (1 << M::bits) - 1;
+  M                     map;            // maps T to some unsigned int type
+  RCdecoder*const       rd;             // entropy decoder
+  RCmodel*const*        rm;             // probability modeler(s)
+};
+
+// decode narrow range type
+template <typename T, class M>
+T PCdecoder<T, M, false>::decode(T pred, unsigned context)
+{
+  // map type T to unsigned integer type
+  typedef typename M::RANGE U;
+  U p = map.forward(pred);
+  // entropy decode d = r - p
+  U r = p + rd->decode(rm[context]) - bias;
+  return map.inverse(r);
+}
+
+// specialization for large alphabets -----------------------------------------
+
+template <typename T, class M>
+class PCdecoder<T, M, true> {
+public:
+  PCdecoder(RCdecoder* rd, RCmodel*const* rm) : rd(rd), rm(rm) {}
+  ~PCdecoder() {}
+  T decode(T pred, unsigned context = 0);
+  static const unsigned symbols = 2 * M::bits + 1;
+private:
+  static const unsigned bias = M::bits;
+  M                     map;            // maps T to some unsigned int type
+  RCdecoder*const       rd;             // entropy decoder
+  RCmodel*const*        rm;             // probability modeler(s)
+};
+
+// decode wide range type
+template <typename T, class M>
+T PCdecoder<T, M, true>::decode(T pred, unsigned context)
+{
+  typedef typename M::RANGE U;
+  unsigned s = rd->decode(rm[context]);
+  if (s > bias) {      // underprediction
+    unsigned k = s - bias - 1;
+    U d = (U(1) << k) + rd->template decode<U>(k);
+    U p = map.forward(pred);
+    U r = p + d;
+    return map.inverse(r);
+  }
+  else if (s < bias) { // overprediction
+    unsigned k = bias - 1 - s;
+    U d = (U(1) << k) + rd->template decode<U>(k);
+    U p = map.forward(pred);
+    U r = p - d;
+    return map.inverse(r);
+  }
+  else                 // perfect prediction
+    return map.identity(pred);
+}
diff --git a/src/fpzip/pcencoder.h b/src/fpzip/pcencoder.h
new file mode 100644
index 0000000..5881671
--- /dev/null
+++ b/src/fpzip/pcencoder.h
@@ -0,0 +1,23 @@
+#ifndef PC_ENCODER_H
+#define PC_ENCODER_H
+
+#include "pccodec.h"
+#include "pcmap.h"
+#include "rcencoder.h"
+#include "rcmodel.h"
+
+template <typename T, class M = PCmap<T>, bool wide = (M::bits > PC_BIT_MAX)>
+class PCencoder {
+public:
+  PCencoder(RCencoder* re, RCmodel*const* rm);
+
+  // encode a value with prediction and optional context
+  T encode(T real, T pred, unsigned context = 0);
+
+  // number of symbols (needed by probability modeler)
+  static const unsigned symbols;
+};
+
+#include "pcencoder.inl"
+
+#endif
diff --git a/src/fpzip/pcencoder.inl b/src/fpzip/pcencoder.inl
new file mode 100644
index 0000000..b3c4651
--- /dev/null
+++ b/src/fpzip/pcencoder.inl
@@ -0,0 +1,71 @@
+// specialization for small alphabets -----------------------------------------
+
+template <typename T, class M>
+class PCencoder<T, M, false> {
+public:
+  PCencoder(RCencoder* re, RCmodel*const* rm) : re(re), rm(rm) {}
+  T encode(T real, T pred, unsigned context = 0);
+  static const unsigned symbols = 2 * (1 << M::bits) - 1;
+private:
+  static const unsigned bias = (1 << M::bits) - 1; // perfect prediction symbol
+  M                     map;                       // maps T to integer type
+  RCencoder*const       re;                        // entropy encoder
+  RCmodel*const*        rm;                        // probability modeler(s)
+};
+
+// encode narrow range type
+template <typename T, class M>
+T PCencoder<T, M, false>::encode(T real, T pred, unsigned context)
+{
+  // map type T to unsigned integer type
+  typedef typename M::RANGE U;
+  U r = map.forward(real);
+  U p = map.forward(pred);
+  // entropy encode d = r - p
+  re->encode(bias + r - p, rm[context]);
+  // return decoded value
+  return map.inverse(r);
+}
+
+// specialization for large alphabets -----------------------------------------
+
+template <typename T, class M>
+class PCencoder<T, M, true> {
+public:
+  PCencoder(RCencoder* re, RCmodel*const* rm) : re(re), rm(rm) {}
+  T encode(T real, T pred, unsigned context = 0);
+  static const unsigned symbols = 2 * M::bits + 1;
+private:
+  static const unsigned bias = M::bits; // perfect prediction symbol
+  M                     map;            // maps T to integer type
+  RCencoder*const       re;             // entropy encoder
+  RCmodel*const*        rm;             // probability modeler(s)
+};
+
+// encode wide range type
+template <typename T, class M>
+T PCencoder<T, M, true>::encode(T real, T pred, unsigned context)
+{
+  // map type T to unsigned integer type
+  typedef typename M::RANGE U;
+  U r = map.forward(real);
+  U p = map.forward(pred);
+  // compute (-1)^s (2^k + m) = r - p, entropy code (s, k),
+  // and encode the k-bit number m verbatim
+  if (p < r) {      // underprediction
+    U d = r - p;
+    unsigned k = PC::bsr(d);
+    re->encode(bias + 1 + k, rm[context]);
+    re->encode(d - (U(1) << k), k);
+  }
+  else if (p > r) { // overprediction
+    U d = p - r;
+    unsigned k = PC::bsr(d);
+    re->encode(bias - 1 - k, rm[context]);
+    re->encode(d - (U(1) << k), k);
+  }
+  else              // perfect prediction
+    re->encode(bias, rm[context]);
+  // return decoded value
+  return map.inverse(r);
+}
diff --git a/src/fpzip/pcmap.h b/src/fpzip/pcmap.h
new file mode 100644
index 0000000..aa24afa
--- /dev/null
+++ b/src/fpzip/pcmap.h
@@ -0,0 +1,68 @@
+#ifndef PC_MAP_H
+#define PC_MAP_H
+
+#include <climits>
+#if !defined WITH_REINTERPRET_CAST && !defined WITH_UNION
+#include <cstring>
+#endif
+
+#define bitsizeof(t) ((unsigned)(CHAR_BIT * sizeof(t)))
+
+template <typename T, unsigned width = bitsizeof(T), typename U = void>
+struct PCmap;
+
+// specialized for integer-to-integer map
+template <typename T, unsigned width>
+struct PCmap<T, width, void> {
+  typedef T DOMAIN;
+  typedef T RANGE;
+  static const unsigned bits = width;                    // RANGE bits
+  static const unsigned shift = bitsizeof(RANGE) - bits; // DOMAIN\RANGE bits
+  RANGE forward(DOMAIN d) const { return d >> shift; }
+  DOMAIN inverse(RANGE r) const { return r << shift; }
+  DOMAIN identity(DOMAIN d) const { return inverse(forward(d)); }
+};
+
+// specialized for float type
+template <unsigned width>
+struct PCmap<float, width, void> {
+  typedef float    DOMAIN;
+  typedef unsigned RANGE;
+  union UNION {
+    UNION(DOMAIN d) : d(d) {}
+    UNION(RANGE r) : r(r) {}
+    DOMAIN d;
+    RANGE r;
+  };
+  static const unsigned bits = width;                    // RANGE bits
+  static const unsigned shift = bitsizeof(RANGE) - bits; // DOMAIN\RANGE bits
+  RANGE fcast(DOMAIN d) const;
+  DOMAIN icast(RANGE r) const;
+  RANGE forward(DOMAIN d) const;
+  DOMAIN inverse(RANGE r) const;
+  DOMAIN identity(DOMAIN d) const;
+};
+
+// specialized for double type
+template <unsigned width>
+struct PCmap<double, width, void> {
+  typedef double             DOMAIN;
+  typedef unsigned long long RANGE;
+  union UNION {
+    UNION(DOMAIN d) : d(d) {}
+    UNION(RANGE r) : r(r) {}
+    DOMAIN d;
+    RANGE r;
+  };
+  static const unsigned bits = width;                    // RANGE bits
+  static const unsigned shift = bitsizeof(RANGE) - bits; // DOMAIN\RANGE bits
+  RANGE fcast(DOMAIN d) const;
+  DOMAIN icast(RANGE r) const;
+  RANGE forward(DOMAIN d) const;
+  DOMAIN inverse(RANGE r) const;
+  DOMAIN identity(DOMAIN d) const;
+};
+
+#include "pcmap.inl"
+
+#endif
diff --git a/src/fpzip/pcmap.inl b/src/fpzip/pcmap.inl
new file mode 100644
index 0000000..fa673f6
--- /dev/null
+++ b/src/fpzip/pcmap.inl
@@ -0,0 +1,137 @@
+template <unsigned width>
+unsigned
+PCmap<float, width, void>::fcast(float d) const
+{
+#ifdef WITH_REINTERPRET_CAST
+  return reinterpret_cast<const RANGE&>(d);
+#elif defined WITH_UNION
+  UNION shared(d);
+  return shared.r;
+#else
+  RANGE r;
+  memcpy(&r, &d, sizeof(r));
+  return r;
+#endif
+}
+
+template <unsigned width>
+float
+PCmap<float, width, void>::icast(unsigned r) const
+{
+#ifdef WITH_REINTERPRET_CAST
+  return reinterpret_cast<const DOMAIN&>(r);
+#elif defined WITH_UNION
+  UNION shared(r);
+  return shared.d;
+#else
+  DOMAIN d;
+  memcpy(&d, &r, sizeof(d));
+  return d;
+#endif
+}
+
+#ifdef _WIN32
+#  pragma warning(disable:4146)
+#endif
+template <unsigned width>
+unsigned
+PCmap<float, width, void>::forward(float d) const
+{
+  RANGE r = fcast(d);
+  r = ~r;
+  r >>= shift;
+  r ^= -(r >> (bits - 1)) >> (shift + 1);
+#ifdef _WIN32
+  #pragma warning(default:4146)
+#endif
+  return r;
+}
+
+template <unsigned width>
+float
+PCmap<float, width, void>::inverse(unsigned r) const
+{
+  r ^= -(r >> (bits - 1)) >> (shift + 1);
+  r = ~r;
+  r <<= shift;
+  return icast(r);
+}
+
+template <unsigned width>
+float
+PCmap<float, width, void>::identity(float d) const
+{
+  RANGE r = fcast(d);
+  r >>= shift;
+  r <<= shift;
+  return icast(r);
+}
+
+template <unsigned width>
+unsigned long long
+PCmap<double, width, void>::fcast(double d) const
+{
+#ifdef WITH_REINTERPRET_CAST
+  return reinterpret_cast<const RANGE&>(d);
+#elif defined WITH_UNION
+  UNION shared(d);
+  return shared.r;
+#else
+  RANGE r;
+  memcpy(&r, &d, sizeof(r));
+  return r;
+#endif
+}
+
+template <unsigned width>
+double
+PCmap<double, width, void>::icast(unsigned long long r) const
+{
+#ifdef WITH_REINTERPRET_CAST
+  return reinterpret_cast<const DOMAIN&>(r);
+#elif defined WITH_UNION
+  UNION shared(r);
+  return shared.d;
+#else
+  DOMAIN d;
+  memcpy(&d, &r, sizeof(d));
+  return d;
+#endif
+}
+
+#ifdef _WIN32
+#  pragma warning(disable:4146)
+#endif
+template <unsigned width>
+unsigned long long
+PCmap<double, width, void>::forward(double d) const
+{
+  RANGE r = fcast(d);
+  r = ~r;
+  r >>= shift;
+  r ^= -(r >> (bits - 1)) >> (shift + 1);
+#ifdef _WIN32
+  #pragma warning(default:4146)
+#endif
+  return r;
+}
+
+template <unsigned width>
+double
+PCmap<double, width, void>::inverse(unsigned long long r) const
+{
+  r ^= -(r >> (bits - 1)) >> (shift + 1);
+  r = ~r;
+  r <<= shift;
+  return icast(r);
+}
+
+template <unsigned width>
+double
+PCmap<double, width, void>::identity(double d) const
+{
+  RANGE r = fcast(d);
+  r >>= shift;
+  r <<= shift;
+  return icast(r);
+}
diff --git a/src/fpzip/rcdecoder.cpp b/src/fpzip/rcdecoder.cpp
new file mode 100644
index 0000000..d0c07ec
--- /dev/null
+++ b/src/fpzip/rcdecoder.cpp
@@ -0,0 +1,72 @@
+#include "rcdecoder.h"
+
+// initialize decoder
+void RCdecoder::init()
+{
+  get(4);
+}
+
+// decode a bit
+bool RCdecoder::decode()
+{
+  range >>= 1;
+  bool s = code >= low + range;
+  if (s)
+    low += range;
+  normalize();
+  return s;
+}
+
+// decode a symbol using probability modeling
+unsigned RCdecoder::decode(RCmodel* rm)
+{
+  rm->normalize(range);
+  unsigned l = (code - low) / range;
+  unsigned r, s = rm->decode(l, r);
+  low += range * l;
+  range *= r;
+  normalize();
+  return s;
+}
+
+// decode a number s : 0 <= s < 2^n <= 2^16
+unsigned RCdecoder::decode_shift(unsigned n)
+{
+  range >>= n;
+  unsigned s = (code - low) / range;
+  low += range * s;
+  normalize();
+  return s;
+}
+
+// decode a number s : 0 <= s < n <= 2^16
+unsigned RCdecoder::decode_ratio(unsigned n)
+{
+  range /= n;
+  unsigned s = (code - low) / range;
+  low += range * s;
+  normalize();
+  return s;
+}
+
+// normalize the range and input data
+#ifdef _WIN32
+#pragma warning(disable:4146)
+#endif
+void RCdecoder::normalize()
+{
+  while (!((low ^ (low + range)) >> 24)) {
+    // top 8 bits are fixed; output them
+    get(1);
+    range <<= 8;
+  }
+  if (!(range >> 16)) {
+    // top 8 bits are not fixed but range is small;
+    // fudge range to avoid carry and input 16 bits
+    get(2);
+    range = -low;
+  }
+#ifdef _WIN32
+#pragma warning(default:4146)
+#endif
+}
diff --git a/src/fpzip/rcdecoder.h b/src/fpzip/rcdecoder.h
new file mode 100644
index 0000000..5228d03
--- /dev/null
+++ b/src/fpzip/rcdecoder.h
@@ -0,0 +1,50 @@
+#ifndef RC_DECODER_H
+#define RC_DECODER_H
+
+#include "rcmodel.h"
+#ifdef _WIN32
+#pragma warning(push)
+#pragma warning(disable:4146)
+#endif
+class RCdecoder {
+public:
+  RCdecoder() : low(0), range(-1u), code(0) {}
+  virtual ~RCdecoder() {}
+
+  // initialize decoding
+  void init();
+
+  // decode a bit
+  bool decode();
+
+  // decode a number s : 0 <= s < 2^n
+  template <typename UINT>
+  UINT decode(unsigned n);
+
+  // decode a number s : l <= s < h
+  template <typename UINT>
+  UINT decode(UINT l, UINT h);
+
+  // decode a symbol using probability modeling
+  unsigned decode(RCmodel* rm);
+
+  // virtual function for reading byte stream
+  virtual unsigned getbyte() = 0;
+
+private:
+  unsigned decode_shift(unsigned n);
+  unsigned decode_ratio(unsigned n);
+  void get(unsigned n);
+  void normalize();
+
+  unsigned low;   // low end of interval
+  unsigned range; // length of interval
+  unsigned code;  // incoming data
+};
+
+#include "rcdecoder.inl"
+#ifdef _WIN32
+#pragma warning(pop)
+#endif
+
+#endif
diff --git a/src/fpzip/rcdecoder.inl b/src/fpzip/rcdecoder.inl
new file mode 100644
index 0000000..bab6d5f
--- /dev/null
+++ b/src/fpzip/rcdecoder.inl
@@ -0,0 +1,39 @@
+template <typename UINT>
+inline UINT RCdecoder::decode(unsigned n)
+{
+  UINT     s = 0;
+  unsigned m = 0;
+  for (int i = 1; i < (int)sizeof(s) / 2; i++)
+    if (n > 16) {
+      s += UINT(decode_shift(16)) << m;
+      m += 16;
+      n -= 16;
+    }
+  return (UINT(decode_shift(n)) << m) + s;
+}
+
+template <typename UINT>
+inline UINT RCdecoder::decode(UINT l, UINT h)
+{
+  UINT     s = l;
+  unsigned m = 0;
+  h -= l;
+  for (int i = 1; i < sizeof(s) / 2; i++)
+    if ((h >> 16)) {
+      s += UINT(decode_shift(16)) << m;
+      m += 16;
+      h >>= 16;
+      h++;
+    }
+  return (UINT(decode_ratio(h)) << m) + s;
+}
+
+// input n bytes
+inline void RCdecoder::get(unsigned n)
+{
+  for (unsigned i = 0; i < n; i++) {
+    code <<= 8;
+    code |= getbyte();
+    low <<= 8;
+  }
+}
diff --git a/src/fpzip/rcencoder.cpp b/src/fpzip/rcencoder.cpp
new file mode 100644
index 0000000..5898e2b
--- /dev/null
+++ b/src/fpzip/rcencoder.cpp
@@ -0,0 +1,65 @@
+#include "rcencoder.h"
+
+// finalize encoder
+void RCencoder::finish()
+{
+  put(4);
+}
+
+// encode a bit s
+void RCencoder::encode(bool s)
+{
+  range >>= 1;
+  if (s)
+    low += range;
+  normalize();
+}
+
+// encode a symbol s using probability modeling
+void RCencoder::encode(unsigned s, RCmodel* rm)
+{
+  unsigned l, r;
+  rm->encode(s, l, r);
+  rm->normalize(range);
+  low += range * l;
+  range *= r;
+  normalize();
+}
+
+// encode a number s : 0 <= s < 2^n <= 2^16
+void RCencoder::encode_shift(unsigned s, unsigned n)
+{
+  range >>= n;
+  low += range * s;
+  normalize();
+}
+
+// encode a number s : 0 <= s < n <= 2^16
+void RCencoder::encode_ratio(unsigned s, unsigned n)
+{
+  range /= n;
+  low += range * s;
+  normalize();
+}
+
+// normalize the range and output data
+#ifdef _WIN32
+#pragma warning(disable:4146)
+#endif
+void RCencoder::normalize()
+{
+  while (!((low ^ (low + range)) >> 24)) {
+    // top 8 bits are fixed; output them
+    put(1);
+    range <<= 8;
+  }
+  if (!(range >> 16)) {
+    // top 8 bits are not fixed but range is small;
+    // fudge range to avoid carry and output 16 bits
+    put(2);
+    range = -low;
+  }
+#ifdef _WIN32
+#pragma warning(default:4146)
+#endif
+}
diff --git a/src/fpzip/rcencoder.h b/src/fpzip/rcencoder.h
new file mode 100644
index 0000000..a4ef28c
--- /dev/null
+++ b/src/fpzip/rcencoder.h
@@ -0,0 +1,50 @@
+#ifndef RC_ENCODER_H
+#define RC_ENCODER_H
+
+#include "rcmodel.h"
+#ifdef _WIN32
+#pragma warning(push)
+#pragma warning(disable:4146)
+#endif
+class RCencoder {
+public:
+  RCencoder() : low(0), range(-1u) {}
+  virtual ~RCencoder() {}
+
+  // finish encoding
+  void finish();
+
+  // encode a bit s
+  void encode(bool s);
+
+  // encode a number s : 0 <= s < 2^n
+  template <typename UINT>
+  void encode(UINT s, unsigned n);
+
+  // encode a number s : l <= s < h
+  template <typename UINT>
+  void encode(UINT s, UINT l, UINT h);
+
+  // encode a symbol s using probability modeling
+  void encode(unsigned s, RCmodel* rm);
+
+  // virtual function for writing byte stream
+  virtual void putbyte(unsigned byte) = 0;
+
+private:
+  void encode_shift(unsigned s, unsigned n);
+  void encode_ratio(unsigned s, unsigned n);
+  void put(unsigned n);
+  void normalize();
+
+  unsigned low;   // low end of interval
+  unsigned range; // length of interval
+};
+
+#include "rcencoder.inl"
+
+#ifdef _WIN32
+#pragma warning(pop)
+#endif
+
+#endif
diff --git a/src/fpzip/rcencoder.inl b/src/fpzip/rcencoder.inl
new file mode 100644
index 0000000..8746436
--- /dev/null
+++ b/src/fpzip/rcencoder.inl
@@ -0,0 +1,40 @@
+// The static for loops below enable unrolling or even elimination
+// of otherwise data dependent loops for basic integer types.  Here
+// 'for () if (c)' replaces 'while (c)', and we (safely) assume that
+// n does not exceed the number of bits in a UINT.
+
+template <typename UINT>
+inline void RCencoder::encode(UINT s, unsigned n)
+{
+  for (int i = 1; i < (int)sizeof(s) / 2; i++)
+    if (n > 16) {
+      encode_shift(s & 0xffff, 16);
+      s >>= 16;
+      n -= 16;
+    }
+  encode_shift(s, n);
+}
+
+template <typename UINT>
+inline void RCencoder::encode(UINT s, UINT l, UINT h)
+{
+  s -= l;
+  h -= l;
+  for (int i = 1; i < sizeof(s) / 2; i++)
+    if ((h >> 16)) {
+      encode_shift(s & 0xffff, 16);
+      s >>= 16;
+      h >>= 16;
+      h++;
+    }
+  encode_ratio(s, h);
+}
+
+// output n bytes
+inline void RCencoder::put(unsigned n)
+{
+  for (unsigned i = 0; i < n; i++) {
+    putbyte(low >> 24);
+    low <<= 8;
+  }
+}
diff --git a/src/fpzip/rcmodel.h b/src/fpzip/rcmodel.h
new file mode 100644
index 0000000..6e0b52f
--- /dev/null
+++ b/src/fpzip/rcmodel.h
@@ -0,0 +1,23 @@
+#ifndef RC_MODEL_H
+#define RC_MODEL_H
+
+class RCmodel {
+public:
+  RCmodel(unsigned symbols) : symbols(symbols) {}
+  virtual ~RCmodel() {}
+
+  // get frequency r for a symbol s and cumulative frequency l
+  // of all symbols t < s
+  virtual void encode(unsigned s, unsigned& l, unsigned& r) = 0;
+
+  // get symbol frequency r and return symbol corresponding to
+  // cumulative frequency l
+  virtual unsigned decode(unsigned& l, unsigned& r) = 0;
+
+  // divide range r by sum of all frequency counts
+  virtual void normalize(unsigned &r) = 0;
+
+  const unsigned symbols; // number of symbols
+};
+
+#endif
diff --git a/src/fpzip/rcqsmodel.cpp b/src/fpzip/rcqsmodel.cpp
new file mode 100644
index 0000000..051f641
--- /dev/null
+++ b/src/fpzip/rcqsmodel.cpp
@@ -0,0 +1,125 @@
+#include "rcqsmodel.h"
+#include "fpzip.h"
+
+// table size for binary search
+#define TBLSHIFT 7
+
+RCqsmodel::RCqsmodel(bool compress, unsigned symbols, unsigned bits, unsigned period) : RCmodel(symbols), bits(bits), targetrescale(period)
+{
+  if (bits > 16) {
+    fpzip_errno = fpzipErrorBitsTooLarge;
+    return;
+  }
+  if (targetrescale >= (1u << (bits + 1))) {
+    fpzip_errno = fpzipErrorTargetRescaleTooLarge;
+    return;
+  }
+  
+  unsigned n = symbols;
+  symf = new unsigned[n + 1];
+  cumf = new unsigned[n + 1];
+  cumf[0] = 0;
+  cumf[n] = 1 << bits;
+  if (compress)
+    search = 0;
+  else {
+    searchshift = bits - TBLSHIFT;
+    search = new unsigned[(1 << TBLSHIFT) + 1];
+  }
+  reset();
+}
+
+RCqsmodel::~RCqsmodel()
+{
+  delete [] symf;
+  delete [] cumf;
+  delete [] search;
+}
+
+// reinitialize model
+void RCqsmodel::reset()
+{
+  unsigned n = symbols;
+  rescale = (n >> 4) | 2;
+  more = 0;
+  unsigned f = cumf[n] / n;
+  unsigned m = cumf[n] % n;
+  for (unsigned i = 0; i < m; i++)
+    symf[i] = f + 1;
+  for (unsigned i = m; i < n; i++)
+    symf[i] = f;
+  update();
+}
+
+// return symbol corresponding to cumulative frequency l
+unsigned RCqsmodel::decode(unsigned& l, unsigned& r)
+{
+  unsigned i = l >> searchshift;
+  unsigned s = search[i];
+  unsigned h = search[i + 1] + 1;
+
+  // find symbol via binary search
+  while (s + 1 < h) {
+    unsigned m = (s + h) / 2;
+    if (l < cumf[m])
+      h = m;
+    else
+      s = m;
+  }
+
+  l = cumf[s];
+  r = cumf[s + 1] - l;
+  update(s);
+
+  return s;
+}
+
+// update probability table
+void RCqsmodel::update()
+{
+  if (more) { // we have some more symbols before update
+    left = more;
+    more = 0;
+    incr++;
+    return;
+  }
+  if (rescale != targetrescale) {
+    rescale *= 2;
+    if (rescale > targetrescale)
+      rescale = targetrescale;
+  }
+
+  // update symbol frequencies
+  unsigned n = symbols;
+  unsigned cf = cumf[n];
+  unsigned count = cf;
+  for (unsigned i = n; i--; ) {
+    unsigned sf = symf[i];
+    cf -= sf;
+    cumf[i] = cf;
+    sf = (sf >> 1) | 1;
+    count -= sf;
+    symf[i] = sf;
+  }
+
+  // count is now difference between target cumf[n] and sum of symf;
+  // next actual rescale happens when sum of symf equals cumf[n]
+  incr = count / rescale;
+  more = count % rescale;
+  left = rescale - more;
+
+  // build lookup table for fast symbol searches
+  if (search)
+    for (unsigned i = n, h = 1 << TBLSHIFT; i--; h = cumf[i] >> searchshift)
+      for (unsigned l = cumf[i] >> searchshift; l <= h; l++)
+        search[l] = i;
+}
+
+// update frequency for symbol s
+void RCqsmodel::update(unsigned s)
+{
+  if (!left)
+    update();
+  left--;
+  symf[s] += incr;
+}
diff --git a/src/fpzip/rcqsmodel.h b/src/fpzip/rcqsmodel.h
new file mode 100644
index 0000000..98d4f8e
--- /dev/null
+++ b/src/fpzip/rcqsmodel.h
@@ -0,0 +1,49 @@
+#ifndef RC_QSMODEL_H
+#define RC_QSMODEL_H
+
+#include "rcmodel.h"
+
+class RCqsmodel : public RCmodel {
+public:
+  // initialization of model
+  // compress: true for compression, false for decompression
+  // symbols:  number of symbols
+  // bits:     log2 of total frequency count (must be <= 16)
+  // period:   max symbols between normalizations (must be < 1<<(bits+1))
+  RCqsmodel(bool compress, unsigned symbols, unsigned bits = 16, unsigned period = 0x400);
+  ~RCqsmodel();
+
+  // reinitialize model
+  void reset();
+
+  // get frequencies for a symbol s
+  void encode(unsigned s, unsigned& l, unsigned& r);
+
+  // return symbol corresponding to cumulative frequency l
+  unsigned decode(unsigned& l, unsigned& r);
+
+  //
+  void normalize(unsigned &r);
+
+private:
+
+  void update();
+  void update(unsigned s);
+
+  const unsigned  bits;    // number of bits of precision for frequencies
+
+  unsigned  left;          // number of symbols until next normalization
+  unsigned  more;          // number of symbols with larger increment
+  unsigned  incr;          // increment per update
+  unsigned  rescale;       // current interval between normalizations
+  unsigned  targetrescale; // target interval between rescales
+  unsigned* symf;          // array of partially updated frequencies
+  unsigned* cumf;          // array of cumulative frequencies
+
+  unsigned  searchshift;   // difference of frequency bits and table bits
+  unsigned* search;        // structure for searching on decompression
+};
+
+#include "rcqsmodel.inl"
+
+#endif
diff --git a/src/fpzip/rcqsmodel.inl b/src/fpzip/rcqsmodel.inl
new file mode 100644
index 0000000..a07c351
--- /dev/null
+++ b/src/fpzip/rcqsmodel.inl
@@ -0,0 +1,12 @@
+// get frequencies for a symbol s
+inline void RCqsmodel::encode(unsigned s, unsigned& l, unsigned& r)
+{
+  l = cumf[s];
+  r = cumf[s + 1] - l;
+  update(s);
+}
+
+inline void RCqsmodel::normalize(unsigned& r)
+{
+  r >>= bits;
+}
diff --git a/src/fpzip/read.cpp b/src/fpzip/read.cpp
new file mode 100644
index 0000000..ff61fdc
--- /dev/null
+++ b/src/fpzip/read.cpp
@@ -0,0 +1,354 @@
+#include <cstdio>
+#include <cstdlib>
+#include "pcdecoder.h"
+#include "rcqsmodel.h"
+#include "front.h"
+#include "fpzip.h"
+#include "codec.h"
+#include "read.h"
+
+#if FPZIP_FP == FPZIP_FP_FAST || FPZIP_FP == FPZIP_FP_SAFE
+// decompress 3D array at specified precision using floating-point arithmetic
+template <typename T, unsigned bits>
+static void
+decompress3d(
+  RCdecoder* rd,   // entropy decoder
+  T*         data, // flattened 3D array to decompress to
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz    // number of z samples
+)
+{
+  // initialize decompressor
+  typedef PCmap<T, bits> MAP;
+  RCmodel* rm = new RCqsmodel(false, PCdecoder<T, MAP>::symbols);
+  PCdecoder<T, MAP>* fd = new PCdecoder<T, MAP>(rd, &rm);
+  FRONT<T> f(nx, ny);
+
+  // decode difference between predicted (p) and actual (a) value
+  unsigned x, y, z;
+  for (z = 0, f.advance(0, 0, 1); z < nz; z++)
+    for (y = 0, f.advance(0, 1, 0); y < ny; y++)
+      for (x = 0, f.advance(1, 0, 0); x < nx; x++) {
+        #if FPZIP_FP == FPZIP_FP_SAFE
+        volatile T p = f(1, 1, 1);
+        p += f(1, 0, 0);
+        p -= f(0, 1, 1);
+        p += f(0, 1, 0);
+        p -= f(1, 0, 1);
+        p += f(0, 0, 1);
+        p -= f(1, 1, 0);
+        #else
+        T p = f(1, 0, 0) - f(0, 1, 1) +
+              f(0, 1, 0) - f(1, 0, 1) +
+              f(0, 0, 1) - f(1, 1, 0) +
+              f(1, 1, 1);
+        #endif
+        T a = fd->decode(p);
+        *data++ = a;
+        f.push(a);
+      }
+
+  delete fd;
+  delete rm;
+}
+#elif FPZIP_FP == FPZIP_FP_EMUL
+#include "fpe.h"
+// decompress 3D array at specified precision using floating-point emulation
+template <typename T, unsigned bits>
+static void
+decompress3d(
+  RCdecoder* rd,   // entropy encoder
+  T*         data, // flattened 3D array to decompress to
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz    // number of z samples
+)
+{
+  // initialize decompressor
+  typedef PCmap<T, bits> MAP;
+  typedef FPE<T> FLOAT;
+  RCmodel* rm = new RCqsmodel(false, PCdecoder<T, MAP>::symbols);
+  PCdecoder<T, MAP>* fd = new PCdecoder<T, MAP>(rd, &rm);
+  FRONT<FLOAT> f(nx, ny);
+
+  // decode difference between predicted (p) and actual (a) value
+  unsigned x, y, z;
+  for (z = 0, f.advance(0, 0, 1); z < nz; z++)
+    for (y = 0, f.advance(0, 1, 0); y < ny; y++)
+      for (x = 0, f.advance(1, 0, 0); x < nx; x++) {
+        FLOAT p = f(1, 0, 0) - f(0, 1, 1) +
+                  f(0, 1, 0) - f(1, 0, 1) +
+                  f(0, 0, 1) - f(1, 1, 0) +
+                  f(1, 1, 1);
+        T a = fd->decode(T(p));
+        *data++ = a;
+        f.push(a);
+      }
+                                                                                
+  delete fd;
+  delete rm;
+}
+#else // FPZIP_FP_INT
+// decompress 3D array at specified precision using integer arithmetic
+template <typename T, unsigned bits>
+static void
+decompress3d(
+  RCdecoder* rd,   // entropy decoder
+  T*         data, // flattened 3D array to decompress to
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz    // number of z samples
+)
+{
+  // initialize decompressor
+  typedef PCmap<T, bits> TMAP;
+  typedef typename TMAP::RANGE U;
+  typedef PCmap<U, bits, U> UMAP;
+  RCmodel* rm = new RCqsmodel(false, PCdecoder<U, UMAP>::symbols);
+  PCdecoder<U, UMAP>* fd = new PCdecoder<U, UMAP>(rd, &rm);
+  TMAP map;
+  FRONT<U> f(nx, ny, map.forward(0));
+
+  // decode difference between predicted (p) and actual (a) value
+  unsigned x, y, z;
+  for (z = 0, f.advance(0, 0, 1); z < nz; z++)
+    for (y = 0, f.advance(0, 1, 0); y < ny; y++)
+      for (x = 0, f.advance(1, 0, 0); x < nx; x++) {
+        U p = f(1, 0, 0) - f(0, 1, 1) +
+              f(0, 1, 0) - f(1, 0, 1) +
+              f(0, 0, 1) - f(1, 1, 0) +
+              f(1, 1, 1);
+        U a = fd->decode(p);
+        *data++ = map.inverse(a);
+        f.push(a);
+      }
+
+  delete fd;
+  delete rm;
+}
+#endif
+
+// decompress p-bit float, 2p-bit double
+#define decompress_case(p)\
+  case subsize(T, p):\
+    decompress3d<T, subsize(T, p)>(rd, data, nx, ny, nz);\
+    break
+
+// decompress 4D array
+template <typename T>
+static bool
+decompress4d(
+  RCdecoder* rd,   // entropy decoder
+  T*         data, // flattened 4D array to decompress to
+  int*       prec, // per field precision
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz,   // number of z samples
+  unsigned   nf    // number of fields
+)
+{
+  // decompress one field at a time
+  for (unsigned i = 0; i < nf; i++) {
+    int bits = rd->template decode <unsigned>(32);
+    if (prec)
+      prec[i] = bits;
+    switch (bits) {
+      decompress_case( 2);
+      decompress_case( 3);
+      decompress_case( 4);
+      decompress_case( 5);
+      decompress_case( 6);
+      decompress_case( 7);
+      decompress_case( 8);
+      decompress_case( 9);
+      decompress_case(10);
+      decompress_case(11);
+      decompress_case(12);
+      decompress_case(13);
+      decompress_case(14);
+      decompress_case(15);
+      decompress_case(16);
+      decompress_case(17);
+      decompress_case(18);
+      decompress_case(19);
+      decompress_case(20);
+      decompress_case(21);
+      decompress_case(22);
+      decompress_case(23);
+      decompress_case(24);
+      decompress_case(25);
+      decompress_case(26);
+      decompress_case(27);
+      decompress_case(28);
+      decompress_case(29);
+      decompress_case(30);
+      decompress_case(31);
+      decompress_case(32);
+      default:
+        fpzip_errno = fpzipErrorBadPrecision;
+        return false;
+    }
+    data += nx * ny * nz;
+  }
+  return true;
+}
+
+static bool
+read_header(
+  RCdecoder* rd,
+  unsigned   *nx,
+  unsigned   *ny,
+  unsigned   *nz,
+  unsigned   *nf,
+  int        *dp
+)
+{
+  // magic
+  if (rd->decode<unsigned>(8) != 'f' ||
+      rd->decode<unsigned>(8) != 'p' ||
+      rd->decode<unsigned>(8) != 'z' ||
+      rd->decode<unsigned>(8) != '\0') {
+    fpzip_errno = fpzipErrorBadFormat;
+    return false;
+  }
+
+  // format version
+  if (rd->decode<unsigned>(16) != FPZ_MAJ_VERSION ||
+      rd->decode<unsigned>(16) != FPZ_MIN_VERSION) {
+    fpzip_errno = fpzipErrorBadVersion;
+    return false;
+  }
+
+  // array dimensions
+  *nf = rd->decode<unsigned>(32);
+  *nz = rd->decode<unsigned>(32);
+  *ny = rd->decode<unsigned>(32);
+  *nx = rd->decode<unsigned>(32);
+
+  // single or double precision
+  *dp = rd->decode();
+  return true;
+}
+
+static bool
+fpzip_stream_read(
+  RCdecoder* rd,   // entropy decoder
+  void*      data, // array to read
+  int*       prec, // per field bits of precision
+  int        *dp,  // double precision array if nonzero
+  unsigned   *nx,  // number of x samples
+  unsigned   *ny,  // number of y samples
+  unsigned   *nz,  // number of z samples
+  unsigned   *nf   // number of fields
+)
+{
+  rd->init();
+  if (!read_header(rd, nx, ny, nz, nf, dp))
+    return false;
+  if (data == 0)
+    return true;
+  if (dp)
+    return decompress4d(rd, (double*)data, prec, *nx, *ny, *nz, *nf);
+  else
+    return decompress4d(rd, (float*)data, prec, *nx, *ny, *nz, *nf);
+}
+
+// read and decompress a single or double precision 4D array from file
+size_t
+fpzip_file_read(
+  FILE*       file, // binary input stream
+  void*       data, // array to read
+  int*        prec, // per field bits of precision
+  int         *dp,  // double precision array if nonzero
+  unsigned    *nx,  // number of x samples
+  unsigned    *ny,  // number of y samples
+  unsigned    *nz,  // number of z samples
+  unsigned    *nf   // number of fields
+)
+{
+  fpzip_errno = fpzipSuccess;
+  size_t bytes = 0;
+  RCfiledecoder* rd = new RCfiledecoder(file);
+  if (fpzip_stream_read(rd, data, prec, dp, nx, ny, nz, nf)) {
+    if (data != 0)
+      bytes  = rd->error ? 0 : rd->bytes();
+    if (rd->error)
+      fpzip_errno = fpzipErrorReadStream;
+  }
+  delete rd;
+  return bytes;
+}
+
+// read and decompress a single or double precision 4D array from file
+size_t
+fpzip_memory_read(
+  const void* buffer, // pointer to compressed data
+  void*       data,   // array to read
+  int*        prec,   // per field bits of precision
+  int         *dp,    // double precision array if nonzero
+  unsigned    *nx,    // number of x samples
+  unsigned    *ny,    // number of y samples
+  unsigned    *nz,    // number of z samples
+  unsigned    *nf     // number of fields
+)
+{
+  fpzip_errno = fpzipSuccess;
+  RCmemdecoder* rd = new RCmemdecoder(buffer);
+  fpzip_stream_read(rd, data, prec, dp, nx, ny, nz, nf);
+  size_t bytes = 0;
+  if (data != 0)
+    bytes = rd->error ? 0 : rd->bytes();
+  if (rd->error)
+    fpzip_errno = fpzipErrorReadStream;
+  delete rd;
+  return bytes;
+}
+
+// wrappers for fortran calls
+void
+fpzip_file_read_f(
+  const char* path, // path to input file
+  void*       data, // array to read
+  int*        prec, // per field bits of precision
+  int*        dp,   // double precision array if nonzero
+  int*        nx,   // number of x samples
+  int*        ny,   // number of y samples
+  int*        nz,   // number of z samples
+  int*        nf    // number of fields
+)
+{
+  unsigned unx=0, uny=0, unz=0, unf=0;
+  size_t status=0;
+  FILE* file = fopen(path, "rb");
+  fpzip_errno = fpzipSuccess;
+  *nx = *ny = *nz = *nf = 0;
+  if (!file) {
+    fpzip_errno = fpzipErrorOpenFile;
+    return;
+  }
+  status = fpzip_file_read(file, data, prec, dp, &unx, &uny, &unz, &unf);
+  if (!(data != 0 && status == 0))
+  {
+      *nx = (int) unx;
+      *ny = (int) uny;
+      *nz = (int) unz;
+      *nf = (int) unf;
+  }
+  fclose(file);
+}
+
+void
+fpzip_file_read_f_(
+  const char* path, // path to input file
+  void*       data, // array to read
+  int*        prec, // per field bits of precision
+  int*        dp,   // double precision array if nonzero
+  int*        nx,   // number of x samples
+  int*        ny,   // number of y samples
+  int*        nz,   // number of z samples
+  int*        nf    // number of fields
+)
+{
+  fpzip_file_read_f(path, data, prec, dp, nx, ny, nz, nf);
+}
diff --git a/src/fpzip/read.h b/src/fpzip/read.h
new file mode 100644
index 0000000..8a56536
--- /dev/null
+++ b/src/fpzip/read.h
@@ -0,0 +1,66 @@
+#ifndef FPZIP_READ_H
+#define FPZIP_READ_H
+
+#define subsize(T, n) (CHAR_BIT * sizeof(T) * (n) / 32)
+
+// file reader for compressed data
+#if FPZIP_BLOCK_SIZE > 1
+class RCfiledecoder : public RCdecoder {
+public:
+  RCfiledecoder(FILE* file) : RCdecoder(), error(false), file(file), count(0), index(0), size(0) {}
+  unsigned getbyte()
+  {
+    if (index == size) {
+      size = fread(buffer, 1, FPZIP_BLOCK_SIZE, file);
+      if (!size) {
+        size = 1;
+        error = true;
+      }
+      else
+        count += size;
+      index = 0;
+    }
+    return buffer[index++];
+  }
+  size_t bytes() const { return count; }
+  bool error;
+private:
+  FILE* file;
+  size_t count;
+  size_t index;
+  size_t size;
+  unsigned char buffer[FPZIP_BLOCK_SIZE];
+};
+#else
+class RCfiledecoder : public RCdecoder {
+public:
+  RCfiledecoder(FILE* file) : RCdecoder(), error(false), file(file), count(0) {}
+  unsigned getbyte()
+  {
+    int byte = fgetc(file);
+    if (byte == EOF)
+      error = true;
+    else
+      count++;
+    return byte;
+  }
+  size_t bytes() const { return count; }
+  bool error;
+private:
+  FILE* file;
+  size_t count;
+};
+#endif
+
+class RCmemdecoder : public RCdecoder {
+public:
+  RCmemdecoder(const void* buffer) : RCdecoder(), error(false), ptr((const unsigned char*)buffer), begin(ptr) {}
+  unsigned getbyte() { return *ptr++; }
+  size_t bytes() const { return ptr - begin; }
+  bool error;
+private:
+  const unsigned char* ptr;
+  const unsigned char* const begin;
+};
+
+#endif
diff --git a/src/fpzip/write.cpp b/src/fpzip/write.cpp
new file mode 100644
index 0000000..022b53e
--- /dev/null
+++ b/src/fpzip/write.cpp
@@ -0,0 +1,339 @@
+#include <cstdio>
+#include <cstdlib>
+#include "pcencoder.h"
+#include "rcqsmodel.h"
+#include "front.h"
+#include "fpzip.h"
+#include "codec.h"
+#include "write.h"
+
+#if FPZIP_FP == FPZIP_FP_FAST || FPZIP_FP == FPZIP_FP_SAFE
+// compress 3D array at specified precision using floating-point arithmetic
+template <typename T, unsigned bits>
+static void
+compress3d(
+  RCencoder* re,   // entropy encoder
+  const T*   data, // flattened 3D array to compress
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz    // number of z samples
+)
+{
+  // initialize compressor
+  typedef PCmap<T, bits> MAP;
+  RCmodel* rm = new RCqsmodel(true, PCencoder<T, MAP>::symbols);
+  PCencoder<T, MAP>* fe = new PCencoder<T, MAP>(re, &rm);
+  FRONT<T> f(nx, ny);
+
+  // encode difference between predicted (p) and actual (a) value
+  unsigned x, y, z;
+  for (z = 0, f.advance(0, 0, 1); z < nz; z++)
+    for (y = 0, f.advance(0, 1, 0); y < ny; y++)
+      for (x = 0, f.advance(1, 0, 0); x < nx; x++) {
+        #if FPZIP_FP == FPZIP_FP_SAFE
+        volatile T p = f(1, 1, 1);
+        p += f(1, 0, 0);
+        p -= f(0, 1, 1);
+        p += f(0, 1, 0);
+        p -= f(1, 0, 1);
+        p += f(0, 0, 1);
+        p -= f(1, 1, 0);
+        #else
+        T p = f(1, 0, 0) - f(0, 1, 1) +
+              f(0, 1, 0) - f(1, 0, 1) +
+              f(0, 0, 1) - f(1, 1, 0) +
+              f(1, 1, 1);
+        #endif
+        T a = *data++;
+        a = fe->encode(a, p);
+        f.push(a);
+      }
+
+  delete fe;
+  delete rm;
+}
+#elif FPZIP_FP == FPZIP_FP_EMUL
+#include "fpe.h"
+// compress 3D array at specified precision using floating-point emulation
+template <typename T, unsigned bits>
+static void
+compress3d(
+  RCencoder* re,   // entropy encoder
+  const T*   data, // flattened 3D array to compress
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz    // number of z samples
+)
+{
+  // initialize compressor
+  typedef PCmap<T, bits> MAP;
+  typedef FPE<T> FLOAT;
+  RCmodel* rm = new RCqsmodel(true, PCencoder<T, MAP>::symbols);
+  PCencoder<T, MAP>* fe = new PCencoder<T, MAP>(re, &rm);
+  FRONT<FLOAT> f(nx, ny);
+
+  // encode difference between predicted (p) and actual (a) value
+  unsigned x, y, z;
+  for (z = 0, f.advance(0, 0, 1); z < nz; z++)
+    for (y = 0, f.advance(0, 1, 0); y < ny; y++)
+      for (x = 0, f.advance(1, 0, 0); x < nx; x++) {
+        FLOAT p = f(1, 0, 0) - f(0, 1, 1) +
+                  f(0, 1, 0) - f(1, 0, 1) +
+                  f(0, 0, 1) - f(1, 1, 0) +
+                  f(1, 1, 1);
+        T a = *data++;
+        a = fe->encode(a, T(p));
+        f.push(a);
+      }
+
+  delete fe;
+  delete rm;
+}
+#else // FPZIP_FP_INT
+// compress 3D array at specified precision using integer arithmetic
+template <typename T, unsigned bits>
+static void
+compress3d(
+  RCencoder* re,   // entropy encoder
+  const T*   data, // flattened 3D array to compress
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz    // number of z samples
+)
+{
+  // initialize compressor
+  typedef PCmap<T, bits> TMAP;
+  typedef typename TMAP::RANGE U;
+  typedef PCmap<U, bits, U> UMAP;
+  RCmodel* rm = new RCqsmodel(true, PCencoder<U, UMAP>::symbols);
+  PCencoder<U, UMAP>* fe = new PCencoder<U, UMAP>(re, &rm);
+  TMAP map;
+  FRONT<U> f(nx, ny, map.forward(0));
+
+  // encode difference between predicted (p) and actual (a) value
+  unsigned x, y, z;
+  for (z = 0, f.advance(0, 0, 1); z < nz; z++)
+    for (y = 0, f.advance(0, 1, 0); y < ny; y++)
+      for (x = 0, f.advance(1, 0, 0); x < nx; x++) {
+        U p = f(1, 0, 0) - f(0, 1, 1) +
+              f(0, 1, 0) - f(1, 0, 1) +
+              f(0, 0, 1) - f(1, 1, 0) +
+              f(1, 1, 1);
+        U a = map.forward(*data++);
+        a = fe->encode(a, p);
+        f.push(a);
+      }
+
+  delete fe;
+  delete rm;
+}
+#endif
+
+// compress p-bit float, 2p-bit double
+#define compress_case(p)\
+  case subsize(T, p):\
+    compress3d<T, subsize(T, p)>(re, data, nx, ny, nz);\
+    break
+
+// compress 4D array
+template <typename T>
+static bool
+compress4d(
+  RCencoder* re,   // entropy encoder
+  const T*   data, // flattened 4D array to compress
+  const int* prec, // per field desired precision
+  unsigned   nx,   // number of x samples
+  unsigned   ny,   // number of y samples
+  unsigned   nz,   // number of z samples
+  unsigned   nf    // number of fields
+)
+{
+  // compress one field at a time
+  for (unsigned i = 0; i < nf; i++) {
+    int bits = prec ? prec[i] : CHAR_BIT * (int)sizeof(T);
+    re->encode(bits, 32);
+    switch (bits) {
+      compress_case( 2);
+      compress_case( 3);
+      compress_case( 4);
+      compress_case( 5);
+      compress_case( 6);
+      compress_case( 7);
+      compress_case( 8);
+      compress_case( 9);
+      compress_case(10);
+      compress_case(11);
+      compress_case(12);
+      compress_case(13);
+      compress_case(14);
+      compress_case(15);
+      compress_case(16);
+      compress_case(17);
+      compress_case(18);
+      compress_case(19);
+      compress_case(20);
+      compress_case(21);
+      compress_case(22);
+      compress_case(23);
+      compress_case(24);
+      compress_case(25);
+      compress_case(26);
+      compress_case(27);
+      compress_case(28);
+      compress_case(29);
+      compress_case(30);
+      compress_case(31);
+      compress_case(32);
+      default:
+        fpzip_errno = fpzipErrorBadPrecision;
+        return false;
+    }
+    data += nx * ny * nz;
+  }
+  return true;
+}
+
+static void
+write_header(
+  RCencoder* re,
+  unsigned   nx,
+  unsigned   ny,
+  unsigned   nz,
+  unsigned   nf,
+  int        dp
+)
+{
+  // magic
+  re->encode((unsigned)'f', 8);
+  re->encode((unsigned)'p', 8);
+  re->encode((unsigned)'z', 8);
+  re->encode((unsigned)'\0', 8);
+
+  // format version
+  re->encode(FPZ_MAJ_VERSION, 16);
+  re->encode(FPZ_MIN_VERSION, 16);
+
+  // array dimensions
+  re->encode(nf, 32);
+  re->encode(nz, 32);
+  re->encode(ny, 32);
+  re->encode(nx, 32);
+
+  // single or double precision
+  re->encode(!!dp);
+}
+
+static bool
+fpzip_stream_write(
+  RCencoder*  re,   // entropy encoder
+  const void* data, // array to write
+  const int*  prec, // per field bits of precision
+  int         dp,   // double precision array if nonzero
+  unsigned    nx,   // number of x samples
+  unsigned    ny,   // number of y samples
+  unsigned    nz,   // number of z samples
+  unsigned    nf    // number of fields
+)
+{
+  write_header(re, nx, ny, nz, nf, dp);
+  bool status;
+  if (dp)
+    status = compress4d(re, (const double*)data, prec, nx, ny, nz, nf);
+  else
+    status = compress4d(re, (const float*)data, prec, nx, ny, nz, nf);
+  re->finish();
+  return status;
+}
+
+// compress and write a single or double precision 4D array to file
+size_t
+fpzip_file_write(
+  FILE*       file, // binary output stream
+  const void* data, // array to write
+  const int*  prec, // per field bits of precision
+  int         dp,   // double precision array if nonzero
+  unsigned    nx,   // number of x samples
+  unsigned    ny,   // number of y samples
+  unsigned    nz,   // number of z samples
+  unsigned    nf    // number of fields
+)
+{
+  fpzip_errno = fpzipSuccess;
+  size_t bytes = 0;
+  RCfileencoder* re = new RCfileencoder(file);
+  if (fpzip_stream_write(re, data, prec, dp, nx, ny, nz, nf)) {
+    re->flush();
+    if (re->error)
+      fpzip_errno = fpzipErrorWriteStream;
+    else
+      bytes = re->bytes();
+  }
+  delete re;
+  return bytes;
+}
+
+// compress and write a single or double precision 4D array to file
+size_t
+fpzip_memory_write(
+  void*       buffer, // pointer to compressed data
+  size_t      size,   // size of allocated storage
+  const void* data,   // array to write
+  const int*  prec,   // per field bits of precision
+  int         dp,     // double precision array if nonzero
+  unsigned    nx,     // number of x samples
+  unsigned    ny,     // number of y samples
+  unsigned    nz,     // number of z samples
+  unsigned    nf      // number of fields
+)
+{
+  fpzip_errno = fpzipSuccess;
+  size_t bytes = 0;
+  RCmemencoder* re = new RCmemencoder(buffer, size);
+  if (fpzip_stream_write(re, data, prec, dp, nx, ny, nz, nf)) {
+    if (re->error) {
+      if (!fpzip_errno)
+        fpzip_errno = fpzipErrorWriteStream;
+    }
+    else
+      bytes = re->bytes();
+  }
+  delete re;
+  return bytes;
+}
+
+// wrappers for fortran calls
+void
+fpzip_file_write_f(
+  const char* path, // path to output file
+  const void* data, // array to write
+  const int*  prec, // per field bits of precision
+  const int*  dp,   // double precision array if nonzero
+  const int*  nx,   // number of x samples
+  const int*  ny,   // number of y samples
+  const int*  nz,   // number of z samples
+  const int*  nf    // number of fields
+)
+{
+  FILE* file = fopen(path, "wb");
+  if (!file) {
+    fpzip_errno = fpzipErrorCreateFile;
+    return;
+  }
+  fpzip_file_write(file, data, prec, *dp, *nx, *ny, *nz, *nf);
+  fclose(file);
+}
+
+void
+fpzip_file_write_f_(
+  const char* path, // path to output file
+  const void* data, // array to write
+  const int*  prec, // per field bits of precision
+  const int*  dp,   // double precision array if nonzero
+  const int*  nx,   // number of x samples
+  const int*  ny,   // number of y samples
+  const int*  nz,   // number of z samples
+  const int*  nf    // number of fields
+)
+{
+  fpzip_file_write_f(path, data, dp, prec, nx, ny, nz, nf);
+}
diff --git a/src/fpzip/write.h b/src/fpzip/write.h
new file mode 100644
index 0000000..d4db094
--- /dev/null
+++ b/src/fpzip/write.h
@@ -0,0 +1,77 @@
+#ifndef FPZIP_WRITE_H
+#define FPZIP_WRITE_H
+
+#include <fpzip.h>
+
+#define subsize(T, n) (CHAR_BIT * sizeof(T) * (n) / 32)
+
+// file writer for compressed data
+#if FPZIP_BLOCK_SIZE > 1
+class RCfileencoder : public RCencoder {
+public:
+  RCfileencoder(FILE* file) : RCencoder(), error(false), file(file), count(0), size(0) {}
+  ~RCfileencoder() { flush(); }
+  void putbyte(unsigned byte)
+  {
+    if (size == FPZIP_BLOCK_SIZE)
+      flush();
+    buffer[size++] = (unsigned char)byte;
+  }
+  void flush()
+  {
+    if (fwrite(buffer, 1, size, file) != size)
+      error = true;
+    else
+      count += size;
+    size = 0;
+  }
+  size_t bytes() const { return count; }
+  bool error;
+private:
+  FILE* file;
+  size_t count;
+  size_t size;
+  unsigned char buffer[FPZIP_BLOCK_SIZE];
+};
+#else
+class RCfileencoder : public RCencoder {
+public:
+  RCfileencoder(FILE* file) : RCencoder(), error(false), file(file), count(0) {}
+  void putbyte(unsigned byte)
+  {
+    if (fputc(byte, file) == EOF)
+      error = true;
+    else
+      count++;
+  }
+  void flush() {}
+  size_t bytes() const { return count; }
+  bool error;
+private:
+  FILE* file;
+  size_t count;
+};
+#endif
+
+// memory writer for compressed data
+class RCmemencoder : public RCencoder {
+public:
+  RCmemencoder(void* buffer, size_t size) : RCencoder(), error(false), ptr((unsigned char*)buffer), begin(ptr), end(ptr + size) {}
+  void putbyte(unsigned byte)
+  {
+    if (ptr == end) {
+      error = true;
+      fpzip_errno = fpzipErrorBufferOverflow;
+    }
+    else
+      *ptr++ = (unsigned char)byte;
+  }
+  size_t bytes() const { return ptr - begin; }
+  bool error;
+private:
+  unsigned char* ptr;
+  const unsigned char* const begin;
+  const unsigned char* const end;
+};
+
+#endif
diff --git a/src/hdf5_drv/H5FDsilo.c b/src/hdf5_drv/H5FDsilo.c
index c42f3ab..840dfd0 100644
--- a/src/hdf5_drv/H5FDsilo.c
+++ b/src/hdf5_drv/H5FDsilo.c
@@ -573,7 +573,7 @@ static void update_hotblock_stats(H5FD_silo_t *file, hsize_t id, int dir, float
         if (file->stats.num_hot_blocks == file->stats.max_hot_blocks)
         {
             int new_max = file->stats.max_hot_blocks * 2 + 1;
-            hbl = realloc(file->stats.hot_block_list, sizeof(silo_vfd_hot_block_stats_t)*new_max);
+            hbl = (silo_vfd_hot_block_stats_t *)realloc(file->stats.hot_block_list, sizeof(silo_vfd_hot_block_stats_t)*new_max);
             file->stats.max_hot_blocks = new_max;
             file->stats.hot_block_list = hbl;
         }
diff --git a/src/hdf5_drv/Makefile.in b/src/hdf5_drv/Makefile.in
index dc09c76..9eda7ae 100644
--- a/src/hdf5_drv/Makefile.in
+++ b/src/hdf5_drv/Makefile.in
@@ -182,6 +182,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -230,9 +231,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/hdf5_drv/silo_hdf5.c b/src/hdf5_drv/silo_hdf5.c
index 9e35dbf..6fd99ec 100644
--- a/src/hdf5_drv/silo_hdf5.c
+++ b/src/hdf5_drv/silo_hdf5.c
@@ -1,4 +1,5 @@
 /*
+                            hsize_t _size = 3;
 Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
 LLNL-CODE-425250.
 All rights reserved.
@@ -70,7 +71,7 @@ be used for advertising or product endorsement purposes.
 #include <stdio.h>
 #include "silo_hdf5_private.h"
 #include "H5FDsilo.h"
-#if defined(HAVE_HDF5_H) && defined(HAVE_LIBHDF5)
+#if defined(HAVE_HDF5_H) && defined(HAVE_LIBHDF5) /* [ */
 
 /* HZIP node order permuation vector construction.
    To construct a permutation vector, work backwards
@@ -215,6 +216,11 @@ static const unsigned SILO_HZIP_PERMUTATION[4] = {0,0,((unsigned) (0x00002130)),
 #define BASEDUP(S)       ((S)&&*(S)?db_FullName2BaseName(S):NULL)
 #define ALIGN(ADDR,N)   (((ADDR)+(N)-1)&~((N)-1))
 
+/* copies of equiv. symbols in H5LT library */
+#define db_hdf5_H5LT_FILE_IMAGE_OPEN_RW      0x0001
+#define db_hdf5_H5LT_FILE_IMAGE_DONT_COPY    0x0002
+#define db_hdf5_H5LT_FILE_IMAGE_DONT_RELEASE 0x0004
+
 /* useful macro for comparing HDF5 versions */
 #define HDF5_VERSION_GE(Maj,Min,Rel)  \
         (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE>=Rel)) || \
@@ -232,13 +238,39 @@ H5_VERS_INFO;
 /* some necessary forward declarations */
 PRIVATE int db_hdf5_fullname(DBfile_hdf5 *dbfile, char *name, char *full);
 PRIVATE int hdf2silo_type(hid_t type);
+PRIVATE int db_hdf5_WriteCKZ(DBfile *_dbfile, char const *vname, void const *var,
+              int const *dims, int ndims, int datatype, int nofilters);
+
+/* callbacks prototypes for file image ops */
+#if HDF5_VERSION_GE(1,8,9)
+PRIVATE void *image_malloc(size_t size, H5FD_file_image_op_t file_image_op, void *udata);
+PRIVATE void *image_memcpy(void *dest, const void *src, size_t size, H5FD_file_image_op_t file_image_op, void *udata);
+PRIVATE void *image_realloc(void *ptr, size_t size, H5FD_file_image_op_t file_image_op, void *udata);
+PRIVATE herr_t image_free(void *ptr, H5FD_file_image_op_t file_image_op, void *udata);
+PRIVATE void *udata_copy(void *udata);
+PRIVATE herr_t udata_free(void *udata);
+
+/* Data structure to pass application data to image file callbacks. */ 
+typedef struct {
+    void *app_image_ptr;	/* Pointer to application buffer */ 
+    size_t app_image_size;	/* Size of application buffer */
+    void *fapl_image_ptr;	/* Pointer to FAPL buffer */
+    size_t fapl_image_size;	/* Size of FAPL buffer */
+    int fapl_ref_count;		/* Reference counter for FAPL buffer */
+    void *vfd_image_ptr;	/* Pointer to VFD buffer */
+    size_t vfd_image_size;	/* Size of VFD buffer */
+    int vfd_ref_count;		/* Reference counter for VFD buffer */
+    unsigned flags;		/* Flags indicate how the file image will */
+                                /* be open */
+    int ref_count;		/* Reference counter on udata struct */
+} db_hdf5_H5LT_file_image_ud_t;
+#endif
 
 /* Symbolic constants used in calls to db_StringListToStringArray
    to indicate behavior. A '!' in front means to not perform the
    associated action. For HDF5 driver, we handle the slash swap
    on the 'names' member of multi-block objects only and we
    never skip first semicolon. */
-static int const        handleSlashSwap = 1;
 static int const        skipFirstSemicolon = 0;
 
 /* Use `float' for all memory floating point values? */
@@ -257,6 +289,7 @@ typedef struct silo_hdf5_comp_t {
 typedef struct DBcurve_mt {
     int                 npts;
     int                 guihide;
+    int                 coord_sys;
     char                xvarname[256];
     char                yvarname[256];
     char                label[256];
@@ -265,6 +298,7 @@ typedef struct DBcurve_mt {
     char                xunits[256];
     char                yunits[256];
     char                reference[256];
+    double              missing_value;
 } DBcurve_mt;
 static hid_t DBcurve_mt5 = -1;
 
@@ -292,6 +326,7 @@ typedef struct DBcsgmesh_mt {
     char           mrgtree_name[256];
     int            tv_connectivity;
     int            disjoint_mode;
+    char           alt_nodenum_vars[256];
 } DBcsgmesh_mt;
 static hid_t DBcsgmesh_mt5;
 
@@ -314,6 +349,7 @@ typedef struct DBcsgvar_mt {
     char           region_pnames[256];
     int            conserved;
     int            extensive;
+    double         missing_value;
 } DBcsgvar_mt;
 static hid_t DBcsgvar_mt5;
 
@@ -332,6 +368,7 @@ typedef struct DBcsgzonelist_mt {
     char           zonelist[256];
     char           regnames[256];
     char           zonenames[256];
+    char           alt_zonenum_vars[256];
 } DBcsgzonelist_mt;
 static hid_t DBcsgzonelist_mt5;
 
@@ -369,6 +406,10 @@ typedef struct DBquadmesh_mt {
     char                label[3][256];
     char                units[3][256];
     char                mrgtree_name[256];
+    char                ghost_node_labels[256];
+    char                ghost_zone_labels[256];
+    char                alt_nodenum_vars[256];
+    char                alt_zonenum_vars[256];
 } DBquadmesh_mt;
 static hid_t DBquadmesh_mt5;
 
@@ -400,6 +441,7 @@ typedef struct DBquadvar_mt {
     int                 conserved;
     int                 extensive;
     int                 centering;
+    double              missing_value;
 } DBquadvar_mt;
 static hid_t    DBquadvar_mt5;
 
@@ -430,6 +472,8 @@ typedef struct DBucdmesh_mt {
     int                 tv_connectivity;
     int                 disjoint_mode;
     int                 gnznodtype;
+    char                ghost_node_labels[256];
+    char                alt_nodenum_vars[256];
 } DBucdmesh_mt;
 static hid_t    DBucdmesh_mt5;
 
@@ -457,6 +501,7 @@ typedef struct DBucdvar_mt {
     char                region_pnames[256];
     int                 conserved;
     int                 extensive;
+    double              missing_value;
 } DBucdvar_mt;
 static hid_t    DBucdvar_mt5;
 
@@ -490,6 +535,8 @@ typedef struct DBzonelist_mt {
     char                shapetype[256];
     char                gzoneno[256];
     int                 gnznodtype;
+    char                ghost_zone_labels[256];
+    char                alt_zonenum_vars[256];
 } DBzonelist_mt;
 static hid_t    DBzonelist_mt5;
 
@@ -508,6 +555,8 @@ typedef struct DBphzonelist_mt {
     char                facelist[256];
     char                gzoneno[256];
     int                 gnznodtype;
+    char                ghost_zone_labels[256];
+    char                alt_zonenum_vars[256];
 } DBphzonelist_mt;
 static hid_t    DBphzonelist_mt5;
 
@@ -561,6 +610,8 @@ typedef struct DBmultimesh_mt {
     char                empty_list[256];
     int                 empty_cnt;
     int                 repr_block_idx;
+    char                alt_nodenum_vars[256];
+    char                alt_zonenum_vars[256];
 } DBmultimesh_mt;
 static hid_t    DBmultimesh_mt5;
 
@@ -605,6 +656,7 @@ typedef struct DBmultivar_mt {
     char                empty_list[256];
     int                 empty_cnt;
     int                 repr_block_idx;
+    double              missing_value;
 } DBmultivar_mt;
 static hid_t    DBmultivar_mt5;
 
@@ -696,13 +748,16 @@ typedef struct DBpointmesh_mt {
     char                units[3][256];
     char                gnodeno[256];
     char                mrgtree_name[256];
+    char                ghost_node_labels[256];
     int                 gnznodtype;
+    char                alt_nodenum_vars[256];
 } DBpointmesh_mt;
 static hid_t    DBpointmesh_mt5;
 
 typedef struct DBpointvar_mt {
     int                 nvals;
     int                 nels;
+    int                 ndims;
     int                 nspace;
     int                 origin;
     int                 min_index;
@@ -720,6 +775,7 @@ typedef struct DBpointvar_mt {
     char                region_pnames[256];
     int                 conserved;
     int                 extensive;
+    double              missing_value;
 } DBpointvar_mt;
 static hid_t    DBpointvar_mt5;
 
@@ -733,16 +789,6 @@ typedef struct DBcompoundarray_mt {
 } DBcompoundarray_mt;
 static hid_t    DBcompoundarray_mt5;
 
-typedef struct DBsil_mt {
-    char           tails[256];
-    char           heads[256];
-    int            nedges;
-
-    char           setnames[256];
-    int            nsets;
-} DBsil_mt;
-static hid_t    DBsil_mt5;
-
 typedef struct DBmrgtree_mt {
     /* from the DBmrgtree header struct */
     int            src_mesh_type;
@@ -778,7 +824,7 @@ typedef struct DBgroupelmap_mt {
 } DBgroupelmap_mt;
 static hid_t DBgroupelmap_mt5;
 
-typedef struct DBmrgvar {
+typedef struct DBmrgvar_mt {
     int nregns;
     int ncomps;
     int datatype;
@@ -899,7 +945,7 @@ static hid_t    P_ckrdprops = -1;
         if (_f && (_tmp_f=_f->T_##TYPE)>=0) {                                 \
             hid_t _f_ary = H5Tarray_create(_tmp_f, 1, &_size, NULL);          \
             db_hdf5_put_cmemb(_ft, #NAME, _f_off, 0, NULL, _f_ary);           \
-            _f_off += 3*H5Tget_size(_f_ary);                                  \
+            _f_off += H5Tget_size(_f_ary);                                    \
             H5Tclose(_f_ary);                                                 \
         }                                                                     \
     }                                                                         \
@@ -1192,14 +1238,14 @@ RegisterNodelist(DBfile_hdf5 *dbfile, char const *zlname, char const *meshname,
     zl->nzones = nzones;
     zl->nshapes = 1;
     zl->origin = origin;
-    zl->shapecnt = malloc(sizeof(int));
+    zl->shapecnt = (int *)malloc(sizeof(int));
     zl->shapecnt[0] = nzones;
-    zl->shapetype = malloc(sizeof(int));
+    zl->shapetype = (int *)malloc(sizeof(int));
     zl->shapetype[0] = ntopodims == 2 ? DB_ZONETYPE_QUAD : DB_ZONETYPE_HEX;
-    zl->shapesize = malloc(sizeof(int));
+    zl->shapesize = (int *)malloc(sizeof(int));
     zl->shapesize[0] = (1 << ntopodims); 
     zl->lnodelist = lnodelist;
-    zl->nodelist = malloc(snodelist);
+    zl->nodelist = (int *)malloc(snodelist);
     memcpy(zl->nodelist, nodelist, snodelist);
 
     for (i = 0; i < MAX_NODELIST_INFOS; i++)
@@ -1504,8 +1550,6 @@ db_hdf5_hzip_filter_op(unsigned int flags, size_t cd_nelmts,
             if (nnodes < 0) {hzip_node_close(stream); return early_retval;}
 
             hztype = hzip_node_type(stream);
-            if (hztype < 0) {hzip_node_close(stream); return early_retval;}
-
             new_buf_size = nnodes * sizeof_hztype(hztype);
             var = malloc(new_buf_size);
             if (var == 0) {hzip_node_close(stream); return early_retval;}
@@ -1556,7 +1600,7 @@ db_hdf5_hzip_filter_op(unsigned int flags, size_t cd_nelmts,
                 return early_retval;
             }
 
-            if (hzip_mesh_write(stream, *buf, nzones) < 0)
+            if (hzip_mesh_write(stream, (int *)(*buf), nzones) < 0)
             {
                 hzip_mesh_close(stream);
                 free(buffer); 
@@ -1691,7 +1735,6 @@ friendly_name(char const *base_name, char const *fmtstr, void const *val)
     return retval;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_file
  *
@@ -1717,7 +1760,6 @@ db_hdf5_file(DBfile *_dbfile)
     return dbfile->fid;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_cwg
  *
@@ -1743,7 +1785,6 @@ db_hdf5_cwg(DBfile *_dbfile)
     return dbfile->cwg;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_get_cmemb
  *
@@ -1788,7 +1829,6 @@ db_hdf5_get_cmemb(hid_t compound_type, int membno, int *ndims/*out*/,
     return type;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_put_cmemb
  *
@@ -1920,7 +1960,6 @@ hdf5_to_silo_error(char const *vname, char const *fname)
     db_perror((char*)vname, silo_error_code, (char*)fname);
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_init
  *
@@ -2041,6 +2080,7 @@ db_hdf5_init(void)
     STRUCT(DBcurve) {
         MEMBER_S(int,           npts);
         MEMBER_S(int,           guihide);
+        MEMBER_S(int,           coord_sys);
         MEMBER_S(str256,        xvarname);
         MEMBER_S(str256,        yvarname);
         MEMBER_S(str256,        label);
@@ -2049,6 +2089,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        xunits);
         MEMBER_S(str256,        yunits);
         MEMBER_S(str256,        reference);
+        MEMBER_S(double,        missing_value);
     } DEFINE;
 
     STRUCT(DBcsgmesh) {
@@ -2075,6 +2116,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        mrgtree_name);
         MEMBER_S(int,           tv_connectivity);
         MEMBER_S(int,           disjoint_mode);
+        MEMBER_S(str256,        alt_nodenum_vars);
     } DEFINE;
 
     STRUCT(DBcsgvar) {
@@ -2096,6 +2138,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        region_pnames);
         MEMBER_S(int,           conserved);
         MEMBER_S(int,           extensive);
+        MEMBER_S(double,        missing_value);
     } DEFINE;
 
     STRUCT(DBcsgzonelist) {
@@ -2113,6 +2156,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        zonelist);
         MEMBER_S(str256,        regnames);
         MEMBER_S(str256,        zonenames);
+        MEMBER_S(str256,        alt_zonenum_vars);
     } DEFINE;
 
     STRUCT(DBdefvars) {
@@ -2148,6 +2192,10 @@ db_hdf5_init(void)
         MEMBER_R(str256,        label,          3);
         MEMBER_R(str256,        units,          3);
         MEMBER_S(str256,        mrgtree_name);
+        MEMBER_S(str256,        ghost_node_labels);
+        MEMBER_S(str256,        ghost_zone_labels);
+        MEMBER_S(str256,        alt_nodenum_vars);
+        MEMBER_S(str256,        alt_zonenum_vars);
     } DEFINE;
     
     STRUCT(DBquadvar) {
@@ -2178,6 +2226,7 @@ db_hdf5_init(void)
         MEMBER_S(int,           conserved);
         MEMBER_S(int,           extensive);
         MEMBER_S(int,           centering);
+        MEMBER_S(double,        missing_value);
     } DEFINE;
 
     STRUCT(DBucdmesh) {
@@ -2207,6 +2256,8 @@ db_hdf5_init(void)
         MEMBER_S(int,           tv_connectivity);
         MEMBER_S(int,           disjoint_mode);
         MEMBER_S(int,           gnznodtype);
+        MEMBER_S(str256,        ghost_node_labels);
+        MEMBER_S(str256,        alt_nodenum_vars);
     } DEFINE;
     
     STRUCT(DBucdvar) {
@@ -2233,6 +2284,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        region_pnames);
         MEMBER_S(int,           conserved);
         MEMBER_S(int,           extensive);
+        MEMBER_S(double,        missing_value);
     } DEFINE;
 
     STRUCT(DBfacelist) {
@@ -2264,6 +2316,8 @@ db_hdf5_init(void)
         MEMBER_S(str256,        shapetype);
         MEMBER_S(str256,        gzoneno);
         MEMBER_S(int,           gnznodtype);
+        MEMBER_S(str256,        ghost_zone_labels);
+        MEMBER_S(str256,        alt_zonenum_vars);
     } DEFINE;
 
     STRUCT(DBphzonelist) {
@@ -2280,6 +2334,8 @@ db_hdf5_init(void)
         MEMBER_S(str256,        facecnt);
         MEMBER_S(str256,        facelist);
         MEMBER_S(int,           gnznodtype);
+        MEMBER_S(str256,        ghost_zone_labels);
+        MEMBER_S(str256,        alt_zonenum_vars);
     } DEFINE;
 
     STRUCT(DBmaterial) {
@@ -2331,6 +2387,8 @@ db_hdf5_init(void)
         MEMBER_S(str256,        empty_list);
         MEMBER_S(int,           empty_cnt);
         MEMBER_S(int,           repr_block_idx);
+        MEMBER_S(str256,        alt_nodenum_vars);
+        MEMBER_S(str256,        alt_zonenum_vars);
     } DEFINE;
 
     STRUCT(DBmultimeshadj) {
@@ -2373,6 +2431,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        empty_list);
         MEMBER_S(int,           empty_cnt);
         MEMBER_S(int,           repr_block_idx);
+        MEMBER_S(double,        missing_value);
     } DEFINE;
 
     STRUCT(DBmultimat) {
@@ -2461,11 +2520,14 @@ db_hdf5_init(void)
         MEMBER_S(str256,        gnodeno);
         MEMBER_S(str256,        mrgtree_name);
         MEMBER_S(int,           gnznodtype);
+        MEMBER_S(str256,        ghost_node_labels);
+        MEMBER_S(str256,        alt_nodenum_vars);
     } DEFINE;
 
     STRUCT(DBpointvar) {
         MEMBER_S(int,           nvals);
         MEMBER_S(int,           nels);
+        MEMBER_S(int,           ndims);
         MEMBER_S(int,           nspace);
         MEMBER_S(int,           origin);
         MEMBER_S(int,           min_index);
@@ -2483,6 +2545,7 @@ db_hdf5_init(void)
         MEMBER_S(str256,        region_pnames);
         MEMBER_S(int,           conserved);
         MEMBER_S(int,           extensive);
+        MEMBER_S(double,        missing_value);
     } DEFINE;
 
     STRUCT(DBcompoundarray) {
@@ -2494,15 +2557,6 @@ db_hdf5_init(void)
         MEMBER_S(str256,        elemlengths);
     } DEFINE;
 
-    STRUCT(DBsil) {
-        MEMBER_S(str256,        tails);
-        MEMBER_S(str256,        heads);
-        MEMBER_S(int,           nedges);
-
-        MEMBER_S(str256,        setnames);
-        MEMBER_S(int,           nsets);
-    } DEFINE;
-
     STRUCT(DBmrgtree) {
         MEMBER_S(int,           src_mesh_type);
         MEMBER_S(int,           type_info_bits);
@@ -2546,7 +2600,6 @@ db_hdf5_init(void)
 
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_InitCallbacks
  *
@@ -2643,7 +2696,6 @@ db_hdf5_InitCallbacks(DBfile_hdf5 *dbfile, int target)
     dbfile->pub.cd = db_hdf5_SetDir;
     dbfile->pub.g_dir = db_hdf5_GetDir;
     dbfile->pub.newtoc = db_hdf5_NewToc;
-    dbfile->pub.cdid = NULL;            /*DBSetDirID() not supported    */
     dbfile->pub.mkdir = db_hdf5_MkDir;
     dbfile->pub.cpdir = db_hdf5_CpDir;
 
@@ -2653,9 +2705,6 @@ db_hdf5_InitCallbacks(DBfile_hdf5 *dbfile, int target)
     dbfile->pub.g_varbl = db_hdf5_GetVarByteLength;
     dbfile->pub.g_vartype = db_hdf5_GetVarType;
     dbfile->pub.g_vardims = db_hdf5_GetVarDims;
-    dbfile->pub.r_var1 = NULL;          /*DBReadVar1() not supported    */
-    dbfile->pub.g_attr = NULL;          /*DBGetAtt() not implemented yet*/
-    dbfile->pub.r_att = NULL;           /*DBReadAtt() not implemented yet*/
 
     /* Variable I/O operations */
     dbfile->pub.g_var = db_hdf5_GetVar;
@@ -2667,7 +2716,7 @@ db_hdf5_InitCallbacks(DBfile_hdf5 *dbfile, int target)
     /* Low-level object functions */
     dbfile->pub.g_obj = db_hdf5_GetObject;
     dbfile->pub.inqvartype = db_hdf5_InqVarType;
-    dbfile->pub.i_meshtype = (int (*)(struct DBfile *, char *)) db_hdf5_InqVarType; /*yes, Vartype*/
+    dbfile->pub.i_meshtype = (int (*)(struct DBfile *, char const *)) db_hdf5_InqVarType; /*yes, Vartype*/
     dbfile->pub.i_meshname = db_hdf5_InqMeshName;
     dbfile->pub.g_comp = db_hdf5_GetComponent;
     dbfile->pub.g_comptyp = db_hdf5_GetComponentType;
@@ -2758,7 +2807,6 @@ db_hdf5_InitCallbacks(DBfile_hdf5 *dbfile, int target)
     dbfile->pub.sort_obo = db_hdf5_SortObjectsByOffset;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    build_fspace
  *
@@ -2790,7 +2838,7 @@ db_hdf5_InitCallbacks(DBfile_hdf5 *dbfile, int target)
  *-------------------------------------------------------------------------
  */
 PRIVATE hid_t
-build_fspace(hid_t dset, int ndims, int *offset, int *length, int *stride,
+build_fspace(hid_t dset, int ndims, int const *offset, int const *length, int const *stride,
              hsize_t *size/*out*/)
 {
     hid_t       fspace = -1;
@@ -2820,7 +2868,6 @@ build_fspace(hid_t dset, int ndims, int *offset, int *length, int *stride,
     return fspace;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    silom2hdfm_type
  *
@@ -2879,7 +2926,6 @@ silom2hdfm_type(int datatype)
     return mtype;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    silof2hdff_type
  *
@@ -2937,7 +2983,6 @@ silof2hdff_type(DBfile_hdf5 *dbfile, int datatype)
     return ftype;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    hdf2silo_type
  *
@@ -2996,7 +3041,6 @@ hdf2silo_type(hid_t type)
     return retval;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    silo2silo_type
  *
@@ -3031,7 +3075,6 @@ silo2silo_type(int datatype)
     return DB_FLOAT;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    hdf2hdf_type
  *
@@ -3470,7 +3513,7 @@ PRIVATE int
 db_hdf5_get_comp_var(hid_t fileid, char const *name, hsize_t *nelmts,
     size_t *elsize, hid_t *datatype, void **buf)
 {
-    hid_t typeid = -1, stypeid = -1, attr = -1, comptype = -1, memtype = -1;
+    hid_t type_id = -1, stypeid = -1, attr = -1, comptype = -1, memtype = -1;
     int membno = -1;
     int retval = 0;
     hsize_t numvals = 0;
@@ -3479,17 +3522,17 @@ db_hdf5_get_comp_var(hid_t fileid, char const *name, hsize_t *nelmts,
     /* loop trying different typename, member name combinations */
     char *tmpname = STRDUP(name);
     char *p = strrchr(tmpname, '_');
-    char *typename, *memname;
+    char *type_name, *memname;
     while (p != 0 && *p != '\0')
     {
         char *tmpp = p;
         *p = '\0';
-        typename = tmpname;
+        type_name = tmpname;
         memname = p+1;
 
-        stypeid = attr = typeid = -1;
-        if ((typeid=H5Topen(fileid, typename))>=0 &&
-            (attr=H5Aopen_name(typeid, "silo"))>=0 &&
+        stypeid = attr = type_id = -1;
+        if ((type_id=H5Topen(fileid, type_name))>=0 &&
+            (attr=H5Aopen_name(type_id, "silo"))>=0 &&
             (stypeid=H5Aget_type(attr))>=0 &&
             (membno=H5Tget_member_index(stypeid, memname))>=0)
             retval = 1;
@@ -3498,7 +3541,7 @@ db_hdf5_get_comp_var(hid_t fileid, char const *name, hsize_t *nelmts,
 
         if (attr != -1) H5Aclose(attr);
         if (stypeid != -1) H5Tclose(stypeid);
-        if (typeid != -1) H5Tclose(typeid);
+        if (type_id != -1) H5Tclose(type_id);
 
         p = strrchr(tmpname, '_');
         *tmpp = '_';
@@ -3615,13 +3658,12 @@ db_hdf5_get_comp_var(hid_t fileid, char const *name, hsize_t *nelmts,
                     if (*buf == 0)
                     {
                         *buf = malloc(n);
-                        buf_was_allocated = 1;
                     }
                     else if (buf_was_allocated)
                     {
                         *buf = realloc(*buf, n);
                     }
-                    strncpy(*buf, tmp, n);
+                    strncpy((char *)(*buf), tmp, n);
                     valsize = n;
                 }
             }
@@ -3645,7 +3687,7 @@ db_hdf5_get_comp_var(hid_t fileid, char const *name, hsize_t *nelmts,
 
     if (attr != -1)    H5Aclose(attr);
     if (stypeid != -1) H5Tclose(stypeid);
-    if (typeid != -1)  H5Tclose(typeid);
+    if (type_id != -1)  H5Tclose(type_id);
 
     FREE(tmpname);
     return retval;
@@ -3824,14 +3866,13 @@ load_toc(hid_t grp, char const *name, void *_toc)
     /* Append to table of contents */
     if (names && nvals) {
         n = (*nvals)++;
-        *names = realloc(*names, *nvals*sizeof(char*));
+        *names = (char **)realloc(*names, *nvals*sizeof(char*));
         (*names)[n] = STRDUP(name);
     }
 
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    find_objno
  *
@@ -3933,7 +3974,6 @@ db_hdf5_handle_ctdt(DBfile_hdf5 *dbfile, int ts, float t, int dts, double dt, in
     H5E_END_TRY;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_compname
  *
@@ -4003,7 +4043,6 @@ db_hdf5_compname(DBfile_hdf5 *dbfile, char name[8]/*out*/)
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_compwrz
  *
@@ -4248,7 +4287,6 @@ db_hdf5_compckz(DBfile_hdf5 *dbfile, char *name)
     return retval;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_comprd
  *
@@ -4333,7 +4371,7 @@ db_hdf5_comprd(DBfile_hdf5 *dbfile, char *name, int ignore_force_single)
                 float *newbuf;
 
                 /* allocate a new buffer */
-                if (NULL==(newbuf=malloc(nelmts*sizeof(float)))) {
+                if (NULL==(newbuf=(float*)malloc(nelmts*sizeof(float)))) {
                     db_perror(name, E_NOMEM, me);
                     UNWIND();
                 }
@@ -4460,7 +4498,6 @@ db_hdf5_fullname(DBfile_hdf5 *dbfile, char *name, char *full/*out*/)
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_hdrwr
  *
@@ -4554,7 +4591,6 @@ db_hdf5_hdrwr(DBfile_hdf5 *dbfile, char *name, hid_t mtype, hid_t ftype,
 }
 
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_ForceSingle
  *
@@ -4603,7 +4639,7 @@ db_hdf5_ForceSingle(int status)
  *-------------------------------------------------------------------------
  */
 PRIVATE hid_t
-db_hdf5_process_file_options(opts_set_id)
+db_hdf5_process_file_options(int opts_set_id, int mode)
 {
     static char *me = "db_hdf5_process_file_options";
     hid_t retval = H5Pcreate(H5P_FILE_ACCESS);
@@ -4684,8 +4720,8 @@ db_hdf5_process_file_options(opts_set_id)
         /* default HDF5 split file driver. */
         case DB_FILE_OPTS_H5_DEFAULT_SPLIT:
         {
-            hid_t meta_fapl = db_hdf5_process_file_options(DB_FILE_OPTS_H5_DEFAULT_CORE);
-            hid_t raw_fapl = db_hdf5_process_file_options(DB_FILE_OPTS_H5_DEFAULT_DEFAULT);
+            hid_t meta_fapl = db_hdf5_process_file_options(DB_FILE_OPTS_H5_DEFAULT_CORE, mode);
+            hid_t raw_fapl = db_hdf5_process_file_options(DB_FILE_OPTS_H5_DEFAULT_DEFAULT, mode);
             h5status |= H5Pset_fapl_split(retval, "", meta_fapl, "-raw", raw_fapl);
             H5Pclose(meta_fapl);
             H5Pclose(raw_fapl);
@@ -4709,7 +4745,7 @@ db_hdf5_process_file_options(opts_set_id)
         /* default HDF5 family driver w/1Gig (2^30) members. */
         case DB_FILE_OPTS_H5_DEFAULT_FAMILY:
         {
-            hid_t memb_fapl = db_hdf5_process_file_options(DB_FILE_OPTS_H5_DEFAULT_DEFAULT);
+            hid_t memb_fapl = db_hdf5_process_file_options(DB_FILE_OPTS_H5_DEFAULT_DEFAULT, mode);
             h5status |= H5Pset_fapl_family(retval, (1<<30), memb_fapl);
             H5Pclose(memb_fapl);
             break;
@@ -4757,11 +4793,11 @@ db_hdf5_process_file_options(opts_set_id)
             }
 
             /* get the vfd specification */
-            if (p = DBGetOption(opts, DBOPT_H5_VFD))
+            if ((p = DBGetOption(opts, DBOPT_H5_VFD)))
             {
                 vfd = *((int*)p);
             }
-            else if (p = DBGetOption(opts, DBOPT_H5_USER_DRIVER_ID))
+            else if ((p = DBGetOption(opts, DBOPT_H5_USER_DRIVER_ID)))
             {
                 int new_driver_id = *((int*)p);
                 p = DBGetOption(opts, DBOPT_H5_USER_DRIVER_INFO);
@@ -4799,13 +4835,13 @@ db_hdf5_process_file_options(opts_set_id)
                     int log_stats = H5FD_SILO_DEFAULT_LOG_STATS;
                     int use_direct = H5FD_SILO_DEFAULT_USE_DIRECT;
 
-                    if (p = DBGetOption(opts, DBOPT_H5_SILO_BLOCK_SIZE))
+                    if ((p = DBGetOption(opts, DBOPT_H5_SILO_BLOCK_SIZE)))
                         block_size = (hsize_t) (*((int*) p));
-                    if (p = DBGetOption(opts, DBOPT_H5_SILO_BLOCK_COUNT))
+                    if ((p = DBGetOption(opts, DBOPT_H5_SILO_BLOCK_COUNT)))
                         block_count = *((int*) p);
-                    if (p = DBGetOption(opts, DBOPT_H5_SILO_LOG_STATS))
+                    if ((p = DBGetOption(opts, DBOPT_H5_SILO_LOG_STATS)))
                         log_stats = *((int*) p);
-                    if (p = DBGetOption(opts, DBOPT_H5_SILO_USE_DIRECT))
+                    if ((p = DBGetOption(opts, DBOPT_H5_SILO_USE_DIRECT)))
                         use_direct = *((int*) p);
 
                     h5status |= H5Pset_fapl_silo(retval);
@@ -4824,10 +4860,10 @@ db_hdf5_process_file_options(opts_set_id)
                     int flags = H5FD_LOG_LOC_IO|H5FD_LOG_NUM_IO|H5FD_LOG_TIME_IO|H5FD_LOG_ALLOC;
                     char *logname = "silo_hdf5_log.out";
 
-                    if (p = DBGetOption(opts, DBOPT_H5_LOG_NAME))
+                    if ((p = DBGetOption(opts, DBOPT_H5_LOG_NAME)))
                         logname = (char*) p;
 
-                    if (p = DBGetOption(opts, DBOPT_H5_LOG_BUF_SIZE))
+                    if ((p = DBGetOption(opts, DBOPT_H5_LOG_BUF_SIZE)))
                     {
                         bufsize = *((int*) p);
                         flags = H5FD_LOG_ALL;
@@ -4837,19 +4873,89 @@ db_hdf5_process_file_options(opts_set_id)
                     break;
                 }
                 case DB_H5VFD_CORE:
+                case DB_H5VFD_FIC:
                 {
                     int inc = 1<<20; /* default of 1 Meg */
                     hbool_t bs = TRUE; /* default back store on */
 
                     /* get core allocation inc */
-                    if (p = DBGetOption(opts, DBOPT_H5_CORE_ALLOC_INC))
+                    if ((p = DBGetOption(opts, DBOPT_H5_CORE_ALLOC_INC)))
                         inc = *((int*)p);
 
                     /* get backing store flag */
-                    if (p = DBGetOption(opts, DBOPT_H5_CORE_NO_BACK_STORE))
+                    if ((p = DBGetOption(opts, DBOPT_H5_CORE_NO_BACK_STORE)))
                         bs = FALSE;
 
                     h5status |= H5Pset_fapl_core(retval, inc, bs);
+
+                    /* Set up the file image too */
+                    if (vfd == DB_H5VFD_FIC)
+                    {
+#if HDF5_VERSION_GE(1,8,9)
+                        H5FD_file_image_callbacks_t callbacks = {&image_malloc, &image_memcpy,
+                                                                 &image_realloc, &image_free,
+                                                                 &udata_copy, &udata_free,
+                                                                 (void *)NULL};
+                        db_hdf5_H5LT_file_image_ud_t *udata;
+
+                        /* no possible default values can be specified for FIC */
+                        int size = -1;
+                        void *buf = 0;
+
+                        /* cannot use backing store in this case */
+                        h5status |= H5Pset_fapl_core(retval, inc, FALSE);
+
+                        /* get file image size */
+                        if ((p = DBGetOption(opts, DBOPT_H5_FIC_SIZE)))
+                            size = *((int*)p);
+                        else
+                        {
+                            H5Pclose(retval);
+                            return db_perror("To use DB_H5VFD_FIC, you must specific DBOPT_H5_FIC_SIZE", E_BADARGS, me);
+                        }
+
+                        /* get file image buffer pointer */
+                        if ((p = DBGetOption(opts, DBOPT_H5_FIC_BUF)))
+                            buf = (void*)p;
+                        else
+                        {
+                            H5Pclose(retval);
+                            return db_perror("To use DB_H5VFD_FIC, you must specific DBOPT_H5_FIC_BUF", E_BADARGS, me);
+                        }
+
+                        /* Allocate buffer to communicate user data to callbacks */
+                        if (NULL == (udata = (db_hdf5_H5LT_file_image_ud_t *)malloc(sizeof(db_hdf5_H5LT_file_image_ud_t))))
+                        {
+                            H5Pclose(retval);
+                            return db_perror("Unable to allocate udata for FIC VFD", E_CALLFAIL, me);
+                        }
+
+                        /* Initialize udata with info about app buffer containing file image  and flags */
+                        udata->app_image_ptr = buf;
+                        udata->app_image_size = size;
+                        udata->fapl_image_ptr = NULL;
+                        udata->fapl_image_size = 0;
+                        udata->fapl_ref_count = 0;
+                        udata->vfd_image_ptr = NULL;
+                        udata->vfd_image_size = 0;
+                        udata->vfd_ref_count = 0;
+                        udata->flags = db_hdf5_H5LT_FILE_IMAGE_DONT_COPY;
+                        udata->ref_count = 1; /* corresponding to the first FAPL */
+
+                        /* copy address of udata into callbacks */
+                        callbacks.udata = (void *)udata;
+
+                        /* Set file image callbacks */
+                        h5status |= H5Pset_file_image_callbacks(retval, &callbacks);
+
+                        /* Assign file image in user buffer to FAPL */
+                        h5status |= H5Pset_file_image(retval, buf, (size_t)size);
+#else
+                        H5Pclose(retval);
+                        return db_perror("DB_H5VFD_FIC >= HDF5 1.8.9", E_NOTENABLEDINBUILD, me);
+#endif
+                    }
+
                     break;
                 }
                 case DB_H5VFD_DIRECT:
@@ -4860,29 +4966,29 @@ db_hdf5_process_file_options(opts_set_id)
                     int align_min, align_val;
     
                     /* get direct block size */ 
-                    if (p = DBGetOption(opts, DBOPT_H5_DIRECT_BLOCK_SIZE))
+                    if ((p = DBGetOption(opts, DBOPT_H5_DIRECT_BLOCK_SIZE)))
                         direct_block_size = *((int*)p);
 
                     /* get direct alignment */ 
-                    if (p = DBGetOption(opts, DBOPT_H5_DIRECT_MEM_ALIGN))
+                    if ((p = DBGetOption(opts, DBOPT_H5_DIRECT_MEM_ALIGN)))
                         direct_alignment = *((int*)p);
                     else
                         direct_alignment = direct_block_size;
 
                     /* get direct buffer size */ 
-                    if (p = DBGetOption(opts, DBOPT_H5_DIRECT_BUF_SIZE))
+                    if ((p = DBGetOption(opts, DBOPT_H5_DIRECT_BUF_SIZE)))
                         direct_cbuf_size = *((int*)p);
                     else
                         direct_cbuf_size = direct_block_size * 256;
 
                     /* get overall alignment threshold */ 
-                    if (p = DBGetOption(opts, DBOPT_H5_ALIGN_MIN))
+                    if ((p = DBGetOption(opts, DBOPT_H5_ALIGN_MIN)))
                         align_min = *((int*)p);
                     else
                         align_min = direct_block_size / 2;
 
                     /* get overall alignment value */ 
-                    if (p = DBGetOption(opts, DBOPT_H5_ALIGN_VAL))
+                    if ((p = DBGetOption(opts, DBOPT_H5_ALIGN_VAL)))
                         align_val = *((int*)p);
                     else
                         align_val = direct_block_size;
@@ -4904,25 +5010,25 @@ db_hdf5_process_file_options(opts_set_id)
                     hid_t meta_fapl = -1, raw_fapl = -1;
 
                     /* get meta opts_set_id */
-                    if (p = DBGetOption(opts, DBOPT_H5_META_FILE_OPTS))
+                    if ((p = DBGetOption(opts, DBOPT_H5_META_FILE_OPTS)))
                         meta_opts_set_id = *((int*)p);
 
                     /* get meta fapl from opts_set_id */
-                    meta_fapl = db_hdf5_process_file_options(meta_opts_set_id);
+                    meta_fapl = db_hdf5_process_file_options(meta_opts_set_id, mode);
 
                     /* get meta extension */
-                    if (p = DBGetOption(opts, DBOPT_H5_META_EXTENSION))
+                    if ((p = DBGetOption(opts, DBOPT_H5_META_EXTENSION)))
                         mext = (char *) p;
 
                     /* get raw opts_set_id */
-                    if (p = DBGetOption(opts, DBOPT_H5_RAW_FILE_OPTS))
+                    if ((p = DBGetOption(opts, DBOPT_H5_RAW_FILE_OPTS)))
                         raw_opts_set_id = *((int*)p);
 
                     /* get raw fapl from opts_set_id */
-                    raw_fapl = db_hdf5_process_file_options(raw_opts_set_id);
+                    raw_fapl = db_hdf5_process_file_options(raw_opts_set_id, mode);
 
                     /* get raw extension */
-                    if (p = DBGetOption(opts, DBOPT_H5_RAW_EXTENSION))
+                    if ((p = DBGetOption(opts, DBOPT_H5_RAW_EXTENSION)))
                         rext = (char *) p;
 
                     /* make sure the exentions are not identical */
@@ -4947,11 +5053,11 @@ db_hdf5_process_file_options(opts_set_id)
                     hbool_t use_gpfs_hints = TRUE;
 
                     /* get the communicator */
-                    if (p = DBGetOption(opts, DBOPT_H5_MPIO_COMM))
+                    if ((p = DBGetOption(opts, DBOPT_H5_MPIO_COMM)))
                         mpi_comm = *((MPI_Comm *)p);
 
                     /* get the info */
-                    if (p = DBGetOption(opts, DBOPT_H5_MPIO_INFO))
+                    if ((p = DBGetOption(opts, DBOPT_H5_MPIO_INFO)))
                         mpi_info = *((MPI_Info *)p);
                     else
                     {
@@ -4960,7 +5066,7 @@ db_hdf5_process_file_options(opts_set_id)
                     }
 
                     /* get use_gpfs_hints flag */
-                    if (p = DBGetOption(opts, DBOPT_H5_MPIP_NO_GPFS_HINTS))
+                    if ((p = DBGetOption(opts, DBOPT_H5_MPIP_NO_GPFS_HINTS)))
                         use_gpfs_hints = FALSE;
 
                     if (vfd == DB_H5VFD_MPIO)
@@ -4985,66 +5091,66 @@ db_hdf5_process_file_options(opts_set_id)
                     hid_t memb_fapl;
 
                     /* get size of files in family */
-                    if (p = DBGetOption(opts, DBOPT_H5_FAM_SIZE))
+                    if ((p = DBGetOption(opts, DBOPT_H5_FAM_SIZE)))
                         memb_size = *((int*)p);
 
                     /* get underlying family fapl */
-                    if (p = DBGetOption(opts, DBOPT_H5_FAM_FILE_OPTS))
+                    if ((p = DBGetOption(opts, DBOPT_H5_FAM_FILE_OPTS)))
                         memb_opts_set_id = *((int*)p);
 
-                    memb_fapl = db_hdf5_process_file_options(memb_opts_set_id);
+                    memb_fapl = db_hdf5_process_file_options(memb_opts_set_id, mode);
                     h5status |= H5Pset_fapl_family(retval, memb_size, memb_fapl);
                     H5Pclose(memb_fapl);
                 }
             }
 
             /* handle overall alignment requests */
-            if (p = DBGetOption(opts, DBOPT_H5_ALIGN_MIN))
+            if ((p = DBGetOption(opts, DBOPT_H5_ALIGN_MIN)))
             {
                 int align_min = *((int*)p);
                 int align_val = align_min * 2;
 
                 /* get overall alignment value */ 
-                if (p = DBGetOption(opts, DBOPT_H5_ALIGN_VAL))
+                if ((p = DBGetOption(opts, DBOPT_H5_ALIGN_VAL)))
                     align_val = *((int*)p);
 
                 h5status |= H5Pset_alignment(retval, align_min, align_val); 
             }
 
             /* handle meta block size */
-            if (p = DBGetOption(opts, DBOPT_H5_META_BLOCK_SIZE))
+            if ((p = DBGetOption(opts, DBOPT_H5_META_BLOCK_SIZE)))
             {
                 int size = *((int*)p);
                 h5status |= H5Pset_meta_block_size(retval, size);
             }
 
             /* handle raw block size */
-            if (p = DBGetOption(opts, DBOPT_H5_SMALL_RAW_SIZE))
+            if ((p = DBGetOption(opts, DBOPT_H5_SMALL_RAW_SIZE)))
             {
                 int size = *((int*)p);
                 h5status |= H5Pset_small_data_block_size(retval, size);
             }
 
             /* handle sieve buffer size */
-            if (p = DBGetOption(opts, DBOPT_H5_SIEVE_BUF_SIZE))
+            if ((p = DBGetOption(opts, DBOPT_H5_SIEVE_BUF_SIZE)))
             {
                 int size = *((int*)p);
                 h5status |= H5Pset_sieve_buf_size(retval, size);
             }
 
             /* handle cache settings */
-            if (p = DBGetOption(opts, DBOPT_H5_CACHE_NELMTS))
+            if ((p = DBGetOption(opts, DBOPT_H5_CACHE_NELMTS)))
             {
                 int nelmts = *((int*)p);
                 int nbytes = nelmts * sizeof(double);
                 double policy = 1.0;
 
                 /* get size in bytes */
-                if (p = DBGetOption(opts, DBOPT_H5_CACHE_NBYTES))
+                if ((p = DBGetOption(opts, DBOPT_H5_CACHE_NBYTES)))
                     nbytes = *((int*)p);
 
                 /* get pre-emption policy */
-                if (p = DBGetOption(opts, DBOPT_H5_CACHE_POLICY))
+                if ((p = DBGetOption(opts, DBOPT_H5_CACHE_POLICY)))
                     policy = *((double*)p);
 
                 h5status |= H5Pset_cache(retval, 0, nelmts, nbytes, policy);
@@ -5081,13 +5187,12 @@ db_hdf5_process_file_options(opts_set_id)
  *-------------------------------------------------------------------------
  */
 PRIVATE hid_t 
-db_hdf5_file_accprops(int subtype)
+db_hdf5_file_accprops(int subtype, int mode)
 {
     int opts_set_id = subtype & 0x0000003F;
-    return db_hdf5_process_file_options(opts_set_id);
+    return db_hdf5_process_file_options(opts_set_id, mode);
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_finish_open
  *
@@ -5160,7 +5265,6 @@ db_hdf5_finish_open(DBfile_hdf5 *dbfile)
     return (DBfile*) dbfile;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_finish_create
  *
@@ -5197,7 +5301,7 @@ db_hdf5_finish_open(DBfile_hdf5 *dbfile)
  *-------------------------------------------------------------------------
  */
 PRIVATE DBfile* 
-db_hdf5_finish_create(DBfile_hdf5 *dbfile, int target, char *finfo)
+db_hdf5_finish_create(DBfile_hdf5 *dbfile, int target, char const *finfo)
 {
     static char *me = "db_hdf5_finish_create";
     hid_t       attr=-1;
@@ -5268,7 +5372,6 @@ db_hdf5_finish_create(DBfile_hdf5 *dbfile, int target, char *finfo)
     return (DBfile*) dbfile;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_initiate_close
  *
@@ -5355,7 +5458,6 @@ db_hdf5_initiate_close(DBfile *_dbfile)
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_Open
  *
@@ -5388,7 +5490,7 @@ db_hdf5_initiate_close(DBfile *_dbfile)
  *-------------------------------------------------------------------------
  */
 INTERNAL DBfile *
-db_hdf5_Open(char *name, int mode, int opts_set_id)
+db_hdf5_Open(char const *name, int mode, int opts_set_id)
 {
     DBfile_hdf5 *dbfile=NULL;
     hid_t       fid=-1, faprops=-1;
@@ -5411,7 +5513,7 @@ db_hdf5_Open(char *name, int mode, int opts_set_id)
         return NULL;
     }
 
-    faprops = db_hdf5_file_accprops(opts_set_id); 
+    faprops = db_hdf5_file_accprops(opts_set_id, mode); 
 
     /* Open existing hdf5 file */
     if ((fid=H5Fopen(name, hmode, faprops))<0) {
@@ -5419,10 +5521,11 @@ db_hdf5_Open(char *name, int mode, int opts_set_id)
         db_perror(name, E_DRVRCANTOPEN, me);
         return NULL;
     }
+
     H5Pclose(faprops);
 
     /* Create silo file struct */
-    if (NULL==(dbfile=calloc(1, sizeof(DBfile_hdf5)))) {
+    if (NULL==(dbfile=(DBfile_hdf5*)calloc(1, sizeof(DBfile_hdf5)))) {
         db_perror(name, E_NOMEM, me);
         return NULL;
     }
@@ -5436,7 +5539,6 @@ db_hdf5_Open(char *name, int mode, int opts_set_id)
     return db_hdf5_finish_open(dbfile);
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_Create
  *
@@ -5468,7 +5570,7 @@ db_hdf5_Open(char *name, int mode, int opts_set_id)
  *-------------------------------------------------------------------------
  */
 INTERNAL DBfile *
-db_hdf5_Create(char *name, int mode, int target, int opts_set_id, char *finfo)
+db_hdf5_Create(char const *name, int mode, int target, int opts_set_id, char const *finfo)
 {
     DBfile_hdf5 *dbfile=NULL;
     hid_t       fid=-1, faprops=-1;
@@ -5481,7 +5583,7 @@ db_hdf5_Create(char *name, int mode, int target, int opts_set_id, char *finfo)
     else
         H5Eset_auto(NULL, NULL);
 
-    faprops = db_hdf5_file_accprops(opts_set_id);
+    faprops = db_hdf5_file_accprops(opts_set_id, mode);
 
         /* Create or open hdf5 file */
     if (DB_CLOBBER==mode) {
@@ -5510,7 +5612,7 @@ db_hdf5_Create(char *name, int mode, int target, int opts_set_id, char *finfo)
     H5Pclose(faprops);
 
     /* Create silo file struct */
-    if (NULL==(dbfile=calloc(1, sizeof(DBfile_hdf5)))) {
+    if (NULL==(dbfile=(DBfile_hdf5 *)calloc(1, sizeof(DBfile_hdf5)))) {
         db_perror(name, E_NOMEM, me);
         return NULL;
     }
@@ -5524,7 +5626,6 @@ db_hdf5_Create(char *name, int mode, int target, int opts_set_id, char *finfo)
     return db_hdf5_finish_create(dbfile, target, finfo);
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_Close
  *
@@ -5591,7 +5692,6 @@ db_hdf5_Close(DBfile *_dbfile)
     return retval;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_Filters
  *
@@ -5616,7 +5716,6 @@ db_hdf5_Filters(DBfile *_dbfile, FILE *stream)
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_MkDir
  *
@@ -5636,7 +5735,7 @@ db_hdf5_Filters(DBfile *_dbfile, FILE *stream)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_MkDir(DBfile *_dbfile, char *name)
+db_hdf5_MkDir(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_MkDir";
@@ -5658,7 +5757,7 @@ db_hdf5_MkDir(DBfile *_dbfile, char *name)
         if (!*parent) strcpy(parent, '/'==*name?"/":".");
 
         /* What is the name of the `..' entry? */
-        dotdot = malloc(strlen(name)+4);
+        dotdot = (char *)malloc(strlen(name)+4);
         strcpy(dotdot, name);
         strcat(dotdot, "/..");
 
@@ -5684,7 +5783,6 @@ db_hdf5_MkDir(DBfile *_dbfile, char *name)
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_SetDir
  *
@@ -5706,7 +5804,7 @@ db_hdf5_MkDir(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_SetDir(DBfile *_dbfile, char *name)
+db_hdf5_SetDir(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_SetDir";
@@ -5737,7 +5835,6 @@ db_hdf5_SetDir(DBfile *_dbfile, char *name)
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetDir
  *
@@ -5953,9 +6050,9 @@ copy_dir(hid_t grp, char const *name, void *op_data)
         }
         asize = H5Tget_size(atype);
         msize = MAX(asize, 3*1024);
-        if (NULL==(file_value=malloc(asize)) ||
-            NULL==(mem_value=malloc(msize)) ||
-            NULL==(bkg=malloc(msize))) {
+        if (NULL==(file_value=(char *)malloc(asize)) ||
+            NULL==(mem_value=(char *)malloc(msize)) ||
+            NULL==(bkg=(char *)malloc(msize))) {
             db_perror(name, E_NOMEM, me);
             UNWIND();
         }
@@ -6102,7 +6199,6 @@ db_hdf5_CpDir(DBfile *_dbfile, char const *srcDir,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_NewToc
  *
@@ -6143,7 +6239,7 @@ db_hdf5_NewToc(DBfile *_dbfile)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_GetComponentType(DBfile *_dbfile, char *objname, char *compname)
+db_hdf5_GetComponentType(DBfile *_dbfile, char const *objname, char const *compname)
 {
     int datatype = DB_NOTYPE;
     db_hdf5_GetComponentStuff(_dbfile, objname, compname, &datatype);
@@ -6164,7 +6260,7 @@ db_hdf5_GetComponentType(DBfile *_dbfile, char *objname, char *compname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_hdf5_GetComponent(DBfile *_dbfile, char *objname, char *compname)
+db_hdf5_GetComponent(DBfile *_dbfile, char const *objname, char const *compname)
 {
     return db_hdf5_GetComponentStuff(_dbfile, objname, compname, 0);
 }
@@ -6217,7 +6313,7 @@ db_hdf5_GetComponent(DBfile *_dbfile, char *objname, char *compname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_hdf5_GetComponentStuff(DBfile *_dbfile, char *objname, char *compname,
+db_hdf5_GetComponentStuff(DBfile *_dbfile, char const *objname, char const *compname,
     int *just_get_datatype)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
@@ -6383,7 +6479,7 @@ db_hdf5_GetComponentStuff(DBfile *_dbfile, char *objname, char *compname,
         H5Aclose(attr);
         H5Tclose(atype);
         H5Tclose(ftype);
-        H5Tclose(mtype);
+        if (mtype != -1) H5Tclose(mtype);
     } CLEANUP {
         /* Release objects */
         if (retval) {
@@ -6391,17 +6487,18 @@ db_hdf5_GetComponentStuff(DBfile *_dbfile, char *objname, char *compname,
             retval = NULL;
         }
         if (mnofname) free(mnofname);
-        H5Tclose(o);
-        H5Aclose(attr);
-        H5Tclose(atype);
-        H5Tclose(ftype);
-        H5Tclose(mtype);
+        H5E_BEGIN_TRY {
+            H5Tclose(o);
+            H5Aclose(attr);
+            H5Tclose(atype);
+            H5Tclose(ftype);
+            H5Tclose(mtype);
+        } H5E_END_TRY;
     } END_PROTECT;
 
     return retval;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetComponentNames
  *
@@ -6422,7 +6519,7 @@ db_hdf5_GetComponentStuff(DBfile *_dbfile, char *objname, char *compname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_GetComponentNames(DBfile *_dbfile, char *objname, char ***comp_names,
+db_hdf5_GetComponentNames(DBfile *_dbfile, char const *objname, char ***comp_names,
                           char ***file_names)
 {
     DBobject    *obj;
@@ -6447,7 +6544,6 @@ db_hdf5_GetComponentNames(DBfile *_dbfile, char *objname, char ***comp_names,
     return n;
 }
     
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_WriteObject
  *
@@ -6493,51 +6589,6 @@ db_hdf5_WriteObject(DBfile *_dbfile,    /*File to write into */
             } H5E_END_TRY;
         }
         
-        /* With the exception of a zonelist object, the HDF5 driver
-         * only handles user-defined objects. Otherwise,
-         * if the user were allowed to use DBMakeObject() to bybass the
-         * normal object creation functions, the user would need to know
-         * implementation details of the driver. Some of the silo
-         * confidence tests think they know implementation details when in
-         * fact they don't -- those tests will fail. */
-        if (!strcmp(obj->type, "zonelist")) {
-
-            /* make sure we recognize every component name in this object */
-            int recognizeComponent = 1;
-            for (i=0; (i<obj->ncomponents) && recognizeComponent; i++)
-            {
-                recognizeComponent = 0;
-                if ((strcmp(obj->comp_names[i], "ndims") == 0) ||
-                    (strcmp(obj->comp_names[i], "nzones") == 0) ||
-                    (strcmp(obj->comp_names[i], "nshapes") == 0) ||
-                    (strcmp(obj->comp_names[i], "lnodelist") == 0) ||
-                    (strcmp(obj->comp_names[i], "origin") == 0) ||
-                    (strcmp(obj->comp_names[i], "lo_offset") == 0) ||
-                    (strcmp(obj->comp_names[i], "hi_offset") == 0) ||
-                    (strcmp(obj->comp_names[i], "nodelist") == 0) ||
-                    (strcmp(obj->comp_names[i], "shapecnt") == 0) ||
-                    (strcmp(obj->comp_names[i], "shapesize") == 0) ||
-                    (strcmp(obj->comp_names[i], "shapetype") == 0) ||
-                    (strcmp(obj->comp_names[i], "gzoneno") == 0))
-                {
-                    recognizeComponent = 1;
-                }
-            }
-
-            if (!recognizeComponent)
-            {
-                char msg[256];
-                sprintf(msg, "Unrecognized component, \"%s\", in zonelist object",
-                    obj->comp_names[i]);
-                db_perror(msg, E_BADARGS, me);
-                UNWIND();
-            }
-
-        } else if (flags != OVER_WRITE && strcmp(obj->type, "unknown")) {
-            db_perror("DBobject is not type DB_USERDEF", E_BADARGS, me);
-            UNWIND();
-        }
-
         /* How much memory do we need? Align all components */
         for (i=0, msize=fsize=0; i<obj->ncomponents; i++) {
             if (!strncmp(obj->pdb_names[i], "'<i>", 4)) {
@@ -6557,14 +6608,88 @@ db_hdf5_WriteObject(DBfile *_dbfile,    /*File to write into */
                 db_perror(obj->pdb_names[i], E_INVALIDNAME, me);
                 UNWIND();
             } else {
-                /* variable added by DBAddVarComponent() */
-                msize += strlen(obj->pdb_names[i]) + 1;
-                fsize += strlen(obj->pdb_names[i]) + 1;
+                /* Its possible this is a 'special' tiny array 'var' component.
+                 * So, first, search for it in obj->h5_names and if found, handle
+                 * it as such */
+                int j, off=0, found=0;
+                for (j = 0; obj->h5_names[j]; j++)
+                {
+                    off += obj->h5_sizes[j] * db_GetMachDataSize(obj->h5_types[j]);
+                    if (!strcmp(obj->comp_names[i], obj->h5_names[j]))
+                    {
+                        found = 1;
+                        break;
+                    }
+                }
+                if (found)
+                {
+                    switch (obj->h5_types[j])
+                    {
+                        case DB_INT:
+                        {
+                            int dummy[3];
+                            hsize_t _size = 3;
+                            hid_t _f_ary;
+                            msize = ALIGN(msize, sizeof(dummy)) + sizeof(dummy);
+#if H5_VERS_MAJOR>=1 && H5_VERS_MINOR>=4
+                            _f_ary = H5Tarray_create(dbfile->T_int, 1, &_size, NULL);
+                            fsize += H5Tget_size(_f_ary);
+                            H5Tclose(_f_ary);
+#else
+                            fsize += 3*H5Tget_size(dbfile->T_int);
+#endif
+                            break;
+                        }
+                        case DB_FLOAT:
+                        {
+                            float dummy[3];
+                            hsize_t _size = 3;
+                            hid_t _f_ary;
+                            msize = ALIGN(msize, sizeof(dummy)) + sizeof(dummy);
+#if H5_VERS_MAJOR>=1 && H5_VERS_MINOR>=4
+                            _f_ary = H5Tarray_create(dbfile->T_float, 1, &_size, NULL);
+                            fsize += H5Tget_size(_f_ary);
+                            H5Tclose(_f_ary);
+#else
+                            fsize += 3*H5Tget_size(dbfile->T_float);
+#endif
+                            break;
+                        }
+                        case DB_DOUBLE:
+                        {
+                            double dummy[3];
+                            hsize_t _size = 3;
+                            hid_t _f_ary;
+                            msize = ALIGN(msize, sizeof(dummy)) + sizeof(dummy);
+#if H5_VERS_MAJOR>=1 && H5_VERS_MINOR>=4
+                            _f_ary = H5Tarray_create(dbfile->T_double, 1, &_size, NULL);
+                            fsize += H5Tget_size(_f_ary);
+                            H5Tclose(_f_ary);
+#else
+                            fsize += 3*H5Tget_size(dbfile->T_double);
+#endif
+                            break;
+                        }
+                        default:
+                            break;
+                    }
+                }
+                else
+                {
+                    /* variable added by DBAddVarComponent() */
+                    msize += strlen(obj->pdb_names[i]) + 1;
+                    fsize += strlen(obj->pdb_names[i]) + 1;
+                }
             }
         }
 
+        if (!msize) {
+            db_perror("Object has zero size", E_BADARGS, me);
+            UNWIND();
+        }
+
         /* Create the object and initialize it */
-        if (NULL==(object=calloc(1, msize))) {
+        if (NULL==(object=(unsigned char *)calloc(1, msize))) {
             db_perror(NULL, E_NOMEM, me);
             UNWIND();
         }
@@ -6627,20 +6752,116 @@ db_hdf5_WriteObject(DBfile *_dbfile,    /*File to write into */
                 moffset += len;
                 foffset += len;
             } else {
-                size_t len = strlen(obj->pdb_names[i])+1;
-                hid_t str_type = H5Tcopy(H5T_C_S1);
-                H5Tset_size(str_type, len);
-                if (H5Tinsert(mtype, obj->comp_names[i], moffset,
-                              str_type)<0 ||
-                    H5Tinsert(ftype, obj->comp_names[i], foffset,
+                /* Its possible this is a 'special' tiny array 'var' component.
+                 * So, first, search for it in obj->h5_names and if found, handle
+                 * it as such */
+                int j, found=0;
+                for (j = 0; obj->h5_names[j]; j++)
+                {
+                    if (!strcmp(obj->comp_names[i], obj->h5_names[j]))
+                    {
+                        found = 1;
+                        break;
+                    }
+                }
+                if (found)
+                {
+                    switch (obj->h5_types[j])
+                    {
+                        case DB_INT:
+                        {
+                            int dummy[3];
+                            hid_t _m_ary, _f_ary;
+                            hsize_t _size = 3;
+                            moffset = ALIGN(moffset, sizeof(dummy));
+#if H5_VERS_MAJOR>=1 && H5_VERS_MINOR>=4
+                            _m_ary = H5Tarray_create(H5T_NATIVE_INT, 1, &_size, NULL);
+                            _f_ary = H5Tarray_create(dbfile->T_int, 1, &_size, NULL);
+                            if (H5Tinsert(mtype, obj->comp_names[i], moffset, _m_ary)<0 ||
+                                H5Tinsert(ftype, obj->comp_names[i], foffset, _f_ary)<0) {
+                                db_perror("H5Tinsert", E_CALLFAIL, me);
+                                UNWIND();
+                            }
+                            foffset += H5Tget_size(_f_ary);
+                            H5Tclose(_f_ary);
+                            H5Tclose(_m_ary);
+#else
+                            db_perror("Cannot customize standard object", E_CALLFAIL, me);
+                            UNWIND();
+#endif
+                            memcpy(object+moffset, &obj->h5_vals[obj->h5_offs[j]], sizeof(dummy));
+                            moffset += sizeof(dummy);
+                            break;
+                        }
+                        case DB_FLOAT:
+                        {
+                            float dummy[3];
+                            hid_t _m_ary, _f_ary;
+                            hsize_t _size = 3;
+                            moffset = ALIGN(moffset, sizeof(dummy));
+#if H5_VERS_MAJOR>=1 && H5_VERS_MINOR>=4
+                            _m_ary = H5Tarray_create(H5T_NATIVE_FLOAT, 1, &_size, NULL);
+                            _f_ary = H5Tarray_create(dbfile->T_float, 1, &_size, NULL);
+                            if (H5Tinsert(mtype, obj->comp_names[i], moffset, _m_ary)<0 ||
+                                H5Tinsert(ftype, obj->comp_names[i], foffset, _f_ary)<0) {
+                                db_perror("H5Tinsert", E_CALLFAIL, me);
+                                UNWIND();
+                            }
+                            foffset += H5Tget_size(_f_ary);
+                            H5Tclose(_f_ary);
+                            H5Tclose(_m_ary);
+#else
+                            db_perror("Cannot customize standard object", E_CALLFAIL, me);
+                            UNWIND();
+#endif
+                            memcpy(object+moffset, &obj->h5_vals[obj->h5_offs[j]], sizeof(dummy));
+                            moffset += sizeof(dummy);
+                            break;
+                        }
+                        case DB_DOUBLE:
+                        {
+                            double dummy[3];
+                            hid_t _m_ary, _f_ary;
+                            hsize_t _size = 3;
+                            moffset = ALIGN(moffset, sizeof(dummy));
+#if H5_VERS_MAJOR>=1 && H5_VERS_MINOR>=4
+                            _m_ary = H5Tarray_create(H5T_NATIVE_DOUBLE, 1, &_size, NULL);
+                            _f_ary = H5Tarray_create(dbfile->T_double, 1, &_size, NULL);
+                            if (H5Tinsert(mtype, obj->comp_names[i], moffset, _m_ary)<0 ||
+                                H5Tinsert(ftype, obj->comp_names[i], foffset, _f_ary)<0) {
+                                db_perror("H5Tinsert", E_CALLFAIL, me);
+                                UNWIND();
+                            }
+                            foffset += H5Tget_size(_f_ary);
+                            H5Tclose(_f_ary);
+                            H5Tclose(_m_ary);
+#else
+                            db_perror("Cannot customize standard object", E_CALLFAIL, me);
+                            UNWIND();
+#endif
+                            memcpy(object+moffset, &obj->h5_vals[obj->h5_offs[j]], sizeof(dummy));
+                            moffset += sizeof(dummy);
+                            break;
+                        }
+                    }
+                }
+                else
+                {
+                    size_t len = strlen(obj->pdb_names[i])+1;
+                    hid_t str_type = H5Tcopy(H5T_C_S1);
+                    H5Tset_size(str_type, len);
+                    if (H5Tinsert(mtype, obj->comp_names[i], moffset,
+                                  str_type)<0 ||
+                        H5Tinsert(ftype, obj->comp_names[i], foffset,
                               str_type)<0) {
-                    db_perror("H5Tinsert", E_CALLFAIL, me);
-                    UNWIND();
+                        db_perror("H5Tinsert", E_CALLFAIL, me);
+                        UNWIND();
+                    }
+                    H5Tclose(str_type);
+                    strcpy((char*)(object+moffset), obj->pdb_names[i]);
+                    moffset += len;
+                    foffset += len;
                 }
-                H5Tclose(str_type);
-                strcpy((char*)(object+moffset), obj->pdb_names[i]);
-                moffset += len;
-                foffset += len;
             }
         }
 
@@ -6652,14 +6873,15 @@ db_hdf5_WriteObject(DBfile *_dbfile,    /*File to write into */
         H5Tclose(ftype);
         if (object) free(object);
     } CLEANUP {
-        H5Tclose(mtype);
-        H5Tclose(ftype);
+        H5E_BEGIN_TRY {
+            H5Tclose(mtype);
+            H5Tclose(ftype);
+        } H5E_END_TRY;
         if (object) free(object);
     } END_PROTECT;
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_WriteComponent
  *
@@ -6683,18 +6905,106 @@ db_hdf5_WriteComponent(DBfile *_dbfile, DBobject *obj, char const *compname,
                        int rank, long const *_size)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
-    int         size[32], i;
+    int         size[32], i, totsize;
     char        varname[256];
     int         datatype = db_GetDatatypeID(dataname);
+
+    /*
+     * We have to be careful here to deal with possible customization of
+     * 'standard' objects. The HDF5 driver handles small arrays of things
+     * like dimensions, extents, alignment, etc. as 'array' members of
+     * the attribute 'header' struct. So, we cannot arbitrarily decide to
+     * write every component we see here to the file. Sometimes, we'll have
+     * to avert that operation and instead store the data to the DBobject
+     * struct, temporarily, for eventual write via DBWriteObject
+     */
     
-    for (i=0; i<rank; i++) size[i] = _size[i];
+    totsize = 1;
+    for (i=0; i<rank; i++) {
+        size[i] = _size[i];
+        totsize *= size[i];
+    }
+
+    if (totsize == 3)
+    {
+        int add_it = 0;
+        DBObjectType objtype = (DBObjectType) DBGetObjtypeTag(obj->type);
+
+        switch (objtype)
+        {
+            case DB_CSGMESH:
+            {
+                add_it |= !strcmp(compname, "min_extents");
+                add_it |= !strcmp(compname, "max_extents");
+                break;
+            }
+            case DB_QUADMESH:
+            case DB_QUADCURV:
+            case DB_QUADRECT:
+            {
+                add_it |= !strcmp(compname, "min_extents");
+                add_it |= !strcmp(compname, "max_extents");
+                add_it |= !strcmp(compname, "dims");
+                add_it |= !strcmp(compname, "min_index");
+                add_it |= !strcmp(compname, "max_index");
+                add_it |= !strcmp(compname, "base_index");
+                break;
+            }
+            case DB_QUADVAR:
+            {
+                add_it |= !strcmp(compname, "zones");
+                add_it |= !strcmp(compname, "align");
+                add_it |= !strcmp(compname, "dims");
+                add_it |= !strcmp(compname, "min_index");
+                add_it |= !strcmp(compname, "max_index");
+                break;
+            }
+            case DB_UCDMESH:
+            {
+                add_it |= !strcmp(compname, "min_extents");
+                add_it |= !strcmp(compname, "max_extents");
+                break;
+            }
+            case DB_MATERIAL:
+            case DB_MATSPECIES:
+            {
+                add_it |= !strcmp(compname, "dims");
+                break;
+            } 
+            case DB_POINTMESH:
+            {
+                add_it |= !strcmp(compname, "min_extents");
+                add_it |= !strcmp(compname, "max_extents");
+                break;
+            }
+            default: break;
+        }
+
+        if (add_it)
+        {
+            int i;
+            for (i = 0; obj->h5_names[i] && i < DB_MAX_H5_OBJ_VALS; i++); /* find first open slot */
+            if (i >= DB_MAX_H5_OBJ_VALS)
+                return db_perror(compname, E_OBJBUFFULL, "db_hdf5_WriteComponent");
+            obj->h5_names[i] = strdup(compname);
+            obj->h5_types[i] = datatype;
+            obj->h5_sizes[i] = totsize;
+            obj->h5_offs[i] = i==0?0:obj->h5_offs[i-1]+totsize*db_GetMachDataSize(datatype);
+            if (obj->h5_offs[i] + totsize * db_GetMachDataSize(datatype) > sizeof(obj->h5_vals))
+                return db_perror(compname, E_OBJBUFFULL, "db_hdf5_WriteComponent");
+            memcpy(&obj->h5_vals[obj->h5_offs[i]], data, totsize * db_GetMachDataSize(datatype));
+            DBAddVarComponent(obj, compname, compname);
+            return 0;
+        }
+    }
+
+    varname[0] = '\0';
     db_hdf5_compwr(dbfile, datatype, rank, size, data, varname,
-        friendly_name(obj->name, varname, 0));
+        friendly_name(obj->name, compname, 0));
     DBAddVarComponent(obj, compname, varname);
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_InqVarExists
  *
@@ -6716,7 +7026,7 @@ db_hdf5_WriteComponent(DBfile *_dbfile, DBobject *obj, char const *compname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_InqVarExists (DBfile *_dbfile, char *varname)
+db_hdf5_InqVarExists (DBfile *_dbfile, char const *varname)
 {
    DBfile_hdf5  *dbfile = (DBfile_hdf5*)_dbfile;
    herr_t       status;
@@ -6732,7 +7042,6 @@ db_hdf5_InqVarExists (DBfile *_dbfile, char *varname)
        return TRUE;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetVarLength
  *
@@ -6750,7 +7059,7 @@ db_hdf5_InqVarExists (DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_GetVarLength(DBfile *_dbfile, char *name)
+db_hdf5_GetVarLength(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_GetVarLength";
@@ -6785,7 +7094,6 @@ db_hdf5_GetVarLength(DBfile *_dbfile, char *name)
     return nelmts;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetVarByteLength
  *
@@ -6804,7 +7112,7 @@ db_hdf5_GetVarLength(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_GetVarByteLength(DBfile *_dbfile, char *name)
+db_hdf5_GetVarByteLength(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_GetVarByteLength";
@@ -6859,7 +7167,6 @@ db_hdf5_GetVarByteLength(DBfile *_dbfile, char *name)
     return nbytes_small;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetVarType
  *
@@ -6884,7 +7191,7 @@ db_hdf5_GetVarByteLength(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_GetVarType(DBfile *_dbfile, char *name)
+db_hdf5_GetVarType(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_GetVarType";
@@ -6923,7 +7230,6 @@ db_hdf5_GetVarType(DBfile *_dbfile, char *name)
     return silo_type;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetVarDims
  *
@@ -6942,7 +7248,7 @@ db_hdf5_GetVarType(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_GetVarDims(DBfile *_dbfile, char *name, int maxdims, int *dims/*out*/)
+db_hdf5_GetVarDims(DBfile *_dbfile, char const *name, int maxdims, int *dims/*out*/)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_GetVarDims";
@@ -6977,7 +7283,6 @@ db_hdf5_GetVarDims(DBfile *_dbfile, char *name, int maxdims, int *dims/*out*/)
     return ndims;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetVar
  *
@@ -6999,7 +7304,7 @@ db_hdf5_GetVarDims(DBfile *_dbfile, char *name, int maxdims, int *dims/*out*/)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_hdf5_GetVar(DBfile *_dbfile, char *name)
+db_hdf5_GetVar(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_GetVar";
@@ -7065,7 +7370,6 @@ db_hdf5_GetVar(DBfile *_dbfile, char *name)
     return result;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_ReadVar
  *
@@ -7086,7 +7390,7 @@ db_hdf5_GetVar(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_ReadVar(DBfile *_dbfile, char *vname, void *result)
+db_hdf5_ReadVar(DBfile *_dbfile, char const *vname, void *result)
 {
    DBfile_hdf5  *dbfile = (DBfile_hdf5*)_dbfile;
    static char  *me = "db_hdf5_ReadVar";
@@ -7140,7 +7444,6 @@ db_hdf5_ReadVar(DBfile *_dbfile, char *vname, void *result)
    return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_ReadVarSlice
  *
@@ -7160,8 +7463,8 @@ db_hdf5_ReadVar(DBfile *_dbfile, char *vname, void *result)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_ReadVarSlice(DBfile *_dbfile, char *vname, int *offset, int *length,
-                     int *stride, int ndims, void *result)
+db_hdf5_ReadVarSlice(DBfile *_dbfile, char const *vname, int const *offset, int const *length,
+                     int const *stride, int ndims, void *result)
 {
    DBfile_hdf5  *dbfile = (DBfile_hdf5*)_dbfile;
    static char  *me = "db_hdf5_ReadVarSlice";
@@ -7226,7 +7529,6 @@ db_hdf5_ReadVarSlice(DBfile *_dbfile, char *vname, int *offset, int *length,
    return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_Write
  *
@@ -7246,16 +7548,16 @@ db_hdf5_ReadVarSlice(DBfile *_dbfile, char *vname, int *offset, int *length,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_Write(DBfile *_dbfile, char *vname, void *var,
-              int *dims, int ndims, int datatype)
+db_hdf5_Write(DBfile *_dbfile, char const *vname, void const *var,
+              int const *dims, int ndims, int datatype)
 {
     const int nofilters = 0;
     return db_hdf5_WriteCKZ(_dbfile, vname, var, dims, ndims, datatype, nofilters);
 }
 
-INTERNAL int
-db_hdf5_WriteCKZ(DBfile *_dbfile, char *vname, void *var,
-              int *dims, int ndims, int datatype, int nofilters)
+PRIVATE int
+db_hdf5_WriteCKZ(DBfile *_dbfile, char const *vname, void const *var,
+              int const *dims, int ndims, int datatype, int nofilters)
 {
    DBfile_hdf5  *dbfile = (DBfile_hdf5*)_dbfile;
    static char  *me = "db_hdf5_Write";
@@ -7288,7 +7590,7 @@ db_hdf5_WriteCKZ(DBfile *_dbfile, char *vname, void *var,
            }
            H5Sget_simple_extent_dims(space, ds_size, NULL);
            for (i=0; i<ndims; i++) {
-               if (ds_size[i]!=(hsize_t)dims[i]) {
+               if (ds_size[i]<(hsize_t)dims[i]) {
                    db_perror("dims", E_BADARGS, me);
                    UNWIND();
                }
@@ -7362,7 +7664,6 @@ db_hdf5_WriteCKZ(DBfile *_dbfile, char *vname, void *var,
    return 0;
 }
 
-

 /*------------------------------------------------------------------------- 
  * Function:    db_hdf5_WriteSlice
  *
@@ -7381,9 +7682,17 @@ db_hdf5_WriteCKZ(DBfile *_dbfile, char *vname, void *var,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_WriteSlice(DBfile *_dbfile, char *vname, void *values, int dtype,
-                   int offset[], int length[], int stride[], int dims[],
-                   int ndims)
+db_hdf5_WriteSlice(
+    DBfile *_dbfile,
+    char const *vname,
+    void const *values,
+    int dtype,
+    int const *offset,
+    int const *length,
+    int const *stride,
+    int const *dims,
+    int ndims
+)
 {
    DBfile_hdf5  *dbfile = (DBfile_hdf5*)_dbfile ;
    static char  *me = "db_hdf5_WriteSlice" ;
@@ -7493,7 +7802,6 @@ db_hdf5_WriteSlice(DBfile *_dbfile, char *vname, void *values, int dtype,
    return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetObject
  *
@@ -7514,7 +7822,7 @@ db_hdf5_WriteSlice(DBfile *_dbfile, char *vname, void *values, int dtype,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBobject *
-db_hdf5_GetObject(DBfile *_dbfile, char *name)
+db_hdf5_GetObject(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_GetObject";
@@ -7553,9 +7861,9 @@ db_hdf5_GetObject(DBfile *_dbfile, char *name)
         }
         asize = H5Tget_size(atype);
         msize = MAX(asize, 3*1024);
-        if (NULL==(file_value=malloc(asize)) ||
-            NULL==(mem_value=malloc(msize)) ||
-            NULL==(bkg=malloc(msize))) {
+        if (NULL==(file_value=(char *)malloc(asize)) ||
+            NULL==(mem_value=(char *)malloc(msize)) ||
+            NULL==(bkg=(char *)malloc(msize))) {
             db_perror(name, E_NOMEM, me);
             UNWIND();
         }
@@ -7575,7 +7883,7 @@ db_hdf5_GetObject(DBfile *_dbfile, char *name)
         s1024 = H5Tcopy(H5T_C_S1);
         H5Tset_size(s1024, 1024);
         for (i=0; i<nmembs; i++) {
-            int ndims;
+            int ndims = 0;
             hid_t member_type = db_hdf5_get_cmemb(atype, i, &ndims, memb_size);
             char *name = H5Tget_member_name(atype, i);
             hid_t mtype = H5Tcreate(H5T_COMPOUND, msize);
@@ -7663,7 +7971,6 @@ db_hdf5_GetObject(DBfile *_dbfile, char *name)
     return obj;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutCurve
  *
@@ -7689,8 +7996,8 @@ db_hdf5_GetObject(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals, void *yvals,
-                 int dtype, int npts, DBoptlist *opts)
+db_hdf5_PutCurve(DBfile *_dbfile, char const *name, void const *xvals, void const *yvals,
+                 int dtype, int npts, DBoptlist const *opts)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_PutCurve";
@@ -7706,20 +8013,21 @@ db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals, void *yvals,
         
         /* Reset global curve options */
         memset(&_cu, 0, sizeof _cu);
+        _cu._missing_value = DB_MISSING_VALUE_NOT_SET;
         if (0!=db_ProcessOptlist(DB_CURVE, opts)) {
             db_perror("bad options", E_CALLFAIL, me);
             UNWIND();
         }
 
         /* Write X and Y arrays if supplied */
-        if (xvals) {
+        if (npts && xvals) {
             db_hdf5_compwr(dbfile, dtype, 1, &npts, xvals, m.xvarname/*out*/,
                 friendly_name(name, "_xvals", 0));
         } else if (_cu._varname[0]) {
             db_hdf5_fullname(dbfile, _cu._varname[0], m.xvarname/*out*/);
         }
 
-        if (yvals) {
+        if (npts && yvals) {
             db_hdf5_compwr(dbfile, dtype, 1, &npts, yvals, m.yvarname/*out*/,
                 friendly_name(name, "_yvals", 0));
         } else if (_cu._varname[1]) {
@@ -7729,6 +8037,8 @@ db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals, void *yvals,
         /* Build the curve header in memory */
         m.npts = npts;
         m.guihide = _cu._guihide;
+        m.coord_sys = _cu._coord_sys;
+        db_SetMissingValueForPut(m.missing_value, _cu._missing_value);
         strcpy(m.label, OPT(_cu._label));
         strcpy(m.xlabel, OPT(_cu._labels[0]));
         strcpy(m.ylabel, OPT(_cu._labels[1]));
@@ -7740,6 +8050,8 @@ db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals, void *yvals,
         STRUCT(DBcurve) {
             if (m.npts) MEMBER_S(int, npts);
             if (m.guihide) MEMBER_S(int, guihide);
+            if (m.coord_sys) MEMBER_S(int, coord_sys);
+            if (m.missing_value) MEMBER_S(double, missing_value);
             MEMBER_S(str(_cu._label), label);
             MEMBER_S(str(m.xvarname), xvarname);
             MEMBER_S(str(m.yvarname), yvarname);
@@ -7756,7 +8068,6 @@ db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals, void *yvals,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetCurve
  *
@@ -7782,7 +8093,7 @@ db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals, void *yvals,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBcurve *
-db_hdf5_GetCurve(DBfile *_dbfile, char *name)
+db_hdf5_GetCurve(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetCurve";
@@ -7821,6 +8132,7 @@ db_hdf5_GetCurve(DBfile *_dbfile, char *name)
         if (NULL==(cu=DBAllocCurve())) return NULL;
         cu->npts = m.npts;
         cu->guihide = m.guihide;
+        cu->coord_sys = m.coord_sys;
         cu->datatype = DB_FLOAT;
         if (strlen(m.xvarname)) {
             if ((cu->datatype = db_hdf5_GetVarType(_dbfile, 
@@ -7829,13 +8141,16 @@ db_hdf5_GetCurve(DBfile *_dbfile, char *name)
         }
         if (force_single_g) cu->datatype = DB_FLOAT;
         cu->title = OPTDUP(m.label);
-        cu->xvarname = OPTDUP(m.xvarname);
-        cu->yvarname = OPTDUP(m.yvarname);
+        if (strncmp(m.xvarname, "/.silo/#", 8))
+            cu->xvarname = OPTDUP(m.xvarname);
+        if (strncmp(m.yvarname, "/.silo/#", 8))
+            cu->yvarname = OPTDUP(m.yvarname);
         cu->xlabel = OPTDUP(m.xlabel);
         cu->ylabel = OPTDUP(m.ylabel);
         cu->xunits = OPTDUP(m.xunits);
         cu->yunits = OPTDUP(m.yunits);
         cu->reference = OPTDUP(m.reference);
+        db_SetMissingValueForGet(cu->missing_value, m.missing_value);
         
         /* Read X and Y data */
         if (SILO_Globals.dataReadMask & DBCurveArrays)
@@ -7892,7 +8207,7 @@ db_hdf5_PutCsgmesh(DBfile *_dbfile, char const *name, int ndims,
                    int nbounds, int const *typeflags, int const *bndids,
                    void const *coeffs, int lcoeffs, int datatype,
                    double const *extents, char const *zonel_name,
-                   DBoptlist *optlist)
+                   DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutCsgmesh";
@@ -7924,13 +8239,13 @@ db_hdf5_PutCsgmesh(DBfile *_dbfile, char const *name, int ndims,
             m.max_extents[2] = extents[5];
         }
 
-        db_hdf5_compwr(dbfile,DB_INT,1,&nbounds,(void*)typeflags,m.typeflags/*out*/,
-            friendly_name(name, "_typeflags", 0));
-        if (bndids)
-            db_hdf5_compwr(dbfile,DB_INT,1,&nbounds,(void*)bndids,m.bndids/*out*/,
-                friendly_name(name, "_bndids", 0));
-        db_hdf5_compwr(dbfile,datatype,1,&lcoeffs,(void*)coeffs,m.coeffs/*out*/,
-            friendly_name(name, "_coeffs", 0));
+        if (nbounds)
+        {
+            db_hdf5_compwr(dbfile,DB_INT,1,&nbounds,(void*)typeflags,m.typeflags/*out*/, friendly_name(name, "_typeflags", 0));
+            if (bndids)
+                db_hdf5_compwr(dbfile,DB_INT,1,&nbounds,(void*)bndids,m.bndids/*out*/, friendly_name(name, "_bndids", 0));
+            db_hdf5_compwr(dbfile,datatype,1,&lcoeffs,(void*)coeffs,m.coeffs/*out*/, friendly_name(name, "_coeffs", 0));
+        }
 
         /* Build csgmesh header in memory */
         m.ndims = ndims;
@@ -7953,6 +8268,14 @@ db_hdf5_PutCsgmesh(DBfile *_dbfile, char const *name, int ndims,
             strcpy(m.zonel_name, zonel_name);
         strcpy(m.mrgtree_name, OPT(_csgm._mrgtree_name));
 
+        if (_csgm._alt_nodenum_vars != NULL) {
+            char *s; int len;
+            DBStringArrayToStringList((char const * const *)_csgm._alt_nodenum_vars, -1, &s, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.alt_nodenum_vars/*out*/,
+                friendly_name(name, "_alt_nodenum_vars", 0));
+            FREE(s);
+        }
+
         /* Build csgmesh header in file */
         STRUCT(DBcsgmesh) {
             if (m.group_no)       MEMBER_S(int, group_no);
@@ -7975,6 +8298,7 @@ db_hdf5_PutCsgmesh(DBfile *_dbfile, char const *name, int ndims,
             MEMBER_S(str(m.mrgtree_name), mrgtree_name);
             if (m.tv_connectivity) MEMBER_S(int, tv_connectivity);
             if (m.disjoint_mode)   MEMBER_S(int, disjoint_mode);
+            MEMBER_S(str(m.alt_nodenum_vars), alt_nodenum_vars);
         } OUTPUT(dbfile, DB_CSGMESH, name, &m);
 
     } CLEANUP {
@@ -8070,26 +8394,34 @@ db_hdf5_GetCsgmesh(DBfile *_dbfile, char const *name)
         /* Read the raw data */
         if ((SILO_Globals.dataReadMask & DBCSGMBoundaryInfo) && (m.nbounds > 0))
         {
-            csgm->typeflags = db_hdf5_comprd(dbfile, m.typeflags, 1);
-            csgm->bndids = db_hdf5_comprd(dbfile, m.bndids, 1);
+            csgm->typeflags = (int *)db_hdf5_comprd(dbfile, m.typeflags, 1);
+            csgm->bndids = (int *)db_hdf5_comprd(dbfile, m.bndids, 1);
         }
 
         if ((SILO_Globals.dataReadMask & DBCSGMBoundaryNames) && (m.nbounds > 0))
         {
-            char *tmpbndnames = db_hdf5_comprd(dbfile, m.bndnames, 1);
+            char *tmpbndnames = (char *)db_hdf5_comprd(dbfile, m.bndnames, 1);
             if (tmpbndnames)
-                csgm->bndnames = DBStringListToStringArray(tmpbndnames, &m.nbounds,
-                                     !handleSlashSwap, !skipFirstSemicolon);
+                csgm->bndnames = DBStringListToStringArray(tmpbndnames, &m.nbounds, !skipFirstSemicolon);
             FREE(tmpbndnames);
         }
 
         if ((SILO_Globals.dataReadMask & DBCSGMBoundaryInfo) && (m.lcoeffs > 0))
             csgm->coeffs = db_hdf5_comprd(dbfile, m.coeffs, 0);
 
-        if ((m.zonel_name[0] && (SILO_Globals.dataReadMask & DBCSGMZonelist)))
+        if ((m.nbounds>0 && m.zonel_name[0] && (SILO_Globals.dataReadMask & DBCSGMZonelist)))
             csgm->zones = db_hdf5_GetCSGZonelist(_dbfile, 
                               db_hdf5_resolvename(_dbfile, name, m.zonel_name));
 
+        /* alt nodenum vars */
+        {
+            int nnames = -1;
+            char *tmpannums = (char *)db_hdf5_comprd(dbfile, m.alt_nodenum_vars, 1);
+            if (tmpannums)
+                csgm->alt_nodenum_vars = DBStringListToStringArray(tmpannums, &nnames, !skipFirstSemicolon);
+            FREE(tmpannums);
+        }
+
         H5Tclose(o);
     } CLEANUP {
         H5E_BEGIN_TRY {
@@ -8125,8 +8457,8 @@ db_hdf5_GetCsgmesh(DBfile *_dbfile, char const *name)
 /*ARGSUSED*/
 SILO_CALLBACK int
 db_hdf5_PutCsgvar(DBfile *_dbfile, char const *vname, char const *meshname,
-                  int nvars, char *varnames[], void *vars[],
-                  int nvals, int datatype, int centering, DBoptlist *optlist)
+                  int nvars, char const * const *varnames, void const * const *vars,
+                  int nvals, int datatype, int centering, DBoptlist const *optlist)
 
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
@@ -8147,7 +8479,7 @@ db_hdf5_PutCsgvar(DBfile *_dbfile, char const *vname, char const *meshname,
             db_perror("too many variables", E_BADARGS, me);
             UNWIND();
         }
-        for (i=0; i<nvars; i++) {
+        for (i=0; i<nvars && nvals; i++) {
             db_hdf5_compwr(dbfile, datatype, 1, &nvals, (void*)vars[i],
                 m.vals[i]/*out*/, friendly_name(varnames[i], "_data", 0));
         }
@@ -8155,7 +8487,7 @@ db_hdf5_PutCsgvar(DBfile *_dbfile, char const *vname, char const *meshname,
         /* output mrgtree info if we have it */
         if (_csgm._region_pnames != NULL) {
             int len;
-            DBStringArrayToStringList(_csgm._region_pnames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_csgm._region_pnames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.region_pnames/*out*/,
                 friendly_name(vname, "_region_pnames", 0));
             FREE(s);
@@ -8178,6 +8510,7 @@ db_hdf5_PutCsgvar(DBfile *_dbfile, char const *vname, char const *meshname,
         strcpy(m.meshname, OPT(_csgm._meshname));
         strcpy(m.label, OPT(_csgm._label));
         strcpy(m.units, OPT(_csgm._unit));
+        db_SetMissingValueForPut(m.missing_value, _csgm._missing_value);
 
         /* Write header to file */
         STRUCT(DBcsgvar) {
@@ -8196,6 +8529,7 @@ db_hdf5_PutCsgvar(DBfile *_dbfile, char const *vname, char const *meshname,
             if (_csgm._dtime_set) MEMBER_S(double, dtime);
             if (m.conserved)    MEMBER_S(int, conserved);
             if (m.extensive)    MEMBER_S(int, extensive);
+            if (m.missing_value) MEMBER_S(double, missing_value);
             MEMBER_S(str(m.region_pnames), region_pnames);
         } OUTPUT(dbfile, DB_CSGVAR, vname, &m);
 
@@ -8286,6 +8620,7 @@ db_hdf5_GetCsgvar(DBfile *_dbfile, char const *name)
         csgv->guihide = m.guihide;
         csgv->conserved = m.conserved;
         csgv->extensive = m.extensive;
+        db_SetMissingValueForGet(csgv->missing_value, m.missing_value);
 
         /* Read the raw data */
         if (m.nvals>MAX_VARS) {
@@ -8295,15 +8630,14 @@ db_hdf5_GetCsgvar(DBfile *_dbfile, char const *name)
 
         if (SILO_Globals.dataReadMask & DBCSGVData && m.nvals)
         {
-            csgv->vals = calloc(m.nvals, sizeof(void*));
+            csgv->vals = (void **)calloc(m.nvals, sizeof(void*));
             for (i=0; i<m.nvals; i++) {
                 csgv->vals[i] = db_hdf5_comprd(dbfile, m.vals[i], 0);
             }
         }
 
-        s = db_hdf5_comprd(dbfile, m.region_pnames, 1);
-        if (s) csgv->region_pnames = DBStringListToStringArray(s, 0,
-                   !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.region_pnames, 1);
+        if (s) csgv->region_pnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
         H5Tclose(o);
@@ -8342,7 +8676,7 @@ db_hdf5_PutCSGZonelist(DBfile *_dbfile, char const *name, int nregs,
                  int const *typeflags,
                  int const *leftids, int const *rightids,
                  void const *xforms, int lxforms, int datatype,
-                 int nzones, int const *zonelist, DBoptlist *optlist)
+                 int nzones, int const *zonelist, DBoptlist const *optlist)
 
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
@@ -8374,7 +8708,7 @@ db_hdf5_PutCSGZonelist(DBfile *_dbfile, char const *name, int nregs,
 
         if (_csgzl._regnames) {
             int len; char *tmp;
-            DBStringArrayToStringList(_csgzl._regnames, nregs, &tmp, &len);
+            DBStringArrayToStringList((char const * const *)_csgzl._regnames, nregs, &tmp, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
                 m.regnames/*out*/, friendly_name(name, "_regnames",0));
             FREE(tmp);
@@ -8382,12 +8716,20 @@ db_hdf5_PutCSGZonelist(DBfile *_dbfile, char const *name, int nregs,
 
         if (_csgzl._zonenames) {
             int len; char *tmp;
-            DBStringArrayToStringList(_csgzl._zonenames, nzones, &tmp, &len);
+            DBStringArrayToStringList((char const * const *)_csgzl._zonenames, nzones, &tmp, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
                 m.zonenames/*out*/, friendly_name(name, "_zonenames",0));
             FREE(tmp);
         }
 
+        if (_csgzl._alt_zonenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_csgzl._alt_zonenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_zonenum_vars/*out*/, friendly_name(name, "_alt_zonenum_vars",0));
+            FREE(tmp);
+        }
+
         /* Build header in memory */
         m.nregs = nregs;
         m.lxform = lxforms;
@@ -8407,6 +8749,7 @@ db_hdf5_PutCSGZonelist(DBfile *_dbfile, char const *name, int nregs,
             MEMBER_S(str(m.xform), xform);
             MEMBER_S(str(m.regnames), regnames);
             MEMBER_S(str(m.zonenames), zonenames);
+            MEMBER_S(str(m.alt_zonenum_vars), alt_zonenum_vars);
         } OUTPUT(dbfile, DB_CSGZONELIST, name, &m);
         
     } CLEANUP {
@@ -8487,28 +8830,35 @@ db_hdf5_GetCSGZonelist(DBfile *_dbfile, char const *name)
         /* Read the raw data */
         if (SILO_Globals.dataReadMask & DBZonelistInfo)
         {
-            zl->typeflags = db_hdf5_comprd(dbfile, m.typeflags, 1);
-            zl->leftids = db_hdf5_comprd(dbfile, m.leftids, 1);
-            zl->rightids = db_hdf5_comprd(dbfile, m.rightids, 1);
+            zl->typeflags = (int *)db_hdf5_comprd(dbfile, m.typeflags, 1);
+            zl->leftids = (int *)db_hdf5_comprd(dbfile, m.leftids, 1);
+            zl->rightids = (int *)db_hdf5_comprd(dbfile, m.rightids, 1);
             zl->xform = db_hdf5_comprd(dbfile, m.xform, 0);
-            zl->zonelist = db_hdf5_comprd(dbfile, m.zonelist, 1);
+            zl->zonelist = (int *)db_hdf5_comprd(dbfile, m.zonelist, 1);
         }
 
         if (SILO_Globals.dataReadMask & DBCSGZonelistRegNames)
         {
-            char *tmpnames = db_hdf5_comprd(dbfile, m.regnames, 1);
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.regnames, 1);
             if (tmpnames)
-                zl->regnames = DBStringListToStringArray(tmpnames, &m.nregs,
-                    !handleSlashSwap, !skipFirstSemicolon);
+                zl->regnames = DBStringListToStringArray(tmpnames, &m.nregs, !skipFirstSemicolon);
             FREE(tmpnames);
         }
 
         if (SILO_Globals.dataReadMask & DBCSGZonelistZoneNames)
         {
-            char *tmpnames = db_hdf5_comprd(dbfile, m.zonenames, 1);
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.zonenames, 1);
             if (tmpnames)
-                zl->zonenames = DBStringListToStringArray(tmpnames, &m.nzones,
-                    !handleSlashSwap, !skipFirstSemicolon);
+                zl->zonenames = DBStringListToStringArray(tmpnames, &m.nzones, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
+
+        /* alternate zone number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_zonenum_vars, 1);
+            if (tmpnames)
+                zl->alt_zonenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
             FREE(tmpnames);
         }
 
@@ -8543,9 +8893,15 @@ db_hdf5_GetCSGZonelist(DBfile *_dbfile, char const *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutDefvars(DBfile *_dbfile, char const *name, int ndefs,
-                   char *names[], int const *types,
-                   char *defns[], DBoptlist *opts[])
+db_hdf5_PutDefvars(
+    DBfile *_dbfile,
+    char const *name,
+    int ndefs,
+    char const * const *names,
+    int const *types,
+    char const * const *defns,
+    DBoptlist const * const *opts
+)
 {
     DBfile_hdf5 *dbfile = (DBfile_hdf5*)_dbfile;
     static char *me = "db_hdf5_PutDefvars";
@@ -8578,7 +8934,7 @@ db_hdf5_PutDefvars(DBfile *_dbfile, char const *name, int ndefs,
     memset(&m, 0, sizeof m);
     PROTECT {
 
-        DBStringArrayToStringList(names, ndefs, &s, &len);
+        DBStringArrayToStringList((char const * const *)names, ndefs, &s, &len);
         db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.names/*out*/,
             friendly_name(name, "_names",0));
         FREE(s);
@@ -8586,7 +8942,7 @@ db_hdf5_PutDefvars(DBfile *_dbfile, char const *name, int ndefs,
         db_hdf5_compwr(dbfile, DB_INT, 1, &ndefs, (void*)types, m.types/*out*/,
             friendly_name(name, "_types",0));
 
-        DBStringArrayToStringList(defns, ndefs, &s, &len);
+        DBStringArrayToStringList((char const * const *)defns, ndefs, &s, &len);
         db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.defns/*out*/,
             friendly_name(name, "_defns",0));
         FREE(s);
@@ -8616,7 +8972,6 @@ db_hdf5_PutDefvars(DBfile *_dbfile, char const *name, int ndefs,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetDefvars
  *
@@ -8681,19 +9036,17 @@ db_hdf5_GetDefvars(DBfile *_dbfile, char const *name)
         if (NULL==(defv=DBAllocDefvars(0))) return NULL;
         defv->ndefs = m.ndefs;
 
-        s = db_hdf5_comprd(dbfile, m.names, 1);
-        if (s) defv->names = DBStringListToStringArray(s, &(defv->ndefs),
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.names, 1);
+        if (s) defv->names = DBStringListToStringArray(s, &(defv->ndefs), !skipFirstSemicolon);
         FREE(s);
 
-        defv->types = db_hdf5_comprd(dbfile, m.types, 1);
+        defv->types = (int *)db_hdf5_comprd(dbfile, m.types, 1);
 
-        s = db_hdf5_comprd(dbfile, m.defns, 1);
-        if (s) defv->defns = DBStringListToStringArray(s, &(defv->ndefs), 
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.defns, 1);
+        if (s) defv->defns = DBStringListToStringArray(s, &(defv->ndefs), !skipFirstSemicolon);
         FREE(s);
 
-        defv->guihides = db_hdf5_comprd(dbfile, m.guihides, 1);
+        defv->guihides = (int *)db_hdf5_comprd(dbfile, m.guihides, 1);
 
         H5Tclose(o);
         
@@ -8733,7 +9086,6 @@ static int PrepareForQuadmeshCompression()
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutQuadmesh
  *
@@ -8772,20 +9124,29 @@ static int PrepareForQuadmeshCompression()
  */
 /*ARGSUSED*/
 SILO_CALLBACK int
-db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
-                    DB_DTPTR2 _coords, int dims[], int ndims, int datatype,
-                    int coordtype, DBoptlist *optlist)
+db_hdf5_PutQuadmesh(DBfile *_dbfile, char const *name, char const * const *coordnames,
+                    DBVCP2_t _coords, int const *dims, int ndims, int datatype,
+                    int coordtype, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutQuadmesh";
-    int                 i;
+    int                 i, is_empty = 1;
     DBquadmesh_mt       m;
     int                 compressionFlags;
-    DB_DTPTR          **coords = (DB_DTPTR**) _coords;
+    void const * const *coords = (void const * const *) _coords;
 
     FREE(_qm._meshname);
     memset(&_qm, 0, sizeof _qm);
     memset(&m, 0, sizeof m); 
+
+    for (i = 0; i < ndims; i++)
+    {
+        if (dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
     
     PROTECT {
         /* Check datatype */
@@ -8795,7 +9156,7 @@ db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
         }
 
         /* Set global options */
-        _qm._coordsys = DB_OTHER;
+        _qm._coord_sys = DB_OTHER;
         _qm._facetype = DB_RECTILINEAR;
         _qm._ndims = ndims;
         _qm._nspace = ndims;
@@ -8815,7 +9176,7 @@ db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
          * Number of zones and nodes. We have to do this because
          * _DBQMCalcExtents uses this global information.
          */
-        for (_qm._nzones=_qm._nnodes=(ndims?1:0), i=0; i<ndims; i++) {
+        for (_qm._nzones=_qm._nnodes=(is_empty?0:1), i=0; i<ndims; i++) {
             _qm._nzones *= (dims[i]-1);
             _qm._nnodes *= dims[i];
             _qm._dims[i] = dims[i];
@@ -8827,13 +9188,16 @@ db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
         
         /* Calculate extents, stored as DB_DOUBLE */
         if (DB_DOUBLE==datatype) {
+            int ii;
+            for (ii = 0; ii < 3; ii++)
+                m.min_extents[ii] = m.max_extents[ii] = 0;
             _DBQMCalcExtents(coords, datatype, _qm._minindex, _qm._maxindex_n,
                              dims, ndims, coordtype,
                              &(m.min_extents)/*out*/,
                              &(m.max_extents)/*out*/);
         } else {
-            float       min_extents[3];
-            float       max_extents[3];
+            float       min_extents[3] = {0,0,0};
+            float       max_extents[3] = {0,0,0};
             _DBQMCalcExtents(coords, datatype, _qm._minindex, _qm._maxindex_n,
                              dims, ndims, coordtype,
                              min_extents/*out*/, max_extents/*out*/);
@@ -8850,19 +9214,53 @@ db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
         compressionFlags = PrepareForQuadmeshCompression();
         
         /* Write coordinate arrays */
-        if (DB_COLLINEAR==coordtype) {
-            for (i=0; i<ndims; i++) {
-                db_hdf5_compwr(dbfile, datatype, 1, dims+i, coords[i],
-                    m.coord[i]/*out*/, friendly_name(name, "_coord%d",&i));
-            }
-        } else {
-            for (i=0; i<ndims; i++) {
-                db_hdf5_compwrz(dbfile, datatype, ndims, dims, coords[i],
-                    m.coord[i]/*out*/, friendly_name(name, "_coord%d",&i),
-                    compressionFlags);
+        if (!is_empty)
+        {
+            if (DB_COLLINEAR==coordtype) {
+                for (i=0; i<ndims; i++) {
+                    db_hdf5_compwr(dbfile, datatype, 1, dims+i, coords[i],
+                        m.coord[i]/*out*/, friendly_name(name, "_coord%d",&i));
+                }
+            } else {
+                for (i=0; i<ndims; i++) {
+                    db_hdf5_compwrz(dbfile, datatype, ndims, dims, coords[i],
+                        m.coord[i]/*out*/, friendly_name(name, "_coord%d",&i),
+                        compressionFlags);
+                }
             }
         }
         
+        if (!is_empty && _qm._ghost_node_labels)
+        {
+            db_hdf5_compwr(dbfile, DB_CHAR, ndims, dims, _qm._ghost_node_labels,
+                    m.ghost_node_labels/*out*/, friendly_name(name, "_ghost_node_labels", 0));
+        }
+        if (!is_empty && _qm._ghost_zone_labels)
+        {
+            int tmpdims[3];
+            for (i = 0; i < ndims; i++)
+                tmpdims[i] = dims[i]-1;
+
+            db_hdf5_compwr(dbfile, DB_CHAR, ndims, tmpdims, _qm._ghost_zone_labels,
+                    m.ghost_zone_labels/*out*/, friendly_name(name, "_ghost_zone_labels", 0));
+        }
+
+        if (_qm._alt_nodenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_qm._alt_nodenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_nodenum_vars/*out*/, friendly_name(name, "_alt_nodenum_vars",0));
+            FREE(tmp);
+        }
+
+        if (_qm._alt_zonenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_qm._alt_zonenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_zonenum_vars/*out*/, friendly_name(name, "_alt_zonenum_vars",0));
+            FREE(tmp);
+        }
+
         /* Build quadmesh header in memory */
         m.ndims = ndims;
         m.coordtype = coordtype;
@@ -8871,7 +9269,7 @@ db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
         m.facetype = _qm._facetype;
         m.major_order = _qm._majororder;
         m.cycle = _qm._cycle;
-        m.coord_sys = _qm._coordsys;
+        m.coord_sys = _qm._coord_sys;
         m.planar = _qm._planar;
         m.origin = _qm._origin;
         m.group_no = _qm._group_no;
@@ -8912,6 +9310,10 @@ db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name, char *coordnames[],
             MEMBER_R(str(m.label[_j]), label, ndims);
             MEMBER_R(str(m.units[_j]), units, ndims);
             MEMBER_S(str(m.mrgtree_name), mrgtree_name);
+            MEMBER_S(str(m.ghost_node_labels), ghost_node_labels);
+            MEMBER_S(str(m.ghost_zone_labels), ghost_zone_labels);
+            MEMBER_S(str(m.alt_nodenum_vars), alt_nodenum_vars);
+            MEMBER_S(str(m.alt_zonenum_vars), alt_zonenum_vars);
         } OUTPUT(dbfile, coordtype == DB_COLLINEAR ? DB_QUADRECT : DB_QUADCURV, name, &m);
 
     } CLEANUP {
@@ -8945,7 +9347,6 @@ PrepareForQuadmeshDecompression(DBfile_hdf5 *dbfile, char const *meshname,
 #endif
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetQuadmesh
  *
@@ -8971,7 +9372,7 @@ PrepareForQuadmeshDecompression(DBfile_hdf5 *dbfile, char const *meshname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBquadmesh *
-db_hdf5_GetQuadmesh(DBfile *_dbfile, char *name)
+db_hdf5_GetQuadmesh(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetQuadmesh";
@@ -9059,6 +9460,29 @@ db_hdf5_GetQuadmesh(DBfile *_dbfile, char *name)
                 qm->coords[i] = db_hdf5_comprd(dbfile, m.coord[i], 0);
         }
 
+        if (SILO_Globals.dataReadMask & DBQMGhostNodeLabels)
+            qm->ghost_node_labels = (char *)db_hdf5_comprd(dbfile, m.ghost_node_labels, 0);
+        if (SILO_Globals.dataReadMask & DBQMGhostZoneLabels)
+            qm->ghost_zone_labels = (char *)db_hdf5_comprd(dbfile, m.ghost_zone_labels, 0);
+
+        /* alternate node number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_nodenum_vars, 1);
+            if (tmpnames)
+                qm->alt_nodenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
+
+        /* alternate zone number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_zonenum_vars, 1);
+            if (tmpnames)
+                qm->alt_zonenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
+
         H5Tclose(o);
         
     } CLEANUP {
@@ -9100,7 +9524,6 @@ PrepareForQuadvarCompression(int centering, int datatype)
 
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutQuadvar
  *
@@ -9144,19 +9567,28 @@ PrepareForQuadvarCompression(int centering, int datatype)
  */
 /*ARGSUSED*/
 SILO_CALLBACK int
-db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
-                   char *varnames[/*nvars*/], DB_DTPTR2 _vars,
-                   int dims[/*ndims*/], int ndims, DB_DTPTR2 _mixvars,
-                   int mixlen, int datatype, int centering, DBoptlist *optlist)
+db_hdf5_PutQuadvar(DBfile *_dbfile, char const *name, char const *meshname, int nvars,
+                   char const * const *varnames, DBVCP2_t _vars,
+                   int const *dims, int ndims, DBVCP2_t _mixvars,
+                   int mixlen, int datatype, int centering, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutQuadvar";
     char                *s = 0;
     DBquadvar_mt        m;
-    int                 i, nels;
+    int                 i, nels, is_empty = 1;
     int                 compressionFlags;
-    DB_DTPTR          **vars = (DB_DTPTR**) _vars;
-    DB_DTPTR          **mixvars = (DB_DTPTR**) _mixvars;
+    void const * const    *vars = (void const * const *) _vars;
+    void const * const *mixvars = (void const * const *) _mixvars;
+
+    for (i = 0; i < ndims; i++)
+    {
+        if (dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
 
     FREE(_qm._meshname);
     memset(&_qm, 0, sizeof _qm);
@@ -9164,12 +9596,13 @@ db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
 
     PROTECT {
         /* Set global options */
-        _qm._coordsys = DB_OTHER;
+        _qm._coord_sys = DB_OTHER;
         _qm._facetype = DB_RECTILINEAR;
         _qm._ndims = _qm._nspace = ndims;
         _qm._planar = DB_AREA;
         _qm._use_specmf = DB_OFF;
         _qm._group_no = -1;
+        _qm._missing_value = DB_MISSING_VALUE_NOT_SET;
         db_ProcessOptlist(DB_QUADMESH, optlist); /*yes, QUADMESH*/
         _qm._meshname = STRDUP(meshname);
         _qm._nzones = _qm._nnodes = 1; /*initial value only*/
@@ -9200,7 +9633,7 @@ db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
             db_perror("too many subvariables", E_BADARGS, me);
             UNWIND();
         }
-        for (i=0; i<nvars; i++) {
+        for (i=0; i<nvars && !is_empty; i++) {
             /* Handle adjustment for edge/face centerings */
             if ((ndims > 1 && centering == DB_EDGECENT) ||
                 (ndims > 2 && centering == DB_FACECENT))
@@ -9246,6 +9679,7 @@ db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         strcpy(m.label, OPT(_qm._label));
         strcpy(m.units, OPT(_qm._unit));
         strcpy(m.meshid, OPT(_qm._meshname));
+        db_SetMissingValueForPut(m.missing_value, _qm._missing_value);
 
         for (i=0; i<ndims; i++) {
             m.dims[i] = _qm._dims[i];
@@ -9269,7 +9703,7 @@ db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         /* output mrgtree info if we have it */
         if (_qm._region_pnames != NULL) {
             int len;
-            DBStringArrayToStringList(_qm._region_pnames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_qm._region_pnames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.region_pnames/*out*/,
                 friendly_name(name, "_region_pnames", 0));
             FREE(s);
@@ -9296,6 +9730,7 @@ db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
             if (m.conserved)    MEMBER_S(int, conserved);
             if (m.extensive)    MEMBER_S(int, extensive);
             if (m.centering)    MEMBER_S(int, centering);
+            if (m.missing_value)MEMBER_S(double, missing_value);
             MEMBER_3(int, dims);
             MEMBER_3(int, zones);
             MEMBER_3(int, min_index);
@@ -9339,7 +9774,6 @@ PrepareForQuadvarDecompression(DBfile_hdf5 *dbfile, char const *varname,
 #endif
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetQuadvar
  *
@@ -9373,7 +9807,7 @@ PrepareForQuadvarDecompression(DBfile_hdf5 *dbfile, char const *varname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBquadvar *
-db_hdf5_GetQuadvar(DBfile *_dbfile, char *name)
+db_hdf5_GetQuadvar(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetQuadvar";
@@ -9433,6 +9867,7 @@ db_hdf5_GetQuadvar(DBfile *_dbfile, char *name)
         qv->conserved = m.conserved;
         qv->extensive = m.extensive;
         qv->centering = m.centering;
+        db_SetMissingValueForGet(qv->missing_value, m.missing_value);
         for (stride=1, i=0; i<m.ndims; stride*=m.dims[i++]) {
             qv->dims[i] = m.dims[i];
             qv->stride[i] = stride;
@@ -9448,10 +9883,10 @@ db_hdf5_GetQuadvar(DBfile *_dbfile, char *name)
             db_perror(name, E_CALLFAIL, me);
             UNWIND();
         }
-        if (SILO_Globals.dataReadMask & DBQVData && m.nvals)
+        if (SILO_Globals.dataReadMask & DBQVData && m.nvals && m.ndims>0)
         {
-            qv->vals = calloc(m.nvals, sizeof(void*));
-            if (m.mixlen) qv->mixvals = calloc(m.nvals, sizeof(void*));
+            qv->vals = (void **)calloc(m.nvals, sizeof(void*));
+            if (m.mixlen) qv->mixvals = (void **)calloc(m.nvals, sizeof(void*));
             for (i=0; i<m.nvals; i++) {
                 qv->vals[i] = db_hdf5_comprd(dbfile, m.value[i], 0);
                 if (m.mixlen && m.mixed_value[i][0]) {
@@ -9460,9 +9895,8 @@ db_hdf5_GetQuadvar(DBfile *_dbfile, char *name)
             }
         }
 
-        s = db_hdf5_comprd(dbfile, m.region_pnames, 1);
-        if (s) qv->region_pnames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.region_pnames, 1);
+        if (s) qv->region_pnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
         H5Tclose(o);
@@ -9510,7 +9944,6 @@ static int PrepareForUcdmeshCompression(DBfile_hdf5 *dbfile,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutUcdmesh
  *
@@ -9556,15 +9989,15 @@ static int PrepareForUcdmeshCompression(DBfile_hdf5 *dbfile,
  */
 /*ARGSUSED*/
 SILO_CALLBACK int
-db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims, char *coordnames[],
-                   DB_DTPTR2 _coords, int nnodes, int nzones, char *zlname,
-                   char *flname, int datatype, DBoptlist *optlist)
+db_hdf5_PutUcdmesh(DBfile *_dbfile, char const *name, int ndims, char const * const *coordnames,
+                   DBVCP2_t _coords, int nnodes, int nzones, char const *zlname,
+                   char const *flname, int datatype, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutUcdmesh";
     DBucdmesh_mt        m;
     int                 i, compressionFlags;
-    DB_DTPTR          **coords = (DB_DTPTR**) _coords;
+    void const * const *coords = (void const * const *) _coords;
 
     memset(&_um, 0, sizeof _um);
     memset(&m, 0, sizeof m);
@@ -9578,7 +10011,7 @@ db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims, char *coordnames[],
 
         /* Set global options */
         strcpy(_um._meshname, name);
-        _um._coordsys = DB_OTHER;
+        _um._coord_sys = DB_OTHER;
         _um._facetype = DB_RECTILINEAR;
         _um._ndims = ndims;
         _um._nnodes = nnodes;
@@ -9611,25 +10044,39 @@ db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims, char *coordnames[],
         }
         
         /* Write variable arrays: coords[], gnodeno[] */
-        for (i=0; i<ndims; i++) {
+        for (i=0; (i<ndims) && (nnodes>0); i++) {
             db_hdf5_compwrz(dbfile, datatype, 1, &nnodes, coords[i],
                 m.coord[i]/*out*/, friendly_name(name, "_coord%d", &i), 
                 compressionFlags);
         }
-        if (_um._llong_gnodeno)
+        if (_um._llong_gnodeno && (nnodes > 0))
             db_hdf5_compwr(dbfile, DB_LONG_LONG, 1, &nnodes, _um._gnodeno,
                 m.gnodeno/*out*/, friendly_name(name, "_gnodeno",0));
-        else
+        else if (nnodes > 0)
             db_hdf5_compwrz(dbfile, DB_INT, 1, &nnodes, _um._gnodeno,
                 m.gnodeno/*out*/, friendly_name(name, "_gnodeno",0),
                 compressionFlags);
         
+        if (nnodes && _um._ghost_node_labels)
+        {
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &nnodes, _um._ghost_node_labels,
+                m.ghost_node_labels/*out*/, friendly_name(name, "_ghost_node_labels",0));
+        }
+
+        if (_um._alt_nodenum_vars != NULL) {
+            char *s; int len;
+            DBStringArrayToStringList((char const * const *)_um._alt_nodenum_vars, -1, &s, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.alt_nodenum_vars/*out*/,
+                friendly_name(name, "_alt_nodenum_vars", 0));
+            FREE(s);
+        }
+
         /* Build ucdmesh header in memory */
         m.ndims = ndims;
         m.nnodes = nnodes;
         m.nzones = nzones;
         m.facetype = _um._facetype;
-        m.coord_sys = _um._coordsys;
+        m.coord_sys = _um._coord_sys;
         m.topo_dim = _um._topo_dim;
         m.planar = _um._planar;
         m.origin = _um._origin;
@@ -9678,6 +10125,8 @@ db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims, char *coordnames[],
             if (m.tv_connectivity) MEMBER_S(int, tv_connectivity);
             if (m.disjoint_mode)   MEMBER_S(int, disjoint_mode);
             if (m.gnznodtype)   MEMBER_S(int, gnznodtype);
+            MEMBER_S(str(m.ghost_node_labels), ghost_node_labels);
+            MEMBER_S(str(m.alt_nodenum_vars), alt_nodenum_vars);
         } OUTPUT(dbfile, DB_UCDMESH, name, &m);
         
     } CLEANUP {
@@ -9686,7 +10135,6 @@ db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims, char *coordnames[],
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutUcdsubmesh
  *
@@ -9719,9 +10167,9 @@ db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims, char *coordnames[],
  */
 /*ARGSUSED*/
 SILO_CALLBACK int
-db_hdf5_PutUcdsubmesh(DBfile *_dbfile, char *name, char *parentmesh,
-                      int nzones, char *zlname, char *flname,
-                      DBoptlist *optlist)
+db_hdf5_PutUcdsubmesh(DBfile *_dbfile, char const *name, char const *parentmesh,
+                      int nzones, char const *zlname, char const *flname,
+                      DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_pdb_PutUcdmesh";
@@ -9756,7 +10204,7 @@ db_hdf5_PutUcdsubmesh(DBfile *_dbfile, char *name, char *parentmesh,
 
         /* Set global options */
         strcpy(_um._meshname, name);
-        _um._coordsys = DB_OTHER;
+        _um._coord_sys = DB_OTHER;
         _um._facetype = DB_RECTILINEAR;
         _um._ndims = m.ndims;
         _um._nnodes = m.nnodes;
@@ -9776,7 +10224,7 @@ db_hdf5_PutUcdsubmesh(DBfile *_dbfile, char *name, char *parentmesh,
         m.nzones = _um._nzones;
         m.facetype = _um._facetype;
         m.cycle = _um._cycle;
-        m.coord_sys = _um._coordsys;
+        m.coord_sys = _um._coord_sys;
         m.topo_dim = _um._topo_dim;
         m.planar = _um._planar;
         m.origin = _um._origin;
@@ -9847,7 +10295,6 @@ PrepareForUcdmeshDecompression(DBfile_hdf5 *dbfile, char const *meshname,
 #endif
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetUcdmesh
  *
@@ -9891,7 +10338,7 @@ PrepareForUcdmeshDecompression(DBfile_hdf5 *dbfile, char const *meshname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBucdmesh *
-db_hdf5_GetUcdmesh(DBfile *_dbfile, char *name)
+db_hdf5_GetUcdmesh(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetUcdmesh";
@@ -9979,7 +10426,7 @@ db_hdf5_GetUcdmesh(DBfile *_dbfile, char *name)
            going to let it fail. */
 
         /* For compression's sake, read the zonelist first */
-        if (m.zonelist[0] && (SILO_Globals.dataReadMask & DBUMZonelist)) {
+        if (um->nnodes>0 && m.zonelist[0] && (SILO_Globals.dataReadMask & DBUMZonelist)) {
             calledFromGetUcdmesh = um->name;
             um->zones = db_hdf5_GetZonelist(_dbfile, 
                             db_hdf5_resolvename(_dbfile, name, m.zonelist));
@@ -10015,13 +10462,24 @@ db_hdf5_GetUcdmesh(DBfile *_dbfile, char *name)
         if (SILO_Globals.dataReadMask & DBUMGlobNodeNo)
             um->gnodeno = db_hdf5_comprd(dbfile, m.gnodeno, 1);
         um->gnznodtype = m.gnznodtype?m.gnznodtype:DB_INT;
+        if (SILO_Globals.dataReadMask & DBUMGhostNodeLabels)
+            um->ghost_node_labels = (char *)db_hdf5_comprd(dbfile, m.ghost_node_labels, 1);
+
+        /* alt nodenum vars */
+        {
+            int nnames = -1;
+            char *tmpannums = (char *)db_hdf5_comprd(dbfile, m.alt_nodenum_vars, 1);
+            if (tmpannums)
+                um->alt_nodenum_vars = DBStringListToStringArray(tmpannums, &nnames, !skipFirstSemicolon);
+            FREE(tmpannums);
+        }
 
         /* Read face, zone, and edge lists */
-        if (m.facelist[0] && (SILO_Globals.dataReadMask & DBUMFacelist)) {
+        if (um->nnodes>0 && m.facelist[0] && (SILO_Globals.dataReadMask & DBUMFacelist)) {
             um->faces = db_hdf5_GetFacelist(_dbfile,
                             db_hdf5_resolvename(_dbfile, name, m.facelist));
         }
-        if (m.phzonelist[0] && (SILO_Globals.dataReadMask & DBUMZonelist)) {
+        if (um->nnodes>0 && m.phzonelist[0] && (SILO_Globals.dataReadMask & DBUMZonelist)) {
             um->phzones = db_hdf5_GetPHZonelist(_dbfile, 
                               db_hdf5_resolvename(_dbfile, name, m.phzonelist));
         }
@@ -10035,6 +10493,10 @@ db_hdf5_GetUcdmesh(DBfile *_dbfile, char *name)
         } H5E_END_TRY;
     } END_PROTECT;
 
+#ifdef HAVE_HZIP
+    db_hdf5_hzip_clear_params();
+#endif
+
     return um;
 }
 
@@ -10069,7 +10531,6 @@ PrepareForUcdvarCompression(DBfile_hdf5 *dbfile, char const *varname,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutUcdvar
  *
@@ -10107,10 +10568,10 @@ PrepareForUcdvarCompression(DBfile_hdf5 *dbfile, char const *varname,
  */
 /*ARGSUSED*/
 SILO_CALLBACK int
-db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
-                  char *varnames[/*nvars*/], DB_DTPTR2 _vars,
-                  int nels, DB_DTPTR2 _mixvars, int mixlen,
-                  int datatype, int centering, DBoptlist *optlist)
+db_hdf5_PutUcdvar(DBfile *_dbfile, char const *name, char const *meshname, int nvars,
+                  char const * const *varnames, DBVCP2_t _vars,
+                  int nels, DBVCP2_t _mixvars, int mixlen,
+                  int datatype, int centering, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutUcdvar";
@@ -10118,8 +10579,8 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
     DBucdvar_mt         m;
     int                 i, saved_ndims, saved_nnodes, saved_nzones;
     int                 compressionFlags;
-    DB_DTPTR          **vars = (DB_DTPTR**) _vars;
-    DB_DTPTR          **mixvars = (DB_DTPTR**) _mixvars;
+    void const * const    *vars = (void const * const *) _vars;
+    void const * const *mixvars = (void const * const *) _mixvars;
 
     memset(&m, 0, sizeof m);
 
@@ -10129,7 +10590,7 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         saved_nnodes = _um._nnodes;
         saved_nzones = _um._nzones;
         memset(&_um, 0, sizeof _um);
-        _um._coordsys = DB_OTHER;
+        _um._coord_sys = DB_OTHER;
         _um._topo_dim = saved_ndims;
         _um._facetype = DB_RECTILINEAR;
         _um._ndims = saved_ndims;
@@ -10138,6 +10599,7 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         _um._planar = DB_OTHER;
         _um._use_specmf = DB_OFF;
         _um._group_no = -1;
+        _um._missing_value = DB_MISSING_VALUE_NOT_SET;
         strcpy(_um._meshname, meshname);
         db_ProcessOptlist(DB_UCDMESH, optlist); /*yes, UCDMESH*/
 
@@ -10154,7 +10616,7 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
             db_perror("too many variables", E_BADARGS, me);
             UNWIND();
         }
-        for (i=0; i<nvars; i++) {
+        for (i=0; i<nvars && nels; i++) {
             db_hdf5_compwrz(dbfile, datatype, 1, &nels, vars[i],
                 m.value[i]/*out*/, friendly_name(varnames[i], "_data", 0), compressionFlags);
 //#warning WHY NOT COMPRESS MIX DATA TOO
@@ -10167,7 +10629,7 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         /* output mrgtree info if we have it */
         if (_um._region_pnames != NULL) {
             int len;
-            DBStringArrayToStringList(_um._region_pnames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_um._region_pnames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.region_pnames/*out*/,
                 friendly_name(name, "_region_pnames", 0));
             FREE(s);
@@ -10191,6 +10653,7 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         m.datatype = (DB_FLOAT==datatype || DB_DOUBLE==datatype)?0:datatype;
         m.conserved = _um._conserved;
         m.extensive = _um._extensive;
+        db_SetMissingValueForPut(m.missing_value, _um._missing_value);
         strcpy(m.meshid, OPT(_um._meshname));
         strcpy(m.label, OPT(_um._label));
         strcpy(m.units, OPT(_um._unit));
@@ -10217,6 +10680,7 @@ db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
             if (_um._hi_offset_set) MEMBER_S(int, hi_offset);
             if (m.conserved)    MEMBER_S(int, conserved);
             if (m.extensive)    MEMBER_S(int, extensive);
+            if (m.missing_value)MEMBER_S(double, missing_value);
             MEMBER_S(str(m.label), label);
             MEMBER_S(str(m.units), units);
             MEMBER_S(str(m.region_pnames), region_pnames);
@@ -10262,9 +10726,9 @@ PrepareForUcdvarDecompression(DBfile *_dbfile, char const *varname,
 
         if (haveCompressed)
         {
-            long currentMask = DBGetDataReadMask();
+            unsigned long long currentMask = DBGetDataReadMask2();
             DBucdmesh *um;
-            DBSetDataReadMask(DBUMZonelist|DBZonelistInfo);
+            DBSetDataReadMask2(DBUMZonelist|DBZonelistInfo);
             um = db_hdf5_GetUcdmesh(_dbfile, (char*) meshname);
 
             /* Note that if for some reason the zl was not compressed, then
@@ -10278,7 +10742,7 @@ PrepareForUcdvarDecompression(DBfile *_dbfile, char const *varname,
                 RegisterNodelist((DBfile_hdf5*)_dbfile, 0, meshname,
                     um->zones->ndims, um->zones->nzones, um->zones->origin,
                     um->zones->nodelist);
-                DBSetDataReadMask(currentMask);
+                DBSetDataReadMask2(currentMask);
                 DBFreeUcdmesh(um);
             }
         }
@@ -10291,7 +10755,6 @@ PrepareForUcdvarDecompression(DBfile *_dbfile, char const *varname,
 #endif
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetUcdvar
  *
@@ -10325,7 +10788,7 @@ PrepareForUcdvarDecompression(DBfile *_dbfile, char const *varname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBucdvar *
-db_hdf5_GetUcdvar(DBfile *_dbfile, char *name)
+db_hdf5_GetUcdvar(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetUcdvar";
@@ -10384,6 +10847,7 @@ db_hdf5_GetUcdvar(DBfile *_dbfile, char *name)
         uv->guihide = m.guihide;
         uv->conserved = m.conserved;
         uv->extensive = m.extensive;
+        db_SetMissingValueForGet(uv->missing_value, m.missing_value);
 
         /* If var is compressed, we need to do some work to decompress it */
         PrepareForUcdvarDecompression(_dbfile, name, uv->meshname?uv->meshname:"", m.value, m.nvals);
@@ -10395,8 +10859,8 @@ db_hdf5_GetUcdvar(DBfile *_dbfile, char *name)
         }
         if (SILO_Globals.dataReadMask & DBUVData && m.nvals)
         {
-            uv->vals = calloc(m.nvals, sizeof(void*));
-            if (m.mixlen) uv->mixvals = calloc(m.nvals, sizeof(void*));
+            uv->vals = (void **)calloc(m.nvals, sizeof(void*));
+            if (m.mixlen) uv->mixvals = (void **)calloc(m.nvals, sizeof(void*));
             for (i=0; i<m.nvals; i++) {
                 uv->vals[i] = db_hdf5_comprd(dbfile, m.value[i], 0);
                 if (m.mixlen && m.mixed_value[i][0]) {
@@ -10405,9 +10869,8 @@ db_hdf5_GetUcdvar(DBfile *_dbfile, char *name)
             }
         }
 
-        s = db_hdf5_comprd(dbfile, m.region_pnames, 1);
-        if (s) uv->region_pnames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.region_pnames, 1);
+        if (s) uv->region_pnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
         H5Tclose(o);
@@ -10423,7 +10886,6 @@ db_hdf5_GetUcdvar(DBfile *_dbfile, char *name)
     return uv;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutFacelist
  *
@@ -10443,10 +10905,22 @@ db_hdf5_GetUcdvar(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutFacelist(DBfile *_dbfile, char *name, int nfaces, int ndims,
-                    int *nodelist, int lnodelist, int origin, int *zoneno,
-                    int *shapesize, int *shapecnt, int nshapes, int *types,
-                    int *typelist, int ntypes)
+db_hdf5_PutFacelist(
+    DBfile *_dbfile,
+    char const *name,
+    int nfaces,
+    int ndims,
+    int const *nodelist,
+    int lnodelist,
+    int origin,
+    int const *zoneno,
+    int const *shapesize,
+    int const *shapecnt,
+    int nshapes,
+    int const *types,
+    int const *typelist,
+    int ntypes
+)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBfacelist_mt       m;
@@ -10508,7 +10982,6 @@ db_hdf5_PutFacelist(DBfile *_dbfile, char *name, int nfaces, int ndims,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetFacelist
  *
@@ -10529,7 +11002,7 @@ db_hdf5_PutFacelist(DBfile *_dbfile, char *name, int nfaces, int ndims,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBfacelist *
-db_hdf5_GetFacelist(DBfile *_dbfile, char *name)
+db_hdf5_GetFacelist(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetFacelist";
@@ -10576,12 +11049,12 @@ db_hdf5_GetFacelist(DBfile *_dbfile, char *name)
         /* Read the raw data */
         if (SILO_Globals.dataReadMask & DBFacelistInfo)
         {
-            fl->nodelist = db_hdf5_comprd(dbfile, m.nodelist, 1);
-            fl->shapecnt = db_hdf5_comprd(dbfile, m.shapecnt, 1);
-            fl->shapesize = db_hdf5_comprd(dbfile, m.shapesize, 1);
-            fl->typelist = db_hdf5_comprd(dbfile, m.typelist, 1);
-            fl->types = db_hdf5_comprd(dbfile, m.types, 1);
-            fl->zoneno = db_hdf5_comprd(dbfile, m.zoneno, 1);
+            fl->nodelist = (int *)db_hdf5_comprd(dbfile, m.nodelist, 1);
+            fl->shapecnt = (int *)db_hdf5_comprd(dbfile, m.shapecnt, 1);
+            fl->shapesize = (int *)db_hdf5_comprd(dbfile, m.shapesize, 1);
+            fl->typelist = (int *)db_hdf5_comprd(dbfile, m.typelist, 1);
+            fl->types = (int *)db_hdf5_comprd(dbfile, m.types, 1);
+            fl->zoneno = (int *)db_hdf5_comprd(dbfile, m.zoneno, 1);
         }
 
         H5Tclose(o);
@@ -10613,8 +11086,8 @@ db_hdf5_GetFacelist(DBfile *_dbfile, char *name)
  */
 static int
 PrepareForZonelistCompression(DBfile_hdf5 *dbfile, char const *name,
-    int origin, int nshapes, int const *shapetype, int const *shapecnt,
-    int const *nodelist)
+    int origin, int ndims, int nshapes, int const *shapetype, int const *shapesize,
+    int const *shapecnt, int const *nodelist)
 {
 	int i;
     int ntopo = 0, zncnt = 0;
@@ -10625,30 +11098,60 @@ PrepareForZonelistCompression(DBfile_hdf5 *dbfile, char const *name,
     zncnt = shapecnt[0];
 #ifdef HAVE_HZIP
 
-    /* hzip supports only quad/hex meshes */
-    if (shapetype[0] == DB_ZONETYPE_QUAD)
+    if (shapetype)
     {
-        ntopo = 2;
-        for (i = 1; i < nshapes; i++)
+        /* hzip supports only quad/hex meshes */
+        if (shapetype[0] == DB_ZONETYPE_QUAD)
         {
-            zncnt += shapecnt[i];
-            if (shapetype[i] != DB_ZONETYPE_QUAD)
-                return 0;
+            ntopo = 2;
+            for (i = 1; i < nshapes; i++)
+            {
+                zncnt += shapecnt[i];
+                if (shapetype[i] != DB_ZONETYPE_QUAD)
+                    return 0;
+            }
         }
-    }
-    else if (shapetype[0] == DB_ZONETYPE_HEX)
-    {
-        ntopo = 3;
-        for (i = 1; i < nshapes; i++)
+        else if (shapetype[0] == DB_ZONETYPE_HEX)
         {
-            zncnt += shapecnt[i];
-            if (shapetype[i] != DB_ZONETYPE_HEX)
-                return 0;
+            ntopo = 3;
+            for (i = 1; i < nshapes; i++)
+            {
+                zncnt += shapecnt[i];
+                if (shapetype[i] != DB_ZONETYPE_HEX)
+                    return 0;
+            }
+        }
+        else
+        {
+            return 0;
         }
     }
     else
     {
-        return 0;
+        if (ndims == 2)
+        {
+            ntopo = 2;
+            for (i = 0; i < nshapes; i++)
+            {
+                zncnt += shapecnt[i];
+                if (shapesize[i] != 4)
+                    return 0;
+            }
+        }
+        else if (ndims == 3)
+        {
+            ntopo = 3;
+            for (i = 0; i < nshapes; i++)
+            {
+                zncnt += shapecnt[i];
+                if (shapesize[i] != 8)
+                    return 0;
+            }
+        }
+        else
+        {
+            return 0;
+        }
     }
 
     db_hdf5_hzip_clear_params();
@@ -10665,7 +11168,6 @@ PrepareForZonelistCompression(DBfile_hdf5 *dbfile, char const *name,
 #endif
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutZonelist
  *
@@ -10683,9 +11185,9 @@ PrepareForZonelistCompression(DBfile_hdf5 *dbfile, char const *name,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutZonelist(DBfile *_dbfile, char *name, int nzones, int ndims,
-                    int nodelist[], int lnodelist, int origin, int shapesize[],
-                    int shapecnt[], int nshapes)
+db_hdf5_PutZonelist(DBfile *_dbfile, char const *name, int nzones, int ndims,
+                    int const *nodelist, int lnodelist, int origin, int const *shapesize,
+                    int const *shapecnt, int nshapes)
 {
     db_hdf5_PutZonelist2(_dbfile, name, nzones, ndims, nodelist, lnodelist,
                          origin, 0, 0, NULL, shapesize, shapecnt, nshapes,
@@ -10693,7 +11195,6 @@ db_hdf5_PutZonelist(DBfile *_dbfile, char *name, int nzones, int ndims,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutZonelist2
  *
@@ -10727,11 +11228,11 @@ db_hdf5_PutZonelist(DBfile *_dbfile, char *name, int nzones, int ndims,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutZonelist2(DBfile *_dbfile, char *name, int nzones, int ndims,
-                     int nodelist[], int lnodelist, int origin,
-                     int lo_offset, int hi_offset, int shapetype[],
-                     int shapesize[], int shapecnt[], int nshapes,
-                     DBoptlist *optlist)
+db_hdf5_PutZonelist2(DBfile *_dbfile, char const *name, int nzones, int ndims,
+                     int const *nodelist, int lnodelist, int origin,
+                     int lo_offset, int hi_offset, int const *shapetype,
+                     int const *shapesize, int const *shapecnt, int nshapes,
+                     DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBzonelist_mt       m;
@@ -10745,7 +11246,7 @@ db_hdf5_PutZonelist2(DBfile *_dbfile, char *name, int nzones, int ndims,
 
         /* Prepare for possible compression of zonelist */
         compressionFlags = PrepareForZonelistCompression(dbfile,
-            name, origin, nshapes, shapetype, shapecnt, nodelist);
+            name, origin, ndims, nshapes, shapetype, shapesize, shapecnt, nodelist);
 
         /* Write variable arrays (currently only support compression of nodelist) */
         db_hdf5_compwrz(dbfile, DB_INT, 1, &lnodelist, nodelist,
@@ -10764,6 +11265,20 @@ db_hdf5_PutZonelist2(DBfile *_dbfile, char *name, int nzones, int ndims,
             db_hdf5_compwr(dbfile, DB_INT, 1, &nzones, _uzl._gzoneno,
                 m.gzoneno/*out*/, friendly_name(name,"_gzoneno", 0));
 
+        if (_uzl._ghost_zone_labels)
+        {
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &nzones, _uzl._ghost_zone_labels,
+                m.ghost_zone_labels/*out*/, friendly_name(name,"_ghost_zone_labels", 0));
+        }
+
+        if (_uzl._alt_zonenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_uzl._alt_zonenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_zonenum_vars/*out*/, friendly_name(name, "_alt_zonenum_vars",0));
+            FREE(tmp);
+        }
+
         /* Build header in memory */
         m.ndims = ndims;
         m.nzones = nzones;
@@ -10789,6 +11304,8 @@ db_hdf5_PutZonelist2(DBfile *_dbfile, char *name, int nzones, int ndims,
             MEMBER_S(str(m.shapetype), shapetype);
             MEMBER_S(str(m.gzoneno), gzoneno);
             if (m.gnznodtype)   MEMBER_S(int, gnznodtype);
+            MEMBER_S(str(m.ghost_zone_labels), ghost_zone_labels);
+            MEMBER_S(str(m.alt_zonenum_vars), alt_zonenum_vars);
         } OUTPUT(dbfile, DB_ZONELIST, name, &m);
         
     } CLEANUP {
@@ -10829,12 +11346,12 @@ db_hdf5_PutZonelist2(DBfile *_dbfile, char *name, int nzones, int ndims,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutPHZonelist(DBfile *_dbfile, char *name, 
-                      int nfaces, int *nodecnt, int lnodelist, int *nodelist,
-                      char *extface,
-                      int nzones, int *facecnt, int lfacelist, int *facelist,
+db_hdf5_PutPHZonelist(DBfile *_dbfile, char const *name, 
+                      int nfaces, int const *nodecnt, int lnodelist, int const *nodelist,
+                      char const *extface,
+                      int nzones, int const *facecnt, int lfacelist, int const *facelist,
                       int origin, int lo_offset, int hi_offset,
-                      DBoptlist *optlist)
+                      DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBphzonelist_mt       m;
@@ -10850,7 +11367,7 @@ db_hdf5_PutPHZonelist(DBfile *_dbfile, char *name,
             m.nodecnt/*out*/, friendly_name(name,"_nodecnt", 0));
         db_hdf5_compwr(dbfile, DB_INT, 1, &lnodelist, nodelist,
             m.nodelist/*out*/, friendly_name(name,"_nodelist", 0));
-        db_hdf5_compwr(dbfile, DB_INT, 1, &nfaces, extface,
+        db_hdf5_compwr(dbfile, DB_CHAR, 1, &nfaces, extface,
             m.extface/*out*/, friendly_name(name,"_extface", 0));
         db_hdf5_compwr(dbfile, DB_INT, 1, &nzones, facecnt,
             m.facecnt/*out*/, friendly_name(name,"_facecnt", 0));
@@ -10863,6 +11380,20 @@ db_hdf5_PutPHZonelist(DBfile *_dbfile, char *name,
             db_hdf5_compwr(dbfile, DB_INT, 1, &nzones, _phzl._gzoneno,
                 m.gzoneno/*out*/, friendly_name(name,"_gzoneno", 0));
 
+        if (_phzl._ghost_zone_labels)
+        {
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &nzones, _phzl._ghost_zone_labels,
+                m.ghost_zone_labels/*out*/, friendly_name(name,"_ghost_zone_labels", 0));
+        }
+
+        if (_phzl._alt_zonenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_phzl._alt_zonenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_zonenum_vars/*out*/, friendly_name(name, "_alt_zonenum_vars",0));
+            FREE(tmp);
+        }
+
         /* Build header in memory */
         m.nfaces = nfaces;
         m.lnodelist = lnodelist;
@@ -10889,6 +11420,7 @@ db_hdf5_PutPHZonelist(DBfile *_dbfile, char *name,
             MEMBER_S(str(m.facelist), facelist);
             MEMBER_S(str(m.gzoneno), gzoneno);
             if (m.gnznodtype)   MEMBER_S(int, gnznodtype);
+            MEMBER_S(str(m.ghost_zone_labels), ghost_zone_labels);
         } OUTPUT(dbfile, DB_PHZONELIST, name, &m);
         
     } CLEANUP {
@@ -10920,7 +11452,6 @@ PrepareForZonelistDecompression(DBfile_hdf5* dbfile, char const *zlname,
 #endif
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetZonelist
  *
@@ -10959,7 +11490,7 @@ PrepareForZonelistDecompression(DBfile_hdf5* dbfile, char const *zlname,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBzonelist *
-db_hdf5_GetZonelist(DBfile *_dbfile, char *name)
+db_hdf5_GetZonelist(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetZonelist";
@@ -11011,14 +11542,25 @@ db_hdf5_GetZonelist(DBfile *_dbfile, char *name)
         /* Read the raw data */
         if (SILO_Globals.dataReadMask & DBZonelistInfo)
         {
-            zl->shapecnt = db_hdf5_comprd(dbfile, m.shapecnt, 1);
-            zl->shapesize = db_hdf5_comprd(dbfile, m.shapesize, 1);
-            zl->shapetype = db_hdf5_comprd(dbfile, m.shapetype, 1);
-            zl->nodelist = db_hdf5_comprd(dbfile, m.nodelist, 1);
+            zl->shapecnt = (int *)db_hdf5_comprd(dbfile, m.shapecnt, 1);
+            zl->shapesize = (int *)db_hdf5_comprd(dbfile, m.shapesize, 1);
+            zl->shapetype = (int *)db_hdf5_comprd(dbfile, m.shapetype, 1);
+            zl->nodelist = (int *)db_hdf5_comprd(dbfile, m.nodelist, 1);
         }
         if (SILO_Globals.dataReadMask & DBZonelistGlobZoneNo)
             zl->gzoneno = db_hdf5_comprd(dbfile, m.gzoneno, 1);
         zl->gnznodtype = m.gnznodtype?m.gnznodtype:DB_INT;
+        if (SILO_Globals.dataReadMask & DBZonelistGhostZoneLabels)
+            zl->ghost_zone_labels = (char *)db_hdf5_comprd(dbfile, m.ghost_zone_labels, 1);
+
+        /* alternate zone number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_zonenum_vars, 1);
+            if (tmpnames)
+                zl->alt_zonenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
 
         H5Tclose(o);
     } CLEANUP {
@@ -11054,7 +11596,7 @@ db_hdf5_GetZonelist(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBphzonelist *
-db_hdf5_GetPHZonelist(DBfile *_dbfile, char *name)
+db_hdf5_GetPHZonelist(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetPHZonelist";
@@ -11102,14 +11644,25 @@ db_hdf5_GetPHZonelist(DBfile *_dbfile, char *name)
 
         if (SILO_Globals.dataReadMask & DBZonelistInfo)
         {
-            phzl->nodecnt = db_hdf5_comprd(dbfile, m.nodecnt, 1);
-            phzl->nodelist = db_hdf5_comprd(dbfile, m.nodelist, 1);
-            phzl->extface = db_hdf5_comprd(dbfile, m.extface, 1);
-            phzl->facecnt = db_hdf5_comprd(dbfile, m.facecnt, 1);
-            phzl->facelist = db_hdf5_comprd(dbfile, m.facelist, 1);
+            phzl->nodecnt = (int *)db_hdf5_comprd(dbfile, m.nodecnt, 1);
+            phzl->nodelist = (int *)db_hdf5_comprd(dbfile, m.nodelist, 1);
+            phzl->extface = (char *)db_hdf5_comprd(dbfile, m.extface, 1);
+            phzl->facecnt = (int *)db_hdf5_comprd(dbfile, m.facecnt, 1);
+            phzl->facelist = (int  *)db_hdf5_comprd(dbfile, m.facelist, 1);
         }
         if (SILO_Globals.dataReadMask & DBZonelistGlobZoneNo)
             phzl->gzoneno = db_hdf5_comprd(dbfile, m.gzoneno, 1);
+        if (SILO_Globals.dataReadMask & DBZonelistGhostZoneLabels)
+            phzl->ghost_zone_labels = (char *)db_hdf5_comprd(dbfile, m.ghost_zone_labels, 1);
+
+        /* alternate zone number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_zonenum_vars, 1);
+            if (tmpnames)
+                phzl->alt_zonenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
 
         H5Tclose(o);
     } CLEANUP {
@@ -11123,7 +11676,6 @@ db_hdf5_GetPHZonelist(DBfile *_dbfile, char *name)
     return phzl;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutMaterial
  *
@@ -11153,29 +11705,51 @@ db_hdf5_GetPHZonelist(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutMaterial(DBfile *_dbfile, char *name, char *mname, int nmat,
-                    int matnos[], int matlist[], int dims[], int ndims,
-                    int mix_next[], int mix_mat[], int mix_zone[],
-                    DB_DTPTR1 mix_vf, int mixlen, int datatype,
-                    DBoptlist *optlist)
+db_hdf5_PutMaterial(
+    DBfile *_dbfile,
+    char const *name,
+    char const *mname,
+    int nmat,
+    int const *matnos,
+    int const *matlist,
+    int const *dims,
+    int ndims,
+    int const *mix_next,
+    int const *mix_mat,
+    int const *mix_zone,
+    void const *mix_vf,
+    int mixlen,
+    int datatype,
+    DBoptlist const *optlist
+)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmaterial_mt       m;
-    int                 i, nels;
+    int                 i, nels, is_empty = 1;
     char               *s = NULL;
 
+    for (i = 0; i < ndims; i++)
+    {
+        if (dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }   
+
     memset(&m, 0, sizeof m);
     PROTECT {
         /* Set global options */
         db_ProcessOptlist(DB_MATERIAL, optlist);
-        for (i=0, nels=1; i<ndims; i++) nels *= dims[i];
+        nels = 1;
+        for (i=0; i<ndims; i++) nels *= dims[i];
 
         /* Write raw data arrays */
-        db_hdf5_compwr(dbfile, DB_INT, 1, &nels, matlist,
-            m.matlist/*out*/, friendly_name(name,"_matlist", 0));
+        if (!is_empty)
+            db_hdf5_compwr(dbfile, DB_INT, 1, &nels, matlist, m.matlist/*out*/, friendly_name(name,"_matlist", 0));
         db_hdf5_compwr(dbfile, DB_INT, 1, &nmat, matnos,
             m.matnos/*out*/, friendly_name(name,"_matnos", 0));
-        if (mixlen>0) {
+        if (!is_empty && mixlen>0) {
             db_hdf5_compwr(dbfile, datatype, 1, &mixlen, mix_vf,
                 m.mix_vf/*out*/, friendly_name(name,"_mix_vf", 0));
             db_hdf5_compwr(dbfile, DB_INT, 1, &mixlen, mix_next,
@@ -11188,7 +11762,7 @@ db_hdf5_PutMaterial(DBfile *_dbfile, char *name, char *mname, int nmat,
 
         if (_ma._matnames != NULL) {
             int len;
-            DBStringArrayToStringList(_ma._matnames, nmat, &s, &len);
+            DBStringArrayToStringList((char const * const *)_ma._matnames, nmat, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.matnames/*out*/,
                 friendly_name(name, "_matnames", 0));
             FREE(s);
@@ -11197,7 +11771,7 @@ db_hdf5_PutMaterial(DBfile *_dbfile, char *name, char *mname, int nmat,
 
         if (_ma._matcolors != NULL) {
             int len;
-            DBStringArrayToStringList(_ma._matcolors, nmat, &s, &len);
+            DBStringArrayToStringList((char const * const *)_ma._matcolors, nmat, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.matcolors/*out*/,
                 friendly_name(name,"_matcolors", 0));
             FREE(s);
@@ -11248,7 +11822,6 @@ db_hdf5_PutMaterial(DBfile *_dbfile, char *name, char *mname, int nmat,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetMaterial
  *
@@ -11276,7 +11849,7 @@ db_hdf5_PutMaterial(DBfile *_dbfile, char *name, char *mname, int nmat,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmaterial *
-db_hdf5_GetMaterial(DBfile *_dbfile, char *name)
+db_hdf5_GetMaterial(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetMaterial";
@@ -11334,28 +11907,26 @@ db_hdf5_GetMaterial(DBfile *_dbfile, char *name)
 
         /* Read the raw data */
         if (SILO_Globals.dataReadMask & DBMatMatlist)
-            ma->matlist = db_hdf5_comprd(dbfile, m.matlist, 1);
+            ma->matlist = (int *)db_hdf5_comprd(dbfile, m.matlist, 1);
         if (SILO_Globals.dataReadMask & DBMatMatnos)
-            ma->matnos = db_hdf5_comprd(dbfile, m.matnos, 1);
+            ma->matnos = (int *)db_hdf5_comprd(dbfile, m.matnos, 1);
         if (SILO_Globals.dataReadMask & DBMatMixList)
         {
             ma->mix_vf = db_hdf5_comprd(dbfile, m.mix_vf, 0);
-            ma->mix_next = db_hdf5_comprd(dbfile, m.mix_next, 1);
-            ma->mix_mat = db_hdf5_comprd(dbfile, m.mix_mat, 1);
-            ma->mix_zone = db_hdf5_comprd(dbfile, m.mix_zone, 1);
+            ma->mix_next = (int *)db_hdf5_comprd(dbfile, m.mix_next, 1);
+            ma->mix_mat = (int *)db_hdf5_comprd(dbfile, m.mix_mat, 1);
+            ma->mix_zone = (int *)db_hdf5_comprd(dbfile, m.mix_zone, 1);
         }
         if (SILO_Globals.dataReadMask & DBMatMatnames)
         {
-            s = db_hdf5_comprd(dbfile, m.matnames, 1);
-            if (s) ma->matnames = DBStringListToStringArray(s, &(ma->nmat),
-                !handleSlashSwap, !skipFirstSemicolon);
+            s = (char *)db_hdf5_comprd(dbfile, m.matnames, 1);
+            if (s) ma->matnames = DBStringListToStringArray(s, &(ma->nmat), !skipFirstSemicolon);
             FREE(s);
         }
         if (SILO_Globals.dataReadMask & DBMatMatcolors)
         {
-            s = db_hdf5_comprd(dbfile, m.matcolors, 1);
-            if (s) ma->matcolors = DBStringListToStringArray(s, &(ma->nmat),
-                !handleSlashSwap, !skipFirstSemicolon);
+            s = (char *)db_hdf5_comprd(dbfile, m.matcolors, 1);
+            if (s) ma->matcolors = DBStringListToStringArray(s, &(ma->nmat), !skipFirstSemicolon);
             FREE(s);
         }
 
@@ -11374,7 +11945,6 @@ db_hdf5_GetMaterial(DBfile *_dbfile, char *name)
     return ma;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutMatspecies
  *
@@ -11403,15 +11973,24 @@ db_hdf5_GetMaterial(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutMatspecies(DBfile *_dbfile, char *name, char *matname, int nmat,
-                      int nmatspec[], int speclist[], int dims[], int ndims,
-                      int nspecies_mf, DB_DTPTR1 species_mf, int mix_speclist[],
-                      int mixlen, int datatype, DBoptlist *optlist)
+db_hdf5_PutMatspecies(DBfile *_dbfile, char const *name, char const *matname, int nmat,
+                      int const *nmatspec, int const *speclist, int const *dims, int ndims,
+                      int nspecies_mf, void const *species_mf, int const *mix_speclist,
+                      int mixlen, int datatype, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmatspecies_mt     m;
     char               *s = NULL;
-    int                 i, nels, nstrs = 0;
+    int                 i, nels, nstrs = 0, is_empty = 1;
+
+    for (i = 0; i < ndims; i++)
+    {
+        if (dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }   
     
     memset(&m, 0, sizeof m);
     PROTECT {
@@ -11419,21 +11998,25 @@ db_hdf5_PutMatspecies(DBfile *_dbfile, char *name, char *matname, int nmat,
         db_ProcessOptlist(DB_MATSPECIES, optlist);
 
         /* Write raw data arrays */
-        for (i=0, nels=1; i<ndims; i++) nels *= dims[i];
-        db_hdf5_compwr(dbfile, DB_INT, 1, &nels, speclist, m.speclist/*out*/,
-            friendly_name(name,"_speclist", 0));
+        nels = 1;
+        for (i=0; i<ndims; i++) nels *= dims[i];
+        if (!is_empty)
+            db_hdf5_compwr(dbfile, DB_INT, 1, &nels, speclist, m.speclist/*out*/, friendly_name(name,"_speclist", 0));
         db_hdf5_compwr(dbfile, DB_INT, 1, &nmat, nmatspec, m.nmatspec/*out*/,
             friendly_name(name,"_nmatspec", 0));
-        db_hdf5_compwr(dbfile, datatype, 1, &nspecies_mf, species_mf,
-            m.species_mf/*out*/, friendly_name(name,"_species_mf", 0));
-        db_hdf5_compwr(dbfile, DB_INT, 1, &mixlen, mix_speclist,
-            m.mix_speclist/*out*/, friendly_name(name,"_mix_speclist", 0));
+        if (!is_empty)
+        {
+            db_hdf5_compwr(dbfile, datatype, 1, &nspecies_mf, species_mf, m.species_mf/*out*/,
+                friendly_name(name,"_species_mf", 0));
+            db_hdf5_compwr(dbfile, DB_INT, 1, &mixlen, mix_speclist, m.mix_speclist/*out*/,
+                friendly_name(name,"_mix_speclist", 0));
+        }
         
         if (_ms._specnames != NULL) {
             int len;
             for (i = 0; i < nmat; i++)
                 nstrs += nmatspec[i];
-            DBStringArrayToStringList(_ms._specnames, nstrs, &s, &len);
+            DBStringArrayToStringList((char const * const *)_ms._specnames, nstrs, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.specnames/*out*/,
                 friendly_name(name, "_species_names", 0));
             FREE(s);
@@ -11447,7 +12030,7 @@ db_hdf5_PutMatspecies(DBfile *_dbfile, char *name, char *matname, int nmat,
                 for (i = 0; i < nmat; i++)
                     nstrs += nmatspec[i];
             }
-            DBStringArrayToStringList(_ms._speccolors, nstrs, &s, &len);
+            DBStringArrayToStringList((char const * const *)_ms._speccolors, nstrs, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.speccolors/*out*/,
                 friendly_name(name,"_speccolors", 0));
             FREE(s);
@@ -11490,7 +12073,6 @@ db_hdf5_PutMatspecies(DBfile *_dbfile, char *name, char *matname, int nmat,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetMatspecies
  *
@@ -11521,7 +12103,7 @@ db_hdf5_PutMatspecies(DBfile *_dbfile, char *name, char *matname, int nmat,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmatspecies *
-db_hdf5_GetMatspecies(DBfile *_dbfile, char *name)
+db_hdf5_GetMatspecies(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetMatspecies";
@@ -11577,17 +12159,16 @@ db_hdf5_GetMatspecies(DBfile *_dbfile, char *name)
         }
 
         /* Read the raw data */
-        ms->nmatspec = db_hdf5_comprd(dbfile, m.nmatspec, 1);
+        ms->nmatspec = (int *)db_hdf5_comprd(dbfile, m.nmatspec, 1);
         ms->species_mf = db_hdf5_comprd(dbfile, m.species_mf, 0);
-        ms->speclist = db_hdf5_comprd(dbfile, m.speclist, 1);
-        ms->mix_speclist = db_hdf5_comprd(dbfile, m.mix_speclist, 1);
+        ms->speclist = (int *)db_hdf5_comprd(dbfile, m.speclist, 1);
+        ms->mix_speclist = (int *)db_hdf5_comprd(dbfile, m.mix_speclist, 1);
         if (ms->nmatspec && SILO_Globals.dataReadMask & DBMatMatnames)
         {
             for (i=0; i < ms->nmat; i++)
                 nstrs += ms->nmatspec[i];
-            s = db_hdf5_comprd(dbfile, m.specnames, 1);
-            if (s) ms->specnames = DBStringListToStringArray(s, &nstrs,
-                !handleSlashSwap, !skipFirstSemicolon);
+            s = (char *)db_hdf5_comprd(dbfile, m.specnames, 1);
+            if (s) ms->specnames = DBStringListToStringArray(s, &nstrs, !skipFirstSemicolon);
             FREE(s);
         }
         if (ms->nmatspec && SILO_Globals.dataReadMask & DBMatMatcolors)
@@ -11597,9 +12178,8 @@ db_hdf5_GetMatspecies(DBfile *_dbfile, char *name)
                 for (i=0; i < ms->nmat; i++)
                     nstrs += ms->nmatspec[i];
             }
-            s = db_hdf5_comprd(dbfile, m.speccolors, 1);
-            if (s) ms->speccolors = DBStringListToStringArray(s, &nstrs,
-                !handleSlashSwap, !skipFirstSemicolon);
+            s = (char *)db_hdf5_comprd(dbfile, m.speccolors, 1);
+            if (s) ms->speccolors = DBStringListToStringArray(s, &nstrs, !skipFirstSemicolon);
             FREE(s);
         }
 
@@ -11616,7 +12196,6 @@ db_hdf5_GetMatspecies(DBfile *_dbfile, char *name)
     return ms;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutMultimesh
  *
@@ -11684,7 +12263,7 @@ db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
         if (meshnames)
         {
             for (i=len=0; i<nmesh; i++) len += strlen(meshnames[i])+1;
-            s = malloc(len+1);
+            s = (char *)malloc(len+1);
             for (i=len=0; i<nmesh; i++) {
                 if (i) s[len++] = ';';
                 strcpy(s+len, meshnames[i]);
@@ -11719,7 +12298,7 @@ db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
                 m.groupings/*out*/, friendly_name(name,"_groupings",0));
         }
         if (_mm._lgroupings > 0 && _mm._groupnames != NULL) {
-           DBStringArrayToStringList(_mm._groupnames, 
+           DBStringArrayToStringList((char const * const *)_mm._groupnames, 
                            _mm._lgroupings, &t, &len);
            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, t,
                 m.groupnames/*out*/, friendly_name(name,"_groupnames",0));
@@ -11741,6 +12320,22 @@ db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
             db_hdf5_compwr(dbfile, DB_INT, 1, &_mm._empty_cnt, _mm._empty_list,
                 m.empty_list/*out*/, friendly_name(name,"_empty_list",0));
         }
+
+        if (_mm._alt_nodenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_mm._alt_nodenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_nodenum_vars/*out*/, friendly_name(name, "_alt_nodenum_vars",0));
+            FREE(tmp);
+        }
+        
+        if (_mm._alt_zonenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_mm._alt_zonenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_zonenum_vars/*out*/, friendly_name(name, "_alt_zonenum_vars",0));
+            FREE(tmp);
+        }
         
         /* Initialize meta data */
         m.nblocks = nmesh;
@@ -11790,6 +12385,8 @@ db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
             MEMBER_S(str(m.empty_list), empty_list);
             if (m.empty_cnt)   MEMBER_S(int, empty_cnt);
             if (m.repr_block_idx)   MEMBER_S(int, repr_block_idx);
+            MEMBER_S(str(m.alt_nodenum_vars), alt_nodenum_vars);
+            MEMBER_S(str(m.alt_zonenum_vars), alt_zonenum_vars);
         } OUTPUT(dbfile, DB_MULTIMESH, name, &m);
 
         /* Free resources */
@@ -11801,7 +12398,6 @@ db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetMultimesh
  *
@@ -11836,7 +12432,7 @@ db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmultimesh *
-db_hdf5_GetMultimesh(DBfile *_dbfile, char *name)
+db_hdf5_GetMultimesh(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetMultimesh";
@@ -11844,8 +12440,8 @@ db_hdf5_GetMultimesh(DBfile *_dbfile, char *name)
     int                 _objtype;
     DBmultimesh_mt      m;
     DBmultimesh         *mm=NULL;
-    char                *s=NULL;
     char                *t=NULL;
+    char                *meshnames=NULL;
 
     PROTECT {
         /* Open object and make sure it's a multimesh */
@@ -11897,25 +12493,40 @@ db_hdf5_GetMultimesh(DBfile *_dbfile, char *name)
 
         /* Read the raw data */
         if (mm->extentssize>0)
-           mm->extents = db_hdf5_comprd(dbfile, m.extents, 1);
-        mm->zonecounts =  db_hdf5_comprd(dbfile, m.zonecounts, 1);
-        mm->has_external_zones =  db_hdf5_comprd(dbfile, m.has_external_zones, 1);
-        mm->meshtypes = db_hdf5_comprd(dbfile, m.meshtypes, 1);
-        s = db_hdf5_comprd(dbfile, m.meshnames, 1);
-        if (s) mm->meshnames = DBStringListToStringArray(s, &m.nblocks,
-            handleSlashSwap, !skipFirstSemicolon);
-        FREE(s);
-        mm->groupings =  db_hdf5_comprd(dbfile, m.groupings, 1);
-        t = db_hdf5_comprd(dbfile, m.groupnames, 1);
-        if (t) mm->groupnames = DBStringListToStringArray(t, &(mm->lgroupings),
-            !handleSlashSwap, !skipFirstSemicolon);
+           mm->extents = (double*)db_hdf5_comprd(dbfile, m.extents, 1);
+        mm->zonecounts =  (int *)db_hdf5_comprd(dbfile, m.zonecounts, 1);
+        mm->has_external_zones =  (int *)db_hdf5_comprd(dbfile, m.has_external_zones, 1);
+        mm->meshtypes = (int *)db_hdf5_comprd(dbfile, m.meshtypes, 1);
+        meshnames = (char *)db_hdf5_comprd(dbfile, m.meshnames, 1);
+        db_StringListToStringArrayMBOpt(meshnames, &(mm->meshnames), &(mm->meshnames_alloc), m.nblocks);
+        mm->groupings =  (int *)db_hdf5_comprd(dbfile, m.groupings, 1);
+        t = (char *)db_hdf5_comprd(dbfile, m.groupnames, 1);
+        if (t) mm->groupnames = DBStringListToStringArray(t, &(mm->lgroupings), !skipFirstSemicolon);
         FREE(t);
-        mm->file_ns =  db_hdf5_comprd(dbfile, m.file_ns_name, 1);
-        mm->block_ns =  db_hdf5_comprd(dbfile, m.block_ns_name, 1);
+        mm->file_ns =  (char *)db_hdf5_comprd(dbfile, m.file_ns_name, 1);
+        mm->block_ns =  (char *)db_hdf5_comprd(dbfile, m.block_ns_name, 1);
         mm->block_type = m.block_type;
-        mm->empty_list =  db_hdf5_comprd(dbfile, m.empty_list, 1);
+        mm->empty_list =  (int* )db_hdf5_comprd(dbfile, m.empty_list, 1);
         mm->empty_cnt = m.empty_cnt;
         
+        /* alternate node number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_nodenum_vars, 1);
+            if (tmpnames)
+                mm->alt_nodenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
+
+        /* alternate zone number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_zonenum_vars, 1);
+            if (tmpnames)
+                mm->alt_zonenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
+
         H5Tclose(o);
 
     } CLEANUP {
@@ -11925,7 +12536,6 @@ db_hdf5_GetMultimesh(DBfile *_dbfile, char *name)
         } H5E_END_TRY;
         DBFreeMultimesh(mm);
         FREE(t);
-        FREE(s);
     } END_PROTECT;
     return mm;
 }
@@ -11965,9 +12575,9 @@ SILO_CALLBACK int
 db_hdf5_PutMultimeshadj(DBfile *_dbfile, char const *name, int nmesh,
                   int const *meshtypes, int const *nneighbors,
                   int const *neighbors, int const *back,
-                  int const *lnodelists, int *nodelists[],
-                  int const *lzonelists, int *zonelists[],
-                  DBoptlist *optlist)
+                  int const *lnodelists, int const * const *nodelists,
+                  int const *lzonelists, int const * const *zonelists,
+                  DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmultimeshadj_mt   m;
@@ -12283,12 +12893,12 @@ db_hdf5_GetMultimeshadj(DBfile *_dbfile, char const *name, int nmesh,
         mmadj->lneighbors = m.lneighbors;
 
         /* Read the raw data */
-        mmadj->meshtypes = db_hdf5_comprd(dbfile, m.meshtypes, 1);
-        mmadj->nneighbors = db_hdf5_comprd(dbfile, m.nneighbors, 1);
-        mmadj->neighbors = db_hdf5_comprd(dbfile, m.neighbors, 1);
-        mmadj->back = db_hdf5_comprd(dbfile, m.back, 1);
-        mmadj->lnodelists = db_hdf5_comprd(dbfile, m.lnodelists, 1);
-        mmadj->lzonelists = db_hdf5_comprd(dbfile, m.lzonelists, 1);
+        mmadj->meshtypes = (int *)db_hdf5_comprd(dbfile, m.meshtypes, 1);
+        mmadj->nneighbors = (int *)db_hdf5_comprd(dbfile, m.nneighbors, 1);
+        mmadj->neighbors = (int *)db_hdf5_comprd(dbfile, m.neighbors, 1);
+        mmadj->back = (int *)db_hdf5_comprd(dbfile, m.back, 1);
+        mmadj->lnodelists = (int *)db_hdf5_comprd(dbfile, m.lnodelists, 1);
+        mmadj->lzonelists = (int *)db_hdf5_comprd(dbfile, m.lzonelists, 1);
 
         offsetmap = ALLOC_N(int, mmadj->nblocks);
         lneighbors = 0;
@@ -12478,7 +13088,6 @@ db_hdf5_GetMultimeshadj(DBfile *_dbfile, char const *name, int nmesh,
     return mmadj;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutMultivar
  *
@@ -12522,8 +13131,8 @@ db_hdf5_GetMultimeshadj(DBfile *_dbfile, char const *name, int nmesh,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
-                    int vartypes[], DBoptlist *optlist)
+db_hdf5_PutMultivar(DBfile *_dbfile, char const *name, int nvars, char const * const *varnames,
+                    int const *vartypes, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmultivar_mt       m;
@@ -12548,7 +13157,7 @@ db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
         if (varnames)
         {
             for (i=len=0; i<nvars; i++) len += strlen(varnames[i])+1;
-            s = malloc(len+1);
+            s = (char *)malloc(len+1);
             for (i=len=0; i<nvars; i++) {
                 if (i) s[len++] = ';';
                 strcpy(s+len, varnames[i]);
@@ -12574,7 +13183,7 @@ db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
         /* output mrgtree info if we have it */
         if (_mm._region_pnames != NULL) {
             int len;
-            DBStringArrayToStringList(_mm._region_pnames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_mm._region_pnames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.region_pnames/*out*/,
                 friendly_name(name, "_region_pnames", 0));
             FREE(s);
@@ -12615,6 +13224,7 @@ db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
         m.block_type = _mm._block_type;
         m.empty_cnt = _mm._empty_cnt;
         m.repr_block_idx = _mm._repr_block_idx;
+        db_SetMissingValueForPut(m.missing_value, _mm._missing_value);
 
         /* Write meta data to file */
         STRUCT(DBmultivar) {
@@ -12630,6 +13240,7 @@ db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
             if (m.tensor_rank)  MEMBER_S(int, tensor_rank);
             if (m.conserved)    MEMBER_S(int, conserved);
             if (m.extensive)    MEMBER_S(int, extensive);
+            if (m.missing_value)MEMBER_S(double, missing_value);
             MEMBER_S(str(m.vartypes), vartypes);
             MEMBER_S(str(m.varnames), varnames);
             MEMBER_S(str(m.extents), extents);
@@ -12652,7 +13263,6 @@ db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetMultivar
  *
@@ -12693,7 +13303,7 @@ db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars, char *varnames[],
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmultivar *
-db_hdf5_GetMultivar(DBfile *_dbfile, char *name)
+db_hdf5_GetMultivar(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetMultivar";
@@ -12702,6 +13312,7 @@ db_hdf5_GetMultivar(DBfile *_dbfile, char *name)
     DBmultivar_mt       m;
     DBmultivar          *mv=NULL;
     char                *s=NULL;
+    char                *mvnames=NULL;
 
     PROTECT {
         /* Open object and make sure it's a multivar */
@@ -12741,27 +13352,25 @@ db_hdf5_GetMultivar(DBfile *_dbfile, char *name)
         mv->mmesh_name = OPTDUP(m.mmesh_name);
         mv->conserved = m.conserved;
         mv->extensive = m.extensive;
+        db_SetMissingValueForGet(mv->missing_value, m.missing_value);
 
         /* Read the raw data variable types and convert to mem types*/
         if (mv->extentssize>0)
-           mv->extents = db_hdf5_comprd(dbfile, m.extents, 1);
-        mv->vartypes = db_hdf5_comprd(dbfile, m.vartypes, 1);
+           mv->extents = (double *)db_hdf5_comprd(dbfile, m.extents, 1);
+        mv->vartypes = (int *)db_hdf5_comprd(dbfile, m.vartypes, 1);
 
         /* Read the raw data variable names */
-        s = db_hdf5_comprd(dbfile, m.varnames, 1);
-        if (s) mv->varnames = DBStringListToStringArray(s, &m.nvars,
-           handleSlashSwap, !skipFirstSemicolon);
-        FREE(s);
+        mvnames = (char *)db_hdf5_comprd(dbfile, m.varnames, 1);
+        db_StringListToStringArrayMBOpt(mvnames, &(mv->varnames), &(mv->varnames_alloc), m.nvars);
 
-        s = db_hdf5_comprd(dbfile, m.region_pnames, 1);
-        if (s) mv->region_pnames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.region_pnames, 1);
+        if (s) mv->region_pnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
-        mv->file_ns =  db_hdf5_comprd(dbfile, m.file_ns_name, 1);
-        mv->block_ns =  db_hdf5_comprd(dbfile, m.block_ns_name, 1);
+        mv->file_ns =  (char *)db_hdf5_comprd(dbfile, m.file_ns_name, 1);
+        mv->block_ns =  (char *)db_hdf5_comprd(dbfile, m.block_ns_name, 1);
         mv->block_type = m.block_type;
-        mv->empty_list =  db_hdf5_comprd(dbfile, m.empty_list, 1);
+        mv->empty_list =  (int *)db_hdf5_comprd(dbfile, m.empty_list, 1);
         mv->empty_cnt = m.empty_cnt;
         mv->repr_block_idx = m.repr_block_idx - 1;
         
@@ -12778,7 +13387,6 @@ db_hdf5_GetMultivar(DBfile *_dbfile, char *name)
     return mv;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutMultimat
  *
@@ -12817,8 +13425,8 @@ db_hdf5_GetMultivar(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats, char *matnames[],
-                    DBoptlist *optlist)
+db_hdf5_PutMultimat(DBfile *_dbfile, char const *name, int nmats, char const * const *matnames,
+                    DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmultimat_mt       m;
@@ -12843,7 +13451,7 @@ db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats, char *matnames[],
         if (matnames)
         {
             for (i=len=0; i<nmats; i++) len += strlen(matnames[i])+1;
-            s = malloc(len+1);
+            s = (char *)malloc(len+1);
             for (i=len=0; i<nmats; i++) {
                 if (i) s[len++] = ';';
                 strcpy(s+len, matnames[i]);
@@ -12872,7 +13480,7 @@ db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats, char *matnames[],
         }
         if (_mm._matcolors && _mm._nmatnos > 0) {
             int len; char *tmp;
-            DBStringArrayToStringList(_mm._matcolors,
+            DBStringArrayToStringList((char const * const *)_mm._matcolors,
                 _mm._nmatnos, &tmp, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
                 m.mat_colors/*out*/, friendly_name(name,"_matcolors", 0));
@@ -12880,7 +13488,7 @@ db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats, char *matnames[],
         }
         if (_mm._matnames && _mm._nmatnos > 0) {
             int len; char *tmp;
-            DBStringArrayToStringList(_mm._matnames,
+            DBStringArrayToStringList((char const * const *)_mm._matnames,
                 _mm._nmatnos, &tmp, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
                 m.material_names/*out*/, friendly_name(name,"_material_names", 0));
@@ -12955,7 +13563,6 @@ db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats, char *matnames[],
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetMultimat
  *
@@ -12987,7 +13594,7 @@ db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats, char *matnames[],
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmultimat *
-db_hdf5_GetMultimat(DBfile *_dbfile, char *name)
+db_hdf5_GetMultimat(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetMultimat";
@@ -12995,7 +13602,7 @@ db_hdf5_GetMultimat(DBfile *_dbfile, char *name)
     int                 _objtype;
     DBmultimat_mt       m;
     DBmultimat          *mm=NULL;
-    char                *s=NULL;
+    char                *matnames=NULL;
 
     PROTECT {
         /* Open object and make sure it's a multimat */
@@ -13035,31 +13642,29 @@ db_hdf5_GetMultimat(DBfile *_dbfile, char *name)
         mm->mmesh_name = OPTDUP(m.mmesh_name);
 
         /* Read the raw data */
-        mm->mixlens = db_hdf5_comprd(dbfile, m.mixlens, 1);
-        mm->matcounts = db_hdf5_comprd(dbfile, m.matcounts, 1);
-        mm->matlists = db_hdf5_comprd(dbfile, m.matlists, 1);
-        mm->matnos = db_hdf5_comprd(dbfile, m.matnos, 1);
-        s = db_hdf5_comprd(dbfile, m.matnames, 1);
-        if (s) mm->matnames = DBStringListToStringArray(s, &m.nmats,
-            handleSlashSwap, !skipFirstSemicolon);
-        FREE(s);
+        mm->mixlens = (int *)db_hdf5_comprd(dbfile, m.mixlens, 1);
+        mm->matcounts = (int *)db_hdf5_comprd(dbfile, m.matcounts, 1);
+        mm->matlists = (int *)db_hdf5_comprd(dbfile, m.matlists, 1);
+        mm->matnos = (int *)db_hdf5_comprd(dbfile, m.matnos, 1);
+        matnames = (char *)db_hdf5_comprd(dbfile, m.matnames, 1);
+        db_StringListToStringArrayMBOpt(matnames, &(mm->matnames), &(mm->matnames_alloc), m.nmats);
 
         if (m.nmatnos > 0) {
-            char *tmpmaterial_names = db_hdf5_comprd(dbfile, m.material_names, 1);
-            char *tmpmat_colors = db_hdf5_comprd(dbfile, m.mat_colors, 1);
+            char *tmpmaterial_names = (char *)db_hdf5_comprd(dbfile, m.material_names, 1);
+            char *tmpmat_colors = (char *)db_hdf5_comprd(dbfile, m.mat_colors, 1);
             if (tmpmaterial_names)
                 mm->material_names = DBStringListToStringArray(tmpmaterial_names,
-                    &m.nmatnos, !handleSlashSwap, !skipFirstSemicolon);
+                    &m.nmatnos, !skipFirstSemicolon);
             if (tmpmat_colors)
                 mm->matcolors = DBStringListToStringArray(tmpmat_colors,
-                    &m.nmatnos, !handleSlashSwap, !skipFirstSemicolon);
+                    &m.nmatnos, !skipFirstSemicolon);
             FREE(tmpmaterial_names);
             FREE(tmpmat_colors);
         }
 
-        mm->file_ns =  db_hdf5_comprd(dbfile, m.file_ns_name, 1);
-        mm->block_ns =  db_hdf5_comprd(dbfile, m.block_ns_name, 1);
-        mm->empty_list =  db_hdf5_comprd(dbfile, m.empty_list, 1);
+        mm->file_ns =  (char *)db_hdf5_comprd(dbfile, m.file_ns_name, 1);
+        mm->block_ns =  (char *)db_hdf5_comprd(dbfile, m.block_ns_name, 1);
+        mm->empty_list =  (int *)db_hdf5_comprd(dbfile, m.empty_list, 1);
         mm->empty_cnt = m.empty_cnt;
         mm->repr_block_idx = m.repr_block_idx - 1;
         
@@ -13071,12 +13676,10 @@ db_hdf5_GetMultimat(DBfile *_dbfile, char *name)
             H5Tclose(o);
         } H5E_END_TRY;
         DBFreeMultimat(mm);
-        FREE(s);
     } END_PROTECT;
     return mm;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutMultimatspecies
  *
@@ -13115,8 +13718,8 @@ db_hdf5_GetMultimat(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
-                           char *specnames[], DBoptlist *optlist)
+db_hdf5_PutMultimatspecies(DBfile *_dbfile, char const *name, int nspec,
+                           char const * const *specnames, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmultimatspecies_mt m;
@@ -13141,7 +13744,7 @@ db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
         if (specnames)
         {
             for (i=len=0; i<nspec; i++) len += strlen(specnames[i])+1;
-            s = malloc(len+1);
+            s = (char *)malloc(len+1);
             for (i=len=0; i<nspec; i++) {
                 if (i) s[len++] = ';';
                 strcpy(s+len, specnames[i]);
@@ -13162,7 +13765,7 @@ db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
                 int len; char *tmp;
                 for (i=0; i < _mm._nmat; i++)
                     nstrs += _mm._nmatspec[i];
-                DBStringArrayToStringList(_mm._specnames, nstrs, &tmp, &len);
+                DBStringArrayToStringList((char const * const *)_mm._specnames, nstrs, &tmp, &len);
                 db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
                     m.species_names/*out*/, friendly_name(name,"_species_names", 0));
                 FREE(tmp);
@@ -13175,7 +13778,7 @@ db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
                     for (i=0; i < _mm._nmat; i++)
                         nstrs += _mm._nmatspec[i];
                 }
-                DBStringArrayToStringList(_mm._speccolors, nstrs, &tmp, &len);
+                DBStringArrayToStringList((char const * const *)_mm._speccolors, nstrs, &tmp, &len);
                 db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
                     m.speccolors/*out*/, friendly_name(name,"_speccolors", 0));
                 FREE(tmp);
@@ -13245,7 +13848,6 @@ db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetMultimatspecies
  *
@@ -13276,7 +13878,7 @@ db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmultimatspecies *
-db_hdf5_GetMultimatspecies(DBfile *_dbfile, char *name)
+db_hdf5_GetMultimatspecies(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetMultimatspecies";
@@ -13284,7 +13886,7 @@ db_hdf5_GetMultimatspecies(DBfile *_dbfile, char *name)
     int                 _objtype, i, nstrs=0;
     DBmultimatspecies_mt m;
     DBmultimatspecies   *mm=NULL;
-    char                *s=NULL;
+    char                *specnames=NULL;
 
     PROTECT {
         /* Open object and make sure it's a multimatspecies */
@@ -13320,24 +13922,21 @@ db_hdf5_GetMultimatspecies(DBfile *_dbfile, char *name)
         mm->grouporigin = m.grouporigin;
         mm->guihide = m.guihide;
         mm->nmat = m.nmat;
-        mm->nmatspec = db_hdf5_comprd(dbfile, m.nmatspec, 1);
+        mm->nmatspec = (int *)db_hdf5_comprd(dbfile, m.nmatspec, 1);
 
         /* Read the raw data */
-        s = db_hdf5_comprd(dbfile, m.specnames, 1);
-        if (s) mm->specnames = DBStringListToStringArray(s, &m.nspec,
-            handleSlashSwap, !skipFirstSemicolon);
-        FREE(s);
+        specnames = (char *)db_hdf5_comprd(dbfile, m.specnames, 1);
+        db_StringListToStringArrayMBOpt(specnames, &(mm->specnames), &(mm->specnames_alloc), m.nspec);
         
         if (mm->nmat > 0 && mm->nmatspec) {
-            char *tmpspecies_names = db_hdf5_comprd(dbfile, m.species_names, 1);
-            char *tmpspeccolors = db_hdf5_comprd(dbfile, m.speccolors, 1);
+            char *tmpspecies_names = (char *)db_hdf5_comprd(dbfile, m.species_names, 1);
+            char *tmpspeccolors = (char *)db_hdf5_comprd(dbfile, m.speccolors, 1);
   
             if (tmpspecies_names)
             {
                 for (i = 0; i < mm->nmat; i++)
                     nstrs += mm->nmatspec[i];
-                mm->species_names = DBStringListToStringArray(tmpspecies_names, &nstrs,
-                    !handleSlashSwap, !skipFirstSemicolon);
+                mm->species_names = DBStringListToStringArray(tmpspecies_names, &nstrs, !skipFirstSemicolon);
             }
             if (tmpspeccolors)
             {
@@ -13346,16 +13945,15 @@ db_hdf5_GetMultimatspecies(DBfile *_dbfile, char *name)
                     for (i = 0; i < mm->nmat; i++)
                         nstrs += mm->nmatspec[i];
                 }
-                mm->speccolors = DBStringListToStringArray(tmpspeccolors, &nstrs,
-                    !handleSlashSwap, !skipFirstSemicolon);
+                mm->speccolors = DBStringListToStringArray(tmpspeccolors, &nstrs, !skipFirstSemicolon);
             }
             FREE(tmpspecies_names);
             FREE(tmpspeccolors);
         }
 
-        mm->file_ns =  db_hdf5_comprd(dbfile, m.file_ns_name, 1);
-        mm->block_ns =  db_hdf5_comprd(dbfile, m.block_ns_name, 1);
-        mm->empty_list =  db_hdf5_comprd(dbfile, m.empty_list, 1);
+        mm->file_ns =  (char *)db_hdf5_comprd(dbfile, m.file_ns_name, 1);
+        mm->block_ns =  (char *)db_hdf5_comprd(dbfile, m.block_ns_name, 1);
+        mm->empty_list =  (int *)db_hdf5_comprd(dbfile, m.empty_list, 1);
         mm->empty_cnt = m.empty_cnt;
         mm->repr_block_idx = m.repr_block_idx;
 
@@ -13367,12 +13965,10 @@ db_hdf5_GetMultimatspecies(DBfile *_dbfile, char *name)
             H5Tclose(o);
         } H5E_END_TRY;
         DBFreeMultimatspecies(mm);
-        FREE(s);
     } END_PROTECT;
     return mm;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutPointmesh
  *
@@ -13412,14 +14008,14 @@ db_hdf5_GetMultimatspecies(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims, DB_DTPTR2 _coords,
-                     int nels, int datatype, DBoptlist *optlist)
+db_hdf5_PutPointmesh(DBfile *_dbfile, char const *name, int ndims, DBVCP2_t _coords,
+                     int nels, int datatype, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutPointmesh";
     DBpointmesh_mt      m;
     int                 i;
-    DB_DTPTR          **coords = (DB_DTPTR**) _coords;
+    void const * const *coords = (void const * const *) _coords;
     
     memset(&m, 0, sizeof m);
     PROTECT {
@@ -13443,28 +14039,31 @@ db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims, DB_DTPTR2 _coords,
             _pm._dtime_set, _pm._dtime, _pm._cycle);
 
         /* Write raw data arrays */
-        for (i=0; i<ndims; i++) {
+        for (i=0; i<ndims && nels>0; i++) {
             db_hdf5_compwr(dbfile, datatype, 1, &nels, coords[i],
                 m.coord[i]/*out*/, friendly_name(name, "_coord%d", &i));
         }
 
         /* Find the mesh extents from the coordinate arrays */
-        if (DB_DOUBLE==datatype) {
-            for (i=0; i<ndims; i++) {
-                _DBdarrminmax(((double**)coords)[i], nels,
-                              m.min_extents+i, m.max_extents+i);
-            }
-        } else {
-            for (i=0; i<ndims; i++) {
-                float min_extents, max_extents;
-                _DBarrminmax(coords[i], nels, &min_extents, &max_extents);
-                m.min_extents[i] = min_extents;
-                m.max_extents[i] = max_extents;
+        if (nels>0)
+        {
+            if (DB_DOUBLE==datatype) {
+                for (i=0; i<ndims; i++) {
+                    _DBdarrminmax(((double**)coords)[i], nels,
+                                  m.min_extents+i, m.max_extents+i);
+                }
+            } else {
+                for (i=0; i<ndims; i++) {
+                    float min_extents, max_extents;
+                    _DBarrminmax((float*)coords[i], nels, &min_extents, &max_extents);
+                    m.min_extents[i] = min_extents;
+                    m.max_extents[i] = max_extents;
+                }
             }
         }
 
         /* Global node numbers */
-        if (_pm._gnodeno)
+        if (nels>0 && _pm._gnodeno)
         {
             if (_pm._llong_gnodeno)
                 db_hdf5_compwr(dbfile, DB_LONG_LONG, 1, &nels, _pm._gnodeno,
@@ -13474,6 +14073,20 @@ db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims, DB_DTPTR2 _coords,
                     m.gnodeno/*out*/, friendly_name(name, "_gnodeno", 0));
         }
 
+        if (nels>0 && _pm._ghost_node_labels)
+        {
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &nels, _pm._ghost_node_labels,
+                    m.ghost_node_labels/*out*/, friendly_name(name, "_ghost_node_labels", 0));
+        }
+
+        if (_pm._alt_nodenum_vars) {
+            int len, nvars=-1; char *tmp;
+            DBStringArrayToStringList((char const * const *)_pm._alt_nodenum_vars, nvars, &tmp, &len);
+            db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, tmp,
+                m.alt_nodenum_vars/*out*/, friendly_name(name, "_alt_nodenum_vars",0));
+            FREE(tmp);
+        }
+
         /* Build header in memory */
         m.ndims = ndims;
         m.nspace = _pm._nspace;
@@ -13514,6 +14127,8 @@ db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims, DB_DTPTR2 _coords,
             MEMBER_S(str(m.gnodeno), gnodeno);
             MEMBER_S(str(m.mrgtree_name), mrgtree_name);
             if (m.gnznodtype    )MEMBER_S(int, gnznodtype);
+            MEMBER_S(str(m.ghost_node_labels), ghost_node_labels);
+            MEMBER_S(str(m.alt_nodenum_vars), alt_nodenum_vars);
         } OUTPUT(dbfile, DB_POINTMESH, name, &m);
 
     } CLEANUP {
@@ -13522,7 +14137,6 @@ db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims, DB_DTPTR2 _coords,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetPointmesh
  *
@@ -13547,7 +14161,7 @@ db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims, DB_DTPTR2 _coords,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBpointmesh *
-db_hdf5_GetPointmesh(DBfile *_dbfile, char *name)
+db_hdf5_GetPointmesh(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetPointmesh";
@@ -13623,6 +14237,20 @@ db_hdf5_GetPointmesh(DBfile *_dbfile, char *name)
             pm->gnodeno = db_hdf5_comprd(dbfile, m.gnodeno, 1);
         pm->gnznodtype = m.gnznodtype?m.gnznodtype:DB_INT;
 
+        if (SILO_Globals.dataReadMask & DBPMGhostNodeLabels)
+        {
+            pm->ghost_node_labels = (char *)db_hdf5_comprd(dbfile, m.ghost_node_labels, 0);
+        }
+
+        /* alternate node number variables */
+        {
+            int nvars = -1;
+            char *tmpnames = (char *)db_hdf5_comprd(dbfile, m.alt_nodenum_vars, 1);
+            if (tmpnames)
+                pm->alt_nodenum_vars = DBStringListToStringArray(tmpnames, &nvars, !skipFirstSemicolon);
+            FREE(tmpnames);
+        }
+
         H5Tclose(o);
     } CLEANUP {
         H5E_BEGIN_TRY {
@@ -13634,7 +14262,6 @@ db_hdf5_GetPointmesh(DBfile *_dbfile, char *name)
     return pm;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutPointvar
  *
@@ -13664,33 +14291,39 @@ db_hdf5_GetPointmesh(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
-                    DB_DTPTR2 _vars, int nels, int datatype, DBoptlist *optlist)
+db_hdf5_PutPointvar(DBfile *_dbfile, char const *name, char const *meshname, int nvars,
+                    DBVCP2_t _vars, int nels, int datatype, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBpointvar_mt       m;
     int                 i, saved_ndims;
     char               *s = 0;
-    DB_DTPTR          **vars = (DB_DTPTR**) _vars;
+    void const * const *vars = (void const * const *) _vars;
 
     memset(&m, 0, sizeof m);
     PROTECT {
         /* Set global options */
         saved_ndims = _pm._ndims;
         memset(&_pm, 0, sizeof _pm);
-        _pm._ndims = _pm._nspace = saved_ndims;
+        _pm._ndims = saved_ndims;
         _pm._group_no = -1;
+        _pm._missing_value = DB_MISSING_VALUE_NOT_SET;
         db_ProcessOptlist(DB_POINTMESH, optlist);
         _pm._nels = nels;
         _pm._minindex = _pm._lo_offset;
         _pm._maxindex = nels - _pm._hi_offset - 1;
 
+        if (nvars>MAX_VARS) {
+            db_perror("too many variables", E_BADARGS, "db_hdf5_PutPointvar");
+            UNWIND();
+        }
+
         /* hack to maintain backward compatibility with pdb driver */
         db_hdf5_handle_ctdt(dbfile, _pm._time_set, _pm._time,
             _pm._dtime_set, _pm._dtime, _pm._cycle);
 
         /* Write raw data arrays */
-        for (i=0; i<nvars; i++) {
+        for (i=0; i<nvars && nels; i++) {
             db_hdf5_compwr(dbfile, datatype, 1, &nels, vars[i],
                 m.data[i]/*out*/, friendly_name(name, nvars==1?"_data":"%d_data", &i));
         }
@@ -13698,7 +14331,7 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         /* output mrgtree info if we have it */
         if (_pm._region_pnames != NULL) {
             int len;
-            DBStringArrayToStringList(_pm._region_pnames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_pm._region_pnames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.region_pnames/*out*/,
                 friendly_name(name, "_region_pnames", 0));
             FREE(s);
@@ -13707,6 +14340,7 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         /* Build header in memory */
         m.nvals = nvars;
         m.nels = nels;
+        m.ndims = _pm._ndims;
         m.nspace = _pm._nspace;
         m.origin = _pm._origin;
         m.min_index = _pm._minindex;
@@ -13719,6 +14353,7 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         m.datatype = (DB_FLOAT==datatype || DB_DOUBLE==datatype)?0:datatype;
         m.conserved = _pm._conserved;
         m.extensive = _pm._extensive;
+        db_SetMissingValueForPut(m.missing_value, _pm._missing_value);
         strcpy(m.meshid, OPT(meshname));
         strcpy(m.label, OPT(_pm._label));
         strcpy(m.units, OPT(_pm._unit));
@@ -13727,6 +14362,7 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
         STRUCT(DBpointvar) {
             if (m.nvals)        MEMBER_S(int, nvals);
             if (m.nels)         MEMBER_S(int, nels);
+            if (m.ndims)        MEMBER_S(int, ndims);
             if (m.nspace)       MEMBER_S(int, nspace);
             if (m.origin)       MEMBER_S(int, origin);
             if (m.datatype)     MEMBER_S(int, datatype);
@@ -13739,6 +14375,7 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
             if (_pm._dtime_set) MEMBER_S(double, dtime);
             if (m.conserved)    MEMBER_S(int, conserved);
             if (m.extensive)    MEMBER_S(int, extensive);
+            if (m.missing_value) MEMBER_S(double, missing_value);
             MEMBER_S(str(m.meshid), meshid);
             MEMBER_S(str(m.label), label);
             MEMBER_S(str(m.units), units);
@@ -13752,7 +14389,6 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetPointvar
  *
@@ -13780,7 +14416,7 @@ db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname, int nvars,
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmeshvar *
-db_hdf5_GetPointvar(DBfile *_dbfile, char *name)
+db_hdf5_GetPointvar(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetPointvar";
@@ -13829,7 +14465,7 @@ db_hdf5_GetPointvar(DBfile *_dbfile, char *name)
         pv->nels = m.nels;
         pv->nvals = m.nvals;
         pv->nspace = m.nspace;
-        pv->ndims = m.nvals;
+        pv->ndims = m.ndims;
         pv->origin = m.origin;
         pv->time = m.time;
         pv->dtime = m.dtime;
@@ -13839,19 +14475,24 @@ db_hdf5_GetPointvar(DBfile *_dbfile, char *name)
         pv->ascii_labels = m.ascii_labels;
         pv->conserved = m.conserved;
         pv->extensive = m.extensive;
+        db_SetMissingValueForGet(pv->missing_value, m.missing_value);
+
+        if (pv->nvals>MAX_VARS) {
+            db_perror("too many variables", E_BADARGS, me);
+            UNWIND();
+        }
 
         /* Read raw data */
-        if (SILO_Globals.dataReadMask & DBPVData && m.nvals)
+        if (SILO_Globals.dataReadMask & DBPVData && m.nvals && m.nels)
         {
-            pv->vals = calloc(m.nvals, sizeof(void*));
+            pv->vals = (void **)calloc(m.nvals, sizeof(void*));
             for (i=0; i<m.nvals; i++) {
                 pv->vals[i] = db_hdf5_comprd(dbfile, m.data[i], 0);
             }
         }
 
-        s = db_hdf5_comprd(dbfile, m.region_pnames, 1);
-        if (s) pv->region_pnames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.region_pnames, 1);
+        if (s) pv->region_pnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
         H5Tclose(o);
@@ -13865,7 +14506,6 @@ db_hdf5_GetPointvar(DBfile *_dbfile, char *name)
     return pv;
 }
         
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_PutCompoundarray
  *
@@ -13886,9 +14526,17 @@ db_hdf5_GetPointvar(DBfile *_dbfile, char *name)
  */
 /*ARGSUSED*/
 SILO_CALLBACK int
-db_hdf5_PutCompoundarray(DBfile *_dbfile, char *name, char *elmtnames[],
-                         int elmtlen[], int nelmts, void *values,
-                         int nvalues, int datatype, DBoptlist *optlist)
+db_hdf5_PutCompoundarray(
+    DBfile *_dbfile,
+    char const *name,
+    char const * const *elmtnames,
+    int const *elmtlen,
+    int nelmts,
+    void const *values,
+    int nvalues,
+    int datatype,
+    DBoptlist const *optlist
+)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBcompoundarray_mt  m;
@@ -13902,7 +14550,7 @@ db_hdf5_PutCompoundarray(DBfile *_dbfile, char *name, char *elmtnames[],
          * component names.
          */
         for (i=len=0; i<nelmts; i++) len += strlen(elmtnames[i])+1;
-        s = malloc(len+1);
+        s = (char *)malloc(len+1);
         for (i=len=0; i<nelmts; i++) {
             if (i) s[len++] = ';';
             strcpy(s+len, elmtnames[i]);
@@ -13942,7 +14590,6 @@ db_hdf5_PutCompoundarray(DBfile *_dbfile, char *name, char *elmtnames[],
     return 0;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_GetCompoundarray
  *
@@ -13963,7 +14610,7 @@ db_hdf5_PutCompoundarray(DBfile *_dbfile, char *name, char *elmtnames[],
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBcompoundarray *
-db_hdf5_GetCompoundarray(DBfile *_dbfile, char *name)
+db_hdf5_GetCompoundarray(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_GetCompoundarray";
@@ -14009,10 +14656,10 @@ db_hdf5_GetCompoundarray(DBfile *_dbfile, char *name)
         if (force_single_g) ca->datatype = DB_FLOAT;
         
         /* Read the raw data */
-        ca->elemlengths = db_hdf5_comprd(dbfile, m.elemlengths, 1);
+        ca->elemlengths = (int *)db_hdf5_comprd(dbfile, m.elemlengths, 1);
         ca->values = db_hdf5_comprd(dbfile, m.values, 1);
-        ca->elemnames = calloc(m.nelems, sizeof(char*));
-        s = db_hdf5_comprd(dbfile, m.elemnames, 1);
+        ca->elemnames = (char **)calloc(m.nelems, sizeof(char*));
+        s = (char *)db_hdf5_comprd(dbfile, m.elemnames, 1);
         for (i=0; i<m.nelems; i++) {
             char *tok = strtok(i?NULL:s, ";");
             ca->elemnames[i] = STRDUP(tok);
@@ -14032,7 +14679,6 @@ db_hdf5_GetCompoundarray(DBfile *_dbfile, char *name)
     return ca;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_InqVarType
  *
@@ -14064,7 +14710,7 @@ db_hdf5_GetCompoundarray(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBObjectType
-db_hdf5_InqVarType(DBfile *_dbfile, char *name)
+db_hdf5_InqVarType(DBfile *_dbfile, char const *name)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_InqVarType";
@@ -14104,7 +14750,6 @@ db_hdf5_InqVarType(DBfile *_dbfile, char *name)
     return (DBObjectType)_objtype;
 }
 
-

 /*-------------------------------------------------------------------------
  * Function:    db_hdf5_InqMeshName
  *
@@ -14130,7 +14775,7 @@ db_hdf5_InqVarType(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_hdf5_InqMeshName(DBfile *_dbfile, char *name, char *meshname/*out*/)
+db_hdf5_InqMeshName(DBfile *_dbfile, char const *name, char *meshname/*out*/)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_InqMeshName";
@@ -14202,7 +14847,7 @@ db_hdf5_InqMeshName(DBfile *_dbfile, char *name, char *meshname/*out*/)
  */
 SILO_CALLBACK int
 db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
-    DBmrgtree *tree, DBoptlist *opts)
+    DBmrgtree const *tree, DBoptlist const *opts)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBmrgtree_mt        m;
@@ -14224,7 +14869,7 @@ db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
         ltree = (DBmrgtnode **) malloc(num_nodes * sizeof(DBmrgtnode*));
 
         /* walk tree to populate the linearized list of nodes ptrs */
-        DBWalkMrgtree(tree, DBLinearizeMrgtree, ltree, DB_POSTORDER);
+        DBWalkMrgtree(tree, (DBmrgwalkcb) DBLinearizeMrgtree, ltree, DB_POSTORDER);
 
         /* form an array of the integer, scalar data at each node */
         intArray = (int *) malloc(num_nodes * sizeof(int) * 6);
@@ -14249,7 +14894,7 @@ db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
         
         /* output all the node names as one long dataset */
         s = 0;
-        DBStringArrayToStringList(strArray, num_nodes, &s, &len);
+        DBStringArrayToStringList((char const * const *)strArray, num_nodes, &s, &len);
         db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.n_name/*out*/,
             friendly_name(name, "_name", 0));
         FREE(s);
@@ -14291,7 +14936,7 @@ db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
         if (n > 0)
         {
             s = 0;
-            DBStringArrayToStringList(strArray, n, &s, &len);
+            DBStringArrayToStringList((char const * const *)strArray, n, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.n_names/*out*/,
                 friendly_name(name, "_names", 0));
             FREE(s);
@@ -14304,7 +14949,7 @@ db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
             strArray[i] = ltree[i]->maps_name;
         s = 0;
         len = 0;
-        DBStringArrayToStringList(strArray, num_nodes, &s, &len);
+        DBStringArrayToStringList((char const * const *)strArray, num_nodes, &s, &len);
         db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.n_maps_name/*out*/,
             friendly_name(name, "_maps_name", 0));
         FREE(s);
@@ -14315,54 +14960,61 @@ db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
             tot_segs += ltree[i]->nsegs * (ltree[i]->narray?ltree[i]->narray:1);
 
         /* linearize and output map segment id data */
-        intArray = (int *) malloc(tot_segs * sizeof(int));
-        n = 0;
-        for (i = 0; i < num_nodes; i++)
-            for (j = 0; j < ltree[i]->nsegs*(ltree[i]->narray?ltree[i]->narray:1); j++)
-                intArray[n++] = ltree[i]->seg_ids[j];
-        db_hdf5_compwr(dbfile, DB_INT, 1, &tot_segs, intArray,
-            m.n_seg_ids/*out*/, friendly_name(name,"_seg_ids", 0));
-        FREE(intArray);
+        if (tot_segs)
+        {
+            intArray = (int *) malloc(tot_segs * sizeof(int));
+            n = 0;
+            for (i = 0; i < num_nodes; i++)
+                for (j = 0; j < ltree[i]->nsegs*(ltree[i]->narray?ltree[i]->narray:1); j++)
+                    intArray[n++] = ltree[i]->seg_ids[j];
+            db_hdf5_compwr(dbfile, DB_INT, 1, &tot_segs, intArray,
+                m.n_seg_ids/*out*/, friendly_name(name,"_seg_ids", 0));
+            FREE(intArray);
 
-        /* linearize and output seg len type data */
-        intArray = (int *) malloc(tot_segs * sizeof(int));
-        n = 0;
-        for (i = 0; i < num_nodes; i++)
-            for (j = 0; j < ltree[i]->nsegs*(ltree[i]->narray?ltree[i]->narray:1); j++)
-                intArray[n++] = ltree[i]->seg_lens[j];
-        db_hdf5_compwr(dbfile, DB_INT, 1, &tot_segs, intArray,
-            m.n_seg_lens/*out*/, friendly_name(name,"_seg_lens", 0));
-        FREE(intArray);
+            /* linearize and output seg len type data */
+            intArray = (int *) malloc(tot_segs * sizeof(int));
+            n = 0;
+            for (i = 0; i < num_nodes; i++)
+                for (j = 0; j < ltree[i]->nsegs*(ltree[i]->narray?ltree[i]->narray:1); j++)
+                    intArray[n++] = ltree[i]->seg_lens[j];
+            db_hdf5_compwr(dbfile, DB_INT, 1, &tot_segs, intArray,
+                m.n_seg_lens/*out*/, friendly_name(name,"_seg_lens", 0));
+            FREE(intArray);
 
-        /* linearize and output seg type data */
-        intArray = (int *) malloc(tot_segs * sizeof(int));
-        n = 0;
-        for (i = 0; i < num_nodes; i++)
-            for (j = 0; j < ltree[i]->nsegs*(ltree[i]->narray?ltree[i]->narray:1); j++)
-                intArray[n++] = ltree[i]->seg_types[j];
-        db_hdf5_compwr(dbfile, DB_INT, 1, &tot_segs, intArray,
-            m.n_seg_types/*out*/, friendly_name(name,"_seg_types", 0));
-        FREE(intArray);
+            /* linearize and output seg type data */
+            intArray = (int *) malloc(tot_segs * sizeof(int));
+            n = 0;
+            for (i = 0; i < num_nodes; i++)
+                for (j = 0; j < ltree[i]->nsegs*(ltree[i]->narray?ltree[i]->narray:1); j++)
+                    intArray[n++] = ltree[i]->seg_types[j];
+            db_hdf5_compwr(dbfile, DB_INT, 1, &tot_segs, intArray,
+                m.n_seg_types/*out*/, friendly_name(name,"_seg_types", 0));
+            FREE(intArray);
+        }
 
         /* form integer array for children data */
         tot_children = 0;
         for (i = 0; i < num_nodes; i++)
             tot_children += ltree[i]->num_children;
-        intArray = (int *) malloc(tot_children * sizeof(int));
-        n = 0;
-        for (i = 0; i < num_nodes; i++)
-            for (j = 0; j < ltree[i]->num_children; j++)
-                intArray[n++] = ltree[i]->children[j]->walk_order;
-        db_hdf5_compwr(dbfile, DB_INT, 1, &tot_children, intArray,
-            m.n_children/*out*/, friendly_name(name,"_children", 0));
-        FREE(intArray);
+        if (tot_children)
+        {
+            intArray = (int *) malloc(tot_children * sizeof(int));
+            n = 0;
+            for (i = 0; i < num_nodes; i++)
+                for (j = 0; j < ltree[i]->num_children; j++)
+                    intArray[n++] = ltree[i]->children[j]->walk_order;
+            db_hdf5_compwr(dbfile, DB_INT, 1, &tot_children, intArray,
+                m.n_children/*out*/, friendly_name(name,"_children", 0));
+            FREE(intArray);
+        }
+
         FREE(ltree);
 
         if (_mrgt._mrgvar_onames)
         {
             s = 0;
             len = 0;
-            DBStringArrayToStringList(_mrgt._mrgvar_onames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_mrgt._mrgvar_onames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.mrgvar_onames/*out*/,
                 friendly_name(name, "_mrgvar_onames", 0));
             FREE(s);
@@ -14372,7 +15024,7 @@ db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
         {
             s = 0;
             len = 0;
-            DBStringArrayToStringList(_mrgt._mrgvar_rnames, -1, &s, &len);
+            DBStringArrayToStringList((char const * const *)_mrgt._mrgvar_rnames, -1, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.mrgvar_rnames/*out*/,
                 friendly_name(name, "_mrgvar_rnames", 0));
             FREE(s);
@@ -14486,7 +15138,7 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
             ltree[i] = (DBmrgtnode *) calloc(1,sizeof(DBmrgtnode));
 
         /* Read the nodal scalar data */
-        intArray = db_hdf5_comprd(dbfile, m.n_scalars, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.n_scalars, 1);
         for (i = 0; (i < num_nodes) && intArray; i++)
         {
             ltree[i]->narray           = intArray[i*6+0];
@@ -14499,20 +15151,18 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
         FREE(intArray);
 
         /* read the node 'name' member */
-        s = db_hdf5_comprd(dbfile, m.n_name, 1);
-        strArray = DBStringListToStringArray(s, &num_nodes,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.n_name, 1);
+        strArray = DBStringListToStringArray(s, &num_nodes, !skipFirstSemicolon);
         for (i = 0; (i < num_nodes) && strArray; i++)
             ltree[i]->name = strArray[i];
         FREE(s);
         FREE(strArray); /* free only top-level array of pointers */
 
         /* read the node 'names' member */
-        s = db_hdf5_comprd(dbfile, m.n_names, 1);
+        s = (char *)db_hdf5_comprd(dbfile, m.n_names, 1);
         if (s)
         {
-            strArray = DBStringListToStringArray(s, 0,
-                !handleSlashSwap, !skipFirstSemicolon);
+            strArray = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
             n = 0;
             for (i = 0; i < num_nodes; i++)
             {
@@ -14537,16 +15187,15 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
         FREE(strArray); /* free only top-level array of pointers */
 
         /* read the maps_name data */
-        s = db_hdf5_comprd(dbfile, m.n_maps_name, 1);
-        strArray = DBStringListToStringArray(s, &num_nodes,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.n_maps_name, 1);
+        strArray = DBStringListToStringArray(s, &num_nodes, !skipFirstSemicolon);
         for (i = 0; i < num_nodes; i++)
             ltree[i]->maps_name = strArray[i];
         FREE(s);
         FREE(strArray); /* free only top-level array of pointers */
 
         /* read the map segment id data */
-        intArray = db_hdf5_comprd(dbfile, m.n_seg_ids, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.n_seg_ids, 1);
         n = 0;
         for (i = 0; (i < num_nodes) && intArray; i++)
         {
@@ -14561,7 +15210,7 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
         FREE(intArray);
 
         /* read the map segment len data */
-        intArray = db_hdf5_comprd(dbfile, m.n_seg_lens, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.n_seg_lens, 1);
         n = 0;
         for (i = 0; (i < num_nodes) && intArray; i++)
         {
@@ -14576,7 +15225,7 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
         FREE(intArray);
 
         /* read the map segment type data */
-        intArray = db_hdf5_comprd(dbfile, m.n_seg_types, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.n_seg_types, 1);
         n = 0;
         for (i = 0; (i < num_nodes) && intArray; i++)
         {
@@ -14591,7 +15240,7 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
         FREE(intArray);
 
         /* read the child ids */
-        intArray = db_hdf5_comprd(dbfile, m.n_children, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.n_children, 1);
         n = 0;
         for (i = 0; (i < num_nodes) && intArray; i++)
         {
@@ -14605,14 +15254,12 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
         }
         FREE(intArray);
 
-        s = db_hdf5_comprd(dbfile, m.mrgvar_onames, 1);
-        if (s) tree->mrgvar_onames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.mrgvar_onames, 1);
+        if (s) tree->mrgvar_onames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
-        s = db_hdf5_comprd(dbfile, m.mrgvar_rnames, 1);
-        if (s) tree->mrgvar_rnames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.mrgvar_rnames, 1);
+        if (s) tree->mrgvar_rnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
         tree->root = ltree[m.root];
@@ -14646,9 +15293,9 @@ db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name)
  */
 SILO_CALLBACK int
 db_hdf5_PutGroupelmap(DBfile *_dbfile, char const *name,
-    int num_segments, int *groupel_types, int *segment_lengths,
-    int *segment_ids, int **segment_data, void **segment_fracs,
-    int fracs_data_type, DBoptlist *opts)
+    int num_segments, int const *groupel_types, int const *segment_lengths,
+    int const *segment_ids, int const * const *segment_data, void const * const *segment_fracs,
+    int fracs_data_type, DBoptlist const *opts)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     DBgroupelmap_mt      m;
@@ -14673,14 +15320,17 @@ db_hdf5_PutGroupelmap(DBfile *_dbfile, char const *name,
         tot_len = 0;
         for (i = 0; i < num_segments; i++)
             tot_len += segment_lengths[i];
-        intArray = (int *) malloc(tot_len * sizeof(int));
-        tot_len = 0;
-        for (i = 0; i < num_segments; i++)
-            for (j = 0; j < segment_lengths[i]; j++)
-                intArray[tot_len++] = segment_data[i][j]; 
-        db_hdf5_compwr(dbfile, DB_INT, 1, &tot_len, intArray,
-            m.segment_data/*out*/, friendly_name(name,"_segment_data", 0));
-        FREE(intArray);
+        if (tot_len)
+        {
+            intArray = (int *) malloc(tot_len * sizeof(int));
+            tot_len = 0;
+            for (i = 0; i < num_segments; i++)
+                for (j = 0; j < segment_lengths[i]; j++)
+                    intArray[tot_len++] = segment_data[i][j]; 
+            db_hdf5_compwr(dbfile, DB_INT, 1, &tot_len, intArray,
+                m.segment_data/*out*/, friendly_name(name,"_segment_data", 0));
+            FREE(intArray);
+        }
 
         /* write out fractional data if we have it */
         if (segment_fracs)
@@ -14812,13 +15462,13 @@ db_hdf5_GetGroupelmap(DBfile *_dbfile, char const *name)
             gm->fracs_data_type = DB_FLOAT;
 
         /* Read the raw data */
-        gm->groupel_types = db_hdf5_comprd(dbfile, m.groupel_types, 1);
-        gm->segment_lengths = db_hdf5_comprd(dbfile, m.segment_lengths, 1);
-        gm->segment_ids = db_hdf5_comprd(dbfile, m.segment_ids, 1);
+        gm->groupel_types = (int *)db_hdf5_comprd(dbfile, m.groupel_types, 1);
+        gm->segment_lengths = (int *)db_hdf5_comprd(dbfile, m.segment_lengths, 1);
+        gm->segment_ids = (int *)db_hdf5_comprd(dbfile, m.segment_ids, 1);
 
         /* read the map segment data */
         gm->segment_data = (int **) malloc(m.num_segments * sizeof(int*));
-        intArray = db_hdf5_comprd(dbfile, m.segment_data, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.segment_data, 1);
         n = 0;
         for (i = 0; (i < m.num_segments) && intArray && gm->segment_lengths; i++)
         {
@@ -14833,10 +15483,10 @@ db_hdf5_GetGroupelmap(DBfile *_dbfile, char const *name)
         }
         FREE(intArray);
 
-        intArray = db_hdf5_comprd(dbfile, m.frac_lengths, 1);
+        intArray = (int *)db_hdf5_comprd(dbfile, m.frac_lengths, 1);
         if (intArray)
         {
-            gm->segment_fracs = malloc(m.num_segments * sizeof(void*));
+            gm->segment_fracs = (void **)malloc(m.num_segments * sizeof(void*));
             fracsArray = db_hdf5_comprd(dbfile, m.segment_fracs, 1);
             n = 0;
             for (i = 0; (i < m.num_segments) && fracsArray; i++)
@@ -14899,9 +15549,9 @@ db_hdf5_GetGroupelmap(DBfile *_dbfile, char const *name)
 SILO_CALLBACK int
 db_hdf5_PutMrgvar(DBfile *_dbfile, char const *name,
     char const *mrgt_name,
-    int ncomps, char **compnames,
-    int nregns, char **reg_pnames,
-    int datatype, void **data, DBoptlist *optlist)
+    int ncomps, char const * const *compnames,
+    int nregns, char const * const *reg_pnames,
+    int datatype, void const * const *data, DBoptlist const *optlist)
 {
     DBfile_hdf5         *dbfile = (DBfile_hdf5*)_dbfile;
     static char         *me = "db_hdf5_PutMrgvar";
@@ -14935,7 +15585,7 @@ db_hdf5_PutMrgvar(DBfile *_dbfile, char const *name,
         nstrs = nregns;
         if (strchr(reg_pnames[0], '%') != 0)
             nstrs = 1;
-        DBStringArrayToStringList(reg_pnames, nstrs, &s, &len);
+        DBStringArrayToStringList((char const * const *)reg_pnames, nstrs, &s, &len);
         db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.reg_pnames/*out*/,
                 friendly_name(name, "_reg_pnames", 0));
         FREE(s);
@@ -14943,7 +15593,7 @@ db_hdf5_PutMrgvar(DBfile *_dbfile, char const *name,
         if (compnames)
         {
             /* output compnames */
-            DBStringArrayToStringList(compnames, ncomps, &s, &len);
+            DBStringArrayToStringList((char const * const *)compnames, ncomps, &s, &len);
             db_hdf5_compwr(dbfile, DB_CHAR, 1, &len, s, m.compnames/*out*/,
                     friendly_name(name, "_compnames", 0));
             FREE(s);
@@ -15039,19 +15689,17 @@ db_hdf5_GetMrgvar(DBfile *_dbfile, char const *name)
             db_perror(name, E_CALLFAIL, me);
             UNWIND();
         }
-        mrgv->data = calloc(m.ncomps, sizeof(void*));
+        mrgv->data = (void **)calloc(m.ncomps, sizeof(void*));
         for (i=0; i<m.ncomps; i++) {
             mrgv->data[i] = db_hdf5_comprd(dbfile, m.data[i], 0);
         }
 
-        s = db_hdf5_comprd(dbfile, m.compnames, 1);
-        if (s) mrgv->compnames = DBStringListToStringArray(s, &m.ncomps,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.compnames, 1);
+        if (s) mrgv->compnames = DBStringListToStringArray(s, &m.ncomps, !skipFirstSemicolon);
         FREE(s);
 
-        s = db_hdf5_comprd(dbfile, m.reg_pnames, 1);
-        if (s) mrgv->reg_pnames = DBStringListToStringArray(s, 0,
-            !handleSlashSwap, !skipFirstSemicolon);
+        s = (char *)db_hdf5_comprd(dbfile, m.reg_pnames, 1);
+        if (s) mrgv->reg_pnames = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
         FREE(s);
 
         H5Tclose(o);
@@ -15151,10 +15799,408 @@ db_hdf5_SortObjectsByOffset(DBfile *_dbfile, int nobjs,
 #endif
 }
 
-#else
+#if HDF5_VERSION_GE(1,8,9)
+/* Definition of callbacks for file image operations. [ */
+
+/*-------------------------------------------------------------------------
+* Function: image_malloc 
+*
+* Purpose: Simulates malloc() function to avoid copying file images.
+*          The application buffer is set to the buffer on only one FAPL.
+*          Then the FAPL buffer can be copied to other FAPL buffers or
+*          to only one VFD buffer. 
+*
+* Return: Address of "allocated" buffer, if successful. Otherwise, it returns
+*         NULL.
+*
+* Programmer: Christian Chilan 
+*
+* Date: October 3, 2011
+*
+*-------------------------------------------------------------------------
+*/
+static void *
+image_malloc(size_t size, H5FD_file_image_op_t file_image_op, void *_udata)
+{
+    db_hdf5_H5LT_file_image_ud_t *udata = (db_hdf5_H5LT_file_image_ud_t *)_udata;
+    void * return_value = NULL;
+    
+    /* callback is only used if the application buffer is not actually copied */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_COPY)) 
+        goto out;
+
+    switch ( file_image_op ) {
+        /* the app buffer is "copied" to only one FAPL. Afterwards, FAPLs can be "copied" */
+        case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_SET:
+            if (udata->app_image_ptr == NULL) 
+                goto out;
+            if (udata->app_image_size != size) 
+                goto out;
+            if (udata->fapl_image_ptr != NULL) 
+                goto out;
+            if (udata->fapl_image_size != 0) 
+                goto out;
+            if (udata->fapl_ref_count != 0) 
+                goto out;
+
+            udata->fapl_image_ptr = udata->app_image_ptr;
+            udata->fapl_image_size = udata->app_image_size;
+            return_value = udata->fapl_image_ptr;
+            udata->fapl_ref_count++;
+	    break;
+
+	case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_COPY:
+            if (udata->fapl_image_ptr == NULL) 
+                goto out;
+            if (udata->fapl_image_size != size) 
+                goto out;
+            if (udata->fapl_ref_count == 0) 
+                goto out;
+
+            return_value = udata->fapl_image_ptr;
+            udata->fapl_ref_count++;
+	    break;
+
+        case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_GET:
+            goto out;
+
+        case H5FD_FILE_IMAGE_OP_FILE_OPEN:
+            /* FAPL buffer is "copied" to only one VFD buffer */
+            if (udata->vfd_image_ptr != NULL) 
+                goto out;
+            if (udata->vfd_image_size != 0) 
+                goto out;
+            if (udata->vfd_ref_count != 0) 
+                goto out;
+            if (udata->fapl_image_ptr == NULL) 
+                goto out;
+            if (udata->fapl_image_size != size) 
+                goto out;
+            if (udata->fapl_ref_count == 0) 
+                goto out;
+
+            udata->vfd_image_ptr = udata->fapl_image_ptr;
+ 	    udata->vfd_image_size = size;
+            udata->vfd_ref_count++;
+            return_value = udata->vfd_image_ptr;
+            break;
+
+	/* added unused labels to shut the compiler up */
+	case H5FD_FILE_IMAGE_OP_NO_OP:
+	case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_CLOSE:
+	case H5FD_FILE_IMAGE_OP_FILE_RESIZE:
+	case H5FD_FILE_IMAGE_OP_FILE_CLOSE:
+        default:
+            goto out;
+    } /* end switch */
+
+    return(return_value);
+
+out:
+    return NULL;
+} /* end image_malloc() */
+
+/*-------------------------------------------------------------------------
+* Function: image_memcpy
+*
+* Purpose:  Simulates memcpy() function to avoid copying file images. 
+*           The image buffer can be set to only one FAPL buffer, and
+*           "copied" to only one VFD buffer. The FAPL buffer can be
+*           "copied" to other FAPLs buffers. 
+*
+* Return: The address of the destination buffer, if successful. Otherwise, it
+*         returns NULL.
+*
+* Programmer: Christian Chilan 
+*
+* Date: October 3, 2011
+*
+*-------------------------------------------------------------------------
+*/
+static void *
+image_memcpy(void *dest, const void *src, size_t size, H5FD_file_image_op_t file_image_op,
+    void *_udata)
+{
+    db_hdf5_H5LT_file_image_ud_t *udata = (db_hdf5_H5LT_file_image_ud_t *)_udata;
+
+    /* callback is only used if the application buffer is not actually copied */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_COPY)) 
+        goto out;
+
+    switch(file_image_op) {
+        case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_SET:
+            if (dest != udata->fapl_image_ptr) 
+                goto out;
+            if (src != udata->app_image_ptr) 
+                goto out;
+            if (size != udata->fapl_image_size) 
+                goto out;
+            if (size != udata->app_image_size) 
+                goto out;
+            if (udata->fapl_ref_count == 0) 
+                goto out;
+            break;
+
+        case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_COPY:
+            if (dest != udata->fapl_image_ptr) 
+                goto out;
+            if (src != udata->fapl_image_ptr) 
+                goto out;
+            if (size != udata->fapl_image_size) 
+                goto out;
+            if (udata->fapl_ref_count < 2) 
+                goto out;
+            break;
+
+        case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_GET:
+            goto out;
+
+        case H5FD_FILE_IMAGE_OP_FILE_OPEN:
+            if (dest != udata->vfd_image_ptr) 
+                goto out;
+            if (src != udata->fapl_image_ptr) 
+                goto out;
+            if (size != udata->vfd_image_size) 
+                goto out;
+            if (size != udata->fapl_image_size) 
+                goto out;
+            if (udata->fapl_ref_count == 0) 
+                goto out;
+            if (udata->vfd_ref_count != 1) 
+                goto out;
+            break;
+
+	/* added unused labels to shut the compiler up */
+	case H5FD_FILE_IMAGE_OP_NO_OP:
+	case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_CLOSE:
+	case H5FD_FILE_IMAGE_OP_FILE_RESIZE:
+	case H5FD_FILE_IMAGE_OP_FILE_CLOSE:
+        default:
+            goto out;
+    } /* end switch */
+
+    return(dest);
+
+out:
+    return NULL;
+} /* end image_memcpy() */
+
+/*-------------------------------------------------------------------------
+* Function: image_realloc 
+*
+* Purpose: Reallocates the shared application image buffer and updates data
+*          structures that manage buffer "copying". 
+*           
+* Return: Address of reallocated buffer, if successful. Otherwise, it returns
+*         NULL.  
+*
+* Programmer: Christian Chilan 
+*
+* Date: October 3, 2011
+*
+*-------------------------------------------------------------------------
+*/
+static void *
+image_realloc(void *ptr, size_t size, H5FD_file_image_op_t file_image_op, void *_udata)
+{
+    db_hdf5_H5LT_file_image_ud_t *udata = (db_hdf5_H5LT_file_image_ud_t *)_udata;
+    void * return_value = NULL;
+
+    /* callback is only used if the application buffer is not actually copied */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_COPY)) 
+        goto out;
+
+    /* realloc() is not allowed when the HDF5 library won't release the image 
+       buffer because reallocation may change the address of the buffer. The
+       new address cannot be communicated to the application to release it. */
+    if (udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_RELEASE) 
+        goto out; 
+
+    /* realloc() is not allowed if the image is open in read-only mode */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_OPEN_RW)) 
+        goto out; 
+
+    if (file_image_op == H5FD_FILE_IMAGE_OP_FILE_RESIZE) {
+        if (udata->vfd_image_ptr != ptr) 
+            goto out; 
+
+        if (udata->vfd_ref_count != 1) 
+            goto out;
+
+        if (NULL == (udata->vfd_image_ptr = realloc(ptr, size)))
+            goto out; 
+            
+        udata->vfd_image_size = size;
+        return_value = udata->vfd_image_ptr;
+    } /* end if */
+    else
+        goto out;
+
+    return(return_value);
+
+out:
+    return NULL;
+} /* end image_realloc() */
+
+
+/*-------------------------------------------------------------------------
+* Function: image_free
+*
+* Purpose: Simulates deallocation of FAPL and VFD buffers by decreasing
+*          reference counters. Shared application buffer is actually
+*          deallocated if there are no outstanding references.
+*
+* Return: SUCCEED or FAIL 
+*
+* Programmer: Christian Chilan 
+*
+* Date: October 3, 2011
+*
+*-------------------------------------------------------------------------
+*/
+static herr_t
+image_free(void *ptr, H5FD_file_image_op_t file_image_op, void *_udata)
+{
+    db_hdf5_H5LT_file_image_ud_t *udata = (db_hdf5_H5LT_file_image_ud_t *)_udata;
+
+    /* callback is only used if the application buffer is not actually copied */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_COPY)) 
+        goto out;
+
+    switch(file_image_op) {
+        case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_CLOSE:
+	    if (udata->fapl_image_ptr != ptr) 
+                goto out;
+            if (udata->fapl_ref_count == 0) 
+                goto out;
+
+            udata->fapl_ref_count--;
+
+            /* release the shared buffer only if indicated by the respective flag and there are no outstanding references */ 
+            if (udata->fapl_ref_count == 0 && udata->vfd_ref_count == 0 &&
+                    !(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_RELEASE)) {
+                free(udata->fapl_image_ptr);
+                udata->app_image_ptr = NULL;
+                udata->fapl_image_ptr = NULL;
+                udata->vfd_image_ptr = NULL;
+            } /* end if */
+            break;
+
+        case H5FD_FILE_IMAGE_OP_FILE_CLOSE:
+            if (udata->vfd_image_ptr != ptr) 
+                goto out;
+            if (udata->vfd_ref_count != 1) 
+                goto out;
+
+            udata->vfd_ref_count--;
+
+            /* release the shared buffer only if indicated by the respective flag and there are no outstanding references */ 
+            if (udata->fapl_ref_count == 0 && udata->vfd_ref_count == 0 &&
+                    !(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_RELEASE)) {
+                free(udata->vfd_image_ptr);
+                udata->app_image_ptr = NULL;
+                udata->fapl_image_ptr = NULL;
+                udata->vfd_image_ptr = NULL;
+            } /* end if */
+            break;
+
+	/* added unused labels to keep the compiler quite */
+	case H5FD_FILE_IMAGE_OP_NO_OP:
+	case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_SET:
+	case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_COPY:
+	case H5FD_FILE_IMAGE_OP_PROPERTY_LIST_GET:
+	case H5FD_FILE_IMAGE_OP_FILE_OPEN:
+	case H5FD_FILE_IMAGE_OP_FILE_RESIZE:
+	default:
+            goto out;
+    } /* end switch */
+
+    return(0);
+
+out:
+    return(-1);
+} /* end image_free() */
+
+/*-------------------------------------------------------------------------
+* Function: udata_copy 
+*
+* Purpose: Simulates the copying of the user data structure utilized in the
+*          management of the "copying" of file images.
+*
+* Return: Address of "newly allocated" structure, if successful. Otherwise, it
+*         returns NULL.
+*
+* Programmer: Christian Chilan 
+*
+* Date: October 3, 2011
+*
+*-------------------------------------------------------------------------
+*/
+static void *
+udata_copy(void *_udata)
+{
+    db_hdf5_H5LT_file_image_ud_t *udata = (db_hdf5_H5LT_file_image_ud_t *)_udata;
+
+    /* callback is only used if the application buffer is not actually copied */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_COPY)) 
+        goto out;
+    if (udata->ref_count == 0) 
+        goto out;
+
+    udata->ref_count++;
+
+    return(udata);
+
+out:
+    return NULL;
+} /* end udata_copy */
+
+
+/*-------------------------------------------------------------------------
+* Function: udata_free
+*
+* Purpose: Simulates deallocation of the user data structure utilized in the
+*          management of the "copying" of file images. The data structure is
+*          actually deallocated when there are no outstanding references. 
+*
+* Return: SUCCEED or FAIL 
+*
+* Programmer: Christian Chilan 
+*
+* Date: October 3, 2011
+*
+*-------------------------------------------------------------------------
+*/
+static herr_t
+udata_free(void *_udata)
+{
+    db_hdf5_H5LT_file_image_ud_t *udata = (db_hdf5_H5LT_file_image_ud_t *)_udata;
+
+    /* callback is only used if the application buffer is not actually copied */
+    if (!(udata->flags & db_hdf5_H5LT_FILE_IMAGE_DONT_COPY)) 
+        goto out;
+    if (udata->ref_count == 0) 
+        goto out;
+
+    udata->ref_count--;
+
+    /* checks that there are no references outstanding before deallocating udata */
+    if (udata->ref_count == 0 && udata->fapl_ref_count == 0 &&
+            udata->vfd_ref_count == 0)
+        free(udata);
+
+    return(0);
+
+out:        
+    return(-1);
+} /* end udata_free */
+#endif /* ] #if HDF5_VERSION_GE(1,8,9) */
+
+#else /* ] defined(HAVE_HDF5_H) && defined(HAVE_LIBHDF5) [ */
+
 /* Stub for when we don't have hdf5 */
 INTERNAL DBfile *
-db_hdf5_Open(char *name, int mode, int subtype)
+db_hdf5_Open(char const *name, int mode, int subtype)
 {
     db_perror(name, E_NOTIMP, "db_hdf5_Open");
     return NULL;
@@ -15162,7 +16208,7 @@ db_hdf5_Open(char *name, int mode, int subtype)
 
 /* Stub for when we don't have hdf5 */
 INTERNAL DBfile *
-db_hdf5_Create(char *name, int mode, int target, int subtype, char *finfo)
+db_hdf5_Create(char const *name, int mode, int target, int subtype, char const *finfo)
 {
     db_perror(name, E_NOTIMP, "db_hdf5_Create");
     return NULL;
@@ -15175,5 +16221,4 @@ db_hdf5_ForceSingle(int satus)
     return 0; /*no-op, don't fail*/
 }
 
-
-#endif /* defined(HAVE_HDF5_H) && defined(HAVE_LIBHDF5) */
+#endif /* ] defined(HAVE_HDF5_H) && defined(HAVE_LIBHDF5) */
diff --git a/src/hdf5_drv/silo_hdf5_private.h b/src/hdf5_drv/silo_hdf5_private.h
index cd62cef..a8d1e46 100644
--- a/src/hdf5_drv/silo_hdf5_private.h
+++ b/src/hdf5_drv/silo_hdf5_private.h
@@ -101,54 +101,76 @@ SILO_CALLBACK int db_hdf5_Close (DBfile *);
 SILO_CALLBACK int db_hdf5_Filters(DBfile *_dbfile, FILE *stream);
 
 /* Directory operations */
-SILO_CALLBACK int db_hdf5_MkDir(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_SetDir(DBfile *_dbfile, char *name);
+SILO_CALLBACK int db_hdf5_MkDir(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_SetDir(DBfile *_dbfile, char const *name);
 SILO_CALLBACK int db_hdf5_GetDir(DBfile *_dbfile, char *name/*out*/);
 SILO_CALLBACK int db_hdf5_CpDir(DBfile *_dbfile, char const *srcDir,
                            DBfile *dstFile, char const *dstDir);
 SILO_CALLBACK int db_hdf5_NewToc(DBfile *_dbfile);
 
 /* Variable inquiries */
-SILO_CALLBACK int db_hdf5_InqVarExists (DBfile *_dbfile, char *varname);
-SILO_CALLBACK int db_hdf5_GetVarLength(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_GetVarByteLength(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_GetVarType(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_GetVarDims(DBfile *_dbfile, char *varname, int maxdims,
+SILO_CALLBACK int db_hdf5_InqVarExists (DBfile *_dbfile, char const *varname);
+SILO_CALLBACK int db_hdf5_GetVarLength(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_GetVarByteLength(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_GetVarType(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_GetVarDims(DBfile *_dbfile, char const *varname, int maxdims,
                                 int *dims/*out*/);
 
 /* Variable I/O */
-SILO_CALLBACK void *db_hdf5_GetVar(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_ReadVar (DBfile *, char *, void *);
-SILO_CALLBACK int db_hdf5_ReadVarSlice (DBfile *, char *, int *, int *, int *,
+SILO_CALLBACK void *db_hdf5_GetVar(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_ReadVar (DBfile *, char const *, void *);
+SILO_CALLBACK int db_hdf5_ReadVarSlice (DBfile *, char const *, int const *, int const *, int const *,
                                    int, void *);
-SILO_CALLBACK int db_hdf5_Write (DBfile *, char *, void *, int *, int, int);
-SILO_CALLBACK int db_hdf5_WriteSlice (DBfile*, char*, void*, int, int[], int[],
-                                 int[], int[], int);
+SILO_CALLBACK int db_hdf5_Write(
+    DBfile *dbfile,
+    char const *array_name,
+    void const *data,
+    int const *dims,
+    int ndims,
+    int datatype
+);
+SILO_CALLBACK int db_hdf5_WriteSlice(
+    DBfile *dbfile,
+    char const *array_name,
+    void const *data,
+    int datatype,
+    int const *offsets,
+    int const *lengths,
+    int const *strides,
+    int const *dims,
+    int ndims
+);
 
 /* Low-level object functions */
-SILO_CALLBACK DBobject *db_hdf5_GetObject(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_GetComponentNames(DBfile *_dbfile, char *objname,
+SILO_CALLBACK DBobject *db_hdf5_GetObject(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_GetComponentNames(DBfile *_dbfile, char const *objname,
                                        char ***comp_names, char ***file_names);
 SILO_CALLBACK int db_hdf5_WriteObject(DBfile *_dbfile, DBobject const *obj, int flags);
 SILO_CALLBACK int db_hdf5_WriteComponent(DBfile *_dbfile, DBobject *obj,
                                     char const *compname, char const *prefix,
                                     char const *datatype, void const *data, int rank,
                                     long const _size[]);
-SILO_CALLBACK int db_hdf5_GetComponentType(DBfile *_dbfile, char *objname,
-                                    char *compname);
-SILO_CALLBACK void *db_hdf5_GetComponent(DBfile *_dbfile, char *objname,
-                                    char *compname);
-SILO_CALLBACK void *db_hdf5_GetComponentStuff(DBfile *_dbfile, char *objname,
-                                    char *compname, int *just_get_datatype);
-SILO_CALLBACK DBObjectType db_hdf5_InqVarType(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_InqMeshName(DBfile *_dbfile, char *name,
+SILO_CALLBACK int db_hdf5_GetComponentType(DBfile *_dbfile, char const *objname,
+                                    char const *compname);
+SILO_CALLBACK void *db_hdf5_GetComponent(DBfile *_dbfile, char const *objname,
+                                    char const *compname);
+SILO_CALLBACK void *db_hdf5_GetComponentStuff(DBfile *_dbfile, char const *objname,
+                                    char const *compname, int *just_get_datatype);
+SILO_CALLBACK DBObjectType db_hdf5_InqVarType(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_InqMeshName(DBfile *_dbfile, char const *name,
                                  char *meshname/*out*/);
 
 /* Curves */
-SILO_CALLBACK int db_hdf5_PutCurve(DBfile *_dbfile, char *name, void *xvals,
-                              void *yvals, int dtype, int npts,
-                              DBoptlist *opts);
-SILO_CALLBACK DBcurve *db_hdf5_GetCurve(DBfile *_dbfile, char *name);
+SILO_CALLBACK int db_hdf5_PutCurve(
+    DBfile *_dbfile,
+    char const *name,
+    void const *xvals,
+    void const *yvals,
+    int dtype,
+    int npts,
+    DBoptlist const *opts
+);
+SILO_CALLBACK DBcurve *db_hdf5_GetCurve(DBfile *_dbfile, char const *name);
 
 /* Csgmeshes */
 SILO_CALLBACK int db_hdf5_PutCsgmesh(DBfile *_dbfile, char const *name, int ndims,
@@ -156,157 +178,202 @@ SILO_CALLBACK int db_hdf5_PutCsgmesh(DBfile *_dbfile, char const *name, int ndim
                                 int const *bndids/*optional*/,
                                 void const *coeffs, int lcoeffs, int datatype,
                                 double const *extents, char const *zonel_name,
-                                DBoptlist *optlist);
+                                DBoptlist const *optlist);
 SILO_CALLBACK DBcsgmesh *db_hdf5_GetCsgmesh(DBfile *_dbfile, char const *name);
 SILO_CALLBACK int db_hdf5_PutCsgvar(DBfile *_dbfile, char const *vname, char const *meshname,
-                               int nvars, char *varnames[], void *vars[],
-                               int nvals, int datatype, int centering, DBoptlist *optlist);
+                               int nvars, char const * const *varnames, void const * const *vars,
+                               int nvals, int datatype, int centering, DBoptlist const *optlist);
 SILO_CALLBACK DBcsgvar *db_hdf5_GetCsgvar(DBfile *_dbfile, char const *name);
 SILO_CALLBACK int db_hdf5_PutCSGZonelist(DBfile *_dbfile, char const *name, int nregs,
                                     int const *typeflags,
                                     int const *leftids, int const *rightids,
                                     void const *xforms, int lxforms, int datatype,
-                                    int nzones, int const *zonelist, DBoptlist *optlist);
+                                    int nzones, int const *zonelist, DBoptlist const *optlist);
 SILO_CALLBACK DBcsgzonelist *db_hdf5_GetCSGZonelist(DBfile *_dbfile, char const *name);
 
 /* Defvars */
-SILO_CALLBACK int db_hdf5_PutDefvars(DBfile *dbfile, char const *name, int ndefs,
-                                char *names[], int const *types,
-                                char *defns[], DBoptlist *opts[]);
+SILO_CALLBACK int db_hdf5_PutDefvars(
+    DBfile *dbfile, char const *name,
+    int ndefs,
+    char const * const *names,
+    int const *types,
+    char const * const *defns,
+    DBoptlist const * const *opts
+);
 SILO_CALLBACK DBdefvars *db_hdf5_GetDefvars(DBfile *_dbfile, char const *name);
 
 /* Quadmeshes */
-SILO_CALLBACK int db_hdf5_PutQuadmesh(DBfile *_dbfile, char *name,
-                                 char *coordnames[], DB_DTPTR2 coords,
-                                 int dims[], int ndims, int datatype,
-                                 int coordtype, DBoptlist *optlist);
-SILO_CALLBACK DBquadmesh *db_hdf5_GetQuadmesh (DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutQuadvar(DBfile *_dbfile, char *name, char *meshname,
-                                int nvars, char *varnames[/*nvars*/],
-                                DB_DTPTR2 vars, int dims[/*ndims*/],
-                                int ndims, DB_DTPTR2 mixvars,
+SILO_CALLBACK int db_hdf5_PutQuadmesh(DBfile *_dbfile, char const *name,
+                                 char const * const *coordnames, DBVCP2_t coords,
+                                 int const *dims, int ndims, int datatype,
+                                 int coordtype, DBoptlist const *optlist);
+SILO_CALLBACK DBquadmesh *db_hdf5_GetQuadmesh (DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutQuadvar(DBfile *_dbfile, char const *name, char const *meshname,
+                                int nvars, char const * const *varnames,
+                                DBVCP2_t vars, int const *dims,
+                                int ndims, DBVCP2_t mixvars,
                                 int mixlen, int datatype, int centering,
-                                DBoptlist *optlist);
-SILO_CALLBACK DBquadvar *db_hdf5_GetQuadvar(DBfile *_dbfile, char *name);
+                                DBoptlist const *optlist);
+SILO_CALLBACK DBquadvar *db_hdf5_GetQuadvar(DBfile *_dbfile, char const *name);
 
 /* Unstructured meshes */
-SILO_CALLBACK int db_hdf5_PutUcdmesh(DBfile *_dbfile, char *name, int ndims,
-                                char *coordnames[/*ndims*/],
-                                DB_DTPTR2 coords, int nnodes,
-                                int nzones, char *zlname, char *flname,
-                                int datatype, DBoptlist *optlist);
-SILO_CALLBACK int db_hdf5_PutUcdsubmesh(DBfile *_dbfile, char *name,
-                                   char *parentmesh, int nzones, char *zlname,
-                                   char *flname, DBoptlist *optlist);
-SILO_CALLBACK DBucdmesh *db_hdf5_GetUcdmesh(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutUcdvar(DBfile *_dbfile, char *name, char *meshname,
-                               int nvars, char *varnames[/*nvars*/],
-                               DB_DTPTR2 vars, int nels,
-                               DB_DTPTR2 mixvars, int mixlen,
+SILO_CALLBACK int db_hdf5_PutUcdmesh(DBfile *_dbfile, char const *name, int ndims,
+                                char const * const *coordnames,
+                                DBVCP2_t coords, int nnodes,
+                                int nzones, char const *zlname, char const *flname,
+                                int datatype, DBoptlist const *optlist);
+SILO_CALLBACK int db_hdf5_PutUcdsubmesh(DBfile *_dbfile, char const *name,
+                                   char const *parentmesh, int nzones, char const *zlname,
+                                   char const *flname, DBoptlist const *optlist);
+SILO_CALLBACK DBucdmesh *db_hdf5_GetUcdmesh(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutUcdvar(DBfile *_dbfile, char const *name, char const *meshname,
+                               int nvars, char const * const *varnames,
+                               DBVCP2_t vars, int nels,
+                               DBVCP2_t mixvars, int mixlen,
                                int datatype, int centering,
-                               DBoptlist *optlist);
-SILO_CALLBACK DBucdvar *db_hdf5_GetUcdvar(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutFacelist(DBfile *_dbfile, char *name, int nfaces,
-                                 int ndims, int *nodelist, int lnodelist,
-                                 int origin, int *zoneno, int *shapesize,
-                                 int *shapecnt, int nshapes, int *types,
-                                 int *typelist, int ntypes);
-SILO_CALLBACK DBfacelist *db_hdf5_GetFacelist(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutZonelist(DBfile *_dbfile, char *name, int nzones,
-                                 int ndims, int nodelist[], int lnodelist,
-                                 int origin, int shapesize[], int shapecnt[],
+                               DBoptlist const *optlist);
+SILO_CALLBACK DBucdvar *db_hdf5_GetUcdvar(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutFacelist(
+    DBfile *_dbfile,
+    char const *name,
+    int nfaces,
+    int ndims,
+    int const *nodelist,
+    int lnodelist,
+    int origin,
+    int const *zoneno,
+    int const *shapesize,
+    int const *shapecnt,
+    int nshapes,
+    int const *types,
+    int const *typelist,
+    int ntypes
+);
+SILO_CALLBACK DBfacelist *db_hdf5_GetFacelist(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutZonelist(DBfile *_dbfile, char const *name, int nzones,
+                                 int ndims, int const *nodelist, int lnodelist,
+                                 int origin, int const *shapesize, int const *shapecnt,
                                  int nshapes);
-SILO_CALLBACK int db_hdf5_PutZonelist2(DBfile *_dbfile, char *name, int nzones,
-                                  int ndims, int nodelist[], int lnodelist,
+SILO_CALLBACK int db_hdf5_PutZonelist2(DBfile *_dbfile, char const *name, int nzones,
+                                  int ndims, int const *nodelist, int lnodelist,
                                   int origin, int lo_offset, int hi_offset,
-                                  int shapetype[], int shapesize[],
-                                  int shapecnt[], int nshapes,
-                                  DBoptlist *optlist);
-SILO_CALLBACK int db_hdf5_PutPHZonelist(DBfile *_dbfile, char *name,
-                                  int nfaces, int *nodecnt, int lnodelist, int *nodelist,
-                                  char *extface,
-                                  int nzones, int *facecnt, int lfacelist, int *facelist,
+                                  int const *shapetype, int const *shapesize,
+                                  int const *shapecnt, int nshapes,
+                                  DBoptlist const *optlist);
+SILO_CALLBACK int db_hdf5_PutPHZonelist(DBfile *_dbfile, char const *name,
+                                  int nfaces, int const *nodecnt, int lnodelist, int const *nodelist,
+                                  char const *extface,
+                                  int nzones, int const *facecnt, int lfacelist, int const *facelist,
                                   int origin, int lo_offset, int hi_offset,
-                                  DBoptlist *optlist);
-SILO_CALLBACK DBzonelist *db_hdf5_GetZonelist(DBfile *_dbfile, char *name);
-SILO_CALLBACK DBphzonelist *db_hdf5_GetPHZonelist(DBfile *_dbfile, char *name);
+                                  DBoptlist const *optlist);
+SILO_CALLBACK DBzonelist *db_hdf5_GetZonelist(DBfile *_dbfile, char const *name);
+SILO_CALLBACK DBphzonelist *db_hdf5_GetPHZonelist(DBfile *_dbfile, char const *name);
 
 /* Materials */
-SILO_CALLBACK int db_hdf5_PutMaterial(DBfile *_dbfile, char *name, char *mname,
-                                 int nmat, int matnos[], int matlist[],
-                                 int dims[], int ndims, int mix_next[],
-                                 int mix_mat[], int mix_zone[], DB_DTPTR1 mix_vf,
-                                 int mixlen, int datatype, DBoptlist *optlist);
-SILO_CALLBACK DBmaterial *db_hdf5_GetMaterial(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutMatspecies(DBfile *_dbfile, char *name, char *matname,
-                                   int nmat, int nmatspec[], int speclist[],
-                                   int dims[], int ndims, int nspecies_mf,
-                                   DB_DTPTR1 species_mf, int mix_speclist[],
+SILO_CALLBACK int db_hdf5_PutMaterial(
+    DBfile *_dbfile,
+    char const *name,
+    char const *mname,
+    int nmat,
+    int const *matnos,
+    int const *matlist,
+    int const *dims,
+    int ndims,
+    int const *mix_next,
+    int const *mix_mat,
+    int const *mix_zone,
+    void const *mix_vf,
+    int mixlen,
+    int datatype,
+    DBoptlist const *optlist
+);
+SILO_CALLBACK DBmaterial *db_hdf5_GetMaterial(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutMatspecies(DBfile *_dbfile, char const *name, char const *matname,
+                                   int nmat, int const *nmatspec, int const *speclist,
+                                   int const *dims, int ndims, int nspecies_mf,
+                                   void const *species_mf, int const *mix_speclist,
                                    int mixlen, int datatype,
-                                   DBoptlist *optlist);
-SILO_CALLBACK DBmatspecies *db_hdf5_GetMatspecies(DBfile *_dbfile, char *name);
+                                   DBoptlist const *optlist);
+SILO_CALLBACK DBmatspecies *db_hdf5_GetMatspecies(DBfile *_dbfile, char const *name);
 
 /* Point meshes */
-SILO_CALLBACK int db_hdf5_PutPointmesh(DBfile *_dbfile, char *name, int ndims,
-                                  DB_DTPTR2 coords, int nels, int datatype,
-                                  DBoptlist *optlist);
-SILO_CALLBACK DBpointmesh *db_hdf5_GetPointmesh(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutPointvar(DBfile *_dbfile, char *name, char *meshname,
-                                 int nvars, DB_DTPTR2 vars, int nels,
-                                 int datatype, DBoptlist *optlist);
-SILO_CALLBACK DBmeshvar *db_hdf5_GetPointvar(DBfile *_dbfile, char *name);
+SILO_CALLBACK int db_hdf5_PutPointmesh(DBfile *_dbfile, char const *name, int ndims,
+                                  DBVCP2_t coords, int nels, int datatype,
+                                  DBoptlist const *optlist);
+SILO_CALLBACK DBpointmesh *db_hdf5_GetPointmesh(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutPointvar(DBfile *_dbfile, char const *name, char const *meshname,
+                                 int nvars, DBVCP2_t vars, int nels,
+                                 int datatype, DBoptlist const *optlist);
+SILO_CALLBACK DBmeshvar *db_hdf5_GetPointvar(DBfile *_dbfile, char const *name);
 
 /* Multiblock meshes */
 SILO_CALLBACK int db_hdf5_PutMultimesh(DBfile *_dbfile, char const *name, int nmesh,
                                   char const *const *meshnames, int const *meshtypes,
                                   DBoptlist const *optlist);
-SILO_CALLBACK int db_hdf5_PutMultimeshadj(DBfile *_dbfile, char const *name, int nmesh,
-                                     int const *meshtypes, int const *nneighbors,
-                                     int const *neighbors, int const *back,
-                                     int const *lnodelists, int *nodelists[],
-                                     int const *lzonelists, int *zonelists[],
-                                     DBoptlist *optlist);
-SILO_CALLBACK DBmultimesh *db_hdf5_GetMultimesh(DBfile *_dbfile, char *name);
+SILO_CALLBACK int db_hdf5_PutMultimeshadj(
+    DBfile *_dbfile,
+    char const *name,
+    int nmesh,
+    int const *meshtypes,
+    int const *nneighbors,
+    int const *neighbors,
+    int const *back,
+    int const *lnodelists,
+    int const * const *nodelists,
+    int const *lzonelists,
+    int const * const *zonelists,
+    DBoptlist const *optlist
+);
+SILO_CALLBACK DBmultimesh *db_hdf5_GetMultimesh(DBfile *_dbfile, char const *name);
 SILO_CALLBACK DBmultimeshadj *db_hdf5_GetMultimeshadj(DBfile *_dbfile, char const *name, int nmesh,
                                                  int const *block_map);
-SILO_CALLBACK int db_hdf5_PutMultivar(DBfile *_dbfile, char *name, int nvars,
-                                 char *varnames[], int vartypes[],
-                                 DBoptlist *optlist);
-SILO_CALLBACK DBmultivar *db_hdf5_GetMultivar(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutMultimat(DBfile *_dbfile, char *name, int nmats,
-                                 char *matnames[], DBoptlist *optlist);
-SILO_CALLBACK DBmultimat *db_hdf5_GetMultimat(DBfile *_dbfile, char *name);
-SILO_CALLBACK int db_hdf5_PutMultimatspecies(DBfile *_dbfile, char *name, int nspec,
-                                        char *specnames[], DBoptlist *optlist);
+SILO_CALLBACK int db_hdf5_PutMultivar(DBfile *_dbfile, char const *name, int nvars,
+                                 char const * const *varnames, int const *vartypes,
+                                 DBoptlist const *optlist);
+SILO_CALLBACK DBmultivar *db_hdf5_GetMultivar(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutMultimat(DBfile *_dbfile, char const *name, int nmats,
+                                 char const * const *matnames, DBoptlist const *optlist);
+SILO_CALLBACK DBmultimat *db_hdf5_GetMultimat(DBfile *_dbfile, char const *name);
+SILO_CALLBACK int db_hdf5_PutMultimatspecies(DBfile *_dbfile, char const *name, int nspec,
+                                        char const * const *specnames, DBoptlist const *optlist);
 SILO_CALLBACK DBmultimatspecies *db_hdf5_GetMultimatspecies(DBfile *_dbfile,
-                                                       char *name);
+                                                       char const *name);
 
 /* Compound arrays */
-SILO_CALLBACK int db_hdf5_PutCompoundarray(DBfile *_dbfile, char *name,
-                                      char *elmtnames[], int elmtlen[],
-                                      int nelmts, void *values, int nvalues,
-                                      int datatype, DBoptlist *optlist);
-SILO_CALLBACK DBcompoundarray *db_hdf5_GetCompoundarray(DBfile *_dbfile,
-                                                   char *name);
+SILO_CALLBACK int db_hdf5_PutCompoundarray(
+    DBfile *_dbfile,
+    char const *name,
+    char const * const *elmtnames,
+    int const *elmtlen,
+    int nelmts,
+    void const *values,
+    int nvalues,
+    int datatype,
+    DBoptlist const *optlist
+);
+SILO_CALLBACK DBcompoundarray *db_hdf5_GetCompoundarray(
+    DBfile *_dbfile,
+    char const *name
+);
 
 /* Mrgtree objects */
 SILO_CALLBACK int db_hdf5_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
-    DBmrgtree *tree, DBoptlist *optlist);
+    DBmrgtree const *tree, DBoptlist const *optlist);
 SILO_CALLBACK DBmrgtree *db_hdf5_GetMrgtree(DBfile *_dbfile, char const *name);
 
 /* groupel maps */
 SILO_CALLBACK int db_hdf5_PutGroupelmap(DBfile *_dbfile, char const *map_name,
-    int num_segments, int *groupel_types, int *segment_lengths,
-    int *segment_ids, int **segment_data, void **segment_fracs,
-    int fracs_data_type, DBoptlist *opts);
+    int num_segments, int const *groupel_types, int const *segment_lengths,
+    int const *segment_ids, int const * const *segment_data, void const * const *segment_fracs,
+    int fracs_data_type, DBoptlist const *opts);
 SILO_CALLBACK DBgroupelmap *db_hdf5_GetGroupelmap(DBfile *dbfile, char const *name);
 
 /* mrgvars */
 SILO_CALLBACK int db_hdf5_PutMrgvar(DBfile *dbfile, char const *name,
                              char const *mrgt_name,
-                             int ncomps, char **compnames,
-                             int nregns, char **reg_pnames,
-                             int datatype, void **data, DBoptlist *opts);
+                             int ncomps, char const * const *compnames,
+                             int nregns, char const * const *reg_pnames,
+                             int datatype, void const * const *data, DBoptlist const *opts);
 SILO_CALLBACK DBmrgvar *db_hdf5_GetMrgvar(DBfile *dbfile, char const *name);
 
 SILO_CALLBACK int db_hdf5_FreeCompressionResources(DBfile *_dbfile,
diff --git a/tools/python/Makefile.am b/src/hzip/Makefile.am
similarity index 82%
copy from tools/python/Makefile.am
copy to src/hzip/Makefile.am
index b266648..5c29a02 100644
--- a/tools/python/Makefile.am
+++ b/src/hzip/Makefile.am
@@ -53,26 +53,48 @@
 ## Procss this file with automake to create Makefile.in
 
 
-lib_LTLIBRARIES = Silo.la
-Silo_la_SOURCES = $(FILES)
-Silo_la_LDFLAGS = -module -avoid-version
-if HDF5_DRV_NEEDED
-  Silo_la_LIBADD = ../../src/libsiloh5.la
-else
-  Silo_la_LIBADD = ../../src/libsilo.la
+if !ZLIB_AVAILABLE
+AM_CPPFLAGS = -DWITHOUT_ZLIB
 endif
 
-AM_CPPFLAGS = $(PYTHON_CPPFLAGS) -I$(top_builddir)/src/silo -I$(top_srcdir)/src/silo -I$(includedir)
+noinst_LTLIBRARIES = libsilo_hzip.la
+libsilo_hzip_la_SOURCES = $(FILES)
 
 noinst_HEADERS = \
- pydbfile.h \
- pydbtoc.h \
- pysilo.h 
+ bitvector.h \
+ hzio.h \
+ hzip.h \
+ hzmap.h \
+ hzmcodec.h \
+ hzmdecoder.h \
+ hzmencoder.h \
+ hzmio.h \
+ hzmpredictor.h \
+ hzncodec.h \
+ hzndecoder.h \
+ hznencoder.h \
+ hznio.h \
+ hznpredictor.h \
+ hzresidual.h \
+ ibstream.h \
+ obstream.h \
+ hzio.inl \
+ hzmcodec.inl \
+ hzncodec.inl \
+ hzndecoder.inl \
+ hznencoder.inl \
+ hznpredictor.inl \
+ hzresidual.inl
 
 FILES = \
- pydbfile.cpp \
- pydbtoc.cpp \
- pysilo.cpp \
- pydbfile.h \
- pydbtoc.h \
- pysilo.h 
+ hzmdecoder.cpp \
+ hzmencoder.cpp \
+ hzmio.cpp \
+ hzmpredictor.cpp \
+ hzmread.cpp \
+ hzmwrite.cpp \
+ hznio.cpp \
+ hznpredictor.cpp \
+ hznread.cpp \
+ hznwrite.cpp \
+ hzutil.cpp
diff --git a/src/filters/Makefile.in b/src/hzip/Makefile.in
similarity index 81%
copy from src/filters/Makefile.in
copy to src/hzip/Makefile.in
index fcd6544..0ba3748 100644
--- a/src/filters/Makefile.in
+++ b/src/hzip/Makefile.in
@@ -88,7 +88,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-subdir = src/filters
+subdir = src/hzip
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -108,25 +108,27 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
-libsilo_filters_la_LIBADD =
-am__objects_1 = f_ale3d.lo f_sample.lo
-am_libsilo_filters_la_OBJECTS = $(am__objects_1)
-libsilo_filters_la_OBJECTS = $(am_libsilo_filters_la_OBJECTS)
+libsilo_hzip_la_LIBADD =
+am__objects_1 = hzmdecoder.lo hzmencoder.lo hzmio.lo hzmpredictor.lo \
+	hzmread.lo hzmwrite.lo hznio.lo hznpredictor.lo hznread.lo \
+	hznwrite.lo hzutil.lo
+am_libsilo_hzip_la_OBJECTS = $(am__objects_1)
+libsilo_hzip_la_OBJECTS = $(am_libsilo_hzip_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(libsilo_filters_la_SOURCES)
-DIST_SOURCES = $(libsilo_filters_la_SOURCES)
+SOURCES = $(libsilo_hzip_la_SOURCES)
+DIST_SOURCES = $(libsilo_hzip_la_SOURCES)
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -181,6 +183,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +232,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -305,22 +305,52 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-noinst_LTLIBRARIES = libsilo_filters.la
-libsilo_filters_la_SOURCES = $(FILES)
-AM_CPPFLAGS = -I$(builddir)/../silo -I$(srcdir)/../silo
+ at ZLIB_AVAILABLE_FALSE@AM_CPPFLAGS = -DWITHOUT_ZLIB
+noinst_LTLIBRARIES = libsilo_hzip.la
+libsilo_hzip_la_SOURCES = $(FILES)
 noinst_HEADERS = \
- filter.h
+ bitvector.h \
+ hzio.h \
+ hzip.h \
+ hzmap.h \
+ hzmcodec.h \
+ hzmdecoder.h \
+ hzmencoder.h \
+ hzmio.h \
+ hzmpredictor.h \
+ hzncodec.h \
+ hzndecoder.h \
+ hznencoder.h \
+ hznio.h \
+ hznpredictor.h \
+ hzresidual.h \
+ ibstream.h \
+ obstream.h \
+ hzio.inl \
+ hzmcodec.inl \
+ hzncodec.inl \
+ hzndecoder.inl \
+ hznencoder.inl \
+ hznpredictor.inl \
+ hzresidual.inl
 
 FILES = \
- f_ale3d.h \
- f_sample.h \
- f_ale3d.c \
- f_sample.c
+ hzmdecoder.cpp \
+ hzmencoder.cpp \
+ hzmio.cpp \
+ hzmpredictor.cpp \
+ hzmread.cpp \
+ hzmwrite.cpp \
+ hznio.cpp \
+ hznpredictor.cpp \
+ hznread.cpp \
+ hznwrite.cpp \
+ hzutil.cpp
 
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .cpp .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -330,9 +360,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/filters/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/hzip/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign src/filters/Makefile
+	  $(AUTOMAKE) --foreign src/hzip/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -360,8 +390,8 @@ clean-noinstLTLIBRARIES:
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libsilo_filters.la: $(libsilo_filters_la_OBJECTS) $(libsilo_filters_la_DEPENDENCIES) 
-	$(LINK)  $(libsilo_filters_la_OBJECTS) $(libsilo_filters_la_LIBADD) $(LIBS)
+libsilo_hzip.la: $(libsilo_hzip_la_OBJECTS) $(libsilo_hzip_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libsilo_hzip_la_OBJECTS) $(libsilo_hzip_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -369,29 +399,38 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/f_ale3d.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/f_sample.Plo at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzmdecoder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzmencoder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzmio.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzmpredictor.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzmread.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzmwrite.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hznio.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hznpredictor.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hznread.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hznwrite.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hzutil.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
diff --git a/src/hzip/bitvector.h b/src/hzip/bitvector.h
new file mode 100644
index 0000000..5f4b8ed
--- /dev/null
+++ b/src/hzip/bitvector.h
@@ -0,0 +1,44 @@
+#ifndef BITVECTOR_H
+#define BITVECTOR_H
+
+#include <cstring>
+
+// replacement for std::vector<bool>
+class BITVECTOR {
+private:
+  // helper class for bit assignment
+  typedef unsigned char BYTE;
+  class BIT {
+  public:
+    BIT(BYTE& byte, BYTE mask) : byte(byte), mask(mask) {}
+    bool operator=(bool value)
+    {
+      byte = BYTE(value ? byte | mask : byte & ~mask);
+      return value;
+    }
+    operator bool() const { return (byte & mask) != 0; }
+  private:
+    BYTE& byte; // reference to target byte
+    BYTE mask;  // mask for target bit
+  };
+
+public:
+  BITVECTOR() : a(0) {}
+  BITVECTOR(size_t size) : a(new BYTE[count(size)]) {}
+  BITVECTOR(size_t size, bool value) : a(new BYTE[count(size)])
+  {
+    memset(a, value ? ~0 : 0, count(size));
+  }
+  ~BITVECTOR() { delete[] a; }
+  BIT operator[](unsigned i) { return BIT(byte(i), mask(i)); }
+  bool operator[](unsigned i) const { return (byte(i) & mask(i)) != 0; }
+
+private:
+  size_t count(size_t size) const { return (size + 7) >> 3; }
+  BYTE mask(unsigned i) const { return BYTE(1 << (i & 0x7)); }
+  BYTE& byte(unsigned i) { return a[i >> 3]; }
+  const BYTE& byte(unsigned i) const { return a[i >> 3]; }
+  BYTE* const a;
+};
+
+#endif
diff --git a/src/hzip/hzio.h b/src/hzip/hzio.h
new file mode 100644
index 0000000..7acb570
--- /dev/null
+++ b/src/hzip/hzio.h
@@ -0,0 +1,22 @@
+#ifndef HZIO_H
+#define HZIO_H
+
+#include <climits>
+#include "ibstream.h"
+#include "obstream.h"
+
+/*@p-u-b-l-i-c---m-a-c-r-o-s-------------------------------------------------*/
+
+#define UCHAR_MASK ((1 << CHAR_BIT) - 1)
+
+/*@p-u-b-l-i-c---t-y-p-e-s---------------------------------------------------*/
+
+// stream access type
+enum HZaccess {
+  hzREAD  = 0,
+  hzWRITE = 1
+};
+
+#include "hzio.inl"
+
+#endif
diff --git a/src/hzip/hzio.inl b/src/hzip/hzio.inl
new file mode 100644
index 0000000..5da1750
--- /dev/null
+++ b/src/hzip/hzio.inl
@@ -0,0 +1,36 @@
+inline int
+bytes(
+  IBSTREAM* in // input stream
+)
+{
+  return in->error() ? in->error() : (int)in->head()->bytes();
+}
+
+inline int
+bytes(
+  OBSTREAM* out // output stream
+)
+{
+  return out->error() ? out->error() : (int)out->tail()->bytes();
+}
+
+inline unsigned
+getuint(
+  IBSTREAM* in // input stream
+)
+{
+  unsigned x = 0;
+  for (unsigned i = 0; i < sizeof(x); i++)
+    x += (unsigned)in->get() << (CHAR_BIT * i);
+  return x;
+}
+
+inline void
+putuint(
+  OBSTREAM* out, // output stream
+  unsigned  x    // value to output
+)
+{
+  for (unsigned i = 0; i < sizeof(x); i++, x >>= CHAR_BIT)
+    out->put(x & UCHAR_MASK);
+}
diff --git a/src/hzip/hzip.h b/src/hzip/hzip.h
new file mode 100644
index 0000000..0423323
--- /dev/null
+++ b/src/hzip/hzip.h
@@ -0,0 +1,353 @@
+/*
+** hzip version 1.0.1, August 6, 2008
+** Part of the LOCAL Toolkit, UCRL-CODE-232243
+** Written by Peter Lindstrom, Lawrence Livermore National Laboratory
+**
+**
+**                               SUMMARY
+**
+** hzip is a library for lossless compression of connectivity, geometry,
+** and related data in structured and unstructured meshes composed of
+** cells with hypercube topology, i.e. line segments in 1D, quadrilaterals
+** in 2D, and hexahedra in 3D.  This space of data sets includes images
+** and voxel grids.  hzip currently supports compression of node-centered
+** floating-point and integer scalars.  Cell-centered data in structured
+** grids can be handled by treating cells as nodes.  (Full support for
+** cell-centered data as well as controlled lossy compression will be
+** available in later releases.)  Though not optimized for, hzip supports
+** mixed and hybrid meshes with a small number of secondary element types
+** such as triangles and wedges through the use of degenerate cells.
+** For best results, the nodes and cells as well as cell orientations
+** should be organized coherently in some nonspecific but easy-to-predict
+** pattern since the compressor must encode and fully preserve this
+** information.  Please see the accompanying documentation and example
+** code for additional details and usage.
+**
+** hzip was developed as part of the LOCAL LDRD project at LLNL, and may
+** be freely used and distributed for noncommercial purposes.  The core
+** library is written in C++ and applications need to be linked with a
+** C++ linker.  The library can, however, be called from C.  For further
+** information and bug reports, please e-mail pl at llnl.gov.
+**
+**
+**                                NOTICE
+**
+** This work was produced at the Lawrence Livermore National Laboratory
+** (LLNL) under contract no. DE-AC-52-07NA27344 (Contract 44) between
+** the U.S. Department of Energy (DOE) and Lawrence Livermore National
+** Security, LLC (LLNS) for the operation of LLNL.  The rights of the
+** Federal Government are reserved under Contract 44.
+**
+**
+**                              DISCLAIMER
+**
+** This work was prepared as an account of work sponsored by an agency of
+** the United States government.  Neither the United States government nor
+** Lawrence Livermore National Security, LLC, nor any of their employees
+** makes any warranty, expressed or implied, or assumes any legal liability
+** or responsibility for the accuracy, completeness, or usefulness of any
+** information, apparatus, product, or process disclosed, or represents
+** that its use would not infringe privately owned rights.  Reference
+** herein to any specific commercial product, process, or service by trade
+** name, trademark, manufacturer, or otherwise does not necessarily
+** constitute or imply its endorsement, recommendation, or favoring by the
+** United States government or Lawrence Livermore National Security, LLC.
+** The views and opinions of authors expressed herein do not necessarily
+** state or reflect those of the United States government or Lawrence
+** Livermore National Security, LLC, and shall not be used for advertising
+** or product endorsement purposes.
+**
+**
+**                            COMMERCIAL USE
+**
+** Commercialization of this product is prohibited without notifying the
+** Department of Energy (DOE) or Lawrence Livermore National Security.
+*/
+
+#ifndef HZIP_H
+#define HZIP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdio.h>
+
+/*@p-u-b-l-i-c---m-a-c-r-o-s-------------------------------------------------*/
+
+#define HZ_VER_MAJOR    1
+#define HZ_VER_MINOR    0
+#define HZ_VER_RELEASE  1
+#define HZ_VER_STRING   "1.0.1"
+
+#define HZ_DIMS_MAX     3                  /* max number of dimensions */
+#define HZ_CELLSIZE_MAX (1 << HZ_DIMS_MAX) /* max number of nodes per cell */
+
+#define HZM_CODEC_BASE  0 /* base mesh codec */
+#define HZM_CODEC_ZLIB  1 /* zlib mesh codec */
+#define HZN_CODEC_BASE  0 /* base node codec */
+#define HZN_CODEC_ZLIB  1 /* zlib node codec */
+
+/*@p-u-b-l-i-c---t-y-p-e-s---------------------------------------------------*/
+
+typedef struct HZMstream HZMstream; /* mesh I/O stream */
+typedef struct HZNstream HZNstream; /* node I/O stream */
+
+typedef enum {
+  hzUCHAR  = 1, /* unsigned char C type */
+  hzUSHORT = 2, /* unsigned short C type */
+  hzINT    = 3, /* int C type */
+  hzFLOAT  = 4, /* float C type */
+  hzDOUBLE = 5  /* double C type */
+} HZtype;
+
+/*@p-u-b-l-i-c---d-a-t-a-----------------------------------------------------*/
+
+/*
+** The baseline codec supports one parameter, "bits," that indirectly
+** specifies how much memory to use both during compression and
+** decompression for hash-based prediction.  The memory usage is
+** 33 * 2^(dims + bits - 3) bytes, or 132 KB for hexahedral meshes with
+** the default setting bits = 12.  Larger values of "bits" generally
+** improve compression.
+*/
+
+static const struct HZMCODECbase {
+  unsigned bits; /* number of hash table bits */
+} hzm_codec_base = { 12 };
+
+/*
+** The zlib codec applies zlib compression on top of the baseline codec,
+** which generally improves compression significantly.  The additional
+** parameters "insize" and "outsize" specify the size of memory buffers
+** used by the zlib compressor.  Larger buffers generally improve speed.
+** The parameter "level" specifies the zlib compression level from -1 to 9:
+** -1 for the default level; 0 for no compression; 1 for maximum speed;
+** and 9 for maximum compression.  NOTE: The HZzlib parameters are shared
+** among codecs, and should not directly be passed to the compressor.
+** Instead, use the HZ*CODECzlib structures.
+*/
+
+struct HZzlib {   /* NOTE: not to be used in isolation */
+  int    level;   /* zlib compression level */
+  size_t insize;  /* byte size of zlib deflate input (uncompressed) buffer */
+  size_t outsize; /* byte size of zlib deflate output (compressed) buffer */
+};
+
+/*
+** zlib codec for mesh connectivity.
+*/
+
+static const struct HZMCODECzlib {
+  unsigned      bits; /* number of hash table bits */
+  struct HZzlib zlib; /* zlib parameters */
+} hzm_codec_zlib = { 12, { -1, 0x6000, 0x2000 } };
+
+/*
+** zlib codec for node-centered data.
+*/
+
+static const struct HZNCODECzlib {
+  struct HZzlib zlib; /* zlib parameters */
+} hzn_codec_zlib = { { -1, 0x6000, 0x2000 } };
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+/*
+** The nodes within each cell can be permuted by specifying hexadecimal
+** digits "perm" that map the source ordering to the canonical ordering
+** assumed by the compressor.  For example, the permutation 0x54672310
+** maps the Gray code ordering below to the canonical binary code ordering,
+** i.e. the i'th hexadecimal digit j (with i = 0 being the rightmost digit)
+** specifies for node #i in the canonical ordering the corresponding
+** node #j in the source ordering.  In the canonical ordering, the i'th
+** bit in the index specifies the "coordinate" (0 or 1) along the i'th
+** dimension (thus the ordering for a quadrilateral follows the ordering
+** for face {0, 1, 2, 3} in the hexahedron shown below).
+**
+**     3-------2       2-------3
+**    /|      /|      /|      /|
+**   4-------5 |     6-------7 |
+**   | |     | | --> | |     | |
+**   | 0-----|-1     | 0-----|-1
+**   |/      |/      |/      |/
+**   7-------6       4-------5
+**
+**   source data     canonical
+**   ordering        ordering
+**
+** Although compression is still possible without permuting nodes, the
+** prediction and compression of node-centered data relies heavily on
+** having the nodes correctly ordered.  While less dependent on ordering,
+** compression of mesh connectivity usually benefits as well from correct
+** node ordering.  NOTE: Since the compressor stores the data in the
+** canonical ordering, the same "perm" value must be passed to the
+** decompressor if the original ordering is to be recovered.
+*/
+
+/*@mesh.connectivity.functions...............................................*/
+
+HZMstream*                /* input stream */
+hzip_mesh_open_file(
+  FILE*       file,       /* compressed input file */
+  unsigned    perm        /* node permutation (0 for default) */
+);
+
+HZMstream*                /* input stream */
+hzip_mesh_open_mem(
+  const void* buffer,     /* pointer to compressed data */
+  size_t      size,       /* byte size of compressed data */
+  unsigned    perm        /* node permutation (0 for default) */
+);
+
+unsigned                  /* mesh dimensionality */
+hzip_mesh_dimensions(
+  HZMstream*  stream      /* input stream */
+);
+
+unsigned                  /* number of cells in input (0 if unknown) */
+hzip_mesh_cells(
+  HZMstream*  stream      /* input stream */
+);
+
+int                       /* number of cells read from stream or error code */
+hzip_mesh_read(
+  HZMstream*  stream,     /* input stream */
+  int*        mesh,       /* array of node indices to read */
+  unsigned    count       /* number of cells to read */
+);
+
+HZMstream*                /* output stream */
+hzip_mesh_create_file(
+  FILE*       file,       /* compressed output file */
+  unsigned    perm,       /* node permutation (0 for default) */
+  unsigned    dims,       /* topological mesh dimensionality (1-3) */
+  unsigned    count,      /* total number of cells */
+  unsigned    codec,      /* codec number */
+  const void* param       /* codec parameters (NULL for default) */
+);
+
+HZMstream*                /* output stream */
+hzip_mesh_create_mem(
+  void*       buffer,     /* pointer to compressed data */
+  size_t      size,       /* byte size of allocated storage */
+  unsigned    perm,       /* node permutation (0 for default) */
+  unsigned    dims,       /* topological mesh dimensionality (1-3) */
+  unsigned    count,      /* total number of cells */
+  unsigned    codec,      /* codec number */
+  const void* param       /* codec parameters (NULL for default) */
+);
+
+int                       /* number of bytes written so far or error code */
+hzip_mesh_write(
+  HZMstream*  stream,     /* output stream */
+  const int*  mesh,       /* array of node indices to write */
+  unsigned    count       /* number of cells to write */
+);
+
+int                       /* number of bytes written so far or error code */
+hzip_mesh_flush(
+  HZMstream*  stream      /* output stream */
+);
+
+int                       /* number of bytes read/written or error code */
+hzip_mesh_close(
+  HZMstream*  stream      /* I/O stream */
+);
+
+unsigned                  /* node permutation */
+hzip_mesh_construct(
+  int*           mesh,    /* array of node indices to construct */
+  unsigned       dims,    /* topological mesh dimensionality (1-3) */
+  const unsigned count[], /* structured grid dimensions (node counts) */
+  int            bias     /* node index bias */
+);
+
+/*@node-centered.data.functions..............................................*/
+
+HZNstream*                /* input stream */
+hzip_node_open_file(
+  FILE*       file,       /* compressed input file */
+  unsigned    perm,       /* node permutation (0 for default) */
+  int         bias        /* node index bias */
+);
+
+HZNstream*                /* input stream */
+hzip_node_open_mem(
+  const void* buffer,     /* pointer to compressed data */
+  size_t      size,       /* byte size of compressed data */
+  unsigned    perm,       /* node permutation (0 for default) */
+  int         bias        /* node index bias */
+);
+
+int                       /* number of nodes read from stream or error code */
+hzip_node_read(
+  HZNstream*  stream,     /* input stream */
+  void*       node,       /* node data array to read to */
+  const int*  mesh,       /* array of node indices */
+  unsigned    count       /* number of cells to visit */
+);
+
+unsigned                  /* mesh dimensionality */
+hzip_node_dimensions(
+  HZNstream*  stream      /* input stream */
+);
+
+unsigned                  /* number of nodes in input (0 if unknown) */
+hzip_node_count(
+  HZNstream*  stream      /* input stream */
+);
+
+HZtype                    /* node data type */
+hzip_node_type(
+  HZNstream*  stream      /* input stream */
+);
+
+HZNstream*                /* output stream */
+hzip_node_create_file(
+  FILE*       file,       /* compressed output file */
+  unsigned    perm,       /* node permutation */
+  int         bias,       /* node index bias */
+  unsigned    dims,       /* topological mesh dimensionality */
+  unsigned    count,      /* total number of nodes */
+  HZtype      type,       /* node data type */
+  unsigned    codec,      /* codec number */
+  const void* param       /* codec parameters */
+);
+
+HZNstream*                /* output stream */
+hzip_node_create_mem(
+  void*       buffer,     /* pointer to compressed data */
+  size_t      size,       /* byte size of allocated storage */
+  unsigned    perm,       /* node permutation */
+  int         bias,       /* node index bias */
+  unsigned    dims,       /* mesh dimensionality */
+  unsigned    count,      /* total number of nodes */
+  HZtype      type,       /* node data type */
+  unsigned    codec,      /* codec number */
+  const void* param       /* codec parameters */
+);
+
+int
+hzip_node_write(
+  HZNstream*  stream,     /* output stream */
+  const void* node,       /* node data array to write from */
+  const int*  mesh,       /* array of node indices */
+  unsigned    count       /* number of cells to visit */
+);
+
+int                       /* number of bytes written so far or error code */
+hzip_node_flush(
+  HZNstream*  stream      /* output stream */
+);
+
+int                       /* number of bytes read/written or error code */
+hzip_node_close(
+  HZNstream*  stream      /* I/O stream */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/hzip/hzmap.h b/src/hzip/hzmap.h
new file mode 100644
index 0000000..fb52284
--- /dev/null
+++ b/src/hzip/hzmap.h
@@ -0,0 +1,140 @@
+#ifndef HZMAP_H
+#define HZMAP_H
+
+#if !defined WITH_REINTERPRET_CAST && !defined WITH_UNION
+#include <cstring>
+#endif
+
+// identity map
+template <typename T>
+class HZmap {
+public:
+  typedef T DOMAIN;
+  typedef T RANGE;
+  T operator()(T x) const { return x; }
+};
+
+// monotonic map between signed and unsigned int
+template <>
+class HZmap<int> {
+public:
+  typedef int DOMAIN;
+  typedef unsigned RANGE;
+  union UNION {
+    UNION(DOMAIN d) : d(d) {}
+    UNION(RANGE r) : r(r) {}
+    DOMAIN d;
+    RANGE r;
+  };
+  int operator()(unsigned u) const
+  {
+    u = ~u > u ? ~u : u - 0x80000000u;
+#ifdef WITH_REINTERPRET_CAST
+    return reinterpret_cast<const int&>(u);
+#elif defined WITH_UNION
+    UNION shared(u);
+    return shared.d;
+#else
+    int i;
+    memcpy(&i, &u, sizeof(i));
+    return i;
+#endif
+  }
+  unsigned operator()(int i) const
+  {
+#ifdef WITH_REINTERPRET_CAST
+    unsigned u = reinterpret_cast<const unsigned&>(i);
+#elif defined WITH_UNION
+    UNION shared(i);
+    unsigned u = shared.r;
+#else
+    unsigned u;
+    memcpy(&u, &i, sizeof(i));
+#endif
+    return ~u < u ? ~u : u + 0x80000000u;
+  }
+};
+
+// monotonic map between float and its binary unsigned integer representation
+template <>
+class HZmap<float> {
+public:
+  typedef float DOMAIN;
+  typedef unsigned RANGE;
+  union UNION {
+    UNION(DOMAIN d) : d(d) {}
+    UNION(RANGE r) : r(r) {}
+    DOMAIN d;
+    RANGE r;
+  };
+  float operator()(unsigned u) const
+  {
+    u = ~u > u ? ~u : u - 0x80000000u;
+#ifdef WITH_REINTERPRET_CAST
+    return reinterpret_cast<const float&>(u);
+#elif defined WITH_UNION
+    UNION shared(u);
+    return shared.d;
+#else
+    float f;
+    memcpy(&f, &u, sizeof(f));
+    return f;
+#endif
+  }
+  unsigned operator()(float f) const
+  {
+#ifdef WITH_REINTERPRET_CAST
+    unsigned u = reinterpret_cast<const unsigned&>(f);
+#elif defined WITH_UNION
+    UNION shared(f);
+    unsigned u = shared.r;
+#else
+    unsigned u;
+    memcpy(&u, &f, sizeof(u));
+#endif
+    return ~u < u ? ~u : u + 0x80000000u;
+  }
+};
+
+// monotonic map between double and its binary unsigned integer representation
+template <>
+class HZmap<double> {
+public:
+  typedef double DOMAIN;
+  typedef unsigned long long RANGE;
+  union UNION {
+    UNION(DOMAIN d) : d(d) {}
+    UNION(RANGE r) : r(r) {}
+    DOMAIN d;
+    RANGE r;
+  };
+  double operator()(unsigned long long u) const
+  {
+    u = ~u > u ? ~u : u - 0x8000000000000000ull;
+#ifdef WITH_REINTERPRET_CAST
+    return reinterpret_cast<const double&>(u);
+#elif defined WITH_UNION
+    UNION shared(u);
+    return shared.d;
+#else
+    double f;
+    memcpy(&f, &u, sizeof(f));
+    return f;
+#endif
+  }
+  unsigned long long operator()(double f) const
+  {
+#ifdef WITH_REINTERPRET_CAST
+    unsigned long long u = reinterpret_cast<const unsigned long long&>(f);
+#elif defined WITH_UNION
+    UNION shared(f);
+    unsigned long long u = shared.r;
+#else
+    unsigned long long u;
+    memcpy(&u, &f, sizeof(u));
+#endif
+    return ~u < u ? ~u : u + 0x8000000000000000ull;
+  }
+};
+
+#endif
diff --git a/src/hzip/hzmcodec.h b/src/hzip/hzmcodec.h
new file mode 100644
index 0000000..0e2a514
--- /dev/null
+++ b/src/hzip/hzmcodec.h
@@ -0,0 +1,40 @@
+#ifndef HZM_CODEC_H
+#define HZM_CODEC_H
+
+#include <climits>
+#include "hzip.h"
+#include "hzresidual.h"
+#include "hzmpredictor.h"
+
+#define HZM_VERSION  0x10
+#define HZM_BUF_HIST (2 * HZ_CELLSIZE_MAX)
+#define HZM_BUF_SIZE (2 * HZM_BUF_HIST)
+
+// base class for mesh encoder/decoder
+class HZMcodec {
+public:
+  inline HZMcodec(unsigned dims = 3, unsigned perm = 0, unsigned bits = HZM_HASH_BITS);
+  inline virtual ~HZMcodec();
+
+protected:
+  // advance node pointer
+  inline void advance();
+
+  // node buffer methods
+  unsigned* begin() { return buffer + HZM_BUF_HIST; }
+  unsigned* end() { return buffer + HZM_BUF_SIZE; }
+  void copy(unsigned* p) { *(p - HZM_BUF_HIST) = *p; }
+
+  const unsigned cellsize;             // number of nodes per cell
+  unsigned mask;                       // prediction mask
+  unsigned count;                      // number of nodes buffered
+  unsigned* node;                      // pointer into buffer
+  unsigned buffer[HZM_BUF_SIZE];       // recent node index history
+  HZresidual<unsigned> diff[CHAR_BIT]; // residuals for last eight nodes
+  unsigned perm[HZ_CELLSIZE_MAX];      // in-cell permutation of nodes
+  HZMpredictor* pred[HZ_CELLSIZE_MAX]; // node index predictors
+};
+
+#include "hzmcodec.inl"
+
+#endif
diff --git a/src/hzip/hzmcodec.inl b/src/hzip/hzmcodec.inl
new file mode 100644
index 0000000..b854d98
--- /dev/null
+++ b/src/hzip/hzmcodec.inl
@@ -0,0 +1,31 @@
+HZMcodec::HZMcodec(unsigned dims, unsigned pcode, unsigned bits) :
+  cellsize(1 << dims),
+  mask(0),
+  count(0),
+  node(begin())
+{
+  for (unsigned i = 0; i < HZM_BUF_SIZE; i++)
+    buffer[i] = 0;
+  if (!pcode)
+    pcode = 0x76543210;
+  for (unsigned i = 0; i < cellsize; i++, pcode >>= 4) {
+    pred[i] = new HZMpredictor(dims, bits);
+    perm[i] = pcode & 0xf;
+  }
+}
+
+HZMcodec::~HZMcodec()
+{
+  for (unsigned i = 0; i < cellsize; i++)
+    delete pred[i];
+}
+
+void
+HZMcodec::advance()
+{
+  // make shadow copy and reset pointer at end of buffer
+  for (unsigned i = 0; i < cellsize; i++)
+    copy(node++);
+  if (node == end())
+    node = begin();
+}
diff --git a/src/hzip/hzmdecoder.cpp b/src/hzip/hzmdecoder.cpp
new file mode 100644
index 0000000..d19764f
--- /dev/null
+++ b/src/hzip/hzmdecoder.cpp
@@ -0,0 +1,33 @@
+#include "hzmdecoder.h"
+
+void
+HZMdecoder::get()
+{
+  // read compressed data for next cell
+  mask = stream->get();
+  for (unsigned i = 0; i < CHAR_BIT; i++)
+    if (mask & (1 << i))
+      diff[i] = HZresidual<unsigned>(stream);
+  count = 0;
+}
+
+unsigned
+HZMdecoder::decode(int* v)
+{
+  // decode cell
+  if (count == CHAR_BIT)
+    get();
+  for (unsigned i = 0; i < cellsize; i++, count++) {
+    bool correct = !(mask & (1 << count));
+    if (!correct) {
+      unsigned q = pred[i]->repredict(node, i);
+      node[i] = q + diff[count];
+    }
+    unsigned p = pred[i]->retrodict(node, i, correct);
+    if (correct)
+      node[i] = p;
+    v[perm[i]] = (int)node[i];
+  }
+  advance();
+  return cellsize;
+}
diff --git a/src/hzip/hzmdecoder.h b/src/hzip/hzmdecoder.h
new file mode 100644
index 0000000..e2b7201
--- /dev/null
+++ b/src/hzip/hzmdecoder.h
@@ -0,0 +1,20 @@
+#ifndef HZM_DECODER_H
+#define HZM_DECODER_H
+
+#include "hzmcodec.h"
+#include "ibstream.h"
+
+// mesh decoder
+class HZMdecoder : public HZMcodec {
+public:
+  HZMdecoder(IBSTREAM* stream, unsigned dims = 3, unsigned perm = 0, unsigned bits = HZM_HASH_BITS) : HZMcodec(dims, perm, bits), stream(stream) { count = CHAR_BIT; }
+
+  // decode node indices of a cell
+  unsigned decode(int* v);
+
+private:
+  void get();
+  IBSTREAM* stream;
+};
+
+#endif
diff --git a/src/hzip/hzmencoder.cpp b/src/hzip/hzmencoder.cpp
new file mode 100644
index 0000000..609c10d
--- /dev/null
+++ b/src/hzip/hzmencoder.cpp
@@ -0,0 +1,39 @@
+#include "hzmencoder.h"
+#include "hzresidual.h"
+
+void
+HZMencoder::put()
+{
+  // write compressed data for last cell(s)
+  stream->put(mask);
+  for (unsigned i = 0; i < CHAR_BIT; i++)
+    if (mask & (1 << i))
+      diff[i].put(stream);
+  mask = count = 0;
+}
+
+unsigned
+HZMencoder::encode(const int* v)
+{
+  // encode cell
+  for (unsigned i = 0; i < cellsize; i++, count++) {
+    node[i] = v[perm[i]];
+    unsigned p = pred[i]->predict(node, i);
+    if (p != node[i]) {
+      unsigned q = pred[i]->repredict(node, i);
+      diff[count] = HZresidual<unsigned>(q, node[i]);
+      mask |= 1 << count;
+    }
+  }
+  if (count == CHAR_BIT)
+    put();
+  advance();
+  return cellsize;
+}
+
+void
+HZMencoder::end()
+{
+  if (count)
+    put();
+}
diff --git a/src/hzip/hzmencoder.h b/src/hzip/hzmencoder.h
new file mode 100644
index 0000000..9171601
--- /dev/null
+++ b/src/hzip/hzmencoder.h
@@ -0,0 +1,23 @@
+#ifndef HZM_ENCODER_H
+#define HZM_ENCODER_H
+
+#include "hzmcodec.h"
+#include "obstream.h"
+
+// mesh encoder
+class HZMencoder : public HZMcodec {
+public:
+  HZMencoder(OBSTREAM* stream, unsigned dims = 3, unsigned perm = 0, unsigned bits = HZM_HASH_BITS) : HZMcodec(dims, perm, bits), stream(stream) {}
+
+  // encode node indices of a cell
+  unsigned encode(const int* v);
+
+  // end encoding
+  void end();
+
+private:
+  void put();
+  OBSTREAM* stream;
+};
+
+#endif
diff --git a/src/hzip/hzmio.cpp b/src/hzip/hzmio.cpp
new file mode 100644
index 0000000..817a4cb
--- /dev/null
+++ b/src/hzip/hzmio.cpp
@@ -0,0 +1,69 @@
+#include "hzip.h"
+#include "hzmio.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// close stream for reading and deallocate
+static int
+read_close(
+  HZMstream* stream // input stream
+)
+{
+  IBSTREAM* in = stream->in;
+  int status = bytes(in);
+
+  delete stream->decoder;
+  delete stream;
+  delete in;
+
+  return status;
+}
+
+// close stream for writing and deallocate
+static int
+write_close(
+  HZMstream* stream // output stream
+)
+{
+  stream->encoder->end();
+  OBSTREAM* out = stream->out;
+  if (!stream->count)
+    putuint(out->tail(), 0);
+  out->close();
+  int status = bytes(out);
+
+  delete stream->encoder;
+  delete stream;
+  delete out;
+
+  return status;
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// return mesh dimensionality
+unsigned
+hzip_mesh_dimensions(
+  HZMstream* stream // I/O stream
+)
+{
+  return stream->dims;
+}
+
+// return number of cells in stream
+unsigned
+hzip_mesh_cells(
+  HZMstream* stream // I/O stream
+)
+{
+  return stream->count;
+}
+
+// close stream and deallocate
+int
+hzip_mesh_close(
+  HZMstream* stream // I/O stream
+)
+{
+  return stream->access == hzREAD ? read_close(stream) : write_close(stream);
+}
diff --git a/src/hzip/hzmio.h b/src/hzip/hzmio.h
new file mode 100644
index 0000000..43d31ef
--- /dev/null
+++ b/src/hzip/hzmio.h
@@ -0,0 +1,25 @@
+#ifndef HZMIO_H
+#define HZMIO_H
+
+#include "hzio.h"
+#include "hzmencoder.h"
+#include "hzmdecoder.h"
+
+// mesh input/output stream
+struct HZMstream {
+  HZMstream(HZaccess access) : access(access) {}
+  HZaccess      access;  // read or write access
+  union {
+    OBSTREAM*   out;     // output stream
+    IBSTREAM*   in;      // input stream
+  };
+  union {
+    HZMencoder* encoder; // mesh compressor
+    HZMdecoder* decoder; // mesh decompressor
+  };
+  unsigned      dims;    // mesh dimensionality
+  unsigned      count;   // total number of cells (0 if unknown)
+  unsigned      avail;   // number of cells left in chunk
+};
+
+#endif
diff --git a/src/hzip/hzmpredictor.cpp b/src/hzip/hzmpredictor.cpp
new file mode 100644
index 0000000..8679ac3
--- /dev/null
+++ b/src/hzip/hzmpredictor.cpp
@@ -0,0 +1,80 @@
+#include "hzmpredictor.h"
+
+#define HZM_ORDER 2
+
+HZMpredictor::HZMpredictor(unsigned dims, unsigned bits) :
+  dims(dims), size(1 << bits), shift(bits / HZM_ORDER), conf(size, false)
+{
+  hash = new unsigned[size];
+  for (unsigned i = 0; i < size; i++)
+    hash[i] = 0;
+}
+
+HZMpredictor::~HZMpredictor()
+{
+  delete[] hash;
+}
+
+unsigned
+HZMpredictor::predict(const unsigned* v, unsigned i)
+{
+  unsigned a = node(v, -1, i - 0) - node(v, -2, i - 0);
+  unsigned b = node(v,  0, i - 1) - node(v, -1, i - 1);
+  unsigned h = index((b << shift) + a);
+  unsigned p = hash[h] + node(v, -1, i) + a;
+  if (p == v[i])
+    conf[h] = true;
+  else {
+    if (conf[h])
+      conf[h] = false;
+    else
+      hash[h] += v[i] - p;
+  }
+  return p;
+}
+
+unsigned
+HZMpredictor::retrodict(const unsigned* v, unsigned i, bool correct)
+{
+  unsigned a = node(v, -1, i - 0) - node(v, -2, i - 0);
+  unsigned b = node(v,  0, i - 1) - node(v, -1, i - 1);
+  unsigned h = index((b << shift) + a);
+  unsigned p = hash[h] + node(v, -1, i) + a;
+  if (correct)
+    conf[h] = true;
+  else {
+    if (conf[h])
+      conf[h] = false;
+    else
+      hash[h] += v[i] - p;
+  }
+  return p;
+}
+
+// Predict v[i] as one of the already encoded neighbors along the up to
+// four axes (up to three within this cell plus the corresponding node
+// in the previous cell).  The chosen axis is the one that minimizes the
+// prediction error (difference) among the past eight nodes (some of
+// which may belong to the previous cell).
+unsigned
+HZMpredictor::repredict(const unsigned* v, unsigned i) const
+{
+  unsigned l = dims;
+  if (i) {
+    unsigned n = 1 << dims;
+    v -= n;
+    i += n;
+    unsigned d[4] = { 0, 0, 0, 0 };
+    unsigned c[4] = { 0, 0, 0, 0 };
+    for (unsigned j = i - n; j < i; j++)
+      for (unsigned k = 0, m = 1; k <= dims; k++, m <<= 1)
+        if (i & j & m) {
+          d[k] += length(v[j], v[j - m]);
+          c[k]++;
+        }
+    for (unsigned k = 0; k < dims; k++)
+      if (c[l] * d[k] < c[k] * d[l])
+        l = k;
+  }
+  return v[(int)i - (1 << l)];
+}
diff --git a/src/hzip/hzmpredictor.h b/src/hzip/hzmpredictor.h
new file mode 100644
index 0000000..187b753
--- /dev/null
+++ b/src/hzip/hzmpredictor.h
@@ -0,0 +1,35 @@
+#ifndef HZM_PREDICTOR_H
+#define HZM_PREDICTOR_H
+
+#include "bitvector.h"
+
+#define HZM_HASH_BITS 12
+
+// mesh predictor of node indices
+class HZMpredictor {
+public:
+  HZMpredictor(unsigned dims = 3, unsigned bits = HZM_HASH_BITS);
+  ~HZMpredictor();
+
+  // primary index prediction for node v[i]
+  unsigned predict(const unsigned* v, unsigned i);
+
+  // primary index prediction for node v[i]
+  unsigned retrodict(const unsigned* v, unsigned i, bool correct);
+
+  // secondary index prediction for node v[i]
+  unsigned repredict(const unsigned* v, unsigned i) const;
+
+private:
+  unsigned index(unsigned x) const { return x & (size - 1); }
+  unsigned length(unsigned u, unsigned v) const { return u > v ? u - v : v - u; }
+  unsigned node(const unsigned* v, int i, int j) const { return v[(i << dims) + j]; }
+
+  const unsigned dims;  // number of dimensions
+  const unsigned size;  // hash table size
+  const unsigned shift; // hash key shift
+  unsigned*      hash;  // hash table
+  BITVECTOR      conf;  // confidence flags for hash entries
+};
+
+#endif
diff --git a/src/hzip/hzmread.cpp b/src/hzip/hzmread.cpp
new file mode 100644
index 0000000..07f1381
--- /dev/null
+++ b/src/hzip/hzmread.cpp
@@ -0,0 +1,106 @@
+#include "hzip.h"
+#include "hzmio.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// read header data
+static HZMstream*
+read_header(
+  IBSTREAM* in,  // input stream
+  unsigned  perm // node permutation
+)
+{
+#ifndef HZ_WITHOUT_MAGIC
+  // magic and format
+  if (in->get() != 'h' ||
+      in->get() != 'z' ||
+      in->get() != 'm' ||
+      in->get() != HZM_VERSION) {
+    delete in;
+    return 0;
+  }
+#endif
+
+  // codec parameters and number of cells
+  HZMstream* stream = new HZMstream(hzREAD);
+  stream->dims = in->get();
+  in->get();
+  unsigned codec = in->get();
+  switch (codec) {
+    case HZM_CODEC_BASE:
+      stream->in = in;
+      break;
+#ifndef WITHOUT_ZLIB
+    case HZM_CODEC_ZLIB:
+      stream->in = new IBSTREAMzlib(in);
+      break;
+#endif
+    default:
+      delete stream;
+      delete in;
+      return 0;
+  }
+  unsigned bits = in->get();
+  stream->count = getuint(in);
+  stream->avail = stream->count ? stream->count : getuint(in);
+
+  // check for errors
+  if (stream->in->error()) {
+    delete stream->in;
+    delete stream;
+    return 0;
+  }
+
+  // initialize decoder
+  stream->decoder = new HZMdecoder(stream->in, stream->dims, perm, bits);
+
+  return stream;
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// open stream for reading mesh from file
+HZMstream*
+hzip_mesh_open_file(
+  FILE*    file, // compressed input file
+  unsigned perm  // node permutation
+)
+{
+  return read_header(new IBSTREAMfile(file), perm);
+}
+
+// open stream for reading mesh from memory
+HZMstream*
+hzip_mesh_open_mem(
+  const void* buffer, // pointer to compressed data
+  size_t      size,   // byte size of compressed data
+  unsigned    perm    // node permutation
+)
+{
+  return read_header(new IBSTREAMmem(buffer, size), perm);
+}
+
+// read and decompress mesh from stream
+int
+hzip_mesh_read(
+  HZMstream* stream, // input stream
+  int*       mesh,   // array of node indices to read
+  unsigned   count   // number of cells to read
+)
+{
+  IBSTREAM* in = stream->in;
+
+  // decompress mesh connectivity
+  unsigned left = count;
+  for (unsigned read; left && stream->avail; left -= read) {
+    read = left < stream->avail ? left : stream->avail;
+    for (unsigned i = 0; i < read; i++)
+      mesh += stream->decoder->decode(mesh);
+    if (stream->count)
+      stream->avail -= read;
+    else
+      stream->avail = getuint(in->head());
+  }
+
+  return in->error() ? in->error() : (int)(count - left);
+}
diff --git a/src/hzip/hzmwrite.cpp b/src/hzip/hzmwrite.cpp
new file mode 100644
index 0000000..02e16c0
--- /dev/null
+++ b/src/hzip/hzmwrite.cpp
@@ -0,0 +1,137 @@
+#include "hzip.h"
+#include "hzmio.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// write header data
+static HZMstream*
+write_header(
+  OBSTREAM*   out,   // output stream
+  unsigned    perm,  // node permutation
+  unsigned    dims,  // mesh dimensionality
+  unsigned    count, // total number of cells
+  unsigned    codec, // codec number
+  const void* param  // codec parameters
+)
+{
+  HZMstream* stream = new HZMstream(hzWRITE);
+  unsigned bits;
+
+  switch (codec) {
+    case HZM_CODEC_BASE: {
+        const HZMCODECbase* p = param ? (const HZMCODECbase*)param : &hzm_codec_base;
+        stream->out = out;
+        bits = p->bits;
+      }
+      break;
+#ifndef WITHOUT_ZLIB
+    case HZM_CODEC_ZLIB: {
+        const HZMCODECzlib* p = param ? (const HZMCODECzlib*)param : &hzm_codec_zlib;
+        stream->out = new OBSTREAMzlib(out, p->zlib.level, p->zlib.insize, p->zlib.outsize);
+        bits = p->bits;
+      }
+      break;
+#endif
+    default:
+      delete stream;
+      delete out;
+      return 0;
+  }
+  stream->dims = dims;
+  stream->count = count;
+
+#ifndef HZ_WITHOUT_MAGIC
+  // magic and format
+  out->put('h');
+  out->put('z');
+  out->put('m');
+  out->put(HZM_VERSION);
+#endif
+
+  // cell count and codec parameters
+  out->put(dims);
+  out->put(0);
+  out->put(codec);
+  out->put(bits);
+  putuint(out, count);
+
+  // check for errors
+  if (stream->out->error()) {
+    delete stream->out;
+    delete stream;
+    return 0;
+  }
+
+  // initialize encoder
+  stream->encoder = new HZMencoder(stream->out, dims, perm, bits);
+
+  return stream;
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// create stream for writing mesh to file
+HZMstream*
+hzip_mesh_create_file(
+  FILE*       file,  // compressed output file
+  unsigned    perm,  // node permutation
+  unsigned    dims,  // mesh dimensionality
+  unsigned    count, // total number of cells
+  unsigned    codec, // codec number
+  const void* param  // codec parameters
+)
+{
+  return write_header(new OBSTREAMfile(file), perm, dims, count, codec, param);
+}
+
+// create stream for writing mesh to memory
+HZMstream*
+hzip_mesh_create_mem(
+  void*       buffer, // pointer to compressed data
+  size_t      size,   // byte size of allocated storage
+  unsigned    perm,   // node permutation
+  unsigned    dims,   // mesh dimensionality
+  unsigned    count,  // total number of cells
+  unsigned    codec,  // codec number
+  const void* param   // codec parameters
+)
+{
+  return write_header(new OBSTREAMmem(buffer, size), perm, dims, count, codec, param);
+}
+
+// compress and write mesh to stream
+int
+hzip_mesh_write(
+  HZMstream* stream, // output stream
+  const int* mesh,   // array of node indices to write
+  unsigned   count   // number of cells to write
+)
+{
+  OBSTREAM* out = stream->out;
+
+  // if total cell count is not known, write size of this chunk
+  if (!stream->count)
+    putuint(out->tail(), count);
+
+  // compress mesh connectivity
+  for (unsigned i = 0; i < count; i++)
+    mesh += stream->encoder->encode(mesh);
+
+  // flush all buffers in case more chunks follow
+  if (!stream->count)
+    out->flush();
+
+  return bytes(out);
+}
+
+// flush all buffers
+int
+hzip_mesh_flush(
+  HZMstream* stream // output stream
+)
+{
+  OBSTREAM* out = stream->out;
+  if (stream->count)
+    out->flush();
+  return bytes(out);
+}
diff --git a/src/hzip/hzncodec.h b/src/hzip/hzncodec.h
new file mode 100644
index 0000000..c85d300
--- /dev/null
+++ b/src/hzip/hzncodec.h
@@ -0,0 +1,41 @@
+#ifndef HZNCODEC_H
+#define HZNCODEC_H
+
+#include <climits>
+#include "hzip.h"
+#include "hzresidual.h"
+#include "hznpredictor.h"
+#include "bitvector.h"
+
+#define HZN_VERSION 0x10
+
+// base class for node encoder/decoder
+template <typename T>
+class HZNcodec {
+public:
+  inline HZNcodec(unsigned nodes, unsigned dims = 3, unsigned perm = 0, int bias = 0);
+  virtual ~HZNcodec() { delete pred; }
+
+  // number of encoded/decoded nodes
+  unsigned nodes() const { return count; }
+
+protected:
+  // zero-based index of i'th node in cell
+  unsigned index(const int* cell, unsigned i) const { return cell[perm[i]] - bias; }
+
+  // prepare for encoding/decoding nodes in cell
+  inline unsigned prepare(unsigned* v, const int* cell) const;
+
+  const unsigned cellsize;        // number of nodes per cell
+  const int bias;                 // index offset
+  unsigned mask;                  // prediction mask
+  unsigned count;                 // number of encoded/decoded nodes
+  BITVECTOR coded;                // per-node encoded/decoded flag
+  HZNpredictor* pred;             // spectral predictor
+  HZresidual<T> diff[CHAR_BIT];   // residuals for last eight nodes
+  unsigned perm[HZ_CELLSIZE_MAX]; // in-cell permutation of nodes
+};
+
+#include "hzncodec.inl"
+
+#endif
diff --git a/src/hzip/hzncodec.inl b/src/hzip/hzncodec.inl
new file mode 100644
index 0000000..43dfb28
--- /dev/null
+++ b/src/hzip/hzncodec.inl
@@ -0,0 +1,26 @@
+template <typename T>
+HZNcodec<T>::HZNcodec(unsigned nodes, unsigned dims, unsigned pcode, int bias) :
+  cellsize(1 << dims),
+  bias(bias),
+  mask(0),
+  count(0),
+  coded(nodes, false),
+  pred(new HZNpredictor(dims))
+{
+  if (!pcode)
+    pcode = 0x76543210;
+  for (unsigned i = 0; i < cellsize; i++, pcode >>= 4)
+    perm[i] = pcode & 0xf;
+}
+
+template <typename T>
+unsigned
+HZNcodec<T>::prepare(unsigned* v, const int* cell) const
+{
+  unsigned m = 0;
+  for (unsigned i = 0; i < cellsize; i++) {
+    v[i] = index(cell, i);
+    m += (coded[v[i]] ? 1 : 0) << i;
+  }
+  return m;
+}
diff --git a/src/hzip/hzndecoder.h b/src/hzip/hzndecoder.h
new file mode 100644
index 0000000..928d326
--- /dev/null
+++ b/src/hzip/hzndecoder.h
@@ -0,0 +1,31 @@
+#ifndef HZNDECODER_H
+#define HZNDECODER_H
+
+#include "hzncodec.h"
+#include "ibstream.h"
+
+// node decoder
+template <typename T>
+class HZNdecoder : public HZNcodec<T> {
+public:
+  HZNdecoder(IBSTREAM* stream, unsigned nodes, unsigned dims = 3, unsigned perm = 0, int bias = 0) : HZNcodec<T>(nodes, dims, perm, bias), stream(stream) {}
+
+  // encode all nodes of a cell
+  inline unsigned decode(T* node, const int* cell);
+
+private:
+  using HZNcodec<T>::prepare;
+  using HZNcodec<T>::cellsize;
+  using HZNcodec<T>::mask;
+  using HZNcodec<T>::count;
+  using HZNcodec<T>::coded;
+  using HZNcodec<T>::pred;
+  using HZNcodec<T>::diff;
+
+  void get();
+  IBSTREAM* stream;
+};
+
+#include "hzndecoder.inl"
+
+#endif
diff --git a/src/hzip/hzndecoder.inl b/src/hzip/hzndecoder.inl
new file mode 100644
index 0000000..4a31202
--- /dev/null
+++ b/src/hzip/hzndecoder.inl
@@ -0,0 +1,39 @@
+template <typename T>
+void
+HZNdecoder<T>::get()
+{
+  // read compressed data for eight nodes
+  mask = stream->get();
+  for (unsigned i = 0; i < CHAR_BIT; i++)
+    if (mask & (1 << i))
+      diff[i] = HZresidual<T>(stream);
+}
+
+template <typename T>
+unsigned
+HZNdecoder<T>::decode(
+  T*         node,
+  const int* cell
+)
+{
+  // compute mask of already decoded nodes in cell
+  unsigned v[HZ_CELLSIZE_MAX];
+  unsigned m = prepare(v, cell);
+
+  // encode all unencoded nodes in cell
+  for (unsigned i = 0; i < cellsize; i++)
+    if (!(m & (1 << i))) {
+      unsigned j = count++ % CHAR_BIT;
+      if (!j)
+        get();
+      // predict, record difference, and mark node as encoded
+      T p = pred->predict(node, v, i, m);
+      m += 1 << i;
+      coded[v[i]] = true;
+      node[v[i]] = p;
+      if (mask & (1 << j))
+        node[v[i]] += diff[j];
+    }
+
+  return cellsize;
+}
diff --git a/src/hzip/hznencoder.h b/src/hzip/hznencoder.h
new file mode 100644
index 0000000..969544d
--- /dev/null
+++ b/src/hzip/hznencoder.h
@@ -0,0 +1,34 @@
+#ifndef HZNENCODER_H
+#define HZNENCODER_H
+
+#include "hzncodec.h"
+#include "obstream.h"
+
+// node encoder
+template <typename T>
+class HZNencoder : public HZNcodec<T> {
+public:
+  HZNencoder(OBSTREAM* stream, unsigned nodes, unsigned dims = 3, unsigned perm = 0, int bias = 0) : HZNcodec<T>(nodes, dims, perm, bias), stream(stream) {}
+
+  // encode all nodes of a cell
+  inline unsigned encode(const T* node, const int* cell);
+
+  // end encoding
+  inline void end();
+
+private:
+  using HZNcodec<T>::prepare;
+  using HZNcodec<T>::cellsize;
+  using HZNcodec<T>::mask;
+  using HZNcodec<T>::count;
+  using HZNcodec<T>::coded;
+  using HZNcodec<T>::pred;
+  using HZNcodec<T>::diff;
+
+  void put();
+  OBSTREAM* stream;
+};
+
+#include "hznencoder.inl"
+
+#endif
diff --git a/src/hzip/hznencoder.inl b/src/hzip/hznencoder.inl
new file mode 100644
index 0000000..16a53b2
--- /dev/null
+++ b/src/hzip/hznencoder.inl
@@ -0,0 +1,48 @@
+template <typename T>
+void
+HZNencoder<T>::put()
+{
+  // write compressed data for eight nodes
+  stream->put(mask);
+  for (unsigned i = 0; i < CHAR_BIT; i++)
+    if (mask & (1 << i))
+      diff[i].put(stream);
+  mask = 0;
+}
+
+template <typename T>
+unsigned
+HZNencoder<T>::encode(
+  const T*   node,
+  const int* cell
+)
+{
+  // compute mask of already encoded nodes in cell
+  unsigned v[HZ_CELLSIZE_MAX];
+  unsigned m = prepare(v, cell);
+
+  // encode all unencoded nodes in cell
+  for (unsigned i = 0; i < cellsize; i++)
+    if (!(m & (1 << i))) {
+      // predict, record difference, and mark node as encoded
+      T p = pred->predict(node, v, i, m);
+      m += 1 << i;
+      coded[v[i]] = true;
+      unsigned j = count++ % CHAR_BIT;
+      diff[j] = HZresidual<T>(p, node[v[i]]);
+      if (!diff[j].zero())
+        mask += 1 << j;
+      if (j == CHAR_BIT - 1)
+        put();
+    }
+
+  return cellsize;
+}
+
+template <typename T>
+void
+HZNencoder<T>::end()
+{
+  if (count % CHAR_BIT)
+    put();
+}
diff --git a/src/hzip/hznio.cpp b/src/hzip/hznio.cpp
new file mode 100644
index 0000000..603965d
--- /dev/null
+++ b/src/hzip/hznio.cpp
@@ -0,0 +1,114 @@
+#include "hzip.h"
+#include "hznio.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// close stream for writing and deallocate
+static int
+read_close(
+  HZNstream* stream // output stream
+)
+{
+  switch (stream->type) {
+    case hzUCHAR:
+      delete stream->cdecoder;
+      break;
+    case hzUSHORT:
+      delete stream->sdecoder;
+      break;
+    case hzINT:
+      delete stream->idecoder;
+      break;
+    case hzFLOAT:
+      delete stream->fdecoder;
+      break;
+    case hzDOUBLE:
+      delete stream->ddecoder;
+      break;
+  }
+
+  IBSTREAM* in = stream->in;
+  int status = bytes(in);
+
+  delete stream;
+  delete in;
+
+  return status;
+}
+
+// close stream for writing and deallocate
+static int
+write_close(
+  HZNstream* stream // output stream
+)
+{
+  switch (stream->type) {
+    case hzUCHAR:
+      stream->cencoder->end();
+      delete stream->cencoder;
+      break;
+    case hzUSHORT:
+      stream->sencoder->end();
+      delete stream->sencoder;
+      break;
+    case hzINT:
+      stream->iencoder->end();
+      delete stream->iencoder;
+      break;
+    case hzFLOAT:
+      stream->fencoder->end();
+      delete stream->fencoder;
+      break;
+    case hzDOUBLE:
+      stream->dencoder->end();
+      delete stream->dencoder;
+      break;
+  }
+
+  OBSTREAM* out = stream->out;
+  out->close();
+  int status = bytes(out);
+
+  delete stream;
+  delete out;
+
+  return status;
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// return mesh dimensionality
+unsigned
+hzip_node_dimensions(
+  HZNstream* stream // I/O stream
+)
+{
+  return stream->dims;
+}
+
+// return number of nodes in stream
+unsigned
+hzip_node_count(
+  HZNstream* stream // input stream
+)
+{
+  return stream->count;
+}
+
+// return node data type
+HZtype
+hzip_node_type(
+  HZNstream* stream // input stream
+)
+{
+  return stream->type;
+}
+
+// close stream and deallocate
+int
+hzip_node_close(
+  HZNstream* stream // I/O stream
+)
+{
+  return stream->access == hzREAD ? read_close(stream) : write_close(stream);
+}
diff --git a/src/hzip/hznio.h b/src/hzip/hznio.h
new file mode 100644
index 0000000..297d529
--- /dev/null
+++ b/src/hzip/hznio.h
@@ -0,0 +1,33 @@
+#ifndef HZNIO_H
+#define HZNIO_H
+
+#include "hzio.h"
+#include "hznencoder.h"
+#include "hzndecoder.h"
+
+// node input/output stream
+struct HZNstream {
+  HZNstream(HZaccess access) : access(access) {}
+  HZaccess access; // read or write access
+  HZtype   type;   // node data type
+  union {
+    OBSTREAM* out; // output stream
+    IBSTREAM* in;  // input stream
+  };
+  union {
+    HZNencoder<unsigned char>* cencoder;
+    HZNencoder<unsigned short>* sencoder;
+    HZNencoder<int>* iencoder;
+    HZNencoder<float>* fencoder;
+    HZNencoder<double>* dencoder;
+    HZNdecoder<unsigned char>* cdecoder;
+    HZNdecoder<unsigned short>* sdecoder;
+    HZNdecoder<int>* idecoder;
+    HZNdecoder<float>* fdecoder;
+    HZNdecoder<double>* ddecoder;
+  };
+  unsigned dims;  // mesh dimensionality
+  unsigned count; // total number of nodes (0 if unknown)
+};
+
+#endif
diff --git a/src/hzip/hznpredictor.cpp b/src/hzip/hznpredictor.cpp
new file mode 100644
index 0000000..a2640b5
--- /dev/null
+++ b/src/hzip/hznpredictor.cpp
@@ -0,0 +1,134 @@
+#include "hznpredictor.h"
+
+// denominator, numerator1, ..., numerator7
+const int
+HZNpredictor::weight[][8] = {
+  { 1,  0,  0,  0,  0,  0,  0,  0 }, // 00
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 01
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 02
+  { 2,  1,  1,  0,  0,  0,  0,  0 }, // 03
+  { 1,  0,  0,  1,  0,  0,  0,  0 }, // 04
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 05
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 06
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 07
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 08
+  { 2,  1,  0,  0,  1,  0,  0,  0 }, // 09
+  { 2,  0,  1,  0,  1,  0,  0,  0 }, // 0a
+  { 3,  1,  1,  0,  1,  0,  0,  0 }, // 0b
+  { 3,  0,  0,  1,  2,  0,  0,  0 }, // 0c
+  { 2,  1,  0,  0,  1,  0,  0,  0 }, // 0d
+  { 2,  0,  1,  0,  1,  0,  0,  0 }, // 0e
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 0f
+  { 1,  0,  0,  0,  0,  1,  0,  0 }, // 10
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 11
+  { 3,  0,  2,  0,  0,  1,  0,  0 }, // 12
+  { 2,  1,  1,  0,  0,  0,  0,  0 }, // 13
+  { 2,  0,  0,  1,  0,  1,  0,  0 }, // 14
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 15
+  { 2,  0,  2, -1,  0,  1,  0,  0 }, // 16
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 17
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 18
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 19
+  { 2,  0,  1,  0,  1,  0,  0,  0 }, // 1a
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 1b
+  { 2,  0,  0,  1,  2, -1,  0,  0 }, // 1c
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 1d
+  { 2,  0,  1,  0,  1,  0,  0,  0 }, // 1e
+  { 2,  2,  1, -1,  1, -1,  0,  0 }, // 1f
+  { 1,  0,  0,  0,  0,  0,  1,  0 }, // 20
+  { 3,  2,  0,  0,  0,  0,  1,  0 }, // 21
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 22
+  { 2,  1,  1,  0,  0,  0,  0,  0 }, // 23
+  { 2,  0,  0,  1,  0,  0,  1,  0 }, // 24
+  { 2,  2,  0, -1,  0,  0,  1,  0 }, // 25
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 26
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 27
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 28
+  { 2,  1,  0,  0,  1,  0,  0,  0 }, // 29
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 2a
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 2b
+  { 2,  0,  0,  1,  2,  0, -1,  0 }, // 2c
+  { 2,  1,  0,  0,  1,  0,  0,  0 }, // 2d
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 2e
+  { 2,  1,  2, -1,  1,  0, -1,  0 }, // 2f
+  { 2,  0,  0,  0,  0,  1,  1,  0 }, // 30
+  { 2,  2,  0,  0,  0, -1,  1,  0 }, // 31
+  { 2,  0,  2,  0,  0,  1, -1,  0 }, // 32
+  { 2,  1,  1,  0,  0,  0,  0,  0 }, // 33
+  { 3,  0,  0,  1,  0,  1,  1,  0 }, // 34
+  { 1,  2,  0, -1,  0, -1,  1,  0 }, // 35
+  { 1,  0,  2, -1,  0,  1, -1,  0 }, // 36
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 37
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 38
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 39
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 3a
+  { 2,  1,  1,  0,  2, -1, -1,  0 }, // 3b
+  { 1,  0,  0,  1,  2, -1, -1,  0 }, // 3c
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 3d
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 3e
+  { 3,  2,  2, -1,  2, -1, -1,  0 }, // 3f
+  { 1,  0,  0,  0,  0,  0,  0,  1 }, // 40
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 41
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 42
+  { 3,  2,  2,  0,  0,  0,  0, -1 }, // 43
+  { 1,  0,  0,  1,  0,  0,  0,  0 }, // 44
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 45
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 46
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 47
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 48
+  { 3,  2,  0,  0,  2,  0,  0, -1 }, // 49
+  { 3,  0,  2,  0,  2,  0,  0, -1 }, // 4a
+  { 2,  1,  1,  0,  1,  0,  0, -1 }, // 4b
+  { 1,  0,  0,  1,  1,  0,  0, -1 }, // 4c
+  { 1,  0,  0,  1,  1,  0,  0, -1 }, // 4d
+  { 1,  0,  0,  1,  1,  0,  0, -1 }, // 4e
+  { 3,  2,  2, -1,  1,  0,  0, -1 }, // 4f
+  { 1,  0,  0,  0,  0,  1,  0,  0 }, // 50
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 51
+  { 1,  0,  1,  0,  0,  1,  0, -1 }, // 52
+  { 1,  0,  1,  0,  0,  1,  0, -1 }, // 53
+  { 1,  0,  0,  1,  0,  1,  0, -1 }, // 54
+  { 1,  1,  0,  0,  0,  0,  0,  0 }, // 55
+  { 1,  0,  1,  0,  0,  1,  0, -1 }, // 56
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 57
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 58
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 59
+  { 1,  0,  1,  0,  0,  1,  0, -1 }, // 5a
+  { 3,  2,  1,  0,  2, -1,  0, -1 }, // 5b
+  { 1,  0,  0,  1,  1,  0,  0, -1 }, // 5c
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 5d
+  { 2,  0,  1,  1,  1,  1,  0, -2 }, // 5e
+  { 2,  2,  1, -1,  1, -1,  0,  0 }, // 5f
+  { 1,  0,  0,  0,  0,  0,  1,  0 }, // 60
+  { 1,  1,  0,  0,  0,  0,  1, -1 }, // 61
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 62
+  { 1,  1,  0,  0,  0,  0,  1, -1 }, // 63
+  { 1,  0,  0,  1,  0,  0,  1, -1 }, // 64
+  { 1,  1,  0,  0,  0,  0,  1, -1 }, // 65
+  { 1,  0,  1,  0,  0,  0,  0,  0 }, // 66
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 67
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 68
+  { 1,  1,  0,  0,  0,  0,  1, -1 }, // 69
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 6a
+  { 3,  1,  2,  0,  2,  0, -1, -1 }, // 6b
+  { 1,  0,  0,  1,  1,  0,  0, -1 }, // 6c
+  { 2,  1,  0,  1,  1,  0,  1, -2 }, // 6d
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 6e
+  { 2,  1,  2, -1,  1,  0, -1,  0 }, // 6f
+  { 1,  0,  0,  0,  0,  1,  1, -1 }, // 70
+  { 1,  1,  0,  0,  0,  0,  1, -1 }, // 71
+  { 1,  0,  1,  0,  0,  1,  0, -1 }, // 72
+  { 2,  1,  1,  0,  0,  1,  1, -2 }, // 73
+  { 1,  0,  0,  1,  0,  1,  1, -2 }, // 74
+  { 1,  1,  0,  0,  0,  0,  1, -1 }, // 75
+  { 1,  0,  1,  0,  0,  1,  0, -1 }, // 76
+  { 1,  1,  1, -1,  0,  0,  0,  0 }, // 77
+  { 1,  0,  0,  0,  1,  0,  0,  0 }, // 78
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 79
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 7a
+  { 2,  1,  1,  0,  2, -1, -1,  0 }, // 7b
+  { 1,  0,  0,  1,  1,  0,  0, -1 }, // 7c
+  { 1,  1,  0,  0,  1, -1,  0,  0 }, // 7d
+  { 1,  0,  1,  0,  1,  0, -1,  0 }, // 7e
+  { 1,  1,  1, -1,  1, -1, -1,  1 }, // 7f
+};
diff --git a/src/hzip/hznpredictor.h b/src/hzip/hznpredictor.h
new file mode 100644
index 0000000..d658c58
--- /dev/null
+++ b/src/hzip/hznpredictor.h
@@ -0,0 +1,20 @@
+#ifndef HZNPREDICTOR_H
+#define HZNPREDICTOR_H
+
+// spectral predictor for node-centered data
+class HZNpredictor {
+public:
+  HZNpredictor(unsigned dims) : cellsize(1 << dims) {}
+
+  // predict node with index cell[i] from known in-cell neighbors given by mask
+  template <typename T>
+  inline T predict(const T* node, const unsigned* cell, unsigned i, unsigned mask);
+
+private:
+  static const int weight[][8];
+  const unsigned cellsize;
+};
+
+#include "hznpredictor.inl"
+
+#endif
diff --git a/src/hzip/hznpredictor.inl b/src/hzip/hznpredictor.inl
new file mode 100644
index 0000000..eaed16b
--- /dev/null
+++ b/src/hzip/hznpredictor.inl
@@ -0,0 +1,25 @@
+template <typename T>
+T
+HZNpredictor::predict(
+  const T*        node,
+  const unsigned* cell,
+  unsigned        i,
+  unsigned        mask
+)
+{
+  // renumber nodes so that predicted node i is first in cell
+  unsigned j = mask;
+  j = ((j << (i & 1)) & 0xaa) + ((j >> (i & 1)) & 0x55);
+  j = ((j << (i & 2)) & 0xcc) + ((j >> (i & 2)) & 0x33);
+  j = ((j << (i & 4)) & 0xf0) + ((j >> (i & 4)) & 0x0f);
+  j >>= 1;
+
+  // predict node as weighted combination of its neighbors
+  volatile T p = 0;
+  for (unsigned k = 1; k < cellsize; k++)
+    if (weight[j][k])
+      p = T(p + weight[j][k] * node[cell[i ^ k]]);
+  p = T(p / weight[j][0]);
+
+  return p;
+}
diff --git a/src/hzip/hznread.cpp b/src/hzip/hznread.cpp
new file mode 100644
index 0000000..738bff1
--- /dev/null
+++ b/src/hzip/hznread.cpp
@@ -0,0 +1,148 @@
+#include "hzip.h"
+#include "hznio.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// read header data
+static HZNstream*
+read_header(
+  IBSTREAM* in,   // input stream
+  unsigned  perm, // node permutation
+  int       bias  // node index bias
+)
+{
+#ifndef HZ_WITHOUT_MAGIC
+  // magic and format
+  if (in->get() != 'h' ||
+      in->get() != 'z' ||
+      in->get() != 'n' ||
+      in->get() != HZN_VERSION) {
+    delete in;
+    return 0;
+  }
+#endif
+
+  // codec parameters and number of cells
+  HZNstream* stream = new HZNstream(hzREAD);
+  stream->dims = in->get();
+  in->get();
+  unsigned codec = in->get();
+  switch (codec) {
+    case HZN_CODEC_BASE:
+      stream->in = in;
+      break;
+#ifndef WITHOUT_ZLIB
+    case HZN_CODEC_ZLIB:
+      stream->in = new IBSTREAMzlib(in);
+      break;
+#endif
+    default:
+      delete stream;
+      delete in;
+      return 0;
+  }
+  stream->type = HZtype(in->get());
+  stream->count = getuint(in);
+
+  // check for errors
+  if (stream->in->error()) {
+    delete stream->in;
+    delete stream;
+    return 0;
+  }
+
+  // initialize decoder
+  switch (stream->type) {
+    case hzUCHAR:
+      stream->cdecoder = new HZNdecoder<unsigned char>(stream->in, stream->count, stream->dims, perm, bias);
+      break;
+    case hzUSHORT:
+      stream->sdecoder = new HZNdecoder<unsigned short>(stream->in, stream->count, stream->dims, perm, bias);
+      break;
+    case hzINT:
+      stream->idecoder = new HZNdecoder<int>(stream->in, stream->count, stream->dims, perm, bias);
+      break;
+    case hzFLOAT:
+      stream->fdecoder = new HZNdecoder<float>(stream->in, stream->count, stream->dims, perm, bias);
+      break;
+    case hzDOUBLE:
+      stream->ddecoder = new HZNdecoder<double>(stream->in, stream->count, stream->dims, perm, bias);
+      break;
+  }
+
+  return stream;
+}
+
+// read and decompress node data
+template <typename T>
+static unsigned
+read(
+  HZNdecoder<T>* decoder, // node decoder
+  void*          node,    // node data array to read to
+  const int*     mesh,    // array of node indices
+  unsigned       count    // number of cells to visit
+)
+{
+  unsigned nodes = decoder->nodes();
+  for (unsigned i = 0; i < count; i++)
+    mesh += decoder->decode((T*)node, mesh);
+  return decoder->nodes() - nodes;
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// open stream for reading node-centered data from file
+HZNstream*
+hzip_node_open_file(
+  FILE*    file, // compressed input file
+  unsigned perm, // node permutation
+  int      bias  // node index bias
+)
+{
+  return read_header(new IBSTREAMfile(file), perm, bias);
+}
+
+// open stream for reading node-centered data from memory
+HZNstream*
+hzip_node_open_mem(
+  const void* buffer, // pointer to compressed data
+  size_t      size,   // byte size of compressed data
+  unsigned    perm,   // node permutation
+  int         bias    // node index bias
+)
+{
+  return read_header(new IBSTREAMmem(buffer, size), perm, bias);
+}
+
+// read and decompress node-centered data from stream
+int
+hzip_node_read(
+  HZNstream* stream, // input stream
+  void*      node,   // node data array to read to
+  const int* mesh,   // array of node indices
+  unsigned   count   // number of cells to visit
+)
+{
+  IBSTREAM* in = stream->in;
+  int nodes = -1;
+
+  switch (stream->type) {
+    case hzUCHAR:
+      nodes = read(stream->cdecoder, node, mesh, count);
+      break;
+    case hzUSHORT:
+      nodes = read(stream->sdecoder, node, mesh, count);
+      break;
+    case hzINT:
+      nodes = read(stream->idecoder, node, mesh, count);
+      break;
+    case hzFLOAT:
+      nodes = read(stream->fdecoder, node, mesh, count);
+      break;
+    case hzDOUBLE:
+      nodes = read(stream->ddecoder, node, mesh, count);
+      break;
+  }
+
+  return in->error() ? in->error() : nodes;
+}
diff --git a/src/hzip/hznwrite.cpp b/src/hzip/hznwrite.cpp
new file mode 100644
index 0000000..6a06d62
--- /dev/null
+++ b/src/hzip/hznwrite.cpp
@@ -0,0 +1,173 @@
+#include "hzip.h"
+#include "hznio.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// write header data
+static HZNstream*
+write_header(
+  OBSTREAM*   out,   // output stream
+  unsigned    perm,  // node permutation
+  int         bias,  // node index bias
+  unsigned    dims,  // mesh dimensionality
+  unsigned    count, // total number of nodes
+  HZtype      type,  // node data type
+  unsigned    codec, // codec number
+  const void* param  // codec parameters
+)
+{
+  HZNstream* stream = new HZNstream(hzWRITE);
+
+  switch (codec) {
+    case HZN_CODEC_BASE:
+      stream->out = out;
+      break;
+#ifndef WITHOUT_ZLIB
+    case HZN_CODEC_ZLIB: {
+        const HZNCODECzlib* p = param ? (const HZNCODECzlib*)param : &hzn_codec_zlib;
+        stream->out = new OBSTREAMzlib(out, p->zlib.level, p->zlib.insize, p->zlib.outsize);
+      }
+      break;
+#endif
+    default:
+      delete stream;
+      delete out;
+      return 0;
+  }
+  stream->type = type;
+  stream->dims = dims;
+  stream->count = count;
+
+#ifndef HZ_WITHOUT_MAGIC
+  // magic and format
+  out->put('h');
+  out->put('z');
+  out->put('n');
+  out->put(HZN_VERSION);
+#endif
+
+  // cell count and codec parameters
+  out->put(dims);
+  out->put(0);
+  out->put(codec);
+  out->put(type);
+  putuint(out, count);
+
+  // check for errors
+  if (stream->out->error()) {
+    delete stream->out;
+    delete stream;
+    return 0;
+  }
+
+  // initialize encoder
+  switch (type) {
+    case hzUCHAR:
+      stream->cencoder = new HZNencoder<unsigned char>(stream->out, count, dims, perm, bias);
+      break;
+    case hzUSHORT:
+      stream->sencoder = new HZNencoder<unsigned short>(stream->out, count, dims, perm, bias);
+      break;
+    case hzINT:
+      stream->iencoder = new HZNencoder<int>(stream->out, count, dims, perm, bias);
+      break;
+    case hzFLOAT:
+      stream->fencoder = new HZNencoder<float>(stream->out, count, dims, perm, bias);
+      break;
+    case hzDOUBLE:
+      stream->dencoder = new HZNencoder<double>(stream->out, count, dims, perm, bias);
+      break;
+  }
+
+  return stream;
+}
+
+// compress and write node data
+template <typename T>
+static void
+write(
+  HZNencoder<T>* encoder, // node encoder
+  const void*    node,    // node data array
+  const int*     mesh,    // array of node indices
+  unsigned       count    // number of cells to visit
+)
+{
+  for (unsigned i = 0; i < count; i++)
+    mesh += encoder->encode((const T*)node, mesh);
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// create stream for writing node data to file
+HZNstream*
+hzip_node_create_file(
+  FILE*       file,  // compressed output file
+  unsigned    perm,  // node permutation
+  int         bias,  // node index bias
+  unsigned    dims,  // mesh dimensionality
+  unsigned    count, // total number of nodes
+  HZtype      type,  // node data type
+  unsigned    codec, // codec number
+  const void* param  // codec parameters
+)
+{
+  return write_header(new OBSTREAMfile(file), perm, bias, dims, count, type, codec, param);
+}
+
+// create stream for writing node data to memory
+HZNstream*
+hzip_node_create_mem(
+  void*       buffer, // pointer to compressed data
+  size_t      size,   // byte size of allocated storage
+  unsigned    perm,   // node permutation
+  int         bias,   // node index bias
+  unsigned    dims,   // mesh dimensionality
+  unsigned    count,  // total number of nodes
+  HZtype      type,   // node data type
+  unsigned    codec,  // codec number
+  const void* param   // codec parameters
+)
+{
+  return write_header(new OBSTREAMmem(buffer, size), perm, bias, dims, count, type, codec, param);
+}
+
+// compress node data for count cells
+int
+hzip_node_write(
+  HZNstream*  stream, // output stream
+  const void* node,   // node data array to write from
+  const int*  mesh,   // array of node indices
+  unsigned    count   // number of cells to visit
+)
+{
+  switch (stream->type) {
+    case hzUCHAR:
+      write(stream->cencoder, node, mesh, count);
+      break;
+    case hzUSHORT:
+      write(stream->sencoder, node, mesh, count);
+      break;
+    case hzINT:
+      write(stream->iencoder, node, mesh, count);
+      break;
+    case hzFLOAT:
+      write(stream->fencoder, node, mesh, count);
+      break;
+    case hzDOUBLE:
+      write(stream->dencoder, node, mesh, count);
+      break;
+  }
+
+  return bytes(stream->out);
+}
+
+// flush all buffers
+int
+hzip_node_flush(
+  HZNstream* stream // output stream
+)
+{
+  OBSTREAM* out = stream->out;
+  out->flush();
+  return bytes(out);
+}
diff --git a/src/hzip/hzresidual.h b/src/hzip/hzresidual.h
new file mode 100644
index 0000000..f88c34a
--- /dev/null
+++ b/src/hzip/hzresidual.h
@@ -0,0 +1,59 @@
+#ifndef HZRESIDUAL_H
+#define HZRESIDUAL_H
+
+#include "ibstream.h"
+#include "obstream.h"
+#include "hzmap.h"
+
+// variable-length residual computation and I/O
+template < typename T, class M = HZmap<T> >
+class HZresidual {
+public:
+  HZresidual() : value() {}
+
+  // construct residual from predicted and actual values
+  HZresidual(T p, T a);
+
+  // read and construct residual from stream
+  HZresidual(IBSTREAM* stream);
+
+  // write residual to stream
+  void put(OBSTREAM* stream) const;
+
+  // compute actual value from prediction and residual
+  T operator+(T p) const;
+
+  // is residual zero?
+  bool zero() const { return !value; }
+
+private:
+  typedef typename M::RANGE U;
+  U value; // value of residual
+  M map;   // functors for mapping between value type T and integer type U
+};
+
+template <typename T, class M>
+inline T operator+(T p, HZresidual<T, M> r) { return r + p; }
+
+template <typename T, class M>
+inline T& operator+=(T& v, HZresidual<T, M> r) { v = r + v; return v; }
+
+// specialization for fixed-length unsigned char residuals
+template <class M>
+class HZresidual<unsigned char, M> {
+private:
+  typedef unsigned char U;
+public:
+  HZresidual() : value() {}
+  HZresidual(U p, U a) : value(U(p - a)) {}
+  HZresidual(IBSTREAM* stream) : value(U(stream->get())) {}
+  void put(OBSTREAM* stream) const { stream->put(value); }
+  U operator+(U p) const { return U(p - value); }
+  bool zero() const { return !value; }
+private:
+  U value; // value of residual
+};
+
+#include "hzresidual.inl"
+
+#endif
diff --git a/src/hzip/hzresidual.inl b/src/hzip/hzresidual.inl
new file mode 100644
index 0000000..ff501ab
--- /dev/null
+++ b/src/hzip/hzresidual.inl
@@ -0,0 +1,45 @@
+// compute (possibly zero) residual from predicted and actual values
+template <typename T, class M>
+HZresidual<T, M>::HZresidual(T p, T a)
+{
+  U r = U(map(p) - map(a));
+  U c = U(~r);
+  value = U(c < r ? ~(2 * r) : 2 * r);
+}
+
+// read byte-aligned variable-length residual from stream
+template <typename T, class M>
+HZresidual<T, M>::HZresidual(IBSTREAM* stream)
+{
+  U r = 0;
+  U c;
+  unsigned i = 0;
+  do {
+    c = U(stream->get());
+    r = U(r + (c << i));
+    i += 7;
+  } while (c & 0x80);
+  value = r;
+}
+
+// write byte-aligned variable-length residual to stream
+template <typename T, class M>
+void
+HZresidual<T, M>::put(OBSTREAM* stream) const
+{
+  U r = value;
+  do {
+    stream->put((r >> 7 ? 0x80 : 0x00) + (r & 0x7f));
+    r >>= 7;
+  } while (r--);
+}
+
+// reconstruct actual value from prediction and residual
+template <typename T, class M>
+T
+HZresidual<T, M>::operator+(T p) const
+{
+  U r = value;
+  U a = U(map(p) - ((r >> 1) ^ (0 - (r & 1))));
+  return map(a);
+}
diff --git a/src/hzip/hzutil.cpp b/src/hzip/hzutil.cpp
new file mode 100644
index 0000000..473d044
--- /dev/null
+++ b/src/hzip/hzutil.cpp
@@ -0,0 +1,48 @@
+#include "hzip.h"
+
+/*@p-r-i-v-a-t-e---f-u-n-c-t-i-o-n-s-----------------------------------------*/
+
+// recursively construct mesh
+static int*
+mesh_construct(
+  int*           mesh,     // array of node indices to construct
+  unsigned       dims,     // topological mesh dimensionality (1-3)
+  const unsigned count[],  // structured grid dimensions (node counts)
+  unsigned       dim,      // current dimension
+  const int      offset[], // node offset along each dimension
+  int            index     // current node index
+)
+{
+  if (dim--)
+    for (unsigned i = 0; i < count[dim] - 1; i++, index += offset[dim])
+      mesh = mesh_construct(mesh, dims, count, dim, offset, index);
+  else {
+    unsigned cellsize = 1 << dims;
+    for (unsigned i = 0; i < cellsize; i++) {
+      int k = index;
+      for (unsigned j = 0; j < dims; j++)
+        if (i & (1 << j))
+          k += offset[j];
+      *mesh++ = k;
+    }
+  }
+  return mesh;
+}
+
+/*@p-u-b-l-i-c---f-u-n-c-t-i-o-n-s-------------------------------------------*/
+
+// construct mesh connectivity for regular grid
+unsigned
+hzip_mesh_construct(
+  int*           mesh,    // array of node indices to construct
+  unsigned       dims,    // topological mesh dimensionality (1-3)
+  const unsigned count[], // structured grid dimensions (node counts)
+  int            bias     // node index bias
+)
+{
+  int offset[HZ_DIMS_MAX] = { 1 };
+  for (unsigned i = 1; i < dims; i++)
+    offset[i] = count[i - 1] * offset[i - 1];
+  mesh_construct(mesh, dims, count, dims, offset, bias);
+  return 0;
+}
diff --git a/src/hzip/ibstream.h b/src/hzip/ibstream.h
new file mode 100644
index 0000000..6df0795
--- /dev/null
+++ b/src/hzip/ibstream.h
@@ -0,0 +1,245 @@
+#ifndef IBSTREAM_H
+#define IBSTREAM_H
+
+#include <cstdio>
+#include <cstring>
+
+// error codes
+enum IBSTREAMerror {
+  IBSTREAM_OK = 0,
+  IBSTREAM_ERR_UNKNOWN = -1,
+  IBSTREAM_ERR_INVALID = -2,
+  IBSTREAM_ERR_ZLIB = -3
+};
+
+//@IBSTREAM....................................................................
+
+// abstract base class for input byte stream
+class IBSTREAM {
+public:
+  virtual ~IBSTREAM() {}
+
+  // previous stream object in pipeline (or 0 if none)
+  virtual IBSTREAM* prev() { return 0; }
+
+  // head stream object in pipeline (the source object that generates bytes)
+  virtual IBSTREAM* head() { return this; }
+
+  // detach this stream object from the previous one in the pipeline
+  virtual IBSTREAM* detach() { return 0; }
+
+  // input a single byte (EOF is returned if no more input)
+  virtual int get() = 0;
+
+  // input a sequence of bytes (the actual number of bytes read is returned)
+  virtual size_t get(void *byte, size_t size)
+  {
+    unsigned char* p = (unsigned char*)byte;
+    for (int c; size-- && (c = get()) != EOF; p++)
+      *p = (unsigned char)c;
+    return (size_t)(p - (unsigned char*)byte);
+  }
+
+  // rewind stream a number of bytes
+  virtual bool unget(size_t size) = 0;
+
+  // number of bytes read from this stream object
+  virtual size_t bytes() const = 0;
+
+  // error code (0 is returned if no error)
+  virtual int error() const = 0;
+};
+
+//@IBSTREAMmem.................................................................
+
+// read stream from a fixed-size memory buffer
+class IBSTREAMmem : public IBSTREAM {
+public:
+  IBSTREAMmem(const void* buffer, size_t size) :
+    begin((const unsigned char*)buffer),
+    end(begin + size),
+    ptr(begin),
+    status(IBSTREAM_OK)
+  {}
+  int get()
+  {
+    return ptr == end ? EOF : *ptr++;
+  }
+  size_t get(void* byte, size_t size)
+  {
+    if (size > (size_t)(end - ptr))
+      size = (size_t)(end - ptr);
+    memcpy(byte, ptr, size);
+    ptr += size;
+    return size;
+  }
+  bool unget(size_t size)
+  {
+    if ((size_t)(ptr - begin) < size) {
+      status = IBSTREAM_ERR_INVALID;
+      return false;
+    }
+    else {
+      ptr -= size;
+      return true;
+    }
+  }
+  size_t bytes() const { return (size_t)(ptr - begin); }
+  int error() const { return status; }
+private:
+  const unsigned char* const begin;
+  const unsigned char* const end;
+  const unsigned char* ptr;
+  int status;
+};
+
+//@IBSTREAMfile................................................................
+
+// read stream from a binary file
+class IBSTREAMfile : public IBSTREAM {
+public:
+  IBSTREAMfile(FILE* in) : file(in), read(0), status(IBSTREAM_OK) {}
+  int get()
+  {
+    int c = fgetc(file);
+    if (c == EOF) {
+      if (ferror(file))
+        status = IBSTREAM_ERR_UNKNOWN;
+    }
+    else
+      read++;
+    return c;
+  }
+  size_t get(void* byte, size_t size)
+  {
+    size = fread(byte, 1, size, file);
+    if (ferror(file))
+      status = IBSTREAM_ERR_UNKNOWN;
+    read += size;
+    return size;
+  }
+  bool unget(size_t size)
+  {
+    if (fseek(file, -(long)size, SEEK_CUR)) {
+      status = IBSTREAM_ERR_INVALID;
+      return false;
+    }
+    else {
+      read -= size;
+      return true;
+    }
+  }
+  size_t bytes() const { return read; }
+  int error() const { return status; }
+private:
+  FILE* file;
+  size_t read;
+  int status;
+};
+
+//@IBSTREAMzlib................................................................
+
+#ifndef WITHOUT_ZLIB
+#include <zlib.h>
+
+#define IBSTREAM_ZLIB_IBUF_SIZE 0x2000
+#define IBSTREAM_ZLIB_OBUF_SIZE 0x6000
+
+// zlib compressed stream
+class IBSTREAMzlib : public IBSTREAM {
+public:
+  IBSTREAMzlib(IBSTREAM* stream, size_t insize = IBSTREAM_ZLIB_IBUF_SIZE, size_t outsize = IBSTREAM_ZLIB_OBUF_SIZE) :
+    ibstream(stream), insize(insize), outsize(outsize),
+    in(new unsigned char[insize]),
+    out(new unsigned char[outsize]),
+    end(0),
+    ptr(0),
+    read(0),
+    status(IBSTREAM_OK)
+  {
+    zstream.zalloc = Z_NULL;
+    zstream.zfree = Z_NULL;
+    zstream.opaque = Z_NULL;
+    zstream.next_in = Z_NULL;
+    zstream.avail_in = 0;
+    if (inflateInit(&zstream) != Z_OK)
+      status = IBSTREAM_ERR_ZLIB;
+  }
+  ~IBSTREAMzlib()
+  {
+    inflateEnd(&zstream);
+    delete[] in;
+    delete[] out;
+    if (ibstream)
+      delete ibstream;
+  }
+  IBSTREAM* prev() { return ibstream; }
+  IBSTREAM* head() { return ibstream->head(); }
+  IBSTREAM* detach() { IBSTREAM* s = ibstream; ibstream = 0; return s; }
+  int get()
+  {
+    return ptr == end && !decode() ? EOF : *ptr++;
+  }
+  bool unget(size_t size)
+  {
+    if (size) {
+      status = IBSTREAM_ERR_INVALID;
+      return false;
+    }
+    else
+      return true;
+  }
+  using IBSTREAM::get;
+  size_t bytes() const { return read; }
+  int error() const { return status ? status : ibstream->error(); }
+
+private:
+  // decode buffer
+  bool decode()
+  {
+    do {
+      if (!zstream.avail_in) {
+        zstream.next_in = in;
+        zstream.avail_in = ibstream->get(in, insize);
+        if (!zstream.avail_in) {
+          status = IBSTREAM_ERR_ZLIB;
+          return false;
+        }
+      }
+      zstream.next_out = out;
+      zstream.avail_out = outsize;
+      switch (inflate(&zstream, Z_NO_FLUSH)) {
+        case Z_OK:
+          break;
+        case Z_STREAM_END:
+          if (inflateEnd(&zstream) == Z_OK) {
+            if (ibstream->unget(zstream.avail_in))
+              zstream.avail_in = 0;
+            break;
+          }
+          /*FALLTHROUGH*/
+        default:
+          status = IBSTREAM_ERR_ZLIB;
+          return false;
+      }
+      end = out + outsize - zstream.avail_out;
+    } while (end == out);
+    read += (unsigned)(end - out);
+    ptr = out;
+    return true;
+  }
+
+  IBSTREAM* ibstream;
+  z_stream zstream;
+  const size_t insize;
+  const size_t outsize;
+  unsigned char* const in;
+  unsigned char* const out;
+  const unsigned char* end;
+  const unsigned char* ptr;
+  size_t read;
+  int status;
+};
+#endif
+
+#endif
diff --git a/src/hzip/obstream.h b/src/hzip/obstream.h
new file mode 100644
index 0000000..c5d08ad
--- /dev/null
+++ b/src/hzip/obstream.h
@@ -0,0 +1,206 @@
+#ifndef OBSTREAM_H
+#define OBSTREAM_H
+
+#include <cerrno>
+#include <cstdio>
+#include <cstring>
+
+// error codes
+enum OBSTREAMerror {
+  OBSTREAM_OK = 0,
+  OBSTREAM_ERR_UNKNOWN = -1,
+  OBSTREAM_ERR_NO_SPACE = -2,
+  OBSTREAM_ERR_ZLIB = -3
+};
+
+//@OBSTREAM....................................................................
+
+// abstract base class for output byte stream
+class OBSTREAM {
+public:
+  virtual ~OBSTREAM() {}
+
+  // next stream object in pipeline (or 0 if none)
+  virtual OBSTREAM* next() { return 0; }
+
+  // tail stream object in pipeline (the terminal object that outputs bytes)
+  virtual OBSTREAM* tail() { return this; }
+
+  // detach this stream object from the next one in the pipeline
+  virtual OBSTREAM* detach() { return 0; }
+
+  // output a single byte
+  virtual void put(unsigned char byte) = 0;
+
+  // output a sequence of bytes
+  virtual void put(const void* byte, size_t size)
+  {
+    for (const unsigned char* p = (const unsigned char*)byte; size--; p++)
+      put(*p);
+  }
+
+  // flush any buffered data
+  virtual void flush() {}
+
+  // flush and close stream for writing
+  virtual void close() {}
+
+  // number of bytes written to this stream object
+  virtual size_t bytes() const = 0;
+
+  // error code (0 is returned if no error)
+  virtual int error() const = 0;
+};
+
+//@OBSTREAMmem.................................................................
+
+// write stream to a fixed-size memory buffer
+class OBSTREAMmem : public OBSTREAM {
+public:
+  OBSTREAMmem(void* buffer, size_t size) :
+    begin((unsigned char*)buffer),
+    end(begin + size),
+    ptr(begin),
+    status(OBSTREAM_OK)
+  {}
+  void put(unsigned char byte)
+  {
+    if (ptr == end)
+      status = OBSTREAM_ERR_NO_SPACE;
+    else
+      *ptr++ = byte;
+  }
+  void put(const void* byte, size_t size)
+  {
+    if (ptr + size > end)
+      status = OBSTREAM_ERR_NO_SPACE;
+    else {
+      memcpy(ptr, byte, size);
+      ptr += size;
+    }
+  }
+  size_t bytes() const { return (size_t)(ptr - begin); }
+  int error() const { return status; }
+private:
+  unsigned char* const begin;
+  unsigned char* const end;
+  unsigned char* ptr;
+  int status;
+};
+
+//@OBSTREAMfile................................................................
+
+// write stream to a binary file
+class OBSTREAMfile : public OBSTREAM {
+public:
+  OBSTREAMfile(FILE* out) : file(out), written(0), status(OBSTREAM_OK) {}
+  void put(unsigned char byte)
+  {
+    if (fputc(byte, file) == EOF)
+      status = (errno == ENOMEM ? OBSTREAM_ERR_NO_SPACE : OBSTREAM_ERR_UNKNOWN);
+    else
+      written++;
+  }
+  void put(const void* byte, size_t size)
+  {
+    if (fwrite(byte, 1, size, file) != size)
+      status = (errno == ENOMEM ? OBSTREAM_ERR_NO_SPACE : OBSTREAM_ERR_UNKNOWN);
+    else
+      written += size;
+  }
+  void flush() { fflush(file); }
+  void close() { flush(); }
+  size_t bytes() const { return written; }
+  int error() const { return status; }
+private:
+  FILE* file;
+  size_t written;
+  int status;
+};
+
+//@OBSTREAMzlib................................................................
+
+#ifndef WITHOUT_ZLIB
+#include <zlib.h>
+
+#define OBSTREAM_ZLIB_IBUF_SIZE 0x6000
+#define OBSTREAM_ZLIB_OBUF_SIZE 0x2000
+
+// zlib compressed stream
+class OBSTREAMzlib : public OBSTREAM {
+public:
+  OBSTREAMzlib(OBSTREAM* stream, int level = Z_DEFAULT_COMPRESSION, size_t insize = OBSTREAM_ZLIB_IBUF_SIZE, size_t outsize = OBSTREAM_ZLIB_OBUF_SIZE) :
+    obstream(stream),
+    insize(insize),
+    outsize(outsize),
+    in(new unsigned char[insize]),
+    out(new unsigned char[outsize]),
+    end(in + insize),
+    ptr(in),
+    written(0),
+    status(OBSTREAM_OK)
+  {
+    zstream.zalloc = Z_NULL;
+    zstream.zfree = Z_NULL;
+    zstream.opaque = Z_NULL;
+    if (deflateInit(&zstream, level) != Z_OK)
+      status = OBSTREAM_ERR_ZLIB;
+  }
+  ~OBSTREAMzlib()
+  {
+    delete[] in;
+    delete[] out;
+    if (obstream)
+      delete obstream;
+  }
+  OBSTREAM* next() { return obstream; }
+  OBSTREAM* tail() { return obstream->tail(); }
+  OBSTREAM* detach() { OBSTREAM* s = obstream; obstream = 0; return s; }
+  void put(unsigned char byte)
+  {
+    if (ptr == end)
+      encode(Z_NO_FLUSH);
+    *ptr++ = byte;
+  }
+  using OBSTREAM::put;
+  void flush() { encode(Z_SYNC_FLUSH); obstream->flush(); }
+  void close()
+  {
+    encode(Z_FINISH);
+    if (deflateEnd(&zstream) != Z_OK)
+      status = OBSTREAM_ERR_ZLIB;
+    obstream->close();
+  }
+  size_t bytes() const { return written; }
+  int error() const { return status ? status : obstream->error(); }
+
+private:
+  // encode buffer
+  void encode(int mode)
+  {
+    zstream.next_in = in;
+    zstream.avail_in = (unsigned)(ptr - in);
+    written += zstream.avail_in;
+    do {
+      zstream.next_out = out;
+      zstream.avail_out = outsize;
+      deflate(&zstream, mode);
+      obstream->put(out, outsize - zstream.avail_out);
+    } while (!zstream.avail_out);
+    ptr = in;
+  }
+
+  OBSTREAM* obstream;
+  z_stream zstream;
+  const size_t insize;
+  const size_t outsize;
+  unsigned char* const in;
+  unsigned char* const out;
+  unsigned char* const end;
+  unsigned char* ptr;
+  size_t written;
+  int status;
+};
+#endif
+
+#endif
diff --git a/src/netcdf/Makefile.in b/src/netcdf/Makefile.in
index cefa03d..a7ef04b 100644
--- a/src/netcdf/Makefile.in
+++ b/src/netcdf/Makefile.in
@@ -181,6 +181,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +230,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/netcdf/api.c b/src/netcdf/api.c
index b1c5a66..598e641 100644
--- a/src/netcdf/api.c
+++ b/src/netcdf/api.c
@@ -158,7 +158,7 @@ int            _dims[30];
  */
 /* ARGSUSED */
 INTERNAL int
-silonetcdf_ncopen (char *filename, int mode)
+silonetcdf_ncopen (char const *filename, int mode)
 {
    PDBfile       *pdb_file;    /* PDB File descriptor. */
    int            dbid;        /* Database identifier. */
@@ -167,7 +167,7 @@ silonetcdf_ncopen (char *filename, int mode)
    silo_Init();
 
    /* Attempt to open file. */
-   if ((pdb_file = lite_PD_open(filename, "r")) == NULL) {
+   if ((pdb_file = lite_PD_open((char*)filename, "r")) == NULL) {
       /* Not a SILO file. */
       /* silo_Error (lite_PD_err, SILO_ERROR); */
       silo_Error("File is not a SILO file.", SILO_ERROR);
@@ -388,7 +388,7 @@ silonetcdf_ncdirlist (int dbid, int dirid, int *ndirs, int *dirs)
  *
  *---------------------------------------------------------------------*/
 INTERNAL int
-silonetcdf_ncvarid (int dbid, char *name)
+silonetcdf_ncvarid (int dbid, char const *name)
 {
    int            id;
 
@@ -624,7 +624,7 @@ silonetcdf_ncattinq (int dbid, int varid, char *name, int *datatype, int *len)
  *      Return the object ID of the object with the given name.
  *---------------------------------------------------------------------*/
 INTERNAL int
-silonetcdf_ncobjid (int dbid, char *name)
+silonetcdf_ncobjid (int dbid, char const *name)
 {
    int            id;
 
diff --git a/src/netcdf/ent.c b/src/netcdf/ent.c
index 6b5f241..8178ded 100644
--- a/src/netcdf/ent.c
+++ b/src/netcdf/ent.c
@@ -255,7 +255,7 @@ silo_GetDirId(int sid, int dirid, char *name)
  *
  *--------------------------------------------------------------------*/
 INTERNAL int
-silo_GetVarId (int sid, int dirid, char *name)
+silo_GetVarId (int sid, int dirid, char const *name)
 {
     int            i, relid = -1;
 
@@ -280,7 +280,7 @@ silo_GetVarId (int sid, int dirid, char *name)
  *      Return relative ID of object in given directory.
  *--------------------------------------------------------------------*/
 INTERNAL int
-silo_GetObjId(int sid, int dirid, char *name)
+silo_GetObjId(int sid, int dirid, char const *name)
 {
     int            i, relid = -1;
 
diff --git a/src/netcdf/netcdf.c b/src/netcdf/netcdf.c
index a3bc633..ed29463 100644
--- a/src/netcdf/netcdf.c
+++ b/src/netcdf/netcdf.c
@@ -561,7 +561,7 @@ silo_GetHypercube(void *sink, void *source, int *dims, int ndims, int *start,
    char          *local_sink, *local_source; /* Index by bytes */
 
    local_sink = (char*)sink;
-   local_source = source;
+   local_source = (char *)source;
 
    /* If sink is 1D, just do a memory copy from source */
    if (ndims == 1) {
diff --git a/src/netcdf/silo_netcdf.c b/src/netcdf/silo_netcdf.c
index 6db8347..af627ec 100644
--- a/src/netcdf/silo_netcdf.c
+++ b/src/netcdf/silo_netcdf.c
@@ -105,7 +105,6 @@ db_cdf_InitCallbacks (DBfile *dbfile)
 {
     dbfile->pub.close = db_cdf_Close;
     dbfile->pub.g_dir = db_cdf_GetDir;
-    dbfile->pub.g_attr = db_cdf_GetAtt;
     dbfile->pub.g_ma = db_cdf_GetMaterial;
     dbfile->pub.g_ms = db_cdf_GetMatspecies;
     dbfile->pub.g_comp = db_cdf_GetComponent;
@@ -124,11 +123,8 @@ db_cdf_InitCallbacks (DBfile *dbfile)
     dbfile->pub.exist = db_cdf_InqVarExists;
     dbfile->pub.inqvartype = db_cdf_InqVarType;
     dbfile->pub.i_meshtype = db_cdf_InqMeshtype;
-    dbfile->pub.r_att = db_cdf_ReadAtt;
     dbfile->pub.r_var = db_cdf_ReadVar;
-    dbfile->pub.r_var1 = db_cdf_ReadVar1;
     dbfile->pub.cd = db_cdf_SetDir;
-    dbfile->pub.cdid = db_cdf_SetDirID;
     dbfile->pub.newtoc = db_cdf_NewToc;
     dbfile->pub.module = db_cdf_Filters;
 }
@@ -208,7 +204,7 @@ db_cdf_Close(DBfile *_dbfile)
  *-------------------------------------------------------------------------*/
 /* ARGSUSED */
 INTERNAL DBfile *
-db_cdf_Open(char *name, int mode, int subtype)
+db_cdf_Open(char const *name, int mode, int subtype)
 {
     char          *me = "db_cdf_Open";
     int            cdf;
@@ -595,47 +591,6 @@ db_cdf_NewToc(DBfile *_dbfile)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    db_cdf_GetAtt
- *
- * Purpose:     Allocate space for, and read, the given attribute of the
- *              given variable.
- *
- * Return:      Success:        pointer to result
- *
- *              Failure:        NULL
- *
- * Programmer:  matzke at viper
- *              Fri Jan  6 16:39:25 PST 1995
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-SILO_CALLBACK void *
-db_cdf_GetAtt(DBfile *_dbfile, char *varname, char *attname)
-{
-    void          *result;
-    DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
-    char          *me = "db_cdf_GetAtt";
-    int            varid, datatype, len, nbytes;
-
-    /*  Convert ascii name into SILO variable id. */
-    if ((varid = silonetcdf_ncvarid(dbfile->cdf, varname)) < 0) {
-        db_perror("silonetcdf_ncvarid", E_CALLFAIL, me);
-        return NULL;
-    }
-
-    /* Get size of attribute and allocate space for it. */
-    silonetcdf_ncattinq(dbfile->cdf, varid, attname, &datatype, &len);
-
-    nbytes = len * silo_GetDataSize(dbfile->cdf, datatype);
-    result = ALLOC_N(char, nbytes);
-
-    silonetcdf_ncattget(dbfile->cdf, varid, attname, result);
-    return result;
-}
-
-/*-------------------------------------------------------------------------
  * Function:    db_cdf_GetMaterial
  *
  * Purpose:     Read a material-data object from a NetCDF file and return
@@ -654,7 +609,7 @@ db_cdf_GetAtt(DBfile *_dbfile, char *varname, char *attname)
  *
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBmaterial *
-db_cdf_GetMaterial(DBfile *_dbfile, char *name)
+db_cdf_GetMaterial(DBfile *_dbfile, char const *name)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetMaterial";
@@ -728,7 +683,7 @@ db_cdf_GetMaterial(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmatspecies *
-db_cdf_GetMatspecies(DBfile *_dbfile, char *objname)
+db_cdf_GetMatspecies(DBfile *_dbfile, char const *objname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     DBmatspecies  *mm = DBAllocMatspecies();
@@ -813,7 +768,7 @@ db_cdf_GetMatspecies(DBfile *_dbfile, char *objname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_cdf_GetComponent(DBfile *_dbfile, char *objname, char *compname)
+db_cdf_GetComponent(DBfile *_dbfile, char const *objname, char const *compname)
 {
     void          *result = NULL;
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
@@ -861,7 +816,7 @@ db_cdf_GetComponent(DBfile *_dbfile, char *objname, char *compname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmultimesh *
-db_cdf_GetMultimesh(DBfile *_dbfile, char *objname)
+db_cdf_GetMultimesh(DBfile *_dbfile, char const *objname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetMultimesh";
@@ -947,7 +902,7 @@ db_cdf_GetMultimesh(DBfile *_dbfile, char *objname)
  *
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBpointmesh *
-db_cdf_GetPointmesh(DBfile *_dbfile, char *objname)
+db_cdf_GetPointmesh(DBfile *_dbfile, char const *objname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetPointmesh";
@@ -1023,7 +978,7 @@ db_cdf_GetPointmesh(DBfile *_dbfile, char *objname)
  *
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBmeshvar *
-db_cdf_GetPointvar(DBfile *_dbfile, char *objname)
+db_cdf_GetPointvar(DBfile *_dbfile, char const *objname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetPointvar";
@@ -1065,7 +1020,7 @@ db_cdf_GetPointvar(DBfile *_dbfile, char *objname)
      */
     if ((mv->nvals > 0) && (SILO_Globals.dataReadMask & DBPVData)) {
         INIT_OBJ(&tmp_obj);
-        mv->vals = ALLOC_N(DB_DTPTR*, mv->nvals);
+        mv->vals = ALLOC_N(void*, mv->nvals);
 
         for (i = 0; i < mv->nvals; i++) {
             DEFALL_OBJ(_valstr[0], &mv->vals[i], DB_FLOAT);
@@ -1101,7 +1056,7 @@ db_cdf_GetPointvar(DBfile *_dbfile, char *objname)
  *
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBquadmesh *
-db_cdf_GetQuadmesh(DBfile *_dbfile, char *objname)
+db_cdf_GetQuadmesh(DBfile *_dbfile, char const *objname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetQuadmesh";
@@ -1185,7 +1140,7 @@ db_cdf_GetQuadmesh(DBfile *_dbfile, char *objname)
  *
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBquadvar *
-db_cdf_GetQuadvar(DBfile *_dbfile, char *objname)
+db_cdf_GetQuadvar(DBfile *_dbfile, char const *objname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetQuadvar";
@@ -1239,10 +1194,10 @@ db_cdf_GetQuadvar(DBfile *_dbfile, char *objname)
     if ((qv->nvals > 0) && (SILO_Globals.dataReadMask & DBQVData)) {
         INIT_OBJ(&tmp_obj);
 
-        qv->vals = ALLOC_N(DB_DTPTR*, qv->nvals);
+        qv->vals = ALLOC_N(void*, qv->nvals);
 
         if (qv->mixlen > 0) {
-            qv->mixvals = ALLOC_N(DB_DTPTR*, qv->nvals);
+            qv->mixvals = ALLOC_N(void*, qv->nvals);
         }
         if (qv->datatype == 0) {
             strcpy(tmpstr, objname);
@@ -1295,7 +1250,7 @@ db_cdf_GetQuadvar(DBfile *_dbfile, char *objname)
  *    Handle topo_dim member correctly.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBucdmesh *
-db_cdf_GetUcdmesh(DBfile *_dbfile, char *meshname)
+db_cdf_GetUcdmesh(DBfile *_dbfile, char const *meshname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetUcdmesh";
@@ -1453,7 +1408,7 @@ db_cdf_GetUcdmesh(DBfile *_dbfile, char *meshname)
  *      Added support for the read mask stuff.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBucdvar *
-db_cdf_GetUcdvar(DBfile *_dbfile, char *varname)
+db_cdf_GetUcdvar(DBfile *_dbfile, char const *varname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetUcdvar";
@@ -1500,10 +1455,10 @@ db_cdf_GetUcdvar(DBfile *_dbfile, char *varname)
     if ((uv->nvals > 0) && (SILO_Globals.dataReadMask & DBUVData)) {
         INIT_OBJ(&tmp_obj);
 
-        uv->vals = ALLOC_N(DB_DTPTR*, uv->nvals);
+        uv->vals = ALLOC_N(void*, uv->nvals);
 
         if (uv->mixlen > 0) {
-            uv->mixvals = ALLOC_N(DB_DTPTR*, uv->nvals);
+            uv->mixvals = ALLOC_N(void*, uv->nvals);
         }
 
         for (i = 0; i < uv->nvals; i++) {
@@ -1542,7 +1497,7 @@ db_cdf_GetUcdvar(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_cdf_GetVar(DBfile *_dbfile, char *name)
+db_cdf_GetVar(DBfile *_dbfile, char const *name)
 {
     char          *me = "db_cdf_GetVar";
     char          *data;
@@ -1583,7 +1538,7 @@ db_cdf_GetVar(DBfile *_dbfile, char *name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_GetVarByteLength(DBfile *_dbfile, char *varname)
+db_cdf_GetVarByteLength(DBfile *_dbfile, char const *varname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetVarByteLength";
@@ -1619,7 +1574,7 @@ db_cdf_GetVarByteLength(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_GetVarLength(DBfile *_dbfile, char *varname)
+db_cdf_GetVarLength(DBfile *_dbfile, char const *varname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetVarLength";
@@ -1652,7 +1607,7 @@ db_cdf_GetVarLength(DBfile *_dbfile, char *varname)
  *--------------------------------------------------------------------
  */
 SILO_CALLBACK DBObjectType
-db_cdf_InqVarType(DBfile *_dbfile, char *varname)
+db_cdf_InqVarType(DBfile *_dbfile, char const *varname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_InqVarType";
@@ -1688,7 +1643,7 @@ db_cdf_InqVarType(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_InqMeshname(DBfile *_dbfile, char *vname, char *mname)
+db_cdf_InqMeshname(DBfile *_dbfile, char const *vname, char *mname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     int            meshid;
@@ -1728,7 +1683,7 @@ db_cdf_InqMeshname(DBfile *_dbfile, char *vname, char *mname)
  *--------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_InqMeshtype(DBfile *_dbfile, char *meshname)
+db_cdf_InqMeshtype(DBfile *_dbfile, char const *meshname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_InqMeshtype";
@@ -1785,7 +1740,7 @@ db_cdf_InqMeshtype(DBfile *_dbfile, char *meshname)
  *
  *--------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_cdf_InqVarExists(DBfile *_dbfile, char *varname)
+db_cdf_InqVarExists(DBfile *_dbfile, char const *varname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
 
@@ -1813,7 +1768,7 @@ db_cdf_InqVarExists(DBfile *_dbfile, char *varname)
  *--------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_GetVarType(DBfile *_dbfile, char *vname)
+db_cdf_GetVarType(DBfile *_dbfile, char const *vname)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_GetVarType";
@@ -1831,39 +1786,6 @@ db_cdf_GetVarType(DBfile *_dbfile, char *vname)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    db_cdf_ReadAtt
- *
- * Purpose:     Reads the given attribute value into the provided space.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  matzke at viper
- *              Wed Jan 11 09:14:11 PST 1995
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-SILO_CALLBACK int
-db_cdf_ReadAtt(DBfile *_dbfile, char *vname, char *aname, void *results)
-{
-    DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
-    char          *me = "db_cdf_ReadAtt";
-    int            varid;
-
-    if ((varid = silonetcdf_ncvarid(dbfile->cdf, vname)) < 0) {
-        return db_perror("silonetcdf_ncvarid", E_CALLFAIL, me);
-    }
-
-    if (silonetcdf_ncattget(dbfile->cdf, varid, aname, results) < 0) {
-        return db_perror("silonetcdf_ncattget", E_CALLFAIL, me);
-    }
-    return 0;
-}
-
-/*-------------------------------------------------------------------------
  * Function:    db_cdf_ReadVar
  *
  * Purpose:     Reads a variable into the given space.
@@ -1880,7 +1802,7 @@ db_cdf_ReadAtt(DBfile *_dbfile, char *vname, char *aname, void *results)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_ReadVar(DBfile *_dbfile, char *name, void *result)
+db_cdf_ReadVar(DBfile *_dbfile, char const *name, void *result)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_ReadVar";
@@ -1906,32 +1828,6 @@ db_cdf_ReadVar(DBfile *_dbfile, char *name, void *result)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    db_cdf_ReadVar1
- *
- * Purpose:     Reads one element from a variable into the provided
- *              space.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  matzke at viper
- *              Wed Jan 11 09:24:27 PST 1995
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-/* ARGSUSED */
-SILO_CALLBACK int
-db_cdf_ReadVar1(DBfile *_dbfile, char *vname, int offset, void *result)
-{
-    char          *me = "db_cdf_ReadVar1";
-
-    return db_perror("mismatched parameters to `silonetcdf_ncvarget1'", E_NOTIMP, me);
-}
-
-/*-------------------------------------------------------------------------
  * Function:    db_setdir
  *
  * Purpose:     Set the current directory to the given directory name iff
@@ -2015,13 +1911,14 @@ db_setdir (DBfile_cdf *dbfile, char *dirname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_cdf_SetDir(DBfile *_dbfile, char *path)
+db_cdf_SetDir(DBfile *_dbfile, char const *path)
 {
     DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
     char          *me = "db_cdf_SetDir";
     int            orig_dir = dbfile->pub.dirid;
     int            ierr=0, dirid;
     char          *subpath=NULL;
+    char          *pathcp = _db_safe_strdup(path);
 
     if (STR_EQUAL(path, "/") || STR_EQUAL(path, " ")) {
         db_setdir(dbfile, "/");
@@ -2035,7 +1932,7 @@ db_cdf_SetDir(DBfile *_dbfile, char *path)
 
         if (path[0] == '/')
             db_setdir(dbfile, "/");
-        subpath = (char *)strtok(path, "/");
+        subpath = (char *)strtok(pathcp, "/");
         while (subpath != NULL && !ierr) {
             if (db_setdir(dbfile, subpath) < 0)
                 ierr = 1;
@@ -2044,6 +1941,8 @@ db_cdf_SetDir(DBfile *_dbfile, char *path)
         }
     }
 
+    free(pathcp);
+
     dirid = silonetcdf_ncdirget(dbfile->cdf);
     if (ierr) {
         silonetcdf_ncdirset(dbfile->cdf, orig_dir);
@@ -2056,41 +1955,3 @@ db_cdf_SetDir(DBfile *_dbfile, char *path)
 
     return 0;
 }
-
-/*-------------------------------------------------------------------------
- * Function:    db_cdf_SetDirID
- *
- * Purpose:     Sets the current directory withing the database.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  matzke at viper
- *              Wed Jan 11 09:39:38 PST 1995
- *
- * Modifications:
- *    Eric Brugger, Fri Jan 27 08:27:46 PST 1995
- *    I changed the call DBGetToc to db_cdf_GetToc.
- *
- *    Robb Matzke, Tue Mar 7 10:32:45 EST 1995
- *    I changed the call db_cdf_GetToc to DBNewToc.
- *
- *-------------------------------------------------------------------------
- */
-SILO_CALLBACK int
-db_cdf_SetDirID(DBfile *_dbfile, int dirid)
-{
-    DBfile_cdf    *dbfile = (DBfile_cdf *) _dbfile;
-    char          *me = "db_cdf_SetDirID";
-
-    if (silonetcdf_ncdirset(dbfile->cdf, dirid) < 0) {
-        return db_perror(NULL, E_NOTDIR, me);
-    }
-
-    /* Update directory ID and TOC */
-    dbfile->pub.dirid = silonetcdf_ncdirget(dbfile->cdf);
-    DBNewToc(_dbfile);
-
-    return 0;
-}
diff --git a/src/netcdf/silo_netcdf_private.h b/src/netcdf/silo_netcdf_private.h
index 2d33922..a7bbda0 100644
--- a/src/netcdf/silo_netcdf_private.h
+++ b/src/netcdf/silo_netcdf_private.h
@@ -75,7 +75,7 @@ typedef struct DBfile_cdf {
 } DBfile_cdf;
 
 typedef struct {
-    char          *name[80];    /* Component name */
+    char const    *name[80];    /* Component name */
     void          *ptr[80];     /* Address of component value */
     int            type[80];    /* Datatype of component */
     unsigned char  alloced[80]; /* Sentinel: 1 == space already alloc'd */
@@ -130,32 +130,28 @@ typedef struct {
  */
 #ifndef SILO_NO_CALLBACKS
 SILO_CALLBACK int db_cdf_Close(DBfile *);
-SILO_CALLBACK int db_cdf_InqVarExists(DBfile *, char *);
+SILO_CALLBACK int db_cdf_InqVarExists(DBfile *, char const *);
 SILO_CALLBACK int db_cdf_GetDir(DBfile *, char *);
-SILO_CALLBACK void *db_cdf_GetAtt(DBfile *, char *, char *);
-
-SILO_CALLBACK void *db_cdf_GetComponent(DBfile *, char *, char *);
-SILO_CALLBACK DBmaterial *db_cdf_GetMaterial(DBfile *, char *);
-SILO_CALLBACK DBmatspecies *db_cdf_GetMatspecies(DBfile *, char *);
-SILO_CALLBACK DBmultimesh *db_cdf_GetMultimesh(DBfile *, char *);
-SILO_CALLBACK DBpointmesh *db_cdf_GetPointmesh(DBfile *, char *);
-SILO_CALLBACK DBmeshvar *db_cdf_GetPointvar(DBfile *, char *);
-SILO_CALLBACK DBquadmesh *db_cdf_GetQuadmesh(DBfile *, char *);
-SILO_CALLBACK DBquadvar *db_cdf_GetQuadvar(DBfile *, char *);
-SILO_CALLBACK DBucdmesh *db_cdf_GetUcdmesh(DBfile *, char *);
-SILO_CALLBACK DBucdvar *db_cdf_GetUcdvar(DBfile *, char *);
-SILO_CALLBACK void *db_cdf_GetVar(DBfile *, char *);
-SILO_CALLBACK int db_cdf_GetVarByteLength(DBfile *, char *);
-SILO_CALLBACK int db_cdf_GetVarLength(DBfile *, char *);
-SILO_CALLBACK int db_cdf_GetVarType(DBfile *, char *);
-SILO_CALLBACK DBObjectType db_cdf_InqVarType(DBfile *, char *);
-SILO_CALLBACK int db_cdf_InqMeshname(DBfile *, char *, char *);
-SILO_CALLBACK int db_cdf_InqMeshtype(DBfile *, char *);
-SILO_CALLBACK int db_cdf_ReadAtt(DBfile *, char *, char *, void *);
-SILO_CALLBACK int db_cdf_ReadVar(DBfile *, char *, void *);
-SILO_CALLBACK int db_cdf_ReadVar1(DBfile *, char *, int, void *);
-SILO_CALLBACK int db_cdf_SetDir(DBfile *, char *);
-SILO_CALLBACK int db_cdf_SetDirID(DBfile *, int);
+
+SILO_CALLBACK void *db_cdf_GetComponent(DBfile *, char const *, char const *);
+SILO_CALLBACK DBmaterial *db_cdf_GetMaterial(DBfile *, char const *);
+SILO_CALLBACK DBmatspecies *db_cdf_GetMatspecies(DBfile *, char const *);
+SILO_CALLBACK DBmultimesh *db_cdf_GetMultimesh(DBfile *, char const *);
+SILO_CALLBACK DBpointmesh *db_cdf_GetPointmesh(DBfile *, char const *);
+SILO_CALLBACK DBmeshvar *db_cdf_GetPointvar(DBfile *, char const *);
+SILO_CALLBACK DBquadmesh *db_cdf_GetQuadmesh(DBfile *, char const *);
+SILO_CALLBACK DBquadvar *db_cdf_GetQuadvar(DBfile *, char const *);
+SILO_CALLBACK DBucdmesh *db_cdf_GetUcdmesh(DBfile *, char const *);
+SILO_CALLBACK DBucdvar *db_cdf_GetUcdvar(DBfile *, char const *);
+SILO_CALLBACK void *db_cdf_GetVar(DBfile *, char const *);
+SILO_CALLBACK int db_cdf_GetVarByteLength(DBfile *, char const *);
+SILO_CALLBACK int db_cdf_GetVarLength(DBfile *, char const *);
+SILO_CALLBACK int db_cdf_GetVarType(DBfile *, char const *);
+SILO_CALLBACK DBObjectType db_cdf_InqVarType(DBfile *, char const *);
+SILO_CALLBACK int db_cdf_InqMeshname(DBfile *, char const *, char *);
+SILO_CALLBACK int db_cdf_InqMeshtype(DBfile *, char const *);
+SILO_CALLBACK int db_cdf_ReadVar(DBfile *, char const *, void *);
+SILO_CALLBACK int db_cdf_SetDir(DBfile *, char const *);
 SILO_CALLBACK int db_cdf_Filters(DBfile *, FILE *);
 SILO_CALLBACK int db_cdf_NewToc(DBfile *);
 
@@ -293,13 +289,13 @@ extern int silo_GetIndex1(int *, int *, int);
 extern int silo_Verify(PDBfile *);
 
 /*api.c */
-extern int silonetcdf_ncopen(char *, int);
+extern int silonetcdf_ncopen(char const *, int);
 extern int silonetcdf_ncinqall(int, int *, int *, int *, int *, int *, int *);
 extern int silonetcdf_ncobjinq(int, int, char *, int *, int *);
 extern int silonetcdf_ncdirlist(int, int, int *, int *);
-extern int silonetcdf_ncvarid(int, char *);
+extern int silonetcdf_ncvarid(int, char const *);
 extern int silonetcdf_ncattinq(int, int, char *, int *, int *);
-extern int silonetcdf_ncobjid(int, char *);
+extern int silonetcdf_ncobjid(int, char const *);
 extern int silonetcdf_ncattget(int, int, char *, void *);
 extern int silonetcdf_ncdirget(int);
 extern int silonetcdf_ncclose(int);
@@ -325,10 +321,10 @@ extern int silo_GetDimCount(int, int);
 extern int silo_GetDirCount(int, int);
 extern int silo_GetDirId(int, int, char *);
 extern int silo_GetObjCount(int, int);
-extern int silo_GetObjId(int, int, char *);
+extern int silo_GetObjId(int, int, char const *);
 extern int silo_GetTables(int);
 extern int silo_GetVarCount(int, int);
-extern int silo_GetVarId(int, int, char *);
+extern int silo_GetVarId(int, int, char const *);
 
 /*obj.c */
 extern int SO_GetObject(int, int, SO_Object *);
diff --git a/src/pdb/Makefile.in b/src/pdb/Makefile.in
index 5efc63f..aacb7f7 100644
--- a/src/pdb/Makefile.in
+++ b/src/pdb/Makefile.in
@@ -205,6 +205,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -253,9 +254,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/pdb/pdb.c b/src/pdb/pdb.c
index 7199552..aa7636d 100644
--- a/src/pdb/pdb.c
+++ b/src/pdb/pdb.c
@@ -1057,7 +1057,7 @@ _PD_write (PDBfile *file, char *name, char *intype, char *outtype,
    if (file->virtual_internal) {
       SC_address ad;
 
-      ad.memaddr = vr;
+      ad.memaddr = (char *)vr;
       ep->blocks->diskaddr = ad.diskaddr;
       lite_SC_mark(vr, 1);
       ep = lite_PD_copy_syment(ep);
@@ -1235,6 +1235,10 @@ lite_PD_create (char *name) {
    file->system_version = PDB_SYSTEM_VERSION;
    file->date           = lite_SC_date();
 
+   /*
+    * Create the top-level directory
+    */
+   lite_PD_mkdir(file,"/");
    return(file);
 }
 #endif /* PDB_WRITE */
diff --git a/src/pdb/pdlow.c b/src/pdb/pdlow.c
index 783dbd7..36e50b4 100644
--- a/src/pdb/pdlow.c
+++ b/src/pdb/pdlow.c
@@ -1757,13 +1757,13 @@ void
 _lite_PD_eod (PDBfile *file) {
 
    FILE *fp;
-   long old, new;
+   long old_one, new_one;
 
    fp  = file->stream;
-   old = file->chrtaddr;
-   new = io_tell(fp);
+   old_one = file->chrtaddr;
+   new_one = io_tell(fp);
 
-   file->chrtaddr = MAX(old, new);
+   file->chrtaddr = MAX(old_one, new_one);
 }
 #endif /* PDB_WRITE */
 
diff --git a/src/pdb/pdrdwr.c b/src/pdb/pdrdwr.c
index 76c1cbd..1e86b8c 100644
--- a/src/pdb/pdrdwr.c
+++ b/src/pdb/pdrdwr.c
@@ -297,7 +297,7 @@ _lite_PD_hyper_read (PDBfile *file, char *name, char *outtype,
     */
    tep = _lite_PD_mk_syment(NULL, 0L, 0L, &(ep->indirects), NULL);
 
-   nrd = _PD_rd_hyper_index(file, tep, vr, pi,
+   nrd = _PD_rd_hyper_index(file, tep, (char *)vr, pi,
                             PD_entry_type(ep), outtype,
                             PD_entry_address(ep),
                             PD_entry_blocks(ep), hbyt, fbyt);
@@ -1356,7 +1356,7 @@ _lite_PD_hyper_write (PDBfile *file, char *name, syment *ep, lite_SC_byte *vr,
    slen = strlen(s);
    c = slen > 0 ? s[slen-1] : 0;
    if (((c != ')') && (c != ']')) || (dims == NULL)) {
-      return(_lite_PD_wr_syment(file, vr, PD_entry_number(ep),
+      return(_lite_PD_wr_syment(file, (char *)vr, PD_entry_number(ep),
                                 intype, PD_entry_type(ep)));
    }
 
@@ -1395,7 +1395,7 @@ _lite_PD_hyper_write (PDBfile *file, char *name, syment *ep, lite_SC_byte *vr,
                     PD_WRITE);
    }
 
-   _PD_wr_hyper_index(file, vr, pi, intype,
+   _PD_wr_hyper_index(file, (char *)vr, pi, intype,
                       PD_entry_type(ep), PD_entry_address(ep),
                       PD_entry_blocks(ep), hbyt, fbyt);
 
@@ -1727,7 +1727,7 @@ _PD_wr_leaf_members (PDBfile *file, char *intype, char *outtype,
                        PD_WRITE);
       }
       vbuf     = buf;
-      svr      = vr;
+      svr      = (char *)vr;
       in_offs  = 0L;
       out_offs = 0L;
       lite_PD_convert(&vbuf, &svr, intype, outtype, nitems,
diff --git a/src/pdb_drv/Makefile.in b/src/pdb_drv/Makefile.in
index 631baad..dd1b050 100644
--- a/src/pdb_drv/Makefile.in
+++ b/src/pdb_drv/Makefile.in
@@ -128,6 +128,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -176,9 +177,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/pdb_drv/silo_pdb.c b/src/pdb_drv/silo_pdb.c
index 9607038..8c3c1c0 100644
--- a/src/pdb_drv/silo_pdb.c
+++ b/src/pdb_drv/silo_pdb.c
@@ -88,7 +88,7 @@ be used for advertising or product endorsement purposes.
        (int)  PJ_read_as_alt()
 */
 
-static char   *pj_fixname(PDBfile *, char *);
+static char   *pj_fixname(PDBfile *, char const *);
 
 /*-------------------------------------------------------------------------
  * Function:    PJ_read
@@ -106,7 +106,7 @@ static char   *pj_fixname(PDBfile *, char *);
  *-------------------------------------------------------------------------
  */
 INTERNAL int
-PJ_read (PDBfile *file, char *name, void *var) {
+PJ_read (PDBfile *file, char const *name, void *var) {
 
    char          *newname = pj_fixname(file, name);
 
@@ -209,7 +209,7 @@ PJ_read_as_alt (PDBfile *file, char *name, char *type, void *var, long *ind) {
  *-------------------------------------------------------------------------
  */
 INTERNAL syment *
-PJ_inquire_entry (PDBfile *file, char *name) {
+PJ_inquire_entry (PDBfile *file, char const *name) {
 
    char          *newname = pj_fixname(file, name);
 
@@ -252,7 +252,7 @@ PJ_inquire_entry (PDBfile *file, char *name) {
  *-------------------------------------------------------------------------
  */
 INTERNAL char *
-pj_fixname (PDBfile *file, char *inname) {
+pj_fixname (PDBfile *file, char const *inname) {
 
    static char    _outname[MAXLINE];
 
@@ -320,7 +320,8 @@ PJ_write_alt (PDBfile *file, char const *name, char const *type,
 
    char          *newname = pj_fixname(file, name);
 
-   return (lite_PD_write_alt(file, newname, type, var, nd, ind));
+   return (lite_PD_write_alt(file, newname, (char *) type,
+              (void *) var, nd, (long *) ind));
 }
 #endif /* PDB_WRITE */
 
@@ -343,8 +344,8 @@ PJ_write_alt (PDBfile *file, char const *name, char const *type,
  */
 #ifdef PDB_WRITE
 INTERNAL int
-PJ_write_len (PDBfile *file, char *name, char *type, void const *var, int nd,
-              long *len) {
+PJ_write_len (PDBfile *file, char const *name, char const *type, void const *var, int nd,
+              long const *len) {
 
    long           ind[15], i;
 
@@ -356,7 +357,7 @@ PJ_write_len (PDBfile *file, char *name, char *type, void const *var, int nd,
       ind[i * 3 + 2] = 1;
    }
 
-   return (lite_PD_write_alt(file, newname, type, (void*) var, nd, ind));
+   return (lite_PD_write_alt(file, newname, (char*) type, (void*) var, nd, ind));
 }
 #endif /* PDB_WRITE */
 /* END pjjacket.c */
@@ -431,7 +432,7 @@ static PJgroup *cached_group = NULL;
 static char    *cached_obj_name = NULL;
 static char    *cached_file_name = NULL;
 
-PRIVATE int db_pdb_ParseVDBSpec (char *mvdbspec, char **varname,
+PRIVATE int db_pdb_ParseVDBSpec (char const *mvdbspec, char **varname,
                                  char **filename);
 PRIVATE int pj_GetVarDatatypeID (PDBfile *file, char *varname);
 PRIVATE void reduce_path(char *path, char *npath);
@@ -565,11 +566,11 @@ PJ_NoCache ( void )
  *      match the expected_dbtype.
  *--------------------------------------------------------------------*/
 INTERNAL int
-PJ_GetObject(PDBfile *file_in, char *objname_in, PJcomplist *tobj, int expected_dbtype)
+PJ_GetObject(PDBfile *file_in, char const *objname_in, PJcomplist *tobj, int expected_dbtype)
 {
     int             i, j, error;
     char           *varname=NULL, *filename=NULL;
-    char           *objname=NULL;
+    char const     *objname=NULL;
     PDBfile        *file=NULL;
     char           *me = "PJ_GetObject";
 
@@ -590,7 +591,7 @@ PJ_GetObject(PDBfile *file_in, char *objname_in, PJcomplist *tobj, int expected_
     if (filename != NULL)
     {
         objname = varname;
-        if ((file = lite_PD_open(filename, "r")) == NULL)
+        if ((file = lite_PD_open((char*)filename, "r")) == NULL)
         {
             FREE (varname);
             FREE (filename);
@@ -792,7 +793,7 @@ PJ_ClearCache(void)
  *--------------------------------------------------------------------
  */
 INTERNAL void *
-PJ_GetComponent (PDBfile *file, char *objname, char *compname) {
+PJ_GetComponent (PDBfile *file, char const *objname, char const *compname) {
 
    char          *result = NULL;
    PJcomplist     tmp_obj;
@@ -830,7 +831,7 @@ PJ_GetComponent (PDBfile *file, char *objname, char *compname) {
  *--------------------------------------------------------------------
  */
 INTERNAL int
-PJ_GetComponentType (PDBfile *file, char *objname, char *compname)
+PJ_GetComponentType (PDBfile *file, char const *objname, char const *compname)
 {
    int  retval = DB_NOTYPE;
    char *me = "PJ_GetComponentType";
@@ -1091,7 +1092,17 @@ PJ_ReadVariable(PDBfile *file,
          if (forcing)
             *var = ALLOC_N (char, num * sizeof(float));
          else
-            *var = ALLOC_N (char, num * size);
+         {
+            if (act_datatype == DB_CHAR)
+            {
+                *var = ALLOC_N (char, (num+1) * size);
+                (*var)[num] = '\0';
+            }
+            else
+            {
+                *var = ALLOC_N (char, num * size);
+            }
+         }
 
          alloced = 1;
       }
@@ -1247,7 +1258,7 @@ pj_GetVarDatatypeID (PDBfile *file, char *varname) {
  *
  *--------------------------------------------------------------------*/
 PRIVATE int
-db_pdb_ParseVDBSpec (char *mvdbspec, char **varname, char **filename)
+db_pdb_ParseVDBSpec (char const *mvdbspec, char **varname, char **filename)
 {
     int len_filename, len_varname;
 
@@ -1463,7 +1474,7 @@ reduce_path(char *path, char *npath)
 INTERNAL int
 PJ_get_group(
    PDBfile       *file,        /* PDB file pointer */
-   char          *name,        /* Name of group desc to read */
+   char const    *name,        /* Name of group desc to read */
    PJgroup      **group)       /* Variable to write into */
 {
    syment	*ep;
@@ -1471,7 +1482,7 @@ PJ_get_group(
    /*
     * Make sure the thing we're looking up is really a group.
     */
-   ep = lite_PD_inquire_entry (file, name, TRUE, NULL);
+   ep = lite_PD_inquire_entry (file, (char *) name, TRUE, NULL);
    if (!ep || strcmp(PD_entry_type(ep), "Group *")) return 0;
 
 
@@ -1748,7 +1759,6 @@ static char   *_ptvalstr[10] =
    coming into existence. This is to ensure diffs on files
    before and after this change don't vary due to leading
    semicolon. */
-static int const handleSlashSwap = 1;
 static int const skipFirstSemicolon = 1;
 
 /*----------------------------------------------------------------------
@@ -1773,7 +1783,7 @@ static int const skipFirstSemicolon = 1;
  *      Moved here from pjobj.c so it could be made static (private).
  *--------------------------------------------------------------------*/
 PRIVATE int
-db_pdb_GetVarDatatype (PDBfile *pdb, char *varname) {
+db_pdb_GetVarDatatype (PDBfile *pdb, char const *varname) {
 
    syment        *ep;
    int            datatype;
@@ -1830,7 +1840,6 @@ db_pdb_InitCallbacks ( DBfile *dbfile )
     dbfile->pub.cd = db_pdb_SetDir;
     dbfile->pub.g_dir = db_pdb_GetDir;
     dbfile->pub.newtoc = db_pdb_NewToc;
-    dbfile->pub.cdid = NULL;            /*DBSetDirID() not supported    */
 #ifdef PDB_WRITE
     dbfile->pub.mkdir = db_pdb_MkDir;
 #endif
@@ -1841,9 +1850,6 @@ db_pdb_InitCallbacks ( DBfile *dbfile )
     dbfile->pub.g_varbl = db_pdb_GetVarByteLength;
     dbfile->pub.g_vartype = db_pdb_GetVarType;
     dbfile->pub.g_vardims = db_pdb_GetVarDims;
-    dbfile->pub.r_var1 = NULL;          /*DBReadVar1() not supported    */
-    dbfile->pub.g_attr = db_pdb_GetAtt;
-    dbfile->pub.r_att = db_pdb_ReadAtt;
 
     /* Variable I/O operations */
     dbfile->pub.g_var = db_pdb_GetVar;
@@ -2060,7 +2066,7 @@ db_pdb_close(DBfile *_dbfile)
  *    Changed error code for failure to open to E_DRVRCANTOPEN
  *-------------------------------------------------------------------------*/
 INTERNAL DBfile *
-db_pdb_Open(char *name, int mode, int opts_set_id)
+db_pdb_Open(char const *name, int mode, int opts_set_id)
 {
     PDBfile        *pdb;
     DBfile_pdb     *dbfile;
@@ -2077,14 +2083,14 @@ db_pdb_Open(char *name, int mode, int opts_set_id)
     }
     if (mode == DB_READ)
     {
-        if (NULL == (pdb = lite_PD_open(name, "r")))
+        if (NULL == (pdb = lite_PD_open((char*)name, "r")))
         {
             db_perror(NULL, E_DRVRCANTOPEN, me);
             return NULL;
         }
     } else if (mode == DB_APPEND)
     {
-        if (NULL == (pdb = lite_PD_open(name, "a")))
+        if (NULL == (pdb = lite_PD_open((char*)name, "a")))
         {
             db_perror(NULL, E_DRVRCANTOPEN, me);
             return NULL;
@@ -2164,7 +2170,7 @@ db_pdb_Open(char *name, int mode, int opts_set_id)
  *-------------------------------------------------------------------------*/
 /* ARGSUSED */
 INTERNAL DBfile *
-db_pdb_Create (char *name, int mode, int target, int opts_set_id, char *finfo)
+db_pdb_Create (char const *name, int mode, int target, int opts_set_id, char const *finfo)
 {
     DBfile_pdb     *dbfile;
     static char    *me = "db_pdb_create";
@@ -2223,16 +2229,16 @@ db_pdb_Create (char *name, int mode, int target, int opts_set_id, char *finfo)
 #endif
     db_pdb_InitCallbacks((DBfile *) dbfile);
 
-    if (NULL == (dbfile->pdb = lite_PD_open(name, "w")))
+    if (NULL == (dbfile->pdb = lite_PD_open((char*)name, "w")))
     {
         FREE(dbfile->pub.name);
+        FREE(dbfile);
         db_perror(name, E_NOFILE, me);
         return NULL;
     }
 #ifdef USING_PDB_PROPER
     PD_set_track_pointers(dbfile->pdb, FALSE);
 #endif
-    lite_PD_mkdir(dbfile->pdb, "/");
     DBNewToc((DBfile *) dbfile);
     if (finfo)
     {
@@ -2350,7 +2356,7 @@ INTERNAL int
 PJ_get_fullpath(
    PDBfile       *file,
    char          *cwd,         /* Current working directory */
-   char          *path,        /* Pathname (abs or rel) to traverse */
+   char const    *path,        /* Pathname (abs or rel) to traverse */
    char          *name)        /* Returned adjusted name */
 {
     int             ierr;
@@ -2453,7 +2459,7 @@ PJ_get_fullpath(
  *-------------------------------------------------------------------------*/
 PRIVATE int
 db_pdb_getobjinfo (PDBfile       *pdb,
-                   char          *name, /* Name of object to inquire about */
+                   char const    *name, /* Name of object to inquire about */
                    char          *type, /* Returned object type of 'name'  */
                    int           *num)  /* Returned number of elements */
 {
@@ -2509,7 +2515,7 @@ db_pdb_getobjinfo (PDBfile       *pdb,
  *-------------------------------------------------------------------------*/
 PRIVATE int
 db_pdb_getvarinfo (PDBfile       *pdb,
-                   char          *name,     /*Name of var to inquire about */
+                   char const    *name,     /*Name of var to inquire about */
                    char          *type,     /*Returned datatype of 'name' */
                    int           *num,      /*Returned number of elements */
                    int           *size,     /*Returned element size */
@@ -3140,7 +3146,7 @@ db_pdb_NewToc (DBfile *_dbfile)
  *    Put in cast to remove compiler warning.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBObjectType
-db_pdb_InqVarType(DBfile *_dbfile, char *varname)
+db_pdb_InqVarType(DBfile *_dbfile, char const *varname)
 {
     DBfile_pdb     *dbfile = (DBfile_pdb *) _dbfile;
     PDBfile        *file = dbfile->pdb;
@@ -3150,7 +3156,7 @@ db_pdb_InqVarType(DBfile *_dbfile, char *varname)
     int             typetag;
 
     /* First, check to see if it exists */
-    entry = lite_PD_inquire_entry(file, varname, TRUE, NULL);
+    entry = lite_PD_inquire_entry(file, (char *)varname, TRUE, NULL);
     if (entry == NULL)
     {
         /* This could be a directory.  Add a "/" to the end and try again. */
@@ -3194,39 +3200,6 @@ db_pdb_InqVarType(DBfile *_dbfile, char *varname)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    db_pdb_GetAtt
- *
- * Purpose:     Allocate space for, and read, the given attribute of the
- *              given variable.
- *
- * Return:      Success:        pointer to result
- *
- *              Failure:        NULL
- *
- * Programmer:  matzke at viper
- *              Tue Nov  8 08:06:45 PST 1994
- *
- * Modifications:
- *     Sean Ahern, Sun Oct  1 03:07:41 PDT 1995
- *     Made "me" static.
- *-------------------------------------------------------------------------*/
-SILO_CALLBACK void *
-db_pdb_GetAtt (DBfile *_dbfile, char *varname, char *attname)
-{
-   void          *result;
-   DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
-   static char   *me = "db_pdb_GetAtt";
-
-   result = lite_PD_get_attribute(dbfile->pdb, varname, attname);
-   if (!result) {
-      db_perror("PD_get_attribute", E_CALLFAIL, me);
-      return NULL;
-   }
-   return result;
-}
-
-
-/*-------------------------------------------------------------------------
  * Function:    db_pdb_GetObject
  *
  * Purpose:     Reads a group from a PDB file.
@@ -3250,7 +3223,7 @@ db_pdb_GetAtt (DBfile *_dbfile, char *varname, char *attname)
  *    a leak.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBobject *
-db_pdb_GetObject (DBfile *_file, char *name)
+db_pdb_GetObject (DBfile *_file, char const *name)
 {
    PJgroup      *group=NULL;
    PDBfile      *file = ((DBfile_pdb *)_file)->pdb;
@@ -3264,16 +3237,16 @@ db_pdb_GetObject (DBfile *_file, char *name)
     * because we have a character string type name instead of an
     * integer type constant.
     */
-   obj = malloc (sizeof (DBobject));
-   obj->name = safe_strdup (group->name);
-   obj->type = safe_strdup (group->type);
+   obj = (DBobject *)calloc (1, sizeof (DBobject));
+   obj->name = _db_safe_strdup (group->name);
+   obj->type = _db_safe_strdup (group->type);
    obj->ncomponents = obj->maxcomponents = group->ncomponents;
-   obj->comp_names = malloc (obj->maxcomponents * sizeof(char*));
-   obj->pdb_names  = malloc (obj->maxcomponents * sizeof(char*));
+   obj->comp_names = (char **)malloc (obj->maxcomponents * sizeof(char*));
+   obj->pdb_names  = (char **)malloc (obj->maxcomponents * sizeof(char*));
 
    for (i=0; i<group->ncomponents; i++) {
-      obj->comp_names[i] = safe_strdup (group->comp_names[i]);
-      obj->pdb_names[i] = safe_strdup (group->pdb_names[i]);
+      obj->comp_names[i] = _db_safe_strdup (group->comp_names[i]);
+      obj->pdb_names[i] = _db_safe_strdup (group->pdb_names[i]);
    }
 
    PJ_rel_group (group);
@@ -3322,7 +3295,7 @@ db_pdb_GetObject (DBfile *_file, char *name)
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBmaterial *
 db_pdb_GetMaterial(DBfile *_dbfile,     /*DB file pointer */
-                   char   *name)        /*Name of material object to return*/
+                   char   const *name)        /*Name of material object to return*/
 {
     DBmaterial *mm = NULL;
     DBfile_pdb *dbfile = (DBfile_pdb *) _dbfile;
@@ -3409,8 +3382,7 @@ db_pdb_GetMaterial(DBfile *_dbfile,     /*DB file pointer */
     }
     if ((tmpcolors != NULL) && (mm->nmat > 0))
     {
-        mm->matcolors = DBStringListToStringArray(tmpcolors, &(mm->nmat),
-            !handleSlashSwap, !skipFirstSemicolon);
+        mm->matcolors = DBStringListToStringArray(tmpcolors, &(mm->nmat), !skipFirstSemicolon);
         FREE(tmpcolors);
     }
 
@@ -3464,7 +3436,7 @@ db_pdb_GetMaterial(DBfile *_dbfile,     /*DB file pointer */
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBmatspecies *
 db_pdb_GetMatspecies (DBfile *_dbfile,   /*DB file pointer */
-                      char   *objname)   /*Name of matspecies obj to return */
+                      char   const *objname)   /*Name of matspecies obj to return */
 {
    DBmatspecies  *mm;
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -3537,15 +3509,13 @@ db_pdb_GetMatspecies (DBfile *_dbfile,   /*DB file pointer */
    if (tmpnames != NULL)
    {
        if (nstrs > 0)
-          mm->specnames = DBStringListToStringArray(tmpnames, &nstrs,
-              !handleSlashSwap, !skipFirstSemicolon);
+          mm->specnames = DBStringListToStringArray(tmpnames, &nstrs, !skipFirstSemicolon);
        FREE(tmpnames);
    }
    if (tmpcolors != NULL)
    {
        if (nstrs > 0)
-          mm->speccolors = DBStringListToStringArray(tmpcolors, &nstrs,
-              !handleSlashSwap, !skipFirstSemicolon);
+          mm->speccolors = DBStringListToStringArray(tmpcolors, &nstrs, !skipFirstSemicolon);
        FREE(tmpcolors);
    }
 
@@ -3577,7 +3547,7 @@ db_pdb_GetMatspecies (DBfile *_dbfile,   /*DB file pointer */
  *      value of PJ_GetObject.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBcompoundarray *
-db_pdb_GetCompoundarray (DBfile *_dbfile, char *array_name)
+db_pdb_GetCompoundarray (DBfile *_dbfile, char const *array_name)
 {
    int            i;
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -3676,7 +3646,7 @@ db_pdb_GetCompoundarray (DBfile *_dbfile, char *array_name)
  *      Added DBOPT_REFERENCE support.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBcurve *
-db_pdb_GetCurve (DBfile *_dbfile, char *name)
+db_pdb_GetCurve (DBfile *_dbfile, char const *name)
 {
    DBfile_pdb   *dbfile = (DBfile_pdb *) _dbfile ;
    DBcurve      *cu ;
@@ -3698,20 +3668,13 @@ db_pdb_GetCurve (DBfile *_dbfile, char *name)
    DEFALL_OBJ ("yunits",   &tmpcu.yunits,   DB_CHAR) ;
    DEFALL_OBJ ("reference",&tmpcu.reference,DB_CHAR) ;
    DEFINE_OBJ ("guihide",  &tmpcu.guihide,  DB_INT) ;
+   DEFINE_OBJ ("coord_sys",  &tmpcu.coord_sys,  DB_INT) ;
+   DEFINE_OBJ ("missing_value", &tmpcu.missing_value, DB_DOUBLE);
    if (PJ_GetObject (dbfile->pdb, name, &tmp_obj, DB_CURVE)<0)
        return NULL ;
    if (NULL == (cu = DBAllocCurve ())) return NULL ;
    *cu = tmpcu;
 
-#if 0
-   if (cu->npts<=0)
-   {
-      DBFreeCurve (cu) ;
-      db_perror (name, E_NOTFOUND, me) ;
-      return NULL ;
-   }
-#endif
-
    if (DB_DOUBLE == cu->datatype && PJ_InqForceSingle())
       cu->datatype = DB_FLOAT ;
 
@@ -3734,6 +3697,11 @@ db_pdb_GetCurve (DBfile *_dbfile, char *name)
       }
    }
 
+   if      (cu->missing_value == DB_MISSING_VALUE_NOT_SET)
+       cu->missing_value = 0.0;
+   else if (cu->missing_value == 0.0)
+       cu->missing_value = DB_MISSING_VALUE_NOT_SET;
+
    cu->id = 0 ;
 
    return cu ;
@@ -3756,7 +3724,7 @@ db_pdb_GetCurve (DBfile *_dbfile, char *name)
  *     Made "me" static.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK void *
-db_pdb_GetComponent (DBfile *_dbfile, char *objname, char *compname)
+db_pdb_GetComponent (DBfile *_dbfile, char const *objname, char const *compname)
 {
    void          *result;
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -3786,7 +3754,7 @@ db_pdb_GetComponent (DBfile *_dbfile, char *objname, char *compname)
  * Modifications:
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_GetComponentType (DBfile *_dbfile, char *objname, char *compname)
+db_pdb_GetComponentType (DBfile *_dbfile, char const *objname, char const *compname)
 {
    int           retval = DB_NOTYPE;
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -3852,15 +3820,13 @@ db_pdb_GetDefvars(DBfile *_dbfile, char const *objname)
 
        if ((tmpnames != NULL) && (defv->ndefs > 0))
        {
-           defv->names = DBStringListToStringArray(tmpnames, &(defv->ndefs),
-               !handleSlashSwap, !skipFirstSemicolon);
+           defv->names = DBStringListToStringArray(tmpnames, &(defv->ndefs), !skipFirstSemicolon);
            FREE(tmpnames);
        }
 
        if ((tmpdefns != NULL) && (defv->ndefs > 0))
        {
-           defv->defns = DBStringListToStringArray(tmpdefns, &(defv->ndefs),
-               !handleSlashSwap, !skipFirstSemicolon);
+           defv->defns = DBStringListToStringArray(tmpdefns, &(defv->ndefs), !skipFirstSemicolon);
            FREE(tmpdefns);
        }
    }
@@ -4009,7 +3975,7 @@ pdb_getvarinfo (PDBfile *pdbfile,
  *   Added support for namescheme/empty list options.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBmultimesh *
-db_pdb_GetMultimesh (DBfile *_dbfile, char *objname)
+db_pdb_GetMultimesh (DBfile *_dbfile, char const *objname)
 {
    DBmultimesh   *mm = NULL;
    int            ncomps, type;
@@ -4081,13 +4047,10 @@ db_pdb_GetMultimesh (DBfile *_dbfile, char *objname)
        *----------------------------------------*/
 
       if ((tmpnames != NULL) && (mm->nblocks > 0)) {
-         mm->meshnames = DBStringListToStringArray(tmpnames, &(mm->nblocks),
-             handleSlashSwap, skipFirstSemicolon);
-         FREE(tmpnames);
+         db_StringListToStringArrayMBOpt(tmpnames, &(mm->meshnames), &(mm->meshnames_alloc), mm->nblocks);
       }
       if ((tmpgnames != NULL) && (mm->lgroupings > 0)) {
-         mm->groupnames = DBStringListToStringArray(tmpgnames, &(mm->lgroupings),
-             !handleSlashSwap, !skipFirstSemicolon);
+         mm->groupnames = DBStringListToStringArray(tmpgnames, &(mm->lgroupings), !skipFirstSemicolon);
          FREE(tmpgnames);
       }
    }
@@ -4300,7 +4263,7 @@ db_pdb_GetMultimeshadj (DBfile *_dbfile, char const *objname, int nmesh,
  *   Added support for namescheme/empty list options.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBmultivar *
-db_pdb_GetMultivar (DBfile *_dbfile, char *objname)
+db_pdb_GetMultivar (DBfile *_dbfile, char const *objname)
 {
    DBmultivar    *mv = NULL;
    int            ncomps, type;
@@ -4341,6 +4304,7 @@ db_pdb_GetMultivar (DBfile *_dbfile, char *objname)
       DEFALL_OBJ("empty_list", &tmpmv.empty_list, DB_INT);
       DEFINE_OBJ("empty_cnt", &tmpmv.empty_cnt, DB_INT);
       DEFINE_OBJ("repr_block_idx", &tmpmv.repr_block_idx, DB_INT);
+      DEFINE_OBJ("missing_value", &tmpmv.missing_value, DB_DOUBLE);
 
       if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_MULTIVAR) < 0)
          return NULL;
@@ -4359,17 +4323,20 @@ db_pdb_GetMultivar (DBfile *_dbfile, char *objname)
        *----------------------------------------*/
 
       if (tmpnames != NULL && mv->nvars > 0) {
-         mv->varnames = DBStringListToStringArray(tmpnames, &(mv->nvars),
-             handleSlashSwap, skipFirstSemicolon);
-         FREE(tmpnames);
+         db_StringListToStringArrayMBOpt(tmpnames, &(mv->varnames), &(mv->varnames_alloc), mv->nvars);
       }
 
       if (rpnames != NULL)
       {
-         mv->region_pnames = DBStringListToStringArray(rpnames, 0,
-             !handleSlashSwap, !skipFirstSemicolon);
+         mv->region_pnames = DBStringListToStringArray(rpnames, 0, !skipFirstSemicolon);
          FREE(rpnames);
       }
+
+      if      (mv->missing_value == DB_MISSING_VALUE_NOT_SET)
+          mv->missing_value = 0.0;
+      else if (mv->missing_value == 0.0)
+          mv->missing_value = DB_MISSING_VALUE_NOT_SET;
+
    }
 
    return (mv);
@@ -4434,7 +4401,7 @@ db_pdb_GetMultivar (DBfile *_dbfile, char *objname)
  *   Added support for namescheme/empty list options.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBmultimat *
-db_pdb_GetMultimat (DBfile *_dbfile, char *objname)
+db_pdb_GetMultimat (DBfile *_dbfile, char const *objname)
 {
    DBmultimat    *mt = NULL;
    int            ncomps, type;
@@ -4494,21 +4461,19 @@ db_pdb_GetMultimat (DBfile *_dbfile, char *objname)
 
       if (tmpnames != NULL && mt->nmats > 0)
       {
-          mt->matnames = DBStringListToStringArray(tmpnames, &(mt->nmats),
-              handleSlashSwap, skipFirstSemicolon);
-          FREE(tmpnames);
+          db_StringListToStringArrayMBOpt(tmpnames, &(mt->matnames), &(mt->matnames_alloc), mt->nmats);
       }
 
       if (tmpmaterial_names && mt->nmatnos > 0)
       {
           mt->material_names = DBStringListToStringArray(tmpmaterial_names,
-              &(mt->nmatnos), !handleSlashSwap, !skipFirstSemicolon);
+              &(mt->nmatnos), !skipFirstSemicolon);
           FREE(tmpmaterial_names);
       }
       if (tmpmatcolors && mt->nmatnos > 0)
       {
           mt->matcolors = DBStringListToStringArray(tmpmatcolors,
-              &(mt->nmatnos), !handleSlashSwap, !skipFirstSemicolon);
+              &(mt->nmatnos), !skipFirstSemicolon);
           FREE(tmpmatcolors);
       }
    }
@@ -4557,7 +4522,7 @@ db_pdb_GetMultimat (DBfile *_dbfile, char *objname)
  *   Added support for namescheme/empty list options.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBmultimatspecies *
-db_pdb_GetMultimatspecies (DBfile *_dbfile, char *objname)
+db_pdb_GetMultimatspecies (DBfile *_dbfile, char const *objname)
 {
    DBmultimatspecies *mms = NULL;
    int                ncomps, type;
@@ -4615,9 +4580,7 @@ db_pdb_GetMultimatspecies (DBfile *_dbfile, char *objname)
 
       if (tmpnames != NULL && mms->nspec > 0)
       {
-          mms->specnames = DBStringListToStringArray(tmpnames, &(mms->nspec),
-              handleSlashSwap, skipFirstSemicolon);
-          FREE(tmpnames);
+          db_StringListToStringArrayMBOpt(tmpnames, &(mms->specnames), &(mms->specnames_alloc), mms->nspec);
       }
 
       if (tmpspecnames != NULL)
@@ -4625,8 +4588,7 @@ db_pdb_GetMultimatspecies (DBfile *_dbfile, char *objname)
           for (i = 0; i < mms->nmat; i++)
               nstrs += mms->nmatspec[i];
           if (nstrs > 0)
-              mms->species_names = DBStringListToStringArray(tmpspecnames, &nstrs,
-                  !handleSlashSwap, !skipFirstSemicolon);
+              mms->species_names = DBStringListToStringArray(tmpspecnames, &nstrs, !skipFirstSemicolon);
           FREE(tmpspecnames);
       }
       if (tmpcolors != NULL)
@@ -4637,8 +4599,7 @@ db_pdb_GetMultimatspecies (DBfile *_dbfile, char *objname)
                   nstrs += mms->nmatspec[i];
           }
           if (nstrs > 0)
-              mms->speccolors = DBStringListToStringArray(tmpcolors, &nstrs,
-                  !handleSlashSwap, !skipFirstSemicolon);
+              mms->speccolors = DBStringListToStringArray(tmpcolors, &nstrs, !skipFirstSemicolon);
           FREE(tmpcolors);
       }
    }
@@ -4688,7 +4649,7 @@ db_pdb_GetMultimatspecies (DBfile *_dbfile, char *objname)
  *      is whatever is stored in gnznodtype member. 
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBpointmesh *
-db_pdb_GetPointmesh (DBfile *_dbfile, char *objname)
+db_pdb_GetPointmesh (DBfile *_dbfile, char const *objname)
 {
    DBpointmesh   *pm = NULL;
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -4696,6 +4657,7 @@ db_pdb_GetPointmesh (DBfile *_dbfile, char *objname)
    static char *me = "db_pdb_GetPointmesh";
    DBpointmesh tmppm;
    PJcomplist    *_tcl;
+   char          *tmpannums = 0;
 
    /*------------------------------------------------------------*/
    /*          Comp. Name        Comp. Address     Data Type     */
@@ -4734,12 +4696,22 @@ db_pdb_GetPointmesh (DBfile *_dbfile, char *objname)
    DEFALL_OBJ("units1", &tmppm.units[1], DB_CHAR);
    DEFALL_OBJ("units2", &tmppm.units[2], DB_CHAR);
 
+   if (SILO_Globals.dataReadMask & DBPMGhostNodeLabels)
+       DEFALL_OBJ("ghost_node_labels", &tmppm.ghost_node_labels, DB_CHAR);
+   DEFALL_OBJ("alt_nodenum_vars",  &tmpannums,  DB_CHAR);
+
    if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_POINTMESH) < 0)
       return NULL;
    if ((pm = DBAllocPointmesh()) == NULL)
       return NULL;
    *pm = tmppm;
 
+   if (tmpannums != NULL)
+   {
+       pm->alt_nodenum_vars = DBStringListToStringArray(tmpannums, 0, !skipFirstSemicolon);
+       FREE(tmpannums);
+   }
+
    /*
     *  Read the remainder of the object: loop over all values
     *  associated with this variable.
@@ -4824,7 +4796,7 @@ db_pdb_GetPointmesh (DBfile *_dbfile, char *objname)
  *   db_StringListToStringArray.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBmeshvar *
-db_pdb_GetPointvar (DBfile *_dbfile, char *objname)
+db_pdb_GetPointvar (DBfile *_dbfile, char const *objname)
 {
    DBmeshvar     *mv = NULL;
    int            i;
@@ -4858,6 +4830,7 @@ db_pdb_GetPointvar (DBfile *_dbfile, char *objname)
    DEFALL_OBJ("region_pnames", &rpnames, DB_CHAR);
    DEFINE_OBJ("conserved", &tmpmv.conserved, DB_INT);
    DEFINE_OBJ("extensive", &tmpmv.extensive, DB_INT);
+   DEFINE_OBJ("missing_value", &tmpmv.missing_value, DB_DOUBLE);
 
    if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_POINTVAR) < 0)
       return NULL;
@@ -4870,10 +4843,10 @@ db_pdb_GetPointvar (DBfile *_dbfile, char *objname)
     *  associated with this variable.
     */
 
-   if ((mv->nvals > 0) && (SILO_Globals.dataReadMask & DBPVData)) {
+   if (mv->ndims>0 && mv->nels>0 && mv->nvals>0 && (SILO_Globals.dataReadMask & DBPVData)) {
       INIT_OBJ(&tmp_obj);
 
-      mv->vals = ALLOC_N(DB_DTPTR *, mv->nvals);
+      mv->vals = ALLOC_N(void*, mv->nvals);
 
       if (mv->datatype == 0) {
           if(mv->nvals == 1)
@@ -4910,11 +4883,15 @@ db_pdb_GetPointvar (DBfile *_dbfile, char *objname)
 
    if (rpnames != NULL)
    {
-      mv->region_pnames = DBStringListToStringArray(rpnames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      mv->region_pnames = DBStringListToStringArray(rpnames, 0, !skipFirstSemicolon);
       FREE(rpnames);
    }
 
+   if      (mv->missing_value == DB_MISSING_VALUE_NOT_SET)
+       mv->missing_value = 0.0;
+   else if (mv->missing_value == 0.0)
+       mv->missing_value = DB_MISSING_VALUE_NOT_SET;
+
    mv->id = 0;
    mv->name = STRDUP(objname);
 
@@ -4964,7 +4941,7 @@ db_pdb_GetPointvar (DBfile *_dbfile, char *objname)
  *      value of PJ_GetObject.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBquadmesh *
-db_pdb_GetQuadmesh (DBfile *_dbfile, char *objname)
+db_pdb_GetQuadmesh (DBfile *_dbfile, char const *objname)
 {
     DBquadmesh     *qm = NULL;
     PJcomplist      tmp_obj;
@@ -4972,6 +4949,7 @@ db_pdb_GetQuadmesh (DBfile *_dbfile, char *objname)
     static char *me = "db_pdb_GetQuadmesh";
     DBquadmesh tmpqm;
     PJcomplist    *_tcl;
+    char           *tmpannum = 0, *tmpaznum = 0;
 
     memset(&tmpqm, 0, sizeof(DBquadmesh));
     tmpqm.base_index[0] = -99999;
@@ -5019,6 +4997,13 @@ db_pdb_GetQuadmesh (DBfile *_dbfile, char *objname)
     DEFINE_OBJ("guihide", &tmpqm.guihide, DB_INT);
     DEFALL_OBJ("mrgtree_name", &tmpqm.mrgtree_name, DB_CHAR);
 
+    if (SILO_Globals.dataReadMask & DBQMGhostNodeLabels)
+        DEFALL_OBJ("ghost_node_labels", &tmpqm.ghost_node_labels, DB_CHAR);
+    if (SILO_Globals.dataReadMask & DBQMGhostZoneLabels)
+        DEFALL_OBJ("ghost_zone_labels", &tmpqm.ghost_zone_labels, DB_CHAR);
+    DEFALL_OBJ("alt_nodenum_vars", &tmpannum, DB_CHAR);
+    DEFALL_OBJ("alt_zonenum_vars", &tmpaznum, DB_CHAR);
+
     /* The type passed here to PJ_GetObject is NULL because quadmeshes can have
      * one of two types:  DB_COLLINEAR or DB_NONCOLLINEAR.  */
     if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_QUADMESH) < 0)
@@ -5027,6 +5012,17 @@ db_pdb_GetQuadmesh (DBfile *_dbfile, char *objname)
        return NULL;
     *qm = tmpqm;
 
+    if (tmpannum)
+    {
+        qm->alt_nodenum_vars = DBStringListToStringArray(tmpannum, 0, !skipFirstSemicolon);
+        FREE(tmpannum);
+    }
+    if (tmpaznum)
+    {
+        qm->alt_zonenum_vars = DBStringListToStringArray(tmpaznum, 0, !skipFirstSemicolon);
+        FREE(tmpaznum);
+    }
+
     /*
      * If base_index was not set with the PJ_GetObject call, then
      * set it based on origin.
@@ -5034,7 +5030,7 @@ db_pdb_GetQuadmesh (DBfile *_dbfile, char *objname)
     if (qm->base_index[0] == -99999)
     {
         int       i;
-
+        qm->base_index[0] = 0;
         for (i = 0; i < qm->ndims; i++)
         {
             qm->base_index[i] = qm->origin;
@@ -5108,7 +5104,7 @@ db_pdb_GetQuadmesh (DBfile *_dbfile, char *objname)
  *   db_StringListToStringArray.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBquadvar *
-db_pdb_GetQuadvar (DBfile *_dbfile, char *objname)
+db_pdb_GetQuadvar (DBfile *_dbfile, char const *objname)
 {
    DBquadvar     *qv = NULL;
    int            i;
@@ -5144,6 +5140,7 @@ db_pdb_GetQuadvar (DBfile *_dbfile, char *objname)
    DEFINE_OBJ("guihide", &tmpqv.guihide, DB_INT);
    DEFINE_OBJ("conserved", &tmpqv.conserved, DB_INT);
    DEFINE_OBJ("conserved", &tmpqv.extensive, DB_INT);
+   DEFINE_OBJ("missing_value", &tmpqv.missing_value, DB_DOUBLE);
 
    /* Arrays */
    DEFINE_OBJ("min_index", tmpqv.min_index, DB_INT);
@@ -5167,13 +5164,13 @@ db_pdb_GetQuadvar (DBfile *_dbfile, char *objname)
     *  associated with this variable.
     */
 
-   if ((qv->nvals > 0) && (SILO_Globals.dataReadMask & DBQVData)) {
+   if ((qv->ndims>0) && (qv->nvals > 0) && (SILO_Globals.dataReadMask & DBQVData)) {
       INIT_OBJ(&tmp_obj);
 
-      qv->vals = ALLOC_N(DB_DTPTR *, qv->nvals);
+      qv->vals = ALLOC_N(void*, qv->nvals);
 
       if (qv->mixlen > 0) {
-         qv->mixvals = ALLOC_N(DB_DTPTR *, qv->nvals);
+         qv->mixvals = ALLOC_N(void*, qv->nvals);
       }
 
       if (qv->datatype == 0) {
@@ -5201,11 +5198,15 @@ db_pdb_GetQuadvar (DBfile *_dbfile, char *objname)
 
    if (rpnames != NULL)
    {
-      qv->region_pnames = DBStringListToStringArray(rpnames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      qv->region_pnames = DBStringListToStringArray(rpnames, 0, !skipFirstSemicolon);
       FREE(rpnames);
    }
 
+   if      (qv->missing_value == DB_MISSING_VALUE_NOT_SET)
+       qv->missing_value = 0.0;
+   else if (qv->missing_value == 0.0)
+       qv->missing_value = DB_MISSING_VALUE_NOT_SET;
+
    qv->id = 0;
    qv->name = STRDUP(objname);
 
@@ -5277,7 +5278,7 @@ db_pdb_GetQuadvar (DBfile *_dbfile, char *objname)
  *      is whatever is stored in gnznodtype member. 
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBucdmesh *
-db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
+db_pdb_GetUcdmesh (DBfile *_dbfile, char const *meshname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    DBucdmesh     *um = NULL;
@@ -5288,6 +5289,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
    static char *me = "db_pdb_GetUcdmesh";
    DBucdmesh tmpum;
    PJcomplist    *_tcl;
+   char          *tmpannum = 0;
 
    /*------------------------------------------------------------*/
    /*          Comp. Name        Comp. Address     Data Type     */
@@ -5337,12 +5339,22 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
    DEFINE_OBJ("tv_connectivity", &tmpum.tv_connectivity, DB_INT);
    DEFINE_OBJ("disjoint_mode", &tmpum.disjoint_mode, DB_INT);
 
+   if (SILO_Globals.dataReadMask & DBUMGhostNodeLabels)
+       DEFALL_OBJ("ghost_node_labels", &tmpum.ghost_node_labels, DB_CHAR);
+   DEFALL_OBJ("alt_nodenum_vars", &tmpannum, DB_CHAR);
+
    if (PJ_GetObject(dbfile->pdb, meshname, &tmp_obj, DB_UCDMESH) < 0)
       return NULL;
    if ((um = DBAllocUcdmesh()) == NULL)
       return NULL;
    *um = tmpum;
 
+   if (tmpannum)
+   {
+       um->alt_nodenum_vars = DBStringListToStringArray(tmpannum, 0, !skipFirstSemicolon);
+       FREE(tmpannum);
+   }
+
    if (PJ_InqForceSingle() == TRUE)
       um->datatype = DB_FLOAT;
 
@@ -5362,7 +5374,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
 
    /* Optional global node number */
    um->gnznodtype = um->gnznodtype?um->gnznodtype:DB_INT;
-   if (SILO_Globals.dataReadMask & DBUMGlobNodeNo) {
+   if (um->nnodes>0 && (SILO_Globals.dataReadMask & DBUMGlobNodeNo)) {
       INIT_OBJ(&tmp_obj);
       DEFALL_OBJ("gnodeno", &tmpum.gnodeno, um->gnznodtype);
       um->gnodeno = 0;
@@ -5372,7 +5384,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
 
    /* Read facelist, zonelist, and edgelist */
 
-   if ((flname != NULL && strlen(flname) > 0)
+   if (um->nnodes>0 && (flname != NULL && strlen(flname) > 0)
        && (SILO_Globals.dataReadMask & DBUMFacelist))
    {
       DBfacelist tmpfaces;
@@ -5412,7 +5424,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
 
    }
 
-   if ((zlname != NULL && strlen(zlname) > 0)
+   if (um->nnodes>0 && (zlname != NULL && strlen(zlname) > 0)
        && (SILO_Globals.dataReadMask & DBUMZonelist))
    {
       DBzonelist tmpzones;
@@ -5442,6 +5454,9 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
       hi_offset = 0;
       DEFINE_OBJ("lo_offset", &lo_offset, DB_INT);
       DEFINE_OBJ("hi_offset", &hi_offset, DB_INT);
+ 
+      if (SILO_Globals.dataReadMask & DBZonelistGhostZoneLabels)
+         DEFALL_OBJ("ghost_zone_labels", &tmpzones.ghost_zone_labels, DB_CHAR);
 
       if (PJ_GetObject(dbfile->pdb, zlname, &tmp_obj, DB_ZONELIST) < 0)
       {
@@ -5482,7 +5497,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
 
    }
 
-   if (elname && *elname) {
+   if (um->nnodes>0 && elname && *elname) {
       DBedgelist tmpedges;
       memset(&tmpedges, 0, sizeof(DBedgelist));
 
@@ -5512,7 +5527,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
       *(um->edges) = tmpedges;
    }
 
-   if (phzlname && *phzlname && (SILO_Globals.dataReadMask & DBUMZonelist)) {
+   if (um->nnodes>0 && phzlname && *phzlname && (SILO_Globals.dataReadMask & DBUMZonelist)) {
       um->phzones = db_pdb_GetPHZonelist(_dbfile, phzlname);
    }
 
@@ -5585,7 +5600,7 @@ db_pdb_GetUcdmesh (DBfile *_dbfile, char *meshname)
  *   db_StringListToStringArray.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK DBucdvar *
-db_pdb_GetUcdvar (DBfile *_dbfile, char *objname)
+db_pdb_GetUcdvar (DBfile *_dbfile, char const *objname)
 {
    DBucdvar      *uv = NULL;
    int            i;
@@ -5623,6 +5638,7 @@ db_pdb_GetUcdvar (DBfile *_dbfile, char *objname)
    DEFALL_OBJ("region_pnames", &rpnames, DB_CHAR);
    DEFINE_OBJ("conserved", &tmpuv.conserved, DB_INT);
    DEFINE_OBJ("extensive", &tmpuv.extensive, DB_INT);
+   DEFINE_OBJ("missing_value", &tmpuv.missing_value, DB_DOUBLE);
 
    if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_UCDVAR) < 0)
       return NULL;
@@ -5637,10 +5653,10 @@ db_pdb_GetUcdvar (DBfile *_dbfile, char *objname)
    if ((uv->nvals > 0) && (SILO_Globals.dataReadMask & DBUVData)) {
       INIT_OBJ(&tmp_obj);
 
-      uv->vals = ALLOC_N(DB_DTPTR *, uv->nvals);
+      uv->vals = ALLOC_N(void*, uv->nvals);
 
       if (uv->mixlen > 0) {
-         uv->mixvals = ALLOC_N(DB_DTPTR *, uv->nvals);
+         uv->mixvals = ALLOC_N(void*, uv->nvals);
       }
 
       if (uv->datatype == 0) {
@@ -5668,11 +5684,15 @@ db_pdb_GetUcdvar (DBfile *_dbfile, char *objname)
 
    if (rpnames != NULL)
    {
-      uv->region_pnames = DBStringListToStringArray(rpnames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      uv->region_pnames = DBStringListToStringArray(rpnames, 0, !skipFirstSemicolon);
       FREE(rpnames);
    }
 
+   if      (uv->missing_value == DB_MISSING_VALUE_NOT_SET)
+       uv->missing_value = 0.0;
+   else if (uv->missing_value == 0.0)
+       uv->missing_value = DB_MISSING_VALUE_NOT_SET;
+
    uv->id = 0;
    uv->name = STRDUP(objname);
 
@@ -5767,14 +5787,14 @@ db_pdb_GetCsgmesh (DBfile *_dbfile, char const *meshname)
 
     if ((tmpbndnames != NULL) && (tmpcsgm.nbounds > 0))
     {
-        tmpcsgm.bndnames = DBStringListToStringArray(tmpbndnames, &tmpcsgm.nbounds,
-            !handleSlashSwap, !skipFirstSemicolon);
+        tmpcsgm.bndnames = DBStringListToStringArray(tmpbndnames, &tmpcsgm.nbounds, !skipFirstSemicolon);
         FREE(tmpbndnames);
     }
 
    tmpcsgm.name = STRDUP(meshname);
 
-   if ((zlname && *zlname && (SILO_Globals.dataReadMask & DBCSGMZonelist)))
+   if ((tmpcsgm.nbounds > 0 && zlname && *zlname &&
+        (SILO_Globals.dataReadMask & DBCSGMZonelist)))
       tmpcsgm.zones = db_pdb_GetCSGZonelist(_dbfile, zlname);
   
    if ((csgm = DBAllocCsgmesh()) == NULL)
@@ -5835,6 +5855,7 @@ db_pdb_GetCsgvar (DBfile *_dbfile, char const *objname)
    DEFALL_OBJ("meshid",&tmpcsgv.meshname, DB_CHAR);
    DEFINE_OBJ("guihide", &tmpcsgv.guihide, DB_INT);
    DEFALL_OBJ("region_pnames", &rpnames, DB_CHAR);
+   DEFINE_OBJ("missing_value", &tmpcsgv.missing_value, DB_DOUBLE);
 
    if (PJ_GetObject(dbfile->pdb, (char*) objname, &tmp_obj, DB_CSGVAR) < 0)
       return NULL;
@@ -5869,11 +5890,15 @@ db_pdb_GetCsgvar (DBfile *_dbfile, char const *objname)
 
    if (rpnames != NULL)
    {
-      csgv->region_pnames = DBStringListToStringArray(rpnames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      tmpcsgv.region_pnames = DBStringListToStringArray(rpnames, 0, !skipFirstSemicolon);
       FREE(rpnames);
    }
 
+   if      (tmpcsgv.missing_value == DB_MISSING_VALUE_NOT_SET)
+       tmpcsgv.missing_value = 0.0;
+   else if (tmpcsgv.missing_value == 0.0)
+       tmpcsgv.missing_value = DB_MISSING_VALUE_NOT_SET;
+
    if ((csgv = DBAllocCsgvar()) == NULL)
       return NULL;
 
@@ -5909,7 +5934,7 @@ db_pdb_GetCsgvar (DBfile *_dbfile, char const *objname)
  *      value of PJ_GetObject.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBfacelist *
-db_pdb_GetFacelist(DBfile *_dbfile, char *objname)
+db_pdb_GetFacelist(DBfile *_dbfile, char const *objname)
 {
     DBfacelist          *fl=NULL;
     PJcomplist          tmp_obj;
@@ -5988,7 +6013,7 @@ db_pdb_GetFacelist(DBfile *_dbfile, char *objname)
  *      is whatever is stored in gnznodtype member. 
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBzonelist *
-db_pdb_GetZonelist(DBfile *_dbfile, char *objname)
+db_pdb_GetZonelist(DBfile *_dbfile, char const *objname)
 {
     DBzonelist          *zl = NULL;
     PJcomplist          tmp_obj;
@@ -5996,6 +6021,7 @@ db_pdb_GetZonelist(DBfile *_dbfile, char *objname)
     static char         *me = "db_pdb_GetZonelist";
     DBzonelist           tmpzl;
     PJcomplist          *_tcl;
+    char                *tmpaznum = 0;
 
     /*------------------------------------------------------------*/
     /*          Comp. Name        Comp. Address     Data Type     */
@@ -6021,12 +6047,22 @@ db_pdb_GetZonelist(DBfile *_dbfile, char *objname)
         DEFALL_OBJ("zoneno", &tmpzl.zoneno, DB_INT);
     }
 
+    if (SILO_Globals.dataReadMask & DBZonelistGhostZoneLabels)
+        DEFALL_OBJ("ghost_zone_labels", &tmpzl.ghost_zone_labels, DB_CHAR);
+    DEFALL_OBJ("alt_zonenum_vars", &tmpaznum, DB_CHAR);
+
     if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_ZONELIST) < 0)
        return NULL;
     if ((zl = DBAllocZonelist()) == NULL)
        return NULL;
     *zl = tmpzl;
 
+    if (tmpaznum)
+    {
+        zl->alt_zonenum_vars = DBStringListToStringArray(tmpaznum, 0, !skipFirstSemicolon);
+        FREE(tmpaznum);
+    }
+
     /* optional global zone numbers */
     zl->gnznodtype = zl->gnznodtype?zl->gnznodtype:DB_INT;
     if (SILO_Globals.dataReadMask & DBZonelistGlobZoneNo) {
@@ -6076,7 +6112,7 @@ db_pdb_GetZonelist(DBfile *_dbfile, char *objname)
  *      is whatever is stored in gnznodtype member. 
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK DBphzonelist *
-db_pdb_GetPHZonelist(DBfile *_dbfile, char *objname)
+db_pdb_GetPHZonelist(DBfile *_dbfile, char const *objname)
 {
     DBphzonelist          *phzl = NULL;
     PJcomplist          tmp_obj;
@@ -6084,6 +6120,7 @@ db_pdb_GetPHZonelist(DBfile *_dbfile, char *objname)
     static char         *me = "db_pdb_GetPHZonelist";
     DBphzonelist         tmpphzl;
     PJcomplist          *_tcl;
+    char                *tmpaznum = 0;
 
     /*------------------------------------------------------------*/
     /*          Comp. Name        Comp. Address     Data Type     */
@@ -6110,12 +6147,22 @@ db_pdb_GetPHZonelist(DBfile *_dbfile, char *objname)
         DEFALL_OBJ("zoneno", &tmpphzl.zoneno, DB_INT);
     }
 
+    if (SILO_Globals.dataReadMask & DBZonelistGhostZoneLabels)
+       DEFALL_OBJ("ghost_zone_labels", &tmpphzl.ghost_zone_labels, DB_CHAR);
+    DEFALL_OBJ("alt_zonenum_vars", &tmpaznum, DB_CHAR);
+
     if (PJ_GetObject(dbfile->pdb, objname, &tmp_obj, DB_PHZONELIST) < 0)
        return NULL;
     if ((phzl = DBAllocPHZonelist()) == NULL)
        return NULL;
     *phzl = tmpphzl;
 
+    if (tmpaznum)
+    {
+        phzl->alt_zonenum_vars = DBStringListToStringArray(tmpaznum, 0, !skipFirstSemicolon);
+        FREE(tmpaznum);
+    }
+
     /* optional global zone numbers */
     phzl->gnznodtype = phzl->gnznodtype?phzl->gnznodtype:DB_INT;
     if (SILO_Globals.dataReadMask & DBZonelistGlobZoneNo) {
@@ -6151,7 +6198,7 @@ db_pdb_GetPHZonelist(DBfile *_dbfile, char *objname)
 SILO_CALLBACK DBcsgzonelist *
 db_pdb_GetCSGZonelist(DBfile *_dbfile, char const *objname)
 {
-    char *tmprnames = 0, *tmpznames = 0;
+    char *tmprnames = 0, *tmpznames = 0, *tmpaznums = 0;
     DBcsgzonelist      *zl = NULL;
     PJcomplist          tmp_obj;
     DBfile_pdb         *dbfile = (DBfile_pdb*)_dbfile;
@@ -6184,6 +6231,7 @@ db_pdb_GetCSGZonelist(DBfile *_dbfile, char const *objname)
         DEFALL_OBJ("regnames", &tmprnames, DB_CHAR);
     if (SILO_Globals.dataReadMask & DBCSGZonelistZoneNames)
         DEFALL_OBJ("zonenames", &tmpznames, DB_CHAR);
+    DEFALL_OBJ("alt_zonenum_vars", &tmpaznums, DB_CHAR);
 
     if (PJ_GetObject(dbfile->pdb, (char*) objname, &tmp_obj, DB_CSGZONELIST) < 0)
        return NULL;
@@ -6203,18 +6251,22 @@ db_pdb_GetCSGZonelist(DBfile *_dbfile, char const *objname)
 
     if ((tmprnames != NULL) && (tmpzl.nregs > 0))
     {
-        tmpzl.regnames = DBStringListToStringArray(tmprnames, &tmpzl.nregs,
-            !handleSlashSwap, !skipFirstSemicolon);
+        tmpzl.regnames = DBStringListToStringArray(tmprnames, &tmpzl.nregs, !skipFirstSemicolon);
         FREE(tmprnames);
     }
 
     if ((tmpznames != NULL) && (tmpzl.nzones > 0))
     {
-        tmpzl.zonenames = DBStringListToStringArray(tmpznames, &tmpzl.nzones,
-            !handleSlashSwap, !skipFirstSemicolon);
+        tmpzl.zonenames = DBStringListToStringArray(tmpznames, &tmpzl.nzones, !skipFirstSemicolon);
         FREE(tmpznames);
     }
 
+    if (tmpaznums != NULL)
+    {
+        tmpzl.alt_zonenum_vars = DBStringListToStringArray(tmpaznums, 0, !skipFirstSemicolon);
+        FREE(tmpaznums);
+    }
+
     if ((zl = DBAllocCSGZonelist()) == NULL)
        return NULL;
     *zl = tmpzl;
@@ -6240,7 +6292,7 @@ db_pdb_GetCSGZonelist(DBfile *_dbfile, char const *objname)
  *     Made "me" static.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK void *
-db_pdb_GetVar (DBfile *_dbfile, char *name)
+db_pdb_GetVar (DBfile *_dbfile, char const *name)
 {
    static char   *me = "db_pdb_GetVar";
    char          *data;
@@ -6278,7 +6330,7 @@ db_pdb_GetVar (DBfile *_dbfile, char *name)
  * Modifications:
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_GetVarByteLength (DBfile *_dbfile, char *varname)
+db_pdb_GetVarByteLength (DBfile *_dbfile, char const *varname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    int            number, size;
@@ -6308,7 +6360,7 @@ db_pdb_GetVarByteLength (DBfile *_dbfile, char *varname)
  *      weren't being used.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_GetVarDims (DBfile *_dbfile, char *varname, int maxdims, int *dims)
+db_pdb_GetVarDims (DBfile *_dbfile, char const *varname, int maxdims, int *dims)
 {
    DBfile_pdb   *dbfile = (DBfile_pdb *) _dbfile;
    static char  *me = "db_pdb_GetVarDims";
@@ -6341,14 +6393,14 @@ db_pdb_GetVarDims (DBfile *_dbfile, char *varname, int maxdims, int *dims)
  * Modifications:
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_GetVarType (DBfile *_dbfile, char *varname)
+db_pdb_GetVarType (DBfile *_dbfile, char const *varname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    int            number, size;
-   char           typename[256];
+   char           type_name[256];
 
-   db_pdb_getvarinfo(dbfile->pdb, varname, typename, &number, &size, 0);
-   return db_GetDatatypeID(typename);
+   db_pdb_getvarinfo(dbfile->pdb, varname, type_name, &number, &size, 0);
+   return db_GetDatatypeID(type_name);
 }
 
 /*-------------------------------------------------------------------------
@@ -6366,7 +6418,7 @@ db_pdb_GetVarType (DBfile *_dbfile, char *varname)
  * Modifications:
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_GetVarLength (DBfile *_dbfile, char *varname)
+db_pdb_GetVarLength (DBfile *_dbfile, char const *varname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    int            number, size;
@@ -6396,7 +6448,7 @@ db_pdb_GetVarLength (DBfile *_dbfile, char *varname)
  *      Fixed a memory leak.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_InqMeshname (DBfile *_dbfile, char *vname, char *mname)
+db_pdb_InqMeshname (DBfile *_dbfile, char const *vname, char *mname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    void          *v;
@@ -6435,7 +6487,7 @@ db_pdb_InqMeshname (DBfile *_dbfile, char *vname, char *mname)
  *    Added code to free ctype to eliminate a memory leak.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_InqMeshtype (DBfile *_dbfile, char *mname)
+db_pdb_InqMeshtype (DBfile *_dbfile, char const *mname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    char           tmp[256], *ctype;
@@ -6472,7 +6524,7 @@ db_pdb_InqMeshtype (DBfile *_dbfile, char *mname)
  *      weren't being used.
  *--------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_InqVarExists (DBfile *_dbfile, char *varname)
+db_pdb_InqVarExists (DBfile *_dbfile, char const *varname)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    syment        *ep;
@@ -6485,35 +6537,6 @@ db_pdb_InqVarExists (DBfile *_dbfile, char *varname)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    db_pdb_ReadAtt
- *
- * Purpose:     Reads the specified attribute value into the provided
- *              space.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  robb at cloud
- *              Mon Nov 21 21:00:56 EST 1994
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------*/
-SILO_CALLBACK int
-db_pdb_ReadAtt(DBfile *_dbfile, char *vname, char *attname, void *results)
-{
-   DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
-   char          *attval;
-
-   attval = lite_PD_get_attribute(dbfile->pdb, vname, attname);
-   memcpy(results, attval, lite_SC_arrlen(attval));
-   SFREE(attval);
-
-   return 0;
-}
-
-/*-------------------------------------------------------------------------
  * Function:    db_pdb_ReadVar
  *
  * Purpose:     Reads a variable into the given space.
@@ -6530,7 +6553,7 @@ db_pdb_ReadAtt(DBfile *_dbfile, char *vname, char *attname, void *results)
  *     Made "me" static.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_ReadVar (DBfile *_dbfile, char *vname, void *result)
+db_pdb_ReadVar (DBfile *_dbfile, char const *vname, void *result)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    static char   *me = "db_pdb_ReadVar";
@@ -6558,8 +6581,8 @@ db_pdb_ReadVar (DBfile *_dbfile, char *vname, void *result)
  *     Made "me" static.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_ReadVarSlice (DBfile *_dbfile, char *vname, int *offset, int *length,
-                     int *stride, int ndims, void *result)
+db_pdb_ReadVarSlice (DBfile *_dbfile, char const *vname, int const *offset, int const *length,
+                     int const *stride, int ndims, void *result)
 {
    int            i;
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -6572,7 +6595,7 @@ db_pdb_ReadVarSlice (DBfile *_dbfile, char *vname, int *offset, int *length,
       ind[3 * i + 2] = stride[i];
    }
 
-   if (!PJ_read_alt(dbfile->pdb, vname, result, ind)) {
+   if (!PJ_read_alt(dbfile->pdb, (char*)vname, result, ind)) {
       return db_perror("PJ_read_alt", E_CALLFAIL, me);
    }
    return 0;
@@ -6608,13 +6631,13 @@ db_pdb_ReadVarSlice (DBfile *_dbfile, char *vname, int *offset, int *length,
  *    Turned off the PJgroup cache when we change directories.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_SetDir (DBfile *_dbfile, char *path)
+db_pdb_SetDir (DBfile *_dbfile, char const *path)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    static char   *me = "db_pdb_SetDir";
    char           error_message[256];
 
-   if (1 == lite_PD_cd(dbfile->pdb, path)) {
+   if (1 == lite_PD_cd(dbfile->pdb, (char*) path)) {
       dbfile->pub.dirid = 0;
 
       /* We've changed directories, so we can't cache PJgroups any more */
@@ -6683,7 +6706,7 @@ db_pdb_Filters (DBfile *dbfile, FILE *stream)
  *    Changed strdup to safe_strdup.
  *-------------------------------------------------------------------------*/
 SILO_CALLBACK int
-db_pdb_GetComponentNames (DBfile *_dbfile, char *objname,
+db_pdb_GetComponentNames (DBfile *_dbfile, char const *objname,
                           char ***comp_names, char ***file_names)
 {
    PJgroup      *group = NULL ;
@@ -6698,7 +6721,7 @@ db_pdb_GetComponentNames (DBfile *_dbfile, char *objname,
     * First make sure that the specified object is type "Group *", otherwise
     * we'll get a segmentation fault deep within the PDB library!
     */
-   ep = lite_PD_inquire_entry (dbfile->pdb, objname, TRUE, NULL) ;
+   ep = lite_PD_inquire_entry (dbfile->pdb, (char*)objname, TRUE, NULL) ;
    if (!ep || strcmp(ep->type, "Group *")) return 0 ;
 
    /*
@@ -6718,8 +6741,8 @@ db_pdb_GetComponentNames (DBfile *_dbfile, char *objname,
    if (file_names)
        *file_names = (char**)malloc(group->ncomponents * sizeof(char *)) ;
    for (i=0; i<group->ncomponents; i++) {
-      if (comp_names) (*comp_names)[i] = safe_strdup (group->comp_names[i]) ;
-      if (file_names) (*file_names)[i] = safe_strdup (group->pdb_names[i]) ;
+      if (comp_names) (*comp_names)[i] = _db_safe_strdup (group->comp_names[i]) ;
+      if (file_names) (*file_names)[i] = _db_safe_strdup (group->pdb_names[i]) ;
    }
 
    return group->ncomponents ;
@@ -6810,8 +6833,7 @@ db_pdb_GetMrgtree(DBfile *_dbfile, char const *mrgtree_name)
    PJ_GetObject(dbfile->pdb, (char*)mrgtree_name, &tmp_obj, 0);
    if (s)
    {
-       strArray = DBStringListToStringArray(s, &num_nodes,
-           !handleSlashSwap, !skipFirstSemicolon);
+       strArray = DBStringListToStringArray(s, &num_nodes, !skipFirstSemicolon);
        for (i = 0; i < num_nodes; i++)
            ltree[i]->name = strArray[i];
        FREE(s);
@@ -6824,8 +6846,7 @@ db_pdb_GetMrgtree(DBfile *_dbfile, char const *mrgtree_name)
    PJ_GetObject(dbfile->pdb, (char*)mrgtree_name, &tmp_obj, 0);
    if (s)
    {
-       strArray = DBStringListToStringArray(s, 0, !handleSlashSwap,
-           !skipFirstSemicolon);
+       strArray = DBStringListToStringArray(s, 0, !skipFirstSemicolon);
        n = 0;
        for (i = 0; i < num_nodes; i++)
        {
@@ -6855,8 +6876,7 @@ db_pdb_GetMrgtree(DBfile *_dbfile, char const *mrgtree_name)
    PJ_GetObject(dbfile->pdb, (char*)mrgtree_name, &tmp_obj, 0);
    if (s)
    {
-       strArray = DBStringListToStringArray(s, &num_nodes, !handleSlashSwap,
-           !skipFirstSemicolon);
+       strArray = DBStringListToStringArray(s, &num_nodes, !skipFirstSemicolon);
        for (i = 0; i < num_nodes; i++)
            ltree[i]->maps_name = strArray[i];
        FREE(s);
@@ -6933,14 +6953,12 @@ db_pdb_GetMrgtree(DBfile *_dbfile, char const *mrgtree_name)
 
    if (mrgv_onames)
    {
-      tree->mrgvar_onames = DBStringListToStringArray(mrgv_onames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      tree->mrgvar_onames = DBStringListToStringArray(mrgv_onames, 0, !skipFirstSemicolon);
       FREE(mrgv_onames);
    }
    if (mrgv_rnames)
    {
-      tree->mrgvar_rnames = DBStringListToStringArray(mrgv_rnames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      tree->mrgvar_rnames = DBStringListToStringArray(mrgv_rnames, 0, !skipFirstSemicolon);
       FREE(mrgv_rnames);
    }
 
@@ -7015,7 +7033,7 @@ db_pdb_GetGroupelmap(DBfile *_dbfile, char const *name)
     /* unflatten frac data if we have it */
     if (fracLengths != NULL)
     {
-        gm->segment_fracs = malloc(gm->num_segments * sizeof(void*));
+        gm->segment_fracs = (void **)malloc(gm->num_segments * sizeof(void*));
         n = 0;
         for (i = 0; i < gm->num_segments; i++)
         {
@@ -7130,15 +7148,13 @@ db_pdb_GetMrgvar(DBfile *_dbfile, char const *objname)
 
    if (cnames != NULL)
    {
-      mrgv->compnames = DBStringListToStringArray(cnames, &(mrgv->ncomps),
-          !handleSlashSwap, !skipFirstSemicolon);
+      mrgv->compnames = DBStringListToStringArray(cnames, &(mrgv->ncomps), !skipFirstSemicolon);
       FREE(cnames);
    }
 
    if (rpnames != NULL)
    {
-      mrgv->reg_pnames = DBStringListToStringArray(rpnames, 0,
-          !handleSlashSwap, !skipFirstSemicolon);
+      mrgv->reg_pnames = DBStringListToStringArray(rpnames, 0, !skipFirstSemicolon);
       FREE(rpnames);
    }
 
@@ -7323,9 +7339,17 @@ db_pdb_Write (DBfile *_dbfile, char const *vname, void const *var,
  *-------------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_WriteSlice (DBfile *_dbfile, char *vname, void *values, int dtype,
-                   int offset[], int length[], int stride[], int dims[],
-                   int ndims)
+db_pdb_WriteSlice(
+    DBfile *_dbfile,
+    char const *vname,
+    void const *values,
+    int dtype,
+    int const *offset,
+    int const *length,
+    int const *stride,
+    int const *dims,
+    int ndims
+)
 {
    char         *dtype_s ;
    long         dim_extents[9] ;
@@ -7339,7 +7363,7 @@ db_pdb_WriteSlice (DBfile *_dbfile, char *vname, void *values, int dtype,
       return db_perror ("db_GetDatatypeString", E_CALLFAIL, me) ;
    }
 
-   if ((ep=lite_PD_inquire_entry (dbfile->pdb, vname, TRUE, NULL))) {
+   if ((ep=lite_PD_inquire_entry (dbfile->pdb, (char*) vname, TRUE, NULL))) {
       /*
        * Variable already exists.  Make sure the supplied dimensions
        * are the same as what was originally used when space was reserved.
@@ -7369,7 +7393,7 @@ db_pdb_WriteSlice (DBfile *_dbfile, char *vname, void *values, int dtype,
          dim_extents[i*2+0] = 0 ;               /*minimum index*/
          dim_extents[i*2+1] = dims[i]-1 ;       /*maximum index*/
       }
-      if (!lite_PD_defent_alt (dbfile->pdb, vname, dtype_s, ndims,
+      if (!lite_PD_defent_alt (dbfile->pdb, (char*) vname, dtype_s, ndims,
                                dim_extents)) {
          FREE(dtype_s);
          return db_perror ("PD_defent_alt", E_CALLFAIL, me) ;
@@ -7429,12 +7453,12 @@ db_pdb_WriteSlice (DBfile *_dbfile, char *vname, void *values, int dtype,
  *-------------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_MkDir (DBfile *_dbfile, char *name)
+db_pdb_MkDir (DBfile *_dbfile, char const *name)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    static char   *me = "db_pdb_MkDir";
 
-   if (!lite_PD_mkdir(dbfile->pdb, name)) {
+   if (!lite_PD_mkdir(dbfile->pdb, (char*) name)) {
       return db_perror("PD_mkdir", E_CALLFAIL, me);
    }
    return 0;
@@ -7496,15 +7520,17 @@ db_pdb_MkDir (DBfile *_dbfile, char *name)
 #ifdef PDB_WRITE
 /* ARGSUSED */
 SILO_CALLBACK int
-db_pdb_PutCompoundarray (DBfile    *_dbfile,     /*pointer to open file  */
-                         char      *array_name,  /*name of array object  */
-                         char      *elemnames[], /*simple array names  */
-                         int       *elemlengths, /*lengths of simple arrays */
-                         int       nelems,       /*number of simple arrays */
-                         void      *values,      /*vector of simple values */
-                         int       nvalues,      /*num of values (redundant) */
-                         int       datatype,     /*type of simple all values */
-                         DBoptlist *optlist)     /*option list   */
+db_pdb_PutCompoundarray (
+    DBfile *_dbfile,               /*pointer to open file  */
+    char const *array_name,        /*name of array object  */
+    char const * const *elemnames, /*simple array names  */
+    int const *elemlengths,        /*lengths of simple arrays */
+    int nelems,                    /*number of simple arrays */
+    void const *values,            /*vector of simple values */
+    int nvalues,                   /*num of values (redundant) */
+    int datatype,                  /*type of simple all values */
+    DBoptlist const *optlist       /*option list   */
+)
 {
    DBobject      *obj;
    char          *tmp, *cur;
@@ -7590,8 +7616,8 @@ db_pdb_PutCompoundarray (DBfile    *_dbfile,     /*pointer to open file  */
  *-------------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutCurve (DBfile *_dbfile, char *name, void *xvals, void *yvals,
-                 int dtype, int npts, DBoptlist *opts)
+db_pdb_PutCurve (DBfile *_dbfile, char const *name, void const *xvals, void const *yvals,
+                 int dtype, int npts, DBoptlist const *opts)
 {
    DBobject     *obj ;
    char         *dtype_s ;
@@ -7603,7 +7629,7 @@ db_pdb_PutCurve (DBfile *_dbfile, char *name, void *xvals, void *yvals,
     * them with any values specified in the options list.
     */
    db_InitCurve (opts) ;
-   obj = DBMakeObject (name, DB_CURVE, 18) ;
+   obj = DBMakeObject (name, DB_CURVE, 19) ;
 
    /*
     * Write the X and Y arrays.  If the user specified a variable
@@ -7617,7 +7643,7 @@ db_pdb_PutCurve (DBfile *_dbfile, char *name, void *xvals, void *yvals,
    if (_cu._varname[0]) {
       DBAddVarComponent (obj, "xvals", _cu._varname[0]) ;
    } else {
-      if (xvals && !_cu._reference) {
+      if (npts && xvals && !_cu._reference) {
          DBWriteComponent (_dbfile, obj, "xvals", name, dtype_s,
                         xvals, 1, &lnpts);
       }
@@ -7625,7 +7651,7 @@ db_pdb_PutCurve (DBfile *_dbfile, char *name, void *xvals, void *yvals,
    if (_cu._varname[1]) {
       DBAddVarComponent (obj, "yvals", _cu._varname[1]) ;
    } else {
-      if (yvals && !_cu._reference) {
+      if (npts && yvals && !_cu._reference) {
          DBWriteComponent (_dbfile, obj, "yvals", name, dtype_s,
                         yvals, 1, &lnpts);
       }
@@ -7645,7 +7671,16 @@ db_pdb_PutCurve (DBfile *_dbfile, char *name, void *xvals, void *yvals,
    if (_cu._labels[1])  DBAddStrComponent (obj, "ylabel",   _cu._labels[1]) ;
    if (_cu._units[1])   DBAddStrComponent (obj, "yunits",   _cu._units[1]) ;
    if (_cu._reference)  DBAddStrComponent (obj, "reference",_cu._reference) ;
-   if (_cu._guihide)    DBAddIntComponent (obj, "guihide",  _cu._guihide);
+   if (_cu._guihide)    DBAddIntComponent (obj, "guihide",  _cu._guihide) ;
+   if (_cu._coord_sys)  DBAddIntComponent (obj, "coord_sys", _cu._coord_sys) ;
+   if (_cu._missing_value != DB_MISSING_VALUE_NOT_SET)
+   {
+      if (_cu._missing_value == 0.0)
+          DBAddDblComponent(obj, "missing_value", DB_MISSING_VALUE_NOT_SET);
+      else
+          DBAddDblComponent(obj, "missing_value", _cu._missing_value);
+   }
+
    DBWriteObject (_dbfile, obj, TRUE) ;
    DBFreeObject(obj);
 
@@ -7668,10 +7703,16 @@ db_pdb_PutCurve (DBfile *_dbfile, char *name, void *xvals, void *yvals,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutDefvars (DBfile *dbfile, char const *name, int ndefs,
-                     char *names[], int const types[],
-                     char *defns[], DBoptlist *optlists[]) {
-
+db_pdb_PutDefvars(
+    DBfile *dbfile,
+    char const *name,
+    int ndefs,
+    char const * const *names,
+    int const *types,
+    char const * const *defns,
+    DBoptlist const * const *optlists
+)
+{
    int            i, len;
    long           count[1];
    DBobject      *obj;
@@ -7713,7 +7754,7 @@ db_pdb_PutDefvars (DBfile *dbfile, char const *name, int ndefs,
    /*-------------------------------------------------------------
     *  Define and write variable names 
     *-------------------------------------------------------------*/
-   DBStringArrayToStringList(names, ndefs, &tmp, &len);
+   DBStringArrayToStringList((char const * const *)names, ndefs, &tmp, &len);
    count[0] = len;  
    DBWriteComponent(dbfile, obj, "names", name, "char",
                     tmp, 1, count);
@@ -7723,7 +7764,7 @@ db_pdb_PutDefvars (DBfile *dbfile, char const *name, int ndefs,
    /*-------------------------------------------------------------
     *  Define and write variable definitions 
     *-------------------------------------------------------------*/
-   DBStringArrayToStringList(defns, ndefs, &tmp, &len);
+   DBStringArrayToStringList((char const * const *)defns, ndefs, &tmp, &len);
    count[0] = len;  
    DBWriteComponent(dbfile, obj, "defns", name, "char",
                     tmp, 1, count);
@@ -7771,10 +7812,22 @@ db_pdb_PutDefvars (DBfile *dbfile, char const *name, int ndefs,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutFacelist (DBfile *dbfile, char *name, int nfaces, int ndims,
-                    int *nodelist, int lnodelist, int origin,
-                    int *zoneno, int *shapesize, int *shapecnt, int nshapes,
-                    int *types, int *typelist, int ntypes)
+db_pdb_PutFacelist(
+    DBfile *dbfile,
+    char const *name,
+    int nfaces,
+    int ndims,
+    int const *nodelist,
+    int lnodelist,
+    int origin,
+    int const *zoneno,
+    int const *shapesize,
+    int const *shapecnt,
+    int nshapes,
+    int const *types,
+    int const *typelist,
+    int ntypes
+)
 {
    long           count[5];
    DBobject      *obj;
@@ -7878,17 +7931,38 @@ db_pdb_PutFacelist (DBfile *dbfile, char *name, int nfaces, int ndims,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMaterial (DBfile *dbfile, char *name, char *mname,
-                    int nmat, int matnos[], int matlist[],
-                    int dims[], int ndims,
-                    int mix_next[], int mix_mat[], int mix_zone[],
-                    DB_DTPTR1 mix_vf, int mixlen, int datatype,
-                    DBoptlist *optlist)
+db_pdb_PutMaterial(
+    DBfile *dbfile,
+    char const *name,
+    char const *mname,
+    int nmat,
+    int const *matnos,
+    int const *matlist,
+    int const *dims,
+    int ndims,
+    int const *mix_next,
+    int const *mix_mat,
+    int const *mix_zone,
+    void const *mix_vf,
+    int mixlen,
+    int datatype,
+    DBoptlist const *optlist
+)
 {
    int            i, nels;
    long           count[3];
    DBobject      *obj;
    char          *datatype_str;
+   int            is_empty = 1;
+
+   for (i = 0; i < ndims; i++)
+   {
+       if (dims[i] > 0)
+       {
+           is_empty = 0;
+           break;
+       }
+   }
 
    /*-------------------------------------------------------------
     *  Process option list; build object description.
@@ -7919,20 +7993,20 @@ db_pdb_PutMaterial (DBfile *dbfile, char *name, char *mname,
    DBWriteComponent(dbfile, obj, "dims", name, "integer", dims, 1, count);
 
    /* Do zonal material ID array */
-   for (nels = 1, i = 0; i < ndims; i++)
+   nels = ndims==0?0:1;
+   for (i = 0; i < ndims; i++)
       nels *= dims[i];
 
    count[0] = nels;
-   DBWriteComponent(dbfile, obj, "matlist", name, "integer",
-                    matlist, 1, count);
+   if (!is_empty)
+       DBWriteComponent(dbfile, obj, "matlist", name, "integer", matlist, 1, count);
 
    /* Do material numbers list */
    count[0] = nmat;
-   DBWriteComponent(dbfile, obj, "matnos", name, "integer",
-                    matnos, 1, count);
+   DBWriteComponent(dbfile, obj, "matnos", name, "integer", matnos, 1, count);
 
    /* Now do mixed data arrays (mix_zone is optional) */
-   if (mixlen > 0) {
+   if (!is_empty && mixlen > 0) {
 
       datatype_str = db_GetDatatypeString(datatype);
       count[0] = mixlen;
@@ -7955,7 +8029,7 @@ db_pdb_PutMaterial (DBfile *dbfile, char *name, char *mname,
    if (_ma._matnames != NULL)
    {
       int len; long llen; char *tmpstr = 0;
-      DBStringArrayToStringList(_ma._matnames, nmat, &tmpstr, &len);
+      DBStringArrayToStringList((char const * const *)_ma._matnames, nmat, &tmpstr, &len);
       llen = (long) len;
       DBWriteComponent(dbfile, obj, "matnames", name, "char", tmpstr, 1, &llen);
       FREE(tmpstr);
@@ -7964,13 +8038,14 @@ db_pdb_PutMaterial (DBfile *dbfile, char *name, char *mname,
    if (_ma._matcolors != NULL)
    {
       int len; long llen; char *tmpstr = 0;
-      DBStringArrayToStringList(_ma._matcolors, nmat, &tmpstr, &len);
+      DBStringArrayToStringList((char const * const *)_ma._matcolors, nmat, &tmpstr, &len);
       llen = (long) len;
       DBWriteComponent(dbfile, obj, "matcolors", name, "char", tmpstr, 1, &llen);
       FREE(tmpstr);
       _ma._matcolors = NULL;
    }
 
+
    /*-------------------------------------------------------------
     *  Write material object to output file. Request that underlying
     *  memory be freed (the 'TRUE' argument.)
@@ -8019,16 +8094,26 @@ db_pdb_PutMaterial (DBfile *dbfile, char *name, char *mname,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMatspecies (DBfile *dbfile, char *name, char *matname,
-                      int nmat, int nmatspec[], int speclist[],
-                      int dims[], int ndims, int nspecies_mf,
-                      DB_DTPTR1 species_mf, int mix_speclist[],
-                      int mixlen, int datatype, DBoptlist *optlist) {
+db_pdb_PutMatspecies (DBfile *dbfile, char const *name, char const *matname,
+                      int nmat, int const *nmatspec, int const *speclist,
+                      int const *dims, int ndims, int nspecies_mf,
+                      void const *species_mf, int const *mix_speclist,
+                      int mixlen, int datatype, DBoptlist const *optlist) {
 
    long           count[3];
    int            i, nels, nstrs;
    DBobject      *obj;
    char          *datatype_str;
+   int            is_empty = 1;
+
+   for (i = 0; i < ndims; i++)
+   {
+       if (dims[i] > 0)
+       {
+           is_empty = 0;
+           break;
+       }
+   }
 
    /*-------------------------------------------------------------
     *  Process option list; build object description.
@@ -8056,27 +8141,27 @@ db_pdb_PutMatspecies (DBfile *dbfile, char *name, char *matname,
    DBWriteComponent(dbfile, obj, "dims", name, "integer", dims, 1, count);
 
    /* Do zonal material species ID array */
-   for (nels = 1, i = 0; i < ndims; i++)
+   nels = ndims==0?0:1;
+   for (i = 0; i < ndims; i++)
       nels *= dims[i];
 
    count[0] = nels;
-   DBWriteComponent(dbfile, obj, "speclist", name, "integer",
-                    speclist, 1, count);
+   if (!is_empty)
+       DBWriteComponent(dbfile, obj, "speclist", name, "integer", speclist, 1, count);
 
    /* Do material species count per material list */
    count[0] = nmat;
-   DBWriteComponent(dbfile, obj, "nmatspec", name, "integer",
-                    nmatspec, 1, count);
+   DBWriteComponent(dbfile, obj, "nmatspec", name, "integer", nmatspec, 1, count);
 
    /* Do material species mass fractions */
    datatype_str = db_GetDatatypeString(datatype);
    count[0] = nspecies_mf;
-   DBWriteComponent(dbfile, obj, "species_mf", name, datatype_str,
-                    species_mf, 1, count);
+   if (!is_empty)
+       DBWriteComponent(dbfile, obj, "species_mf", name, datatype_str, species_mf, 1, count);
    FREE(datatype_str);
 
    /* Now do mixed data arrays */
-   if (mixlen > 0) {
+   if (!is_empty && mixlen > 0) {
       count[0] = mixlen;
       DBWriteComponent(dbfile, obj, "mix_speclist", name, "integer",
                        mix_speclist, 1, count);
@@ -8091,7 +8176,7 @@ db_pdb_PutMatspecies (DBfile *dbfile, char *name, char *matname,
       /* count how many names we have */
       for (i=0; i < nmat; i++)
           nstrs += nmatspec[i];
-      DBStringArrayToStringList(_ms._specnames, nstrs, &tmpstr, &len);
+      DBStringArrayToStringList((char const * const *)_ms._specnames, nstrs, &tmpstr, &len);
       llen = (long) len;
       DBWriteComponent(dbfile, obj, "species_names", name, "char", tmpstr, 1, &llen);
       FREE(tmpstr);
@@ -8107,7 +8192,7 @@ db_pdb_PutMatspecies (DBfile *dbfile, char *name, char *matname,
           for (i=0; i < nmat; i++)
               nstrs += nmatspec[i];
       }
-      DBStringArrayToStringList(_ms._speccolors, nstrs, &tmpstr, &len);
+      DBStringArrayToStringList((char const * const *)_ms._speccolors, nstrs, &tmpstr, &len);
       llen = (long) len;
       DBWriteComponent(dbfile, obj, "speccolors", name, "char", tmpstr, 1, &llen);
       FREE(tmpstr);
@@ -8175,8 +8260,8 @@ db_pdb_PutMatspecies (DBfile *dbfile, char *name, char *matname,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMultimesh (DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
-                     char DB_CONSTARR2 meshnames, int DB_CONSTARR1 meshtypes,
+db_pdb_PutMultimesh (DBfile *dbfile, char const *name, int nmesh,
+                     char const * const *meshnames, int const *meshtypes,
                      DBoptlist const *optlist) {
 
    int            i, len;
@@ -8297,7 +8382,7 @@ db_pdb_PutMultimesh (DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
    if (_mm._lgroupings > 0)
       DBAddIntComponent(obj, "lgroupings", _mm._lgroupings);
    if ((_mm._lgroupings  > 0) && (_mm._groupnames != NULL)) {
-      DBStringArrayToStringList(_mm._groupnames, 
+      DBStringArrayToStringList((char const * const *)_mm._groupnames, 
                     _mm._lgroupings, &gtmp, &len);
 
       count[0] = len;
@@ -8367,11 +8452,11 @@ db_pdb_PutMultimesh (DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMultimeshadj (DBfile *_dbfile, char DB_CONSTARR1 name, int nmesh,
-                  int DB_CONSTARR1 meshtypes, int DB_CONSTARR1 nneighbors,
-                  int DB_CONSTARR1 neighbors, int DB_CONSTARR1 back,
-                  int DB_CONSTARR1 lnodelists, int DB_CONSTARR2 nodelists,
-                  int DB_CONSTARR1 lzonelists, int DB_CONSTARR2 zonelists,
+db_pdb_PutMultimeshadj (DBfile *_dbfile, char const *name, int nmesh,
+                  int const *meshtypes, int const *nneighbors,
+                  int const *neighbors, int const *back,
+                  int const *lnodelists, int const * const *nodelists,
+                  int const *lzonelists, int const * const *zonelists,
                   DBoptlist const *optlist) {
 
 
@@ -8670,8 +8755,8 @@ db_pdb_PutMultimeshadj (DBfile *_dbfile, char DB_CONSTARR1 name, int nmesh,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMultivar (DBfile *dbfile, char *name, int nvars,
-                    char *varnames[], int vartypes[], DBoptlist *optlist) {
+db_pdb_PutMultivar (DBfile *dbfile, char const *name, int nvars,
+                    char const * const *varnames, int const *vartypes, DBoptlist const *optlist) {
 
    int            i, len;
    long           count[3];
@@ -8686,7 +8771,7 @@ db_pdb_PutMultivar (DBfile *dbfile, char *name, int nvars,
    /*-------------------------------------------------------------
     *  Build object description from literals and var-id's
     *-------------------------------------------------------------*/
-   obj = DBMakeObject(name, DB_MULTIVAR, 31);
+   obj = DBMakeObject(name, DB_MULTIVAR, 32);
    DBAddIntComponent(obj, "nvars", nvars);
    DBAddIntComponent(obj, "ngroups", _mm._ngroups);
    DBAddIntComponent(obj, "blockorigin", _mm._blockorigin);
@@ -8696,7 +8781,7 @@ db_pdb_PutMultivar (DBfile *dbfile, char *name, int nvars,
    if (_mm._region_pnames != NULL)
    {
         char *s=0; int len=0; long llen;
-        DBStringArrayToStringList(_mm._region_pnames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_mm._region_pnames, -1, &s, &len);
         llen = len;
         DBWriteComponent(dbfile, obj, "region_pnames", name, "char", s, 1, &llen);
         FREE(s);
@@ -8799,6 +8884,14 @@ db_pdb_PutMultivar (DBfile *dbfile, char *name, int nvars,
    if (_mm._repr_block_idx)
       DBAddIntComponent(obj, "repr_block_idx", _mm._repr_block_idx);
 
+   if (_mm._missing_value != DB_MISSING_VALUE_NOT_SET)
+   {
+      if (_mm._missing_value == 0.0)
+          DBAddDblComponent(obj, "missing_value", DB_MISSING_VALUE_NOT_SET);
+      else
+          DBAddDblComponent(obj, "missing_value", _mm._missing_value);
+   }
+
    /*-------------------------------------------------------------
     *  Write multi-var object to SILO file.
     *-------------------------------------------------------------*/
@@ -8864,8 +8957,8 @@ db_pdb_PutMultivar (DBfile *dbfile, char *name, int nvars,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMultimat (DBfile *dbfile, char *name, int nmats,
-                    char *matnames[], DBoptlist *optlist) {
+db_pdb_PutMultimat (DBfile *dbfile, char const *name, int nmats,
+                    char const * const *matnames, DBoptlist const *optlist) {
 
    int            i, len;
    long           count[3];
@@ -8981,7 +9074,7 @@ db_pdb_PutMultimat (DBfile *dbfile, char *name, int nmats,
     *-------------------------------------------------------------*/
    if (_mm._matnames && _mm._nmatnos > 0) {
       int len; long llen; char *tmpstr = 0;
-      DBStringArrayToStringList(_mm._matnames, _mm._nmatnos,
+      DBStringArrayToStringList((char const * const *)_mm._matnames, _mm._nmatnos,
           &tmpstr, &len);
       llen = (long) len;
       DBWriteComponent(dbfile, obj, "material_names", name, "char", tmpstr, 1, &llen);
@@ -8993,7 +9086,7 @@ db_pdb_PutMultimat (DBfile *dbfile, char *name, int nmats,
     *-------------------------------------------------------------*/
    if (_mm._matcolors && _mm._nmatnos > 0) {
       int len; long llen; char *tmpstr = 0;
-      DBStringArrayToStringList(_mm._matcolors, _mm._nmatnos,
+      DBStringArrayToStringList((char const * const *)_mm._matcolors, _mm._nmatnos,
           &tmpstr, &len);
       llen = (long) len;
       DBWriteComponent(dbfile, obj, "matcolors", name, "char", tmpstr, 1, &llen);
@@ -9076,8 +9169,8 @@ db_pdb_PutMultimat (DBfile *dbfile, char *name, int nmats,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutMultimatspecies (DBfile *dbfile, char *name, int nspec,
-                    char *specnames[], DBoptlist *optlist) {
+db_pdb_PutMultimatspecies (DBfile *dbfile, char const *name, int nspec,
+                    char const * const *specnames, DBoptlist const *optlist) {
 
    int            i, len, nstrs;
    long           count[3];
@@ -9170,7 +9263,7 @@ db_pdb_PutMultimatspecies (DBfile *dbfile, char *name, int nspec,
          /* count how many names we have */
          for (i=0; i < _mm._nmat; i++)
              nstrs += _mm._nmatspec[i];
-         DBStringArrayToStringList(_mm._specnames, nstrs, &tmpstr, &len);
+         DBStringArrayToStringList((char const * const *)_mm._specnames, nstrs, &tmpstr, &len);
          llen = (long) len;
          DBWriteComponent(dbfile, obj, "species_names", name, "char", tmpstr, 1, &llen);
          FREE(tmpstr);
@@ -9185,7 +9278,7 @@ db_pdb_PutMultimatspecies (DBfile *dbfile, char *name, int nspec,
              for (i=0; i < _mm._nmat; i++)
                  nstrs += _mm._nmatspec[i];
          }
-         DBStringArrayToStringList(_mm._speccolors, nstrs, &tmpstr, &len);
+         DBStringArrayToStringList((char const * const *)_mm._speccolors, nstrs, &tmpstr, &len);
          llen = (long) len;
          DBWriteComponent(dbfile, obj, "speccolors", name, "char", tmpstr, 1, &llen);
          FREE(tmpstr);
@@ -9283,8 +9376,8 @@ db_pdb_PutMultimatspecies (DBfile *dbfile, char *name, int nspec,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
-                     int nels, int datatype, DBoptlist *optlist) {
+db_pdb_PutPointmesh (DBfile *dbfile, char const *name, int ndims, DBVCP2_t _coords,
+                     int nels, int datatype, DBoptlist const *optlist) {
 
    int            i;
    long           count[3];
@@ -9293,7 +9386,7 @@ db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
    float          fmin_extents[3], fmax_extents[3];
    double         dmin_extents[3], dmax_extents[3];
    static char   *me = "db_pdb_PutPointmesh";
-   DB_DTPTR     **coords = (DB_DTPTR**) _coords;
+   void const * const *coords = (void const * const *) _coords;
 
    /*-------------------------------------------------------------
     *  Initialize global data, and process options.
@@ -9306,7 +9399,7 @@ db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
     *-------------------------------------------------------------*/
    datatype_str = db_GetDatatypeString(datatype);
    count[0] = nels;
-   for (i = 0; i < ndims; i++) {
+   for (i = 0; i < ndims && nels; i++) {
       sprintf(tmp, "coord%d", i);
       DBWriteComponent(dbfile, obj, tmp, name, datatype_str,
                        coords[i], 1, count);
@@ -9318,16 +9411,16 @@ db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
     *  them out to output file.
     *-------------------------------------------------------------*/
    count[0] = ndims;
-   if (ndims) {
+   if (ndims && nels) {
       switch (datatype) {
       case DB_FLOAT:
          switch (ndims) {
          case 3:
-            _DBarrminmax(coords[2], nels, &fmin_extents[2], &fmax_extents[2]);
+            _DBarrminmax((float*)coords[2], nels, &fmin_extents[2], &fmax_extents[2]);
          case 2:
-            _DBarrminmax(coords[1], nels, &fmin_extents[1], &fmax_extents[1]);
+            _DBarrminmax((float*)coords[1], nels, &fmin_extents[1], &fmax_extents[1]);
          case 1:
-            _DBarrminmax(coords[0], nels, &fmin_extents[0], &fmax_extents[0]);
+            _DBarrminmax((float*)coords[0], nels, &fmin_extents[0], &fmax_extents[0]);
             break;
          default:
             return db_perror("ndims", E_BADARGS, me);
@@ -9366,7 +9459,7 @@ db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
       }
    }
 
-   if (_pm._gnodeno)
+   if (nels>0 && _pm._gnodeno)
    {
        count[0] = nels;
        if (_pm._llong_gnodeno)
@@ -9430,6 +9523,22 @@ db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
    if (_pm._mrgtree_name != NULL)
       DBAddStrComponent(obj, "mrgtree_name", _pm._mrgtree_name);
 
+   if (nels>0 && _pm._ghost_node_labels != NULL)
+   {
+      count[0] = nels;
+      DBWriteComponent(dbfile, obj, "ghost_node_labels", name, "char",
+          _pm._ghost_node_labels, 1, count);
+   }
+
+   if (nels>0 && _pm._alt_nodenum_vars)
+   {
+      int nvars=-1, len; long llen; char *tmpstr = 0;
+      DBStringArrayToStringList((char const * const *)_pm._alt_nodenum_vars, nvars, &tmpstr, &len);
+      llen = (long) len;
+      DBWriteComponent(dbfile, obj, "alt_nodenum_vars", name, "char", tmpstr, 1, &llen);
+      FREE(tmpstr);
+   }
+
    /*-------------------------------------------------------------
     *  Write point-mesh object to output file.
     *-------------------------------------------------------------*/
@@ -9478,42 +9587,45 @@ db_pdb_PutPointmesh (DBfile *dbfile, char *name, int ndims, DB_DTPTR2 _coords,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutPointvar (DBfile *dbfile, char *name, char *meshname, int nvars,
-                    DB_DTPTR2 _vars, int nels, int datatype,
-                    DBoptlist *optlist) {
+db_pdb_PutPointvar (DBfile *dbfile, char const *name, char const *meshname, int nvars,
+                    DBVCP2_t _vars, int nels, int datatype,
+                    DBoptlist const *optlist) {
 
    int            i;
    long           count[3];
    DBobject      *obj;
    char          *datatype_str;
    char           tmp[1024];
-   DB_DTPTR     **vars = (DB_DTPTR**) _vars;
+   void const * const *vars = (void const * const *) _vars;
 
    /*-------------------------------------------------------------
     *  Initialize global data, and process options.
     *-------------------------------------------------------------*/
    db_InitPoint(dbfile, optlist, _pm._ndims, nels);
 
-   obj = DBMakeObject(name, DB_POINTVAR, 24);
+   obj = DBMakeObject(name, DB_POINTVAR, nvars+20);
 
    /*-------------------------------------------------------------
     *  Write variable arrays.
     *  Set index variables and counters.
     *-----------------------------------------------------------*/
-   datatype_str = db_GetDatatypeString(datatype);
-   count[0] = nels;
-   if (nvars == 1) {
-      DBWriteComponent(dbfile, obj, "_data", name, datatype_str,
-                       vars[0], 1, count);
-   }
-   else {
-      for (i = 0; i < nvars; i++) {
-         sprintf(tmp, "%d_data", i);
-         DBWriteComponent(dbfile, obj, tmp, name, datatype_str,
-                          vars[i], 1, count);
+   if (nels>0 && nvars>0)
+   {
+      datatype_str = db_GetDatatypeString(datatype);
+      count[0] = nels;
+      if (nvars == 1) {
+         DBWriteComponent(dbfile, obj, "_data", name, datatype_str,
+                          vars[0], 1, count);
+      }
+      else {
+         for (i = 0; i < nvars; i++) {
+            sprintf(tmp, "%d_data", i);
+            DBWriteComponent(dbfile, obj, tmp, name, datatype_str,
+                             vars[i], 1, count);
+         }
       }
+      FREE(datatype_str);
    }
-   FREE(datatype_str);
 
    /*-------------------------------------------------------------
     *  Build a SILO object definition for a point var. The
@@ -9540,7 +9652,7 @@ db_pdb_PutPointvar (DBfile *dbfile, char *name, char *meshname, int nvars,
    if (_pm._guihide)
       DBAddIntComponent(obj, "guihide", _pm._guihide);
    if (_pm._ascii_labels)
-       DBAddIntComponent(obj, "ascii_labels", _pm._ascii_labels);
+      DBAddIntComponent(obj, "ascii_labels", _pm._ascii_labels);
 
    /*-------------------------------------------------------------
     *  Process character strings: labels & units for variable.
@@ -9554,7 +9666,7 @@ db_pdb_PutPointvar (DBfile *dbfile, char *name, char *meshname, int nvars,
    if (_pm._region_pnames != NULL)
    {
         char *s=0; int len=0; long llen;
-        DBStringArrayToStringList(_pm._region_pnames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_pm._region_pnames, -1, &s, &len);
         llen = len;
         DBWriteComponent(dbfile, obj, "region_pnames", name, "char", s, 1, &llen);
         FREE(s);
@@ -9566,6 +9678,14 @@ db_pdb_PutPointvar (DBfile *dbfile, char *name, char *meshname, int nvars,
    if (_pm._extensive)
       DBAddIntComponent(obj, "extensive", _pm._extensive);
 
+   if (_pm._missing_value != DB_MISSING_VALUE_NOT_SET)
+   {
+      if (_pm._missing_value == 0.0)
+          DBAddDblComponent(obj, "missing_value", DB_MISSING_VALUE_NOT_SET);
+      else
+          DBAddDblComponent(obj, "missing_value", _pm._missing_value);
+   }
+
    /*-------------------------------------------------------------
     *  Write point-mesh object to output file.
     *-------------------------------------------------------------*/
@@ -9624,9 +9744,9 @@ db_pdb_PutPointvar (DBfile *dbfile, char *name, char *meshname, int nvars,
 #ifdef PDB_WRITE
 /* ARGSUSED */
 SILO_CALLBACK int
-db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
-                    DB_DTPTR2 _coords, int dims[], int ndims, int datatype,
-                    int coordtype, DBoptlist *optlist)
+db_pdb_PutQuadmesh (DBfile *dbfile, char const *name, char const * const *coordnames,
+                    DBVCP2_t _coords, int const *dims, int ndims, int datatype,
+                    int coordtype, DBoptlist const *optlist)
 {
     int             i;
     long            count[3];
@@ -9634,10 +9754,11 @@ db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
     char           *datatype_str;
     DBobject       *obj;
     char            tmp[1024];
-    DB_DTPTR      **coords = (DB_DTPTR**) _coords;
+    void const * const *coords = (void const * const *) _coords;
+    int             is_empty = 1;
 
     /* The following is declared as double for worst case. */
-    double         min_extents[3], max_extents[3];
+    double         min_extents[3]={0,0,0}, max_extents[3]={0,0,0};
 
    /*-------------------------------------------------------------
     *  Initialize global data, and process options.
@@ -9649,6 +9770,15 @@ db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
     *  Write coordinate arrays.
     *-------------------------------------------------------------*/
     for (i = 0; i < ndims; i++)
+    {
+        if (dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
+
+    for (i = 0; i < ndims; i++)
         count[i] = dims[i];
     if (coordtype == DB_COLLINEAR)
         nd = 1;
@@ -9656,7 +9786,7 @@ db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
         nd = ndims;
 
     datatype_str = db_GetDatatypeString(datatype);
-    for (i = 0; i < ndims; i++)
+    for (i = 0; (i < ndims) && !is_empty; i++)
     {
         if (coordtype == DB_COLLINEAR)
             count[0] = dims[i];
@@ -9701,7 +9831,7 @@ db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
     DBAddIntComponent(obj, "facetype", _qm._facetype);
     DBAddIntComponent(obj, "major_order", _qm._majororder);
     DBAddIntComponent(obj, "cycle", _qm._cycle);
-    DBAddIntComponent(obj, "coord_sys", _qm._coordsys);
+    DBAddIntComponent(obj, "coord_sys", _qm._coord_sys);
     DBAddIntComponent(obj, "planar", _qm._planar);
     DBAddIntComponent(obj, "origin", _qm._origin);
 
@@ -9745,6 +9875,40 @@ db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
     if (_qm._mrgtree_name != NULL)
         DBAddStrComponent(obj, "mrgtree_name", _qm._mrgtree_name);
 
+    if (!is_empty && _qm._ghost_node_labels != NULL)
+    {
+        for (i = 0; i < ndims; i++)
+            count[i] = dims[i];
+        DBWriteComponent(dbfile, obj, "ghost_node_labels", name, "char",
+                         _qm._ghost_node_labels, ndims, count);
+    }
+
+    if (!is_empty && _qm._ghost_zone_labels != NULL)
+    {
+        for (i = 0; i < ndims; i++)
+            count[i] = dims[i]-1;
+        DBWriteComponent(dbfile, obj, "ghost_zone_labels", name, "char",
+                         _qm._ghost_zone_labels, ndims, count);
+    }
+
+    if (!is_empty && _qm._alt_nodenum_vars)
+    {
+       int nvars=-1, len; long llen; char *tmpstr = 0;
+       DBStringArrayToStringList((char const * const *)_qm._alt_nodenum_vars, nvars, &tmpstr, &len);
+       llen = (long) len;
+       DBWriteComponent(dbfile, obj, "alt_nodenum_vars", name, "char", tmpstr, 1, &llen);
+       FREE(tmpstr);
+    }
+
+    if (!is_empty && _qm._alt_zonenum_vars)
+    {
+       int nvars=-1, len; long llen; char *tmpstr = 0;
+       DBStringArrayToStringList((char const * const *)_qm._alt_zonenum_vars, nvars, &tmpstr, &len);
+       llen = (long) len;
+       DBWriteComponent(dbfile, obj, "alt_zonenum_vars", name, "char", tmpstr, 1, &llen);
+       FREE(tmpstr);
+    }
+
    /*-------------------------------------------------------------
     *  Write quad-mesh object to SILO file.
     *-------------------------------------------------------------*/
@@ -9813,10 +9977,10 @@ db_pdb_PutQuadmesh (DBfile *dbfile, char *name, char *coordnames[],
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
-                   char *varnames[], DB_DTPTR2 _vars, int dims[], int ndims,
-                   DB_DTPTR2 _mixvars, int mixlen, int datatype, int centering,
-                   DBoptlist *optlist) {
+db_pdb_PutQuadvar (DBfile *_dbfile, char const *name, char const *meshname, int nvars,
+                   char const * const *varnames, DBVCP2_t _vars, int const *dims, int ndims,
+                   DBVCP2_t _mixvars, int mixlen, int datatype, int centering,
+                   DBoptlist const *optlist) {
 
    DBfile_pdb   *dbfile = (DBfile_pdb *) _dbfile;
    int          i, nels;
@@ -9825,15 +9989,25 @@ db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    static char  *me = "db_pdb_PutQuadvar";
    DBobject     *obj;
    int          maxindex[3] ;
-   DB_DTPTR   **vars = (DB_DTPTR**) _vars;
-   DB_DTPTR   **mixvars = (DB_DTPTR**) _mixvars;
+   void const * const    *vars = (void const * const *) _vars;
+   void const * const *mixvars = (void const * const *) _mixvars;
+   int          is_empty = 1;
+
+   for (i = 0; i < ndims; i++)
+   {
+       if (dims[i] > 0)
+       {
+           is_empty = 0;
+           break;
+       }
+   }
 
    /*-------------------------------------------------------------
     *  Initialize global data, and process options.
     *-------------------------------------------------------------*/
    db_InitQuad(_dbfile, meshname, optlist, dims, ndims);
 
-   obj = DBMakeObject(name, DB_QUADVAR, 30);
+   obj = DBMakeObject(name, DB_QUADVAR, (1+(mixlen!=0))*nvars + 30);
 
    DBAddStrComponent(obj, "meshid", meshname);
 
@@ -9841,7 +10015,7 @@ db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
     *  Write variable arrays.
     *  Set index variables and counters.
     *-----------------------------------------------------------*/
-   nels = ndims?1:0;
+   nels = !is_empty?1:0;
    for (i = 0; i < ndims; i++) {
       count[i] = dims[i];
       nels *= dims[i];
@@ -9905,7 +10079,7 @@ db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    suffix = "data";
 
    datatype_str = db_GetDatatypeString(datatype);
-   for (i = 0; i < nvars; i++) {
+   for (i = 0; i < nvars && !is_empty; i++) {
 
       db_mkname(dbfile->pdb, varnames[i], suffix, tmp2);
       if ((ndims > 1 && centering == DB_EDGECENT) ||
@@ -9921,7 +10095,7 @@ db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
       }
       else
       {
-          int k; long n=1;
+          int k; long n=ndims==0?0:1;
           for (k = 0; k < ndims; n *= count[k++]);
           if (n)
               PJ_write_len(dbfile->pdb, tmp2, datatype_str, vars[i], ndims, count);
@@ -9991,7 +10165,7 @@ db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    if (_qm._region_pnames != NULL)
    {
         char *s=0; int len=0; long llen;
-        DBStringArrayToStringList(_qm._region_pnames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_qm._region_pnames, -1, &s, &len);
         llen = len;
         DBWriteComponent(_dbfile, obj, "region_pnames", name, "char", s, 1, &llen);
         FREE(s);
@@ -10004,6 +10178,14 @@ db_pdb_PutQuadvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
       DBAddIntComponent(obj, "extensive", _qm._extensive);
 
 
+   if (_qm._missing_value != DB_MISSING_VALUE_NOT_SET)
+   {
+      if (_qm._missing_value == 0.0)
+          DBAddDblComponent(obj, "missing_value", DB_MISSING_VALUE_NOT_SET);
+      else
+          DBAddDblComponent(obj, "missing_value", _qm._missing_value);
+   }
+
    /*-------------------------------------------------------------
     *  Write quad-var object to output file.
     *-------------------------------------------------------------*/
@@ -10034,7 +10216,7 @@ db_pdb_PutCsgmesh (DBfile *dbfile, char const *name, int ndims,
                    int const *typeflags, int const *bndids,
                    void const *coeffs, int lcoeffs, int datatype,
                    double const *extents, char const *zlname,
-                   DBoptlist *optlist) {
+                   DBoptlist const *optlist) {
 
    long           count[3];
    DBobject      *obj;
@@ -10046,23 +10228,22 @@ db_pdb_PutCsgmesh (DBfile *dbfile, char const *name, int ndims,
     *-------------------------------------------------------------*/
    strcpy(_csgm._meshname, name);
 
-   db_InitCsg(dbfile, (char*) name, optlist);
+   db_InitCsg(dbfile, name, optlist);
 
    obj = DBMakeObject(name, DB_CSGMESH, 34);
 
    count[0] = nbounds;
 
-   DBWriteComponent(dbfile, obj, "typeflags", name, "integer",
-                    typeflags, 1, count);
+   if (nbounds)
+       DBWriteComponent(dbfile, obj, "typeflags", name, "integer", typeflags, 1, count);
 
-   if (bndids)
-       DBWriteComponent(dbfile, obj, "bndids", name, "integer",
-                        bndids, 1, count);
+   if (nbounds && bndids)
+       DBWriteComponent(dbfile, obj, "bndids", name, "integer", bndids, 1, count);
 
    datatype_str = db_GetDatatypeString(datatype);
    count[0] = lcoeffs;
-   DBWriteComponent(dbfile, obj, "coeffs", name, datatype_str,
-                       coeffs, 1, count);
+   if (nbounds)
+       DBWriteComponent(dbfile, obj, "coeffs", name, datatype_str, coeffs, 1, count);
    FREE(datatype_str);
 
    if (extents)
@@ -10169,9 +10350,9 @@ db_pdb_PutCsgmesh (DBfile *dbfile, char const *name, int ndims,
 #ifdef PDB_WRITE
 SILO_CALLBACK int
 db_pdb_PutCsgvar (DBfile *_dbfile, char const *name, char const *meshname,
-                  int nvars, char *varnames[], void *vars[],
+                  int nvars, char const * const *varnames, void const * const *vars,
                   int nels, int datatype, int centering,
-                  DBoptlist *optlist) {
+                  DBoptlist const *optlist) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    int            i;
@@ -10180,9 +10361,9 @@ db_pdb_PutCsgvar (DBfile *_dbfile, char const *name, char const *meshname,
    char          *suffix, *datatype_str, tmp1[256], tmp2[256];
    static char   *me = "db_pdb_PutCsgvar";
 
-   db_InitCsg(_dbfile, (char*) name, optlist);
+   db_InitCsg(_dbfile, name, optlist);
 
-   obj = DBMakeObject(name, DB_CSGVAR, 29);
+   obj = DBMakeObject(name, DB_CSGVAR, nvars+19);
 
    DBAddStrComponent(obj, "meshid", meshname);
 
@@ -10212,7 +10393,7 @@ db_pdb_PutCsgvar (DBfile *_dbfile, char const *name, char const *meshname,
    suffix = "data";
    datatype_str = db_GetDatatypeString(datatype);
 
-   for (i = 0; i < nvars; i++) {
+   for (i = 0; i < nvars && nels; i++) {
 
       db_mkname(dbfile->pdb, (char*) varnames[i], suffix, tmp2);
       PJ_write_len(dbfile->pdb, tmp2, datatype_str, vars[i],
@@ -10272,7 +10453,7 @@ db_pdb_PutCsgvar (DBfile *_dbfile, char const *name, char const *meshname,
    if (_csgm._region_pnames != NULL)
    {
         char *s=0; int len=0; long llen;
-        DBStringArrayToStringList(_csgm._region_pnames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_csgm._region_pnames, -1, &s, &len);
         llen = len;
         DBWriteComponent(_dbfile, obj, "region_pnames", name, "char", s, 1, &llen);
         FREE(s);
@@ -10284,6 +10465,14 @@ db_pdb_PutCsgvar (DBfile *_dbfile, char const *name, char const *meshname,
    if (_csgm._extensive)
       DBAddIntComponent(obj, "extensive", _csgm._extensive);
 
+   if (_csgm._missing_value != DB_MISSING_VALUE_NOT_SET)
+   {
+      if (_csgm._missing_value == 0.0)
+          DBAddDblComponent(obj, "missing_value", DB_MISSING_VALUE_NOT_SET);
+      else
+          DBAddDblComponent(obj, "missing_value", _csgm._missing_value);
+   }
+
    /*-------------------------------------------------------------
     *  Write ucd-mesh object to output file.
     *-------------------------------------------------------------*/
@@ -10313,7 +10502,7 @@ db_pdb_PutCSGZonelist (DBfile *dbfile, char const *name, int nregs,
                  int const *typeflags,
                  int const *leftids, int const *rightids,
                  void const *xforms, int lxforms, int datatype,
-                 int nzones, int const *zonelist, DBoptlist *optlist) {
+                 int nzones, int const *zonelist, DBoptlist const *optlist) {
 
    long           count[1];
    DBobject      *obj;
@@ -10346,27 +10535,33 @@ db_pdb_PutCSGZonelist (DBfile *dbfile, char const *name, int nregs,
    {
        char *datatype_str = db_GetDatatypeString(datatype);
        count[0] = lxforms;
-       DBWriteComponent(dbfile, obj, "xforms", name, datatype_str,
-                           xforms, 1, count);
+       DBWriteComponent(dbfile, obj, "xforms", name, datatype_str, xforms, 1, count);
    }
 
    if (_csgzl._regnames)
    {
        int len; char *tmp;
-       DBStringArrayToStringList(_csgzl._regnames, nregs, &tmp, &len);
+       DBStringArrayToStringList((char const * const *)_csgzl._regnames, nregs, &tmp, &len);
        count[0] = len;
-       DBWriteComponent(dbfile, obj, "regnames", name, "char",
-                        tmp, 1, count);
+       DBWriteComponent(dbfile, obj, "regnames", name, "char", tmp, 1, count);
        FREE(tmp);
    }
 
    if (_csgzl._zonenames)
    {
        int len; char *tmp;
-       DBStringArrayToStringList(_csgzl._zonenames, nzones, &tmp, &len);
+       DBStringArrayToStringList((char const * const *)_csgzl._zonenames, nzones, &tmp, &len);
+       count[0] = len;
+       DBWriteComponent(dbfile, obj, "zonenames", name, "char", tmp, 1, count);
+       FREE(tmp);
+   }
+
+   if (_csgzl._alt_zonenum_vars)
+   {
+       int nvars=-1, len; char *tmp;
+       DBStringArrayToStringList((char const * const *)_csgzl._alt_zonenum_vars, nvars, &tmp, &len);
        count[0] = len;
-       DBWriteComponent(dbfile, obj, "zonenames", name, "char",
-                        tmp, 1, count);
+       DBWriteComponent(dbfile, obj, "alt_zonenum_vars", name, "char", tmp, 1, count);
        FREE(tmp);
    }
 
@@ -10430,19 +10625,19 @@ db_pdb_PutCSGZonelist (DBfile *dbfile, char const *name, int nregs,
 #ifdef PDB_WRITE
 /* ARGSUSED */
 SILO_CALLBACK int
-db_pdb_PutUcdmesh (DBfile *dbfile, char *name, int ndims, char *coordnames[],
-                   DB_DTPTR2 _coords, int nnodes, int nzones, char *zlname,
-                   char *flname, int datatype, DBoptlist *optlist) {
+db_pdb_PutUcdmesh (DBfile *dbfile, char const *name, int ndims, char const * const *coordnames,
+                   DBVCP2_t _coords, int nnodes, int nzones, char const *zlname,
+                   char const *flname, int datatype, DBoptlist const *optlist) {
 
    int            i;
    long           count[3];
    DBobject      *obj;
    char          *datatype_str;
    char           tmp[256];
-   DB_DTPTR     **coords = (DB_DTPTR**) _coords;
+   void const * const *coords = (void const * const *) _coords;
 
    /* Following is declared as double for worst case */
-   double         min_extents[3], max_extents[3];
+   double         min_extents[3]={0,0,0}, max_extents[3]={0,0,0};
 
    /*-------------------------------------------------------------
     *  Initialize global data, and process options.
@@ -10462,7 +10657,7 @@ db_pdb_PutUcdmesh (DBfile *dbfile, char *name, int ndims, char *coordnames[],
    datatype_str = db_GetDatatypeString(datatype);
    count[0] = nnodes;
 
-   for (i = 0; i < ndims; i++) {
+   for (i = 0; (i < ndims) && (nnodes > 0); i++) {
 
       sprintf(tmp, "coord%d", i);
 
@@ -10506,7 +10701,7 @@ db_pdb_PutUcdmesh (DBfile *dbfile, char *name, int ndims, char *coordnames[],
    DBAddIntComponent(obj, "nzones", nzones);
    DBAddIntComponent(obj, "facetype", _um._facetype);
    DBAddIntComponent(obj, "cycle", _um._cycle);
-   DBAddIntComponent(obj, "coord_sys", _um._coordsys);
+   DBAddIntComponent(obj, "coord_sys", _um._coord_sys);
    if (_um._topo_dim > 0)
       DBAddIntComponent(obj, "topo_dim", _um._topo_dim);
    DBAddIntComponent(obj, "planar", _um._planar);
@@ -10573,6 +10768,22 @@ db_pdb_PutUcdmesh (DBfile *dbfile, char *name, int ndims, char *coordnames[],
    if (_um._disjoint_mode)
       DBAddIntComponent(obj, "disjoint_mode", _um._disjoint_mode);
 
+   if (nnodes>0 && _um._ghost_node_labels != NULL)
+   {
+      count[0] = nnodes;
+      DBWriteComponent(dbfile, obj, "ghost_node_labels", name, "char",
+          _um._ghost_node_labels, 1, count);
+   }
+
+   if (nnodes>0 && _um._alt_nodenum_vars)
+   {
+      int nvars=-1, len; long llen; char *tmpstr = 0;
+      DBStringArrayToStringList((char const * const *)_um._alt_nodenum_vars, nvars, &tmpstr, &len);
+      llen = (long) len;
+      DBWriteComponent(dbfile, obj, "alt_nodenum_vars", name, "char", tmpstr, 1, &llen);
+      FREE(tmpstr);
+   }
+
    /*-------------------------------------------------------------
     *  Write ucd-mesh object to output file.
     *-------------------------------------------------------------*/
@@ -10603,9 +10814,9 @@ db_pdb_PutUcdmesh (DBfile *dbfile, char *name, int ndims, char *coordnames[],
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutUcdsubmesh (DBfile *dbfile, char *name, char *parentmesh,
-                      int nzones, char *zlname, char *flname,
-                      DBoptlist *optlist) {
+db_pdb_PutUcdsubmesh (DBfile *dbfile, char const *name, char const *parentmesh,
+                      int nzones, char const *zlname, char const *flname,
+                      DBoptlist const *optlist) {
 
    int            i;
    DBobject      *obj;
@@ -10618,11 +10829,11 @@ db_pdb_PutUcdsubmesh (DBfile *dbfile, char *name, char *parentmesh,
     *  Of course this had better succeed...
     *-------------------------------------------------------------*/
 
-   Pndims       = DBGetComponent(dbfile,parentmesh,"ndims");
+   Pndims       = (int *)DBGetComponent(dbfile,parentmesh,"ndims");
           ndims = *Pndims;
-   Pnnodes      = DBGetComponent(dbfile,parentmesh,"nnodes");
+   Pnnodes      = (int *)DBGetComponent(dbfile,parentmesh,"nnodes");
          nnodes = *Pnnodes;
-   Pdatatype    = DBGetComponent(dbfile,parentmesh,"datatype");
+   Pdatatype    = (int *)DBGetComponent(dbfile,parentmesh,"datatype");
        datatype = *Pdatatype;
 
    /*-------------------------------------------------------------
@@ -10689,7 +10900,7 @@ db_pdb_PutUcdsubmesh (DBfile *dbfile, char *name, char *parentmesh,
    DBAddIntComponent(obj, "nzones", nzones);
    DBAddIntComponent(obj, "facetype", _um._facetype);
    DBAddIntComponent(obj, "cycle", _um._cycle);
-   DBAddIntComponent(obj, "coord_sys", _um._coordsys);
+   DBAddIntComponent(obj, "coord_sys", _um._coord_sys);
    if (_um._topo_dim > 0)
       DBAddIntComponent(obj, "topo_dim", _um._topo_dim);
    DBAddIntComponent(obj, "planar", _um._planar);
@@ -10804,10 +11015,10 @@ db_pdb_PutUcdsubmesh (DBfile *dbfile, char *name, char *parentmesh,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
-                  char *varnames[], DB_DTPTR2 _vars, int nels, DB_DTPTR2 _mixvars,
+db_pdb_PutUcdvar (DBfile *_dbfile, char const *name, char const *meshname, int nvars,
+                  char const * const *varnames, DBVCP2_t _vars, int nels, DBVCP2_t _mixvars,
                   int mixlen, int datatype, int centering,
-                  DBoptlist *optlist) {
+                  DBoptlist const *optlist) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    int            i;
@@ -10815,8 +11026,8 @@ db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    DBobject      *obj;
    char          *suffix, *datatype_str, tmp1[256], tmp2[256];
    static char   *me = "db_pdb_PutUcdvar";
-   DB_DTPTR     **vars = (DB_DTPTR**) _vars;
-   DB_DTPTR     **mixvars = (DB_DTPTR**) _mixvars;
+   void const * const    *vars = (void const * const *) _vars;
+   void const * const *mixvars = (void const * const *) _mixvars;
 
    /*-------------------------------------------------------------
     *  Initialize global data, and process options.
@@ -10828,7 +11039,7 @@ db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    db_InitUcd(_dbfile, meshname, optlist, ndims, nnodes, nzones);
 #endif
 
-   obj = DBMakeObject(name, DB_UCDVAR, 29);
+   obj = DBMakeObject(name, DB_UCDVAR, (1+(mixlen!=0)) * nvars + 22);
 
    DBAddStrComponent(obj, "meshid", meshname);
 
@@ -10848,7 +11059,7 @@ db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    suffix = "data";
    datatype_str = db_GetDatatypeString(datatype);
 
-   for (i = 0; i < nvars; i++) {
+   for (i = 0; i < nvars && nels; i++) {
 
       db_mkname(dbfile->pdb, varnames[i], suffix, tmp2);
       PJ_write_len(dbfile->pdb, tmp2, datatype_str, vars[i],
@@ -10923,7 +11134,7 @@ db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    if (_um._region_pnames != NULL)
    {
         char *s=0; int len=0; long llen;
-        DBStringArrayToStringList(_um._region_pnames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_um._region_pnames, -1, &s, &len);
         llen = len;
         DBWriteComponent(_dbfile, obj, "region_pnames", name, "char", s, 1, &llen);
         FREE(s);
@@ -10935,6 +11146,14 @@ db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
    if (_um._extensive)
       DBAddIntComponent(obj, "extensive", _um._extensive);
 
+   if (_um._missing_value != DB_MISSING_VALUE_NOT_SET)
+   {
+      if (_um._missing_value == 0.0)
+          DBAddDblComponent(obj, "missing_value", DB_MISSING_VALUE_NOT_SET);
+      else
+          DBAddDblComponent(obj, "missing_value", _um._missing_value);
+   }
+
    /*-------------------------------------------------------------
     *  Write ucd-mesh object to output file.
     *-------------------------------------------------------------*/
@@ -10965,9 +11184,9 @@ db_pdb_PutUcdvar (DBfile *_dbfile, char *name, char *meshname, int nvars,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutZonelist (DBfile *dbfile, char *name, int nzones, int ndims,
-                    int nodelist[], int lnodelist, int origin, int shapesize[],
-                    int shapecnt[], int nshapes) {
+db_pdb_PutZonelist (DBfile *dbfile, char const *name, int nzones, int ndims,
+                    int const *nodelist, int lnodelist, int origin, int const *shapesize,
+                    int const *shapecnt, int nshapes) {
 
    long           count[5];
    DBobject      *obj;
@@ -11035,11 +11254,11 @@ db_pdb_PutZonelist (DBfile *dbfile, char *name, int nzones, int ndims,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutZonelist2 (DBfile *dbfile, char *name, int nzones, int ndims,
-                     int nodelist[], int lnodelist, int origin,
-                     int lo_offset, int hi_offset, int shapetype[],
-                     int shapesize[], int shapecnt[], int nshapes,
-                     DBoptlist *optlist) {
+db_pdb_PutZonelist2 (DBfile *dbfile, char const *name, int nzones, int ndims,
+                     int const *nodelist, int lnodelist, int origin,
+                     int lo_offset, int hi_offset, int const *shapetype,
+                     int const *shapesize, int const *shapecnt, int nshapes,
+                     DBoptlist const *optlist) {
 
    long           count[5];
    DBobject      *obj;
@@ -11078,7 +11297,7 @@ db_pdb_PutZonelist2 (DBfile *dbfile, char *name, int nzones, int ndims,
    DBWriteComponent(dbfile, obj, "shapetype", name, "integer",
                     shapetype, 1, count);
 
-   if (_uzl._gzoneno)
+   if (nzones>0 && _uzl._gzoneno)
    {
        count[0] = nzones;
        if (_uzl._llong_gzoneno)
@@ -11089,6 +11308,22 @@ db_pdb_PutZonelist2 (DBfile *dbfile, char *name, int nzones, int ndims,
                _uzl._gzoneno, 1, count);
    }
 
+   if (nzones>0 && _uzl._ghost_zone_labels)
+   {
+       count[0] = nzones;
+       DBWriteComponent(dbfile, obj, "ghost_zone_labels", name, "char",
+               _uzl._ghost_zone_labels, 1, count);
+   }
+
+   if (nzones>0 && _uzl._alt_zonenum_vars)
+   {
+      int nvars=-1, len; long llen; char *tmpstr = 0;
+      DBStringArrayToStringList((char const * const *)_uzl._alt_zonenum_vars, nvars, &tmpstr, &len);
+      llen = (long) len;
+      DBWriteComponent(dbfile, obj, "alt_zonenum_vars", name, "char", tmpstr, 1, &llen);
+      FREE(tmpstr);
+   }
+
    /*-------------------------------------------------------------
     *  Write object to output file.
     *-------------------------------------------------------------*/
@@ -11128,11 +11363,11 @@ db_pdb_PutZonelist2 (DBfile *dbfile, char *name, int nzones, int ndims,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 SILO_CALLBACK int
-db_pdb_PutPHZonelist (DBfile *dbfile, char *name,
-   int nfaces, int *nodecnt, int lnodelist, int *nodelist, char *extface,
-   int nzones, int *facecnt, int lfacelist, int *facelist,
+db_pdb_PutPHZonelist (DBfile *dbfile, char const *name,
+   int nfaces, int const *nodecnt, int lnodelist, int const *nodelist, char const *extface,
+   int nzones, int const *facecnt, int lfacelist, int const *facelist,
    int origin, int lo_offset, int hi_offset,
-   DBoptlist *optlist) {
+   DBoptlist const *optlist) {
 
    long           count[1];
    DBobject      *obj;
@@ -11190,7 +11425,7 @@ db_pdb_PutPHZonelist (DBfile *dbfile, char *name,
                         extface, 1, count);
    }
 
-   if (_phzl._gzoneno)
+   if (nzones>0 && _phzl._gzoneno)
    {
        count[0] = nzones;
        if (_phzl._llong_gzoneno)
@@ -11201,6 +11436,22 @@ db_pdb_PutPHZonelist (DBfile *dbfile, char *name,
                _phzl._gzoneno, 1, count);
    }
 
+   if (nzones>0 && _phzl._ghost_zone_labels)
+   {
+       count[0] = nzones;
+       DBWriteComponent(dbfile, obj, "ghost_zone_labels", name, "char",
+               _phzl._ghost_zone_labels, 1, count);
+   }
+
+   if (nzones>0 && _phzl._alt_zonenum_vars)
+   {
+      int nvars=-1, len; long llen; char *tmpstr = 0;
+      DBStringArrayToStringList((char const * const *)_phzl._alt_zonenum_vars, nvars, &tmpstr, &len);
+      llen = (long) len;
+      DBWriteComponent(dbfile, obj, "alt_zonenum_vars", name, "char", tmpstr, 1, &llen);
+      FREE(tmpstr);
+   }
+
    /*-------------------------------------------------------------
     *  Write object to output file.
     *-------------------------------------------------------------*/
@@ -11232,7 +11483,7 @@ db_pdb_PutPHZonelist (DBfile *dbfile, char *name,
 /* ARGSUSED */
 SILO_CALLBACK int
 db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
-    char const *mesh_name, DBmrgtree *tree, DBoptlist *optlist)
+    char const *mesh_name, DBmrgtree const *tree, DBoptlist const *optlist)
 {
     int                 i, j, n, len, pass, num_nodes = tree->num_nodes;
     int                 tot_segs, tot_children;
@@ -11253,7 +11504,7 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
     ltree = (DBmrgtnode **) malloc(num_nodes * sizeof(DBmrgtnode*));
 
     /* walk tree to populate the linearized list of nodes ptrs */
-    DBWalkMrgtree(tree, DBLinearizeMrgtree, ltree, DB_POSTORDER);
+    DBWalkMrgtree(tree, (DBmrgwalkcb) DBLinearizeMrgtree, ltree, DB_POSTORDER);
 
     /* form an array of the integer, scalar data at each node */
     intArray = (int *) malloc(num_nodes * sizeof(int) * 6);
@@ -11277,7 +11528,7 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
 
     /* output all the node names as one long dataset */
     s = 0;
-    DBStringArrayToStringList(strArray, num_nodes, &s, &len);
+    DBStringArrayToStringList((char const * const *)strArray, num_nodes, &s, &len);
     count = len;
     DBWriteComponent(dbfile, obj, "name", name, "char", s, 1, &count);
     FREE(s);
@@ -11319,7 +11570,7 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
     if (n > 0)
     {
         s = 0;
-        DBStringArrayToStringList(strArray, n, &s, &len);
+        DBStringArrayToStringList((char const * const *)strArray, n, &s, &len);
         count = len;
         DBWriteComponent(dbfile, obj, "names", name, "char", s, 1, &count);
         FREE(s);
@@ -11332,7 +11583,7 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
         strArray[i] = ltree[i]->maps_name;
     s = 0;
     len = 0;
-    DBStringArrayToStringList(strArray, num_nodes, &s, &len);
+    DBStringArrayToStringList((char const * const *)strArray, num_nodes, &s, &len);
     count = len;
     DBWriteComponent(dbfile, obj, "maps_name", name, "char", s, 1, &count);
     FREE(s);
@@ -11377,21 +11628,25 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
     tot_children = 0;
     for (i = 0; i < num_nodes; i++)
         tot_children += ltree[i]->num_children;
-    count = tot_children;
-    intArray = (int *) malloc(tot_children * sizeof(int));
-    n = 0;
-    for (i = 0; i < num_nodes; i++)
-        for (j = 0; j < ltree[i]->num_children; j++)
-            intArray[n++] = ltree[i]->children[j]->walk_order;
-    DBWriteComponent(dbfile, obj, "children", name, "integer", intArray, 1, &count);
-    FREE(intArray);
+    if (tot_children)
+    {
+        count = tot_children;
+        intArray = (int *) malloc(tot_children * sizeof(int));
+        n = 0;
+        for (i = 0; i < num_nodes; i++)
+            for (j = 0; j < ltree[i]->num_children; j++)
+                intArray[n++] = ltree[i]->children[j]->walk_order;
+        DBWriteComponent(dbfile, obj, "children", name, "integer", intArray, 1, &count);
+        FREE(intArray);
+    }
+
     FREE(ltree);
 
     if (_mrgt._mrgvar_onames)
     {
         s = 0;
         len = 0;
-        DBStringArrayToStringList(_mrgt._mrgvar_onames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_mrgt._mrgvar_onames, -1, &s, &len);
         count = len;
         DBWriteComponent(dbfile, obj, "mrgvar_onames", name, "char", s, 1, &count);
         FREE(s);
@@ -11401,7 +11656,7 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
     {
         s = 0;
         len = 0;
-        DBStringArrayToStringList(_mrgt._mrgvar_rnames, -1, &s, &len);
+        DBStringArrayToStringList((char const * const *)_mrgt._mrgvar_rnames, -1, &s, &len);
         count = len;
         DBWriteComponent(dbfile, obj, "mrgvar_rnames", name, "char", s, 1, &count);
         FREE(s);
@@ -11442,9 +11697,9 @@ db_pdb_PutMrgtree(DBfile *dbfile, char const *name,
 /* ARGSUSED */
 SILO_CALLBACK int
 db_pdb_PutGroupelmap(DBfile *dbfile, char const *name,
-    int num_segments, int *groupel_types, int *segment_lengths,
-    int *segment_ids, int **segment_data, void **segment_fracs,
-    int fracs_data_type, DBoptlist *opts)
+    int num_segments, int const *groupel_types, int const *segment_lengths,
+    int const *segment_ids, int const * const *segment_data, void const * const *segment_fracs,
+    int fracs_data_type, DBoptlist const *opts)
 {
    int            i, j, tot_len;
    int           *intArray;
@@ -11473,15 +11728,18 @@ db_pdb_PutGroupelmap(DBfile *dbfile, char const *name,
    tot_len = 0;
    for (i = 0; i < num_segments; i++)
        tot_len += segment_lengths[i];
-   intArray = (int *) malloc(tot_len * sizeof(int));
-   tot_len = 0;
-   for (i = 0; i < num_segments; i++)
-       for (j = 0; j < segment_lengths[i]; j++)
-           intArray[tot_len++] = segment_data[i][j];
-   count = tot_len;
-   DBWriteComponent(dbfile, obj, "segment_data", name, "integer",
-                    intArray, 1, &count);
-   FREE(intArray);
+   if (tot_len)
+   {
+       intArray = (int *) malloc(tot_len * sizeof(int));
+       tot_len = 0;
+       for (i = 0; i < num_segments; i++)
+           for (j = 0; j < segment_lengths[i]; j++)
+               intArray[tot_len++] = segment_data[i][j];
+       count = tot_len;
+       DBWriteComponent(dbfile, obj, "segment_data", name, "integer",
+                        intArray, 1, &count);
+       FREE(intArray);
+   }
 
    /* write out fractional data if we have it */
    if (segment_fracs)
@@ -11504,35 +11762,38 @@ db_pdb_PutGroupelmap(DBfile *dbfile, char const *name,
        FREE(intArray);
 
        /* build and write out fractional data array */
-       fracsArray = (void *) malloc(tot_len * ((fracs_data_type==DB_FLOAT)?sizeof(float):sizeof(double)));
-       tot_len = 0;
-       for (i = 0; i < num_segments; i++)
+       if (tot_len)
        {
-           if (segment_fracs[i] == 0)
-               continue;
-
-           for (j = 0; j < segment_lengths[i]; j++)
+           fracsArray = (void *) malloc(tot_len * ((fracs_data_type==DB_FLOAT)?sizeof(float):sizeof(double)));
+           tot_len = 0;
+           for (i = 0; i < num_segments; i++)
            {
-               if (fracs_data_type == DB_FLOAT)
-               {
-                   float *pfa = (float *) fracsArray;
-                   float *psf = (float *) segment_fracs[i];
-                   pfa[tot_len++] = psf[j];
-               }
-               else
+               if (segment_fracs[i] == 0)
+                   continue;
+
+               for (j = 0; j < segment_lengths[i]; j++)
                {
-                   double *pfa = (double *) fracsArray;
-                   double *psf = (double *) segment_fracs[i];
-                   pfa[tot_len++] = psf[j];
+                   if (fracs_data_type == DB_FLOAT)
+                   {
+                       float *pfa = (float *) fracsArray;
+                       float *psf = (float *) segment_fracs[i];
+                       pfa[tot_len++] = psf[j];
+                   }
+                   else
+                   {
+                       double *pfa = (double *) fracsArray;
+                       double *psf = (double *) segment_fracs[i];
+                       pfa[tot_len++] = psf[j];
+                   }
                }
            }
+           count = tot_len;
+           datatype_str = db_GetDatatypeString(fracs_data_type);
+           DBWriteComponent(dbfile, obj, "segment_fracs", name, datatype_str, 
+                            fracsArray, 1, &count);
+           FREE(fracsArray);
+           FREE(datatype_str);
        }
-       count = tot_len;
-       datatype_str = db_GetDatatypeString(fracs_data_type);
-       DBWriteComponent(dbfile, obj, "segment_fracs", name, datatype_str, 
-                        fracsArray, 1, &count);
-       FREE(fracsArray);
-       FREE(datatype_str);
    }
 
    /*-------------------------------------------------------------
@@ -11561,9 +11822,9 @@ db_pdb_PutGroupelmap(DBfile *dbfile, char const *name,
 #ifdef PDB_WRITE
 SILO_CALLBACK int
 db_pdb_PutMrgvar(DBfile *_dbfile, char const *name, char const *mrgt_name,
-    int ncomps, char **compnames,
-    int nregns, char **reg_pnames,
-    int datatype, void **data, DBoptlist *optlist)
+    int ncomps, char const * const *compnames,
+    int nregns, char const * const *reg_pnames,
+    int datatype, void const * const *data, DBoptlist const *optlist)
 {
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    int            i, nstrs;
@@ -11610,7 +11871,7 @@ db_pdb_PutMrgvar(DBfile *_dbfile, char const *name, char const *mrgt_name,
 
    if (compnames)
    {
-       DBStringArrayToStringList(compnames, ncomps, &s, &len);
+       DBStringArrayToStringList((char const * const *)compnames, ncomps, &s, &len);
        llen = len;
        DBWriteComponent(_dbfile, obj, "compnames", name, "char", s, 1, &llen);
        FREE(s);
@@ -11619,7 +11880,7 @@ db_pdb_PutMrgvar(DBfile *_dbfile, char const *name, char const *mrgt_name,
    nstrs = nregns;
    if (strchr(reg_pnames[0], '%') != 0)
        nstrs = 1;
-   DBStringArrayToStringList(reg_pnames, nstrs, &s, &len);
+   DBStringArrayToStringList((char const * const *)reg_pnames, nstrs, &s, &len);
    llen = len;
    DBWriteComponent(_dbfile, obj, "reg_pnames", name, "char", s, 1, &llen);
    FREE(s);
@@ -11707,7 +11968,7 @@ db_pdb_SortObjectsByOffset(DBfile *_dbfile, int nobjs,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE int
-db_InitCsg(DBfile *_dbfile, char *meshname, DBoptlist *optlist) {
+db_InitCsg(DBfile *_dbfile, char const *meshname, DBoptlist const *optlist) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    long           count[3];
@@ -11769,7 +12030,7 @@ db_InitCsg(DBfile *_dbfile, char *meshname, DBoptlist *optlist) {
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE int
-db_InitPoint (DBfile *_dbfile, DBoptlist *optlist, int ndims, int nels) {
+db_InitPoint (DBfile *_dbfile, DBoptlist const *optlist, int ndims, int nels) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
    long           count[3];
@@ -11856,11 +12117,11 @@ db_InitPoint (DBfile *_dbfile, DBoptlist *optlist, int ndims, int nels) {
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE int
-db_InitQuad (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
-             int dims[], int ndims) {
+db_InitQuad (DBfile *_dbfile, char const *meshname, DBoptlist const *optlist,
+             int const *dims, int ndims) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
-   int            i;
+   int            i, is_empty = 1;
    int            nzones, nnodes;
    long           count[3];
    float          a[3];
@@ -11875,6 +12136,8 @@ db_InitQuad (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
    for (i = 0; i < ndims; i++) {
       nzones *= (dims[i] - 1);
       nnodes *= dims[i];
+      if (dims[i] > 0)
+          is_empty = 0;
    }
 
    /*--------------------------------------------------
@@ -11928,23 +12191,16 @@ db_InitQuad (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
 
    count[0] = ndims;
    /*  File name contained within meshname */
-   p = strchr(meshname, ':');
-   if (p == NULL && count[0]) {
+   p = (char *)strchr(meshname, ':');
+   if (p == NULL) {
       PJ_write_len(dbfile->pdb, _qm._nm_dims, "integer", dims, 1, count);
-      PJ_write_len(dbfile->pdb, _qm._nm_zones, "integer", _qm._zones,
-                1, count);
-      PJ_write_len(dbfile->pdb, _qm._nm_maxindex_n, "integer",
-                _qm._maxindex_n, 1, count);
-      PJ_write_len(dbfile->pdb, _qm._nm_maxindex_z, "integer",
-                _qm._maxindex_z, 1, count);
-      PJ_write_len(dbfile->pdb, _qm._nm_minindex, "integer",
-                _qm._minindex, 1, count);
-      PJ_write_len(dbfile->pdb, _qm._nm_baseindex, "integer",
-                _qm._baseindex, 1, count);
-
+      PJ_write_len(dbfile->pdb, _qm._nm_zones, "integer", _qm._zones, 1, count);
+      PJ_write_len(dbfile->pdb, _qm._nm_maxindex_n, "integer", _qm._maxindex_n, 1, count);
+      PJ_write_len(dbfile->pdb, _qm._nm_maxindex_z, "integer", _qm._maxindex_z, 1, count);
+      PJ_write_len(dbfile->pdb, _qm._nm_minindex, "integer", _qm._minindex, 1, count);
+      PJ_write_len(dbfile->pdb, _qm._nm_baseindex, "integer", _qm._baseindex, 1, count);
       a[0] = a[1] = a[2] = 0.5;
       PJ_write_len(dbfile->pdb, _qm._nm_alignz, "float", a, 1, count);
-
       a[0] = a[1] = a[2] = 0.0;
       PJ_write_len(dbfile->pdb, _qm._nm_alignn, "float", a, 1, count);
    }
@@ -11993,7 +12249,7 @@ db_InitQuad (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE int
-db_InitUcd (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
+db_InitUcd (DBfile *_dbfile, char const *meshname, DBoptlist const *optlist,
             int ndims, int nnodes, int nzones) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
@@ -12042,7 +12298,7 @@ db_InitUcd (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
     * there is possibily another  mesh that may be pointing to,
     * so we'll use that meshes discriptions.
     *-----------------------------------------------------*/
-   p = strchr(meshname, ':');
+   p = (char *)strchr(meshname, ':');
    if (p == NULL && count[0]) {
       a[0] = a[1] = a[2] = 0.5;
       PJ_write_len(dbfile->pdb, _um._nm_alignz, "float", a, 1, count);
@@ -12090,7 +12346,7 @@ db_InitUcd (DBfile *_dbfile, char *meshname, DBoptlist *optlist,
 #ifdef PDB_WRITE
 /* ARGSUSED */
 PRIVATE int
-db_InitZonelist (DBfile *_dbfile, DBoptlist *optlist)
+db_InitZonelist (DBfile *_dbfile, DBoptlist const *optlist)
 {
    /*--------------------------------------------------
     *  Process the given option list (this function
@@ -12120,7 +12376,7 @@ db_InitZonelist (DBfile *_dbfile, DBoptlist *optlist)
 #ifdef PDB_WRITE
 /* ARGSUSED */
 PRIVATE int
-db_InitPHZonelist (DBfile *_dbfile, DBoptlist *optlist)
+db_InitPHZonelist (DBfile *_dbfile, DBoptlist const *optlist)
 {
    /*--------------------------------------------------
     *  Process the given option list (this function
@@ -12149,7 +12405,7 @@ db_InitPHZonelist (DBfile *_dbfile, DBoptlist *optlist)
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE void
-db_build_shared_names_csgmesh(DBfile *_dbfile, char *meshname) {
+db_build_shared_names_csgmesh(DBfile *_dbfile, char const *meshname) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
 
@@ -12186,7 +12442,7 @@ db_build_shared_names_csgmesh(DBfile *_dbfile, char *meshname) {
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE void
-db_build_shared_names_quadmesh (DBfile *_dbfile, char *meshname) {
+db_build_shared_names_quadmesh (DBfile *_dbfile, char const *meshname) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
 
@@ -12250,7 +12506,7 @@ db_ResetGlobalData_phzonelist (void) {
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE void
-db_build_shared_names_ucdmesh (DBfile *_dbfile, char *meshname) {
+db_build_shared_names_ucdmesh (DBfile *_dbfile, char const *meshname) {
 
    DBfile_pdb    *dbfile = (DBfile_pdb *) _dbfile;
 
@@ -12285,7 +12541,7 @@ db_build_shared_names_ucdmesh (DBfile *_dbfile, char *meshname) {
  *--------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE void
-db_mkname (PDBfile *pdb, char *name, char *suffix, char *out)
+db_mkname (PDBfile *pdb, char const *name, char const *suffix, char *out)
 {
     char   *cwd;
 
@@ -12398,7 +12654,7 @@ db_InitMulti (DBfile *_dbfile, DBoptlist const *const optlist) {
  *-------------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE void
-db_InitCurve (DBoptlist *opts) {
+db_InitCurve (DBoptlist const * const opts) {
 
    db_ResetGlobalData_Curve () ;
    db_ProcessOptlist (DB_CURVE, opts) ;
@@ -12420,7 +12676,7 @@ db_InitCurve (DBoptlist *opts) {
  *-------------------------------------------------------------------------*/
 #ifdef PDB_WRITE
 PRIVATE void
-db_InitDefvars (DBoptlist *opts) {
+db_InitDefvars (DBoptlist const *opts) {
 
    db_ResetGlobalData_Defvars () ;
    db_ProcessOptlist (DB_DEFVARS, opts) ;
diff --git a/src/pdb_drv/silo_pdb_private.h b/src/pdb_drv/silo_pdb_private.h
index 6f93fd9..3e49ab2 100644
--- a/src/pdb_drv/silo_pdb_private.h
+++ b/src/pdb_drv/silo_pdb_private.h
@@ -95,7 +95,7 @@ typedef struct {
 } PJdir;
 
 typedef struct {
-    char          *name[80];    /* Component name */
+    char const    *name[80];    /* Component name */
     void          *ptr[80];     /* Address of component value */
     int            type[80];    /* Datatype of component */
     unsigned char  alloced[80]; /* Sentinel: 1 == space already alloc'd */
@@ -104,166 +104,217 @@ typedef struct {
 
 #ifndef SILO_NO_CALLBACKS
 SILO_CALLBACK int db_pdb_close (DBfile *);
-SILO_CALLBACK int db_pdb_InqVarExists (DBfile *, char *);
-SILO_CALLBACK void *db_pdb_GetComponent (DBfile *, char *, char *);
-SILO_CALLBACK int db_pdb_GetComponentType (DBfile *, char *, char *);
-SILO_CALLBACK void *db_pdb_GetAtt (DBfile *, char *, char *);
+SILO_CALLBACK int db_pdb_InqVarExists (DBfile *, char const *);
+SILO_CALLBACK void *db_pdb_GetComponent (DBfile *, char const *, char const *);
+SILO_CALLBACK int db_pdb_GetComponentType (DBfile *, char const *, char const *);
 SILO_CALLBACK int db_pdb_GetDir (DBfile *, char *);
 
-SILO_CALLBACK DBobject *db_pdb_GetObject (DBfile*, char*);
-SILO_CALLBACK DBcompoundarray *db_pdb_GetCompoundarray (DBfile *, char *);
-SILO_CALLBACK DBcurve *db_pdb_GetCurve (DBfile *, char *);
+SILO_CALLBACK DBobject *db_pdb_GetObject (DBfile*, char const *);
+SILO_CALLBACK DBcompoundarray *db_pdb_GetCompoundarray (DBfile *, char const *);
+SILO_CALLBACK DBcurve *db_pdb_GetCurve (DBfile *, char const *);
 SILO_CALLBACK DBdefvars *db_pdb_GetDefvars (DBfile *, char const *);
-SILO_CALLBACK DBmaterial *db_pdb_GetMaterial (DBfile *, char *);
-SILO_CALLBACK DBmatspecies *db_pdb_GetMatspecies (DBfile *, char *);
-SILO_CALLBACK DBmultimesh *db_pdb_GetMultimesh (DBfile *, char *);
+SILO_CALLBACK DBmaterial *db_pdb_GetMaterial (DBfile *, char const *);
+SILO_CALLBACK DBmatspecies *db_pdb_GetMatspecies (DBfile *, char const *);
+SILO_CALLBACK DBmultimesh *db_pdb_GetMultimesh (DBfile *, char const *);
 SILO_CALLBACK DBmultimeshadj *db_pdb_GetMultimeshadj (DBfile *, char const *,
                             int, int const *);
-SILO_CALLBACK DBmultivar *db_pdb_GetMultivar (DBfile *, char *);
-SILO_CALLBACK DBmultimat *db_pdb_GetMultimat (DBfile *, char *);
-SILO_CALLBACK DBmultimatspecies *db_pdb_GetMultimatspecies (DBfile *, char *);
-SILO_CALLBACK DBpointmesh *db_pdb_GetPointmesh (DBfile *, char *);
-SILO_CALLBACK DBmeshvar *db_pdb_GetPointvar (DBfile *, char *);
-SILO_CALLBACK DBquadmesh *db_pdb_GetQuadmesh (DBfile *, char *);
-SILO_CALLBACK DBquadvar *db_pdb_GetQuadvar (DBfile *, char *);
-SILO_CALLBACK DBucdmesh *db_pdb_GetUcdmesh (DBfile *, char *);
-SILO_CALLBACK DBucdvar *db_pdb_GetUcdvar (DBfile *, char *);
+SILO_CALLBACK DBmultivar *db_pdb_GetMultivar (DBfile *, char const *);
+SILO_CALLBACK DBmultimat *db_pdb_GetMultimat (DBfile *, char const *);
+SILO_CALLBACK DBmultimatspecies *db_pdb_GetMultimatspecies (DBfile *, char const *);
+SILO_CALLBACK DBpointmesh *db_pdb_GetPointmesh (DBfile *, char const *);
+SILO_CALLBACK DBmeshvar *db_pdb_GetPointvar (DBfile *, char const *);
+SILO_CALLBACK DBquadmesh *db_pdb_GetQuadmesh (DBfile *, char const *);
+SILO_CALLBACK DBquadvar *db_pdb_GetQuadvar (DBfile *, char const *);
+SILO_CALLBACK DBucdmesh *db_pdb_GetUcdmesh (DBfile *, char const *);
+SILO_CALLBACK DBucdvar *db_pdb_GetUcdvar (DBfile *, char const *);
 SILO_CALLBACK DBcsgmesh *db_pdb_GetCsgmesh (DBfile *, char const *);
 SILO_CALLBACK DBcsgvar *db_pdb_GetCsgvar (DBfile *, char const *);
-SILO_CALLBACK DBfacelist *db_pdb_GetFacelist(DBfile*, char*);
-SILO_CALLBACK DBzonelist *db_pdb_GetZonelist(DBfile*, char*);
-SILO_CALLBACK DBphzonelist *db_pdb_GetPHZonelist(DBfile*, char*);
-SILO_CALLBACK DBcsgzonelist *db_pdb_GetCSGZonelist(DBfile*, char const*);
+SILO_CALLBACK DBfacelist *db_pdb_GetFacelist(DBfile*, char const *);
+SILO_CALLBACK DBzonelist *db_pdb_GetZonelist(DBfile*, char const *);
+SILO_CALLBACK DBphzonelist *db_pdb_GetPHZonelist(DBfile*, char const *);
+SILO_CALLBACK DBcsgzonelist *db_pdb_GetCSGZonelist(DBfile*, char const *);
 SILO_CALLBACK DBmrgtree *db_pdb_GetMrgtree(DBfile *_dbfile, char const *name);
 SILO_CALLBACK DBmrgvar *db_pdb_GetMrgvar(DBfile *dbfile, char const *name);
 SILO_CALLBACK DBgroupelmap *db_pdb_GetGroupelmap(DBfile *dbfile, char const *name);
-SILO_CALLBACK void *db_pdb_GetVar (DBfile *, char *);
-SILO_CALLBACK int db_pdb_GetVarByteLength (DBfile *, char *);
-SILO_CALLBACK int db_pdb_GetVarLength (DBfile *, char *);
-SILO_CALLBACK int db_pdb_GetVarDims (DBfile*, char*, int, int*);
-SILO_CALLBACK int db_pdb_GetVarType (DBfile *, char *);
-SILO_CALLBACK DBObjectType db_pdb_InqVarType (DBfile *, char *);
-SILO_CALLBACK int db_pdb_InqMeshname (DBfile *, char *, char *);
-SILO_CALLBACK int db_pdb_InqMeshtype (DBfile *, char *);
-SILO_CALLBACK int db_pdb_ReadAtt (DBfile *, char *, char *, void *);
-SILO_CALLBACK int db_pdb_ReadVar (DBfile *, char *, void *);
-SILO_CALLBACK int db_pdb_ReadVarSlice (DBfile *, char *, int *, int *, int *,
-				  int, void *);
-SILO_CALLBACK int db_pdb_SetDir (DBfile *, char *);
+SILO_CALLBACK void *db_pdb_GetVar (DBfile *, char const *);
+SILO_CALLBACK int db_pdb_GetVarByteLength (DBfile *, char const *);
+SILO_CALLBACK int db_pdb_GetVarLength (DBfile *, char const *);
+SILO_CALLBACK int db_pdb_GetVarDims (DBfile*, char const *, int, int*);
+SILO_CALLBACK int db_pdb_GetVarType (DBfile *, char const *);
+SILO_CALLBACK DBObjectType db_pdb_InqVarType (DBfile *, char const *);
+SILO_CALLBACK int db_pdb_InqMeshname (DBfile *, char const *, char *);
+SILO_CALLBACK int db_pdb_InqMeshtype (DBfile *, char const *);
+SILO_CALLBACK int db_pdb_ReadVar (DBfile *, char const *, void *);
+SILO_CALLBACK int db_pdb_ReadVarSlice (DBfile *, char const *, int const *, int const *, int const *, int, void *);
+SILO_CALLBACK int db_pdb_SetDir (DBfile *, char const *);
 SILO_CALLBACK int db_pdb_Filters (DBfile *, FILE *);
 SILO_CALLBACK int db_pdb_NewToc (DBfile *);
-SILO_CALLBACK int db_pdb_GetComponentNames (DBfile *, char *, char ***, char ***);
+SILO_CALLBACK int db_pdb_GetComponentNames (DBfile *, char const *, char ***, char ***);
 
 SILO_CALLBACK int db_pdb_FreeCompressionResources(DBfile *_dbfile, char const *meshname);
 
-PRIVATE int db_pdb_getobjinfo (PDBfile *, char *, char *, int *);
-PRIVATE int db_pdb_getvarinfo (PDBfile *, char *, char *, int *, int *, int);
+PRIVATE int db_pdb_getobjinfo (PDBfile *, char const *, char *, int *);
+PRIVATE int db_pdb_getvarinfo (PDBfile *, char const *, char *, int *, int *, int);
 
 #ifdef PDB_WRITE
 SILO_CALLBACK int db_pdb_WriteObject (DBfile *, DBobject const *, int);
 SILO_CALLBACK int db_pdb_WriteComponent (DBfile *, DBobject *, char const *,
 				    char const *, char const *, void const *, int, long const *);
-SILO_CALLBACK int db_pdb_MkDir (DBfile *, char *);
-SILO_CALLBACK int db_pdb_PutCompoundarray (DBfile *, char *, char **, int *,
-				      int, void *, int, int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutCurve (DBfile *, char *, void *, void *, int, int,
-			      DBoptlist *);
-SILO_CALLBACK int db_pdb_PutDefvars(DBfile *, char const *, int, char **,
-                               int const *, char **, DBoptlist **);
-SILO_CALLBACK int db_pdb_PutFacelist (DBfile *, char *, int, int, int *, int,
-				 int, int *, int *, int *, int, int *,
-				 int *, int);
-SILO_CALLBACK int db_pdb_PutMaterial (DBfile *, char *, char *, int, int *,
-				 int *, int *, int, int *, int *, int *,
-				 DB_DTPTR1, int, int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutMatspecies (struct DBfile *, char *, char *, int,
-				   int *, int *, int *, int, int, DB_DTPTR1,
-				   int *, int, int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutMultimesh (DBfile *, char DB_CONSTARR1, int, char DB_CONSTARR2, int DB_CONSTARR1,
-				  DBoptlist const *);
-SILO_CALLBACK int db_pdb_PutMultimeshadj (DBfile *, char DB_CONSTARR1, int, int DB_CONSTARR1,
-                               int DB_CONSTARR1, int DB_CONSTARR1, int DB_CONSTARR1, int DB_CONSTARR1,
-                               int DB_CONSTARR2, int DB_CONSTARR1, int DB_CONSTARR2,
+SILO_CALLBACK int db_pdb_MkDir (DBfile *, char const *);
+SILO_CALLBACK int db_pdb_PutCompoundarray(
+    DBfile * dbfile,
+    char const *name,
+    char const * const *elemnames,
+    int const *elemlens,
+    int nelems,
+    void const *values,
+    int nvalues,
+    int datatype,
+    DBoptlist const *
+);
+SILO_CALLBACK int db_pdb_PutCurve(
+    DBfile *dbfile,
+    char const *name,
+    void const *xvals,
+    void const *yvals,
+    int npts,
+    int datatype,
+    DBoptlist const *
+);
+SILO_CALLBACK int db_pdb_PutDefvars(
+    DBfile *dbfile,
+    char const *name,
+    int,
+    char const * const *names,
+    int const *types,
+    char const * const *defns,
+    DBoptlist const * const *opts
+);
+SILO_CALLBACK int db_pdb_PutFacelist(
+    DBfile *dbfile,
+    char const * name,
+    int nfaces,
+    int ndims,
+    int const *nodelist,
+    int lnodelist,
+    int origin,
+    int const *zoneno,
+    int const *shapesize,
+    int const *shapecnt,
+    int nshapes,
+    int const *types,
+    int const *typelist,
+    int ntypes
+);
+SILO_CALLBACK int db_pdb_PutMaterial(
+    DBfile *dbfile,
+    char const *name,
+    char const *meshname,
+    int nmat,
+    int const *matnos,
+    int const *matlist,
+    int const *dims,
+    int ndims,
+    int const *mix_next,
+    int const *mix_mat,
+    int const *mix_zone,
+    void const *mix_vf,
+    int mixlen,
+    int datatype,
+    DBoptlist const *opts
+);
+SILO_CALLBACK int db_pdb_PutMatspecies (struct DBfile *, char const *, char const *, int,
+				   int const *, int const *, int const *, int, int, void const *,
+				   int const *, int, int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutMultimesh (DBfile *, char const *, int, char const * const *,
+                                  int const *, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutMultimeshadj (DBfile *, char const *, int, int const *,
+                               int const *, int const *, int const *, int const *,
+                               int const * const *, int const *, int const * const *,
                                DBoptlist const *optlist);
-SILO_CALLBACK int db_pdb_PutMultivar (DBfile *, char *, int, char **, int *,
-				 DBoptlist *);
-SILO_CALLBACK int db_pdb_PutMultimat (DBfile *, char *, int, char **,
-				 DBoptlist *);
-SILO_CALLBACK int db_pdb_PutMultimatspecies (DBfile *, char *, int, char **,
-					DBoptlist *);
-SILO_CALLBACK int db_pdb_PutPointmesh (DBfile *, char *, int, DB_DTPTR2, int,
-				  int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutPointvar (DBfile *, char *, char *, int, DB_DTPTR2,
-				 int, int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutQuadmesh (DBfile *, char *, char **, DB_DTPTR2,
-				 int *, int, int, int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutQuadvar (DBfile *, char *, char *, int, char **,
-				DB_DTPTR2, int *, int, DB_DTPTR2, int, int,
-				int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutUcdmesh (DBfile *, char *, int, char **, DB_DTPTR2,
-				int, int, char *, char *, int,
-				DBoptlist *);
-SILO_CALLBACK int db_pdb_PutUcdsubmesh (DBfile *, char *, char *,
-				int, char *, char *,
-				DBoptlist *);
-SILO_CALLBACK int db_pdb_PutUcdvar (DBfile *, char *, char *, int, char **,
-			       DB_DTPTR2, int, DB_DTPTR2, int, int, int,
-			       DBoptlist *);
+SILO_CALLBACK int db_pdb_PutMultivar (DBfile *, char const *, int, char const * const *, int const *,
+				 DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutMultimat (DBfile *, char const *, int, char const * const *,
+				 DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutMultimatspecies (DBfile *, char const *, int, char const * const *,
+					DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutPointmesh (DBfile *, char const *, int, DBVCP2_t, int,
+				  int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutPointvar (DBfile *, char const *, char const *, int, DBVCP2_t,
+				 int, int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutQuadmesh (DBfile *, char const *, char const * const *, DBVCP2_t,
+				 int const *, int, int, int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutQuadvar (DBfile *, char const *, char const *, int, char const * const *,
+				DBVCP2_t, int const *, int, DBVCP2_t, int, int,
+				int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutUcdmesh (DBfile *, char const *, int, char const * const *, DBVCP2_t,
+				int, int, char const *, char const *, int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutUcdsubmesh (DBfile *, char const *, char const *,
+				int, char const *, char const *, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutUcdvar (DBfile *, char const *, char const *, int, char const * const *,
+			       DBVCP2_t, int, DBVCP2_t, int, int, int, DBoptlist const *);
 SILO_CALLBACK int db_pdb_PutCsgmesh (DBfile *, char const *, int, int,
-                                int const *, int const *,
-                                void const *, int, int, double const *,
-                                char const *, DBoptlist *);
+                                int const *, int const *, void const *,int, int,
+                                double const *, char const *, DBoptlist const *);
 SILO_CALLBACK int db_pdb_PutCsgvar (DBfile *, char const *, char const *, int,
-                               char **varnames, void **vars,
-                               int, int, int, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutZonelist (DBfile *, char *, int, int, int *, int,
-				 int, int *, int *, int);
-SILO_CALLBACK int db_pdb_PutZonelist2 (DBfile *, char *, int, int, int *, int,
-				  int, int, int, int *, int *, int *, int,
-                                  DBoptlist *);
-SILO_CALLBACK int db_pdb_PutPHZonelist(DBfile *, char *,
-                                  int, int *, int, int *, char *,
-                                  int, int *, int, int *,
-                                  int, int, int, DBoptlist *);
+                               char const * const *varnames, void const * const *vars,
+                               int, int, int, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutZonelist (DBfile *, char const *, int, int, int const *, int,
+				 int, int const *, int const *, int);
+SILO_CALLBACK int db_pdb_PutZonelist2 (DBfile *, char const *, int, int, int const *, int,
+				  int, int, int, int const *, int const *, int const *, int,
+                                  DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutPHZonelist(DBfile *, char const *,
+                                  int, int const *, int, int const *, char const *,
+                                  int, int const *, int, int const *,
+                                  int, int, int, DBoptlist const *);
 SILO_CALLBACK int db_pdb_PutCSGZonelist (DBfile *, char const *, int,
                                     int const *, int const *, int const *,
                                     void const *, int, int,
-                                    int, int const *, DBoptlist *);
-SILO_CALLBACK int db_pdb_PutMrgtree(DBfile *_dbfile, char const *name,
-                               char const *mesh_name, DBmrgtree *tree,
-                               DBoptlist *optlist);
+                                    int, int const *, DBoptlist const *);
+SILO_CALLBACK int db_pdb_PutMrgtree(DBfile *_dbfile, char const *name, char const *mesh_name,
+                                    DBmrgtree const *tree, DBoptlist const *optlist);
 SILO_CALLBACK int db_pdb_PutGroupelmap(DBfile *_dbfile, char const *map_name,
-                                  int num_segments, int *groupel_types,
-                                  int *segment_lengths, int *segment_ids,
-                                  int **segment_data, void **segment_fracs,
-                                  int fracs_data_type, DBoptlist *opts);
+                                  int num_segments, int const *groupel_types,
+                                  int const *segment_lengths, int const *segment_ids,
+                                  int const * const *segment_data, void const * const *segment_fracs,
+                                  int fracs_data_type, DBoptlist const *opts);
 SILO_CALLBACK int db_pdb_PutMrgvar(DBfile *dbfile, char const *name,
                              char const *mrgt_name,
-                             int ncomps, char **compnames,
-                             int nregns, char **reg_pnames,
-                             int datatype, void **data, DBoptlist *opts);
+                             int ncomps, char const * const *compnames,
+                             int nregns, char  const * const *reg_pnames,
+                             int datatype, void const * const *data, DBoptlist const *opts);
 
 SILO_CALLBACK int db_pdb_Write (DBfile *, char const *, void const *, int const *, int, int);
-SILO_CALLBACK int db_pdb_WriteSlice (DBfile*, char*, void*, int, int[], int[],
-				int[], int[], int);
+SILO_CALLBACK int db_pdb_WriteSlice(
+    DBfile*,
+    char const *array_name,
+    void const *data,
+    int datatype,
+    int const *offsets,
+    int const *lengths,
+    int const *strides,
+    int const *dims,
+    int ndims
+);
 
 SILO_CALLBACK int db_pdb_SortObjectsByOffset(DBfile *_dbfile, int nobjs,
     char const *const *const names, int *ordering);
 
-PRIVATE int db_InitCsg (DBfile *, char *, DBoptlist *);
-PRIVATE int db_InitPoint (DBfile *, DBoptlist *, int, int);
-PRIVATE int db_InitQuad (DBfile *, char *, DBoptlist *, int *, int);
-PRIVATE void db_InitCurve (DBoptlist*);
-PRIVATE void db_build_shared_names_csgmesh (DBfile *, char *);
-PRIVATE void db_build_shared_names_quadmesh (DBfile *, char *);
-PRIVATE int db_InitUcd (DBfile *, char *, DBoptlist *, int, int, int);
-PRIVATE int db_InitZonelist (DBfile *, DBoptlist *);
+PRIVATE int db_InitCsg (DBfile *, char const *, DBoptlist const *);
+PRIVATE int db_InitPoint (DBfile *, DBoptlist const *, int, int);
+PRIVATE int db_InitQuad (DBfile *, char const *, DBoptlist const *, int const *, int);
+PRIVATE void db_InitCurve (DBoptlist const * const);
+PRIVATE void db_build_shared_names_csgmesh (DBfile *, char const *);
+PRIVATE void db_build_shared_names_quadmesh (DBfile *, char const *);
+PRIVATE int db_InitUcd (DBfile *, char const *, DBoptlist const *, int, int, int);
+PRIVATE int db_InitZonelist (DBfile *, DBoptlist const *);
 PRIVATE int db_ResetGlobalData_phzonelist (void);
-PRIVATE int db_InitPHZonelist (DBfile *, DBoptlist *);
-PRIVATE void db_build_shared_names_ucdmesh (DBfile *, char *);
-PRIVATE void db_mkname (PDBfile*, char*, char*, char*);
+PRIVATE int db_InitPHZonelist (DBfile *, DBoptlist const *);
+PRIVATE void db_build_shared_names_ucdmesh (DBfile *, char const *);
+PRIVATE void db_mkname (PDBfile*, char const *, char const *, char*);
 PRIVATE int db_InitMulti (DBfile*, DBoptlist const *const);
-PRIVATE void db_InitDefvars (DBoptlist*);
+PRIVATE void db_InitDefvars (DBoptlist const *);
 #endif /* PDB_WRITE */
 #endif /* !SILO_NO_CALLBACKS */
 
@@ -287,25 +338,25 @@ PRIVATE void db_InitDefvars (DBoptlist*);
  *-------------------------------------------------------------------------
  */
 PRIVATE char **PJ_ls (PDBfile *, char *, char *, int *);
-PRIVATE int PJ_get_fullpath (PDBfile *, char *, char *, char *);
+PRIVATE int PJ_get_fullpath (PDBfile *, char *, char const *, char *);
 
-PRIVATE int PJ_read (PDBfile *, char *, void *);
+PRIVATE int PJ_read (PDBfile *, char const *, void *);
 PRIVATE int PJ_read_alt (PDBfile *, char *, void *, long *);
 PRIVATE int PJ_read_as (PDBfile *, char *, char *, void *);
 PRIVATE int PJ_read_as_alt (PDBfile *, char *, char *, void *, long *);
-PRIVATE syment *PJ_inquire_entry (PDBfile *, char *);
+PRIVATE syment *PJ_inquire_entry (PDBfile *, char const *);
 PRIVATE int pdb_getvarinfo (PDBfile *, char *, char *, int *, int *, int);
 
 PRIVATE int PJ_ForceSingle (int);
-PRIVATE int PJ_GetObject (PDBfile *, char *, PJcomplist *, int expected_dbtype);
+PRIVATE int PJ_GetObject (PDBfile *, char const *, PJcomplist *, int expected_dbtype);
 PRIVATE int PJ_ClearCache(void);
 PRIVATE int PJ_InqForceSingle (void);
 PRIVATE void PJ_NoCache ( void );
-PRIVATE void *PJ_GetComponent (PDBfile *, char *, char *);
-PRIVATE int PJ_GetComponentType (PDBfile *, char *, char *);
+PRIVATE void *PJ_GetComponent (PDBfile *, char const *, char const *);
+PRIVATE int PJ_GetComponentType (PDBfile *, char const *, char const *);
 PRIVATE int PJ_ReadVariable (PDBfile *, char *, int, int, char **);
 
-PRIVATE int PJ_get_group (PDBfile *, char *, PJgroup **);
+PRIVATE int PJ_get_group (PDBfile *, char const *, PJgroup **);
 PRIVATE PJgroup *PJ_make_group (char *, char *, char **, char **, int);
 PRIVATE int PJ_rel_group (PJgroup *);
 PRIVATE int PJ_print_group (PJgroup *, FILE *);
@@ -313,7 +364,7 @@ PRIVATE int PJ_print_group (PJgroup *, FILE *);
 #ifdef PDB_WRITE
 PRIVATE int PJ_put_group (PDBfile*,PJgroup*, int);
 PRIVATE int PJ_write (PDBfile*,char*,char*,void*) ;
-PRIVATE int PJ_write_len (PDBfile*,char*,char*,void const *,int,long*);
+PRIVATE int PJ_write_len (PDBfile*,char const *,char const *,void const *,int,long const *);
 PRIVATE int PJ_write_alt (PDBfile*,char const *,char const *,void const *,int,long const *);
 #endif /* PDB_WRITE */
 
diff --git a/src/pdbp_drv/Makefile.in b/src/pdbp_drv/Makefile.in
index f7e7c21..0ea46b3 100644
--- a/src/pdbp_drv/Makefile.in
+++ b/src/pdbp_drv/Makefile.in
@@ -178,6 +178,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -226,9 +227,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/score/Makefile.in b/src/score/Makefile.in
index a1aaf66..3c519f1 100644
--- a/src/score/Makefile.in
+++ b/src/score/Makefile.in
@@ -203,6 +203,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -251,9 +252,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/score/scctla.c b/src/score/scctla.c
index e17c295..6e4c6fc 100644
--- a/src/score/scctla.c
+++ b/src/score/scctla.c
@@ -851,6 +851,8 @@ _lite_SC_pr_tok (char *s, char *delim) {
 
    int i, j;
         
+   if (!s) return NULL;
+
    i = strcspn(s, delim);
    j = strlen(s);
    if ((i == 0) && (i != j)) {
@@ -898,7 +900,6 @@ lite_SC_lasttok (char *s, char *delim) {
 
    r    = lite_SC_strrev(s);
    temp = _lite_SC_pr_tok(r, delim);
-   s    = lite_SC_strrev(r);
 
    return lite_SC_strrev (temp);
 }
diff --git a/src/silo/Makefile.am b/src/silo/Makefile.am
index fd615c2..f7dd3bc 100644
--- a/src/silo/Makefile.am
+++ b/src/silo/Makefile.am
@@ -53,6 +53,9 @@
 ## Procss this file with automake to create Makefile.in
 
 AM_CPPFLAGS = -I$(top_srcdir)/src
+if JSON_NEEDED
+ AM_CPPFLAGS += -I$(prefix)/json/include
+endif
 
 noinst_LTLIBRARIES = libsilo_silo.la
 libsilo_silo_la_SOURCES = $(FILES)
@@ -64,15 +67,27 @@ if FORTRAN_NEEDED
  EXTRAINCS += silo_f.h
 endif
 
+if JSON_NEEDED
+ EXTRAFILES += silo_json.c
+endif
+
 EXTRA_DIST = \
  silo_fcb.c \
  silo_f.h \
  silo_f.c \
+ silo_json.c \
  silo.h.in
 
 include_HEADERS = \
  silo.inc \
- pmpio.h
+ silo_f77.inc \
+ silo_f9x.inc \
+ pmpio.h \
+ silo_exports.h
+
+if JSON_NEEDED
+ include_HEADERS += silo_json.h
+endif
 
 nodist_include_HEADERS = \
  silo.h
@@ -90,11 +105,16 @@ FILES = \
  silo_ns.c \
  $(EXTRAFILES)
 
-BUILT_SOURCES = silo.inc
+BUILT_SOURCES = silo.inc silo_f9x.inc
 DISTCLEANFILES = silo_version.h
 
 # built if it doesn't exit, could cause problem with VPATH
 # be extra careful about check-in time-stamps! silo.inc MUST be the oldest.
 silo.inc: silo.h.in silo_f.h
-	if test ! -e $@; then \
-	  cat ./silo.h $(srcdir)/silo_f.h | $(top_srcdir)/config/mkinc > $@; fi
+	cat ./silo.h $(srcdir)/silo_f.h | $(top_srcdir)/config/mkinc > $@
+
+silo_f77.inc: silo.inc
+	@ln -s $< $@ 2>/dev/null
+
+silo_f9x.inc: silo.h.in silo_f.h
+	cat ./silo.h $(srcdir)/silo_f.h | $(top_srcdir)/config/mkinc --f90 > $@
diff --git a/src/silo/Makefile.in b/src/silo/Makefile.in
index 7b7820c..d785a95 100644
--- a/src/silo/Makefile.in
+++ b/src/silo/Makefile.in
@@ -88,10 +88,13 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
- at FORTRAN_NEEDED_TRUE@am__append_1 = silo_f.c
- at FORTRAN_NEEDED_TRUE@am__append_2 = silo_f.h
+ at JSON_NEEDED_TRUE@am__append_1 = -I$(prefix)/json/include
+ at FORTRAN_NEEDED_TRUE@am__append_2 = silo_f.c
+ at FORTRAN_NEEDED_TRUE@am__append_3 = silo_f.h
+ at JSON_NEEDED_TRUE@am__append_4 = silo_json.c
+ at JSON_NEEDED_TRUE@am__append_5 = silo_json.h
 subdir = src/silo
-DIST_COMMON = $(am__noinst_HEADERS_DIST) $(include_HEADERS) \
+DIST_COMMON = $(am__include_HEADERS_DIST) $(am__noinst_HEADERS_DIST) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/silo.h.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -113,12 +116,13 @@ CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libsilo_silo_la_LIBADD =
 am__libsilo_silo_la_SOURCES_DIST = alloc.c extface.c silo.c silo_ns.c \
-	silo_f.c
+	silo_f.c silo_json.c
 @FORTRAN_NEEDED_TRUE at am__objects_1 = silo_f.lo
-am__objects_2 = $(am__objects_1)
-am__objects_3 = alloc.lo extface.lo silo.lo silo_ns.lo \
-	$(am__objects_2)
-am_libsilo_silo_la_OBJECTS = $(am__objects_3)
+ at JSON_NEEDED_TRUE@am__objects_2 = silo_json.lo
+am__objects_3 = $(am__objects_1) $(am__objects_2)
+am__objects_4 = alloc.lo extface.lo silo.lo silo_ns.lo \
+	$(am__objects_3)
+am_libsilo_silo_la_OBJECTS = $(am__objects_4)
 libsilo_silo_la_OBJECTS = $(am_libsilo_silo_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
@@ -135,6 +139,8 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	$(LDFLAGS) -o $@
 SOURCES = $(libsilo_silo_la_SOURCES)
 DIST_SOURCES = $(am__libsilo_silo_la_SOURCES_DIST)
+am__include_HEADERS_DIST = silo.inc silo_f77.inc silo_f9x.inc pmpio.h \
+	silo_exports.h silo_json.h
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -214,6 +220,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -262,9 +269,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -338,21 +342,20 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AM_CPPFLAGS = -I$(top_srcdir)/src
+AM_CPPFLAGS = -I$(top_srcdir)/src $(am__append_1)
 noinst_LTLIBRARIES = libsilo_silo.la
 libsilo_silo_la_SOURCES = $(FILES)
-EXTRAFILES = $(am__append_1)
-EXTRAINCS = $(am__append_2)
+EXTRAFILES = $(am__append_2) $(am__append_4)
+EXTRAINCS = $(am__append_3)
 EXTRA_DIST = \
  silo_fcb.c \
  silo_f.h \
  silo_f.c \
+ silo_json.c \
  silo.h.in
 
-include_HEADERS = \
- silo.inc \
- pmpio.h
-
+include_HEADERS = silo.inc silo_f77.inc silo_f9x.inc pmpio.h \
+	silo_exports.h $(am__append_5)
 nodist_include_HEADERS = \
  silo.h
 
@@ -369,7 +372,7 @@ FILES = \
  silo_ns.c \
  $(EXTRAFILES)
 
-BUILT_SOURCES = silo.inc
+BUILT_SOURCES = silo.inc silo_f9x.inc
 DISTCLEANFILES = silo_version.h
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -430,6 +433,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/extface.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/silo.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/silo_f.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/silo_json.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/silo_ns.Plo at am__quote@
 
 .c.o:
@@ -709,8 +713,13 @@ uninstall-am: uninstall-includeHEADERS uninstall-nodist_includeHEADERS
 # built if it doesn't exit, could cause problem with VPATH
 # be extra careful about check-in time-stamps! silo.inc MUST be the oldest.
 silo.inc: silo.h.in silo_f.h
-	if test ! -e $@; then \
-	  cat ./silo.h $(srcdir)/silo_f.h | $(top_srcdir)/config/mkinc > $@; fi
+	cat ./silo.h $(srcdir)/silo_f.h | $(top_srcdir)/config/mkinc > $@
+
+silo_f77.inc: silo.inc
+	@ln -s $< $@ 2>/dev/null
+
+silo_f9x.inc: silo.h.in silo_f.h
+	cat ./silo.h $(srcdir)/silo_f.h | $(top_srcdir)/config/mkinc --f90 > $@
 
 # 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/src/silo/alloc.c b/src/silo/alloc.c
index 760d694..8ac987b 100644
--- a/src/silo/alloc.c
+++ b/src/silo/alloc.c
@@ -459,7 +459,11 @@ DBFreeMultimesh(DBmultimesh *msh)
     if (msh == NULL)
         return;
 
-    if (msh->meshnames)
+    if (msh->meshnames_alloc)
+    {
+        FREE(msh->meshnames_alloc);
+    }
+    else if (msh->meshnames)
     {
         for (i = 0; i < msh->nblocks; i++) {
             FREE(msh->meshnames[i]);
@@ -560,7 +564,11 @@ DBFreeMultivar (DBmultivar *mv)
      if (mv == NULL)
           return;
 
-     if (mv->varnames)
+     if (mv->varnames_alloc)
+     {
+         FREE(mv->varnames_alloc);
+     }
+     else if (mv->varnames)
      {
          for (i = 0; i < mv->nvars; i++) {
               FREE(mv->varnames[i]);
@@ -616,7 +624,11 @@ DBFreeMultimat (DBmultimat *mat)
      if (mat == NULL)
           return;
 
-     if (mat->matnames)
+     if (mat->matnames_alloc)
+     {
+         FREE(mat->matnames_alloc);
+     }
+     else if (mat->matnames)
      {
          for (i = 0; i < mat->nmats; i++) {
               FREE(mat->matnames[i]);
@@ -699,7 +711,11 @@ DBFreeMultimatspecies (DBmultimatspecies *spec)
          FREE(spec->speccolors);
      }
 
-     if (spec->specnames)
+     if (spec->specnames_alloc)
+     {
+         FREE(spec->specnames_alloc);
+     }
+     else if (spec->specnames)
      {
          for (i = 0; i < spec->nspec; i++) {
               FREE(spec->specnames[i]);
@@ -791,13 +807,7 @@ DBFreeCsgmesh(DBcsgmesh *msh)
 PUBLIC int
 DBIsEmptyCsgmesh(DBcsgmesh const *msh)
 {
-    if (!msh) return 0;
-    if (msh->nbounds!=0) return 0;
-    if (msh->typeflags!=0) return 0;
-    if (msh->bndids!=0) return 0;
-    if (msh->coeffs!=0) return 0;
-    if (msh->lcoeffs!=0) return 0;
-    if (msh->coeffidx!=0) return 0;
+    if (msh && msh->nbounds!=0) return 0;
     return 1;
 }
 
@@ -868,16 +878,17 @@ DBFreeQuadmesh(DBquadmesh *msh)
 PUBLIC int
 DBIsEmptyQuadmesh(DBquadmesh const *msh)
 {
-    if (!msh) return 0;
-    if (msh->nnodes!=0) return 0;
-    if (msh->coords[0]!=0) return 0;
-    if (msh->coords[1]!=0) return 0;
-    if (msh->coords[2]!=0) return 0;
-    if (msh->ndims!=0) return 0;
-    if (msh->dims[0]!=0) return 0;
-    if (msh->dims[1]!=0) return 0;
-    if (msh->dims[2]!=0) return 0;
-    return 1;
+    int i, is_empty = 1;
+
+    for (i = 0; msh && i < msh->ndims; i++)
+    {
+        if (msh->dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
+    return is_empty;
 }
 
 /*----------------------------------------------------------------------
@@ -949,12 +960,7 @@ DBFreePointmesh(DBpointmesh *msh)
 PUBLIC int
 DBIsEmptyPointmesh(DBpointmesh const *msh)
 {
-    if (!msh) return 0;
-    if (msh->nels!=0) return 0;
-    if (msh->ndims!=0) return 0;
-    if (msh->coords[0]!=0) return 0;
-    if (msh->coords[1]!=0) return 0;
-    if (msh->coords[2]!=0) return 0;
+    if (msh && msh->nels!=0) return 0;
     return 1;
 }
 
@@ -1026,14 +1032,7 @@ DBFreeMeshvar(DBmeshvar *var)
 PUBLIC int
 DBIsEmptyMeshvar(DBmeshvar const *var)
 {
-    if (!var) return 0;
-    if (var->nels!=0) return 0;
-    if (var->nvals!=0) return 0;
-    if (var->vals!=0) return 0;
-  /*if (var->ndims!=0) return 0; long standing bug/assumption in Silo */
-    if (var->dims[0]!=0) return 0;
-    if (var->dims[1]!=0) return 0;
-    if (var->dims[2]!=0) return 0;
+    if (var && var->nels!=0) return 0;
     return 1;
 }
 
@@ -1138,16 +1137,7 @@ DBFreeUcdmesh(DBucdmesh *msh)
 PUBLIC int
 DBIsEmptyUcdmesh(DBucdmesh const *msh)
 {
-    if (!msh) return 0;
-    if (msh->ndims!=0) return 0;
-    if (msh->topo_dim!=-1) return 0; /* unique case; -1 means 'unset' */
-    if (msh->nnodes!=0) return 0;
-    if (msh->coords[0]!=0) return 0;
-    if (msh->coords[1]!=0) return 0;
-    if (msh->coords[2]!=0) return 0;
-    if (msh->faces!=0) return 0;
-    if (msh->zones!=0) return 0;
-    if (msh->edges!=0) return 0;
+    if (msh && msh->nnodes!=0) return 0;
     return 1;
 }
 
@@ -1213,10 +1203,7 @@ DBFreeCsgvar(DBcsgvar *var)
 PUBLIC int
 DBIsEmptyCsgvar(DBcsgvar const *var)
 {
-    if (!var) return 0;
-    if (var->nels!=0) return 0;
-    if (var->nvals!=0) return 0;
-    if (var->vals!=0) return 0;
+    if (var && var->nels!=0) return 0;
     return 1;
 }
 
@@ -1309,15 +1296,17 @@ DBFreeQuadvar(DBquadvar *var)
 PUBLIC int
 DBIsEmptyQuadvar(DBquadvar const *var)
 {
-    if (!var) return 0;
-    if (var->nels!=0) return 0;
-    if (var->nvals!=0) return 0;
-    if (var->vals!=0) return 0;
-    if (var->ndims!=0) return 0;
-    if (var->dims[0]!=0) return 0;
-    if (var->dims[1]!=0) return 0;
-    if (var->dims[2]!=0) return 0;
-    return 1;
+    int i, is_empty = 1;
+
+    for (i = 0; var && i < var->ndims; i++)
+    {
+        if (var->dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
+    return is_empty;
 }
 
 /*----------------------------------------------------------------------
@@ -1409,11 +1398,7 @@ DBFreeUcdvar(DBucdvar *var)
 PUBLIC int
 DBIsEmptyUcdvar(DBucdvar const *var)
 {
-    if (!var) return 0;
-    if (var->nels!=0) return 0;
-    if (var->nvals!=0) return 0;
-    if (var->ndims!=0) return 0;
-    if (var->vals!=0) return 0;
+    if (var && var->nels!=0) return 0;
     return 1;
 }
 
@@ -1449,15 +1434,7 @@ DBAllocZonelist(void)
 PUBLIC int
 DBIsEmptyZonelist(DBzonelist const *zl)
 {
-    if (!zl) return 0;
-    if (zl->ndims!=0) return 0;
-    if (zl->nzones!=0) return 0;
-    if (zl->nshapes!=0) return 0;
-    if (zl->lnodelist!=0) return 0;
-    if (zl->nodelist!=0) return 0;
-    if (zl->shapecnt!=0) return 0;
-    if (zl->shapesize!=0) return 0;
-    if (zl->shapetype!=0) return 0;
+    if (zl && zl->nzones!=0) return 0;
     return 1;
 }
 
@@ -1489,11 +1466,7 @@ DBAllocPHZonelist(void)
 PUBLIC int
 DBIsEmptyPHZonelist(DBphzonelist const *zl)
 {
-    if (!zl) return 0;
-    if (zl->nfaces!=0) return 0;
-    if (zl->nodecnt!=0) return 0;
-    if (zl->lnodelist!=0) return 0;
-    if (zl->nodelist!=0) return 0;
+    if (zl && zl->nfaces!=0) return 0;
     return 1;
 }
 
@@ -1525,13 +1498,7 @@ DBAllocCSGZonelist(void)
 PUBLIC int
 DBIsEmptyCSGZonelist(DBcsgzonelist const *zl)
 {
-    if (!zl) return 0;
-    if (zl->nregs!=0) return 0;
-    if (zl->typeflags!=0) return 0;
-    if (zl->leftids!=0) return 0;
-    if (zl->rightids!=0) return 0;
-    if (zl->nzones!=0) return 0;
-    if (zl->zonelist!=0) return 0;
+    if (zl && zl->nzones!=0) return 0;
     return 1;
 }
 
@@ -1705,14 +1672,7 @@ DBAllocFacelist(void)
 PUBLIC int
 DBIsEmptyFacelist(DBfacelist const *fl)
 {
-    if (!fl) return 0;
-    if (fl->ndims!=0) return 0;
-    if (fl->nfaces!=0) return 0;
-    if (fl->lnodelist!=0) return 0;
-    if (fl->nodelist!=0) return 0;
-    if (fl->nshapes!=0) return 0;
-    if (fl->shapecnt!=0) return 0;
-    if (fl->shapesize!=0) return 0;
+    if (fl && fl->nfaces!=0) return 0;
     return 1;
 }
 
@@ -1811,16 +1771,17 @@ DBFreeMaterial(DBmaterial *mats)
 PUBLIC int
 DBIsEmptyMaterial(DBmaterial const *mats)
 {
-    if (!mats) return 0;
-    if (mats->nmat!=0) return 0;
-    if (mats->matnos!=0) return 0;
-    if (mats->ndims!=0) return 0;
-    if (mats->dims[0]!=0) return 0;
-    if (mats->dims[1]!=0) return 0;
-    if (mats->dims[2]!=0) return 0;
-    if (mats->matlist!=0) return 0;
-    if (mats->mixlen!=0) return 0;
-    return 1;
+    int i, is_empty = 1;
+
+    for (i = 0; mats && i < mats->ndims; i++)
+    {
+        if (mats->dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
+    return is_empty;
 }
 
 /*----------------------------------------------------------------------
@@ -1904,19 +1865,20 @@ DBFreeMatspecies(DBmatspecies *species)
 PUBLIC int
 DBIsEmptyMatspecies(DBmatspecies const *species)
 {
-    if (!species) return 0;
-    if (species->nmat!=0) return 0;
-    if (species->nmatspec!=0) return 0;
-    if (species->ndims!=0) return 0;
-    if (species->dims[0]!=0) return 0;
-    if (species->dims[1]!=0) return 0;
-    if (species->dims[2]!=0) return 0;
-    if (species->nspecies_mf!=0) return 0;
-    if (species->species_mf!=0) return 0;
-    if (species->speclist!=0) return 0;
-    if (species->mixlen!=0) return 0;
-    if (species->mix_speclist!=0) return 0;
-    return 1;
+    int i, is_empty = 1;
+
+    if (species->nspecies_mf == 0)
+        return 1;
+
+    for (i = 0; species && i < species->ndims; i++)
+    {
+        if (species->dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
+    return is_empty;
 }
 
 /*-------------------------------------------------------------------------
@@ -2014,10 +1976,7 @@ DBAllocCurve (void)
 PUBLIC int
 DBIsEmptyCurve(DBcurve const *crv)
 {
-    if (!crv) return 0;
-    if (crv->npts!=0) return 0;
-    if (crv->x!=0) return 0;
-    if (crv->y!=0) return 0;
+    if (crv && crv->npts!=0) return 0;
     return 1;
 }
 
diff --git a/src/silo/silo.c b/src/silo/silo.c
index 39ae500..a11dc46 100644
--- a/src/silo/silo.c
+++ b/src/silo/silo.c
@@ -131,8 +131,9 @@ int SILO_VERS_TAG = 0;
 /* No lines of  the form 'int Silo_version_Maj_Min_Pat = 0;' below
    here indicates that this version is not backwards compatible with
    any previous versions.*/
-int Silo_version_4_9 = 0;
-int Silo_version_4_9_0 = 0;
+int Silo_version_4_10 = 0;
+int Silo_version_4_10_0 = 0;
+int Silo_version_4_10_1 = 0;
 
 /* Symbols for error handling */
 PUBLIC int     DBDebugAPI = 0;  /*file desc for API debug messages      */
@@ -182,6 +183,7 @@ PUBLIC char   *_db_err_list[] =
     "of HDF5 already on your sytem, you will also need\n"
     "to obtain HDF5 from www.hdfgroup.org and install it.", /* 33 */
     "Empty objects not permitted. See DBSetAllowEmptyObjects()." /* 34 */
+    "No more tiny array buffer space for custom object." /* 35 */
 };
 
 PRIVATE unsigned char _db_fstatus[DB_NFILES];  /*file status  */
@@ -236,8 +238,8 @@ typedef struct db_silo_stat_t {
 #endif
 } db_silo_stat_t;
 
+/* This function is used in API_BEGIN macros and so we forward declare it */
 PRIVATE int db_isregistered_file(DBfile *dbfile, const db_silo_stat_t *filestate);
-PRIVATE int db_silo_stat(const char *name, db_silo_stat_t *statbuf, int opts_set_id);
 
 /* Global structures for option lists.  */
 struct _ma     _ma;
@@ -320,7 +322,14 @@ INTERNAL int
 db_perror(char const *s, int errorno, char const *fname)
 {
     int            call_abort = 0;
-    static char    old_s[256];
+    static char    old_s[256] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+                                 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
 
     /*
      * Save error number and function name so application
@@ -517,7 +526,7 @@ DBVariableNameValid(const char *s)
     /* If there's a ':' in the name, allow anything before the ':'.  After the 
      * ':' we have to be more strict. */
 
-    p = strchr(s,':');
+    p = (char *)strchr(s,':');
     if (p == NULL)
         p = (char *)s;
     else
@@ -559,7 +568,7 @@ DBVariableNameValid(const char *s)
 }
 /* kept this to deal with non-const qualified API */
 INTERNAL int
-db_VariableNameValid(char *s)
+db_VariableNameValid(char const *s)
 {
     return DBVariableNameValid(s);
 }
@@ -1115,41 +1124,16 @@ db_GetMachDataSize(int datatype)
     int            size;
     char          *me = "db_GetMachDataSize";
 
-    switch (datatype) {
-        case DB_CHAR:
-            size = sizeof(char);
-
-            break;
-        case DB_SHORT:
-            size = sizeof(short);
-
-            break;
-        case DB_INT:
-            size = sizeof(int);
-
-            break;
-        case DB_LONG:
-            size = sizeof(long);
-
-        case DB_LONG_LONG:
-            size = sizeof(long long);
-
-            break;
-        case DB_FLOAT:
-            size = sizeof(float);
-
-            break;
-        case DB_DOUBLE:
-            size = sizeof(double);
-
-            break;
-        default:
-#if 1
-            return db_perror("datatype", E_BADARGS, me);
-#else
-            size = 0;
-            break;
-#endif
+    switch (datatype)
+    {
+        case DB_CHAR:      size = sizeof(char); break;
+        case DB_SHORT:     size = sizeof(short); break;
+        case DB_INT:       size = sizeof(int); break;
+        case DB_LONG:      size = sizeof(long); break;
+        case DB_LONG_LONG: size = sizeof(long long); break;
+        case DB_FLOAT:     size = sizeof(float); break;
+        case DB_DOUBLE:    size = sizeof(double); break;
+        default:           return db_perror("datatype", E_BADARGS, me);
     }
     return (size);
 }
@@ -1186,7 +1170,7 @@ db_GetMachDataSize(int datatype)
  *    Made long long support UNconditionally compiled.
  *--------------------------------------------------------------------*/
 INTERNAL int
-db_GetDatatypeID(char *dataname)
+db_GetDatatypeID(char const * const dataname)
 {
     int            size;
     char          *me = "db_GetDatatypeID";
@@ -1224,7 +1208,7 @@ db_GetDatatypeID(char *dataname)
  *
  *  Parameters
  *
- *      typename         {In}    {Name of object type to inquire about}
+ *      type_name         {In}    {Name of object type to inquire about}
  *
  *  Notes
  *
@@ -1246,7 +1230,7 @@ db_GetDatatypeID(char *dataname)
  *    Added `zonelist' and `facelist' and `edgelist'
  *
  *    Eric Brugger, Tue Feb  7 11:05:39 PST 1995
- *    I modified the routine to return DB_USERDEF if the typename
+ *    I modified the routine to return DB_USERDEF if the type_name
  *    is not known.
  *
  *    Katherine Price, Thu May 25 10:00:50 PDT 1995
@@ -1256,102 +1240,102 @@ db_GetDatatypeID(char *dataname)
  *    Added multi-block material species.
  *--------------------------------------------------------------------*/
 PUBLIC int
-DBGetObjtypeTag(char const *typename)
+DBGetObjtypeTag(char const *type_name)
 {
     int            tag;
     char          *me = "DBGetObjtypeTag";
 
-    if (!typename || !*typename)
+    if (!type_name || !*type_name)
         return db_perror("type name", E_BADARGS, me);
 
-    if (typename[0] == 'D' && typename[1] == 'B')
-        typename += 2;
+    if (type_name[0] == 'D' && type_name[1] == 'B')
+        type_name += 2;
 
-    if (STR_EQUAL(typename, "multiblockmesh") ||
-        STR_EQUAL(typename, "multimesh"))
+    if (STR_EQUAL(type_name, "multiblockmesh") ||
+        STR_EQUAL(type_name, "multimesh"))
         tag = DB_MULTIMESH;
 
-    else if (STR_EQUAL(typename, "multimeshadj"))
+    else if (STR_EQUAL(type_name, "multimeshadj"))
         tag = DB_MULTIMESHADJ;
 
-    else if (STR_EQUAL(typename, "multiblockvar") ||
-             STR_EQUAL(typename, "multivar"))
+    else if (STR_EQUAL(type_name, "multiblockvar") ||
+             STR_EQUAL(type_name, "multivar"))
         tag = DB_MULTIVAR;
 
-    else if (STR_EQUAL(typename, "multiblockmat") ||
-             STR_EQUAL(typename, "multimat"))
+    else if (STR_EQUAL(type_name, "multiblockmat") ||
+             STR_EQUAL(type_name, "multimat"))
         tag = DB_MULTIMAT;
 
-    else if (STR_EQUAL(typename, "multimatspecies"))
+    else if (STR_EQUAL(type_name, "multimatspecies"))
         tag = DB_MULTIMATSPECIES;
 
-    else if (STR_EQUAL(typename, "quadmesh-rect"))
+    else if (STR_EQUAL(type_name, "quadmesh-rect"))
         tag = DB_QUAD_RECT;
 
-    else if (STR_EQUAL(typename, "quadmesh-curv"))
+    else if (STR_EQUAL(type_name, "quadmesh-curv"))
         tag = DB_QUAD_CURV;
 
-    else if (STR_EQUAL(typename, "csgmesh"))
+    else if (STR_EQUAL(type_name, "csgmesh"))
         tag = DB_CSGMESH;
 
-    else if (STR_EQUAL(typename, "csgvar"))
+    else if (STR_EQUAL(type_name, "csgvar"))
         tag = DB_CSGVAR;
 
-    else if (STR_EQUAL(typename, "defvars"))
+    else if (STR_EQUAL(type_name, "defvars"))
         tag = DB_DEFVARS;
 
-    else if (STR_EQUAL(typename, "quadmesh"))
+    else if (STR_EQUAL(type_name, "quadmesh"))
         tag = DB_QUADMESH;
 
-    else if (STR_EQUAL(typename, "quadvar"))
+    else if (STR_EQUAL(type_name, "quadvar"))
         tag = DB_QUADVAR;
 
-    else if (STR_EQUAL(typename, "ucdmesh"))
+    else if (STR_EQUAL(type_name, "ucdmesh"))
         tag = DB_UCDMESH;
 
-    else if (STR_EQUAL(typename, "ucdvar"))
+    else if (STR_EQUAL(type_name, "ucdvar"))
         tag = DB_UCDVAR;
 
-    else if (STR_EQUAL(typename, "pointmesh"))
+    else if (STR_EQUAL(type_name, "pointmesh"))
         tag = DB_POINTMESH;
 
-    else if (STR_EQUAL(typename, "pointvar"))
+    else if (STR_EQUAL(type_name, "pointvar"))
         tag = DB_POINTVAR;
 
-    else if (STR_EQUAL(typename, "curve"))
+    else if (STR_EQUAL(type_name, "curve"))
         tag = DB_CURVE;
 
-    else if (STR_EQUAL(typename, "material"))
+    else if (STR_EQUAL(type_name, "material"))
         tag = DB_MATERIAL;
 
-    else if (STR_EQUAL(typename, "matspecies"))
+    else if (STR_EQUAL(type_name, "matspecies"))
         tag = DB_MATSPECIES;
 
-    else if (STR_EQUAL(typename, "compoundarray"))
+    else if (STR_EQUAL(type_name, "compoundarray"))
         tag = DB_ARRAY;
 
-    else if (STR_EQUAL(typename, "facelist"))
+    else if (STR_EQUAL(type_name, "facelist"))
         tag = DB_FACELIST;
 
-    else if (STR_EQUAL(typename, "zonelist"))
+    else if (STR_EQUAL(type_name, "zonelist"))
         tag = DB_ZONELIST;
 
-    else if (STR_EQUAL(typename, "polyhedral-zonelist"))
+    else if (STR_EQUAL(type_name, "polyhedral-zonelist"))
         tag = DB_PHZONELIST;
 
-    else if (STR_EQUAL(typename, "csgzonelist"))
+    else if (STR_EQUAL(type_name, "csgzonelist"))
         tag = DB_CSGZONELIST;
 
-    else if (STR_EQUAL(typename, "edgelist"))
+    else if (STR_EQUAL(type_name, "edgelist"))
         tag = DB_EDGELIST;
 
-    else if (STR_EQUAL(typename, "mrgtree"))
+    else if (STR_EQUAL(type_name, "mrgtree"))
         tag = DB_MRGTREE;
 
-    else if (STR_EQUAL(typename, "groupelmap"))
+    else if (STR_EQUAL(type_name, "groupelmap"))
         tag = DB_GROUPELMAP;
 
-    else if (STR_EQUAL(typename, "mrgvar"))
+    else if (STR_EQUAL(type_name, "mrgvar"))
         tag = DB_MRGVAR;
 
     else
@@ -1961,8 +1945,8 @@ db_ListDir2(DBfile *_dbfile, char *args[], int nargs, int build_list,
 INTERNAL context_t *
 context_switch(DBfile *dbfile, char const *name, char const **base)
 {
-    char          *me = "context_switch";
-    char           s[256], *b;
+    char          const *me = "context_switch";
+    char          s[256], *b;
     context_t     *old = ALLOC(context_t);
 
     /*
@@ -1988,7 +1972,7 @@ context_switch(DBfile *dbfile, char const *name, char const **base)
      * is the stuff after the last `/'.  If the base name is empty
      * then we should raise an E_NOTFOUND right away.
      */
-    b = strrchr(name, '/');
+    b = (char *)strrchr(name, '/');
     if (!b || !b[1]) {
         FREE(old->name);
         FREE(old);
@@ -2055,12 +2039,7 @@ context_restore(DBfile *dbfile, context_t *old)
         return 0;
     }
 
-    if (dbfile->pub.cdid) {
-        DBSetDirID(dbfile, old->dirid);
-    }
-    else {
-        DBSetDir(dbfile, old->name);
-    }
+    DBSetDir(dbfile, old->name);
 
     FREE(old->name);
     FREE(old);
@@ -2344,6 +2323,21 @@ db_silo_stat(const char *name, db_silo_stat_t *statbuf, int opts_set_id)
 {
     int retval = db_silo_stat_one_file(name, statbuf); 
 
+    /* check for case where we're opening a buffer as a file */
+    if (opts_set_id > DB_FILE_OPTS_LAST)
+    {
+        const DBoptlist *opts = SILO_Globals.fileOptionsSets[opts_set_id-NUM_DEFAULT_FILE_OPTIONS_SETS];
+        void *p; int vfd = -1;
+        if ((p = DBGetOption(opts, DBOPT_H5_VFD)))
+            vfd = *((int*)p);
+        if (vfd == DB_H5VFD_FIC)
+        {
+            statbuf->s.st_mode = 0x0;
+            statbuf->s.st_mode |= S_IREAD;
+            return 0;
+        }
+    }
+
     if (opts_set_id == -1 ||
         opts_set_id == DB_FILE_OPTS_H5_DEFAULT_SPLIT ||
         opts_set_id > DB_FILE_OPTS_LAST)
@@ -2361,7 +2355,6 @@ db_silo_stat(const char *name, db_silo_stat_t *statbuf, int opts_set_id)
             void *p; int vfd = -1;
             const DBoptlist *opts;
 
-
             if (opts_set_id == -1)
                 opts = SILO_Globals.fileOptionsSets[i];
             else if (opts_set_id == DB_FILE_OPTS_H5_DEFAULT_SPLIT)
@@ -2373,15 +2366,16 @@ db_silo_stat(const char *name, db_silo_stat_t *statbuf, int opts_set_id)
             if (opts)
             {
                 /* ignore if options set unrelated to split vfds */
-                if (p = DBGetOption(opts, DBOPT_H5_VFD))
+                if ((p = DBGetOption(opts, DBOPT_H5_VFD)))
                     vfd = *((int*)p);
+
                 if (vfd != DB_H5VFD_SPLIT)
                     continue;
 
                 /* ok, get meta/raw filenaming extension conventions */
-                if (p = DBGetOption(opts, DBOPT_H5_META_EXTENSION))
+                if ((p = DBGetOption(opts, DBOPT_H5_META_EXTENSION)))
                     meta_ext = (char *) p;
-                if (p = DBGetOption(opts, DBOPT_H5_RAW_EXTENSION))
+                if ((p = DBGetOption(opts, DBOPT_H5_RAW_EXTENSION)))
                     raw_ext = (char *) p;
             }
 
@@ -2468,7 +2462,7 @@ db_filter_install ( DBfile *dbfile )
     len = DBGetVarLength(dbfile, "_filters");
     if (len <= 0)
         return 0;               /*no filters requested */
-    if (NULL == (var = DBGetVar(dbfile, "_filters")))
+    if (NULL == (var = (char*)DBGetVar(dbfile, "_filters")))
         return -1;
 
     /*
@@ -2647,7 +2641,7 @@ DBUninstall(DBfile *dbfile)
 }
 
 /*----------------------------------------------------------------------
- * Routine:  DBSetDataReadMask
+ * Routine:  DBSetDataReadMask2
  *
  * Purpose:  Set and return the data read mask
  *
@@ -2674,16 +2668,16 @@ DBUninstall(DBfile *dbfile)
  *
  * Modifications:
  *--------------------------------------------------------------------*/
-PUBLIC long
-DBSetDataReadMask(long mask)
+PUBLIC unsigned long long
+DBSetDataReadMask2(unsigned long long mask)
 {
-    int oldmask = SILO_Globals.dataReadMask;
+    unsigned long long oldmask = SILO_Globals.dataReadMask;
     SILO_Globals.dataReadMask = mask;
     return oldmask;
 }
 
 /*----------------------------------------------------------------------
- * Routine:  DBGetDataReadMask
+ * Routine:  DBGetDataReadMask2
  *
  * Purpose:  Return the current data read mask
  *
@@ -2695,8 +2689,8 @@ DBSetDataReadMask(long mask)
  *
  * Modifications:
  *--------------------------------------------------------------------*/
-PUBLIC long
-DBGetDataReadMask(void)
+PUBLIC unsigned long long
+DBGetDataReadMask2(void)
 {
     return SILO_Globals.dataReadMask;
 }
@@ -2804,7 +2798,7 @@ DBSetCompression(const char *s)
     }
 }
 
-PUBLIC char * 
+PUBLIC char const * 
 DBGetCompression()
 {
     return SILO_Globals.compressionParams;
@@ -2819,7 +2813,7 @@ DBFreeCompressionResources(DBfile *dbfile, const char *meshname)
 
         if (!dbfile->pub.free_z)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-        retval = ((dbfile->pub.free_z) (dbfile, (char *)meshname));
+        retval = ((dbfile->pub.free_z) (dbfile, meshname));
 
         API_RETURN(retval);
     }
@@ -2974,7 +2968,7 @@ DBGetDeprecateWarnings()
  * Description:  This routine sets the flag that controls whether
  *               checksums are computed on client data.
  *--------------------------------------------------------------------*/
-PUBLIC int* 
+PUBLIC int const * 
 DBSetUnknownDriverPriorities(const int *priorities)
 {
     int i = 0;
@@ -2990,7 +2984,7 @@ DBSetUnknownDriverPriorities(const int *priorities)
     return oldPriorities;
 }
 
-PUBLIC int*
+PUBLIC int const *
 DBGetUnknownDriverPriorities()
 {
     static int priorities[MAX_FILE_OPTIONS_SETS+DB_NFORMATS+1];
@@ -3202,6 +3196,39 @@ DBUngrabDriver(DBfile *file, const void *driver_handle)
     return DB_UNKNOWN;
 }
 
+static int 
+db_IncObjectComponentCount(DBobject *obj)
+{
+    int new_maxcomps = 0;
+    char **new_comp_names = 0;
+    char **new_pdb_names = 0;
+
+    obj->ncomponents++;
+    if (obj->ncomponents < obj->maxcomponents)
+        return 1;
+
+    new_maxcomps = obj->maxcomponents * 1.5 + 1; /* golden rule + 1 */
+    new_comp_names = REALLOC_N(obj->comp_names, char *, new_maxcomps);
+    if (!new_comp_names)
+    {
+        db_perror(0, E_NOMEM, "db_IncObjectComponentCount");
+        return 0;
+    }
+    new_pdb_names = REALLOC_N(obj->pdb_names, char *, new_maxcomps);
+    if (!new_pdb_names)
+    {
+        FREE(new_comp_names);
+        db_perror(0, E_NOMEM, "db_IncObjectComponentCount");
+        return 0;
+    }
+
+    obj->maxcomponents = new_maxcomps;
+    obj->comp_names = new_comp_names;
+    obj->pdb_names = new_pdb_names;
+
+    return 1;
+}
+
 /*----------------------------------------------------------------------
  *  Routine                                                 DBMakeObject
  *
@@ -3229,25 +3256,30 @@ DBMakeObject(const char *name, int type, int maxcomps)
 
         if (!name || !*name)
             API_ERROR("object name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("object name", E_INVALIDNAME);
-        if (maxcomps <= 0)
-            API_ERROR("maxcomps", E_BADARGS);
         if (NULL == (object = ALLOC(DBobject)))
             API_ERROR(NULL, E_NOMEM);
 
+        if (maxcomps <= 0) maxcomps = 30;
         object->name = STRDUP(name);
         object->type = STRDUP(DBGetObjtypeName(type));
         object->comp_names = ALLOC_N(char *, maxcomps);
         object->pdb_names = ALLOC_N(char *, maxcomps);
 
+        if (!object->name || !object->type ||
+            !object->comp_names || !object->pdb_names)
+        {
+            FREE(object->name);
+            FREE(object->type);
+            FREE(object->comp_names);
+            FREE(object->pdb_names);
+            API_ERROR(NULL, E_NOMEM);
+        }
+
         object->ncomponents = 0;
         object->maxcomponents = maxcomps;
 
-        if (!object->name || !object->type || !object->comp_names ||
-            !object->pdb_names)
-            API_ERROR(NULL, E_NOMEM);
-
         API_RETURN(object);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -3295,6 +3327,9 @@ DBFreeObject(DBobject *object)
             FREE(object->comp_names[i]);
             FREE(object->pdb_names[i]);
         }
+        for (i = 0; i < DB_MAX_H5_OBJ_VALS; i++) {
+            FREE(object->h5_names[i]);
+        }
 
         FREE(object->comp_names);
         FREE(object->pdb_names);
@@ -3392,7 +3427,7 @@ DBAddVarComponent(DBobject *object, const char *compname, const char *pdbname)
             API_ERROR("object pointer", E_BADARGS);
         if (!compname || !*compname)
             API_ERROR("component name", E_BADARGS);
-        if (db_VariableNameValid((char *)compname) == 0)
+        if (db_VariableNameValid(compname) == 0)
             API_ERROR("component name", E_INVALIDNAME);
         if (!pdbname || !*pdbname)
             API_ERROR("pdb name", E_BADARGS);
@@ -3408,7 +3443,9 @@ DBAddVarComponent(DBobject *object, const char *compname, const char *pdbname)
             API_ERROR(NULL, E_NOMEM);
         }
 
-        object->ncomponents++;
+        if (!db_IncObjectComponentCount(object))
+            API_ERROR(NULL, E_NOMEM);
+
     }
     API_END;
 
@@ -3453,7 +3490,7 @@ DBAddIntComponent(DBobject *object, const char *compname, int ii)
             API_ERROR("object pointer", E_BADARGS);
         if (!compname || !*compname)
             API_ERROR("component name", E_BADARGS);
-        if (db_VariableNameValid((char *)compname) == 0)
+        if (db_VariableNameValid(compname) == 0)
             API_ERROR("component name", E_INVALIDNAME);
         if (object->ncomponents >= object->maxcomponents) {
             API_ERROR("object ncomponents", E_BADARGS);
@@ -3469,7 +3506,9 @@ DBAddIntComponent(DBobject *object, const char *compname, int ii)
             API_ERROR(NULL, E_NOMEM);
         }
 
-        object->ncomponents++;
+        if (!db_IncObjectComponentCount(object))
+            API_ERROR(NULL, E_NOMEM);
+
     }
     API_END;
 
@@ -3518,7 +3557,7 @@ DBAddFltComponent(DBobject *object, const char *compname, double ff)
             API_ERROR("object pointer", E_BADARGS);
         if (!compname || !*compname)
             API_ERROR("component name", E_BADARGS);
-        if (db_VariableNameValid((char *)compname) == 0)
+        if (db_VariableNameValid(compname) == 0)
             API_ERROR("component name", E_INVALIDNAME);
         if (object->ncomponents >= object->maxcomponents) {
             API_ERROR("object ncomponents", E_BADARGS);
@@ -3533,7 +3572,8 @@ DBAddFltComponent(DBobject *object, const char *compname, double ff)
             FREE(object->comp_names[object->ncomponents]);
             API_ERROR(NULL, E_NOMEM);
         }
-        object->ncomponents++;
+        if (!db_IncObjectComponentCount(object))
+            API_ERROR(NULL, E_NOMEM);
     }
     API_END;
 
@@ -3569,7 +3609,7 @@ DBAddDblComponent(DBobject *object, const char *compname, double ff)
             API_ERROR("object pointer", E_BADARGS);
         if (!compname || !*compname)
             API_ERROR("component name", E_BADARGS);
-        if (db_VariableNameValid((char *)compname) == 0)
+        if (db_VariableNameValid(compname) == 0)
             API_ERROR("component name", E_INVALIDNAME);
         if (object->ncomponents >= object->maxcomponents) {
             API_ERROR("object ncomponents", E_BADARGS);
@@ -3584,7 +3624,8 @@ DBAddDblComponent(DBobject *object, const char *compname, double ff)
             FREE(object->comp_names[object->ncomponents]);
             API_ERROR(NULL, E_NOMEM);
         }
-        object->ncomponents++;
+        if (!db_IncObjectComponentCount(object))
+            API_ERROR(NULL, E_NOMEM);
     }
     API_END;
 
@@ -3629,7 +3670,7 @@ DBAddStrComponent(DBobject *object, const char *compname, const char *ss)
             API_ERROR("object pointer", E_BADARGS);
         if (!compname || !*compname)
             API_ERROR("component name", E_BADARGS);
-        if (db_VariableNameValid((char *)compname) == 0)
+        if (db_VariableNameValid(compname) == 0)
             API_ERROR("component name", E_INVALIDNAME);
         if (object->ncomponents >= object->maxcomponents) {
             API_ERROR("object ncomponents", E_BADARGS);
@@ -3638,7 +3679,7 @@ DBAddStrComponent(DBobject *object, const char *compname, const char *ss)
         {
             if (!SILO_Globals.allowEmptyObjects)
                 API_ERROR("string literal component", E_BADARGS);
-            sprintf(tmp, "'<s>null'", ss);
+            sprintf(tmp, "'<s>null'");
         }
         else
             sprintf(tmp, "'<s>%s'", ss);
@@ -3650,7 +3691,8 @@ DBAddStrComponent(DBobject *object, const char *compname, const char *ss)
             FREE(object->comp_names[object->ncomponents]);
             API_ERROR(NULL, E_NOMEM);
         }
-        object->ncomponents++;
+        if (!db_IncObjectComponentCount(object))
+            API_ERROR(NULL, E_NOMEM);
     }
     API_END;
 
@@ -3771,10 +3813,10 @@ DBShowErrors(int level, void(*func)(char*))
  *
  * Modifications:
  *-------------------------------------------------------------------------*/
-PUBLIC char   *
+PUBLIC char const *
 DBErrString(void)
 {
-    static char    s[32];
+    static char    s[128];
 
     if (db_errno < 0 || db_errno >= NELMTS(_db_err_list)) {
         sprintf(s, "Error %d", db_errno);
@@ -3790,37 +3832,7 @@ DBErrno(void)
     return db_errno;
 }
 
-/*-------------------------------------------------------------------------
- * Function:    DBErrFunc
- *
- * Purpose:     Return the name (as a static string) of the function
- *              that raised the last error.  This could be the function
- *              that detected the error or the top-level API function
- *              depending on the arguments to DBShowErrors().
- *
- * Return:      Success:        ptr to function name
- *
- *              Failure:        ptr to empty string
- *
- * Programmer:  robb at cloud
- *              Tue Feb 21 08:25:40 EST 1995
- *
- * Modifications:
- *   Mark C. Miller, Mon Jul 19 08:49:29 PDT 2010
- *   Changed name to DBerrFuncname as this function returns the NAME of
- *   the last Silo function that err'd. The previous name, DBErrFunc
- *   suggested it returned the pointer to the function passed in
- *   DBShowErrors. I added a new function, DBErrfunc, to return that.
- * 
- *-------------------------------------------------------------------------*/
-PUBLIC char   *
-DBErrFunc(void)
-{
-    DEPRECATE_MSG("DBErrFunc",4,8,"DBErrFuncname");
-    return db_errfunc;
-}
-
-PUBLIC char   *
+PUBLIC char const *
 DBErrFuncname(void)
 {
     return db_errfunc;
@@ -3839,6 +3851,95 @@ DBErrlvl(void)
 }
 
 /*-------------------------------------------------------------------------
+ * Function: db_parse_version_digits_from_string
+ *
+ * str: version string
+ * sep: separator character (typically '.')
+ * digits: array of digits to return
+ * ndigits: size of digits array
+ *
+ * returns 0 on successful conversion, non-zero on failure
+ *-----------------------------------------------------------------------*/
+static int
+db_parse_version_digits_from_string(char const *str, char sep, int *digits, int ndigits)
+{
+    int i, nseps, non_digits, retval = 0;
+    char *p, *ostr;
+    
+    if (!str || !*str)
+        return 1;
+
+    ostr = strdup(str);
+    p = ostr;
+
+    /* Examine string for seperator chars and non-digits */
+    nseps = 0;
+    non_digits = 0;
+    while (*p)
+    {
+        if (*p == sep)
+        {
+            *p = '\0';
+            nseps++;
+        }
+        else if (!strncmp(p, "-pre", 4))
+        {
+            *(p+0) = '\0';
+            *(p+1) = '0';
+            *(p+2) = '0';
+            *(p+3) = '0';
+            nseps++;
+            p += 3;
+        }
+        else if (*p < '0' || *p > '9')
+        {
+            non_digits = 1;
+        }
+        p++;
+    }
+    nseps++;
+
+    /* Make a second pass over string converting all the digits */
+    if (!non_digits)
+    {
+        p = ostr;
+        errno = 0;
+        for (i = 0; i < ndigits; i++)
+            digits[i] = 0;
+        for (i = 0; i < nseps && ndigits && errno == 0; i++, ndigits--)
+        {
+            digits[i] = strtol(p, 0, 10);
+            while (*p != '\0') p++;
+            p++;
+        }
+        if (errno)
+            retval = 1;
+    }
+    else
+    {
+        retval = 1;
+    }
+
+    free(ostr);
+
+    return retval;
+}
+
+static int
+db_compare_version_digits(int const *a_digits, int const *b_digits, int ndigits)
+{
+    int i;
+    for (i = 0; i < ndigits; i++)
+    {
+        if (a_digits[i] < b_digits[i])
+            return -1;
+        else if (a_digits[i] > b_digits[i])
+            return 1;
+    }
+    return 0;
+}
+
+/*-------------------------------------------------------------------------
  * Function:    DBVersion
  *
  * Purpose:     Return the version number of the library as a string.
@@ -3853,7 +3954,7 @@ DBErrlvl(void)
  *   Mark C. Miller, Tue Oct 24 12:39:31 PDT 2006
  *   Changed to use SILO_VSTRING
  *-------------------------------------------------------------------------*/
-PUBLIC char *
+PUBLIC char const *
 DBVersion(void)
 {
     static char version[256];
@@ -3862,6 +3963,23 @@ DBVersion(void)
     return version;
 }
 
+PUBLIC int
+DBVersionDigits(int *maj, int *min, int *pat, int *pre)
+{
+    int digits[4] = {0,0,0,0};
+
+    if (!db_parse_version_digits_from_string(DBVersion(), '.',
+             digits, sizeof(digits)/sizeof(digits[0])))
+    {
+        if (maj) *maj = digits[0];
+        if (min) *min = digits[1];
+        if (pat) *pat = digits[2];
+        if (pre) *pre = digits[3];
+        return 0;
+    }
+    return -1;
+}
+
 /*-------------------------------------------------------------------------
  * Function:    DBVersionGE
  *
@@ -3876,11 +3994,19 @@ DBVersion(void)
 PUBLIC int 
 DBVersionGE(int Maj, int Min, int Pat)
 {
-    if (((SILO_VERS_MAJ==Maj) && (SILO_VERS_MIN==Min) && (SILO_VERS_PAT>=Pat)) ||
-         ((SILO_VERS_MAJ==Maj) && (SILO_VERS_MIN>Min)) ||
-         (SILO_VERS_MAJ>Maj))
-        return 1;
-    return 0;
+    int a_digits[3] = {SILO_VERS_MAJ, SILO_VERS_MIN, SILO_VERS_PAT};
+    int b_digits[3] = {Maj<0?0:Maj, Min<0?0:Min, Pat<0?0:Pat};
+    return db_compare_version_digits(a_digits, b_digits, 3) >= 0;
+}
+
+PUBLIC int
+DBVersionGEFileVersion(const DBfile *dbfile)
+{
+    int a_digits[3];
+    int b_digits[3] = {4, 5, 0}; /* earliest version we have version info in file */
+    DBVersionDigits(&a_digits[0], &a_digits[1], &a_digits[2], 0);
+    DBFileVersionDigits(dbfile, &b_digits[0], &b_digits[1], &b_digits[2], 0);
+    return db_compare_version_digits(a_digits, b_digits, 3) >= 0;
 }
 
 /*-------------------------------------------------------------------------
@@ -3893,7 +4019,7 @@ DBVersionGE(int Maj, int Min, int Pat)
  *
  * Programmer:  Mark C. Miller, Mon Jan 12 20:59:30 PST 2009
  *-------------------------------------------------------------------------*/
-PUBLIC char *
+PUBLIC char const *
 DBFileVersion(const DBfile *dbfile)
 {
     static char version[256];
@@ -3904,6 +4030,22 @@ DBFileVersion(const DBfile *dbfile)
     return version;
 }
 
+PUBLIC int
+DBFileVersionDigits(const DBfile *dbfile, int *maj, int *min, int *pat, int *pre)
+{
+    int digits[4] = {0,0,0,0};
+    if (!db_parse_version_digits_from_string(DBFileVersion(dbfile), '.',
+             digits, sizeof(digits)/sizeof(digits[0])))
+    {
+        if (maj) *maj = digits[0];
+        if (min) *min = digits[1];
+        if (pat) *pat = digits[2];
+        if (pre) *pre = digits[3];
+        return 0;
+    }
+    return -1;
+}
+
 /*-------------------------------------------------------------------------
  * Function:    DBFileVersionGE
  *
@@ -3921,7 +4063,9 @@ PUBLIC int
 DBFileVersionGE(const DBfile *dbfile, int Maj, int Min, int Pat)
 {
     int retval = -1;
-    int fileMaj = -1, fileMin = -1, filePat = -1;
+    int unknown = 0;
+    int a_digits[3];
+    int b_digits[3] = {Maj<0?0:Maj, Min<0?0:Min, Pat<0?0:Pat};
     char *version = STRDUP(DBFileVersion(dbfile));
 
     if (strncmp(version, "unknown", 7) == 0)
@@ -3930,64 +4074,31 @@ DBFileVersionGE(const DBfile *dbfile, int Maj, int Min, int Pat)
            in version 4.5.1. So, if it is 'unknown', we can return something
            useful ONLY if the version we're comparing against is 4.5.1 or
            greater. */
-        if ((Maj==4 && Min==5 && Pat>=1) ||
-            (Maj==4 && Min>5) ||
-            (Maj>4))
-            retval = 0;
+        a_digits[0] = 4;
+        a_digits[1] = 5;
+        a_digits[2] = 0;
+        unknown = 1;
     }
     else
     {
-        int val;
-        char *token;
-
-        errno = 0;
-        token = strtok(version, ".");
-        if (token)
-            val = strtol(token, 0, 10);
-        if (token != 0 && val != 0 && errno == 0)
-        {
-            fileMaj = val;
-            token = strtok(0, ".");
-            if (token)
-                val = strtol(token, 0, 10);
-            if (token != 0 && val != 0 && errno == 0)
-            {
-                fileMin = val;
-                token = strtok(0, ".");
-                if (token)
-                    val = strtol(token, 0, 10);
-                if (token != 0 && val != 0 && errno == 0)
-                    filePat = val;
-            }
-        }
-
-        if (fileMaj != -1 && fileMin != -1 && filePat != -1)
-        {
-            if ((fileMaj==Maj && fileMin==Min && filePat>=Pat) ||
-                (fileMaj==Maj && fileMin>Min) ||
-                (fileMaj>Maj))
-                retval = 1;
-            else
-                retval = 0;
-        }
-        else if (fileMaj != -1 && fileMin != -1)
-        {
-            if ((fileMaj==Maj && fileMin>=Min) ||
-                (fileMaj>Maj))
-                retval = 1;
-            else
-                retval = 0;
-        }
-        else if (fileMaj != -1)
+        if (db_parse_version_digits_from_string(version, '.',
+                 a_digits, sizeof(a_digits)/sizeof(a_digits[0])))
         {
-            if (fileMaj>=Maj)
-                retval = 1;
-            else
-                retval = 0;
+            free(version);
+            return -1;
         }
     }
 
     free(version);
+
+    retval = db_compare_version_digits(a_digits, b_digits, 3) >= 0; 
+
+    if (unknown)
+    {
+        if (retval)
+            retval = -1;
+    }
+
     return retval;
 }
 
@@ -4183,7 +4294,7 @@ DBOpenReal(const char *name, int type, int mode)
 
         if ((fileid = db_get_fileid(DB_ISOPEN)) < 0)
             API_ERROR((char *)name, E_MAXOPEN);
-        if (NULL == (dbfile = (DBOpenCB[type]) ((char *)name, mode, opts_set_id)))
+        if (NULL == (dbfile = (DBOpenCB[type]) (name, mode, opts_set_id)))
         {
             _db_fstatus[fileid] = 0;
             API_RETURN(NULL);
@@ -4202,7 +4313,7 @@ DBOpenReal(const char *name, int type, int mode)
         }
         db_filter_install(dbfile);
         if (DBInqVarExists(dbfile, SILO_VSTRING_NAME))
-            dbfile->pub.file_lib_version = DBGetVar(dbfile, SILO_VSTRING_NAME);
+            dbfile->pub.file_lib_version = (char*)DBGetVar(dbfile, SILO_VSTRING_NAME);
 
         API_RETURN(dbfile);
     }
@@ -4319,8 +4430,8 @@ DBCreateReal(const char *name, int mode, int target, const char *info, int type)
 
         if ((fileid = db_get_fileid(DB_ISOPEN)) < 0)
             API_ERROR((char *)name, E_MAXOPEN);
-        dbfile = ((DBCreateCB[type]) ((char *)name, mode, target, opts_set_id,
-                                      (char *)info));
+        dbfile = ((DBCreateCB[type]) (name, mode, target, opts_set_id,
+                                      info));
         if (!dbfile)
         {
             _db_fstatus[fileid] = 0;
@@ -4580,78 +4691,6 @@ DBInqFileReal(const char *filename)
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
 }
 
-/*-------------------------------------------------------------------------
- * Function:    DBPause
- *
- * Purpose:     Pause the specified simulation.
- *
- * Return:      Success:        0 if the driver succeeded.
- *
- *              Failure:        -1 if the driver returned failure.
- *
- * Programmer:  brugger at viper
- *              Wed Jan 25 09:21:18 PST 1995
- *
- * Modifications:
- *    Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *    I replaced API_END with API_END_NOPOP.
- *
- *    Eric Brugger, Fri Mar  3 17:37:25 PST 1995
- *    I modified the error return value to be -1, instead of NULL.
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBPause(DBfile *file)
-{
-    int retval;
-
-    API_DEPRECATE("DBPause", int, -1, 4,6,"") {
-        if (!file)
-            API_ERROR(NULL, E_NOFILE);
-        if (NULL == file->pub.pause)
-            API_ERROR(file->pub.name, E_NOTIMP);
-
-        retval = (file->pub.pause) (file);
-        API_RETURN(retval);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
- * Function:    DBContinue
- *
- * Purpose:     Continue the specified simulation.
- *
- * Return:      Success:        0 if the driver succeeded.
- *
- *              Failure:        -1 if the driver returned failure.
- *
- * Programmer:  brugger at viper
- *              Wed Jan 25 09:23:22 PST 1995
- *
- * Modifications:
- *    Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *    I replaced API_END with API_END_NOPOP.
- *
- *    Eric Brugger, Fri Mar  3 17:37:25 PST 1995
- *    I modified the error return value to be -1, instead of NULL.
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBContinue(DBfile *file)
-{
-    int retval;
-
-    API_DEPRECATE("DBContinue", int, -1, 4,6,"") {
-        if (!file)
-            API_ERROR(NULL, E_NOFILE);
-        if (NULL == file->pub.cont)
-            API_ERROR(file->pub.name, E_NOTIMP);
-
-        retval = (file->pub.cont) (file);
-        API_RETURN(retval);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
 /*----------------------------------------------------------------------
  *  Routine                                               DBInqVarExists
  *
@@ -4683,7 +4722,6 @@ DBInqVarExists(DBfile *dbfile, const char *varname)
             API_ERROR("variable name", E_BADARGS);
         if (dbfile->pub.exist == NULL)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-
         retval = (dbfile->pub.exist) (dbfile, varname);
         API_RETURN(retval);
     }
@@ -4777,12 +4815,16 @@ DBMakeOptlist(int maxopts)
     API_BEGIN("DBMakeOptlist", DBoptlist *, NULL) {
         if (maxopts <= 0)
             API_ERROR("maxopts", E_BADARGS);
-        if (NULL == (optlist = ALLOC(DBoptlist)))
-            API_ERROR(NULL, E_NOMEM);
-        if (NULL == (optlist->options = ALLOC_N(int, maxopts))) {
-            API_ERROR(NULL, E_NOMEM);
-        }
-        if (NULL == (optlist->values = ALLOC_N(void *, maxopts))) {
+        optlist = ALLOC(DBoptlist);
+        if (!optlist) API_ERROR(NULL, E_NOMEM);
+        optlist->options = ALLOC_N(int, maxopts);
+        optlist->values = ALLOC_N(void *, maxopts);
+
+        if (!optlist->options || !optlist->values)
+        {
+            FREE(optlist->values);
+            FREE(optlist->options);
+            FREE(optlist);
             API_ERROR(NULL, E_NOMEM);
         }
 
@@ -4911,6 +4953,25 @@ DBAddOption(DBoptlist *optlist, int option, void *value)
         optlist->options[optlist->numopts] = option;
         optlist->values[optlist->numopts] = value;
         optlist->numopts++;
+
+        if (optlist->numopts >= optlist->maxopts)
+        {
+            int new_maxopts = optlist->maxopts * 1.5 + 1; /* golden rule + 1 */
+            int *new_options = REALLOC_N(optlist->options, int, new_maxopts);
+            void **new_values = REALLOC_N(optlist->values, void*, new_maxopts);
+
+            if (!new_options || !new_values)
+            {
+                FREE(new_options);
+                FREE(new_values);
+                API_ERROR(0, E_NOMEM);
+            }
+
+            optlist->maxopts = new_maxopts;
+            optlist->options = new_options;
+            optlist->values  = new_values;
+        }
+
     }
     API_END;
 
@@ -5117,50 +5178,104 @@ DBNewToc(DBfile *dbfile)
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
 }
 
-/*----------------------------------------------------------------------
- *  Routine                                                     DBGetAtt
- *
- *  Purpose
- *
- *      Allocate space for, and read, the given attribute of the given
- *      variable.
- *
- *  Modified
- *    Robb Matzke, Mon Nov 14 14:18:56 EST 1994
- *    Added error mechanism.
- *
- *    Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *    I replaced API_END with API_END_NOPOP.
- *
- *    Sean Ahern, Tue Sep 28 10:48:06 PDT 1999
- *    Added a check for variable name validity.
- *
- *    Sean Ahern, Tue Sep 28 11:00:13 PDT 1999
- *    Made the error messages a little better.
- *
- *    Mark C. Miller, Tue Sep  6 10:57:55 PDT 2005
- *    Deprecated this function
- *--------------------------------------------------------------------*/
-PUBLIC void   *
-DBGetAtt(DBfile *dbfile, const char *varname, const char *attname)
-{
-    void *retval = NULL;
+/*
+This logic is necessary to support callers accessing standard (e.g. non-DB_USERDEF)
+objects via the generic interface to ensure logic for specially handled component
+values is consistent with the standard object's DBGetXXX methods.
+To ensure a zero for the component in the file means either not-present or
+not-set, certain components, especially those for which a zero value is a valid
+value for the data producer to use, special handling is required and that logic
+is sprinkled about in the DBPutXXX and DBGetXXX methods of the drivers and so
+to is it required here. Its a nasty maintenance issue.
+*/
 
-    API_DEPRECATE2("DBGetAtt", void *, NULL, varname, 4,6,"") {
-        if (!dbfile)
-            API_ERROR(NULL, E_NOFILE);
-        if (!varname || !*varname)
-            API_ERROR("variable name", E_BADARGS);
-        if (!attname || !*attname)
-            API_ERROR("attribute name", E_BADARGS);
-        if (!dbfile->pub.g_attr)
-            API_ERROR(dbfile->pub.name, E_NOTIMP);
+static int
+db_IsComponentNameStandardWithSpecialHandling(char const *compname)
+{
+    if (!strcmp(compname, "missing_value")) return 1;
+    if (!strcmp(compname, "topo_dim")) return 1;
+    if (!strcmp(compname, "repr_block_idx")) return 1;
+    return 0;
+}
 
-        retval = (dbfile->pub.g_attr) (dbfile, (char *)varname,
-                                       (char *)attname);
-        API_RETURN(retval);
+/* For use in the DBGetComponent call */
+static void
+db_AdjustSpeciallyHandledStandardObjectComponentValue(
+    void *val_ptr, int obj_type, char const *comp_name)
+{
+    if (!val_ptr || !comp_name) return;
+
+    if (!strcmp(comp_name, "missing_value") &&
+        (obj_type == DB_UCDVAR || obj_type == DB_QUADVAR || obj_type == DB_CURVE ||
+         obj_type == DB_POINTVAR || obj_type == DB_MULTIVAR))
+    {
+        double val_for_mem, val_from_file = *((double*)val_ptr);
+        db_SetMissingValueForGet(val_for_mem, val_from_file);
+        *((double*)val_ptr) = val_for_mem;
+    }
+    else if (!strcmp(comp_name, "repr_block_idx") &&
+        (obj_type == DB_MULTIMESH || obj_type == DB_MULTIVAR ||
+         obj_type == DB_MULTIMAT || obj_type == DB_MULTIMATSPECIES))
+    {
+        int val_for_mem, val_from_file = *((int*)val_ptr);
+        val_for_mem = val_from_file - 1;
+        *((int*)val_ptr) = val_for_mem;
+    }
+    else if (!strcmp(comp_name, "topo_dim") &&
+        (obj_type == DB_MULTIMESH || obj_type == DB_UCDMESH))
+    {
+        int val_for_mem, val_from_file = *((int*)val_ptr);
+        val_for_mem = val_from_file - 1;
+        *((int*)val_ptr) = val_for_mem;
+    }
+}
+
+/* For use in the DBGetObject call */
+static void
+db_AdjustSpeciallyHandledStandardObjectComponentValues(DBobject *obj)
+{
+    int i, obj_type;
+
+    if (!obj) return;
+
+    obj_type = DBGetObjtypeTag(obj->type);
+    if (obj_type == DB_USERDEF) return;
+
+    for (i = 0; i < obj->ncomponents; i++)
+    {
+        char tmp[256];
+
+        if (!strcmp(obj->comp_names[i], "missing_value") &&
+            (obj_type == DB_UCDVAR || obj_type == DB_QUADVAR || obj_type == DB_CURVE ||
+             obj_type == DB_POINTVAR || obj_type == DB_MULTIVAR))
+        {
+            double val_for_mem, val_from_file = strtod(obj->pdb_names[i]+4,0);
+            db_SetMissingValueForGet(val_for_mem, val_from_file);
+            sprintf(tmp, "'<d>%.30g'", val_for_mem);
+        }
+        else if (!strcmp(obj->comp_names[i], "repr_block_idx") &&
+            (obj_type == DB_MULTIMESH || obj_type == DB_MULTIVAR ||
+             obj_type == DB_MULTIMAT || obj_type == DB_MULTIMATSPECIES))
+        {
+            int val_for_mem, val_from_file = (int) strtol(obj->pdb_names[i]+4,0,10);
+            val_for_mem = val_from_file - 1;
+            sprintf(tmp, "'<i>%d'", val_for_mem);
+        }
+        else if (!strcmp(obj->comp_names[i], "topo_dim") &&
+            (obj_type == DB_MULTIMESH || obj_type == DB_UCDMESH))
+        {
+            int val_for_mem, val_from_file = (int) strtol(obj->pdb_names[i]+4,0,10);
+            val_for_mem = val_from_file - 1;
+            sprintf(tmp, "'<i>%d'", val_for_mem);
+        }
+        else
+        {
+            continue;
+        }
+
+        FREE(obj->pdb_names[i]);
+        obj->pdb_names[i] = STRDUP(tmp);
     }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
 }
 
 /*----------------------------------------------------------------------
@@ -5226,6 +5341,11 @@ DBGetComponent(DBfile *dbfile, char const *objname, char const *compname)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
         retval = (dbfile->pub.g_comp) (dbfile, objname, compname);
+
+        if (db_IsComponentNameStandardWithSpecialHandling(compname))
+            db_AdjustSpeciallyHandledStandardObjectComponentValue(retval,
+                DBInqVarType(dbfile, objname), compname);
+
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -5369,7 +5489,7 @@ DBSetDir(DBfile *dbfile, const char *path)
         if (!dbfile->pub.cd)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.cd) (dbfile, (char *)path);
+        retval = (dbfile->pub.cd) (dbfile, path);
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -5377,103 +5497,6 @@ DBSetDir(DBfile *dbfile, const char *path)
 }
 
 /*-------------------------------------------------------------------------
- * Function:    DBSetDirID
- *
- * Purpose:     Same as DBSetDir() except by ID instead of name.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  robb at cloud
- *              Wed Nov  9 13:15:19 EST 1994
- *
- * Modifications:
- *    Robb Matzke, Mon Nov 21 21:33:11 EST 1994
- *    Added error mechanism.
- *
- *    Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *    I replaced API_END with API_END_NOPOP.
- *
- *    Robb Matzke, 2000-05-23
- *    The old table of contents is discarded if the directory changes.
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBSetDirID(DBfile *dbfile, int dirid)
-{
-    int retval;
-
-    API_BEGIN("DBSetDirID", int, -1) {
-        if (!dbfile)
-            API_ERROR(NULL, E_NOFILE);
-        if (SILO_Globals.enableGrabDriver == TRUE)
-            API_ERROR("DBSetDirID", E_GRABBED) ; 
-        if (!dbfile->pub.toc) {
-            API_ERROR("missing table of contents", E_BADARGS);
-        }
-        if (!dbfile->pub.cdid)
-            API_ERROR(dbfile->pub.name, E_NOTIMP);
-
-        retval = (dbfile->pub.cdid) (dbfile, dirid);
-        db_FreeToc(dbfile);
-        API_RETURN(retval);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
- * Function:    DBListDir
- *
- * Purpose:     Lists the contents of the diven directories based
- *              on the listing options passed in through argv[].
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  matzke at viper
- *              Tue Nov  8 11:36:05 PST 1994
- *
- * Modifications:
- *    Robb Matzke, Mon Nov 21 21:35:29 EST 1994
- *    Added error mechanism.
- *
- *    Robb Matzke, Fri Dec 9 17:11:50 EST 1994
- *    This no longer invokes a callback.  There is nothing special to
- *    do here that depends on the device driver.  All we do is format
- *    the existing table of contents in some nice way.
- *
- *    Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *    I replaced API_END with API_END_NOPOP.
- *
- *    Mark C. Miller, Tue Sep  6 10:57:55 PDT 2005
- *    Deprecated this function
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBListDir(DBfile *dbfile, char *argv[], int argc)
-{
-    int retval;
-
-    API_DEPRECATE("DBListDir", int, -1, 4,6,"DBGetToc()") {
-        if (!dbfile)
-            API_ERROR(NULL, E_NOFILE);
-        if (SILO_Globals.enableGrabDriver == TRUE)
-            API_ERROR("DBListDir", E_GRABBED) ; 
-        DBNewToc(dbfile);
-        if (!dbfile->pub.toc)
-            API_ERROR("no table of contents", E_INTERNAL);
-        if (argc < 0)
-            API_ERROR("nargs", E_BADARGS);
-        if (!argv && argc)
-            API_ERROR("args", E_BADARGS);
-
-        retval = db_ListDir2(dbfile, argv, argc, FALSE, NULL, NULL);
-        API_RETURN(retval);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
  * Function:    DBFilters
  *
  * Purpose:     List the names of filters installed for the specified
@@ -5552,12 +5575,12 @@ DBMkDir(DBfile *dbfile, const char *name)
             API_ERROR("DBMkDir", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("directory name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("directory name", E_INVALIDNAME);
         if (!dbfile->pub.mkdir)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.mkdir) (dbfile, (char *)name);
+        retval = (dbfile->pub.mkdir) (dbfile, name);
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -5596,7 +5619,7 @@ DBCpDir(DBfile *dbfile, const char *srcDir,
             API_ERROR("source directory name", E_BADARGS);
         if (!dstDir || !*dstDir)
             API_ERROR("destination directory name", E_BADARGS);
-        if (db_VariableNameValid((char *)dstDir) == 0)
+        if (db_VariableNameValid(dstDir) == 0)
             API_ERROR("destination directory name", E_INVALIDNAME);
         if (!dbfile->pub.cpdir)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
@@ -5750,6 +5773,7 @@ DBGetObject (DBfile *dbfile, char const *objname)
         if (!dbfile->pub.g_obj)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
         retval = (dbfile->pub.g_obj) (dbfile, (char const *)objname);
+        db_AdjustSpeciallyHandledStandardObjectComponentValues(retval);
         API_RETURN(retval);
     }
     API_END_NOPOP;                     /* BEWARE:  If API_RETURN above is
@@ -5803,23 +5827,28 @@ DBWriteComponent(DBfile *dbfile, DBobject *obj, char const *comp_name,
         if (!dbfile)
             API_ERROR(NULL, E_NOFILE);
         if (SILO_Globals.enableGrabDriver == TRUE)
-            API_ERROR("DBWriteComponent", E_GRABBED) ; 
+            API_ERROR("DBWriteComponent", E_GRABBED) ;
         if (!obj)
             API_ERROR("object pointer", E_BADARGS);
         if (SILO_Globals.allowEmptyObjects)
         {
-            if (!var) API_RETURN(0);
+            if (nd<=0) API_RETURN(0);
             if (!count) API_RETURN(0);
+            if (!var) API_RETURN(0);
             for(nvals=1,i=0;i<nd;i++)
                 nvals *= count[i];
-            if (!nvals) API_RETURN(0);
+            if (nvals<=0) API_RETURN(0);
         }
         if (!comp_name || !*comp_name)
             API_ERROR("component name", E_BADARGS);
         if (db_VariableNameValid((char *)comp_name) == 0)
             API_ERROR("component name", E_INVALIDNAME);
+#if 0
+        /* We don't know what name to pass to DBInqVarExists here because it
+           is the driver that knows how to construct component names */
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, obj->name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
+#endif
         if (!prefix || !*prefix)
             API_ERROR("prefix", E_BADARGS);
         if (db_VariableNameValid((char *)prefix) == 0)
@@ -5839,12 +5868,13 @@ DBWriteComponent(DBfile *dbfile, DBobject *obj, char const *comp_name,
         if (nvals == 0) {
             API_ERROR("Zero-length write attempted", E_BADARGS);
         }
-        if (obj->ncomponents >= obj->maxcomponents) {
-            API_ERROR("ncomponents", E_BADARGS);
-        }
         if (!dbfile->pub.w_comp)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
+        /* Note that the work to add the variable component to the object is
+           handled down in the drivers due to the fact that the drivers may
+           use different rules to construct the object component names */
+
         retval = (dbfile->pub.w_comp) (dbfile, obj, comp_name, prefix,
                                        datatype, var, nd, count);
         db_FreeToc(dbfile);
@@ -5899,7 +5929,7 @@ DBWrite(DBfile *dbfile, char const *vname, void const *var, int const *dims,
         if (!vname || !*vname)
             API_ERROR("variable name", E_BADARGS);
         if (strncmp("/.silo/#", vname, 8) != 0 &&
-            db_VariableNameValid((char *)vname) == 0)
+            db_VariableNameValid(vname) == 0)
             API_ERROR("variable name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, vname))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -5954,8 +5984,8 @@ DBWrite(DBfile *dbfile, char const *vname, void const *var, int const *dims,
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBWriteSlice (DBfile *dbfile, const char *vname, void *values, int dtype,
-              int offset[], int length[], int stride[], int dims[],
+DBWriteSlice (DBfile *dbfile, const char *vname, void const *values, int dtype,
+              int const *offset, int const *length, int const *stride, int const *dims,
               int ndims)
 {
     int retval;
@@ -5969,7 +5999,7 @@ DBWriteSlice (DBfile *dbfile, const char *vname, void *values, int dtype,
             API_ERROR("DBWriteSlice", E_GRABBED) ; 
         if (!vname || !*vname)
             API_ERROR("variable name", E_BADARGS);
-        if (db_VariableNameValid((char *)vname) == 0)
+        if (db_VariableNameValid(vname) == 0)
             API_ERROR("variable name", E_INVALIDNAME);
         if (!values)
             API_ERROR("values", E_BADARGS);
@@ -5992,7 +6022,7 @@ DBWriteSlice (DBfile *dbfile, const char *vname, void *values, int dtype,
         if (!dbfile->pub.writeslice)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.writeslice) (dbfile, (char *)vname, values,
+        retval = (dbfile->pub.writeslice) (dbfile, vname, values,
                                            dtype, offset, length, stride,
                                            dims, ndims);
         db_FreeToc(dbfile);
@@ -6002,60 +6032,6 @@ DBWriteSlice (DBfile *dbfile, const char *vname, void *values, int dtype,
 }
 
 /*-------------------------------------------------------------------------
- * Function:    DBReadAtt
- *
- * Purpose:     Reads the given attribute value into the provided space.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  robb at cloud
- *              Wed Nov  9 12:54:24 EST 1994
- *
- * Modifications:
- *    Robb Matzke, Mon Nov 21 21:44:07 EST 1994
- *    Added error mechanism.
- *
- *    Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *    I replaced API_END with API_END_NOPOP.
- *
- *    Sean Ahern, Tue Sep 28 10:48:06 PDT 1999
- *    Added a check for variable name validity.
- *
- *    Sean Ahern, Tue Sep 28 11:00:13 PDT 1999
- *    Made the error messages a little better.
- *
- *    Mark C. Miller, Tue Sep  6 10:57:55 PDT 2005
- *    Deprectated this function
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBReadAtt(DBfile *dbfile, const char *vname, const char *aname, void *results)
-{
-    int retval;
-
-    API_DEPRECATE2("DBReadAtt", int, -1, vname, 4,6,"") {
-        if (!dbfile)
-            API_ERROR(NULL, E_NOFILE);
-        if (SILO_Globals.enableGrabDriver == TRUE)
-            API_ERROR("DBReadAtt", E_GRABBED) ; 
-        if (!vname || !*vname)
-            API_ERROR("variable name", E_BADARGS);
-        if (!aname || !*aname)
-            API_ERROR("attribute name", E_BADARGS);
-        if (!results)
-            API_ERROR("results pointer", E_BADARGS);
-        if (!dbfile->pub.r_att)
-            API_ERROR(dbfile->pub.name, E_NOTIMP);
-
-        retval = (dbfile->pub.r_att) (dbfile, (char *)vname, (char *)aname,
-                                      results);
-        API_RETURN(retval);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
  * Function:    DBGetCompoundarray
  *
  * Purpose:     Read a compound array object from the file.
@@ -6075,7 +6051,7 @@ DBReadAtt(DBfile *dbfile, const char *vname, const char *aname, void *results)
  *    Added a check for variable name validity.
  *-------------------------------------------------------------------------*/
 PUBLIC DBcompoundarray *
-DBGetCompoundarray(DBfile *dbfile, const char *name)
+DBGetCompoundarray(DBfile *dbfile, char const *name)
 {
     DBcompoundarray *retval = NULL;
 
@@ -6089,7 +6065,7 @@ DBGetCompoundarray(DBfile *dbfile, const char *name)
         if (NULL == dbfile->pub.g_ca)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_ca) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_ca) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6113,7 +6089,7 @@ DBGetCompoundarray(DBfile *dbfile, const char *name)
  *    Added a check for variable name validity.
  *-------------------------------------------------------------------------*/
 PUBLIC DBcurve *
-DBGetCurve (DBfile *dbfile, const char *name)
+DBGetCurve (DBfile *dbfile, char const *name)
 {
     DBcurve *retval = NULL;
 
@@ -6128,7 +6104,7 @@ DBGetCurve (DBfile *dbfile, const char *name)
         if (NULL == dbfile->pub.g_cu)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_cu) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_cu) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP;  /* BEWARE: If API_RETURN above is removed use API_END */
@@ -6163,7 +6139,7 @@ DBGetDefvars (DBfile *dbfile, const char *name)
         if (NULL == dbfile->pub.g_defv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_defv) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_defv) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP;  /* BEWARE: If API_RETURN above is removed use API_END */
@@ -6204,7 +6180,7 @@ DBGetMaterial(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_ma)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_ma) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_ma) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6260,7 +6236,7 @@ DBGetMatspecies(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_ms)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_ms) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_ms) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6305,7 +6281,7 @@ DBGetMultimesh(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_mm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mm) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_mm) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6342,7 +6318,7 @@ DBGetMultimeshadj(DBfile *dbfile, const char *name, int nmesh,
         if (!dbfile->pub.g_mmadj)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mmadj) (dbfile, (char *)name, nmesh,
+        retval = (dbfile->pub.g_mmadj) (dbfile, name, nmesh,
                                         block_map);
         API_RETURN(retval);
     }
@@ -6389,7 +6365,7 @@ DBGetMultivar(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_mv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mv) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_mv) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6431,7 +6407,7 @@ DBGetMultimat(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_mt)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mt) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_mt) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6473,7 +6449,7 @@ DBGetMultimatspecies(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_mms)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mms) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_mms) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6517,7 +6493,7 @@ DBGetPointmesh(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_pm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_pm) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_pm) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6561,7 +6537,7 @@ DBGetPointvar(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_pv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_pv) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_pv) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -6609,7 +6585,7 @@ DBGetQuadmesh(DBfile *dbfile, const char *name)
             API_ERROR("quadmesh name", E_BADARGS);
         if (!dbfile->pub.g_qm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-        qm = (dbfile->pub.g_qm) (dbfile, (char *)name);
+        qm = (dbfile->pub.g_qm) (dbfile, name);
         if (!qm)
         {
             API_RETURN(NULL);
@@ -6691,76 +6667,13 @@ DBGetQuadvar(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_qv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_qv) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_qv) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
 }
 
 /*-------------------------------------------------------------------------
- * Function:    DBGetQuadvar1
- *
- * Purpose:     Read a scalar quadmesh variable (inverse of DBPutQuadVar1).
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  mcabee at viper
- *              Sun Jan 7, 1995
- *
- * Modifications:
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBGetQuadvar1 (DBfile *dbfile, const char *varname, DB_DTPTR1 var, int *dims,
-               int *ndims, DB_DTPTR1 mixvar, int *mixlen, int *datatype,
-               int *centering)
-{
-    char           tmpstr[64];
-    int            nbytes, i;
-    DBquadvar     *qv = NULL;
-
-    API_DEPRECATE2 ("DBGetQuadvar1", int, -1, varname, 4,6,"DBGetQuadvar()") {
-        if (SILO_Globals.enableGrabDriver == TRUE)
-            API_ERROR("DBGetQuadvar1", E_GRABBED) ; 
-        if (NULL == (qv = DBGetQuadvar (dbfile, varname)))
-            API_ERROR ("DBGetQuadvar1", E_CALLFAIL);
-
-        /*
-         * Copy the quad var into the supplied space. Assign
-         * the misc. attributes.
-         */
-        nbytes = qv->nels * db_GetMachDataSize (qv->datatype);
-        memcpy (var, qv->vals[0], nbytes);
-
-        *ndims     =  qv->ndims;
-        *centering =  (qv->align[0] == 0.0) ? DB_NODECENT : DB_ZONECENT;
-        *datatype  =  qv->datatype;
-        *mixlen    =  qv->mixlen;
-
-        for (i = 0; i < qv->ndims; i++)
-            dims[i] = qv->dims[i];
-
-        /*
-         * If there was mixed data, copy that too.
-         * Assume name of mixed component is 'varname_mix'.
-         */
-        if ((int *)mixvar != NULL) {
-            strcpy (tmpstr, varname);
-            strcat (tmpstr, "_mix");
-
-            *mixlen = DBGetVarLength (dbfile, tmpstr);
-            DBReadVar (dbfile, tmpstr, mixvar);
-        }
-
-        DBFreeQuadvar (qv);
-
-        API_RETURN (0);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
  * Function:    DBAnnotateUcdmesh
  *
  * Purpose:     Walks a DBucdmesh data structure and adds shapetype
@@ -6889,7 +6802,7 @@ DBGetUcdmesh(DBfile *dbfile, const char *name)
             API_ERROR("UCDmesh name", E_BADARGS);
         if (!dbfile->pub.g_um)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-        um = ((dbfile->pub.g_um) (dbfile, (char *)name));
+        um = ((dbfile->pub.g_um) (dbfile, name));
         if (!um)
         {
             API_RETURN(NULL);
@@ -6969,7 +6882,7 @@ DBGetUcdvar(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_uv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_uv) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_uv) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7012,7 +6925,7 @@ DBGetFacelist(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_fl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_fl) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_fl) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7055,7 +6968,7 @@ DBGetZonelist(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_zl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_zl) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_zl) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7089,7 +7002,7 @@ DBGetPHZonelist(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_phzl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_phzl) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_phzl) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7130,7 +7043,7 @@ DBGetVar(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_var)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_var) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_var) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7176,49 +7089,7 @@ DBReadVar(DBfile *dbfile, const char *name, void *result)
         if (!dbfile->pub.r_var)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.r_var) (dbfile, (char *)name, result);
-        API_RETURN(retval);
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
- * Function:    DBReadVar1
- *
- * Purpose:     Reads one element form a variable into te provided space.
- *
- * Return:      Success:        0
- *
- *              Failure:        -1
- *
- * Programmer:  robb at cloud
- *              Wed Nov  9 13:03:16 EST 1994
- *
- * Modifications:
- *    Sean Ahern, Tue Sep 28 10:48:06 PDT 1999
- *    Added a check for variable name validity.
- *
- *    Sean Ahern, Tue Sep 28 11:00:13 PDT 1999
- *    Made the error messages a little better.
- *-------------------------------------------------------------------------*/
-PUBLIC int
-DBReadVar1(DBfile *dbfile, const char *vname, int offset, void *result)
-{
-    int retval;
-
-    API_BEGIN2("DBReadVar1", int, -1, vname) {
-        if (!dbfile)
-            API_ERROR(NULL, E_NOFILE);
-        if (SILO_Globals.enableGrabDriver == TRUE)
-            API_ERROR("DBReadVar1", E_GRABBED) ; 
-        if (!vname || !*vname)
-            API_ERROR("variable name", E_BADARGS);
-        if (!result)
-            API_ERROR("result pointer", E_BADARGS);
-        if (!dbfile->pub.r_var1)
-            API_ERROR(dbfile->pub.name, E_NOTIMP);
-
-        retval = (dbfile->pub.r_var1) (dbfile, (char *)vname, offset, result);
+        retval = (dbfile->pub.r_var) (dbfile, name, result);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7245,8 +7116,8 @@ DBReadVar1(DBfile *dbfile, const char *vname, int offset, void *result)
  *    Made the error messages a little better.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBReadVarSlice(DBfile *dbfile, const char *name, int *offset, int *length,
-               int *stride, int ndims, void *result)
+DBReadVarSlice(DBfile *dbfile, const char *name, int const *offset, int const *length,
+               int const *stride, int ndims, void *result)
 {
     int retval;
 
@@ -7270,7 +7141,7 @@ DBReadVarSlice(DBfile *dbfile, const char *name, int *offset, int *length,
         if (!dbfile->pub.r_varslice)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.r_varslice) (dbfile, (char *)name, offset,
+        retval = (dbfile->pub.r_varslice) (dbfile, name, offset,
                                            length, stride, ndims, result);
         API_RETURN(retval);
     }
@@ -7311,7 +7182,7 @@ DBGetVarByteLength(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_varbl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_varbl) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_varbl) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7351,7 +7222,7 @@ DBGetVarLength(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_varlen)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_varlen) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_varlen) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7398,7 +7269,7 @@ DBGetVarDims(DBfile *dbfile, const char *name, int maxdims, int *dims)
         if (!dbfile->pub.g_vardims)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_vardims) (dbfile, (char *)name, maxdims, dims);
+        retval = (dbfile->pub.g_vardims) (dbfile, name, maxdims, dims);
         API_RETURN(retval);
     }
     API_END_NOPOP;                     /* BEWARE: If API_RETURN above is
@@ -7439,7 +7310,7 @@ DBGetVarType(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_vartype)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_vartype) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_vartype) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7469,7 +7340,7 @@ DBGetVarType(DBfile *dbfile, const char *name)
  *    Made the error messages a little better.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBInqMeshname(DBfile *dbfile, const char *vname, const char *mname)
+DBInqMeshname(DBfile *dbfile, const char *vname, char *mname)
 {
     int retval;
 
@@ -7485,8 +7356,7 @@ DBInqMeshname(DBfile *dbfile, const char *vname, const char *mname)
         if (!dbfile->pub.i_meshname)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.i_meshname) (dbfile, (char *)vname,
-                                           (char *)mname);
+        retval = (dbfile->pub.i_meshname) (dbfile, vname, mname);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7526,7 +7396,7 @@ DBInqMeshtype(DBfile *dbfile, const char *name)
         if (!dbfile->pub.i_meshtype)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.i_meshtype) (dbfile, (char *)name);
+        retval = (dbfile->pub.i_meshtype) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -7558,9 +7428,17 @@ DBInqMeshtype(DBfile *dbfile, const char *name)
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutCompoundarray(DBfile *dbfile, const char *name, char **elemnames,
-                   int *elemlengths, int nelems, void *values, int nvalues,
-                   int datatype, DBoptlist *opts)
+DBPutCompoundarray(
+    DBfile *dbfile,
+    char const *name,
+    char const * const *elemnames,
+    int const *elemlengths,
+    int nelems,
+    void const *values,
+    int nvalues,
+    int datatype,
+    DBoptlist const *opts
+)
 {
     int retval;
 
@@ -7571,22 +7449,37 @@ DBPutCompoundarray(DBfile *dbfile, const char *name, char **elemnames,
             API_ERROR("DBPutCompoundarray", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("array name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("array name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
-        if (!elemnames)
-            API_ERROR("element names", E_BADARGS);
-        if (nelems <= 0)
-            API_ERROR("number of elements", E_BADARGS);
-        if (!values)
-            API_ERROR("values pointer", E_BADARGS);
-        if (nvalues < 0)
-            API_ERROR("number of values", E_BADARGS);
+        if (nelems < 0)
+            API_ERROR("nelems<0", E_BADARGS);
+        if (nelems)
+        {
+            if (!nelems)
+                API_ERROR("nelems=0", E_BADARGS);
+            if (!elemnames)
+                API_ERROR("elemnames=0", E_BADARGS);
+            if (nvalues <= 0)
+                API_ERROR("nvalues=0", E_BADARGS);
+            if (!values)
+                API_ERROR("values=0", E_BADARGS);
+        }
+        else if (!SILO_Globals.allowEmptyObjects)
+        {
+            /* this is an empty object but we don't know if it was intentional */
+            API_ERROR("nelems=0", E_EMPTYOBJECT);
+        }
+        else
+        {
+            nvalues = 0;
+        }
+
         if (NULL == dbfile->pub.p_ca)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_ca) (dbfile, (char *)name, elemnames,
+        retval = (dbfile->pub.p_ca) (dbfile, name, elemnames,
                                      elemlengths, nelems, values, nvalues,
                                      datatype, opts);
         db_FreeToc(dbfile);
@@ -7622,8 +7515,15 @@ DBPutCompoundarray(DBfile *dbfile, const char *name, char **elemnames,
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutCurve (DBfile *dbfile, const char *name, void *xvals, void *yvals,
-            int datatype, int npts, DBoptlist *opts)
+DBPutCurve(
+    DBfile *dbfile,
+    char const *name,
+    void const *xvals,
+    void const *yvals,
+    int datatype,
+    int npts,
+    DBoptlist const *opts
+)
 {
     int retval;
 
@@ -7635,12 +7535,12 @@ DBPutCurve (DBfile *dbfile, const char *name, void *xvals, void *yvals,
             API_ERROR("DBPutCurve", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("curve name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("curve name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (npts < 0)
-            API_ERROR("number of values", E_BADARGS);
+            API_ERROR("npts<0", E_BADARGS);
         if (npts)
         {
             if (DBGetOption(opts, DBOPT_REFERENCE))
@@ -7651,11 +7551,11 @@ DBPutCurve (DBfile *dbfile, const char *name, void *xvals, void *yvals,
             else
             {
                 if (!xvals && !DBGetOption(opts, DBOPT_XVARNAME))
-                    API_ERROR("xvals==0 || DBOPT_XVARNAME", E_BADARGS);
+                    API_ERROR("xvals=0 || DBOPT_XVARNAME", E_BADARGS);
                 if (xvals && DBGetOption(opts, DBOPT_XVARNAME))
                     API_ERROR("xvals!=0 && DBOPT_XVARNAME", E_BADARGS);
                 if (!yvals && !DBGetOption(opts, DBOPT_YVARNAME))
-                    API_ERROR("yvals==0 || DBOPT_YVARNAME", E_BADARGS);
+                    API_ERROR("yvals=0 || DBOPT_YVARNAME", E_BADARGS);
                 if (yvals && DBGetOption(opts, DBOPT_YVARNAME))
                     API_ERROR("yvals!=0 && DBOPT_YVARNAME", E_BADARGS);
             }
@@ -7664,21 +7564,13 @@ DBPutCurve (DBfile *dbfile, const char *name, void *xvals, void *yvals,
                  !DBGetOption(opts, DBOPT_REFERENCE))
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("npts==0", E_EMPTYOBJECT);
-        }
-        else
-        {
-            /* this is an intentionally empty object */
-            npts = 0;
-            xvals = 0;
-            yvals = 0;
-            datatype = DB_FLOAT;
+            API_ERROR("npts=0", E_EMPTYOBJECT);
         }
 
         if (NULL == dbfile->pub.p_cu)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_cu) (dbfile, (char *)name, xvals, yvals,
+        retval = (dbfile->pub.p_cu) (dbfile, name, (void*)xvals, (void*)yvals,
                                      datatype, npts, opts);
 
         db_FreeToc(dbfile);
@@ -7701,9 +7593,15 @@ DBPutCurve (DBfile *dbfile, const char *name, void *xvals, void *yvals,
  *
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutDefvars (DBfile *dbfile, const char *name, int ndefs,
-              char *names[], const int *types, char *defns[],
-              DBoptlist *opts[])
+DBPutDefvars(
+    DBfile *dbfile,
+    const char *name,
+    int ndefs,
+    char const * const *names,
+    int const *types,
+    char const * const *defns,
+    DBoptlist const * const *opts
+)
 {
     int retval;
 
@@ -7715,22 +7613,31 @@ DBPutDefvars (DBfile *dbfile, const char *name, int ndefs,
             API_ERROR("DBPutDefvars", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("defvars name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("defvars name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (ndefs < 0)
             API_ERROR("ndefs", E_BADARGS);
-        if (!names)
-            API_ERROR("names", E_BADARGS);
-        if (!types)
-            API_ERROR("types", E_BADARGS);
-        if (!defns)
-            API_ERROR("defns", E_BADARGS);
+        if (ndefs)
+        {
+            if (!names)
+                API_ERROR("names=0", E_BADARGS);
+            if (!types)
+                API_ERROR("types=0", E_BADARGS);
+            if (!defns)
+                API_ERROR("defns=0", E_BADARGS);
+        }
+        else if (!SILO_Globals.allowEmptyObjects)
+        {
+            /* this is an empty object but we don't know if it was intentional */
+            API_ERROR("ndefs=0", E_EMPTYOBJECT);
+        }
+
         if (NULL == dbfile->pub.p_defv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_defv) (dbfile, (char *)name, ndefs, names,
+        retval = (dbfile->pub.p_defv) (dbfile, name, ndefs, names,
                                        types, defns, opts);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -7769,9 +7676,9 @@ DBPutDefvars (DBfile *dbfile, const char *name, int ndefs,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutFacelist(DBfile *dbfile, const char *name, int nfaces, int ndims,
-              int nodelist[], int lnodelist, int origin, int zoneno[],
-              int shapesize[], int shapecnt[], int nshapes, int types[],
-              int typelist[], int ntypes)
+              int const *nodelist, int lnodelist, int origin, int const *zoneno,
+              int const *shapesize, int const *shapecnt, int nshapes, int const *types,
+              int const *typelist, int ntypes)
 {
     int retval;
 
@@ -7782,57 +7689,50 @@ DBPutFacelist(DBfile *dbfile, const char *name, int nfaces, int ndims,
             API_ERROR("DBPutFacelist", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("facelist name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("facelist name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (nfaces < 0)
-            API_ERROR("nfaces", E_BADARGS);
-        if (ndims < 0)
-            API_ERROR("ndims", E_BADARGS);
-        if (lnodelist < 0)
-            API_ERROR("lnodelist", E_BADARGS);
-        if (nshapes < 0)
-            API_ERROR("nshapes", E_BADARGS);
-        if (ntypes < 0)
-            API_ERROR("ntypes", E_BADARGS);
-        if (nfaces && ndims && lnodelist && nshapes)
+            API_ERROR("nfaces<0", E_BADARGS);
+        if (nfaces)
         {
+            if (nfaces <= 0)
+                API_ERROR("nfaces<=0", E_BADARGS);
+            if (ndims <= 0)
+                API_ERROR("ndims<=0", E_BADARGS);
+            if (lnodelist <= 0)
+                API_ERROR("lnodelist<0", E_BADARGS);
+            if (nshapes <= 0)
+                API_ERROR("nshapes<0", E_BADARGS);
             if (!nodelist)
-                API_ERROR("nodelist", E_BADARGS);
+                API_ERROR("nodelist==0", E_BADARGS);
             if (!shapesize)
-                API_ERROR("shapesize", E_BADARGS);
+                API_ERROR("shapesize==0", E_BADARGS);
             if (!shapecnt)
-                API_ERROR("shapecnt", E_BADARGS);
+                API_ERROR("shapecnt==0", E_BADARGS);
+            if (ntypes < 0)
+                API_ERROR("ntypes<0", E_BADARGS);
+            if (origin != 0 && origin != 1)
+                API_ERROR("origin", E_BADARGS);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("nfaces==0 || ndims==0 || lnodelist==0 || nshapes==0", E_EMPTYOBJECT);
+            API_ERROR("nfaces=0", E_EMPTYOBJECT);
         }
         else
         {
-            /* this is an intentionally empty object */
             nfaces = 0;
-            ndims = 0;
-            nodelist = 0;
             lnodelist = 0;
-            origin = 0; /* HDF5 driver needs something non-zero */
-            zoneno = 0;
-            shapesize = 0;
-            shapecnt = 0;
             nshapes = 0;
-            types = 0;
-            typelist = 0;
             ntypes = 0;
         }
-        if (origin != 0 && origin != 1)
-            API_ERROR("origin", E_BADARGS);
 
         if (!dbfile->pub.p_fl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_fl) (dbfile, (char *)name, nfaces, ndims,
+        retval = (dbfile->pub.p_fl) (dbfile, name, nfaces, ndims,
                                      nodelist, lnodelist, origin, zoneno,
                                      shapesize, shapecnt, nshapes, types,
                                      typelist, ntypes);
@@ -7876,12 +7776,25 @@ DBPutFacelist(DBfile *dbfile, const char *name, int nfaces, int ndims,
  *    Removed an unnecessary check on mix_zone.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutMaterial(DBfile *dbfile, const char *name, const char *meshname, int nmat,
-              int matnos[], int matlist[], int dims[], int ndims,
-              int mix_next[], int mix_mat[], int mix_zone[], DB_DTPTR1 mix_vf,
-              int mixlen, int datatype, DBoptlist *optlist)
-{
-    int retval;
+DBPutMaterial(
+    DBfile *dbfile,
+    char const *name,
+    char const *meshname,
+    int nmat,
+    int const *matnos,
+    int const *matlist,
+    int const *dims,
+    int ndims,
+    int const *mix_next,
+    int const *mix_mat,
+    int const *mix_zone,
+    DBVCP1_t mix_vf,
+    int mixlen,
+    int datatype,
+    DBoptlist const *optlist
+)
+{
+    int i, retval, is_empty = 1;
 
     API_BEGIN2("DBPutMaterial", int, -1, name) {
         if (!dbfile)
@@ -7890,7 +7803,7 @@ DBPutMaterial(DBfile *dbfile, const char *name, const char *meshname, int nmat,
             API_ERROR("DBPutMaterial", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("material name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("material name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -7898,50 +7811,48 @@ DBPutMaterial(DBfile *dbfile, const char *name, const char *meshname, int nmat,
             API_ERROR("nmat<0", E_BADARGS);
         if (ndims < 0)
             API_ERROR("ndims<0", E_BADARGS);
-        if (nmat && ndims)
+        if (!dims)
+            API_ERROR("dims=0", E_BADARGS);
+        for (i = 0; i < ndims; i++)
+        {
+            if (dims[i] != 0)
+            {
+                is_empty = 0;
+                break;
+            }
+        }
+        if (!is_empty)
         {
-            int i;
             for (i = 0; i < ndims && dims; i++)
                 if (dims[i] == 0) dims = 0;
-            if (!matnos) API_ERROR("matnos==0", E_BADARGS);
-            if (!dims) API_ERROR("dims==0 || dims[i]==0", E_BADARGS);
-            if (!matlist) API_ERROR("matlist==0", E_BADARGS);
+            if (!matnos) API_ERROR("matnos=0", E_BADARGS);
+            if (!matlist) API_ERROR("matlist=0", E_BADARGS);
             if (!meshname || !*meshname) API_ERROR("mesh name", E_BADARGS);
-            if (!db_VariableNameValid((char *)meshname)) API_ERROR("meshname", E_INVALIDNAME);
+            if (!db_VariableNameValid(meshname)) API_ERROR("meshname", E_INVALIDNAME);
+            if (mixlen < 0)
+                API_ERROR("mixlen<0", E_BADARGS);
+            if (mixlen)
+            {
+                if (!mix_next)
+                    API_ERROR("mix_next=0", E_BADARGS);
+                if (!mix_mat)
+                    API_ERROR("mix_mat=0", E_BADARGS);
+                if (!mix_vf)
+                    API_ERROR("mix_vf=0", E_BADARGS);
+            }
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
-            API_ERROR("nmat==0 || ndims==0", E_EMPTYOBJECT);
+            API_ERROR("nmat=0", E_EMPTYOBJECT);
         }
-        else
-        {
-            /* this is an intentionally empty object */
-            nmat = 0;
-            matnos = 0;
-            matlist = 0;
-            dims = 0;
-            ndims = 0;
-            mix_next = 0;
-            mix_mat = 0;
-            mix_zone = 0;
-            mixlen = 0;
-            datatype = DB_FLOAT;
-        }
-        if (mixlen < 0)
-            API_ERROR("mixlen<0", E_BADARGS);
-        if (!mix_next && mixlen)
-            API_ERROR("mix_next==0", E_BADARGS);
-        if (!mix_mat && mixlen)
-            API_ERROR("mix_mat==0", E_BADARGS);
-        if (!mix_vf && mixlen)
-            API_ERROR("mix_vf==0", E_BADARGS);
         if (!dbfile->pub.p_ma)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_ma) (dbfile, (char *)name, (char *)meshname,
+        retval = (dbfile->pub.p_ma) (dbfile, name, meshname,
                                      nmat, matnos, matlist, dims, ndims,
                                      mix_next, mix_mat, mix_zone, mix_vf,
                                      mixlen, datatype, optlist);
+
         /* Zero out the _ma._matnames pointer so we can't accidentially use it
          * again. Likewise for matcolors. */
         _ma._matnames = NULL;
@@ -7993,12 +7904,12 @@ DBPutMaterial(DBfile *dbfile, const char *name, const char *meshname, int nmat,
  *--------------------------------------------------------------------*/
 PUBLIC int
 DBPutMatspecies(DBfile *dbfile, const char *name, const char *matname,
-                int nmat, int nmatspec[], int speclist[], int dims[],
-                int ndims, int nspecies_mf, DB_DTPTR1 species_mf,
-                int mix_speclist[], int mixlen, int datatype,
-                DBoptlist *optlist)
+                int nmat, int const *nmatspec, int const *speclist, int const *dims,
+                int ndims, int nspecies_mf, DBVCP1_t species_mf,
+                int const *mix_speclist, int mixlen, int datatype,
+                DBoptlist const *optlist)
 {
-    int retval;
+    int i, retval, is_empty=1;
 
     API_BEGIN2("DBPutMatspecies", int, -1, name) {
         if (!dbfile)
@@ -8007,58 +7918,59 @@ DBPutMatspecies(DBfile *dbfile, const char *name, const char *matname,
             API_ERROR("DBPutMatspecies", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("matspecies name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("matspecies name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
-        if (!matname || !*matname)
-            API_ERROR("material name", E_BADARGS);
-        if (db_VariableNameValid((char *)matname) == 0)
-            API_ERROR("material name", E_INVALIDNAME);
         if (nmat < 0)
             API_ERROR("nmat<0", E_BADARGS);
         if (ndims < 0)
             API_ERROR("ndims<0", E_BADARGS);
+        if (!dims)
+            API_ERROR("dims=0", E_BADARGS);
         if (nspecies_mf < 0)
             API_ERROR("nspecies_mf<0", E_BADARGS);
-        if (nmat && ndims && nspecies_mf)
+        for (i = 0; i < ndims; i++)
         {
-            int i;
-            for (i = 0; i < ndims && dims; i++)
-                if (!dims[i]) dims = 0;
-            if (!nmatspec) API_ERROR("nmatspec==0", E_BADARGS);
-            if (!speclist) API_ERROR("speclist==0", E_BADARGS);
-            if (!dims) API_ERROR("dims==0 || dims[i]==0", E_BADARGS);
-            if (!species_mf) API_ERROR("species_mf==0", E_BADARGS);
+            if (dims[i] != 0)
+            {
+                is_empty = 0;
+                break;
+            }
         }
-        else if (!SILO_Globals.allowEmptyObjects)
+        if (!is_empty && nspecies_mf > 0)
         {
-            API_ERROR("nmat==0 || ndims==0 || nspecies_mf==0", E_EMPTYOBJECT);
+            if (!matname || !*matname)
+                API_ERROR("material name", E_BADARGS);
+            if (db_VariableNameValid(matname) == 0)
+                API_ERROR("material name", E_INVALIDNAME);
+            if (ndims == 1 && dims[0] <= 0) API_ERROR("dims[0]<=0", E_BADARGS);
+            if (ndims == 2 && dims[1] <= 0) API_ERROR("dims[1]<=0", E_BADARGS);
+            if (ndims == 3 && dims[2] <= 0) API_ERROR("dims[2]<=0", E_BADARGS);
+            if (!nmatspec) API_ERROR("nmatspec=0", E_BADARGS);
+            if (!speclist) API_ERROR("speclist=0", E_BADARGS);
+            if (!species_mf) API_ERROR("species_mf=0", E_BADARGS);
+            if (mixlen < 0)
+                API_ERROR("mixlen", E_BADARGS);
+            if (!mix_speclist && mixlen)
+                API_ERROR("mix_speclist", E_BADARGS);
         }
-        else
+        else if (!SILO_Globals.allowEmptyObjects)
         {
-            /* this is an intentionally empty object */
-            nmat = 0;
-            nmatspec = 0;
-            speclist = 0;
-            dims = 0;
-            ndims = 0;
-            nspecies_mf = 0;
-            species_mf = 0;
-            mix_speclist = 0;
-            mixlen = 0;
-            datatype = DB_FLOAT;
-        }
-        if (mixlen < 0)
-            API_ERROR("mixlen", E_BADARGS);
-        if (!mix_speclist && mixlen)
-            API_ERROR("mix_speclist", E_BADARGS);
+            API_ERROR("dims[i]==0 for all i || nspecies_mf==0", E_EMPTYOBJECT);
+        }
         if (!dbfile->pub.p_ms)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-        retval = (dbfile->pub.p_ms) (dbfile, (char *)name, (char *)matname,
+        retval = (dbfile->pub.p_ms) (dbfile, name, matname,
                                      nmat, nmatspec, speclist, dims, ndims,
                                      nspecies_mf, species_mf, mix_speclist,
                                      mixlen, datatype, optlist);
+
+        /* Zero out the _ma._matnames pointer so we can't accidentially use it
+         * again. Likewise for matcolors. */
+        _ms._specnames = NULL;
+        _ms._speccolors = NULL;
+
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -8097,8 +8009,9 @@ DBPutMatspecies(DBfile *dbfile, const char *name, const char *matname,
  *    adjusting sanity checks for args as some can be null now.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutMultimesh(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
-               char DB_CONSTARR2 meshnames, int DB_CONSTARR1 meshtypes, DBoptlist const *optlist)
+DBPutMultimesh(DBfile *dbfile, char const *name, int nmesh,
+    char const * const *meshnames, int const *meshtypes,
+    DBoptlist const *optlist)
 {
     int retval;
 
@@ -8109,7 +8022,7 @@ DBPutMultimesh(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
             API_ERROR("DBPutMultimesh", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("multimesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("multimesh name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -8125,7 +8038,7 @@ DBPutMultimesh(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
         if (!dbfile->pub.p_mm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_mm) (dbfile, (char *)name, nmesh, meshnames,
+        retval = (dbfile->pub.p_mm) (dbfile, name, nmesh, meshnames,
                                      meshtypes, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8151,11 +8064,11 @@ DBPutMultimesh(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
  *
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutMultimeshadj(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
-                  int DB_CONSTARR1 meshtypes, int DB_CONSTARR1 nneighbors,
-                  int DB_CONSTARR1 neighbors, int DB_CONSTARR1 back,
-                  int DB_CONSTARR1 lnodelists, int DB_CONSTARR2 nodelists,
-                  int DB_CONSTARR1 lzonelists, int DB_CONSTARR2 zonelists,
+DBPutMultimeshadj(DBfile *dbfile, char const *name, int nmesh,
+                  int const *meshtypes, int const *nneighbors,
+                  int const *neighbors, int const *back,
+                  int const *lnodelists, int const * const *nodelists,
+                  int const *lzonelists, int const * const *zonelists,
                   DBoptlist const *optlist)
 {
     int retval;
@@ -8167,7 +8080,7 @@ DBPutMultimeshadj(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
             API_ERROR("DBPutMultimeshadj", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("multimeshadj name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("multimeshadj name", E_INVALIDNAME);
         if (nmesh < 0)
             API_ERROR("nmesh", E_BADARGS);
@@ -8184,7 +8097,7 @@ DBPutMultimeshadj(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
         if (!dbfile->pub.p_mmadj)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_mmadj) (dbfile, (char *)name, nmesh, meshtypes,
+        retval = (dbfile->pub.p_mmadj) (dbfile, name, nmesh, meshtypes,
                                         nneighbors, neighbors, back,
                                         lnodelists, nodelists, lzonelists, zonelists,
                                         optlist);
@@ -8225,7 +8138,7 @@ DBPutMultimeshadj(DBfile *dbfile, char DB_CONSTARR1 name, int nmesh,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutMultivar(DBfile *dbfile, const char *name, int nvar,
-              char *varnames[], int vartypes[], DBoptlist *optlist)
+              char const * const *varnames, int const *vartypes, DBoptlist const *optlist)
 {
     int retval;
 
@@ -8236,7 +8149,7 @@ DBPutMultivar(DBfile *dbfile, const char *name, int nvar,
             API_ERROR("DBPutMultivar", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("multivar name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("multivar name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -8252,7 +8165,7 @@ DBPutMultivar(DBfile *dbfile, const char *name, int nvar,
         if (!dbfile->pub.p_mv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_mv) (dbfile, (char *)name, nvar, varnames,
+        retval = (dbfile->pub.p_mv) (dbfile, name, nvar, varnames,
                                      vartypes, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8288,7 +8201,7 @@ DBPutMultivar(DBfile *dbfile, const char *name, int nvar,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutMultimat(DBfile *dbfile, const char *name, int nmats,
-              char *matnames[], DBoptlist *optlist)
+              char const * const *matnames, DBoptlist const *optlist)
 {
     int retval;
 
@@ -8299,7 +8212,7 @@ DBPutMultimat(DBfile *dbfile, const char *name, int nmats,
             API_ERROR("DBPutMultimat", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("multimat name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("multimat name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -8312,8 +8225,14 @@ DBPutMultimat(DBfile *dbfile, const char *name, int nmats,
         if (!dbfile->pub.p_mt)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_mt) (dbfile, (char *)name, nmats, matnames,
+        retval = (dbfile->pub.p_mt) (dbfile, name, nmats, matnames,
                                      optlist);
+
+        /* Zero out the _mm._matnames pointer so we can't accidentially use it
+         * again. Likewise for matcolors. */
+        _mm._matnames = NULL;
+        _mm._matcolors = NULL;
+
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -8348,7 +8267,7 @@ DBPutMultimat(DBfile *dbfile, const char *name, int nmats,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutMultimatspecies(DBfile *dbfile, const char *name, int nspec,
-                     char *specnames[], DBoptlist *optlist)
+                     char const * const *specnames, DBoptlist const *optlist)
 {
     int retval;
 
@@ -8359,7 +8278,7 @@ DBPutMultimatspecies(DBfile *dbfile, const char *name, int nspec,
             API_ERROR("DBPutMultimatspecies", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("multimatspecies name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("multimatspecies name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -8372,8 +8291,13 @@ DBPutMultimatspecies(DBfile *dbfile, const char *name, int nspec,
         if (!dbfile->pub.p_mms)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_mms) (dbfile, (char *)name, nspec, specnames,
-                                      optlist);
+        retval = (dbfile->pub.p_mms) (dbfile, name, nspec, specnames, optlist);
+
+        /* Zero out the _ma._matnames pointer so we can't accidentially use it
+         * again. Likewise for matcolors. */
+        _mm._specnames = NULL;
+        _mm._speccolors = NULL;
+
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -8407,8 +8331,8 @@ DBPutMultimatspecies(DBfile *dbfile, const char *name, int nspec,
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutPointmesh(DBfile *dbfile, const char *name, int ndims, DB_DTPTR2 coords,
-               int nels, int datatype, DBoptlist *optlist)
+DBPutPointmesh(DBfile *dbfile, const char *name, int ndims, DBVCP2_t coords,
+               int nels, int datatype, DBoptlist const *optlist)
 {
     int retval;
 
@@ -8419,7 +8343,7 @@ DBPutPointmesh(DBfile *dbfile, const char *name, int ndims, DB_DTPTR2 coords,
             API_ERROR("DBPutPointmesh", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("pointmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("pointmesh name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -8434,22 +8358,17 @@ DBPutPointmesh(DBfile *dbfile, const char *name, int ndims, DB_DTPTR2 coords,
             for (i = 0; i < ndims && coords; i++)
                 if (coords2[i] == 0) coords = 0;
             if (!coords)
-                API_ERROR("coords==0 || coords[i]==0 for some i", E_BADARGS);
+                API_ERROR("coords=0 || coords[i]=0 for some i", E_BADARGS);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             API_ERROR("nels==0", E_EMPTYOBJECT);
         }
-        else
-        {
-            ndims = 0;
-            coords = 0;
-            datatype = DB_FLOAT;
-        }
+
         if (!dbfile->pub.p_pm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_pm) (dbfile, (char *)name, ndims, coords, nels,
+        retval = (dbfile->pub.p_pm) (dbfile, name, ndims, coords, nels,
                                      datatype, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8485,7 +8404,7 @@ DBPutPointmesh(DBfile *dbfile, const char *name, int ndims, DB_DTPTR2 coords,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutPointvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
-              DB_DTPTR2 vars, int nels, int datatype, DBoptlist *optlist)
+              DBVCP2_t vars, int nels, int datatype, DBoptlist const *optlist)
 {
     int retval;
 
@@ -8496,41 +8415,35 @@ DBPutPointvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
             API_ERROR("DBPutPointvar", E_GRABBED) ; 
         if (!vname || !*vname)
             API_ERROR("pointvar name", E_BADARGS);
-        if (db_VariableNameValid((char *)vname) == 0)
+        if (db_VariableNameValid(vname) == 0)
             API_ERROR("pointvar name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, vname))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
-        if (!mname || !*mname)
-            API_ERROR("pointmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)mname) == 0)
-            API_ERROR("pointmesh name", E_INVALIDNAME);
-        if (nvars < 0)
-            API_ERROR("nvars<0", E_BADARGS);
         if (nels < 0)
             API_ERROR("nels<0", E_BADARGS);
         if (nels)
         {
             int i;
             void **vars2 = (void**) vars;
-            if (!nvars) API_ERROR("nvars==0", E_BADARGS);
+            if (nvars <= 0)
+                API_ERROR("nvars<=0", E_BADARGS);
             for (i = 0; i < nvars && vars; i++)
                 if (!vars2[i]) vars = 0;
             if (!vars) API_ERROR("vars==0 || vars[i]==0", E_BADARGS);
+            if (!mname || !*mname)
+                API_ERROR("pointmesh name", E_BADARGS);
+            if (db_VariableNameValid(mname) == 0)
+                API_ERROR("pointmesh name", E_INVALIDNAME);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
-            API_ERROR("nels==0", E_EMPTYOBJECT);
-        }
-        else
-        {
-            nvars = 0;
-            vars = 0;
-            datatype = DB_FLOAT;
+            API_ERROR("nels=0", E_EMPTYOBJECT);
         }
+
         if (!dbfile->pub.p_pv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_pv) (dbfile, (char *)vname, (char *)mname,
+        retval = (dbfile->pub.p_pv) (dbfile, vname, mname,
                                      nvars, vars, nels, datatype, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8559,15 +8472,14 @@ DBPutPointvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutPointvar1(DBfile *dbfile, const char *vname, const char *mname,
-               DB_DTPTR1 var, int nels, int datatype, DBoptlist *optlist)
+               DBVCP1_t var, int nels, int datatype, DBoptlist const *optlist)
 {
-    DB_DTPTR *vars[1];
+    DBVCP1_t vars[1] = {var};
     int retval;
 
     API_BEGIN2("DBPutPointvar1", int, -1, vname)
     {
-        vars[0] = var;
-        retval = DBPutPointvar(dbfile, (char *)vname, (char *)mname, var?1:0, vars,
+        retval = DBPutPointvar(dbfile, vname, mname, 1, vars,
                                nels, datatype, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8609,11 +8521,11 @@ DBPutPointvar1(DBfile *dbfile, const char *vname, const char *mname,
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutQuadmesh(DBfile *dbfile, const char *name, char *coordnames[],
-              DB_DTPTR2 coords, int dims[], int ndims, int datatype,
-              int coordtype, DBoptlist *optlist)
+DBPutQuadmesh(DBfile *dbfile, const char *name, char const * const *coordnames,
+              DBVCP2_t coords, int const *dims, int ndims, int datatype,
+              int coordtype, DBoptlist const *optlist)
 {
-    int retval;
+    int i, retval, is_empty=1;
 
     API_BEGIN2("DBPutQuadmesh", int, -1, name) {
         if (!dbfile)
@@ -8622,47 +8534,41 @@ DBPutQuadmesh(DBfile *dbfile, const char *name, char *coordnames[],
             API_ERROR("DBPutQuadmesh", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("quadmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("quadmesh name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
+        if ((coordtype != DB_COLLINEAR) && (coordtype != DB_NONCOLLINEAR))
+            API_ERROR("coordtype must be DB_COLLINEAR or DB_NONCOLLINEAR", E_BADARGS);
         if (ndims < 0)
             API_ERROR("ndims", E_BADARGS);
-        if (ndims)
+        if (!dims)
+            API_ERROR("dims==0", E_BADARGS);
+        for (i = 0; i < ndims; i++)
+        {
+            if (dims[i] != 0)
+            {
+                is_empty = 0;
+                break;
+            }
+        }
+        if (!is_empty)
         {
-            int i;
             void **coords2 = (void**) coords;
             for (i = 0; i < ndims && coords; i++)
                 if (!coords2[i]) coords = 0;
-            for (i = 0; i < ndims && dims; i++)
-                if (!dims[i]) dims = 0;
             if (!coords)
                 API_ERROR("coords==0 || coords[i]==0", E_BADARGS);
-            if (!dims)
-                API_ERROR("dims==0 || dims[i]==0", E_BADARGS);
         }
         else if (!SILO_Globals.allowEmptyObjects)
-        {
-            /* this is an empty object but we don't think it was intentional */
-            API_ERROR("ndims==0", E_EMPTYOBJECT);
-        }
-        else
-        {
-            /* this is an intentionally empty object */
-            coordnames = 0;
-            coords = 0;
-            dims = 0;
-            datatype = DB_FLOAT;
-            coordtype = DB_COLLINEAR;
-        }
-        if ((datatype != DB_FLOAT) && (datatype != DB_DOUBLE))
-            API_ERROR("datatype must be DB_FLOAT or DB_DOUBLE", E_BADARGS);
-        if ((coordtype != DB_COLLINEAR) && (coordtype != DB_NONCOLLINEAR))
-            API_ERROR("coordtype must be DB_COLLINEAR or DB_NONCOLLINEAR", E_BADARGS);
+        {
+            /* this is an empty object but we don't think it was intentional */
+            API_ERROR("dims[i]==0 for all i", E_EMPTYOBJECT);
+        }
         if (!dbfile->pub.p_qm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_qm) (dbfile, (char *)name, coordnames, coords,
+        retval = (dbfile->pub.p_qm) (dbfile, name, coordnames, coords,
                                      dims, ndims, datatype, coordtype,
                                      optlist);
         db_FreeToc(dbfile);
@@ -8706,11 +8612,11 @@ DBPutQuadmesh(DBfile *dbfile, const char *name, char *coordnames[],
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutQuadvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
-             char *varnames[], DB_DTPTR2 vars, int dims[], int ndims,
-             DB_DTPTR2 mixvars, int mixlen, int datatype, int centering,
-             DBoptlist *optlist)
+             char const * const *varnames, DBVCP2_t vars, int const *dims, int ndims,
+             DBVCP2_t mixvars, int mixlen, int datatype, int centering,
+             DBoptlist const *optlist)
 {
-    int retval;
+    int i, retval, is_empty = 1;
 
     API_BEGIN2("DBPutQuadvar", int, -1, vname) {
         if (!dbfile)
@@ -8719,59 +8625,57 @@ DBPutQuadvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
             API_ERROR("DBPutQuadvar", E_GRABBED) ; 
         if (!vname || !*vname)
             API_ERROR("quadvar name", E_BADARGS);
-        if (db_VariableNameValid((char *)vname) == 0)
+        if (db_VariableNameValid(vname) == 0)
             API_ERROR("quadvar name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, vname))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (!mname || !*mname)
             API_ERROR("quadmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)mname) == 0)
+        if (db_VariableNameValid(mname) == 0)
             API_ERROR("quadmesh name", E_INVALIDNAME);
         if (ndims < 0)
             API_ERROR("ndims", E_BADARGS);
-        if (ndims)
+        if (!dims)
+            API_ERROR("dims==0", E_BADARGS);
+        for (i = 0; i < ndims; i++)
+        {
+            if (dims[i] != 0)
+            {
+                is_empty = 0;
+                break;
+            }
+        }
+        if (!is_empty)
         {
             int i;
             void **vars2 = (void**) vars;
             for (i = 0; i < ndims && dims; i++)
                 if (!dims[i]) dims = 0;
             if (!dims)
-                API_ERROR("dims==0 || dims[i]==0", E_BADARGS);
+                API_ERROR("dims=0 || dims[i]=0", E_BADARGS);
             if (nvars < 1)
                 API_ERROR("nvars<1", E_BADARGS);
             for (i = 0; i < nvars && vars; i++)
                 if (!vars2[i]) vars = 0;
-            vars2 = mixvars;
+            vars2 = (void**) mixvars;
             for (i = 0; i < nvars && mixvars; i++)
                 if (!vars2[i]) mixvars = 0;
             for (i = 0; i < nvars && varnames; i++)
                 if (!varnames[i] && !*varnames[i]) varnames = 0;
             if (!vars)
-                API_ERROR("vars==0 || vars[i]==0", E_BADARGS);
+                API_ERROR("vars=0 || vars[i]=0", E_BADARGS);
             if (!varnames)
-                API_ERROR("varnames==0 || varnames[i]==0||\"\"", E_BADARGS);
+                API_ERROR("varnames=0 || varnames[i]=0||\"\"", E_BADARGS);
+            if (mixlen < 0)
+                API_ERROR("mixlen", E_BADARGS);
+            if (!mixvars && mixlen)
+                API_ERROR("mixvars", E_BADARGS);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't think it was intentional */
-            API_ERROR("ndims==0", E_EMPTYOBJECT);
+            API_ERROR("ndims=0", E_EMPTYOBJECT);
         }
-        else
-        {
-            /* this is an intentionally empty object*/
-            nvars = 0;
-            vars = 0;
-            varnames = 0;
-            dims = 0;
-            mixvars = 0;
-            mixlen = 0;
-            datatype = DB_FLOAT;
-            centering = DB_NODECENT;
-        }
-        if (mixlen < 0)
-            API_ERROR("mixlen", E_BADARGS);
-        if (!mixvars && mixlen)
-            API_ERROR("mixvars", E_BADARGS);
         if (centering != DB_NODECENT && centering != DB_ZONECENT &&
             centering != DB_FACECENT && centering != DB_BNDCENT &&
             centering != DB_EDGECENT && centering != DB_BLOCKCENT)
@@ -8780,7 +8684,7 @@ DBPutQuadvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
 
-        retval = (dbfile->pub.p_qv) (dbfile, (char *)vname, (char *)mname,
+        retval = (dbfile->pub.p_qv) (dbfile, vname, mname,
                                      nvars, varnames, vars, dims, ndims,
                                      mixvars, mixlen, datatype, centering,
                                      optlist);
@@ -8810,21 +8714,23 @@ DBPutQuadvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutQuadvar1(DBfile *dbfile, const char *vname, const char *mname, DB_DTPTR1 var,
-              int dims[], int ndims, DB_DTPTR1 mixvar, int mixlen, int datatype,
-              int centering, DBoptlist *optlist)
+DBPutQuadvar1(DBfile *dbfile, const char *vname, const char *mname, void const *var,
+              int const *dims, int ndims, void const *mixvar, int mixlen, int datatype,
+              int centering, DBoptlist const *optlist)
 {
-    char          *varnames[1];
-    DB_DTPTR *vars[1], *mixvars[1];
+    char const *varnames[1];
+    void const *vars[1] = {var};
+    void const *mixvars[1] = {var};
     int retval;
 
     API_BEGIN2("DBPutQuadvar1", int, -1, vname) {
-        varnames[0] = (char *)vname;
+        varnames[0] = vname;
         vars[0] = var;
         mixvars[0] = mixvar;
 
-        retval = DBPutQuadvar(dbfile, (char *)vname, (char *)mname, var?1:0,
-                              varnames, vars, dims, ndims, mixvars, mixlen,
+        retval = DBPutQuadvar(dbfile, vname, mname, 1,
+                              varnames, vars, dims, ndims,
+                              mixvars, mixlen,
                               datatype, centering, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8863,9 +8769,9 @@ DBPutQuadvar1(DBfile *dbfile, const char *vname, const char *mname, DB_DTPTR1 va
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutUcdmesh(DBfile *dbfile, const char *name, int ndims,
-             char *coordnames[], DB_DTPTR2 coords, int nnodes,
+             char const * const *coordnames, DBVCP2_t coords, int nnodes,
              int nzones, const char *zonel_name, const char *facel_name,
-             int datatype, DBoptlist *optlist)
+             int datatype, DBoptlist const *optlist)
 {
     int retval;
     char *zl_name;
@@ -8877,43 +8783,43 @@ DBPutUcdmesh(DBfile *dbfile, const char *name, int ndims,
             API_ERROR("DBPutUcdmesh", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("UCDmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("UCDmesh name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (ndims < 0)
-            API_ERROR("ndims", E_BADARGS);
+            API_ERROR("ndims<0", E_BADARGS);
         if (nnodes < 0)
-            API_ERROR("nnodes", E_BADARGS);
-        if (nzones < 0)
-            API_ERROR("nzones", E_BADARGS);
-        if (ndims && nnodes && nzones)
+            API_ERROR("nnodes<0", E_BADARGS);
+        if (nnodes)
         {
             int i;
             void **coords2 = (void**) coords;
+            if (nzones <= 0)
+                API_ERROR("nzones<=0", E_BADARGS);
             for (i = 0; i < ndims && coords; i++)
                 if (coords2[i] == 0) coords = 0;;
             if (!coords)
                 API_ERROR("coords==0 || coords[i]==0", E_BADARGS);
-            if (zl_name = DBGetOption(optlist, DBOPT_PHZONELIST))
+            if ((zl_name = (char*)DBGetOption(optlist, DBOPT_PHZONELIST)))
             {
                 if (!zl_name || !*zl_name)
                     API_ERROR("zonelist name specified with DBOPT_PHZONELIST is null or \"\"", E_BADARGS);
-                if (db_VariableNameValid((char *)zl_name) == 0)
+                if (db_VariableNameValid(zl_name) == 0)
                     API_ERROR("zonelist name specified with DBOPT_PHZONELIST", E_INVALIDNAME);
             }
             else if (zonel_name)
             {
                 if (!*zonel_name)
                     API_ERROR("zonel_name==\"\"", E_BADARGS);
-                if (db_VariableNameValid((char *)zonel_name) == 0)
+                if (db_VariableNameValid(zonel_name) == 0)
                     API_ERROR("zonel_name", E_INVALIDNAME);
             }
             else if (facel_name)
             {
                 if (!*facel_name)
                     API_ERROR("facel_name==\"\"", E_BADARGS);
-                if (db_VariableNameValid((char *)facel_name) == 0)
+                if (db_VariableNameValid(facel_name) == 0)
                     API_ERROR("facel_name", E_INVALIDNAME);
             }
             else
@@ -8924,26 +8830,15 @@ DBPutUcdmesh(DBfile *dbfile, const char *name, int ndims,
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("ndims==0 || nnodes==0 || nzones==0", E_EMPTYOBJECT);
-        }
-        else
-        {
-            /* this is an intentionally empty object */
-            ndims = 0;
-            nnodes = 0;
-            nzones = 0;
-            coordnames = 0;
-            coords = 0;
-            zonel_name = 0;
-            facel_name = 0;
-            datatype = DB_FLOAT;
+            API_ERROR("ndims==0 || nnodes==0", E_EMPTYOBJECT);
         }
+
         if (!dbfile->pub.p_um)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_um) (dbfile, (char *)name, ndims, coordnames,
+        retval = (dbfile->pub.p_um) (dbfile, name, ndims, coordnames,
                                      coords, nnodes, nzones,
-                                     (char *)zonel_name, (char *)facel_name,
+                                     zonel_name, facel_name,
                                      datatype, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
@@ -8974,7 +8869,7 @@ DBPutUcdmesh(DBfile *dbfile, const char *name, int ndims,
 PUBLIC int
 DBPutUcdsubmesh(DBfile *dbfile, const char *name, const char *parentmesh,
                 int nzones, const char *zonel_name, const char *facel_name,
-                DBoptlist *optlist)
+                DBoptlist const *optlist)
 {
     int retval;
 
@@ -8985,13 +8880,13 @@ DBPutUcdsubmesh(DBfile *dbfile, const char *name, const char *parentmesh,
             API_ERROR("DBPutUcdsubmesh", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("mesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("mesh name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (!parentmesh || !*parentmesh)
             API_ERROR("parent mesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)parentmesh) == 0)
+        if (db_VariableNameValid(parentmesh) == 0)
             API_ERROR("parent mesh name", E_INVALIDNAME);
         if (nzones < 0)
             API_ERROR("nzones", E_BADARGS);
@@ -8999,9 +8894,9 @@ DBPutUcdsubmesh(DBfile *dbfile, const char *name, const char *parentmesh,
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
 
-        retval = (dbfile->pub.p_sm) (dbfile, (char *)name, (char *)parentmesh,
-                                     nzones, (char *)zonel_name,
-                                     (char *)facel_name, optlist);
+        retval = (dbfile->pub.p_sm) (dbfile, name, parentmesh,
+                                     nzones, zonel_name,
+                                     facel_name, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -9048,8 +8943,8 @@ DBPutUcdsubmesh(DBfile *dbfile, const char *name, const char *parentmesh,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutUcdvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
-            char *varnames[], DB_DTPTR2 vars, int nels, DB_DTPTR2 mixvars,
-            int mixlen, int datatype, int centering, DBoptlist *optlist)
+            char const * const *varnames, DBVCP2_t vars, int nels, DBVCP2_t mixvars,
+            int mixlen, int datatype, int centering, DBoptlist const *optlist)
 {
     int retval;
 
@@ -9060,57 +8955,45 @@ DBPutUcdvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
             API_ERROR("DBPutUcdvar", E_GRABBED) ; 
         if (!vname || !*vname)
             API_ERROR("UCDvar name", E_BADARGS);
-        if (db_VariableNameValid((char *)vname) == 0)
+        if (db_VariableNameValid(vname) == 0)
             API_ERROR("UCDvar name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, vname))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (!mname || !*mname)
             API_ERROR("UCDmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)mname) == 0)
+        if (db_VariableNameValid(mname) == 0)
             API_ERROR("UCDmesh name", E_INVALIDNAME);
-        if (nvars < 0)
-            API_ERROR("nvars<0", E_BADARGS);
         if (nels < 0)
             API_ERROR("nels<0", E_BADARGS);
-        if (mixlen < 0)
-            API_ERROR("mixlen", E_BADARGS);
-        if (nvars && nels)
+        if (nels)
         {
             int i;
             void **vars2 = (void**) vars;
+            if (nvars <= 0)
+                API_ERROR("nvars<0", E_BADARGS);
             for (i = 0; i < nvars && vars; i++)
                 if (vars2[i] == 0) vars = 0;
             for (i = 0; i < nvars && varnames; i++)
                 if (!varnames[i] && !*varnames[i]) varnames = 0;
+            if (mixlen < 0)
+                API_ERROR("mixlen", E_BADARGS);
             if (mixvars)
             {
-                vars2 = mixvars;
+                vars2 = (void**) mixvars;
                 for (i = 0; i < nvars && mixvars; i++)
                     if (vars2[i] == 0) mixvars = 0;
             }
             if (!vars)
-                API_ERROR("vars==0 || vars[i]==0", E_BADARGS);
+                API_ERROR("vars=0 || vars[i]=0", E_BADARGS);
             if (!varnames)
-                API_ERROR("varnames==0 || varnames[i]==0", E_BADARGS);
+                API_ERROR("varnames=0 || varnames[i]=0", E_BADARGS);
             if (mixlen && !mixvars)
-                API_ERROR("mixvars==0 || mixvars[i]==0", E_BADARGS);
+                API_ERROR("mixvars=0 || mixvars[i]=0", E_BADARGS);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("nels==0 || nvars==0", E_EMPTYOBJECT);
-        }
-        else
-        {
-            /* this is an intentionally empty object */
-            nvars = 0;
-            nels = 0;
-            varnames = 0;
-            vars = 0;
-            mixvars = 0;
-            mixlen = 0;
-            datatype = DB_FLOAT;
-            centering = DB_NODECENT;
+            API_ERROR("nvars=0 || nels==0", E_EMPTYOBJECT);
         }
         if (centering != DB_NODECENT && centering != DB_ZONECENT &&
             centering != DB_FACECENT && centering != DB_BNDCENT &&
@@ -9119,7 +9002,7 @@ DBPutUcdvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
         if (!dbfile->pub.p_uv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_uv) (dbfile, (char *)vname, (char *)mname,
+        retval = (dbfile->pub.p_uv) (dbfile, vname, mname,
                                      nvars, varnames, vars, nels, mixvars,
                                      mixlen, datatype, centering, optlist);
         db_FreeToc(dbfile);
@@ -9148,22 +9031,22 @@ DBPutUcdvar(DBfile *dbfile, const char *vname, const char *mname, int nvars,
  *    The old table of contents is discarded if the directory changes.
  *-------------------------------------------------------------------------*/
 PUBLIC int
-DBPutUcdvar1(DBfile *dbfile, const char *vname, const char *mname, DB_DTPTR1 var,
-             int nels, DB_DTPTR1 mixvar, int mixlen, int datatype, int centering,
-             DBoptlist *optlist)
+DBPutUcdvar1(DBfile *dbfile, const char *vname, const char *mname, void const *var,
+             int nels, void const *mixvar, int mixlen, int datatype, int centering,
+             DBoptlist const *optlist)
 {
-    DB_DTPTR *vars[1], *mixvars[1];
-    char          *varnames[1];
+    void const *vars[1] = {var};
+    void const *mixvars[1] = {mixvar};
+    char const *varnames[1];
     int            retval;
 
     API_BEGIN2("DBPutUcdvar1", int, -1, vname)
     {
-        varnames[0] = (char *)vname;
+        varnames[0] = vname;
         vars[0] = var;
         mixvars[0] = mixvar;
-        retval = DBPutUcdvar(dbfile, (char *)vname, (char *)mname, var?1:0, varnames,
-                             vars, nels, mixvars, mixlen, datatype, centering,
-                             optlist);
+        retval = DBPutUcdvar(dbfile, vname, mname, 1, varnames, vars,
+                     nels, mixvars, mixlen, datatype, centering, optlist);
         db_FreeToc(dbfile);
         API_RETURN(retval);
     }
@@ -9199,8 +9082,8 @@ DBPutUcdvar1(DBfile *dbfile, const char *vname, const char *mname, DB_DTPTR1 var
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutZonelist(DBfile *dbfile, const char *name, int nzones, int ndims,
-              int nodelist[], int lnodelist, int origin, int shapesize[],
-              int shapecnt[], int nshapes)
+              int const *nodelist, int lnodelist, int origin, int const *shapesize,
+              int const *shapecnt, int nshapes)
 {
     int retval;
 
@@ -9211,31 +9094,43 @@ DBPutZonelist(DBfile *dbfile, const char *name, int nzones, int ndims,
             API_ERROR("DBPutZonelist", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("zonelist name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("zonelist name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (nzones < 0)
             API_ERROR("nzones", E_BADARGS);
-        if (ndims < 0)
-            API_ERROR("ndims", E_BADARGS);
-        if (lnodelist <= 0)
-            API_ERROR("lnodelist", E_BADARGS);
-        if (!nodelist && lnodelist)
-            API_ERROR("nodelist", E_BADARGS);
-        if (0 != origin && 1 != origin)
-            API_ERROR("origin", E_BADARGS);
-        if (nshapes < 0)
-            API_ERROR("nshapes", E_BADARGS);
-        if (!shapesize && nshapes)
-            API_ERROR("shape size", E_BADARGS);
-        if (!shapecnt && nshapes)
-            API_ERROR("shape count", E_BADARGS);
+        if (nzones)
+        {
+            if (ndims <= 0)
+                API_ERROR("ndims<=0", E_BADARGS);
+            if (lnodelist <= 0)
+                API_ERROR("lnodelist<=", E_BADARGS);
+            if (!nodelist)
+                API_ERROR("nodelist=0", E_BADARGS);
+            if (0 != origin && 1 != origin)
+                API_ERROR("origin!=0||1", E_BADARGS);
+            if (nshapes <= 0)
+                API_ERROR("nshapes<=0", E_BADARGS);
+            if (!shapesize)
+                API_ERROR("shapesize=0", E_BADARGS);
+            if (!shapecnt)
+                API_ERROR("shapecnt=0", E_BADARGS);
+        }
+        else if (!SILO_Globals.allowEmptyObjects)
+        {
+            /* this is an empty object but we don't know if it was intentional */
+            API_ERROR("nzones=0", E_EMPTYOBJECT);
+        }
+        else
+        {
+            lnodelist = 0;
+            nshapes = 0;
+        }
         if (!dbfile->pub.p_zl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-
-        retval = (dbfile->pub.p_zl) (dbfile, (char *)name, nzones, ndims,
+        retval = (dbfile->pub.p_zl) (dbfile, name, nzones, ndims,
                                      nodelist, lnodelist, origin, shapesize,
                                      shapecnt, nshapes);
         db_FreeToc(dbfile);
@@ -9273,9 +9168,9 @@ DBPutZonelist(DBfile *dbfile, const char *name, int nzones, int ndims,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutZonelist2(DBfile *dbfile, const char *name, int nzones, int ndims,
-               int *nodelist, int lnodelist, int origin, int lo_offset,
-               int hi_offset, int *shapetype, int *shapesize, int *shapecnt,
-               int nshapes, DBoptlist *optlist)
+               int const *nodelist, int lnodelist, int origin, int lo_offset,
+               int hi_offset, int const *shapetype, int const *shapesize, int const *shapecnt,
+               int nshapes, DBoptlist const *optlist)
 {
     int retval;
 
@@ -9286,58 +9181,51 @@ DBPutZonelist2(DBfile *dbfile, const char *name, int nzones, int ndims,
             API_ERROR("DBPutZonelist2", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("zonelist name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("zonelist name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (nzones < 0)
             API_ERROR("nzones", E_BADARGS);
-        if (ndims < 0)
-            API_ERROR("ndims", E_BADARGS);
-        if (lnodelist < 0)
-            API_ERROR("lnodelist", E_BADARGS);
-        if (nshapes < 0)
-            API_ERROR("nshapes", E_BADARGS);
-        if (nzones && ndims && lnodelist && nshapes)
+        if (nzones)
         {
+            if (ndims <= 0)
+                API_ERROR("ndims<=0", E_BADARGS);
+            if (lnodelist <= 0)
+                API_ERROR("lnodelist<=0", E_BADARGS);
+            if (nshapes <= 0)
+                API_ERROR("nshapes<=0", E_BADARGS);
             if (!nodelist)
-                API_ERROR("nodelist", E_BADARGS);
+                API_ERROR("nodelist=0", E_BADARGS);
             if (!shapetype)
-                API_ERROR("shape type", E_BADARGS);
+                API_ERROR("shapetype=0", E_BADARGS);
             if (!shapesize)
-                API_ERROR("shape size", E_BADARGS);
+                API_ERROR("shapesize=0", E_BADARGS);
             if (!shapecnt)
-                API_ERROR("shape count", E_BADARGS);
+                API_ERROR("shapecnt=0", E_BADARGS);
+            if (0 != origin && 1 != origin)
+                API_ERROR("origin!=0||1", E_BADARGS);
+            if (lo_offset < 0)
+                API_ERROR("lo_offset<0", E_BADARGS);
+            if (hi_offset < 0)
+                API_ERROR("hi_offset<0", E_BADARGS);
+#ifndef _MSC_VER
+#warning HI AND LO OFFSET NOT VALID IN PRESENCE OF EXPLICIT GHOST LABELS
+#endif
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("nzones==0 || ndims==0 || lnodelist==0 || nshapes==0", E_EMPTYOBJECT);
+            API_ERROR("nzones=0", E_EMPTYOBJECT);
         }
         else
         {
-            /* this is an intentionally empty object */
-            nzones = 0;
-            ndims = 0;
-            nodelist = 0;
             lnodelist = 0;
-            origin = 0; /* something has to be non-zero for HDF5 driver to be 'ok' */
-            lo_offset = 0;
-            hi_offset = 0;
-            shapetype = 0;
-            shapesize = 0;
-            shapecnt = 0;
             nshapes = 0;
         }
-        if (0 != origin && 1 != origin)
-            API_ERROR("origin", E_BADARGS);
-        if (lo_offset < 0)
-            API_ERROR("lo_offset", E_BADARGS);
-        if (hi_offset < 0)
-            API_ERROR("hi_offset", E_BADARGS);
         if (!dbfile->pub.p_zl2)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-        retval = (dbfile->pub.p_zl2) (dbfile, (char *)name, nzones, ndims,
+        retval = (dbfile->pub.p_zl2) (dbfile, name, nzones, ndims,
                                       nodelist, lnodelist, origin, lo_offset,
                                       hi_offset, shapetype, shapesize,
                                       shapecnt, nshapes, optlist);
@@ -9365,10 +9253,10 @@ DBPutZonelist2(DBfile *dbfile, const char *name, int nzones, int ndims,
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutPHZonelist(DBfile *dbfile, const char *name,
-    int nfaces, int *nodecnt, int lnodelist, int *nodelist,
-    const char *extface, int nzones, int *facecnt, int lfacelist,
-    int *facelist, int origin, int lo_offset, int hi_offset,
-    DBoptlist *optlist) 
+    int nfaces, int const *nodecnt, int lnodelist, int const *nodelist,
+    const char *extface, int nzones, int const *facecnt, int lfacelist,
+    int const *facelist, int origin, int lo_offset, int hi_offset,
+    DBoptlist const *optlist) 
 {
     int retval;
 
@@ -9380,56 +9268,50 @@ DBPutPHZonelist(DBfile *dbfile, const char *name,
             API_ERROR("DBPutPHZonelist", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("zonelist name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("zonelist name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (nfaces < 0)
-            API_ERROR("nfaces", E_BADARGS);
-        if (!nodecnt && nfaces)
-            API_ERROR("nodecnt", E_BADARGS);
-        if (lnodelist < 0)
-            API_ERROR("lnodelist", E_BADARGS);
-        if (nfaces && lnodelist)
+            API_ERROR("nfaces<0", E_BADARGS);
+        if (nfaces)
         {
+            if (0 != origin && 1 != origin)
+                API_ERROR("origin", E_BADARGS);
+            if (!nodecnt)
+                API_ERROR("nodecnt==0", E_BADARGS);
+            if (!lnodelist)
+                API_ERROR("lnodelist==0", E_BADARGS);
             if (!nodelist)
-                API_ERROR("nodelist", E_BADARGS);
+                API_ERROR("nodelist==0", E_BADARGS);
+            if (nzones < 0)
+                API_ERROR("nzones<0", E_BADARGS);
+            if (nzones)
+            {
+                if ((lo_offset < 0) || (lo_offset >= nzones))
+                    API_ERROR("lo_offset", E_BADARGS);
+                if ((hi_offset < 0) || (hi_offset >= nzones))
+                    API_ERROR("hi_offset", E_BADARGS);
+                if (lo_offset > hi_offset)
+                    API_ERROR("hi_offset", E_BADARGS);
+                if (!facecnt)
+                    API_ERROR("facecnt==0", E_BADARGS);
+                if (!lfacelist)
+                    API_ERROR("lfacelist==0", E_BADARGS);
+                if (!facelist)
+                    API_ERROR("facelist==0", E_BADARGS);
+            }
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("nfaces==0 || lodelist==0", E_EMPTYOBJECT);
+            API_ERROR("nfaces==0", E_EMPTYOBJECT);
         }
-        else
-        {
-            /* this is an intentionally empty object */
-            nfaces = 0;
-            nodecnt = 0;
-            lnodelist = 0;
-            nodelist = 0;
-            extface = 0;
-            nzones = 0;
-            facecnt = 0;
-            lfacelist = 0;
-            facelist = 0;
-            origin = 0; /* HDF5 driver needs something non-zero */
-            lo_offset = 0;
-            hi_offset = 0;
-        }
-        if (0 != origin && 1 != origin)
-            API_ERROR("origin", E_BADARGS);
-        if (nzones>0 && ((lo_offset < 0) || (lo_offset >= nzones)))
-            API_ERROR("lo_offset", E_BADARGS);
-        if (nzones>0 && ((hi_offset < 0) || (hi_offset >= nzones)))
-            API_ERROR("hi_offset", E_BADARGS);
-        if (lo_offset > hi_offset)
-            API_ERROR("hi_offset", E_BADARGS);
-
         if (!dbfile->pub.p_phzl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_phzl) (dbfile, (char *)name, nfaces, nodecnt,
-                                       lnodelist, nodelist, (char *)extface,
+        retval = (dbfile->pub.p_phzl) (dbfile, name, nfaces, nodecnt,
+                                       lnodelist, nodelist, extface,
                                        nzones, facecnt, lfacelist, facelist,
                                        origin, lo_offset, hi_offset,
                                        optlist);
@@ -9458,7 +9340,7 @@ DBPutCsgmesh(DBfile *dbfile, const char *name, int ndims,
              int nbounds,
              const int *typeflags, const int *bndids/*optional*/,
              const void *coeffs, int lcoeffs, int datatype,
-             const double *extents, const char *zonel_name, DBoptlist *optlist)
+             const double *extents, const char *zonel_name, DBoptlist const *optlist)
 {
     int retval;
 
@@ -9469,48 +9351,35 @@ DBPutCsgmesh(DBfile *dbfile, const char *name, int ndims,
             API_ERROR("DBPutCsgmesh", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("CSGmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("CSGmesh name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (nbounds < 0)
             API_ERROR("nbounds<0", E_BADARGS);
-        if (ndims < 0)
-            API_ERROR("ndims<0", E_BADARGS);
-        if (lcoeffs < 0)
-            API_ERROR("lcoeffs<0", E_BADARGS);
-        if (ndims && nbounds && lcoeffs)
+        if (nbounds)
         {
+            if (ndims < 0)
+                API_ERROR("ndims<0", E_BADARGS);
+            if (lcoeffs < 0)
+                API_ERROR("lcoeffs<0", E_BADARGS);
             if (!(ndims == 2 || ndims == 3))
                 API_ERROR("ndims must be either 2 or 3", E_BADARGS);
             if (!typeflags) API_ERROR("typeflags==0", E_BADARGS);
             if (!coeffs) API_ERROR("coeffs==0", E_BADARGS);
             if (!extents) API_ERROR("extents==0", E_BADARGS);
             if (!zonel_name || !*zonel_name) API_ERROR("zonel_name", E_BADARGS);
-            if (db_VariableNameValid((char *)zonel_name) == 0)
+            if (db_VariableNameValid(zonel_name) == 0)
                 API_ERROR("zonelist name", E_INVALIDNAME);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
             API_ERROR("nbounds==0 || ndims==0 || lcoeffs==0", E_EMPTYOBJECT);
         }
-        else
-        {
-            /* this is an intentionally empty object */
-            ndims = 0;
-            nbounds = 0;
-            typeflags = 0;
-            bndids = 0;
-            coeffs = 0;
-            lcoeffs = 0;
-            datatype = DB_FLOAT;
-            extents = 0;
-            zonel_name = 0;
-        }
         if (!dbfile->pub.p_csgm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_csgm) (dbfile, (char *)name, ndims,
+        retval = (dbfile->pub.p_csgm) (dbfile, name, ndims,
                                      nbounds, typeflags, bndids, coeffs,
                                      lcoeffs, datatype, extents, zonel_name,
                                      optlist);
@@ -9579,7 +9448,7 @@ DBPutCSGZonelist(DBfile *dbfile, const char *name, int nregs,
                  const int *typeflags,
                  const int *leftids, const int *rightids,
                  const void *xforms, int lxforms, int datatype,
-                 int nzones, const int *zonelist, DBoptlist *optlist)
+                 int nzones, const int *zonelist, DBoptlist const *optlist)
 {
     int retval;
 
@@ -9590,16 +9459,16 @@ DBPutCSGZonelist(DBfile *dbfile, const char *name, int nregs,
             API_ERROR("DBPutCSGZonelist", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("zonelist name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("zonelist name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
-        if (nregs < 0)
-            API_ERROR("nregs", E_BADARGS);
-        if (nzones < 0)
-            API_ERROR("nzones", E_BADARGS);
-        if (nregs && nzones)
+        if (nzones)
         {
+            if (nregs < 0)
+                API_ERROR("nregs", E_BADARGS);
+            if (nzones < 0)
+                API_ERROR("nzones", E_BADARGS);
             if (!typeflags)
                 API_ERROR("typeflags", E_BADARGS);
             if (!leftids)
@@ -9614,26 +9483,13 @@ DBPutCSGZonelist(DBfile *dbfile, const char *name, int nregs,
         else if (!SILO_Globals.allowEmptyObjects)
         {
             /* this is an empty object but we don't know if it was intentional */
-            API_ERROR("ndims==0 || nnodes==0 || nzones==0", E_EMPTYOBJECT);
-        }
-        else
-        {
-            /* this is an intentionally empty object */
-            nregs = 0;
-            typeflags = 0;
-            leftids = 0;
-            rightids = 0;
-            xforms = 0;
-            lxforms = 0;
-            datatype = DB_FLOAT;
-            nzones = 0;
-            zonelist = 0;
+            API_ERROR("nregs==0 || nzones==0", E_EMPTYOBJECT);
         }
 
         if (!dbfile->pub.p_csgzl)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_csgzl) (dbfile, (char *)name, nregs,
+        retval = (dbfile->pub.p_csgzl) (dbfile, name, nregs,
                                         typeflags, leftids, rightids,
                                         xforms, lxforms, datatype, 
                                         nzones, zonelist, optlist);
@@ -9696,10 +9552,11 @@ DBGetCSGZonelist(DBfile *dbfile, const char *name)
  *-------------------------------------------------------------------------*/
 PUBLIC int
 DBPutCsgvar(DBfile *dbfile, const char *vname, const char *meshname,
-            int nvars, char *varnames[], void *vars[],
-            int nvals, int datatype, int centering, DBoptlist *optlist)
+            int nvars, char const * const *varnames, DBVCP2_t _vars,
+            int nvals, int datatype, int centering, DBoptlist const *optlist)
 {
     int retval;
+    void const * const *vars = (void const * const *) _vars;
 
     API_BEGIN2("DBPutCsgvar", int, -1, vname) {
         if (!dbfile)
@@ -9708,44 +9565,34 @@ DBPutCsgvar(DBfile *dbfile, const char *vname, const char *meshname,
             API_ERROR("DBPutCsgvar", E_GRABBED) ; 
         if (!vname || !*vname)
             API_ERROR("CSGvar name", E_BADARGS);
-        if (db_VariableNameValid((char *)vname) == 0)
+        if (db_VariableNameValid(vname) == 0)
             API_ERROR("CSGvar name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, vname))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
-        if (!meshname || !*meshname)
-            API_ERROR("CSGmesh name", E_BADARGS);
-        if (db_VariableNameValid((char *)meshname) == 0)
-            API_ERROR("CSGmesh name", E_INVALIDNAME);
-        if (nvars < 0)
-            API_ERROR("nvars<0", E_BADARGS);
         if (nvals < 0)
             API_ERROR("nvals<0", E_BADARGS);
-        if (nvars && nvals)
+        if (nvals)
         {
             int i;
+            if (!meshname || !*meshname)
+                API_ERROR("CSGmesh name", E_BADARGS);
+            if (nvars <= 0)
+                API_ERROR("nvars<0", E_BADARGS);
+            if (db_VariableNameValid(meshname) == 0)
+                API_ERROR("CSGmesh name", E_INVALIDNAME);
             for (i = 0; i < nvars && vars; i++)
                 if (!vars[i]) vars = 0;
             for (i = 0; i < nvars && varnames; i++)
                 if (!varnames[i] && !*varnames[i]) varnames = 0;
             if (!vars) API_ERROR("vars==0 || vars[i]==0", E_BADARGS);
             if (!varnames) API_ERROR("varnames==0 || varnames[i]==0", E_BADARGS);
+            if (!(centering == DB_ZONECENT || centering == DB_BNDCENT)) 
+                API_ERROR("centering", E_BADARGS);
         }
         else if (!SILO_Globals.allowEmptyObjects)
         {
-            API_ERROR("nvals==0 || nvars==0", E_EMPTYOBJECT);
+            API_ERROR("nvars=0 || nvals=0", E_EMPTYOBJECT);
         }
-        else
-        {
-            /* this is an intentionally empty object */
-            nvars = 0;
-            varnames = 0;
-            vars = 0;
-            nvals = 0;
-            datatype = DB_FLOAT;
-            centering = DB_ZONECENT;
-        }
-        if (!(centering == DB_ZONECENT || centering == DB_BNDCENT)) 
-            API_ERROR("centering", E_BADARGS);
         if (!dbfile->pub.p_csgv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
@@ -10224,17 +10071,27 @@ CSGM_CalcExtents(int datatype, int ndims, int nbounds,
  *    double.
  *--------------------------------------------------------------------*/
 INTERNAL int
-_DBQMCalcExtents(DB_DTPTR2 _coord_arrays, int datatype, int *min_index,
-                 int *max_index, int *dims, int ndims, int coordtype,
+_DBQMCalcExtents(DBVCP2_t coord_arrays, int datatype, int const *min_index,
+                 int const *max_index, int const *dims, int ndims, int coordtype,
                  void *min_extents, void *max_extents)
 {
     float         *x = NULL, *y = NULL, *z = NULL;
     double        *dx = NULL, *dy = NULL, *dz = NULL;
     double        *dmin_extents = NULL, *dmax_extents = NULL;
     float         *fmin_extents = NULL, *fmax_extents = NULL;
-    int            i;
+    int            i, is_empty = 1;
     char          *me = "_DBQMCalcExtents";
-    DB_DTPTR**    coord_arrays = (DB_DTPTR**) _coord_arrays;
+
+    for (i = 0; i < ndims; i++)
+    {
+        if (dims[i] > 0)
+        {
+            is_empty = 0;
+            break;
+        }
+    }
+
+    if (is_empty) return 0;
 
     if (datatype == DB_FLOAT)
     {
@@ -10261,13 +10118,13 @@ _DBQMCalcExtents(DB_DTPTR2 _coord_arrays, int datatype, int *min_index,
     /* Read default coordinate variables. */
     switch (ndims) {
         case 3:
-            z = coord_arrays[2];
+            z = ((float**)coord_arrays)[2];
             /* Fall through */
         case 2:
-            y = coord_arrays[1];
+            y = ((float**)coord_arrays)[1];
             /* Fall through */
         case 1:
-            x = coord_arrays[0];
+            x = ((float**)coord_arrays)[0];
             break;
         default:
             break;
@@ -10434,7 +10291,7 @@ _DBQMCalcExtents(DB_DTPTR2 _coord_arrays, int datatype, int *min_index,
  *    I removed the unused argument ny.
  *--------------------------------------------------------------------------*/
 INTERNAL int
-_DBSubsetMinMax2(DB_DTPTR1 arr, int datatype, float *amin, float *amax, int nx,
+_DBSubsetMinMax2(void const *arr, int datatype, float *amin, float *amax, int nx,
                  int ixmin, int ixmax, int iymin, int iymax)
 {
     int            k, j, index;
@@ -10504,7 +10361,7 @@ _DBSubsetMinMax2(DB_DTPTR1 arr, int datatype, float *amin, float *amax, int nx,
  *      passed in as void* variables.
  *--------------------------------------------------------------------*/
 INTERNAL int
-UM_CalcExtents(DB_DTPTR2 coord_arrays, int datatype, int ndims, int nnodes,
+UM_CalcExtents(DBVCP2_t coord_arrays, int datatype, int ndims, int nnodes,
                void *min_extents, void *max_extents)
 {
     int            i, j;
@@ -10513,6 +10370,8 @@ UM_CalcExtents(DB_DTPTR2 coord_arrays, int datatype, int ndims, int nnodes,
     float         *fmin_extents = NULL, *fmax_extents = NULL;
     float        **fcoord_arrays = NULL;
 
+    if (nnodes <= 0) return 0;
+
     if (datatype == DB_DOUBLE) {
 
         dmin_extents = (double *)min_extents;
@@ -10649,7 +10508,7 @@ UM_CalcExtents(DB_DTPTR2 coord_arrays, int datatype, int ndims, int nnodes,
  *    Added support for nameschemes options on multi-block objects.
  *-------------------------------------------------------------------------*/
 INTERNAL int
-db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
+db_ProcessOptlist(int objtype, DBoptlist const * const optlist)
 {
     int             i, j, *ip = NULL, unused = 0;
     char           *me = "db_ProcessOptlist";
@@ -10733,7 +10592,7 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         break;
 
                     case DBOPT_BNDNAMES:
-                        _csgm._bndnames = optlist->values[i];
+                        _csgm._bndnames = (char **)optlist->values[i];
                         break;
 
                     case DBOPT_HIDE_FROM_GUI:
@@ -10764,6 +10623,14 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _csgm._extensive = DEREF(int, optlist->values[i]);
                         break;
 
+                    case DBOPT_MISSING_VALUE:
+                        _csgm._missing_value = DEREF(double, optlist->values[i]);
+                        break;
+
+                    case DBOPT_ALT_NODENUM_VARS:
+                        _csgm._alt_nodenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -10940,6 +10807,18 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _pm._extensive = DEREF(int, optlist->values[i]);
                         break;
 
+                    case DBOPT_MISSING_VALUE:
+                        _pm._missing_value = DEREF(double, optlist->values[i]);
+                        break;
+
+                    case DBOPT_GHOST_NODE_LABELS:
+                        _pm._ghost_node_labels = (char *)optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_NODENUM_VARS:
+                        _pm._alt_nodenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -10968,7 +10847,7 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         break;
 
                     case DBOPT_COORDSYS:
-                        _qm._coordsys = DEREF(int, optlist->values[i]);
+                        _qm._coord_sys = DEREF(int, optlist->values[i]);
                         break;
 
                     case DBOPT_FACETYPE:
@@ -11080,6 +10959,26 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _qm._extensive = DEREF(int, optlist->values[i]);
                         break;
 
+                    case DBOPT_MISSING_VALUE:
+                        _qm._missing_value = DEREF(double, optlist->values[i]);
+                        break;
+
+                    case DBOPT_GHOST_NODE_LABELS:
+                        _qm._ghost_node_labels = (char *)optlist->values[i];
+                        break;
+
+                    case DBOPT_GHOST_ZONE_LABELS:
+                        _qm._ghost_zone_labels = (char *)optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_NODENUM_VARS:
+                        _qm._alt_nodenum_vars = (char **) optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_ZONENUM_VARS:
+                        _qm._alt_zonenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11108,7 +11007,7 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         break;
 
                     case DBOPT_COORDSYS:
-                        _um._coordsys = DEREF(int, optlist->values[i]);
+                        _um._coord_sys = DEREF(int, optlist->values[i]);
                         break;
 
                     case DBOPT_TOPO_DIM:
@@ -11227,6 +11126,18 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _um._extensive = DEREF(int, optlist->values[i]);
                         break;
 
+                    case DBOPT_MISSING_VALUE:
+                        _um._missing_value = DEREF(double, optlist->values[i]);
+                        break;
+
+                    case DBOPT_GHOST_NODE_LABELS:
+                        _um._ghost_node_labels = (char *)optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_NODENUM_VARS:
+                        _um._alt_nodenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11247,6 +11158,14 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _uzl._llong_gzoneno = DEREF(int, optlist->values[i]);
                         break;
 
+                    case DBOPT_GHOST_ZONE_LABELS:
+                        _uzl._ghost_zone_labels = (char *)optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_ZONENUM_VARS:
+                        _uzl._alt_zonenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11267,6 +11186,14 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _phzl._llong_gzoneno = DEREF(int, optlist->values[i]);
                         break;
 
+                    case DBOPT_GHOST_ZONE_LABELS:
+                        _phzl._ghost_zone_labels = (char *)optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_ZONENUM_VARS:
+                        _phzl._alt_zonenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11287,6 +11214,10 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _csgzl._zonenames = (char **) optlist->values[i];
                         break;
 
+                    case DBOPT_ALT_ZONENUM_VARS:
+                        _csgzl._alt_zonenum_vars = (char **) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11480,6 +11411,18 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _mm._repr_block_idx = DEREF(int,optlist->values[i])+1;
                         break;
 
+                    case DBOPT_MISSING_VALUE:
+                        _mm._missing_value = DEREF(double, optlist->values[i]);
+                        break;
+
+                    case DBOPT_ALT_NODENUM_VARS:
+                        _mm._alt_nodenum_vars = (char**) optlist->values[i];
+                        break;
+
+                    case DBOPT_ALT_ZONENUM_VARS:
+                        _mm._alt_zonenum_vars = (char**) optlist->values[i];
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11528,6 +11471,14 @@ db_ProcessOptlist(int objtype, const DBoptlist *const optlist)
                         _cu._reference = (char *)optlist->values[i];
                         break;
 
+                    case DBOPT_COORDSYS:
+                        _cu._coord_sys = DEREF(int, optlist->values[i]);
+                        break;
+
+                    case DBOPT_MISSING_VALUE:
+                        _cu._missing_value = DEREF(double, optlist->values[i]);
+                        break;
+
                     default:
                         unused++;
                         break;
@@ -11637,7 +11588,7 @@ DBInqCompoundarray(DBfile *dbfile, const char *array_name,
 
         if (!dbfile->pub.g_ca)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
-        ca = DBGetCompoundarray(dbfile, (char *)array_name);
+        ca = DBGetCompoundarray(dbfile, array_name);
         if (!ca)
             API_ERROR("DBGetCompoundarray", E_CALLFAIL);
 
@@ -11704,7 +11655,7 @@ DBGetComponentNames(DBfile *dbfile, const char *objname,
         if (!objname || !*objname)
             API_ERROR("object name", E_BADARGS);
 
-        retval = (dbfile->pub.g_compnames) (dbfile, (char *)objname,
+        retval = (dbfile->pub.g_compnames) (dbfile, objname,
                                             comp_names, file_names);
         API_RETURN(retval);
     }
@@ -11779,6 +11730,7 @@ db_SplitShapelist (DBucdmesh *um)
     {
         splits[0] = max_index + 1;
         splits[1] = nzones;
+        splits[2] = 0;
     }
 
     isplit = 0;
@@ -11878,6 +11830,7 @@ db_ResetGlobalData_Csgmesh () {
    memset(&_csgm, 0, sizeof(_csgm));
    _csgm._use_specmf = DB_OFF;
    _csgm._group_no = -1;
+   _csgm._missing_value = DB_MISSING_VALUE_NOT_SET;
 
    return 0;
 }
@@ -11919,6 +11872,7 @@ db_ResetGlobalData_PointMesh (int ndims) {
    _pm._ndims = ndims;
    _pm._nspace = ndims;
    _pm._group_no = -1;
+   _pm._missing_value = DB_MISSING_VALUE_NOT_SET;
    return 0;
 }
 
@@ -11968,13 +11922,14 @@ db_ResetGlobalData_QuadMesh (int ndims) {
    FREE(_qm._meshname);
    memset(&_qm, 0, sizeof(_qm));
 
-   _qm._coordsys = DB_OTHER;
+   _qm._coord_sys = DB_OTHER;
    _qm._facetype = DB_RECTILINEAR;
    _qm._ndims = ndims;
    _qm._nspace = ndims;
    _qm._planar = DB_AREA;
    _qm._use_specmf = DB_OFF;
    _qm._group_no = -1;
+   _qm._missing_value = DB_MISSING_VALUE_NOT_SET;
 
    return 0;
 }
@@ -12000,6 +11955,7 @@ INTERNAL void
 db_ResetGlobalData_Curve (void) {
 
    memset (&_cu, 0, sizeof(_cu)) ;
+   _cu._missing_value = DB_MISSING_VALUE_NOT_SET;
 }
 
 /*----------------------------------------------------------------------
@@ -12052,7 +12008,7 @@ INTERNAL int
 db_ResetGlobalData_Ucdmesh (int ndims, int nnodes, int nzones) {
 
    memset(&_um, 0, sizeof(_um));
-   _um._coordsys = DB_OTHER;
+   _um._coord_sys = DB_OTHER;
    _um._facetype = DB_RECTILINEAR;
    _um._ndims = ndims;
    _um._nnodes = nnodes;
@@ -12060,6 +12016,7 @@ db_ResetGlobalData_Ucdmesh (int ndims, int nnodes, int nzones) {
    _um._planar = DB_OTHER;
    _um._use_specmf = DB_OFF;
    _um._group_no = -1;
+   _um._missing_value = DB_MISSING_VALUE_NOT_SET;
 
    return 0;
 }
@@ -12135,6 +12092,7 @@ db_ResetGlobalData_MultiMesh (void) {
    _mm._nmat = -1;
    _mm._blockorigin = 1;
    _mm._grouporigin = 1;
+   _mm._missing_value = DB_MISSING_VALUE_NOT_SET;
    return 0;
 }
 
@@ -12204,8 +12162,12 @@ db_FullName2BaseName(const char *path)
  *    Made this function public, replacing 'db_' with 'DB' in name.
  *--------------------------------------------------------------------*/
 PUBLIC void 
-DBStringArrayToStringList(char **strArray, int n,
-                           char **strList, int *m)
+DBStringArrayToStringList(
+    char const * const *strArray,
+    int n,
+    char **strList,
+    int *m
+)
 {
     int i, len;
     char *s = NULL;
@@ -12229,7 +12191,7 @@ DBStringArrayToStringList(char **strArray, int n,
          else
              len += 2;
      }
-     s = malloc(len+1);
+     s = (char*)malloc(len+1);
      for (i=len=0; i<n; i++) {
          if (i) s[len++] = ';';
          if (strArray[i])
@@ -12293,13 +12255,10 @@ DBStringArrayToStringList(char **strArray, int n,
  *    as accept an input value or nothing at all.
  *--------------------------------------------------------------------*/
 PUBLIC char **
-DBStringListToStringArray(char *strList, int *_n, int handleSlashSwap,
-    int skipSemicolonAtIndexZero)
+DBStringListToStringArray(char const *strList, int *_n, int skipSemicolonAtIndexZero)
 {
-    int i, l, n, add1 = 0, strLen;
+    int i, l, n, add1 = 0;
     char **retval;
-    int *colonAt = 0;
-    int needToSlashSwap = 0;
 
     /* if n is unspecified (<0), compute it by counting semicolons */
     if (_n == 0 || *_n < 0)
@@ -12313,7 +12272,6 @@ DBStringListToStringArray(char *strList, int *_n, int handleSlashSwap,
                 n++;
             i++;
         }
-        strLen = i;
     }
     else
     {
@@ -12321,8 +12279,6 @@ DBStringListToStringArray(char *strList, int *_n, int handleSlashSwap,
     }
 
     retval = (char**) calloc(n+add1, sizeof(char*));
-    if (handleSlashSwap)
-        colonAt = (int *) calloc(n, sizeof(int));
     for (i=0, l=(skipSemicolonAtIndexZero&&strList[0]==';')?1:0; i<n; i++)
     {
         if (strList[l] == ';')
@@ -12337,57 +12293,110 @@ DBStringListToStringArray(char *strList, int *_n, int handleSlashSwap,
         }
         else
         {
-            int lstart = l;
+            int len, lstart = l;
             while (strList[l] != ';' && strList[l] != '\0')
-            {
-                /* Since we're already marching through characters looking
-                   for a ';', if we're supposed to swap slash characters too,
-                   keep track of colons also. We keep track of the LAST ':'
-                   we see in colonAt[i]. */
-                if (handleSlashSwap)
-                {
-#if !defined(_WIN32) /* linux case */
-                    if (strList[l] == '\\')
-#else                /* windows case */
-                    if (strList[l] == '/')
-#endif
-                        needToSlashSwap = 1;
-                    if (strList[l] == ':')
-                        colonAt[i] = l-lstart;
-                }
                 l++;
-            }
-            strList[l] = '\0';
-            retval[i] = STRDUP(&strList[lstart]);
+            len = l-lstart;
+            retval[i] = (char *) malloc(len+1);
+            memcpy(retval[i],&strList[lstart],len);
+            retval[i][len] = '\0';
             l++;
         }
     }
     if (add1) retval[i] = 0;
 
-    /* Ok, now swap slash characters if requested and needed */
-    if (handleSlashSwap)
+    /* Return value of n computed if requested */
+    if (_n && *_n < 0) *_n = n;
+
+    return retval;
+}
+
+INTERNAL int 
+db_StringListToStringArrayMBOpt(char *strList, char ***retArray, char **alloc_flag, int nblocks)
+{
+    int i=0, s=0, n=0, hasColon=0, nearlyDone = 0, completelyDone = 0, slashCharsToSwap[128];
+    char **strArray;
+    static char const *me = "DBStringListToStringArrayMBOpt";
+
+    if (!strList) return 0;
+
+    if (nblocks <= 0)
+        return db_perror("nblocks", E_BADARGS, me);
+
+    strArray = (char **) malloc(nblocks * sizeof(char*));
+    if (strList[0] == ';')
+        i = 1;
+    strArray[n++] = &strList[i];
+    while (!completelyDone)
     {
-        if (needToSlashSwap)
+        switch (strList[i])
         {
-            for (i=0; i < n; i++)
+            case '\0':
+                completelyDone = 1; // note fall-through to next case
+            case ';':
             {
-                for (l = 0; l < colonAt[i]; l++)
+                strList[i] = '\0';
+                if (!completelyDone) i++;
+                if (strList[i] != '\0')
+                    strArray[n++] = &strList[i];
+                if (hasColon)
                 {
+                    int j;
+                    for (j = 0; j < hasColon; j++)
+#if !defined(_WIN32)
+                        strList[slashCharsToSwap[j]] = '/';
+#else
+                        strList[slashCharsToSwap[j]] = '\\';
+#endif
+                }
+                s = 0;
+                hasColon = 0;
+                break;
+            }
 #if !defined(_WIN32) /* linux case */
-                    if (retval[i][l] == '\\') retval[i][l] = '/';
+            case '\\':
 #else                /* windows case */
-                    if (retval[i][l] == '/') retval[i][l] = '\\';
-#endif
+            case '/':
+#endif 
+            {
+                if (hasColon)
+                    break;
+                slashCharsToSwap[s++] = i;
+                if (s == sizeof(slashCharsToSwap)/sizeof(slashCharsToSwap[0]))
+                {
+                    free(strList);
+                    free(strArray);
+                    return db_perror("exceeded slashCharsToSwap size", E_INTERNAL, me);
                 }
+                break;
+            }
+            case ':':
+            {
+                hasColon = s;
+                break;
             }
         }
-        free(colonAt);
+        if (!completelyDone)
+        {
+            if (strList[i] != '\0')
+                i++;
+            if (strList[i] == '\0')
+                nearlyDone = 1;
+        }
     }
 
-    /* Return value of n computed if requested */
-    if (_n && *_n < 0) *_n = n;
+    if (n != nblocks)
+    {
+        free(strArray);
+        return db_perror("incorrect number of block names", E_INTERNAL, me);
+    }
 
-    return retval;
+    /* ensure we store the originally allocated pointer for later free's */
+    *alloc_flag = strList;
+
+    *retArray = strArray;
+
+    return 0;
 }
 
 /*-------------------------------------------------------------------------
@@ -12531,11 +12540,11 @@ char *db_absoluteOf_path (const char *cwg,
       else if (cwg && strlen(cwg))
           result = db_join_path(cwg,pathname);
       else
-          result = safe_strdup("");
+          result = _db_safe_strdup("");
    }
    else
    {
-      result = safe_strdup("");
+      result = _db_safe_strdup("");
    }
    return result;
 }
@@ -12813,11 +12822,11 @@ char *db_join_path ( const char *a,
                   if (ok)
                      tmp = db_unsplit_path(t);
                }
-               t = db_cleanup_path(t);
+               db_cleanup_path(t);
             }
-            Pb = db_cleanup_path(Pb);
+            db_cleanup_path(Pb);
          }
-         Pa = db_cleanup_path(Pa);
+         db_cleanup_path(Pa);
       }
    }
    if (tmp != 0)
@@ -12963,7 +12972,7 @@ tryAgain:c = p->firstComponent;
         +-------------------------------------*/
 
          result = db_unsplit_path(p);
-         p      = db_cleanup_path(p);
+         db_cleanup_path(p);
       }
    }
    return result;
@@ -13166,7 +13175,7 @@ void DBFreeMrgtree(DBmrgtree *tree)
 {
     if (tree == 0)
         return;
-    DBWalkMrgtree(tree, DBFreeMrgnode, 0, DB_POSTORDER);
+    DBWalkMrgtree(tree, (DBmrgwalkcb) DBFreeMrgnode, 0, DB_POSTORDER);
     FREE(tree->name);
     FREE(tree->src_mesh_name);
     if (tree->mrgvar_onames)
@@ -13260,7 +13269,7 @@ DBLinearizeMrgtree(DBmrgtnode *tnode, int walk_order, void *data)
 }
 
 static void
-DBWalkMrgtree_r(DBmrgtnode *node, int *walk_order, DBmrgwalkcb wcb, void *wdata,
+DBWalkMrgtree_r(DBmrgtnode const *node, int *walk_order, DBmrgwalkcb wcb, void *wdata,
     int traversal_flags)
 {
     if (node == 0)
@@ -13298,7 +13307,7 @@ DBWalkMrgtree_r(DBmrgtnode *node, int *walk_order, DBmrgwalkcb wcb, void *wdata,
 }
 
 void
-DBWalkMrgtree(DBmrgtree *tree, DBmrgwalkcb cb, void *wdata, int traversal_flags)
+DBWalkMrgtree(DBmrgtree const *tree, DBmrgwalkcb cb, void *wdata, int traversal_flags)
 {
     int walk_order = 0;
     DBmrgtnode *start = tree->root;
@@ -13331,13 +13340,19 @@ DBMakeMrgtree(int source_mesh_type, int type_info_bits,
             API_ERROR("type_info_bits", E_BADARGS);
         if (max_root_descendents <= 0)
             API_ERROR("max_root_descendents", E_BADARGS);
-        if (NULL == (tree = ALLOC(DBmrgtree)))
-            API_ERROR(NULL, E_NOMEM);
+        tree = ALLOC(DBmrgtree);
+        if (!tree) API_ERROR(NULL, E_NOMEM);
         memset(tree, 0, sizeof(DBmrgtree));
-        if (NULL == (root = ALLOC(DBmrgtnode)))
+        root = ALLOC(DBmrgtnode);
+        if (!root) {
+            FREE(tree);
             API_ERROR(NULL, E_NOMEM);
+        }
         memset(root, 0, sizeof(DBmrgtnode));
-        if (NULL == (root->children = ALLOC_N(DBmrgtnode*, max_root_descendents))) {
+        root->children = ALLOC_N(DBmrgtnode*, max_root_descendents);
+        if (!root->children) {
+            FREE(root);
+            FREE(tree);
             API_ERROR(NULL, E_NOMEM);
         }
 
@@ -13377,8 +13392,8 @@ DBMakeMrgtree(int source_mesh_type, int type_info_bits,
 PUBLIC int
 DBAddRegion(DBmrgtree *tree, const char *region_name,
     int type_info_bits, int max_descendents, 
-    const char *maps_name, int nsegs, int *seg_ids,
-    int *seg_lens, int *seg_types, DBoptlist *opts)
+    const char *maps_name, int nsegs, int const *seg_ids,
+    int const *seg_lens, int const *seg_types, DBoptlist const *opts)
 {
     DBmrgtnode *tnode = NULL;
 
@@ -13395,13 +13410,6 @@ DBAddRegion(DBmrgtree *tree, const char *region_name,
         if (tree->cwr->num_children >= tree->cwr->max_children) {
             API_ERROR("exceeded max_descendents", E_BADARGS);
         }
-        if (NULL == (tnode = ALLOC(DBmrgtnode)))
-            API_ERROR(NULL, E_NOMEM);
-        memset(tnode, 0, sizeof(DBmrgtnode));
-        if (NULL == (tnode->children = ALLOC_N(DBmrgtnode*, max_descendents)) &&
-            max_descendents) {
-            API_ERROR(NULL, E_NOMEM);
-        }
         if (nsegs > 0)
         {
             if (seg_ids == 0)
@@ -13411,6 +13419,14 @@ DBAddRegion(DBmrgtree *tree, const char *region_name,
             if (seg_types == 0)
                 API_ERROR("seg_types", E_BADARGS);
         }
+        if (NULL == (tnode = ALLOC(DBmrgtnode)))
+            API_ERROR(NULL, E_NOMEM);
+        memset(tnode, 0, sizeof(DBmrgtnode));
+        if (NULL == (tnode->children = ALLOC_N(DBmrgtnode*, max_descendents)) &&
+            max_descendents) {
+            FREE(tnode);
+            API_ERROR(NULL, E_NOMEM);
+        }
 
         /* update internal node info */
         tnode->walk_order = -1;
@@ -13429,13 +13445,19 @@ DBAddRegion(DBmrgtree *tree, const char *region_name,
         {
             int i;
 
-            if (NULL == (tnode->seg_ids = ALLOC_N(int, nsegs))) {
-                API_ERROR(NULL, E_NOMEM);
-            }
-            if (NULL == (tnode->seg_lens = ALLOC_N(int, nsegs))) {
-                API_ERROR(NULL, E_NOMEM);
-            }
-            if (NULL == (tnode->seg_types = ALLOC_N(int, nsegs))) {
+            tnode->seg_ids = ALLOC_N(int, nsegs);
+            tnode->seg_lens = ALLOC_N(int, nsegs);
+            tnode->seg_types = ALLOC_N(int, nsegs);
+ 
+            if (!tnode->seg_ids || !tnode->seg_lens || !tnode->seg_types)
+            {
+                FREE(tnode->seg_types);
+                FREE(tnode->seg_lens);
+                FREE(tnode->seg_ids);
+                FREE(tnode->maps_name);
+                FREE(tnode->name);
+                FREE(tnode->children);
+                FREE(tnode);
                 API_ERROR(NULL, E_NOMEM);
             }
 
@@ -13467,9 +13489,9 @@ DBAddRegion(DBmrgtree *tree, const char *region_name,
 
 PUBLIC int
 DBAddRegionArray(DBmrgtree *tree, int nregns,
-    char **regn_names, int type_info_bits,
-    const char *maps_name, int nsegs, int *seg_ids,
-    int *seg_lens, int *seg_types, DBoptlist *opts)
+    char const * const *regn_names, int type_info_bits,
+    char const *maps_name, int nsegs, int const *seg_ids,
+    int const *seg_lens, int const *seg_types, DBoptlist const *opts)
 {
     DBmrgtnode *tnode = NULL;
     int i;
@@ -13506,6 +13528,7 @@ DBAddRegionArray(DBmrgtree *tree, int nregns,
         if (strchr(regn_names[0], '%') != 0)
         {
             if (NULL == (tnode->names = ALLOC_N(char*, 1))) {
+                FREE(tnode);
                 API_ERROR(NULL, E_NOMEM);
             }
             tnode->names[0] = STRDUP(regn_names[0]);
@@ -13513,6 +13536,7 @@ DBAddRegionArray(DBmrgtree *tree, int nregns,
         else
         {
             if (NULL == (tnode->names = ALLOC_N(char*, nregns))) {
+                FREE(tnode);
                 API_ERROR(NULL, E_NOMEM);
             }
             for (i = 0; i < nregns; i++)
@@ -13526,14 +13550,23 @@ DBAddRegionArray(DBmrgtree *tree, int nregns,
         tnode->nsegs = nsegs;
         if (nsegs > 0)
         {
-
-            if (NULL == (tnode->seg_ids = ALLOC_N(int, nsegs*nregns))) {
-                API_ERROR(NULL, E_NOMEM);
-            }
-            if (NULL == (tnode->seg_lens = ALLOC_N(int, nsegs*nregns))) {
-                API_ERROR(NULL, E_NOMEM);
-            }
-            if (NULL == (tnode->seg_types = ALLOC_N(int, nsegs*nregns))) {
+            tnode->seg_ids = ALLOC_N(int, nsegs*nregns);
+            tnode->seg_lens = ALLOC_N(int, nsegs*nregns);
+            tnode->seg_types = ALLOC_N(int, nsegs*nregns);
+
+            if (!tnode->seg_ids || !tnode->seg_lens || !tnode->seg_types) {
+                FREE(tnode->seg_types);
+                FREE(tnode->seg_lens);
+                FREE(tnode->seg_ids);
+                if (strchr(regn_names[0], '%') != 0) {
+                    FREE(tnode->names[0]);
+                    FREE(tnode->names);
+                } else {
+                    for (i = 0; i < nregns; i++)
+                        FREE(tnode->names[i]);
+                    FREE(tnode->names);
+                }
+                FREE(tnode);
                 API_ERROR(NULL, E_NOMEM);
             }
 
@@ -13563,7 +13596,7 @@ DBAddRegionArray(DBmrgtree *tree, int nregns,
 }
 
 PUBLIC int
-DBSetCwr(DBmrgtree *tree, const char *path)
+DBSetCwr(DBmrgtree *tree, char const *path)
 {
     int retval = -1;
 
@@ -13603,7 +13636,7 @@ DBSetCwr(DBmrgtree *tree, const char *path)
     API_END_NOPOP;  /* BEWARE: If API_RETURN above is removed use API_END */
 }
 
-PUBLIC const char *
+PUBLIC char const *
 DBGetCwr(DBmrgtree *tree)
 {
     const char *retval = NULL;
@@ -13620,8 +13653,8 @@ DBGetCwr(DBmrgtree *tree)
 }
 
 PUBLIC int
-DBPutMrgtree(DBfile *dbfile, const char *name, const char *mesh_name,
-    DBmrgtree *tree, DBoptlist *opts)
+DBPutMrgtree(DBfile *dbfile, char const *name, char const *mesh_name,
+    DBmrgtree const *tree, DBoptlist const *opts)
 {
     int retval;
 
@@ -13633,18 +13666,18 @@ DBPutMrgtree(DBfile *dbfile, const char *name, const char *mesh_name,
             API_ERROR("DBPutMrgtree", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("mrgtree name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("mrgtree name", E_INVALIDNAME);
         if (!mesh_name || !*mesh_name)
             API_ERROR("mesh_name", E_BADARGS);
-        if (db_VariableNameValid((char *)mesh_name) == 0)
+        if (db_VariableNameValid(mesh_name) == 0)
             API_ERROR("mesh_name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
         if (NULL == dbfile->pub.p_mrgt)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_mrgt) (dbfile, (char *)name, (char *)mesh_name,
+        retval = (dbfile->pub.p_mrgt) (dbfile, name, mesh_name,
                                        tree, opts); 
 
         db_FreeToc(dbfile);
@@ -13668,7 +13701,7 @@ DBGetMrgtree(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_mrgt)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mrgt) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_mrgt) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -13676,9 +13709,9 @@ DBGetMrgtree(DBfile *dbfile, const char *name)
 
 PUBLIC int
 DBPutGroupelmap(DBfile *dbfile, const char *name,
-    int num_segments, int *groupel_types, int *segment_lengths,
-    int *segment_ids, int **segment_data, void **segment_fracs,
-    int fracs_data_type, DBoptlist *opts)
+    int num_segments, int const *groupel_types, int const *segment_lengths,
+    int const *segment_ids, int const * const *segment_data, DBVCP2_t segment_fracs,
+    int fracs_data_type, DBoptlist const *opts)
 {
     int retval;
 
@@ -13689,7 +13722,7 @@ DBPutGroupelmap(DBfile *dbfile, const char *name,
             API_ERROR("DBPutGroupelmap", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("groupel map name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("groupel map name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -13704,7 +13737,7 @@ DBPutGroupelmap(DBfile *dbfile, const char *name,
         if (!dbfile->pub.p_grplm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.p_grplm) (dbfile, (char *)name,
+        retval = (dbfile->pub.p_grplm) (dbfile, name,
             num_segments, groupel_types, segment_lengths, segment_ids,
             segment_data, segment_fracs, fracs_data_type, opts);
 
@@ -13729,7 +13762,7 @@ DBGetGroupelmap(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_grplm)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_grplm) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_grplm) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -13737,8 +13770,8 @@ DBGetGroupelmap(DBfile *dbfile, const char *name)
 
 PUBLIC int
 DBPutMrgvar(DBfile *dbfile, const char *name, const char *mrgt_name,
-    int ncomps, char **compnames, int nregns, char **reg_pnames,
-    int datatype, void **data, DBoptlist *opts)
+    int ncomps, char const * const *compnames, int nregns, char const * const *reg_pnames,
+    int datatype, DBVCP2_t data, DBoptlist const *opts)
 {
     int retval;
 
@@ -13749,11 +13782,11 @@ DBPutMrgvar(DBfile *dbfile, const char *name, const char *mrgt_name,
             API_ERROR("DBPutMrgvar", E_GRABBED) ; 
         if (!name || !*name)
             API_ERROR("mrgvar name", E_BADARGS);
-        if (db_VariableNameValid((char *)name) == 0)
+        if (db_VariableNameValid(name) == 0)
             API_ERROR("mrgvar name", E_INVALIDNAME);
         if (!mrgt_name || !*mrgt_name)
             API_ERROR("mrgt_name", E_BADARGS);
-        if (db_VariableNameValid((char *)mrgt_name) == 0)
+        if (db_VariableNameValid(mrgt_name) == 0)
             API_ERROR("mrgt_name", E_INVALIDNAME);
         if (!SILO_Globals.allowOverwrites && DBInqVarExists(dbfile, name))
             API_ERROR("overwrite not allowed", E_NOOVERWRITE);
@@ -13792,7 +13825,7 @@ DBGetMrgvar(DBfile *dbfile, const char *name)
         if (!dbfile->pub.g_mrgv)
             API_ERROR(dbfile->pub.name, E_NOTIMP);
 
-        retval = (dbfile->pub.g_mrgv) (dbfile, (char *)name);
+        retval = (dbfile->pub.g_mrgv) (dbfile, name);
         API_RETURN(retval);
     }
     API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
@@ -13829,16 +13862,201 @@ DBGetMrgvar(DBfile *dbfile, const char *name)
  *
  ***********************************************************************/
 char *  
-safe_strdup(const char *s)
+_db_safe_strdup(const char *s)
 {
     char *retval = NULL;
+    int n;
     
     if (!s) 
         return NULL;
             
-    retval = (char*)malloc(sizeof(char)*(strlen(s)+1));
-    strcpy(retval,s);
-    retval[strlen(s)] = '\0';
-        
+    n = strlen(s);
+    retval = (char*)malloc(sizeof(char)*(n+1));
+    memcpy(retval, s, n);
+    retval[n] = '\0';
+
     return(retval);
 }
+
+/*-------------------------------------------------------------------------
+ * Function:    different
+ *
+ * Purpose:     Determines if A and B are same or different based on an
+ *              absolute tolerance and relative tolerance.  A and B differ
+ *              if and only if
+ *
+ *                      | A-B | > ABSTOL
+ *
+ *              or
+ *
+ *                      2 | A-B |
+ *                      ---------  > RELTOL
+ *                       | A+B |
+ *
+ *              If ABSTOL or RELTOL is negative then the corresponding
+ *              test is not performed.  If both are negative then this
+ *              function degenerates to a `!=' operator.
+ *
+ * Return:      Success:        0 if same, 1 if different.
+ *
+ *              Failure:        never fails
+ *
+ * Programmer:  Robb Matzke
+ *              matzke at viper.llnl.gov
+ *              Feb  6 1997
+ *
+ * Modifications:
+ *
+ *  Mark C. Miller, Wed Nov 11 22:18:17 PST 2009
+ *  Added suppot for alternate relative diff option.
+ *
+ * Mark C. Miller, Tue Feb  7 15:18:38 PST 2012
+ * Made reltol_eps diff mutually exclusive with abstol || reltol diff.
+ *-------------------------------------------------------------------------
+ */
+int DBIsDifferentDouble(double a, double b, double abstol, double reltol, double reltol_eps)
+{
+   double       num, den;
+
+   /*
+    * First, see if we should use the alternate diff.
+    * check |A-B|/(|A|+|B|+EPS) in a way that won't overflow.
+    */
+   if (reltol_eps >= 0 && reltol > 0)
+   {
+      if ((a<0 && b>0) || (b<0 && a>0)) {
+         num = fabs (a/2 - b/2);
+         den = fabs (a/2) + fabs(b/2) + reltol_eps/2;
+         reltol /= 2;
+      } else {
+         num = fabs (a - b);
+         den = fabs (a) + fabs(b) + reltol_eps;
+      }
+      if (0.0==den && num) return 1;
+      if (num/den > reltol) return 1;
+      return 0;
+   }
+   else /* use the old Abs|Rel difference test */
+   {
+      /*
+       * Now the |A-B| but make sure it doesn't overflow which can only
+       * happen if one is negative and the other is positive.
+       */
+      if (abstol>0) {
+         if ((a<0 && b>0) || (b<0 && a>0)) {
+            if (fabs (a/2 - b/2) > abstol/2) return 1;
+         } else {
+            if (fabs(a-b) > abstol) return 1;
+         }
+      }
+
+      /*
+       * Now check 2|A-B|/|A+B| in a way that won't overflow.
+       */
+      if (reltol>0) {
+         if ((a<0 && b>0) || (b<0 && a>0)) {
+            num = fabs (a/2 - b/2);
+            den = fabs (a/2 + b/2);
+            reltol /= 2;
+         } else {
+            num = fabs (a - b);
+            den = fabs (a/2 + b/2);
+         }
+         if (0.0==den && num) return 1;
+         if (num/den > reltol) return 1;
+      }
+
+      if (abstol>0 || reltol>0) return 0;
+   }
+
+   /*
+    * Otherwise do a normal exact comparison.
+    */
+   return a!=b;
+}
+
+/*-------------------------------------------------------------------------
+ * Function:    differentll
+ *
+ * Purpose:     Implement above difference function for long long type. 
+ *
+ * Programmer:  Mark C. Miller, Mon Dec  7 07:05:39 PST 2009
+ *
+ * Modifications:
+ *   Mark C. Miller, Mon Dec  7 09:50:19 PST 2009
+ *   Change conditional compilation logic to compile this routine
+ *   whenever a double is NOT sufficient to hold full precision of long
+ *   or long long.
+ *
+ *   Mark C. Miller, Mon Jan 11 16:20:16 PST 2010
+ *   Made it compiled UNconditionally.
+ *-------------------------------------------------------------------------
+ */
+#define FABS(A) ((A)<0?-(A):(A))
+int DBIsDifferentLongLong(long long a, long long b, double abstol, double reltol, double reltol_eps)
+{
+
+   long long num, den;
+
+   /*
+    * First, see if we should use the alternate diff.
+    * check |A-B|/(|A|+|B|+EPS) in a way that won't overflow.
+    */
+   if (reltol_eps >= 0 && reltol > 0)
+   {
+      if ((a<0 && b>0) || (b<0 && a>0)) {
+         num = FABS (a/2 - b/2);
+         den = FABS (a/2) + FABS(b/2) + reltol_eps/2;
+         reltol /= 2;
+      } else {
+         num = FABS (a - b);
+         den = FABS (a) + FABS(b) + reltol_eps;
+      }
+      if (0.0==den && num) return 1;
+      if (num/den > reltol) return 1;
+      return 0;
+   }
+   else
+   {
+      /*
+       * Now the |A-B| but make sure it doesn't overflow which can only
+       * happen if one is negative and the other is positive.
+       */
+      if (abstol>0) {
+         if ((a<0 && b>0) || (b<0 && a>0)) {
+            if (FABS(a/2 - b/2) > abstol/2) return 1;
+         } else {
+            if (FABS(a-b) > abstol) return 1;
+         }
+      }
+
+      /*
+       * Now check 2|A-B|/|A+B| in a way that won't overflow.
+       */
+      if (reltol>0) {
+         if ((a<0 && b>0) || (b<0 && a>0)) {
+            num = FABS (a/2 - b/2);
+            den = FABS (a/2 + b/2);
+            reltol /= 2;
+         } else {
+            num = FABS (a - b);
+            den = FABS (a/2 + b/2);
+         }
+         if (0.0==den && num) return 1;
+         if (num/den > reltol) return 1;
+
+         if (abstol>0 || reltol>0) return 0;
+      }
+   }
+
+   /*
+    * Otherwise do a normal exact comparison.
+    */
+   return a!=b;
+}
+
+PUBLIC char *
+DBGetDatatypeString(int dt)
+{
+    return db_GetDatatypeString(dt);
+}
diff --git a/src/silo/silo.h.in b/src/silo/silo.h.in
index 34a1d9a..6cc9999 100644
--- a/src/silo/silo.h.in
+++ b/src/silo/silo.h.in
@@ -72,81 +72,44 @@ be used for advertising or product endorsement purposes.
 
 #include <stdio.h> /* for FILE* datatype for filters */
 
-/*
- * SILO exports for WIN32
- */
-#ifndef SILO_API
-  #ifdef _WIN32
-    #ifdef SILO_STATIC_LIBRARY
-      #define SILO_API
-    #else
-      #ifdef SILO_EXPORTS
-        #define SILO_API __declspec(dllexport)
-      #else
-        #define SILO_API __declspec(dllimport)
-      #endif
-    #endif
-  #else
-    #define SILO_API
-  #endif
-#endif
+#include <silo_exports.h>
 
-/* Set the base type for datatype'd pointers (that is pointers whose
-   ultimate type is deteremined by an additional 'int datatype' function
-   argument or struct member) as float (legacy) and void (modern). The
-   DB_DTPTR is the base type. The '1' and '2' variants are for singley
-   subscripted and doubley subscripted arrays, respectively. If the
-   definitions of DB_DTPTR below reference 'float', then this silo.h
-   header file was configured with --enable-legacy-datatyped-pointers
-   and it represents the legacy (float) pointers that the silo
-   library has always had since its original writing. If, instead,
-   you see 'void' (the default configuration), then this silo.h header
-   file is using the modern (void) pointers. In that case, note also
-   that because C compiler's often do not handle correctly nor
-   distinguish between a void* and a void**, both the singley and
-   doubley subscripted variants will have only a single star. Rest
-   assured they are still treated as doubley subscripted in the
-   implementation. */
-#define DB_DTPTR  @SILO_DTYPPTR@  /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR1 @SILO_DTYPPTR1@ /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR2 @SILO_DTYPPTR2@ /* NO_FORTRAN_DEFINE */
-
-/* Permit client to explicitly require the legacy mode
-   for datatyped pointers */
-#ifdef DB_USE_LEGACY_DTPTR
-#ifdef DB_USE_MODERN_DTPTR
-#error cannot specify BOTH legacy and modern datatyped pointers 
-#endif
-#undef DB_DTPTR  /* NO_FORTRAN_DEFINE */
-#undef DB_DTPTR1 /* NO_FORTRAN_DEFINE */
-#undef DB_DTPTR2 /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR  float   /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR1 float*  /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR2 float** /* NO_FORTRAN_DEFINE */
-#endif
+/* Why these Void Const Pointer (VCP) typedefs? (see below)... */
+typedef void const *                 DBVCP1_t; /* single level array */
+typedef void const *                 DBVCP2_t; /* double level array */
+typedef void const *                 DBVCP3_t; /* triple level array */
 
-/* Permit client to explicitly require the modern mode
-   for datatyped pointers */
-#ifdef DB_USE_MODERN_DTPTR
-#undef DB_DTPTR  /* NO_FORTRAN_DEFINE */
-#undef DB_DTPTR1 /* NO_FORTRAN_DEFINE */
-#undef DB_DTPTR2 /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR  void  /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR1 void* /* NO_FORTRAN_DEFINE */
-#define DB_DTPTR2 void* /* NO_FORTRAN_DEFINE */
-#endif
+/* And not these...
+typedef void const *                 DBVCP1_t;    single level array
+typedef void const * const *         DBVCP2_t;    double level array
+typedef void const * const * const * DBVCP3_t;    triple level array
 
-/* Macros to get multiply subscripted array constness correct
-   with C++ and C compilers */
-#if defined(__cplusplus) || defined(USE_CONST_DB_CONSTARR)
-#define DB_CONSTARR1 const * /* NO_FORTRAN_DEFINE */
-#define DB_CONSTARR2 const * const * /* NO_FORTRAN_DEFINE */
-#define DB_CONSTARR3 const * const * const * /* NO_FORTRAN_DEFINE */
-#else
-#define DB_CONSTARR1 * /* NO_FORTRAN_DEFINE */
-#define DB_CONSTARR2 ** /* NO_FORTRAN_DEFINE */
-#define DB_CONSTARR3 *** /* NO_FORTRAN_DEFINE */
-#endif
+Ideally, the later typedefs would be used in the Silo API wherever a caller
+needs to pass a single, double or triple level array of arbitrary type.
+
+However, for multi-level arrays (e.g. more than a single star*), if the caller
+doesn't explicitly cast a non-void pointer to the exact type including the
+const qualifiers, the later definitions create obscure and non-intuitive compiler
+warnings for C callers and outright errors for C++ callers.
+
+Basically, as counter-intuitive as it sounds neither C nor C++ compilers can handle
+passing something like a 'double **' as an argument to a function expecting a
+'void const * const *'.
+
+A good reference on this issue for C is http://c-faq.com/ansi/constmismatch.html
+A good reference for C++ is
+http://www.embedded.com/electronics-blogs/programming-pointers/4025641/Qualifiers-in-multilevel-pointers
+
+Therefore, we introduce the DBVCPX_t typedefs, where 'X' is 1, 2 or 3, to
+indicate the number of levels in the array the Silo library is expecting the
+caller to pass. Even though the typedef resolves to a 'void const *' for all
+X, the underlying implementation will wind up treating it as a 'void const *' for
+X=1 (e.g. DBVCP1_t), a 'void const * const *' for X=2 (e.g. DBVCP2_t), etc.
+
+*/
+
+/* For the char-specific case of a constant array of strings, to facilitate explicit casts */
+typedef char const * const *         DBCAS_t;
 
 #ifndef FALSE
 #define FALSE   0
@@ -155,22 +118,37 @@ be used for advertising or product endorsement purposes.
 #define TRUE    1
 #endif
 
-/* In the definitions for different parts of the version number, below,
-   we use leading '0x0' to deal with possible blank minor and/or patch
-   version number but still allow base-10, numeric comparison in the GE
-   macro. */
-
 /* Major release number of silo library. */
+#define _SILO_VERS_MAJ_ at SILO_VERS_MAJ@
+#ifdef _SILO_VERS_MAJ_
+#define SILO_VERS_MAJ 0 /* NO_FORTRAN_DEFINE */
+#else
 #define SILO_VERS_MAJ @SILO_VERS_MAJ@
+#endif
 
 /* Minor release number of silo library. Can be empty. */
-#define SILO_VERS_MIN 0x0 at SILO_VERS_MIN@
+#define _SILO_VERS_MIN_ at SILO_VERS_MIN@
+#ifdef _SILO_VERS_MIN_
+#define SILO_VERS_MIN 0 /* NO_FORTRAN_DEFINE */
+#else
+#define SILO_VERS_MIN @SILO_VERS_MIN@
+#endif
 
 /* Patch release number of silo library.  Can be empty. */
-#define SILO_VERS_PAT 0x0 at SILO_VERS_PAT@
+#define _SILO_VERS_PAT_ at SILO_VERS_PAT@
+#ifdef _SILO_VERS_PAT_
+#define SILO_VERS_PAT 0 /* NO_FORTRAN_DEFINE */
+#else
+#define SILO_VERS_PAT @SILO_VERS_PAT@
+#endif
 
 /* Pre-release release number of silo library.  Can be empty. */
+#define _SILO_VERS_PRE_ at SILO_VERS_PRE@
+#ifdef _SILO_VERS_PRE_
+#define SILO_VERS_PRE 0 /* NO_FORTRAN_DEFINE */
+#else
 #define SILO_VERS_PRE @SILO_VERS_PRE@
+#endif
 
 /* The symbol Silo uses to enforce link-time
    header/object version compatibility */
@@ -178,8 +156,8 @@ be used for advertising or product endorsement purposes.
 
 /* Useful macro for comparing Silo versions (and DB_ alias) */
 #define SILO_VERSION_GE(Maj,Min,Pat)  \
-        (((SILO_VERS_MAJ==Maj) && (SILO_VERS_MIN==0x0 ## Min) && (SILO_VERS_PAT>=0x0 ## Pat)) || \
-         ((SILO_VERS_MAJ==Maj) && (SILO_VERS_MIN>0x0 ## Min)) || \
+        (((SILO_VERS_MAJ==Maj) && (SILO_VERS_MIN==Min) && (SILO_VERS_PAT>=Pat)) || \
+         ((SILO_VERS_MAJ==Maj) && (SILO_VERS_MIN>Min)) || \
          (SILO_VERS_MAJ>Maj))
 #define DB_VERSION_GE(Maj,Min,Pat) SILO_VERSION_GE(Maj,Min,Pat)
 
@@ -216,6 +194,7 @@ be used for advertising or product endorsement purposes.
 #define DB_H5VFD_MPIO    8
 #define DB_H5VFD_MPIP    9
 #define DB_H5VFD_SILO    10
+#define DB_H5VFD_FIC     11 /* File Image in Core */
 
 /* Macro for defining various HDF5 vfds as 'type' arg in create/open.
    The 11 bit shift is to avoid possible collision with older versions
@@ -237,6 +216,7 @@ be used for advertising or product endorsement purposes.
 #define DB_FILE_OPTS_H5_DEFAULT_MPIP    DB_H5VFD_MPIP
 #define DB_FILE_OPTS_H5_DEFAULT_SILO    DB_H5VFD_SILO 
 #define DB_FILE_OPTS_LAST DB_FILE_OPTS_H5_DEFAULT_SILO
+/* note: no possible *default* settings for DB_H5VFD_FIC */
 
 /* Various default HDF5 driver options. Users can define their own
    sets of options using DBRegisterFileOptionsSets(). */
@@ -276,36 +256,41 @@ be used for advertising or product endorsement purposes.
  * reason they DO NOT APPEAR there inspite of the fact that DO NOT HAVE the
  * 'NO_FORTRAN_DEFINE' text appearing on each line is that the mkinc script
  * requires an underscore in the symbol name for it to appear in silo.inc. */
-#define DBAll                0xffffffff
-#define DBNone               0x00000000
-#define DBCalc               0x00000001
-#define DBMatMatnos          0x00000002
-#define DBMatMatlist         0x00000004
-#define DBMatMixList         0x00000008
-#define DBCurveArrays        0x00000010
-#define DBPMCoords           0x00000020
-#define DBPVData             0x00000040
-#define DBQMCoords           0x00000080
-#define DBQVData             0x00000100
-#define DBUMCoords           0x00000200
-#define DBUMFacelist         0x00000400
-#define DBUMZonelist         0x00000800
-#define DBUVData             0x00001000
-#define DBFacelistInfo       0x00002000
-#define DBZonelistInfo       0x00004000
-#define DBMatMatnames        0x00008000
-#define DBUMGlobNodeNo       0x00010000
-#define DBZonelistGlobZoneNo 0x00020000
-#define DBMatMatcolors       0x00040000
-#define DBCSGMBoundaryInfo   0x00080000
-#define DBCSGMZonelist       0x00100000
-#define DBCSGMBoundaryNames  0x00200000
-#define DBCSGVData           0x00400000
-#define DBCSGZonelistZoneNames 0x00800000
-#define DBCSGZonelistRegNames  0x01000000
-#define DBMMADJNodelists     0x02000000
-#define DBMMADJZonelists     0x04000000
-#define DBPMGlobNodeNo       0x08000000
+#define DBAll                     0xffffffffffffffffULL
+#define DBNone                    0x0000000000000000ULL
+#define DBCalc                    0x0000000000000001ULL
+#define DBMatMatnos               0x0000000000000002ULL
+#define DBMatMatlist              0x0000000000000004ULL
+#define DBMatMixList              0x0000000000000008ULL
+#define DBCurveArrays             0x0000000000000010ULL
+#define DBPMCoords                0x0000000000000020ULL
+#define DBPVData                  0x0000000000000040ULL
+#define DBQMCoords                0x0000000000000080ULL
+#define DBQVData                  0x0000000000000100ULL
+#define DBUMCoords                0x0000000000000200ULL
+#define DBUMFacelist              0x0000000000000400ULL
+#define DBUMZonelist              0x0000000000000800ULL
+#define DBUVData                  0x0000000000001000ULL
+#define DBFacelistInfo            0x0000000000002000ULL
+#define DBZonelistInfo            0x0000000000004000ULL
+#define DBMatMatnames             0x0000000000008000ULL
+#define DBUMGlobNodeNo            0x0000000000010000ULL
+#define DBZonelistGlobZoneNo      0x0000000000020000ULL
+#define DBMatMatcolors            0x0000000000040000ULL
+#define DBCSGMBoundaryInfo        0x0000000000080000ULL
+#define DBCSGMZonelist            0x0000000000100000ULL
+#define DBCSGMBoundaryNames       0x0000000000200000ULL
+#define DBCSGVData                0x0000000000400000ULL
+#define DBCSGZonelistZoneNames    0x0000000000800000ULL
+#define DBCSGZonelistRegNames     0x0000000001000000ULL
+#define DBMMADJNodelists          0x0000000002000000ULL
+#define DBMMADJZonelists          0x0000000004000000ULL
+#define DBPMGlobNodeNo            0x0000000008000000ULL
+#define DBPMGhostNodeLabels       0x0000000010000000ULL
+#define DBQMGhostNodeLabels       0x0000000020000000ULL
+#define DBQMGhostZoneLabels       0x0000000040000000ULL
+#define DBUMGhostNodeLabels       0x0000000080000000ULL
+#define DBZonelistGhostZoneLabels 0x0000000100000000ULL
 
 /* Definitions for COORD_TYPE */
 /* Placed before DBObjectType enum because the
@@ -468,6 +453,11 @@ typedef enum {
 #define DBOPT_MB_EMPTY_LIST     334
 #define DBOPT_MB_EMPTY_COUNT    335
 #define DBOPT_MB_REPR_BLOCK_IDX 336
+#define DBOPT_MISSING_VALUE     337
+#define DBOPT_ALT_ZONENUM_VARS  338
+#define DBOPT_ALT_NODENUM_VARS  339
+#define DBOPT_GHOST_NODE_LABELS 340
+#define DBOPT_GHOST_ZONE_LABELS 341
 #define DBOPT_LAST              499 
 
 /* Options relating to virtual file drivers */
@@ -503,6 +493,8 @@ typedef enum {
 #define DBOPT_H5_SILO_BLOCK_COUNT   528
 #define DBOPT_H5_SILO_LOG_STATS     529
 #define DBOPT_H5_SILO_USE_DIRECT    530
+#define DBOPT_H5_FIC_SIZE           531
+#define DBOPT_H5_FIC_BUF            532
 #define DBOPT_H5_LAST               599
 
 /* Error trapping method */
@@ -549,6 +541,7 @@ typedef enum {
 #define     E_MAXFILEOPTSETS 32 /*Too many file options sets */
 #define     E_NOHDF5 33         /*HDF5 driver not available */
 #define     E_EMPTYOBJECT 34    /*Empty object not currently permitted*/
+#define     E_OBJBUFFULL  35    /*No more temp. buffer space for object */
 #define     E_NERRORS   50
 
 /* Definitions for MAJOR_ORDER */
@@ -566,8 +559,8 @@ typedef enum {
 
 /* Definitions for COORD_SYSTEM */
 #define  DB_CARTESIAN           120
-#define  DB_CYLINDRICAL         121
-#define  DB_SPHERICAL           122
+#define  DB_CYLINDRICAL         121 /* x,r;  y,theta;  z,height; 2D variant is eqiv. to poloar */
+#define  DB_SPHERICAL           122 /* x,r;  y,theta;  z,phi;  2D variant is equiv. to polar */
 #define  DB_NUMERICAL           123
 #define  DB_OTHER               124
 
@@ -597,6 +590,10 @@ typedef enum {
 #define DB_VARTYPE_SPECIES              206
 #define DB_VARTYPE_LABEL                207
 
+/* Definitions for ghost labels */
+#define DB_GHOSTTYPE_NOGHOST ((char)0x00)
+#define DB_GHOSTTYPE_INTDUP ((char)0x01)
+
 /* Definitions for CSG boundary types 
    Designed so low-order 16 bits are unused.
 
@@ -679,6 +676,19 @@ typedef enum {
 #define I3D(s,i,j,k)   (k)*s[2]+(j)*s[1]+(i)*s[0]
 #define I2D(s,i,j)     (j)*s[1]+(i)*s[0]
 
+/* Note we should not use MAX_DOUBLE here as its definition could be different
+   from one machine to the next. We need something that is a constant across
+   all machines we will operate on. And, yes, it means this particular number
+   cannot be used for any real data values or for the missing data value. I
+   think the risk of problems is minimal. Also, we want a zero in the file
+   to represent the fact that a missing value is NOT SET. Nonetheless, we
+   want Silo clients to be able to specify that zero represents the missing
+   value. So, we adjust the interpretation of missing values on write and 
+   on read to/from the file. On write, NOT_SET in mem gets mapped to zero in
+   the file and zero in mem gets mapped to NOT_SET in the file. On read, this
+   mapping is reversed. */
+#define DB_MISSING_VALUE_NOT_SET ((double)1.0e+308)
+
 /*-------------------------------------------------------------------------
  * Structures (just the public parts).
  *-------------------------------------------------------------------------
@@ -779,11 +789,13 @@ typedef struct DBcurve_ {
     char          *ylabel;      /* Label for y-axis */
     char          *xunits;      /* Units for domain */
     char          *yunits;      /* Units for range  */
-    DB_DTPTR      *x;           /* Domain values for curve */
-    DB_DTPTR      *y;           /* Range  values for curve */
+    void          *x;           /* Domain values for curve */
+    void          *y;           /* Range  values for curve */
     int            npts;        /* Number of points in curve */
     int            guihide;     /* Flag to hide from post-processor's GUI */
     char          *reference;   /* Label to reference object */
+    int            coord_sys;   /* To indicate other coordinate systems */
+    double         missing_value; /* Value to indicate var data is invalid/missing */
 } DBcurve;
 
 typedef struct DBdefvars_ {
@@ -806,7 +818,7 @@ typedef struct DBpointmesh_ {
     char          *labels[3];   /* Labels for each axis */
     char          *title;       /* Title for curve */
 
-    DB_DTPTR      *coords[3];   /* Coordinate values */
+    void          *coords[3];   /* Coordinate values */
     float          time;        /* Problem time */
     double         dtime;       /* Problem time, double data type */
    /*
@@ -825,6 +837,8 @@ typedef struct DBpointmesh_ {
     void          *gnodeno;     /* global node ids */
     char          *mrgtree_name; /* optional name of assoc. mrgtree object */
     int            gnznodtype;  /* datatype for global node/zone ids */
+    char          *ghost_node_labels;
+    char         **alt_nodenum_vars; 
 } DBpointmesh;
 
 /*----------------------------------------------------------------------------
@@ -860,6 +874,9 @@ typedef struct DBmultimesh_ {
     int           *empty_list;  /* list of empty block #'s (option for namescheme) */
     int            empty_cnt;   /* size of empty list */
     int            repr_block_idx; /* index of a 'representative' block */
+    char         **alt_nodenum_vars; 
+    char         **alt_zonenum_vars; 
+    char          *meshnames_alloc; /* original alloc of meshnames as string list */
 } DBmultimesh;
 
 /*----------------------------------------------------------------------------
@@ -915,6 +932,8 @@ typedef struct DBmultivar_ {
     int           *empty_list;  /* list of empty block #'s (option for namescheme) */
     int            empty_cnt;   /* size of empty list */
     int            repr_block_idx; /* index of a 'representative' block */
+    double         missing_value; /* Value to indicate var data is invalid/missing */
+    char          *varnames_alloc; /* original alloc of varnames as string list */
 } DBmultivar;
 
 /*-------------------------------------------------------------------------
@@ -943,6 +962,7 @@ typedef struct DBmultimat_ {
     int           *empty_list;  /* list of empty block #'s (option for namescheme) */
     int            empty_cnt;   /* size of empty list */
     int            repr_block_idx; /* index of a 'representative' block */
+    char          *matnames_alloc; /* original alloc of matnames as string list */
 } DBmultimat;
 
 /*-------------------------------------------------------------------------
@@ -966,6 +986,7 @@ typedef struct DBmultimatspecies_ {
     int           *empty_list;  /* list of empty block #'s (option for namescheme) */
     int            empty_cnt;   /* size of empty list */
     int            repr_block_idx; /* index of a 'representative' block */
+    char          *specnames_alloc; /* original alloc of matnames as string list */
 } DBmultimatspecies;
 
 /*----------------------------------------------------------------------
@@ -1003,6 +1024,8 @@ typedef struct DBzonelist_ {
     int           *zoneno;      /* [nzones] zone number of each zone */
     void          *gzoneno;     /* [nzones] global zone number of each zone */
     int            gnznodtype;  /* datatype for global node/zone ids */
+    char          *ghost_zone_labels;
+    char         **alt_zonenum_vars; 
 } DBzonelist;
 
 typedef struct DBphzonelist_ {
@@ -1023,6 +1046,8 @@ typedef struct DBphzonelist_ {
     int           *zoneno;      /* [nzones] zone number of each zone */
     void          *gzoneno;     /* [nzones] global zone number of each zone */
     int            gnznodtype;  /* datatype for global node/zone ids */
+    char          *ghost_zone_labels;
+    char         **alt_zonenum_vars; 
 } DBphzonelist;
 
 typedef struct DBfacelist_ {
@@ -1073,7 +1098,7 @@ typedef struct DBquadmesh_ {
     int            facetype;    /* Zone face type: rect, curv */
     int            planar;      /* Sentinel: zones represent area or volume? */
 
-    DB_DTPTR      *coords[3];   /* Mesh node coordinate ptrs [ndims] */
+    void          *coords[3];   /* Mesh node coordinate ptrs [ndims] */
     int            datatype;    /* Type of coordinate arrays (double,float) */
     float          time;        /* Problem time */
     double         dtime;       /* Problem time, double data type */
@@ -1104,6 +1129,10 @@ typedef struct DBquadmesh_ {
                                     * original mesh */
     int            guihide;     /* Flag to hide from post-processor's GUI */
     char          *mrgtree_name; /* optional name of assoc. mrgtree object */
+    char          *ghost_node_labels;
+    char          *ghost_zone_labels;
+    char         **alt_nodenum_vars; 
+    char         **alt_zonenum_vars; 
 } DBquadmesh;
 
 typedef struct DBucdmesh_ {
@@ -1118,7 +1147,7 @@ typedef struct DBucdmesh_ {
     char          *units[3];    /* Units for variable, e.g, 'mm/ms' */
     char          *labels[3];   /* Label associated with each dimension */
 
-    DB_DTPTR      *coords[3];   /* Mesh node coordinates */
+    void          *coords[3];   /* Mesh node coordinates */
     int            datatype;    /* Type of coordinate arrays (double,float) */
     float          time;        /* Problem time */
     double         dtime;       /* Problem time, double data type */
@@ -1153,6 +1182,8 @@ typedef struct DBucdmesh_ {
     int            tv_connectivity;
     int            disjoint_mode;
     int            gnznodtype;  /* datatype for global node/zone ids */
+    char          *ghost_node_labels;
+    char         **alt_nodenum_vars; 
 } DBucdmesh;
 
 /*----------------------------------------------------------------------------
@@ -1168,7 +1199,7 @@ typedef struct DBquadvar_ {
     int            cycle;       /* Problem cycle number */
     int            meshid;      /* Identifier for associated mesh (Deprecated Sep2005) */
 
-    DB_DTPTR     **vals;        /* Array of pointers to data arrays */
+    void         **vals;        /* Array of pointers to data arrays */
     int            datatype;    /* Type of data pointed to by 'val' */
     int            nels;        /* Number of elements in each array */
     int            nvals;       /* Number of arrays pointed to by 'vals' */
@@ -1191,7 +1222,7 @@ typedef struct DBquadvar_ {
     */
     float          align[6];    /* Centering and alignment per dimension */
 
-    DB_DTPTR     **mixvals;     /* nvals ptrs to data arrays for mixed zones */
+    void         **mixvals;     /* nvals ptrs to data arrays for mixed zones */
     int            mixlen;      /* Num of elmts in each mixed zone data
                                  * array */
 
@@ -1210,6 +1241,7 @@ typedef struct DBquadvar_ {
                                    physical property (as opposed to intensive) */
     int            centering;   /* explicit centering knowledge; should agree
                                    with alignment. */
+    double         missing_value; /* Value to indicate var data is invalid/missing */
 } DBquadvar;
 
 typedef struct DBucdvar_ {
@@ -1223,7 +1255,7 @@ typedef struct DBucdvar_ {
     double         dtime;       /* Problem time, double data type */
     int            meshid;      /* Identifier for associated mesh (Deprecated Sep2005) */
 
-    DB_DTPTR     **vals;        /* Array of pointers to data arrays */
+    void         **vals;        /* Array of pointers to data arrays */
     int            datatype;    /* Type of data pointed to by 'vals' */
     int            nels;        /* Number of elements in each array */
     int            nvals;       /* Number of arrays pointed to by 'vals' */
@@ -1231,7 +1263,7 @@ typedef struct DBucdvar_ {
     int            origin;      /* '0' or '1' */
 
     int            centering;   /* Centering within mesh (nodal or zonal) */
-    DB_DTPTR     **mixvals;     /* nvals ptrs to data arrays for mixed zones */
+    void         **mixvals;     /* nvals ptrs to data arrays for mixed zones */
     int            mixlen;      /* Num of elmts in each mixed zone data
                                  * array */
 
@@ -1247,6 +1279,7 @@ typedef struct DBucdvar_ {
                                    under various operations such as interp. */
     int            extensive;   /* indicates if the variable reprsents an extensiv
                                    physical property (as opposed to intensive) */
+    double         missing_value; /* Value to indicate var data is invalid/missing */
 } DBucdvar;
 
 typedef struct DBmeshvar_ {
@@ -1258,7 +1291,7 @@ typedef struct DBmeshvar_ {
     int            cycle;       /* Problem cycle number */
     int            meshid;      /* Identifier for associated mesh (Deprecated Sep2005) */
 
-    DB_DTPTR     **vals;        /* Array of pointers to data arrays */
+    void         **vals;        /* Array of pointers to data arrays */
     int            datatype;    /* Type of data pointed to by 'val' */
     int            nels;        /* Number of elements in each array */
     int            nvals;       /* Number of arrays pointed to by 'vals' */
@@ -1301,6 +1334,7 @@ typedef struct DBmeshvar_ {
                                    under various operations such as interp. */
     int            extensive;   /* indicates if the variable reprsents an extensiv
                                    physical property (as opposed to intensive) */
+    double         missing_value; /* Value to indicate var data is invalid/missing */
 } DBmeshvar;
 typedef DBmeshvar DBpointvar; /* better named alias for pointvar */
 
@@ -1320,7 +1354,7 @@ typedef struct DBmaterial_ {
     int           *matlist;     /* Array[nzone] w/ mat. number or mix index */
     int            mixlen;      /* Length of mixed data arrays (mix_xxx) */
     int            datatype;    /* Type of volume-fractions (double,float) */
-    DB_DTPTR      *mix_vf;      /* Array [mixlen] of volume fractions */
+    void          *mix_vf;      /* Array [mixlen] of volume fractions */
     int           *mix_next;    /* Array [mixlen] of mixed data indeces */
     int           *mix_mat;     /* Array [mixlen] of material numbers */
     int           *mix_zone;    /* Array [mixlen] of back pointers to mesh */
@@ -1347,7 +1381,7 @@ typedef struct DBmatspecies_ {
     int            stride[3];   /* Offsts to adjacent elmts in 'speclist'  */
 
     int            nspecies_mf; /* Total number of species mass fractions. */
-    DB_DTPTR      *species_mf;  /* Array of length nspecies_mf of mass
+    void          *species_mf;  /* Array of length nspecies_mf of mass
                                  * frations of the material species. */
     int           *speclist;    /* Zone array of dimensions described by ndims
                                  * and dims.  Each element of the array is an
@@ -1397,6 +1431,7 @@ typedef struct DBcsgzonelist_ {
 /*--------- Optional zone attributes ---------*/
     char         **regnames;   /* [nregs] names of each region */
     char         **zonenames;  /* [nzones] names of each zone */
+    char         **alt_zonenum_vars; 
 } DBcsgzonelist;
 
 typedef struct DBcsgmesh_ {
@@ -1435,6 +1470,7 @@ typedef struct DBcsgmesh_ {
     char          *mrgtree_name; /* optional name of assoc. mrgtree object */
     int            tv_connectivity;
     int            disjoint_mode;
+    char         **alt_nodenum_vars; 
 } DBcsgmesh;
 
 typedef struct DBcsgvar_ {
@@ -1465,6 +1501,7 @@ typedef struct DBcsgvar_ {
                                    under various operations such as interp. */
     int            extensive;   /* indicates if the variable reprsents an extensiv
                                    physical property (as opposed to intensive) */
+    double         missing_value; /* Value to indicate var data is invalid/missing */
 } DBcsgvar;
 
 /*-------------------------------------------------------------------------
@@ -1494,6 +1531,7 @@ typedef struct DBoptlist_ {
 
 } DBoptlist;
 
+#define DB_MAX_H5_OBJ_VALS 64
 typedef struct DBobject_ {
 
     char          *name;
@@ -1503,6 +1541,13 @@ typedef struct DBobject_ {
     int            ncomponents; /* Number of components */
     int            maxcomponents;  /* Max number of components */
 
+    /* fields below are a hack for HDF5 driver to handle
+       customization of 'standard' objects */
+    char           h5_vals[DB_MAX_H5_OBJ_VALS*3*sizeof(double)];
+    int            h5_offs[DB_MAX_H5_OBJ_VALS];
+    int            h5_sizes[DB_MAX_H5_OBJ_VALS];
+    int            h5_types[DB_MAX_H5_OBJ_VALS];
+    char          *h5_names[DB_MAX_H5_OBJ_VALS];
 } DBobject;
 
 typedef struct _DBmrgtnode {
@@ -1524,7 +1569,7 @@ typedef struct _DBmrgtnode {
     struct _DBmrgtnode  *parent;
 } DBmrgtnode;
 
-typedef void (*DBmrgwalkcb)(DBmrgtnode *tnode, int nat_node_num, void *data);
+typedef void (*DBmrgwalkcb)(DBmrgtnode const *tnode, int nat_node_num, void *data);
 
 typedef struct _DBmrgtree {
     char *name;
@@ -1572,8 +1617,8 @@ typedef struct _DBnamescheme
     int fmtlen;             /* len of first part of fmt */
     int ncspecs;            /* # of conversion specs in first part of fmt */
     char delim;             /* delimiter char used for parts of fmt */
-    int nembed;             /* number of last embedded string encountered */
-    char *embedstrs[DB_MAX_EXPSTRS]; /* ptrs to copies of embedded strings */
+    int nembed;             /* number of last embedded string encountered (used in eval process) */
+    char *embedstrs[DB_MAX_EXPSTRS]; /* ptrs to copies of embedded strings (used in eval process) */
     int arralloc;           /* flag indicating if Silo allocated the arrays or not */
     int narrefs;            /* number of array refs in conversion specs */
     char **arrnames;        /* array names used by array refs */
@@ -1604,8 +1649,6 @@ typedef struct DBfile_pub {
     /* Public Methods */
     int            (*close)(struct DBfile *);
     int            (*exist)(struct DBfile *, char const *);
-    int            (*pause)(struct DBfile *);
-    int            (*cont)(struct DBfile *);
     int            (*newtoc)(struct DBfile *);
     DBObjectType   (*inqvartype)(struct DBfile *, char const *);
     int            (*uninstall)(struct DBfile *);
@@ -1615,141 +1658,116 @@ typedef struct DBfile_pub {
     void          *(*g_comp)(struct DBfile *, char const *, char const *);
     int            (*g_comptyp)(struct DBfile *, char const *, char const *);
     int            (*w_comp)(struct DBfile *, DBobject *, char const *, char const *,
-                             char const *, void const *, int, long const *);
+                       char const *, void const *, int, long const *);
     int            (*write) (struct DBfile *, char const *, void const *, int const *, int, int);
-
-
-
-
-    int            (*writeslice)(struct DBfile *, char *, void *, int,
-                                 int[], int[], int[], int[], int);
-    void          *(*g_attr)(struct DBfile *, char *, char *);
+    int            (*writeslice)(struct DBfile *, char const *array_name, void const *data,
+                       int datatype, int const *offsets, int const *lens, int const *stides,
+                       int const *dims, int ndim);
     int            (*g_dir)(struct DBfile *, char *);
-    int            (*mkdir)(struct DBfile *, char *);
-    int            (*cd)(struct DBfile *, char *);
-    int            (*cdid)(struct DBfile *, int);
-    int            (*r_att)(struct DBfile *, char *, char *, void *);
-    int            (*r_var)(struct DBfile *, char *, void *);
-    int            (*r_var1)(struct DBfile *, char *, int, void *);
+    int            (*mkdir)(struct DBfile *, char const *);
+    int            (*cd)(struct DBfile *, char const *);
+    int            (*r_var)(struct DBfile *, char const *, void *);
     int            (*module)(struct DBfile *, FILE *);
-    int            (*r_varslice)(struct DBfile *, char *, int *, int *, int *,
-                                 int, void *);
-    int            (*g_compnames)(struct DBfile *, char *, char ***, char ***);
-    DBcompoundarray *(*g_ca)(struct DBfile *, char *);
-    DBcurve       *(*g_cu)(struct DBfile *, char *);
+    int            (*r_varslice)(struct DBfile *, char const *, int const *, int const *, int const *,
+                       int, void *);
+    int            (*g_compnames)(struct DBfile *, char const *, char ***, char ***);
+    DBcompoundarray *(*g_ca)(struct DBfile *, char const *);
+    DBcurve       *(*g_cu)(struct DBfile *, char const *);
     DBdefvars     *(*g_defv)(struct DBfile *, char const *);
-    DBmaterial    *(*g_ma)(struct DBfile *, char *);
-    DBmatspecies  *(*g_ms)(struct DBfile *, char *);
-    DBmultimesh   *(*g_mm)(struct DBfile *, char *);
-    DBmultivar    *(*g_mv)(struct DBfile *, char *);
-    DBmultimat    *(*g_mt)(struct DBfile *, char *);
-    DBmultimatspecies *(*g_mms)(struct DBfile *, char *);
-    DBpointmesh   *(*g_pm)(struct DBfile *, char *);
-    DBmeshvar     *(*g_pv)(struct DBfile *, char *);
-    DBquadmesh    *(*g_qm)(struct DBfile *, char *);
-    DBquadvar     *(*g_qv)(struct DBfile *, char *);
-    DBucdmesh     *(*g_um)(struct DBfile *, char *);
-    DBucdvar      *(*g_uv)(struct DBfile *, char *);
-    DBfacelist    *(*g_fl)(struct DBfile *, char *);
-    DBzonelist    *(*g_zl)(struct DBfile *, char *);
-    void          *(*g_var)(struct DBfile *, char *);
-    int            (*g_varbl)(struct DBfile *, char *);  /*byte length */
-    int            (*g_varlen)(struct DBfile *, char *);  /*nelems */
-    int            (*g_vardims)(struct DBfile*, char*, int, int*); /*dims*/
-    int            (*g_vartype)(struct DBfile *, char *);
-    int            (*i_meshname)(struct DBfile *, char *, char *);
-    int            (*i_meshtype)(struct DBfile *, char *);
-    int            (*p_ca)(struct DBfile *, char *, char **, int *, int,
-                           void *, int, int, DBoptlist *);
-    int            (*p_cu)(struct DBfile *, char *, void *, void *, int, int,
-                           DBoptlist *);
-    int            (*p_defv)(struct DBfile *, char const *, int, 
-                           char **, int const *, char **,
-                           DBoptlist **);
-    int            (*p_fl)(struct DBfile *, char *, int, int, int *, int, int,
-                           int *, int *, int *, int, int *, int *, int);
-    int            (*p_ma)(struct DBfile *, char *, char *, int, int *, int *,
-                           int *, int, int *, int *, int *, DB_DTPTR1, int, int,
-                           DBoptlist *);
-    int            (*p_ms)(struct DBfile *, char *, char *, int, int *, int *,
-                           int *, int, int, DB_DTPTR1, int *, int, int,
-                           DBoptlist *);
-    int            (*p_mm)(struct DBfile *, char const*, int, char const *const *, int const *,
-                           DBoptlist const *);
-    int            (*p_mv)(struct DBfile *, char *, int, char **, int *,
-                           DBoptlist *);
-    int            (*p_mt)(struct DBfile *, char *, int, char **, DBoptlist *);
-    int            (*p_mms)(struct DBfile *, char *, int, char **, DBoptlist *);
-    int            (*p_pm)(struct DBfile *, char *, int, DB_DTPTR2, int, int,
-                           DBoptlist *);
-    int            (*p_pv)(struct DBfile *, char *, char *, int, DB_DTPTR2, int,
-                           int, DBoptlist *);
-    int            (*p_qm)(struct DBfile *, char *, char **, DB_DTPTR2, int *,
-                           int, int, int, DBoptlist *);
-    int            (*p_qv)(struct DBfile *, char *, char *, int, char **,
-                           DB_DTPTR2, int *, int, DB_DTPTR2, int, int, int,
-                           DBoptlist *);
-    int            (*p_um)(struct DBfile *, char *, int, char **, DB_DTPTR2,
-                           int, int, char *, char *, int, DBoptlist *);
-    int            (*p_sm)(struct DBfile *, char *, char *,
-                           int, char *, char *, DBoptlist *);
-    int            (*p_uv)(struct DBfile *, char *, char *, int, char **,
-                           DB_DTPTR2, int, DB_DTPTR2, int, int, int,
-                           DBoptlist *);
-    int            (*p_zl)(struct DBfile *, char *, int, int, int *, int, int,
-                           int *, int *, int);
-    int            (*p_zl2)(struct DBfile *, char *, int, int, int *, int, int,
-                            int, int, int *, int *, int *, int, DBoptlist *);
-    /* MCM-27Jul04: We added these to the end to avert potential
-       link-time compatibility issues with older versions of the
-       library. Some user's of Silo circumvent its version check
-       which would ordinarily keep different versions from being
-       mixed by defining an appropriate global symbol. */
-    DBphzonelist  *(*g_phzl)(struct DBfile *, char *);
-    int            (*p_phzl)(struct DBfile *, char *,
-                             int, int *, int, int *, char *,
-                             int, int *, int, int *,
-                             int, int, int,
-                             DBoptlist *);
-    int            (*p_csgzl)(struct DBfile *, char const *, int, int const *,
-                              int const *, int const *, void const *, int, int,
-                              int, int const *, DBoptlist *);
+    DBmaterial    *(*g_ma)(struct DBfile *, char const *);
+    DBmatspecies  *(*g_ms)(struct DBfile *, char const *);
+    DBmultimesh   *(*g_mm)(struct DBfile *, char const *);
+    DBmultivar    *(*g_mv)(struct DBfile *, char const *);
+    DBmultimat    *(*g_mt)(struct DBfile *, char const *);
+    DBmultimatspecies *(*g_mms)(struct DBfile *, char const *);
+    DBpointmesh   *(*g_pm)(struct DBfile *, char const *);
+    DBmeshvar     *(*g_pv)(struct DBfile *, char const *);
+    DBquadmesh    *(*g_qm)(struct DBfile *, char const *);
+    DBquadvar     *(*g_qv)(struct DBfile *, char const *);
+    DBucdmesh     *(*g_um)(struct DBfile *, char const *);
+    DBucdvar      *(*g_uv)(struct DBfile *, char const *);
+    DBfacelist    *(*g_fl)(struct DBfile *, char const *);
+    DBzonelist    *(*g_zl)(struct DBfile *, char const *);
+    void          *(*g_var)(struct DBfile *, char const *);
+    int            (*g_varbl)(struct DBfile *, char const *);  /*byte length */
+    int            (*g_varlen)(struct DBfile *, char const *);  /*nelems */
+    int            (*g_vardims)(struct DBfile*, char const *, int, int *); /*dims*/
+    int            (*g_vartype)(struct DBfile *, char const *);
+    int            (*i_meshname)(struct DBfile *, char const *, char *);
+    int            (*i_meshtype)(struct DBfile *, char const *);
+    int            (*p_ca)(struct DBfile *dbfile, char const *name, char const * const *elemnames,
+                       int const *elemlens, int nelems, void const *values, int nvalues,
+                       int datatype, DBoptlist const *);
+    int            (*p_cu)(struct DBfile *dbfile, char const *name, void const *xvals,
+                       void const *yvals, int datatype, int npts, DBoptlist const *opts);
+    int            (*p_defv)(struct DBfile *dbfile, char const *name, int ndefs,
+                       char const * const *names, int const *types, char const * const *defns,
+                       DBoptlist const * const *opts);
+    int            (*p_fl)(struct DBfile *dbfile, char const *name, int nfaces, int ndims,
+                       int const *nodelist, int lnodelist, int origin, int const *zoneno,
+                       int const *shapesize, int const *shapecnt, int nshapes, int const *types,
+                       int const *typelist, int ntypes);
+    int            (*p_ma)(struct DBfile *dbfile, char const *name, char const *meshname,
+                       int nmat, int const *matnos, int const *matlist, int const *dims,
+                       int ndims, int const *mix_next, int const *mix_mat, int const *mix_zone,
+                       DBVCP1_t mix_vf, int mixlen, int datatype, DBoptlist const *);
+    int            (*p_ms)(struct DBfile *, char const *, char const *, int, int const *, int const *,
+                       int const *, int, int, DBVCP1_t, int const *, int, int, DBoptlist const *);
+    int            (*p_mm)(struct DBfile *, char const *, int, char const * const *, int const *,
+                       DBoptlist const *);
+    int            (*p_mv)(struct DBfile *, char const *, int, char const * const *, int const *,
+                       DBoptlist const *);
+    int            (*p_mt)(struct DBfile *, char const *, int, char const * const *, DBoptlist const *);
+    int            (*p_mms)(struct DBfile *, char const *, int, char const * const *, DBoptlist const *);
+    int            (*p_pm)(struct DBfile *, char const *, int, DBVCP2_t, int, int, DBoptlist const *);
+    int            (*p_pv)(struct DBfile *, char const *, char const *, int, DBVCP2_t, int,
+                       int, DBoptlist const *);
+    int            (*p_qm)(struct DBfile *, char const *, char const * const *, DBVCP2_t, int const *,
+                       int, int, int, DBoptlist const *);
+    int            (*p_qv)(struct DBfile *, char const *, char const *, int, char const * const *, DBVCP2_t,
+                       int const *, int, DBVCP2_t, int, int, int, DBoptlist const *);
+    int            (*p_um)(struct DBfile *, char const *, int, char const * const *, DBVCP2_t,
+                       int, int, char const *, char const *, int, DBoptlist const *);
+    int            (*p_sm)(struct DBfile *, char const *, char const *,
+                       int, char const *, char const *, DBoptlist const *);
+    int            (*p_uv)(struct DBfile *, char const *, char const *, int, char const * const *,
+                       DBVCP2_t, int, DBVCP2_t, int, int, int, DBoptlist const *);
+    int            (*p_zl)(struct DBfile *, char const *, int, int, int const *, int, int,
+                       int const *, int const *, int);
+    int            (*p_zl2)(struct DBfile *, char const *, int, int, int const *, int, int,
+                       int, int, int const *, int const *, int const *, int, DBoptlist const *);
+    DBphzonelist  *(*g_phzl)(struct DBfile *, char const *);
+    int            (*p_phzl)(struct DBfile *, char const *, int, int const *, int, int const *,
+                       char const *, int, int const *, int, int const *, int, int, int, DBoptlist const *);
+    int            (*p_csgzl)(struct DBfile *, char const *, int, int const *, int const *,
+                       int const *, void const *, int, int, int, int const *, DBoptlist const *);
     DBcsgzonelist *(*g_csgzl)(struct DBfile *, char const *);
-    int            (*p_csgm)(struct DBfile *, char const *, int, int,
-                             int const *, int const *,
-                             void const *, int, int, double const *,
-                             char const *, DBoptlist *);
+    int            (*p_csgm)(struct DBfile *, char const *, int, int, int const *, int const *,
+                       void const *, int, int, double const *, char const *, DBoptlist const *);
     DBcsgmesh     *(*g_csgm)(struct DBfile *, char const *);
     int            (*p_csgv)(struct DBfile *, char const *, char const *, int,
-                             char **, void **, int, int, int,
-                             DBoptlist *);
+                       char const * const *, void const * const *, int, int, int, DBoptlist const *);
     DBcsgvar      *(*g_csgv)(struct DBfile *, char const *);
     DBmultimeshadj *(*g_mmadj)(struct DBfile *, char const *, int, int const *);
-    int            (*p_mmadj)(struct DBfile *, char const *, int, int const *,
-                              int const *, int const *, int const *, int const *,
-                              int DB_CONSTARR2, int const *, int DB_CONSTARR2, 
-                              DBoptlist const *optlist);
+    int            (*p_mmadj)(struct DBfile *, char const *, int, int const *, int const *,
+                       int const *, int const *, int const *, int const * const *, int const *,
+                       int const * const *, DBoptlist const *optlist);
     int            (*p_mrgt)(struct DBfile *dbfile, char const *name, char const *mesh_name,
-                             DBmrgtree *tree, DBoptlist *opts);
+                       DBmrgtree const *tree, DBoptlist const *opts);
     DBmrgtree     *(*g_mrgt)(struct DBfile *, char const *name);
-    int            (*p_grplm)(struct DBfile *dbfile, char const *map_name,
-                             int num_segments, int *groupel_types,
-			     int *segment_lengths, int *segment_ids,
-			     int **segment_data, void **segment_fracs,
-                             int fracs_data_type, DBoptlist *opts);
+    int            (*p_grplm)(struct DBfile *dbfile, char const *map_name, int num_segments,
+                       int const *groupel_types, int const *segment_lengths, int const *segment_ids,
+		       int const * const *segment_data, void const * const *segment_fracs,
+                       int fracs_data_type, DBoptlist const *opts);
     DBgroupelmap  *(*g_grplm)(struct DBfile *dbfile, char const *name);
-    int            (*p_mrgv)(struct DBfile *dbfile, char const *name,
-                             char const *mrgt_name,
-                             int ncomps, char **compnames,
-                             int nregns, char **reg_pnames,
-                             int datatype, void **data, DBoptlist *opts);
+    int            (*p_mrgv)(struct DBfile *dbfile, char const *name, char const *mrgt_name,
+                       int ncomps, char const * const *compnames, int nregns,
+                       char const * const *reg_pnames, int datatype, void const * const *data,
+                       DBoptlist const *opts);
     DBmrgvar      *(*g_mrgv)(struct DBfile *dbfile, char const *name);
     int            (*free_z)(struct DBfile *, char const *);
-    int            (*cpdir)(struct DBfile *, char const *,
-                            struct DBfile *, char const *);
-
-    int          (*sort_obo)(struct DBfile *dbfile, int nobjs,
-                             char const *const *obj_names, int *ranks);
+    int            (*cpdir)(struct DBfile *, char const *, struct DBfile *, char const *);
+    int            (*sort_obo)(struct DBfile *dbfile, int nobjs, char const *const *obj_names, int *ranks);
 } DBfile_pub;
 
 typedef struct DBfile {
@@ -1757,361 +1775,7 @@ typedef struct DBfile {
     /*private part follows per device driver */
 } DBfile;
 
-typedef void (*DBErrFunc_t)(char*);
-
-
-/* The first prototypes here are the functions by which client code first
- * gets into Silo.  They are separated out because they do a version number
- * check for us.  Client code doesn't actually use these functions.
- * Instead, it uses macros like DBOpen, DBCreate, etc.
- *
- * If any functions are added that provide first-call access to Silo, they
- * should be set up as macro/function pairs, just as these are.  The way to
- * determine if a function is a "first-call" function is to ask whether
- * there are any Silo calls that must happen before it.  If there are not,
- * then the function is a "first-call" function and should have this
- * macro/function pair.  */
-
-SILO_API extern DBfile  *DBOpenReal(char const *, int, int);
-SILO_API extern DBfile  *DBCreateReal(char const *, int, int, char const *, int);
-SILO_API extern int      DBInqFileReal(char const *);
-
-#define SILO_VSTRING_NAME "_silolibinfo"
-#define SILO_VSTRING PACKAGE_VERSION
-SILO_API extern int SILO_VERS_TAG;
-#define CheckVersion SILO_VERS_TAG = 1
-
-#define DBOpen(name, target, mode) \
-    (CheckVersion, DBOpenReal(name, target, mode))
-
-#define DBCreate(name, mode, target, info, type) \
-    (CheckVersion, DBCreateReal(name, mode, target, info, type))
-
-#define DBInqFile(name) \
-    (CheckVersion, DBInqFileReal(name))
-
-/* Prototypes for regular API functions. */
-SILO_API extern DBcompoundarray *DBAllocCompoundarray(void);
-SILO_API extern DBcurve *DBAllocCurve(void);
-SILO_API extern DBdefvars *DBAllocDefvars(int);
-SILO_API extern DBmultimesh *DBAllocMultimesh(int);
-SILO_API extern DBmultimeshadj *DBAllocMultimeshadj(int);
-SILO_API extern DBmultivar *DBAllocMultivar(int);
-SILO_API extern DBmultimat *DBAllocMultimat(int);
-SILO_API extern DBmultimatspecies *DBAllocMultimatspecies(int);
-SILO_API extern DBcsgmesh *DBAllocCsgmesh(void);
-SILO_API extern DBquadmesh *DBAllocQuadmesh(void);
-SILO_API extern DBpointmesh *DBAllocPointmesh(void);
-SILO_API extern DBmeshvar *DBAllocMeshvar(void);
-SILO_API extern DBucdmesh *DBAllocUcdmesh(void);
-SILO_API extern DBcsgvar *DBAllocCsgvar(void);
-SILO_API extern DBquadvar *DBAllocQuadvar(void);
-SILO_API extern DBucdvar *DBAllocUcdvar(void);
-SILO_API extern DBzonelist *DBAllocZonelist(void);
-SILO_API extern DBphzonelist *DBAllocPHZonelist(void);
-SILO_API extern DBcsgzonelist *DBAllocCSGZonelist(void);
-SILO_API extern DBedgelist *DBAllocEdgelist(void);
-SILO_API extern DBfacelist *DBAllocFacelist(void);
-SILO_API extern DBmaterial *DBAllocMaterial(void);
-SILO_API extern DBmatspecies *DBAllocMatspecies(void);
-SILO_API extern DBnamescheme *DBAllocNamescheme(void);
-SILO_API extern DBgroupelmap *DBAllocGroupelmap(int, DBdatatype);
-
-SILO_API extern void     DBFreeMatspecies(DBmatspecies *);
-SILO_API extern void     DBFreeMaterial(DBmaterial *);
-SILO_API extern void     DBFreeFacelist(DBfacelist *);
-SILO_API extern void     DBFreeEdgelist(DBedgelist *);
-SILO_API extern void     DBFreeZonelist(DBzonelist *);
-SILO_API extern void     DBFreePHZonelist(DBphzonelist *);
-SILO_API extern void     DBFreeCSGZonelist(DBcsgzonelist *);
-SILO_API extern void     DBResetUcdvar(DBucdvar *);
-SILO_API extern void     DBFreeUcdvar(DBucdvar *);
-SILO_API extern void     DBResetQuadvar(DBquadvar *);
-SILO_API extern void     DBFreeCsgvar(DBcsgvar *);
-SILO_API extern void     DBFreeQuadvar(DBquadvar *);
-SILO_API extern void     DBFreeUcdmesh(DBucdmesh *);
-SILO_API extern void     DBFreeMeshvar(DBmeshvar *);
-SILO_API extern void     DBFreePointvar(DBpointvar *);
-SILO_API extern void     DBFreePointmesh(DBpointmesh *);
-SILO_API extern void     DBFreeQuadmesh(DBquadmesh *);
-SILO_API extern void     DBFreeCsgmesh(DBcsgmesh *);
-SILO_API extern void     DBFreeDefvars(DBdefvars*);
-SILO_API extern void     DBFreeMultimesh(DBmultimesh *);
-SILO_API extern void     DBFreeMultimeshadj(DBmultimeshadj *);
-SILO_API extern void     DBFreeMultivar(DBmultivar *);
-SILO_API extern void     DBFreeMultimat(DBmultimat *);
-SILO_API extern void     DBFreeMultimatspecies(DBmultimatspecies *);
-SILO_API extern void     DBFreeCompoundarray(DBcompoundarray *);
-SILO_API extern void     DBFreeCurve(DBcurve *);
-SILO_API extern void     DBFreeNamescheme(DBnamescheme *);
-
-SILO_API extern int      DBIsEmptyCurve(DBcurve const *curve);
-SILO_API extern int      DBIsEmptyPointmesh(DBpointmesh const *msh);
-SILO_API extern int      DBIsEmptyPointvar(DBpointvar const *var);
-SILO_API extern int      DBIsEmptyMeshvar(DBmeshvar const *var);
-SILO_API extern int      DBIsEmptyQuadmesh(DBquadmesh const *msh);
-SILO_API extern int      DBIsEmptyQuadvar(DBquadvar const *var);
-SILO_API extern int      DBIsEmptyUcdmesh(DBucdmesh const *msh);
-SILO_API extern int      DBIsEmptyFacelist(DBfacelist const *fl);
-SILO_API extern int      DBIsEmptyZonelist(DBzonelist const *zl);
-SILO_API extern int      DBIsEmptyPHZonelist(DBphzonelist const *zl);
-SILO_API extern int      DBIsEmptyUcdvar(DBucdvar const *var);
-SILO_API extern int      DBIsEmptyCsgmesh(DBcsgmesh const *msh);
-SILO_API extern int      DBIsEmptyCSGZonelist(DBcsgzonelist const *zl);
-SILO_API extern int      DBIsEmptyCsgvar(DBcsgvar const *var);
-SILO_API extern int      DBIsEmptyMaterial(DBmaterial const *mat);
-SILO_API extern int      DBIsEmptyMatspecies(DBmatspecies const *spec);
-
-SILO_API extern long     DBSetDataReadMask(long);
-SILO_API extern long     DBGetDataReadMask(void);
-SILO_API extern int      DBSetAllowOverwrites(int allow);
-SILO_API extern int      DBGetAllowOverwrites(void);
-SILO_API extern int      DBSetAllowEmptyObjects(int allow);
-SILO_API extern int      DBGetAllowEmptyObjects(void);
-SILO_API extern int      DBSetEnableChecksums(int enable);
-SILO_API extern int      DBGetEnableChecksums(void);
-SILO_API extern void     DBSetCompression(char const *);
-SILO_API extern char    *DBGetCompression(void);
-SILO_API extern int      DBSetFriendlyHDF5Names(int enable);
-SILO_API extern int      DBGetFriendlyHDF5Names(void);
-SILO_API extern int      DBGuessHasFriendlyHDF5Names(DBfile *f);
-SILO_API extern int      DBSetDeprecateWarnings(int max);
-SILO_API extern int      DBGetDeprecateWarnings();
-SILO_API extern int     *DBSetUnknownDriverPriorities(int const *);
-SILO_API extern int     *DBGetUnknownDriverPriorities();
-SILO_API extern int      DBRegisterFileOptionsSet(DBoptlist const *opts);
-SILO_API extern int      DBUnregisterFileOptionsSet(int opts_set_id);
-SILO_API extern void     DBUnregisterAllFileOptionsSets();
-SILO_API extern void    *DBGrabDriver(DBfile *);
-SILO_API extern int      DBUngrabDriver(DBfile *, void const *);
-SILO_API extern int      DBGetDriverType(DBfile const *);
-SILO_API extern int      DBGetDriverTypeFromPath(char const *);
-SILO_API extern char    *DBJoinPath(char const *, char const *);
-SILO_API extern char    *DBVersion(void);
-SILO_API extern int      DBVersionGE(int Maj, int Min, int Pat);
-SILO_API extern char    *DBFileVersion(DBfile const *dbfile);
-SILO_API extern int      DBFileVersionGE(DBfile const *dbfile, int Maj, int Min, int Pat);
-SILO_API extern void     DBShowErrors(int, DBErrFunc_t);
-SILO_API extern char    *DBErrString(void);
-SILO_API extern char    *DBErrFunc(void);
-SILO_API extern char    *DBErrFuncname(void);
-SILO_API extern DBErrFunc_t DBErrfunc(void);
-SILO_API extern int      DBErrno(void);
-SILO_API extern int      DBErrlvl(void);
-SILO_API extern int      DBClose(DBfile *);
-SILO_API extern int      DBPause(DBfile *);
-SILO_API extern int      DBContinue(DBfile *);
-SILO_API extern int      DBInqVarExists(DBfile *, char const *);
-SILO_API extern int      DBForceSingle(int);
-SILO_API extern int      DBUninstall(DBfile *);
-SILO_API extern DBoptlist *DBMakeOptlist(int);
-SILO_API extern int      DBClearOptlist(DBoptlist *);
-SILO_API extern int      DBFreeOptlist(DBoptlist *);
-SILO_API extern int      DBAddOption(DBoptlist *, int, void *);
-SILO_API extern void    *DBGetOption(DBoptlist const *, int);
-SILO_API extern int      DBClearOption(DBoptlist *, int);
-SILO_API extern DBtoc   *DBGetToc(DBfile *);
-SILO_API extern int      DBNewToc(DBfile *);
-SILO_API extern int      DBSortObjectsByOffset(DBfile *, int nobjs,
-                             char const *const *obj_names, int *ranks);
-SILO_API extern int      DBFilters(DBfile *, FILE *);
-SILO_API extern int      DBFilterRegistration(char const *, int (*init) (DBfile *, char *),
-                                     int (*open) (DBfile *, char *));
-SILO_API extern void    *DBGetAtt(DBfile *, char const *, char const *);
-SILO_API extern DBobject *DBGetObject(DBfile *, char const *);
-SILO_API extern int      DBChangeObject(DBfile *, DBobject const *);
-SILO_API extern int      DBWriteObject(DBfile *, DBobject const *, int);
-SILO_API extern void    *DBGetComponent(DBfile *, char const *, char const *);
-SILO_API extern int      DBGetComponentType(DBfile *, char const *, char const *);
-SILO_API extern int      DBWriteComponent(DBfile *, DBobject *, char const *, char const *, char const *,
-                                 void const *, int, long const *);
-SILO_API extern int      DBWrite(DBfile *, char const *, void const *, int const *, int, int);
-SILO_API extern int      DBWriteSlice(DBfile *, char const *, void *, int, int[], int[],
-                             int[], int[], int);
-SILO_API extern DBfacelist *DBCalcExternalFacelist(int *, int, int, int *, int *, int,
-                                          int *, int);
-SILO_API extern DBfacelist *DBCalcExternalFacelist2(int *, int, int, int, int, int *,
-                                           int *, int *, int, int *, int);
-SILO_API extern int      DBGetDir(DBfile *, char *);
-SILO_API extern int      DBSetDir(DBfile *, char const *);
-SILO_API extern int      DBSetDirID(DBfile *, int);
-SILO_API extern int      DBListDir(DBfile *, char **, int);
-SILO_API extern int      DBMkDir(DBfile *, char const *);
-SILO_API extern int      DBCpDir(DBfile *dbfile, char const *srcDir,
-                             DBfile *dstFile, char const *dstDir);
-
-#define DBMkdir DBMkDir
-SILO_API extern int      DBReadAtt(DBfile *, char const *, char const *, void *);
-SILO_API extern int      DBRead(DBfile *, char const *, void *);
-SILO_API extern int      DBReadVar(DBfile *, char const *, void *);
-SILO_API extern int      DBReadVar1(DBfile *, char const *, int, void *);
-SILO_API extern int      DBReadVarSlice(DBfile *, char const *, int *, int *, int *, int,
-                               void *);
-SILO_API extern int      DBGetObjtypeTag (char const *);
-SILO_API extern DBobject *DBMakeObject(char const *, int, int);
-SILO_API extern int      DBFreeObject(DBobject *);
-SILO_API extern int      DBClearObject(DBobject *);
-SILO_API extern int      DBAddVarComponent(DBobject *, char const *, char const *);
-SILO_API extern int      DBAddIntComponent(DBobject *, char const *, int);
-SILO_API extern int      DBAddFltComponent(DBobject *, char const *, double);
-SILO_API extern int      DBAddDblComponent(DBobject *, char const *, double);
-SILO_API extern int      DBAddStrComponent(DBobject *, char const *, char const *);
-SILO_API extern int      DBGetComponentNames(DBfile *, char const *, char ***, char ***);
-
-SILO_API extern DBcompoundarray *DBGetCompoundarray(DBfile *, char const *);
-SILO_API extern DBcurve *DBGetCurve(DBfile *, char const *);
-SILO_API extern DBdefvars *DBGetDefvars(DBfile *, char const *);
-SILO_API extern DBmaterial *DBGetMaterial(DBfile *, char const *);
-SILO_API extern DBmatspecies *DBGetMatspecies(DBfile *, char const *);
-SILO_API extern DBmultimesh *DBGetMultimesh(DBfile *, char const *);
-SILO_API extern DBmultimeshadj *DBGetMultimeshadj(DBfile *, char const *,
-                                                  int, const int *);
-SILO_API extern DBmultivar *DBGetMultivar(DBfile *, char const *);
-SILO_API extern DBmultimat *DBGetMultimat(DBfile *, char const *);
-SILO_API extern DBmultimatspecies *DBGetMultimatspecies(DBfile *, char const *);
-SILO_API extern DBpointmesh *DBGetPointmesh(DBfile *, char const *);
-SILO_API extern DBmeshvar *DBGetPointvar(DBfile *, char const *);
-SILO_API extern DBquadmesh *DBGetQuadmesh(DBfile *, char const *);
-SILO_API extern DBquadvar *DBGetQuadvar(DBfile *, char const *);
-SILO_API extern int      DBGetQuadvar1(DBfile *, char const *, DB_DTPTR1, int *, int *,
-                              DB_DTPTR1, int *, int *, int *);
-SILO_API extern int      DBAnnotateUcdmesh(DBucdmesh *);
-SILO_API extern DBucdmesh *DBGetUcdmesh(DBfile *, char const *);
-SILO_API extern DBucdvar *DBGetUcdvar(DBfile *, char const *);
-SILO_API extern DBcsgmesh *DBGetCsgmesh(DBfile *, char const *);
-SILO_API extern DBcsgvar *DBGetCsgvar(DBfile *, char const *);
-SILO_API extern DBcsgzonelist *DBGetCSGZonelist(DBfile *, char const *);
-SILO_API extern DBfacelist *DBGetFacelist(DBfile *, char const *);
-SILO_API extern DBzonelist *DBGetZonelist(DBfile *, char const *);
-SILO_API extern DBphzonelist *DBGetPHZonelist(DBfile *, char const *);
-SILO_API extern void    *DBGetVar(DBfile *, char const *);
-SILO_API extern int      DBGetVarByteLength(DBfile *, char const *);
-SILO_API extern int      DBGetVarLength(DBfile *, char const *);
-SILO_API extern int      DBGetVarDims(DBfile *, char const *, int, int *);
-SILO_API extern int      DBGetVarType(DBfile *, char const *);
-SILO_API extern int      DBInqFileHasObjects(DBfile *);
-SILO_API extern int      DBInqMeshname(DBfile *, char const *, char const *);
-SILO_API extern int      DBInqMeshtype(DBfile *, char const *);
-SILO_API extern int      DBInqCompoundarray(DBfile *, char const *, char ***,
-                                   int **, int *, int *, int *);
-SILO_API extern DBObjectType DBInqVarType(DBfile *, char const *);
-
-SILO_API extern int      DBPutCompoundarray(DBfile *, char const *, char **, int *, int,
-                                   void *, int, int, DBoptlist *);
-SILO_API extern int      DBPutCurve(DBfile *, char const *, void *, void *, int, int,
-                           DBoptlist *);
-SILO_API extern int      DBPutDefvars (DBfile *, char const *, int, char **, 
-                            int const *, char **, DBoptlist **);
-SILO_API extern int      DBPutFacelist(DBfile *, char const *, int, int, int *, int, int,
-                            int *, int *, int *, int, int *, int *, int);
-SILO_API extern int      DBPutMaterial(DBfile *, char const *, char const *, int, int *, int *,
-                           int *, int, int *, int *, int *, DB_DTPTR1, int,
-                              int, DBoptlist *);
-SILO_API extern int      DBPutMatspecies(struct DBfile *, char const *, char const *, int, int *,
-                                int *, int *, int, int, DB_DTPTR1, int *, int, int,
-                                DBoptlist *);
-SILO_API extern int      DBPutMultimesh(DBfile *, char DB_CONSTARR1, int, char DB_CONSTARR2, int DB_CONSTARR1,
-                               DBoptlist const *);
-SILO_API extern int      DBPutMultimeshadj(DBfile *, char DB_CONSTARR1, int, int DB_CONSTARR1,
-                               int DB_CONSTARR1, int DB_CONSTARR1, int DB_CONSTARR1, int DB_CONSTARR1,
-                               int DB_CONSTARR2, int DB_CONSTARR1, int DB_CONSTARR2, DBoptlist const *optlist);
-SILO_API extern int      DBPutMultivar(DBfile *, char const *, int, char **, int *,
-                              DBoptlist *);
-SILO_API extern int      DBPutMultimat(DBfile *, char const *, int, char **, DBoptlist *);
-SILO_API extern int      DBPutMultimatspecies(DBfile *, char const *, int, char **,
-                                     DBoptlist *);
-SILO_API extern int      DBPutPointmesh(DBfile *, char const *, int, DB_DTPTR2, int, int,
-                               DBoptlist *);
-SILO_API extern int      DBPutPointvar(DBfile *, char const *, char const *, int, DB_DTPTR2, int,
-                              int, DBoptlist *);
-SILO_API extern int      DBPutPointvar1(DBfile *, char const *, char const *, DB_DTPTR1, int, int,
-                               DBoptlist *);
-SILO_API extern int      DBPutQuadmesh(DBfile *, char const *, char **, DB_DTPTR2, int *, int,
-                              int, int, DBoptlist *);
-SILO_API extern int      DBPutQuadvar(DBfile *, char const *, char const *, int, char **, DB_DTPTR2,
-                             int *, int, DB_DTPTR2, int, int, int, DBoptlist *);
-SILO_API extern int      DBPutQuadvar1(DBfile *, char const *, char const *, DB_DTPTR1, int *, int,
-                              DB_DTPTR1, int, int, int, DBoptlist *);
-SILO_API extern int      DBPutUcdmesh(DBfile *, char const *, int, char **, DB_DTPTR2, int,
-                             int, char const *, char const *, int, DBoptlist *);
-SILO_API extern int      DBPutUcdsubmesh(DBfile *, char const *, char const *, int,
-                             char const *, char const *, DBoptlist *);
-SILO_API extern int      DBPutUcdvar(DBfile *, char const *, char const *, int, char **, DB_DTPTR2,
-                            int, DB_DTPTR2, int, int, int, DBoptlist *);
-SILO_API extern int      DBPutUcdvar1(DBfile *, char const *, char const *, DB_DTPTR1, int, DB_DTPTR1,
-                             int, int, int, DBoptlist *);
-SILO_API extern int      DBPutZonelist(DBfile *, char const *, int, int, int *, int, int,
-                              int *, int *, int);
-SILO_API extern int      DBPutZonelist2(DBfile *, char const *, int, int, int *, int, int,
-                               int, int, int *, int *, int *, int, DBoptlist*);
-SILO_API extern int      DBPutPHZonelist(DBfile *, char const *, int, int *, int, int *, char const *,
-                                                           int, int *, int, int *,
-                                                           int, int, int, DBoptlist *);
-SILO_API extern int      DBPutCsgmesh(DBfile *, char const *, int, int, int const *, int const *,
-                                      void const *, int, int, double const *, char const *,
-                                      DBoptlist *);
-SILO_API extern int      DBPutCSGZonelist(DBfile *, char const *, int, int const *,
-                                          int const *, int const *, void const *, int, int,
-                                          int, int const *, DBoptlist *);
-SILO_API extern int      DBPutCsgvar(DBfile *, char const *, char const *, int, char **,
-                                     void **, int, int, int, DBoptlist *);
-
-SILO_API extern void DBFreeMrgtree(DBmrgtree *tree);
-SILO_API extern void DBPrintMrgtree(DBmrgtnode *tnode, int walk_order, void *data);
-SILO_API extern void DBLinearizeMrgtree(DBmrgtnode *tnode, int walk_order, void *data);
-SILO_API extern void DBWalkMrgtree(DBmrgtree *tree, DBmrgwalkcb cb, void *wdata,
-                         int traversal_order);
-
-SILO_API extern DBmrgtree *DBMakeMrgtree(int source_mesh_type, int mrgtree_info,
-                               int max_root_descendents, DBoptlist *opts);
-SILO_API extern int      DBAddRegion(DBmrgtree *tree, char const *region_name,
-                             int type_info_bits, int max_descendents,
-                             char const *maps_name, int nsegs, int *seg_ids,
-                             int *seg_sizes, int *seg_types, DBoptlist *opts);
-
-SILO_API extern int      DBAddRegionArray(DBmrgtree *tree, int nregn,
-                             char **regn_names, int type_info_bits,
-                             char const *maps_name, int nsegs, int *seg_ids,
-                             int *seg_sizes, int *seg_types, DBoptlist *opts);
-
-SILO_API extern int      DBSetCwr(DBmrgtree *tree, char const *path);
-SILO_API extern char const *DBGetCwr(DBmrgtree *tree);
-
-SILO_API extern int      DBPutMrgtree(DBfile *dbfile, char const *mrg_tree_name,
-                             char const *mesh_name, DBmrgtree *tree, DBoptlist *opts);
-SILO_API extern DBmrgtree *DBGetMrgtree(DBfile *dbfile, char const *mrg_tree_name);
-
-SILO_API extern int      DBPutMrgvar(DBfile *dbfile, char const *name,
-                             char const *mrgt_name,
-			     int ncomps, char **compnames,
-			     int nregns, char **reg_pnames,
-                             int datatype, void **data, DBoptlist *opts);
-SILO_API extern DBmrgvar *DBGetMrgvar(DBfile *dbfile, char const *name);
-SILO_API extern void DBFreeMrgvar(DBmrgvar *mrgv);
-
-SILO_API extern int      DBPutGroupelmap(DBfile *dbfile, char const *map_name,
-                             int num_segments, int *groupel_types, int *segment_lengths,
-                             int *segment_ids, int **segment_data, void **segment_fracs,
-                             int fracs_data_type, DBoptlist *opts);
-SILO_API extern DBgroupelmap *DBGetGroupelmap(DBfile *dbfile, char const *name);
-SILO_API extern void DBFreeGroupelmap(DBgroupelmap *map);
-
-SILO_API extern void *   DBFortranAccessPointer(int value);
-SILO_API extern int      DBFortranAllocPointer(void *pointer);
-SILO_API extern void     DBFortranRemovePointer(int value);
-
-SILO_API extern int      DBVariableNameValid(char const *s);
-SILO_API extern char *safe_strdup(char const *s);
-
-SILO_API extern int      DBFreeCompressionResources(DBfile *dbfile, char const *meshname);
-
-SILO_API extern DBnamescheme *DBMakeNamescheme(char const *fmt, ...);
-SILO_API char const *DBGetName(DBnamescheme *ns, int natnum);
-
-SILO_API extern void DBStringArrayToStringList(char **strArray, int n,
-                         char **strList, int *m);
-SILO_API char ** DBStringListToStringArray(char *strList, int *n, int handleSlashSwap,
-                     int skipSemicolonAtIndexZero);
+typedef void (*DBErrFunc_t)(char *);
 
 /*-------------------------------------------------------------------------
  * Public global variables.
@@ -2127,8 +1791,350 @@ SILO_API extern DBfile *(*DBCreateCB[])(char const *, int, int, int, char const
 SILO_API extern int     (*DBFSingleCB[])(int);
 #endif
 
+#define SILO_VSTRING_NAME "_silolibinfo"
+#define SILO_VSTRING PACKAGE_VERSION
+SILO_API extern int SILO_VERS_TAG;
+#define SiloCheckVersion SILO_VERS_TAG = 1
+
+/* define versions of Silo this version is backward ABI compatible with */
+SILO_API extern int Silo_version_4_10;
+
+/*
+ * SILO API FUNCTIONS 
+ */
+
+/* Error handling and other global library behavior */
+SILO_API extern void                   DBShowErrors(int, DBErrFunc_t);
+SILO_API extern char const *           DBErrString(void);
+SILO_API extern char const *           DBErrFuncname(void);
+SILO_API extern DBErrFunc_t            DBErrfunc(void);
+SILO_API extern int                    DBErrno(void);
+SILO_API extern int                    DBErrlvl(void);
+/* Designed to prevent accidental use of old interface by forcing a human readable compile time error */
+#define DBSetDataReadMask(A) ,DBSetDataReadMask_is_replaced_with_DBSetDataReadMask2_using_unsigned_long_long
+#define DBGetDataReadMask() ,DBGetDataReadMask_is_replaced_with_DBGetDataReadMask2_using_unsigned_long_long
+SILO_API extern unsigned long long     DBSetDataReadMask2(unsigned long long);
+SILO_API extern unsigned long long     DBGetDataReadMask2(void);
+SILO_API extern char *                 DBGetDatatypeString(int datatype);
+SILO_API extern int                    DBSetAllowOverwrites(int allow);
+SILO_API extern int                    DBGetAllowOverwrites(void);
+SILO_API extern int                    DBSetAllowEmptyObjects(int allow);
+SILO_API extern int                    DBGetAllowEmptyObjects(void);
+SILO_API extern int                    DBSetEnableChecksums(int enable);
+SILO_API extern int                    DBGetEnableChecksums(void);
+SILO_API extern void                   DBSetCompression(char const *);
+SILO_API extern char const *           DBGetCompression(void);
+SILO_API extern int                    DBSetFriendlyHDF5Names(int enable);
+SILO_API extern int                    DBGetFriendlyHDF5Names(void);
+SILO_API extern int                    DBSetDeprecateWarnings(int max);
+SILO_API extern int                    DBGetDeprecateWarnings();
+SILO_API extern int const *            DBSetUnknownDriverPriorities(int const *);
+SILO_API extern int const *            DBGetUnknownDriverPriorities();
+SILO_API extern int                    DBRegisterFileOptionsSet(DBoptlist const *opts);
+SILO_API extern int                    DBUnregisterFileOptionsSet(int opts_set_id);
+SILO_API extern void                   DBUnregisterAllFileOptionsSets();
+SILO_API extern char const *           DBVersion(void);
+SILO_API extern int                    DBVersionDigits(int *Maj, int *Min, int *Pat, int *Pre);
+SILO_API extern int                    DBVersionGE(int Maj, int Min, int Pat);
+SILO_API extern int                    DBVariableNameValid(char const *s);
+SILO_API extern int                    DBForceSingle(int);
+
+/* Functions involving files, file structure and file inquiries */
+SILO_API extern DBfile *               DBOpenReal(char const *name, int dbtype, int mode);
+SILO_API extern DBfile *               DBCreateReal(char const *name, int mode, int targ, char const *info, int dbtype);
+SILO_API extern int                    DBInqFileReal(char const *name);
+/* 
+ * The above functions are the 'Real' implementations of their macro counterparts (below).
+ * These are the functions by which client code first gets into Silo. They are separated
+ * out because they do a link-time header/library version check for us. It works because
+ * we don't advertise the 'Real' functions and instead encourage clients to use the macro
+ * counterparts (below). The macros wind up creating a reference to the Silo vesion tag
+ * which is resolved only when the client is linked with a library that defines the
+ * associated version symbol.
+ */
+#define DBOpen(NM, DR, MD)            (SiloCheckVersion, DBOpenReal(NM, DR, MD))
+#define DBCreate(NM, MD, TG, NF, DR)  (SiloCheckVersion, DBCreateReal(NM, MD, TG, NF, DR))
+#define DBInqFile(NM)                 (SiloCheckVersion, DBInqFileReal(NM))
+SILO_API extern int                    DBClose(DBfile *);
+SILO_API extern DBtoc *                DBGetToc(DBfile *);
+SILO_API extern int                    DBNewToc(DBfile *);
+SILO_API extern void *                 DBGrabDriver(DBfile *);
+SILO_API extern int                    DBUngrabDriver(DBfile *, void const *);
+SILO_API extern int                    DBGetDriverType(DBfile const *);
+SILO_API extern int                    DBGetDriverTypeFromPath(char const *);
+SILO_API extern int                    DBVersionGEFileVersion(DBfile const *dbfile);
+SILO_API extern char const *           DBFileVersion(DBfile const *dbfile);
+SILO_API extern int                    DBFileVersionDigits(DBfile const *dbfile, int *Maj, int *Min, int *Pat, int *Pre);
+SILO_API extern int                    DBFileVersionGE(DBfile const *dbfile, int Maj, int Min, int Pat);
+SILO_API extern int                    DBGetDir(DBfile *, char *);
+SILO_API extern int                    DBSetDir(DBfile *, char const *);
+#define DBMkdir DBMkDir
+SILO_API extern int                    DBMkDir(DBfile *, char const *);
+SILO_API extern int                    DBCpDir(DBfile *dbfile, char const *srcDir,
+                                           DBfile *dstFile, char const *dstDir);
+SILO_API extern int                    DBGuessHasFriendlyHDF5Names(DBfile *f);
+SILO_API extern int                    DBInqVarExists(DBfile *, char const *);
+SILO_API extern int                    DBUninstall(DBfile *);
+SILO_API extern int                    DBFreeCompressionResources(DBfile *dbfile, char const *meshname);
+SILO_API extern int                    DBSortObjectsByOffset(DBfile *, int nobjs, char const * const *obj_names, int *ranks);
+SILO_API extern int                    DBFilters(DBfile *, FILE *);
+SILO_API extern int                    DBFilterRegistration(char const *, int (*init) (DBfile *, char *),
+                                           int (*open) (DBfile *, char *));
+SILO_API extern int                    DBInqFileHasObjects(DBfile *);
+
+/* Object Allocation, Free and IsEmpty functions */
+SILO_API extern DBcompoundarray *      DBAllocCompoundarray(void);
+SILO_API extern DBcurve *              DBAllocCurve(void);
+SILO_API extern DBdefvars *            DBAllocDefvars(int);
+SILO_API extern DBmultimesh *          DBAllocMultimesh(int);
+SILO_API extern DBmultimeshadj *       DBAllocMultimeshadj(int);
+SILO_API extern DBmultivar *           DBAllocMultivar(int);
+SILO_API extern DBmultimat *           DBAllocMultimat(int);
+SILO_API extern DBmultimatspecies *    DBAllocMultimatspecies(int);
+SILO_API extern DBcsgmesh *            DBAllocCsgmesh(void);
+SILO_API extern DBquadmesh *           DBAllocQuadmesh(void);
+SILO_API extern DBpointmesh *          DBAllocPointmesh(void);
+SILO_API extern DBmeshvar *            DBAllocMeshvar(void);
+SILO_API extern DBucdmesh *            DBAllocUcdmesh(void);
+SILO_API extern DBcsgvar *             DBAllocCsgvar(void);
+SILO_API extern DBquadvar *            DBAllocQuadvar(void);
+SILO_API extern DBucdvar *             DBAllocUcdvar(void);
+SILO_API extern DBzonelist *           DBAllocZonelist(void);
+SILO_API extern DBphzonelist *         DBAllocPHZonelist(void);
+SILO_API extern DBcsgzonelist *        DBAllocCSGZonelist(void);
+SILO_API extern DBedgelist *           DBAllocEdgelist(void);
+SILO_API extern DBfacelist *           DBAllocFacelist(void);
+SILO_API extern DBmaterial *           DBAllocMaterial(void);
+SILO_API extern DBmatspecies *         DBAllocMatspecies(void);
+SILO_API extern DBnamescheme *         DBAllocNamescheme(void);
+SILO_API extern DBgroupelmap *         DBAllocGroupelmap(int, DBdatatype);
+
+SILO_API extern void                   DBFreeMatspecies(DBmatspecies *);
+SILO_API extern void                   DBFreeMaterial(DBmaterial *);
+SILO_API extern void                   DBFreeFacelist(DBfacelist *);
+SILO_API extern void                   DBFreeEdgelist(DBedgelist *);
+SILO_API extern void                   DBFreeZonelist(DBzonelist *);
+SILO_API extern void                   DBFreePHZonelist(DBphzonelist *);
+SILO_API extern void                   DBFreeCSGZonelist(DBcsgzonelist *);
+SILO_API extern void                   DBResetUcdvar(DBucdvar *);
+SILO_API extern void                   DBFreeUcdvar(DBucdvar *);
+SILO_API extern void                   DBResetQuadvar(DBquadvar *);
+SILO_API extern void                   DBFreeCsgvar(DBcsgvar *);
+SILO_API extern void                   DBFreeQuadvar(DBquadvar *);
+SILO_API extern void                   DBFreeUcdmesh(DBucdmesh *);
+SILO_API extern void                   DBFreeMeshvar(DBmeshvar *);
+SILO_API extern void                   DBFreePointvar(DBpointvar *);
+SILO_API extern void                   DBFreePointmesh(DBpointmesh *);
+SILO_API extern void                   DBFreeQuadmesh(DBquadmesh *);
+SILO_API extern void                   DBFreeCsgmesh(DBcsgmesh *);
+SILO_API extern void                   DBFreeDefvars(DBdefvars*);
+SILO_API extern void                   DBFreeMultimesh(DBmultimesh *);
+SILO_API extern void                   DBFreeMultimeshadj(DBmultimeshadj *);
+SILO_API extern void                   DBFreeMultivar(DBmultivar *);
+SILO_API extern void                   DBFreeMultimat(DBmultimat *);
+SILO_API extern void                   DBFreeMultimatspecies(DBmultimatspecies *);
+SILO_API extern void                   DBFreeCompoundarray(DBcompoundarray *);
+SILO_API extern void                   DBFreeCurve(DBcurve *);
+SILO_API extern void                   DBFreeNamescheme(DBnamescheme *);
+SILO_API extern void                   DBFreeMrgvar(DBmrgvar *mrgv);
+SILO_API extern void                   DBFreeMrgtree(DBmrgtree *tree);
+SILO_API extern void                   DBFreeGroupelmap(DBgroupelmap *map);
+
+SILO_API extern int                    DBIsEmptyCurve(DBcurve const *curve);
+SILO_API extern int                    DBIsEmptyPointmesh(DBpointmesh const *msh);
+SILO_API extern int                    DBIsEmptyPointvar(DBpointvar const *var);
+SILO_API extern int                    DBIsEmptyMeshvar(DBmeshvar const *var);
+SILO_API extern int                    DBIsEmptyQuadmesh(DBquadmesh const *msh);
+SILO_API extern int                    DBIsEmptyQuadvar(DBquadvar const *var);
+SILO_API extern int                    DBIsEmptyUcdmesh(DBucdmesh const *msh);
+SILO_API extern int                    DBIsEmptyFacelist(DBfacelist const *fl);
+SILO_API extern int                    DBIsEmptyZonelist(DBzonelist const *zl);
+SILO_API extern int                    DBIsEmptyPHZonelist(DBphzonelist const *zl);
+SILO_API extern int                    DBIsEmptyUcdvar(DBucdvar const *var);
+SILO_API extern int                    DBIsEmptyCsgmesh(DBcsgmesh const *msh);
+SILO_API extern int                    DBIsEmptyCSGZonelist(DBcsgzonelist const *zl);
+SILO_API extern int                    DBIsEmptyCsgvar(DBcsgvar const *var);
+SILO_API extern int                    DBIsEmptyMaterial(DBmaterial const *mat);
+SILO_API extern int                    DBIsEmptyMatspecies(DBmatspecies const *spec);
+
+/* User-defined (generic) Data and Object functions */
+SILO_API extern int                    DBGetObjtypeTag(char const *);
+SILO_API extern DBobject *             DBMakeObject(char const *, int, int);
+SILO_API extern int                    DBFreeObject(DBobject *);
+SILO_API extern int                    DBClearObject(DBobject *);
+SILO_API extern int                    DBAddVarComponent(DBobject *, char const *, char const *);
+SILO_API extern int                    DBAddIntComponent(DBobject *, char const *, int);
+SILO_API extern int                    DBAddFltComponent(DBobject *, char const *, double);
+SILO_API extern int                    DBAddDblComponent(DBobject *, char const *, double);
+SILO_API extern int                    DBAddStrComponent(DBobject *, char const *, char const *);
+SILO_API extern int                    DBGetComponentNames(DBfile *, char const *, char ***, char ***);
+SILO_API extern DBobject *             DBGetObject(DBfile *, char const *);
+SILO_API extern int                    DBChangeObject(DBfile *, DBobject const *);
+SILO_API extern int                    DBWriteObject(DBfile *, DBobject const *, int);
+SILO_API extern void *                 DBGetComponent(DBfile *, char const *, char const *);
+SILO_API extern int                    DBGetComponentType(DBfile *, char const *, char const *);
+SILO_API extern int                    DBWriteComponent(DBfile *, DBobject *, char const *, char const *, char const *,
+                                           void const *, int, long const *);
+SILO_API extern int                    DBWrite(DBfile *, char const *, void const *, int const *, int, int);
+SILO_API extern int                    DBWriteSlice(DBfile *dbfile, char const *array_name,
+                                           void const * data, int datatype, int const *offsets,
+                                           int const *lengths, int const *strides, int const *dims,
+                                           int ndims);
+SILO_API extern int                    DBRead(DBfile *, char const *, void *);
+SILO_API extern int                    DBReadVar(DBfile *, char const *, void *);
+SILO_API extern int                    DBReadVarSlice(DBfile *, char const *, int const *, int const *, int const *, int, void *);
+SILO_API extern DBcompoundarray *      DBGetCompoundarray(DBfile *, char const *);
+SILO_API extern int                    DBInqCompoundarray(DBfile *, char const *, char ***, int **, int *, int *, int *);
+SILO_API extern void *                 DBGetVar(DBfile *, char const *);
+SILO_API extern int                    DBGetVarByteLength(DBfile *, char const *);
+SILO_API extern int                    DBGetVarLength(DBfile *, char const *);
+SILO_API extern int                    DBGetVarDims(DBfile *, char const *, int, int *);
+SILO_API extern int                    DBGetVarType(DBfile *, char const *);
+SILO_API extern DBObjectType           DBInqVarType(DBfile *, char const *);
+
+/* Curve, Mesh, Variable and Material functions */
+SILO_API extern DBcurve *              DBGetCurve(DBfile *, char const *);
+SILO_API extern DBdefvars *            DBGetDefvars(DBfile *, char const *);
+SILO_API extern DBmaterial *           DBGetMaterial(DBfile *, char const *);
+SILO_API extern DBmatspecies *         DBGetMatspecies(DBfile *, char const *);
+SILO_API extern DBpointmesh *          DBGetPointmesh(DBfile *, char const *);
+SILO_API extern DBmeshvar *            DBGetPointvar(DBfile *, char const *);
+SILO_API extern DBquadmesh *           DBGetQuadmesh(DBfile *, char const *);
+SILO_API extern DBquadvar *            DBGetQuadvar(DBfile *, char const *);
+SILO_API extern DBucdmesh *            DBGetUcdmesh(DBfile *, char const *);
+SILO_API extern DBucdvar *             DBGetUcdvar(DBfile *, char const *);
+SILO_API extern DBcsgmesh *            DBGetCsgmesh(DBfile *, char const *);
+SILO_API extern DBcsgvar *             DBGetCsgvar(DBfile *, char const *);
+SILO_API extern DBcsgzonelist *        DBGetCSGZonelist(DBfile *, char const *);
+SILO_API extern DBfacelist *           DBGetFacelist(DBfile *, char const *);
+SILO_API extern DBzonelist *           DBGetZonelist(DBfile *, char const *);
+SILO_API extern DBphzonelist *         DBGetPHZonelist(DBfile *, char const *);
+SILO_API extern int                    DBInqMeshname(DBfile *, char const *, char *);
+SILO_API extern int                    DBInqMeshtype(DBfile *, char const *);
+SILO_API extern int                    DBPutCompoundarray(DBfile *dbfile, char const *name, char const * const *elemnames,
+                                           int const *elemlens, int nelems, void const *values, int nvalues, int datatype,
+                                           DBoptlist const *);
+SILO_API extern int                    DBPutCurve(DBfile *dbfile, char const * name, void const * xvals,
+                                           void const * yvals, int datatype, int npts, DBoptlist const * opts);
+SILO_API extern int                    DBPutDefvars(DBfile *dbfile, char const *name, int, char const * const *names, 
+                                           int const *types, char const * const *defns, DBoptlist const * const *opts);
+SILO_API extern int                    DBPutFacelist(DBfile *dbfile, char const *, int nfaces, int ndims, int const *nodelist,
+                                           int lnodelist, int origin, int const *zoneno, int const *shapesize,
+                                           int const *shapecnt, int nshapes, int const *types, int const *typelist, int ntypes);
+SILO_API extern int                    DBPutMaterial(DBfile *dbfile, char const *name, char const *meshname, int nmat,
+                                           int const *matnos, int const *matlist, int const *dims, int ndims,
+                                           int const *mix_next, int const *mix_mat, int const *mix_zone, DBVCP1_t mix_vf,
+                                           int mixlen, int datatype, DBoptlist const *opts);
+SILO_API extern int                    DBPutMatspecies(struct DBfile *dbfile, char const *name, char const *matnam,
+                                           int nmat, int const *nmatspec, int const *speclist, int const *dims,
+                                           int ndims, int nspecies_mf, DBVCP1_t species_mf, int const *mix_speclist,
+                                           int mixlen, int datatype, DBoptlist const *optlist);
+SILO_API extern int                    DBPutPointmesh(DBfile *, char const *, int, DBVCP2_t, int, int, DBoptlist const *);
+SILO_API extern int                    DBPutPointvar(DBfile *, char const *, char const *, int, DBVCP2_t, int, int,
+                                           DBoptlist const *);
+SILO_API extern int                    DBPutPointvar1(DBfile *, char const *, char const *, DBVCP1_t, int, int,
+                                           DBoptlist const *);
+SILO_API extern int                    DBPutQuadmesh(DBfile *, char const *, char const * const *, DBVCP2_t, int const *, int,
+                                           int, int, DBoptlist const *);
+SILO_API extern int                    DBPutQuadvar(DBfile *, char const *, char const *, int, char const * const *, DBVCP2_t,
+                                           int const *, int, DBVCP2_t, int, int, int, DBoptlist const *);
+SILO_API extern int                    DBPutQuadvar1(DBfile *, char const *, char const *, DBVCP1_t, int const *, int,
+                                           DBVCP1_t, int, int, int, DBoptlist const *);
+SILO_API extern int                    DBPutUcdmesh(DBfile *, char const *, int, char const * const *, DBVCP2_t, int,
+                                           int, char const *, char const *, int, DBoptlist const *);
+SILO_API extern int                    DBPutUcdsubmesh(DBfile *, char const *, char const *, int,
+                                           char const *, char const *, DBoptlist const *);
+SILO_API extern int                    DBPutUcdvar(DBfile *, char const *, char const *, int, char const * const *, DBVCP2_t,
+                                           int, DBVCP2_t, int, int, int, DBoptlist const *);
+SILO_API extern int                    DBPutUcdvar1(DBfile *, char const *, char const *, DBVCP1_t, int, DBVCP1_t,
+                                           int, int, int, DBoptlist const *);
+SILO_API extern int                    DBPutZonelist(DBfile *, char const *, int, int, int const *, int, int,
+                                           int const *, int const *, int);
+SILO_API extern int                    DBPutZonelist2(DBfile *, char const *, int, int, int const *, int, int,
+                                           int, int, int const *, int const *, int const *, int, DBoptlist const *);
+SILO_API extern int                    DBPutPHZonelist(DBfile *, char const *, int, int const *, int, int const *, char const *,
+                                           int, int const *, int, int const *, int, int, int, DBoptlist const *);
+SILO_API extern int                    DBPutCsgmesh(DBfile *, char const *, int, int, int const *, int const *,
+                                           void const *, int, int, double const *, char const *, DBoptlist const *);
+SILO_API extern int                    DBPutCSGZonelist(DBfile *, char const *, int, int const *,
+                                           int const *, int const *, void const *, int, int, int, int const *,
+                                           DBoptlist const *);
+SILO_API extern int                    DBPutCsgvar(DBfile *, char const *, char const *, int, char const * const *,
+                                           DBVCP2_t, int, int, int, DBoptlist const *);
+
+/* Part Assemblies, AMR, Slide Surfaces, Nodesets and Other Arbitrary Mesh Subsets */
+SILO_API extern void                   DBPrintMrgtree(DBmrgtnode *tnode, int walk_order, void *data);
+SILO_API extern void                   DBLinearizeMrgtree(DBmrgtnode *tnode, int walk_order, void *data);
+SILO_API extern void                   DBWalkMrgtree(DBmrgtree const *tree, DBmrgwalkcb cb, void *wdata, int traversal_order);
+SILO_API extern DBmrgtree *            DBMakeMrgtree(int source_mesh_type, int mrgtree_info, int max_root_descendents,
+                                           DBoptlist *opts);
+SILO_API extern int                    DBAddRegion(DBmrgtree *tree, char const *region_name, int type_info_bits,
+                                           int max_descendents, char const *maps_name, int nsegs, int const *seg_ids,
+                                           int const *seg_sizes, int const *seg_types, DBoptlist const *opts);
+SILO_API extern int                    DBAddRegionArray(DBmrgtree *tree, int nregn, char const * const *regn_names,
+                                           int type_info_bits, char const *maps_name, int nsegs, int const *seg_ids,
+                                           int const *seg_sizes, int const *seg_types, DBoptlist const *opts);
+SILO_API extern int                    DBSetCwr(DBmrgtree *tree, char const *path);
+SILO_API extern char const *           DBGetCwr(DBmrgtree *tree);
+SILO_API extern int                    DBPutMrgtree(DBfile *dbfile, char const *mrg_tree_name, char const *mesh_name,
+                                           DBmrgtree const *tree, DBoptlist const *opts);
+SILO_API extern int                    DBPutMrgvar(DBfile *dbfile, char const *name, char const *mrgt_name,
+			                   int ncomps, char const * const *compnames, int nregns,
+                                           char const * const *reg_pnames, int datatype, DBVCP2_t data,
+                                           DBoptlist const *opts);
+SILO_API extern int                    DBPutGroupelmap(DBfile *dbfile, char const *map_name, int num_segments,
+                                           int const *groupel_types, int const *segment_lengths, int const *segment_ids,
+                                           int const * const *segment_data, DBVCP2_t segment_fracs,
+                                           int fracs_data_type, DBoptlist const *opts);
+SILO_API extern DBmrgtree *            DBGetMrgtree(DBfile *dbfile, char const *mrg_tree_name);
+SILO_API extern DBgroupelmap *         DBGetGroupelmap(DBfile *dbfile, char const *name);
+SILO_API extern DBmrgvar *             DBGetMrgvar(DBfile *dbfile, char const *name);
+SILO_API extern DBnamescheme *         DBMakeNamescheme(char const *fmt, ...);
+SILO_API extern char const *           DBGetName(DBnamescheme const *ns, int natnum);
+
+/* Multi-block objects and parallel I/O */
+SILO_API extern DBmultimesh *          DBGetMultimesh(DBfile *, char const *);
+SILO_API extern DBmultimeshadj *       DBGetMultimeshadj(DBfile *, char const *, int, int const *);
+SILO_API extern DBmultivar *           DBGetMultivar(DBfile *, char const *);
+SILO_API extern DBmultimat *           DBGetMultimat(DBfile *, char const *);
+SILO_API extern DBmultimatspecies *    DBGetMultimatspecies(DBfile *, char const *);
+SILO_API extern int                    DBPutMultimesh(DBfile *, char const *, int, char const * const *, int const *,
+                                           DBoptlist const *);
+SILO_API extern int                    DBPutMultimeshadj(DBfile *, char const *, int, int const *, int const *,
+                                           int const *, int const *, int const *, int const * const *, int const *,
+                                           int const * const *, DBoptlist const *optlist);
+SILO_API extern int                    DBPutMultivar(DBfile *, char const *, int, char const * const *, int const *,
+                                           DBoptlist const *);
+SILO_API extern int                    DBPutMultimat(DBfile *, char const *, int, char const * const *, DBoptlist const *);
+SILO_API extern int                    DBPutMultimatspecies(DBfile *, char const *, int, char const * const *, DBoptlist const *);
+
+/* Option lists */
+SILO_API extern DBoptlist *            DBMakeOptlist(int);
+SILO_API extern int                    DBClearOptlist(DBoptlist *);
+SILO_API extern int                    DBFreeOptlist(DBoptlist *);
+SILO_API extern int                    DBAddOption(DBoptlist *, int, void *);
+SILO_API extern void *                 DBGetOption(DBoptlist const *, int);
+SILO_API extern int                    DBClearOption(DBoptlist *, int);
+
+/* Calculational and Utility methods */
+SILO_API extern int                    DBAnnotateUcdmesh(DBucdmesh *);
+SILO_API extern DBfacelist *           DBCalcExternalFacelist(int *, int, int, int *, int *, int, int *, int);
+SILO_API extern DBfacelist *           DBCalcExternalFacelist2(int *, int, int, int, int, int *, int *, int *, int, int *, int);
+SILO_API extern char *                 DBJoinPath(char const *, char const *);
+SILO_API extern void                   DBStringArrayToStringList(char const * const *strArray, int n, char **strList, int *m);
+SILO_API extern char **                DBStringListToStringArray(char const *strList, int *n, int skipSemicolonAtIndexZero);
+SILO_API extern int                    DBIsDifferentDouble(double a, double b, double abstol, double reltol, double reltol_eps);
+SILO_API extern int                    DBIsDifferentLongLong(long long a, long long b, double abstol, double reltol, double reltol_eps);
+
+/* Fortran interface functions */
+SILO_API extern void *                 DBFortranAccessPointer(int value);
+SILO_API extern int                    DBFortranAllocPointer(void *pointer);
+SILO_API extern void                   DBFortranRemovePointer(int value);
+SILO_API extern char *                 _db_safe_strdup(const char *);
+
 #ifdef __cplusplus
 }
 #endif
+
 #undef NO_FORTRAN_DEFINE
 #endif /* !SILO_H */
diff --git a/src/silo/silo.inc b/src/silo/silo.inc
index 72fd3c2..61e720c 100644
--- a/src/silo/silo.inc
+++ b/src/silo/silo.inc
@@ -1,484 +1,842 @@
-!cccccccccccccccccccccccccccccccccccccccccccccccccccccccc -*- fortran -*-
-!
-!     SILO include file for Fortan applications.
-!
-! Programmer:   miller86 Wed Sep 21 09:25:31 PDT 2011
-!
-! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-!    This file is generated automatically from C header files in the
-!    SILO distribution.  Do not make changes to this file manually,
-!    as those changes will disappear.
-! WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-!
-! This file was generated by the following commands...
-!       mv silo.inc silo.inc~
-!       cat silo.h silo_f.h | mkinc > silo.inc
-!
-!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+Ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -*- fortran -*-
+C 
+C      SILO include file for Fortan applications.
+C 
+C  Programmer:   miller86 Mon Sep 29 07:01:26 PDT 2014
+C 
+C  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+C     This file is generated automatically from C header files in the
+C     SILO distribution.  Do not make changes to this file manually,
+C     as those changes will disappear.
+C  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+C 
+C  This file was generated by the following commands...
+C        mv silo.inc silo.inc~
+C        cat silo.h silo_f.h | mkinc > silo.inc
+C 
+C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
 
-!...Functions.
-      external dbaddcaopt, dbaddccmp, dbaddcopt, dbadddopt, dbaddiaopt
-      external dbaddicmp, dbaddiopt, dbaddrcmp, dbaddregion
-      external dbaddregiona, dbaddropt, dbcalcfl, dbclose, dbcreate
-      external dberrno, dbfgetca, dbfreemrgtree, dbfreeobject
-      external dbfreeoptlist, dbget2dstrlen, dbgetca, dbgetcksums
-      external dbgetcompress, dbgetcurve, dbgetdepwarn, dbgethdfnms
-      external dbgetovrwrt, dbgetqv1, dbinqca, dbinqfile, dbinqlen
-      external dbmkdir, dbmkmrgtree, dbmkobject, dbmkoptlist, dbmkptr
-      external dbopen, dbpmrgv, dbputca, dbputcsgm, dbputcsgv
-      external dbputcsgzl, dbputcurve, dbputdefvars, dbputfl
-      external dbputgrplmap, dbputmat, dbputmmat, dbputmmesh
-      external dbputmrgtree, dbputmsp, dbputmvar, dbputpm, dbputpv1
-      external dbputqm, dbputqv, dbputqv1, dbputum, dbputuv1, dbputzl
-      external dbputzl2, dbrdvar, dbrdvarslice, dbregfopts, dbrmptr
-      external dbset2dstrlen, dbsetcksums, dbsetcompress, dbsetcwr
-      external dbsetdepwarn, dbsetdir, dbsetdirid, dbsethdfnms
-      external dbsetovrwrt, dbshowerrors, dbunregafopts, dbunregfopts
-      external dbwrite, dbwriteslice, dbwrtfl
+C...Functions.
+      EXTERNAL  DBADDCAOPT
+      EXTERNAL  DBADDCCMP
+      EXTERNAL  DBADDCOPT
+      EXTERNAL  DBADDDOPT
+      EXTERNAL  DBADDIAOPT
+      EXTERNAL  DBADDICMP
+      EXTERNAL  DBADDIOPT
+      EXTERNAL  DBADDRCMP
+      EXTERNAL  DBADDREGION
+      EXTERNAL  DBADDREGIONA
+      EXTERNAL  DBADDROPT
+      EXTERNAL  DBCALCFL
+      EXTERNAL  DBCLOSE
+      EXTERNAL  DBCREATE
+      EXTERNAL  DBERRNO
+      EXTERNAL  DBFGETCA
+      EXTERNAL  DBFREEMRGTREE
+      EXTERNAL  DBFREEOBJECT
+      EXTERNAL  DBFREEOPTLIST
+      EXTERNAL  DBGET2DSTRLEN
+      EXTERNAL  DBGETCA
+      EXTERNAL  DBGETCKSUMS
+      EXTERNAL  DBGETCOMPRESS
+      EXTERNAL  DBGETCURVE
+      EXTERNAL  DBGETDEPWARN
+      EXTERNAL  DBGETEMPTYOK
+      EXTERNAL  DBGETHDFNMS
+      EXTERNAL  DBGETOVRWRT
+      EXTERNAL  DBGETQV1
+      EXTERNAL  DBINQCA
+      EXTERNAL  DBINQFILE
+      EXTERNAL  DBINQLEN
+      EXTERNAL  DBMKDIR
+      EXTERNAL  DBMKMRGTREE
+      EXTERNAL  DBMKOBJECT
+      EXTERNAL  DBMKOPTLIST
+      EXTERNAL  DBMKPTR
+      EXTERNAL  DBOPEN
+      EXTERNAL  DBPMRGV
+      EXTERNAL  DBPUTCA
+      EXTERNAL  DBPUTCSGM
+      EXTERNAL  DBPUTCSGV
+      EXTERNAL  DBPUTCSGZL
+      EXTERNAL  DBPUTCURVE
+      EXTERNAL  DBPUTDEFVARS
+      EXTERNAL  DBPUTFL
+      EXTERNAL  DBPUTGRPLMAP
+      EXTERNAL  DBPUTMAT
+      EXTERNAL  DBPUTMMAT
+      EXTERNAL  DBPUTMMESH
+      EXTERNAL  DBPUTMRGTREE
+      EXTERNAL  DBPUTMSP
+      EXTERNAL  DBPUTMVAR
+      EXTERNAL  DBPUTPM
+      EXTERNAL  DBPUTPV1
+      EXTERNAL  DBPUTQM
+      EXTERNAL  DBPUTQV
+      EXTERNAL  DBPUTQV1
+      EXTERNAL  DBPUTUM
+      EXTERNAL  DBPUTUV1
+      EXTERNAL  DBPUTZL
+      EXTERNAL  DBPUTZL2
+      EXTERNAL  DBRDVAR
+      EXTERNAL  DBRDVARSLICE
+      EXTERNAL  DBREGFOPTS
+      EXTERNAL  DBRMPTR
+      EXTERNAL  DBSET2DSTRLEN
+      EXTERNAL  DBSETCKSUMS
+      EXTERNAL  DBSETCOMPRESS
+      EXTERNAL  DBSETCWR
+      EXTERNAL  DBSETDEPWARN
+      EXTERNAL  DBSETDIR
+      EXTERNAL  DBSETEMPTYOK
+      EXTERNAL  DBSETHDFNMS
+      EXTERNAL  DBSETOVRWRT
+      EXTERNAL  DBSHOWERRORS
+      EXTERNAL  DBUNREGAFOPTS
+      EXTERNAL  DBUNREGFOPTS
+      EXTERNAL  DBWRITE
+      EXTERNAL  DBWRITESLICE
+      EXTERNAL  DBWRTFL
 
-      integer  dbaddcaopt, dbaddccmp, dbaddcopt, dbadddopt, dbaddiaopt
-      integer  dbaddicmp, dbaddiopt, dbaddrcmp, dbaddregion
-      integer  dbaddregiona, dbaddropt, dbcalcfl, dbclose, dbcreate
-      integer  dberrno, dbfgetca, dbfreemrgtree, dbfreeobject
-      integer  dbfreeoptlist, dbget2dstrlen, dbgetca, dbgetcksums
-      integer  dbgetcompress, dbgetcurve, dbgetdepwarn, dbgethdfnms
-      integer  dbgetovrwrt, dbgetqv1, dbinqca, dbinqfile, dbinqlen
-      integer  dbmkdir, dbmkmrgtree, dbmkobject, dbmkoptlist, dbmkptr
-      integer  dbopen, dbpmrgv, dbputca, dbputcsgm, dbputcsgv
-      integer  dbputcsgzl, dbputcurve, dbputdefvars, dbputfl
-      integer  dbputgrplmap, dbputmat, dbputmmat, dbputmmesh
-      integer  dbputmrgtree, dbputmsp, dbputmvar, dbputpm, dbputpv1
-      integer  dbputqm, dbputqv, dbputqv1, dbputum, dbputuv1, dbputzl
-      integer  dbputzl2, dbrdvar, dbrdvarslice, dbregfopts, dbrmptr
-      integer  dbset2dstrlen, dbsetcksums, dbsetcompress, dbsetcwr
-      integer  dbsetdepwarn, dbsetdir, dbsetdirid, dbsethdfnms
-      integer  dbsetovrwrt, dbshowerrors, dbunregafopts, dbunregfopts
-      integer  dbwrite, dbwriteslice, dbwrtfl
+      INTEGER  DBADDCAOPT
+      INTEGER  DBADDCCMP
+      INTEGER  DBADDCOPT
+      INTEGER  DBADDDOPT
+      INTEGER  DBADDIAOPT
+      INTEGER  DBADDICMP
+      INTEGER  DBADDIOPT
+      INTEGER  DBADDRCMP
+      INTEGER  DBADDREGION
+      INTEGER  DBADDREGIONA
+      INTEGER  DBADDROPT
+      INTEGER  DBCALCFL
+      INTEGER  DBCLOSE
+      INTEGER  DBCREATE
+      INTEGER  DBERRNO
+      INTEGER  DBFGETCA
+      INTEGER  DBFREEMRGTREE
+      INTEGER  DBFREEOBJECT
+      INTEGER  DBFREEOPTLIST
+      INTEGER  DBGET2DSTRLEN
+      INTEGER  DBGETCA
+      INTEGER  DBGETCKSUMS
+      INTEGER  DBGETCOMPRESS
+      INTEGER  DBGETCURVE
+      INTEGER  DBGETDEPWARN
+      INTEGER  DBGETEMPTYOK
+      INTEGER  DBGETHDFNMS
+      INTEGER  DBGETOVRWRT
+      INTEGER  DBGETQV1
+      INTEGER  DBINQCA
+      INTEGER  DBINQFILE
+      INTEGER  DBINQLEN
+      INTEGER  DBMKDIR
+      INTEGER  DBMKMRGTREE
+      INTEGER  DBMKOBJECT
+      INTEGER  DBMKOPTLIST
+      INTEGER  DBMKPTR
+      INTEGER  DBOPEN
+      INTEGER  DBPMRGV
+      INTEGER  DBPUTCA
+      INTEGER  DBPUTCSGM
+      INTEGER  DBPUTCSGV
+      INTEGER  DBPUTCSGZL
+      INTEGER  DBPUTCURVE
+      INTEGER  DBPUTDEFVARS
+      INTEGER  DBPUTFL
+      INTEGER  DBPUTGRPLMAP
+      INTEGER  DBPUTMAT
+      INTEGER  DBPUTMMAT
+      INTEGER  DBPUTMMESH
+      INTEGER  DBPUTMRGTREE
+      INTEGER  DBPUTMSP
+      INTEGER  DBPUTMVAR
+      INTEGER  DBPUTPM
+      INTEGER  DBPUTPV1
+      INTEGER  DBPUTQM
+      INTEGER  DBPUTQV
+      INTEGER  DBPUTQV1
+      INTEGER  DBPUTUM
+      INTEGER  DBPUTUV1
+      INTEGER  DBPUTZL
+      INTEGER  DBPUTZL2
+      INTEGER  DBRDVAR
+      INTEGER  DBRDVARSLICE
+      INTEGER  DBREGFOPTS
+      INTEGER  DBRMPTR
+      INTEGER  DBSET2DSTRLEN
+      INTEGER  DBSETCKSUMS
+      INTEGER  DBSETCOMPRESS
+      INTEGER  DBSETCWR
+      INTEGER  DBSETDEPWARN
+      INTEGER  DBSETDIR
+      INTEGER  DBSETEMPTYOK
+      INTEGER  DBSETHDFNMS
+      INTEGER  DBSETOVRWRT
+      INTEGER  DBSHOWERRORS
+      INTEGER  DBUNREGAFOPTS
+      INTEGER  DBUNREGFOPTS
+      INTEGER  DBWRITE
+      INTEGER  DBWRITESLICE
+      INTEGER  DBWRTFL
 
 
-!...Parameters.
-      integer  DBCSG_ANGLE_PNLA, DBCSG_ANGLE_PPA, DBCSG_BOX_XYXY
-      integer  DBCSG_BOX_XYZXYZ, DBCSG_CIRCLE_PR, DBCSG_COMPLIMENT
-      integer  DBCSG_CONE_PNLA, DBCSG_CONE_PPA, DBCSG_CYLINDER_PNLR
-      integer  DBCSG_CYLINDER_PPR, DBCSG_DIFF, DBCSG_ELLIPSE_PRR
-      integer  DBCSG_ELLIPSOID_PRRR, DBCSG_HEX_6F, DBCSG_INNER
-      integer  DBCSG_INTERSECT, DBCSG_LINE_G, DBCSG_LINE_PN
-      integer  DBCSG_LINE_PP, DBCSG_LINE_X, DBCSG_LINE_Y, DBCSG_ON
-      integer  DBCSG_OUTER, DBCSG_PLANE_G, DBCSG_PLANE_PN
-      integer  DBCSG_PLANE_PPP, DBCSG_PLANE_X, DBCSG_PLANE_Y
-      integer  DBCSG_PLANE_Z, DBCSG_POLYGON_KP, DBCSG_POLYHEDRON_KF
-      integer  DBCSG_PRISM_5F, DBCSG_PYRAMID_5F, DBCSG_QUADRATIC_G
-      integer  DBCSG_QUADRIC_G, DBCSG_QUAD_4P, DBCSG_SPHERE_PR
-      integer  DBCSG_SWEEP, DBCSG_TET_4F, DBCSG_TRI_3P, DBCSG_UNION
-      integer  DBCSG_XFORM, DBOPT_ALIGN, DBOPT_ALLOWMAT0
-      integer  DBOPT_ASCII_LABEL, DBOPT_BASEINDEX, DBOPT_BLOCKORIGIN
-      integer  DBOPT_BNDNAMES, DBOPT_CONSERVED, DBOPT_COORDSYS
-      integer  DBOPT_CYCLE, DBOPT_DISJOINT_MODE, DBOPT_DTIME
-      integer  DBOPT_EXTENSIVE, DBOPT_EXTENTS, DBOPT_EXTENTS_SIZE
-      integer  DBOPT_FACETYPE, DBOPT_FIRST, DBOPT_GROUPINGNAMES
-      integer  DBOPT_GROUPINGS, DBOPT_GROUPINGS_SIZE, DBOPT_GROUPNUM
-      integer  DBOPT_GROUPORIGIN, DBOPT_H5_ALIGN_MIN, DBOPT_H5_ALIGN_VAL
-      integer  DBOPT_H5_CACHE_NBYTES, DBOPT_H5_CACHE_NELMTS
-      integer  DBOPT_H5_CACHE_POLICY, DBOPT_H5_CORE_ALLOC_INC
-      integer  DBOPT_H5_CORE_NO_BACK_STORE, DBOPT_H5_DIRECT_BLOCK_SIZE
-      integer  DBOPT_H5_DIRECT_BUF_SIZE, DBOPT_H5_DIRECT_MEM_ALIGN
-      integer  DBOPT_H5_FAM_FILE_OPTS, DBOPT_H5_FAM_SIZE, DBOPT_H5_FIRST
-      integer  DBOPT_H5_LAST, DBOPT_H5_LOG_BUF_SIZE, DBOPT_H5_LOG_NAME
-      integer  DBOPT_H5_META_BLOCK_SIZE, DBOPT_H5_META_EXTENSION
-      integer  DBOPT_H5_META_FILE_OPTS, DBOPT_H5_MPIO_COMM
-      integer  DBOPT_H5_MPIO_INFO, DBOPT_H5_MPIP_NO_GPFS_HINTS
-      integer  DBOPT_H5_RAW_EXTENSION, DBOPT_H5_RAW_FILE_OPTS
-      integer  DBOPT_H5_SIEVE_BUF_SIZE, DBOPT_H5_SILO_BLOCK_COUNT
-      integer  DBOPT_H5_SILO_BLOCK_SIZE, DBOPT_H5_SILO_LOG_STATS
-      integer  DBOPT_H5_SILO_USE_DIRECT, DBOPT_H5_SMALL_RAW_SIZE
-      integer  DBOPT_H5_USER_DRIVER_ID, DBOPT_H5_USER_DRIVER_INFO
-      integer  DBOPT_H5_VFD, DBOPT_HAS_EXTERNAL_ZONES
-      integer  DBOPT_HIDE_FROM_GUI, DBOPT_HI_OFFSET, DBOPT_LABEL
-      integer  DBOPT_LAST, DBOPT_LLONGNZNUM, DBOPT_LO_OFFSET
-      integer  DBOPT_MAJORORDER, DBOPT_MATCOLORS, DBOPT_MATCOUNTS
-      integer  DBOPT_MATLISTS, DBOPT_MATNAME, DBOPT_MATNAMES
-      integer  DBOPT_MATNOS, DBOPT_MB_BLOCK_NS, DBOPT_MB_BLOCK_TYPE
-      integer  DBOPT_MB_EMPTY_COUNT, DBOPT_MB_EMPTY_LIST
-      integer  DBOPT_MB_FILE_NS, DBOPT_MIXLENS, DBOPT_MMESH_NAME
-      integer  DBOPT_MRGTREE_NAME, DBOPT_MRGV_ONAMES, DBOPT_MRGV_RNAMES
-      integer  DBOPT_NGROUPS, DBOPT_NMAT, DBOPT_NMATNOS, DBOPT_NMATSPEC
-      integer  DBOPT_NODENUM, DBOPT_NSPACE, DBOPT_ORIGIN
-      integer  DBOPT_PHZONELIST, DBOPT_PLANAR, DBOPT_REFERENCE
-      integer  DBOPT_REGION_PNAMES, DBOPT_REGNAMES, DBOPT_SPECCOLORS
-      integer  DBOPT_SPECNAMES, DBOPT_TENSOR_RANK, DBOPT_TIME
-      integer  DBOPT_TOPO_DIM, DBOPT_TV_CONNECTIVITY, DBOPT_UNITS
-      integer  DBOPT_USESPECMF, DBOPT_XLABEL, DBOPT_XUNITS
-      integer  DBOPT_XVARNAME, DBOPT_YLABEL, DBOPT_YUNITS
-      integer  DBOPT_YVARNAME, DBOPT_ZLABEL, DBOPT_ZONECOUNTS
-      integer  DBOPT_ZONENAMES, DBOPT_ZONENUM, DBOPT_ZUNITS
-      integer  DBOPT_ZVARNAME, DB_ABORT, DB_ABUTTING, DB_ALL
-      integer  DB_ALL_AND_DRVR, DB_APPEND, DB_AREA, DB_ARRAY
-      integer  DB_BLOCKCENT, DB_BNDCENT, DB_CARTESIAN, DB_CHAR
-      integer  DB_CLOBBER, DB_COLLINEAR, DB_COLMAJOR, DB_CRAY
-      integer  DB_CSGMESH, DB_CSGVAR, DB_CSGZONELIST, DB_CURVE
-      integer  DB_CURVILINEAR, DB_CYLINDRICAL, DB_DEBUG, DB_DEFVARS
-      integer  DB_DIR, DB_DOUBLE, DB_EDGECENT, DB_EDGELIST, DB_F77NULL
-      integer  DB_FACECENT, DB_FACELIST, DB_FILE_OPTS_H5_DEFAULT_CORE
-      integer  DB_FILE_OPTS_H5_DEFAULT_DEFAULT
-      integer  DB_FILE_OPTS_H5_DEFAULT_DIRECT
-      integer  DB_FILE_OPTS_H5_DEFAULT_FAMILY
-      integer  DB_FILE_OPTS_H5_DEFAULT_LOG, DB_FILE_OPTS_H5_DEFAULT_MPIO
-      integer  DB_FILE_OPTS_H5_DEFAULT_MPIP
-      integer  DB_FILE_OPTS_H5_DEFAULT_SEC2
-      integer  DB_FILE_OPTS_H5_DEFAULT_SILO
-      integer  DB_FILE_OPTS_H5_DEFAULT_SPLIT
-      integer  DB_FILE_OPTS_H5_DEFAULT_STDIO, DB_FILE_OPTS_LAST
-      integer  DB_FLOAT, DB_FLOATING, DB_FROMCWR, DB_GROUPELMAP
-      integer  DB_H5VFD_CORE, DB_H5VFD_DEFAULT, DB_H5VFD_DIRECT
-      integer  DB_H5VFD_FAMILY, DB_H5VFD_LOG, DB_H5VFD_MPIO
-      integer  DB_H5VFD_MPIP, DB_H5VFD_SEC2, DB_H5VFD_SILO
-      integer  DB_H5VFD_SPLIT, DB_H5VFD_STDIO, DB_HDF5, DB_HDF5X
-      integer  DB_HDF5_CORE, DB_HDF5_CORE_OBSOLETE, DB_HDF5_DIRECT
-      integer  DB_HDF5_FAMILY, DB_HDF5_LOG, DB_HDF5_MPIO, DB_HDF5_MPIOP
-      integer  DB_HDF5_MPIOP_OBSOLETE, DB_HDF5_MPIO_OBSOLETE
-      integer  DB_HDF5_MPIP, DB_HDF5_SEC2, DB_HDF5_SEC2_OBSOLETE
-      integer  DB_HDF5_SILO, DB_HDF5_SPLIT, DB_HDF5_STDIO
-      integer  DB_HDF5_STDIO_OBSOLETE, DB_INT, DB_INTEL
-      integer  DB_INVALID_OBJECT, DB_LOCAL, DB_LONG, DB_LONG_LONG
-      integer  DB_MATERIAL, DB_MATSPECIES, DB_MRGTREE, DB_MRGVAR
-      integer  DB_MULTIBLOCKMESH, DB_MULTIBLOCKVAR, DB_MULTIMAT
-      integer  DB_MULTIMATSPECIES, DB_MULTIMESH, DB_MULTIMESHADJ
-      integer  DB_MULTIVAR, DB_NETCDF, DB_NFILES, DB_NFILTERS
-      integer  DB_NOCLOBBER, DB_NODECENT, DB_NONCOLLINEAR, DB_NONE
-      integer  DB_NOTCENT, DB_NOTYPE, DB_NUMERICAL, DB_OFF, DB_ON
-      integer  DB_OTHER, DB_PDB, DB_PDBP, DB_PHZONELIST, DB_POINTMESH
-      integer  DB_POINTVAR, DB_POSTORDER, DB_PREORDER, DB_QUADCURV
-      integer  DB_QUADMESH, DB_QUADRECT, DB_QUADVAR, DB_QUAD_CURV
-      integer  DB_QUAD_RECT, DB_READ, DB_RECTILINEAR, DB_RESUME
-      integer  DB_ROWMAJOR, DB_RS6000, DB_SGI, DB_SHORT, DB_SPHERICAL
-      integer  DB_SUN3, DB_SUN4, DB_SUSPEND, DB_TAURUS, DB_TOP
-      integer  DB_UCDMESH, DB_UCDVAR, DB_UNKNOWN, DB_USERDEF
-      integer  DB_VARIABLE, DB_VARTYPE_ARRAY, DB_VARTYPE_LABEL
-      integer  DB_VARTYPE_MATERIAL, DB_VARTYPE_SCALAR
-      integer  DB_VARTYPE_SPECIES, DB_VARTYPE_SYMTENSOR
-      integer  DB_VARTYPE_TENSOR, DB_VARTYPE_VECTOR, DB_VOLUME
-      integer  DB_ZONECENT, DB_ZONELIST, DB_ZONETYPE_BEAM
-      integer  DB_ZONETYPE_HEX, DB_ZONETYPE_POLYGON
-      integer  DB_ZONETYPE_POLYHEDRON, DB_ZONETYPE_PRISM
-      integer  DB_ZONETYPE_PYRAMID, DB_ZONETYPE_QUAD, DB_ZONETYPE_TET
-      integer  DB_ZONETYPE_TRIANGLE, SILO_VERS_MAJ, SILO_VERS_MIN
-      integer  SILO_VERS_PAT, SILO_VERS_PRE
-      character*12  DB_F77NULLSTRING
+C...Parameters.
+      INTEGER  DBCSG_ANGLE_PNLA
+      INTEGER  DBCSG_ANGLE_PPA
+      INTEGER  DBCSG_BOX_XYXY
+      INTEGER  DBCSG_BOX_XYZXYZ
+      INTEGER  DBCSG_CIRCLE_PR
+      INTEGER  DBCSG_COMPLIMENT
+      INTEGER  DBCSG_CONE_PNLA
+      INTEGER  DBCSG_CONE_PPA
+      INTEGER  DBCSG_CYLINDER_PNLR
+      INTEGER  DBCSG_CYLINDER_PPR
+      INTEGER  DBCSG_DIFF
+      INTEGER  DBCSG_ELLIPSE_PRR
+      INTEGER  DBCSG_ELLIPSOID_PRRR
+      INTEGER  DBCSG_HEX_6F
+      INTEGER  DBCSG_INNER
+      INTEGER  DBCSG_INTERSECT
+      INTEGER  DBCSG_LINE_G
+      INTEGER  DBCSG_LINE_PN
+      INTEGER  DBCSG_LINE_PP
+      INTEGER  DBCSG_LINE_X
+      INTEGER  DBCSG_LINE_Y
+      INTEGER  DBCSG_ON
+      INTEGER  DBCSG_OUTER
+      INTEGER  DBCSG_PLANE_G
+      INTEGER  DBCSG_PLANE_PN
+      INTEGER  DBCSG_PLANE_PPP
+      INTEGER  DBCSG_PLANE_X
+      INTEGER  DBCSG_PLANE_Y
+      INTEGER  DBCSG_PLANE_Z
+      INTEGER  DBCSG_POLYGON_KP
+      INTEGER  DBCSG_POLYHEDRON_KF
+      INTEGER  DBCSG_PRISM_5F
+      INTEGER  DBCSG_PYRAMID_5F
+      INTEGER  DBCSG_QUADRATIC_G
+      INTEGER  DBCSG_QUADRIC_G
+      INTEGER  DBCSG_QUAD_4P
+      INTEGER  DBCSG_SPHERE_PR
+      INTEGER  DBCSG_SWEEP
+      INTEGER  DBCSG_TET_4F
+      INTEGER  DBCSG_TRI_3P
+      INTEGER  DBCSG_UNION
+      INTEGER  DBCSG_XFORM
+      INTEGER  DBOPT_ALIGN
+      INTEGER  DBOPT_ALLOWMAT0
+      INTEGER  DBOPT_ALT_NODENUM_VARS
+      INTEGER  DBOPT_ALT_ZONENUM_VARS
+      INTEGER  DBOPT_ASCII_LABEL
+      INTEGER  DBOPT_BASEINDEX
+      INTEGER  DBOPT_BLOCKORIGIN
+      INTEGER  DBOPT_BNDNAMES
+      INTEGER  DBOPT_CONSERVED
+      INTEGER  DBOPT_COORDSYS
+      INTEGER  DBOPT_CYCLE
+      INTEGER  DBOPT_DISJOINT_MODE
+      INTEGER  DBOPT_DTIME
+      INTEGER  DBOPT_EXTENSIVE
+      INTEGER  DBOPT_EXTENTS
+      INTEGER  DBOPT_EXTENTS_SIZE
+      INTEGER  DBOPT_FACETYPE
+      INTEGER  DBOPT_FIRST
+      INTEGER  DBOPT_GHOST_NODE_LABELS
+      INTEGER  DBOPT_GHOST_ZONE_LABELS
+      INTEGER  DBOPT_GROUPINGNAMES
+      INTEGER  DBOPT_GROUPINGS
+      INTEGER  DBOPT_GROUPINGS_SIZE
+      INTEGER  DBOPT_GROUPNUM
+      INTEGER  DBOPT_GROUPORIGIN
+      INTEGER  DBOPT_H5_ALIGN_MIN
+      INTEGER  DBOPT_H5_ALIGN_VAL
+      INTEGER  DBOPT_H5_CACHE_NBYTES
+      INTEGER  DBOPT_H5_CACHE_NELMTS
+      INTEGER  DBOPT_H5_CACHE_POLICY
+      INTEGER  DBOPT_H5_CORE_ALLOC_INC
+      INTEGER  DBOPT_H5_CORE_NO_BACK_STORE
+      INTEGER  DBOPT_H5_DIRECT_BLOCK_SIZE
+      INTEGER  DBOPT_H5_DIRECT_BUF_SIZE
+      INTEGER  DBOPT_H5_DIRECT_MEM_ALIGN
+      INTEGER  DBOPT_H5_FAM_FILE_OPTS
+      INTEGER  DBOPT_H5_FAM_SIZE
+      INTEGER  DBOPT_H5_FIC_BUF
+      INTEGER  DBOPT_H5_FIC_SIZE
+      INTEGER  DBOPT_H5_FIRST
+      INTEGER  DBOPT_H5_LAST
+      INTEGER  DBOPT_H5_LOG_BUF_SIZE
+      INTEGER  DBOPT_H5_LOG_NAME
+      INTEGER  DBOPT_H5_META_BLOCK_SIZE
+      INTEGER  DBOPT_H5_META_EXTENSION
+      INTEGER  DBOPT_H5_META_FILE_OPTS
+      INTEGER  DBOPT_H5_MPIO_COMM
+      INTEGER  DBOPT_H5_MPIO_INFO
+      INTEGER  DBOPT_H5_MPIP_NO_GPFS_HINTS
+      INTEGER  DBOPT_H5_RAW_EXTENSION
+      INTEGER  DBOPT_H5_RAW_FILE_OPTS
+      INTEGER  DBOPT_H5_SIEVE_BUF_SIZE
+      INTEGER  DBOPT_H5_SILO_BLOCK_COUNT
+      INTEGER  DBOPT_H5_SILO_BLOCK_SIZE
+      INTEGER  DBOPT_H5_SILO_LOG_STATS
+      INTEGER  DBOPT_H5_SILO_USE_DIRECT
+      INTEGER  DBOPT_H5_SMALL_RAW_SIZE
+      INTEGER  DBOPT_H5_USER_DRIVER_ID
+      INTEGER  DBOPT_H5_USER_DRIVER_INFO
+      INTEGER  DBOPT_H5_VFD
+      INTEGER  DBOPT_HAS_EXTERNAL_ZONES
+      INTEGER  DBOPT_HIDE_FROM_GUI
+      INTEGER  DBOPT_HI_OFFSET
+      INTEGER  DBOPT_LABEL
+      INTEGER  DBOPT_LAST
+      INTEGER  DBOPT_LLONGNZNUM
+      INTEGER  DBOPT_LO_OFFSET
+      INTEGER  DBOPT_MAJORORDER
+      INTEGER  DBOPT_MATCOLORS
+      INTEGER  DBOPT_MATCOUNTS
+      INTEGER  DBOPT_MATLISTS
+      INTEGER  DBOPT_MATNAME
+      INTEGER  DBOPT_MATNAMES
+      INTEGER  DBOPT_MATNOS
+      INTEGER  DBOPT_MB_BLOCK_NS
+      INTEGER  DBOPT_MB_BLOCK_TYPE
+      INTEGER  DBOPT_MB_EMPTY_COUNT
+      INTEGER  DBOPT_MB_EMPTY_LIST
+      INTEGER  DBOPT_MB_FILE_NS
+      INTEGER  DBOPT_MB_REPR_BLOCK_IDX
+      INTEGER  DBOPT_MISSING_VALUE
+      INTEGER  DBOPT_MIXLENS
+      INTEGER  DBOPT_MMESH_NAME
+      INTEGER  DBOPT_MRGTREE_NAME
+      INTEGER  DBOPT_MRGV_ONAMES
+      INTEGER  DBOPT_MRGV_RNAMES
+      INTEGER  DBOPT_NGROUPS
+      INTEGER  DBOPT_NMAT
+      INTEGER  DBOPT_NMATNOS
+      INTEGER  DBOPT_NMATSPEC
+      INTEGER  DBOPT_NODENUM
+      INTEGER  DBOPT_NSPACE
+      INTEGER  DBOPT_ORIGIN
+      INTEGER  DBOPT_PHZONELIST
+      INTEGER  DBOPT_PLANAR
+      INTEGER  DBOPT_REFERENCE
+      INTEGER  DBOPT_REGION_PNAMES
+      INTEGER  DBOPT_REGNAMES
+      INTEGER  DBOPT_SPECCOLORS
+      INTEGER  DBOPT_SPECNAMES
+      INTEGER  DBOPT_TENSOR_RANK
+      INTEGER  DBOPT_TIME
+      INTEGER  DBOPT_TOPO_DIM
+      INTEGER  DBOPT_TV_CONNECTIVITY
+      INTEGER  DBOPT_UNITS
+      INTEGER  DBOPT_USESPECMF
+      INTEGER  DBOPT_XLABEL
+      INTEGER  DBOPT_XUNITS
+      INTEGER  DBOPT_XVARNAME
+      INTEGER  DBOPT_YLABEL
+      INTEGER  DBOPT_YUNITS
+      INTEGER  DBOPT_YVARNAME
+      INTEGER  DBOPT_ZLABEL
+      INTEGER  DBOPT_ZONECOUNTS
+      INTEGER  DBOPT_ZONENAMES
+      INTEGER  DBOPT_ZONENUM
+      INTEGER  DBOPT_ZUNITS
+      INTEGER  DBOPT_ZVARNAME
+      INTEGER  DB_ABORT
+      INTEGER  DB_ABUTTING
+      INTEGER  DB_ALL
+      INTEGER  DB_ALL_AND_DRVR
+      INTEGER  DB_APPEND
+      INTEGER  DB_AREA
+      INTEGER  DB_ARRAY
+      INTEGER  DB_BLOCKCENT
+      INTEGER  DB_BNDCENT
+      INTEGER  DB_CARTESIAN
+      INTEGER  DB_CHAR
+      INTEGER  DB_CLOBBER
+      INTEGER  DB_COLLINEAR
+      INTEGER  DB_COLMAJOR
+      INTEGER  DB_CRAY
+      INTEGER  DB_CSGMESH
+      INTEGER  DB_CSGVAR
+      INTEGER  DB_CSGZONELIST
+      INTEGER  DB_CURVE
+      INTEGER  DB_CURVILINEAR
+      INTEGER  DB_CYLINDRICAL
+      INTEGER  DB_DEBUG
+      INTEGER  DB_DEFVARS
+      INTEGER  DB_DIR
+      INTEGER  DB_DOUBLE
+      INTEGER  DB_EDGECENT
+      INTEGER  DB_EDGELIST
+      INTEGER  DB_F77NULL
+      INTEGER  DB_FACECENT
+      INTEGER  DB_FACELIST
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_CORE
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_DEFAULT
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_DIRECT
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_FAMILY
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_LOG
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_MPIO
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_MPIP
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_SEC2
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_SILO
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_SPLIT
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_STDIO
+      INTEGER  DB_FILE_OPTS_LAST
+      INTEGER  DB_FLOAT
+      INTEGER  DB_FLOATING
+      INTEGER  DB_FROMCWR
+      INTEGER  DB_GHOSTTYPE_INTDUP
+      INTEGER  DB_GHOSTTYPE_NOGHOST
+      INTEGER  DB_GROUPELMAP
+      INTEGER  DB_H5VFD_CORE
+      INTEGER  DB_H5VFD_DEFAULT
+      INTEGER  DB_H5VFD_DIRECT
+      INTEGER  DB_H5VFD_FAMILY
+      INTEGER  DB_H5VFD_FIC
+      INTEGER  DB_H5VFD_LOG
+      INTEGER  DB_H5VFD_MPIO
+      INTEGER  DB_H5VFD_MPIP
+      INTEGER  DB_H5VFD_SEC2
+      INTEGER  DB_H5VFD_SILO
+      INTEGER  DB_H5VFD_SPLIT
+      INTEGER  DB_H5VFD_STDIO
+      INTEGER  DB_HDF5
+      INTEGER  DB_HDF5X
+      INTEGER  DB_HDF5_CORE
+      INTEGER  DB_HDF5_CORE_OBSOLETE
+      INTEGER  DB_HDF5_DIRECT
+      INTEGER  DB_HDF5_FAMILY
+      INTEGER  DB_HDF5_LOG
+      INTEGER  DB_HDF5_MPIO
+      INTEGER  DB_HDF5_MPIOP
+      INTEGER  DB_HDF5_MPIOP_OBSOLETE
+      INTEGER  DB_HDF5_MPIO_OBSOLETE
+      INTEGER  DB_HDF5_MPIP
+      INTEGER  DB_HDF5_SEC2
+      INTEGER  DB_HDF5_SEC2_OBSOLETE
+      INTEGER  DB_HDF5_SILO
+      INTEGER  DB_HDF5_SPLIT
+      INTEGER  DB_HDF5_STDIO
+      INTEGER  DB_HDF5_STDIO_OBSOLETE
+      INTEGER  DB_INT
+      INTEGER  DB_INTEL
+      INTEGER  DB_INVALID_OBJECT
+      INTEGER  DB_LOCAL
+      INTEGER  DB_LONG
+      INTEGER  DB_LONG_LONG
+      INTEGER  DB_MATERIAL
+      INTEGER  DB_MATSPECIES
+      INTEGER  DB_MAX_H5_OBJ_VALS
+      DOUBLE PRECISION DB_MISSING_VALUE_NOT_SET
+      INTEGER  DB_MRGTREE
+      INTEGER  DB_MRGVAR
+      INTEGER  DB_MULTIBLOCKMESH
+      INTEGER  DB_MULTIBLOCKVAR
+      INTEGER  DB_MULTIMAT
+      INTEGER  DB_MULTIMATSPECIES
+      INTEGER  DB_MULTIMESH
+      INTEGER  DB_MULTIMESHADJ
+      INTEGER  DB_MULTIVAR
+      INTEGER  DB_NETCDF
+      INTEGER  DB_NFILES
+      INTEGER  DB_NFILTERS
+      INTEGER  DB_NOCLOBBER
+      INTEGER  DB_NODECENT
+      INTEGER  DB_NONCOLLINEAR
+      INTEGER  DB_NONE
+      INTEGER  DB_NOTCENT
+      INTEGER  DB_NOTYPE
+      INTEGER  DB_NUMERICAL
+      INTEGER  DB_OFF
+      INTEGER  DB_ON
+      INTEGER  DB_OTHER
+      INTEGER  DB_PDB
+      INTEGER  DB_PDBP
+      INTEGER  DB_PHZONELIST
+      INTEGER  DB_POINTMESH
+      INTEGER  DB_POINTVAR
+      INTEGER  DB_POSTORDER
+      INTEGER  DB_PREORDER
+      INTEGER  DB_QUADCURV
+      INTEGER  DB_QUADMESH
+      INTEGER  DB_QUADRECT
+      INTEGER  DB_QUADVAR
+      INTEGER  DB_QUAD_CURV
+      INTEGER  DB_QUAD_RECT
+      INTEGER  DB_READ
+      INTEGER  DB_RECTILINEAR
+      INTEGER  DB_RESUME
+      INTEGER  DB_ROWMAJOR
+      INTEGER  DB_RS6000
+      INTEGER  DB_SGI
+      INTEGER  DB_SHORT
+      INTEGER  DB_SPHERICAL
+      INTEGER  DB_SUN3
+      INTEGER  DB_SUN4
+      INTEGER  DB_SUSPEND
+      INTEGER  DB_TAURUS
+      INTEGER  DB_TOP
+      INTEGER  DB_UCDMESH
+      INTEGER  DB_UCDVAR
+      INTEGER  DB_UNKNOWN
+      INTEGER  DB_USERDEF
+      INTEGER  DB_VARIABLE
+      INTEGER  DB_VARTYPE_ARRAY
+      INTEGER  DB_VARTYPE_LABEL
+      INTEGER  DB_VARTYPE_MATERIAL
+      INTEGER  DB_VARTYPE_SCALAR
+      INTEGER  DB_VARTYPE_SPECIES
+      INTEGER  DB_VARTYPE_SYMTENSOR
+      INTEGER  DB_VARTYPE_TENSOR
+      INTEGER  DB_VARTYPE_VECTOR
+      INTEGER  DB_VOLUME
+      INTEGER  DB_ZONECENT
+      INTEGER  DB_ZONELIST
+      INTEGER  DB_ZONETYPE_BEAM
+      INTEGER  DB_ZONETYPE_HEX
+      INTEGER  DB_ZONETYPE_POLYGON
+      INTEGER  DB_ZONETYPE_POLYHEDRON
+      INTEGER  DB_ZONETYPE_PRISM
+      INTEGER  DB_ZONETYPE_PYRAMID
+      INTEGER  DB_ZONETYPE_QUAD
+      INTEGER  DB_ZONETYPE_TET
+      INTEGER  DB_ZONETYPE_TRIANGLE
+      INTEGER  SILO_VERS_MAJ
+      INTEGER  SILO_VERS_MIN
+      INTEGER  SILO_VERS_PAT
+      INTEGER  SILO_VERS_PRE
+      CHARACTER*10  DB_F77NULLSTRING
 
-      parameter(SILO_VERS_MAJ=4)
-      parameter(SILO_VERS_MIN=8)
-      parameter(SILO_VERS_PAT=0)
-      parameter(SILO_VERS_PRE=0)
-      parameter(DB_NETCDF=0)
-      parameter(DB_PDB=2)
-      parameter(DB_TAURUS=3)
-      parameter(DB_UNKNOWN=5)
-      parameter(DB_DEBUG=6)
-      parameter(DB_HDF5X=7)
-      parameter(DB_PDBP=1)
-      parameter(DB_HDF5_SEC2_OBSOLETE=256)
-      parameter(DB_HDF5_STDIO_OBSOLETE=512)
-      parameter(DB_HDF5_CORE_OBSOLETE=768)
-      parameter(DB_HDF5_MPIO_OBSOLETE=1024)
-      parameter(DB_HDF5_MPIOP_OBSOLETE=1280)
-      parameter(DB_H5VFD_DEFAULT=0)
-      parameter(DB_H5VFD_SEC2=1)
-      parameter(DB_H5VFD_STDIO=2)
-      parameter(DB_H5VFD_CORE=3)
-      parameter(DB_H5VFD_LOG=4)
-      parameter(DB_H5VFD_SPLIT=5)
-      parameter(DB_H5VFD_DIRECT=6)
-      parameter(DB_H5VFD_FAMILY=7)
-      parameter(DB_H5VFD_MPIO=8)
-      parameter(DB_H5VFD_MPIP=9)
-      parameter(DB_H5VFD_SILO=10)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_DEFAULT=0)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_SEC2=1)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_STDIO=2)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_CORE=3)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_LOG=4)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_SPLIT=5)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_DIRECT=6)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_FAMILY=7)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_MPIO=8)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_MPIP=9)
-      parameter(DB_FILE_OPTS_H5_DEFAULT_SILO=10)
-      parameter(DB_FILE_OPTS_LAST=10)
-      parameter(DB_HDF5=7)
-      parameter(DB_HDF5_SEC2=2055)
-      parameter(DB_HDF5_STDIO=4103)
-      parameter(DB_HDF5_CORE=6151)
-      parameter(DB_HDF5_LOG=8199)
-      parameter(DB_HDF5_SPLIT=10247)
-      parameter(DB_HDF5_DIRECT=12295)
-      parameter(DB_HDF5_FAMILY=14343)
-      parameter(DB_HDF5_MPIO=16391)
-      parameter(DB_HDF5_MPIOP=18439)
-      parameter(DB_HDF5_MPIP=18439)
-      parameter(DB_HDF5_SILO=20487)
-      parameter(DB_NFILES=256)
-      parameter(DB_NFILTERS=32)
-      parameter(DB_COLLINEAR=130)
-      parameter(DB_NONCOLLINEAR=131)
-      parameter(DB_QUAD_RECT=130)
-      parameter(DB_QUAD_CURV=131)
-      parameter(DB_INVALID_OBJECT=-1)
-      parameter(DB_QUADRECT=130)
-      parameter(DB_QUADCURV=131)
-      parameter(DB_QUADMESH=500)
-      parameter(DB_QUADVAR=501)
-      parameter(DB_UCDMESH=510)
-      parameter(DB_UCDVAR=511)
-      parameter(DB_MULTIMESH=520)
-      parameter(DB_MULTIVAR=521)
-      parameter(DB_MULTIMAT=522)
-      parameter(DB_MULTIMATSPECIES=523)
-      parameter(DB_MULTIBLOCKMESH=520)
-      parameter(DB_MULTIBLOCKVAR=521)
-      parameter(DB_MULTIMESHADJ=524)
-      parameter(DB_MATERIAL=530)
-      parameter(DB_MATSPECIES=531)
-      parameter(DB_FACELIST=550)
-      parameter(DB_ZONELIST=551)
-      parameter(DB_EDGELIST=552)
-      parameter(DB_PHZONELIST=553)
-      parameter(DB_CSGZONELIST=554)
-      parameter(DB_CSGMESH=555)
-      parameter(DB_CSGVAR=556)
-      parameter(DB_CURVE=560)
-      parameter(DB_DEFVARS=565)
-      parameter(DB_POINTMESH=570)
-      parameter(DB_POINTVAR=571)
-      parameter(DB_ARRAY=580)
-      parameter(DB_DIR=600)
-      parameter(DB_VARIABLE=610)
-      parameter(DB_MRGTREE=611)
-      parameter(DB_GROUPELMAP=612)
-      parameter(DB_MRGVAR=613)
-      parameter(DB_USERDEF=700)
-      parameter(DB_INT=16)
-      parameter(DB_SHORT=17)
-      parameter(DB_LONG=18)
-      parameter(DB_FLOAT=19)
-      parameter(DB_DOUBLE=20)
-      parameter(DB_CHAR=21)
-      parameter(DB_LONG_LONG=22)
-      parameter(DB_NOTYPE=25)
-      parameter(DB_CLOBBER=0)
-      parameter(DB_NOCLOBBER=1)
-      parameter(DB_READ=1)
-      parameter(DB_APPEND=2)
-      parameter(DB_LOCAL=0)
-      parameter(DB_SUN3=10)
-      parameter(DB_SUN4=11)
-      parameter(DB_SGI=12)
-      parameter(DB_RS6000=13)
-      parameter(DB_CRAY=14)
-      parameter(DB_INTEL=15)
-      parameter(DBOPT_FIRST=260)
-      parameter(DBOPT_ALIGN=260)
-      parameter(DBOPT_COORDSYS=262)
-      parameter(DBOPT_CYCLE=263)
-      parameter(DBOPT_FACETYPE=264)
-      parameter(DBOPT_HI_OFFSET=265)
-      parameter(DBOPT_LO_OFFSET=266)
-      parameter(DBOPT_LABEL=267)
-      parameter(DBOPT_XLABEL=268)
-      parameter(DBOPT_YLABEL=269)
-      parameter(DBOPT_ZLABEL=270)
-      parameter(DBOPT_MAJORORDER=271)
-      parameter(DBOPT_NSPACE=272)
-      parameter(DBOPT_ORIGIN=273)
-      parameter(DBOPT_PLANAR=274)
-      parameter(DBOPT_TIME=275)
-      parameter(DBOPT_UNITS=276)
-      parameter(DBOPT_XUNITS=277)
-      parameter(DBOPT_YUNITS=278)
-      parameter(DBOPT_ZUNITS=279)
-      parameter(DBOPT_DTIME=280)
-      parameter(DBOPT_USESPECMF=281)
-      parameter(DBOPT_XVARNAME=282)
-      parameter(DBOPT_YVARNAME=283)
-      parameter(DBOPT_ZVARNAME=284)
-      parameter(DBOPT_ASCII_LABEL=285)
-      parameter(DBOPT_MATNOS=286)
-      parameter(DBOPT_NMATNOS=287)
-      parameter(DBOPT_MATNAME=288)
-      parameter(DBOPT_NMAT=289)
-      parameter(DBOPT_NMATSPEC=290)
-      parameter(DBOPT_BASEINDEX=291)
-      parameter(DBOPT_ZONENUM=292)
-      parameter(DBOPT_NODENUM=293)
-      parameter(DBOPT_BLOCKORIGIN=294)
-      parameter(DBOPT_GROUPNUM=295)
-      parameter(DBOPT_GROUPORIGIN=296)
-      parameter(DBOPT_NGROUPS=297)
-      parameter(DBOPT_MATNAMES=298)
-      parameter(DBOPT_EXTENTS_SIZE=299)
-      parameter(DBOPT_EXTENTS=300)
-      parameter(DBOPT_MATCOUNTS=301)
-      parameter(DBOPT_MATLISTS=302)
-      parameter(DBOPT_MIXLENS=303)
-      parameter(DBOPT_ZONECOUNTS=304)
-      parameter(DBOPT_HAS_EXTERNAL_ZONES=305)
-      parameter(DBOPT_PHZONELIST=306)
-      parameter(DBOPT_MATCOLORS=307)
-      parameter(DBOPT_BNDNAMES=308)
-      parameter(DBOPT_REGNAMES=309)
-      parameter(DBOPT_ZONENAMES=310)
-      parameter(DBOPT_HIDE_FROM_GUI=311)
-      parameter(DBOPT_TOPO_DIM=312)
-      parameter(DBOPT_REFERENCE=313)
-      parameter(DBOPT_GROUPINGS_SIZE=314)
-      parameter(DBOPT_GROUPINGS=315)
-      parameter(DBOPT_GROUPINGNAMES=316)
-      parameter(DBOPT_ALLOWMAT0=317)
-      parameter(DBOPT_MRGTREE_NAME=318)
-      parameter(DBOPT_REGION_PNAMES=319)
-      parameter(DBOPT_TENSOR_RANK=320)
-      parameter(DBOPT_MMESH_NAME=321)
-      parameter(DBOPT_TV_CONNECTIVITY=322)
-      parameter(DBOPT_DISJOINT_MODE=323)
-      parameter(DBOPT_MRGV_ONAMES=324)
-      parameter(DBOPT_MRGV_RNAMES=325)
-      parameter(DBOPT_SPECNAMES=326)
-      parameter(DBOPT_SPECCOLORS=327)
-      parameter(DBOPT_LLONGNZNUM=328)
-      parameter(DBOPT_CONSERVED=329)
-      parameter(DBOPT_EXTENSIVE=330)
-      parameter(DBOPT_MB_FILE_NS=331)
-      parameter(DBOPT_MB_BLOCK_NS=332)
-      parameter(DBOPT_MB_BLOCK_TYPE=333)
-      parameter(DBOPT_MB_EMPTY_LIST=334)
-      parameter(DBOPT_MB_EMPTY_COUNT=335)
-      parameter(DBOPT_LAST=499)
-      parameter(DBOPT_H5_FIRST=500)
-      parameter(DBOPT_H5_VFD=500)
-      parameter(DBOPT_H5_RAW_FILE_OPTS=501)
-      parameter(DBOPT_H5_RAW_EXTENSION=502)
-      parameter(DBOPT_H5_META_FILE_OPTS=503)
-      parameter(DBOPT_H5_META_EXTENSION=504)
-      parameter(DBOPT_H5_CORE_ALLOC_INC=505)
-      parameter(DBOPT_H5_CORE_NO_BACK_STORE=506)
-      parameter(DBOPT_H5_META_BLOCK_SIZE=507)
-      parameter(DBOPT_H5_SMALL_RAW_SIZE=508)
-      parameter(DBOPT_H5_ALIGN_MIN=509)
-      parameter(DBOPT_H5_ALIGN_VAL=510)
-      parameter(DBOPT_H5_DIRECT_MEM_ALIGN=511)
-      parameter(DBOPT_H5_DIRECT_BLOCK_SIZE=512)
-      parameter(DBOPT_H5_DIRECT_BUF_SIZE=513)
-      parameter(DBOPT_H5_LOG_NAME=514)
-      parameter(DBOPT_H5_LOG_BUF_SIZE=515)
-      parameter(DBOPT_H5_MPIO_COMM=516)
-      parameter(DBOPT_H5_MPIO_INFO=517)
-      parameter(DBOPT_H5_MPIP_NO_GPFS_HINTS=518)
-      parameter(DBOPT_H5_SIEVE_BUF_SIZE=519)
-      parameter(DBOPT_H5_CACHE_NELMTS=520)
-      parameter(DBOPT_H5_CACHE_NBYTES=521)
-      parameter(DBOPT_H5_CACHE_POLICY=522)
-      parameter(DBOPT_H5_FAM_SIZE=523)
-      parameter(DBOPT_H5_FAM_FILE_OPTS=524)
-      parameter(DBOPT_H5_USER_DRIVER_ID=525)
-      parameter(DBOPT_H5_USER_DRIVER_INFO=526)
-      parameter(DBOPT_H5_SILO_BLOCK_SIZE=527)
-      parameter(DBOPT_H5_SILO_BLOCK_COUNT=528)
-      parameter(DBOPT_H5_SILO_LOG_STATS=529)
-      parameter(DBOPT_H5_SILO_USE_DIRECT=530)
-      parameter(DBOPT_H5_LAST=599)
-      parameter(DB_TOP=0)
-      parameter(DB_NONE=1)
-      parameter(DB_ALL=2)
-      parameter(DB_ABORT=3)
-      parameter(DB_SUSPEND=4)
-      parameter(DB_RESUME=5)
-      parameter(DB_ALL_AND_DRVR=6)
-      parameter(DB_ROWMAJOR=0)
-      parameter(DB_COLMAJOR=1)
-      parameter(DB_NOTCENT=0)
-      parameter(DB_NODECENT=110)
-      parameter(DB_ZONECENT=111)
-      parameter(DB_FACECENT=112)
-      parameter(DB_BNDCENT=113)
-      parameter(DB_EDGECENT=114)
-      parameter(DB_BLOCKCENT=115)
-      parameter(DB_CARTESIAN=120)
-      parameter(DB_CYLINDRICAL=121)
-      parameter(DB_SPHERICAL=122)
-      parameter(DB_NUMERICAL=123)
-      parameter(DB_OTHER=124)
-      parameter(DB_RECTILINEAR=100)
-      parameter(DB_CURVILINEAR=101)
-      parameter(DB_AREA=140)
-      parameter(DB_VOLUME=141)
-      parameter(DB_ON=1000)
-      parameter(DB_OFF=-1000)
-      parameter(DB_ABUTTING=142)
-      parameter(DB_FLOATING=143)
-      parameter(DB_VARTYPE_SCALAR=200)
-      parameter(DB_VARTYPE_VECTOR=201)
-      parameter(DB_VARTYPE_TENSOR=202)
-      parameter(DB_VARTYPE_SYMTENSOR=203)
-      parameter(DB_VARTYPE_ARRAY=204)
-      parameter(DB_VARTYPE_MATERIAL=205)
-      parameter(DB_VARTYPE_SPECIES=206)
-      parameter(DB_VARTYPE_LABEL=207)
-      parameter(DBCSG_QUADRIC_G=16777216)
-      parameter(DBCSG_SPHERE_PR=33619968)
-      parameter(DBCSG_ELLIPSOID_PRRR=33685504)
-      parameter(DBCSG_PLANE_G=50331648)
-      parameter(DBCSG_PLANE_X=50397184)
-      parameter(DBCSG_PLANE_Y=50462720)
-      parameter(DBCSG_PLANE_Z=50528256)
-      parameter(DBCSG_PLANE_PN=50593792)
-      parameter(DBCSG_PLANE_PPP=50659328)
-      parameter(DBCSG_CYLINDER_PNLR=67108864)
-      parameter(DBCSG_CYLINDER_PPR=67174400)
-      parameter(DBCSG_BOX_XYZXYZ=83886080)
-      parameter(DBCSG_CONE_PNLA=100663296)
-      parameter(DBCSG_CONE_PPA=100728832)
-      parameter(DBCSG_POLYHEDRON_KF=117440512)
-      parameter(DBCSG_HEX_6F=117506048)
-      parameter(DBCSG_TET_4F=117571584)
-      parameter(DBCSG_PYRAMID_5F=117637120)
-      parameter(DBCSG_PRISM_5F=117702656)
-      parameter(DBCSG_QUADRATIC_G=134217728)
-      parameter(DBCSG_CIRCLE_PR=150994944)
-      parameter(DBCSG_ELLIPSE_PRR=151060480)
-      parameter(DBCSG_LINE_G=167772160)
-      parameter(DBCSG_LINE_X=167837696)
-      parameter(DBCSG_LINE_Y=167903232)
-      parameter(DBCSG_LINE_PN=167968768)
-      parameter(DBCSG_LINE_PP=168034304)
-      parameter(DBCSG_BOX_XYXY=184549376)
-      parameter(DBCSG_ANGLE_PNLA=201326592)
-      parameter(DBCSG_ANGLE_PPA=201392128)
-      parameter(DBCSG_POLYGON_KP=218103808)
-      parameter(DBCSG_TRI_3P=218169344)
-      parameter(DBCSG_QUAD_4P=218234880)
-      parameter(DBCSG_INNER=2130706432)
-      parameter(DBCSG_OUTER=2130771968)
-      parameter(DBCSG_ON=2130837504)
-      parameter(DBCSG_UNION=2130903040)
-      parameter(DBCSG_INTERSECT=2130968576)
-      parameter(DBCSG_DIFF=2131034112)
-      parameter(DBCSG_COMPLIMENT=2131099648)
-      parameter(DBCSG_XFORM=2131165184)
-      parameter(DBCSG_SWEEP=2131230720)
-      parameter(DB_PREORDER=1)
-      parameter(DB_POSTORDER=2)
-      parameter(DB_FROMCWR=4)
-      parameter(DB_F77NULL=(-99))
-      parameter(DB_ZONETYPE_BEAM=10)
-      parameter(DB_ZONETYPE_POLYGON=20)
-      parameter(DB_ZONETYPE_TRIANGLE=23)
-      parameter(DB_ZONETYPE_QUAD=24)
-      parameter(DB_ZONETYPE_POLYHEDRON=30)
-      parameter(DB_ZONETYPE_TET=34)
-      parameter(DB_ZONETYPE_PYRAMID=35)
-      parameter(DB_ZONETYPE_PRISM=36)
-      parameter(DB_ZONETYPE_HEX=38)
-      parameter(DB_F77NULLSTRING="NULLSTRING")
+      PARAMETER (SILO_VERS_MAJ=4)
+      PARAMETER (SILO_VERS_MIN=10)
+      PARAMETER (SILO_VERS_PAT=0)
+      PARAMETER (SILO_VERS_PRE=0)
+      PARAMETER (DB_NETCDF=0)
+      PARAMETER (DB_PDB=2)
+      PARAMETER (DB_TAURUS=3)
+      PARAMETER (DB_UNKNOWN=5)
+      PARAMETER (DB_DEBUG=6)
+      PARAMETER (DB_HDF5X=7)
+      PARAMETER (DB_PDBP=1)
+      PARAMETER (DB_HDF5_SEC2_OBSOLETE=256)
+      PARAMETER (DB_HDF5_STDIO_OBSOLETE=512)
+      PARAMETER (DB_HDF5_CORE_OBSOLETE=768)
+      PARAMETER (DB_HDF5_MPIO_OBSOLETE=1024)
+      PARAMETER (DB_HDF5_MPIOP_OBSOLETE=1280)
+      PARAMETER (DB_H5VFD_DEFAULT=0)
+      PARAMETER (DB_H5VFD_SEC2=1)
+      PARAMETER (DB_H5VFD_STDIO=2)
+      PARAMETER (DB_H5VFD_CORE=3)
+      PARAMETER (DB_H5VFD_LOG=4)
+      PARAMETER (DB_H5VFD_SPLIT=5)
+      PARAMETER (DB_H5VFD_DIRECT=6)
+      PARAMETER (DB_H5VFD_FAMILY=7)
+      PARAMETER (DB_H5VFD_MPIO=8)
+      PARAMETER (DB_H5VFD_MPIP=9)
+      PARAMETER (DB_H5VFD_SILO=10)
+      PARAMETER (DB_H5VFD_FIC=11)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_DEFAULT=0)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_SEC2=1)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_STDIO=2)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_CORE=3)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_LOG=4)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_SPLIT=5)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_DIRECT=6)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_FAMILY=7)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_MPIO=8)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_MPIP=9)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_SILO=10)
+      PARAMETER (DB_FILE_OPTS_LAST=10)
+      PARAMETER (DB_HDF5=7)
+      PARAMETER (DB_HDF5_SEC2=2055)
+      PARAMETER (DB_HDF5_STDIO=4103)
+      PARAMETER (DB_HDF5_CORE=6151)
+      PARAMETER (DB_HDF5_LOG=8199)
+      PARAMETER (DB_HDF5_SPLIT=10247)
+      PARAMETER (DB_HDF5_DIRECT=12295)
+      PARAMETER (DB_HDF5_FAMILY=14343)
+      PARAMETER (DB_HDF5_MPIO=16391)
+      PARAMETER (DB_HDF5_MPIOP=18439)
+      PARAMETER (DB_HDF5_MPIP=18439)
+      PARAMETER (DB_HDF5_SILO=20487)
+      PARAMETER (DB_NFILES=256)
+      PARAMETER (DB_NFILTERS=32)
+      PARAMETER (DB_COLLINEAR=130)
+      PARAMETER (DB_NONCOLLINEAR=131)
+      PARAMETER (DB_QUAD_RECT=130)
+      PARAMETER (DB_QUAD_CURV=131)
+      PARAMETER (DB_INVALID_OBJECT=-1)
+      PARAMETER (DB_QUADRECT=130)
+      PARAMETER (DB_QUADCURV=131)
+      PARAMETER (DB_QUADMESH=500)
+      PARAMETER (DB_QUADVAR=501)
+      PARAMETER (DB_UCDMESH=510)
+      PARAMETER (DB_UCDVAR=511)
+      PARAMETER (DB_MULTIMESH=520)
+      PARAMETER (DB_MULTIVAR=521)
+      PARAMETER (DB_MULTIMAT=522)
+      PARAMETER (DB_MULTIMATSPECIES=523)
+      PARAMETER (DB_MULTIBLOCKMESH=520)
+      PARAMETER (DB_MULTIBLOCKVAR=521)
+      PARAMETER (DB_MULTIMESHADJ=524)
+      PARAMETER (DB_MATERIAL=530)
+      PARAMETER (DB_MATSPECIES=531)
+      PARAMETER (DB_FACELIST=550)
+      PARAMETER (DB_ZONELIST=551)
+      PARAMETER (DB_EDGELIST=552)
+      PARAMETER (DB_PHZONELIST=553)
+      PARAMETER (DB_CSGZONELIST=554)
+      PARAMETER (DB_CSGMESH=555)
+      PARAMETER (DB_CSGVAR=556)
+      PARAMETER (DB_CURVE=560)
+      PARAMETER (DB_DEFVARS=565)
+      PARAMETER (DB_POINTMESH=570)
+      PARAMETER (DB_POINTVAR=571)
+      PARAMETER (DB_ARRAY=580)
+      PARAMETER (DB_DIR=600)
+      PARAMETER (DB_VARIABLE=610)
+      PARAMETER (DB_MRGTREE=611)
+      PARAMETER (DB_GROUPELMAP=612)
+      PARAMETER (DB_MRGVAR=613)
+      PARAMETER (DB_USERDEF=700)
+      PARAMETER (DB_INT=16)
+      PARAMETER (DB_SHORT=17)
+      PARAMETER (DB_LONG=18)
+      PARAMETER (DB_FLOAT=19)
+      PARAMETER (DB_DOUBLE=20)
+      PARAMETER (DB_CHAR=21)
+      PARAMETER (DB_LONG_LONG=22)
+      PARAMETER (DB_NOTYPE=25)
+      PARAMETER (DB_CLOBBER=0)
+      PARAMETER (DB_NOCLOBBER=1)
+      PARAMETER (DB_READ=1)
+      PARAMETER (DB_APPEND=2)
+      PARAMETER (DB_LOCAL=0)
+      PARAMETER (DB_SUN3=10)
+      PARAMETER (DB_SUN4=11)
+      PARAMETER (DB_SGI=12)
+      PARAMETER (DB_RS6000=13)
+      PARAMETER (DB_CRAY=14)
+      PARAMETER (DB_INTEL=15)
+      PARAMETER (DBOPT_FIRST=260)
+      PARAMETER (DBOPT_ALIGN=260)
+      PARAMETER (DBOPT_COORDSYS=262)
+      PARAMETER (DBOPT_CYCLE=263)
+      PARAMETER (DBOPT_FACETYPE=264)
+      PARAMETER (DBOPT_HI_OFFSET=265)
+      PARAMETER (DBOPT_LO_OFFSET=266)
+      PARAMETER (DBOPT_LABEL=267)
+      PARAMETER (DBOPT_XLABEL=268)
+      PARAMETER (DBOPT_YLABEL=269)
+      PARAMETER (DBOPT_ZLABEL=270)
+      PARAMETER (DBOPT_MAJORORDER=271)
+      PARAMETER (DBOPT_NSPACE=272)
+      PARAMETER (DBOPT_ORIGIN=273)
+      PARAMETER (DBOPT_PLANAR=274)
+      PARAMETER (DBOPT_TIME=275)
+      PARAMETER (DBOPT_UNITS=276)
+      PARAMETER (DBOPT_XUNITS=277)
+      PARAMETER (DBOPT_YUNITS=278)
+      PARAMETER (DBOPT_ZUNITS=279)
+      PARAMETER (DBOPT_DTIME=280)
+      PARAMETER (DBOPT_USESPECMF=281)
+      PARAMETER (DBOPT_XVARNAME=282)
+      PARAMETER (DBOPT_YVARNAME=283)
+      PARAMETER (DBOPT_ZVARNAME=284)
+      PARAMETER (DBOPT_ASCII_LABEL=285)
+      PARAMETER (DBOPT_MATNOS=286)
+      PARAMETER (DBOPT_NMATNOS=287)
+      PARAMETER (DBOPT_MATNAME=288)
+      PARAMETER (DBOPT_NMAT=289)
+      PARAMETER (DBOPT_NMATSPEC=290)
+      PARAMETER (DBOPT_BASEINDEX=291)
+      PARAMETER (DBOPT_ZONENUM=292)
+      PARAMETER (DBOPT_NODENUM=293)
+      PARAMETER (DBOPT_BLOCKORIGIN=294)
+      PARAMETER (DBOPT_GROUPNUM=295)
+      PARAMETER (DBOPT_GROUPORIGIN=296)
+      PARAMETER (DBOPT_NGROUPS=297)
+      PARAMETER (DBOPT_MATNAMES=298)
+      PARAMETER (DBOPT_EXTENTS_SIZE=299)
+      PARAMETER (DBOPT_EXTENTS=300)
+      PARAMETER (DBOPT_MATCOUNTS=301)
+      PARAMETER (DBOPT_MATLISTS=302)
+      PARAMETER (DBOPT_MIXLENS=303)
+      PARAMETER (DBOPT_ZONECOUNTS=304)
+      PARAMETER (DBOPT_HAS_EXTERNAL_ZONES=305)
+      PARAMETER (DBOPT_PHZONELIST=306)
+      PARAMETER (DBOPT_MATCOLORS=307)
+      PARAMETER (DBOPT_BNDNAMES=308)
+      PARAMETER (DBOPT_REGNAMES=309)
+      PARAMETER (DBOPT_ZONENAMES=310)
+      PARAMETER (DBOPT_HIDE_FROM_GUI=311)
+      PARAMETER (DBOPT_TOPO_DIM=312)
+      PARAMETER (DBOPT_REFERENCE=313)
+      PARAMETER (DBOPT_GROUPINGS_SIZE=314)
+      PARAMETER (DBOPT_GROUPINGS=315)
+      PARAMETER (DBOPT_GROUPINGNAMES=316)
+      PARAMETER (DBOPT_ALLOWMAT0=317)
+      PARAMETER (DBOPT_MRGTREE_NAME=318)
+      PARAMETER (DBOPT_REGION_PNAMES=319)
+      PARAMETER (DBOPT_TENSOR_RANK=320)
+      PARAMETER (DBOPT_MMESH_NAME=321)
+      PARAMETER (DBOPT_TV_CONNECTIVITY=322)
+      PARAMETER (DBOPT_DISJOINT_MODE=323)
+      PARAMETER (DBOPT_MRGV_ONAMES=324)
+      PARAMETER (DBOPT_MRGV_RNAMES=325)
+      PARAMETER (DBOPT_SPECNAMES=326)
+      PARAMETER (DBOPT_SPECCOLORS=327)
+      PARAMETER (DBOPT_LLONGNZNUM=328)
+      PARAMETER (DBOPT_CONSERVED=329)
+      PARAMETER (DBOPT_EXTENSIVE=330)
+      PARAMETER (DBOPT_MB_FILE_NS=331)
+      PARAMETER (DBOPT_MB_BLOCK_NS=332)
+      PARAMETER (DBOPT_MB_BLOCK_TYPE=333)
+      PARAMETER (DBOPT_MB_EMPTY_LIST=334)
+      PARAMETER (DBOPT_MB_EMPTY_COUNT=335)
+      PARAMETER (DBOPT_MB_REPR_BLOCK_IDX=336)
+      PARAMETER (DBOPT_MISSING_VALUE=337)
+      PARAMETER (DBOPT_ALT_ZONENUM_VARS=338)
+      PARAMETER (DBOPT_ALT_NODENUM_VARS=339)
+      PARAMETER (DBOPT_GHOST_NODE_LABELS=340)
+      PARAMETER (DBOPT_GHOST_ZONE_LABELS=341)
+      PARAMETER (DBOPT_LAST=499)
+      PARAMETER (DBOPT_H5_FIRST=500)
+      PARAMETER (DBOPT_H5_VFD=500)
+      PARAMETER (DBOPT_H5_RAW_FILE_OPTS=501)
+      PARAMETER (DBOPT_H5_RAW_EXTENSION=502)
+      PARAMETER (DBOPT_H5_META_FILE_OPTS=503)
+      PARAMETER (DBOPT_H5_META_EXTENSION=504)
+      PARAMETER (DBOPT_H5_CORE_ALLOC_INC=505)
+      PARAMETER (DBOPT_H5_CORE_NO_BACK_STORE=506)
+      PARAMETER (DBOPT_H5_META_BLOCK_SIZE=507)
+      PARAMETER (DBOPT_H5_SMALL_RAW_SIZE=508)
+      PARAMETER (DBOPT_H5_ALIGN_MIN=509)
+      PARAMETER (DBOPT_H5_ALIGN_VAL=510)
+      PARAMETER (DBOPT_H5_DIRECT_MEM_ALIGN=511)
+      PARAMETER (DBOPT_H5_DIRECT_BLOCK_SIZE=512)
+      PARAMETER (DBOPT_H5_DIRECT_BUF_SIZE=513)
+      PARAMETER (DBOPT_H5_LOG_NAME=514)
+      PARAMETER (DBOPT_H5_LOG_BUF_SIZE=515)
+      PARAMETER (DBOPT_H5_MPIO_COMM=516)
+      PARAMETER (DBOPT_H5_MPIO_INFO=517)
+      PARAMETER (DBOPT_H5_MPIP_NO_GPFS_HINTS=518)
+      PARAMETER (DBOPT_H5_SIEVE_BUF_SIZE=519)
+      PARAMETER (DBOPT_H5_CACHE_NELMTS=520)
+      PARAMETER (DBOPT_H5_CACHE_NBYTES=521)
+      PARAMETER (DBOPT_H5_CACHE_POLICY=522)
+      PARAMETER (DBOPT_H5_FAM_SIZE=523)
+      PARAMETER (DBOPT_H5_FAM_FILE_OPTS=524)
+      PARAMETER (DBOPT_H5_USER_DRIVER_ID=525)
+      PARAMETER (DBOPT_H5_USER_DRIVER_INFO=526)
+      PARAMETER (DBOPT_H5_SILO_BLOCK_SIZE=527)
+      PARAMETER (DBOPT_H5_SILO_BLOCK_COUNT=528)
+      PARAMETER (DBOPT_H5_SILO_LOG_STATS=529)
+      PARAMETER (DBOPT_H5_SILO_USE_DIRECT=530)
+      PARAMETER (DBOPT_H5_FIC_SIZE=531)
+      PARAMETER (DBOPT_H5_FIC_BUF=532)
+      PARAMETER (DBOPT_H5_LAST=599)
+      PARAMETER (DB_TOP=0)
+      PARAMETER (DB_NONE=1)
+      PARAMETER (DB_ALL=2)
+      PARAMETER (DB_ABORT=3)
+      PARAMETER (DB_SUSPEND=4)
+      PARAMETER (DB_RESUME=5)
+      PARAMETER (DB_ALL_AND_DRVR=6)
+      PARAMETER (DB_ROWMAJOR=0)
+      PARAMETER (DB_COLMAJOR=1)
+      PARAMETER (DB_NOTCENT=0)
+      PARAMETER (DB_NODECENT=110)
+      PARAMETER (DB_ZONECENT=111)
+      PARAMETER (DB_FACECENT=112)
+      PARAMETER (DB_BNDCENT=113)
+      PARAMETER (DB_EDGECENT=114)
+      PARAMETER (DB_BLOCKCENT=115)
+      PARAMETER (DB_CARTESIAN=120)
+      PARAMETER (DB_CYLINDRICAL=121)
+      PARAMETER (DB_SPHERICAL=122)
+      PARAMETER (DB_NUMERICAL=123)
+      PARAMETER (DB_OTHER=124)
+      PARAMETER (DB_RECTILINEAR=100)
+      PARAMETER (DB_CURVILINEAR=101)
+      PARAMETER (DB_AREA=140)
+      PARAMETER (DB_VOLUME=141)
+      PARAMETER (DB_ON=1000)
+      PARAMETER (DB_OFF=-1000)
+      PARAMETER (DB_ABUTTING=142)
+      PARAMETER (DB_FLOATING=143)
+      PARAMETER (DB_VARTYPE_SCALAR=200)
+      PARAMETER (DB_VARTYPE_VECTOR=201)
+      PARAMETER (DB_VARTYPE_TENSOR=202)
+      PARAMETER (DB_VARTYPE_SYMTENSOR=203)
+      PARAMETER (DB_VARTYPE_ARRAY=204)
+      PARAMETER (DB_VARTYPE_MATERIAL=205)
+      PARAMETER (DB_VARTYPE_SPECIES=206)
+      PARAMETER (DB_VARTYPE_LABEL=207)
+      PARAMETER (DB_GHOSTTYPE_NOGHOST=0)
+      PARAMETER (DB_GHOSTTYPE_INTDUP=1)
+      PARAMETER (DBCSG_QUADRIC_G=16777216)
+      PARAMETER (DBCSG_SPHERE_PR=33619968)
+      PARAMETER (DBCSG_ELLIPSOID_PRRR=33685504)
+      PARAMETER (DBCSG_PLANE_G=50331648)
+      PARAMETER (DBCSG_PLANE_X=50397184)
+      PARAMETER (DBCSG_PLANE_Y=50462720)
+      PARAMETER (DBCSG_PLANE_Z=50528256)
+      PARAMETER (DBCSG_PLANE_PN=50593792)
+      PARAMETER (DBCSG_PLANE_PPP=50659328)
+      PARAMETER (DBCSG_CYLINDER_PNLR=67108864)
+      PARAMETER (DBCSG_CYLINDER_PPR=67174400)
+      PARAMETER (DBCSG_BOX_XYZXYZ=83886080)
+      PARAMETER (DBCSG_CONE_PNLA=100663296)
+      PARAMETER (DBCSG_CONE_PPA=100728832)
+      PARAMETER (DBCSG_POLYHEDRON_KF=117440512)
+      PARAMETER (DBCSG_HEX_6F=117506048)
+      PARAMETER (DBCSG_TET_4F=117571584)
+      PARAMETER (DBCSG_PYRAMID_5F=117637120)
+      PARAMETER (DBCSG_PRISM_5F=117702656)
+      PARAMETER (DBCSG_QUADRATIC_G=134217728)
+      PARAMETER (DBCSG_CIRCLE_PR=150994944)
+      PARAMETER (DBCSG_ELLIPSE_PRR=151060480)
+      PARAMETER (DBCSG_LINE_G=167772160)
+      PARAMETER (DBCSG_LINE_X=167837696)
+      PARAMETER (DBCSG_LINE_Y=167903232)
+      PARAMETER (DBCSG_LINE_PN=167968768)
+      PARAMETER (DBCSG_LINE_PP=168034304)
+      PARAMETER (DBCSG_BOX_XYXY=184549376)
+      PARAMETER (DBCSG_ANGLE_PNLA=201326592)
+      PARAMETER (DBCSG_ANGLE_PPA=201392128)
+      PARAMETER (DBCSG_POLYGON_KP=218103808)
+      PARAMETER (DBCSG_TRI_3P=218169344)
+      PARAMETER (DBCSG_QUAD_4P=218234880)
+      PARAMETER (DBCSG_INNER=2130706432)
+      PARAMETER (DBCSG_OUTER=2130771968)
+      PARAMETER (DBCSG_ON=2130837504)
+      PARAMETER (DBCSG_UNION=2130903040)
+      PARAMETER (DBCSG_INTERSECT=2130968576)
+      PARAMETER (DBCSG_DIFF=2131034112)
+      PARAMETER (DBCSG_COMPLIMENT=2131099648)
+      PARAMETER (DBCSG_XFORM=2131165184)
+      PARAMETER (DBCSG_SWEEP=2131230720)
+      PARAMETER (DB_PREORDER=1)
+      PARAMETER (DB_POSTORDER=2)
+      PARAMETER (DB_FROMCWR=4)
+      PARAMETER (DB_F77NULL=(-99))
+      PARAMETER (DB_MISSING_VALUE_NOT_SET=1.0D+308)
+      PARAMETER (DB_ZONETYPE_BEAM=10)
+      PARAMETER (DB_ZONETYPE_POLYGON=20)
+      PARAMETER (DB_ZONETYPE_TRIANGLE=23)
+      PARAMETER (DB_ZONETYPE_QUAD=24)
+      PARAMETER (DB_ZONETYPE_POLYHEDRON=30)
+      PARAMETER (DB_ZONETYPE_TET=34)
+      PARAMETER (DB_ZONETYPE_PYRAMID=35)
+      PARAMETER (DB_ZONETYPE_PRISM=36)
+      PARAMETER (DB_ZONETYPE_HEX=38)
+      PARAMETER (DB_MAX_H5_OBJ_VALS=64)
+      PARAMETER (DB_F77NULLSTRING="NULLSTRING")
 
 
-! End.
+C End.
diff --git a/src/silo/silo_drivers.h b/src/silo/silo_drivers.h
index 31022bd..2b8f88b 100644
--- a/src/silo/silo_drivers.h
+++ b/src/silo/silo_drivers.h
@@ -128,7 +128,7 @@ be used for advertising or product endorsement purposes.
 #define DB_NETCDF_CREATE   NULL
 #define DB_NETCDF_FSINGLE  db_cdf_ForceSingle
 
-extern DBfile *db_cdf_Open(char *, int, int);
+extern DBfile *db_cdf_Open(char const *, int, int);
 extern int db_cdf_ForceSingle(int);
 
 #else
@@ -145,8 +145,8 @@ extern int db_cdf_ForceSingle(int);
 #define DB_PDBP_CREATE      db_pdbp_Create
 #define DB_PDBP_FSINGLE     db_pdbp_ForceSingle
 
-extern DBfile *db_pdbp_Open(char *, int, int);
-extern DBfile *db_pdbp_Create(char *, int, int, int, char *);
+extern DBfile *db_pdbp_Open(char const *, int, int);
+extern DBfile *db_pdbp_Create(char const *, int, int, int, char const *);
 extern int db_pdbp_ForceSingle(int);
 
 #else
@@ -163,8 +163,8 @@ extern int db_pdbp_ForceSingle(int);
 #define DB_PDB_CREATE      db_pdb_Create
 #define DB_PDB_FSINGLE     db_pdb_ForceSingle
 
-extern DBfile *db_pdb_Open(char *, int, int);
-extern DBfile *db_pdb_Create(char *, int, int, int, char *);
+extern DBfile *db_pdb_Open(char const *, int, int);
+extern DBfile *db_pdb_Create(char const *, int, int, int, char const *);
 extern int db_pdb_ForceSingle(int);
 
 #else
@@ -180,7 +180,7 @@ extern int db_pdb_ForceSingle(int);
 #define DB_TAURUS_CREATE   NULL
 #define DB_TAURUS_FSINGLE  NULL
 
-extern DBfile *db_taur_Open(char *, int, int);
+extern DBfile *db_taur_Open(char const *, int, int);
 
 #else
 #define DB_TAURUS_OPEN     NULL
@@ -195,7 +195,7 @@ extern DBfile *db_taur_Open(char *, int, int);
 #define DB_UNKNOWN_CREATE  NULL
 #define DB_UNKNOWN_FSINGLE NULL
 
-extern DBfile *db_unk_Open(char *, int, int);
+extern DBfile *db_unk_Open(char const *, int, int);
 
 #else
 #define DB_UNKNOWN_OPEN    NULL
@@ -210,8 +210,8 @@ extern DBfile *db_unk_Open(char *, int, int);
 #define DB_DEBUG_CREATE    db_debug_create
 #define DB_DEBUG_FSINGLE   NULL
 
-extern DBfile *db_debug_open(char *, int, int);
-extern DBfile *db_debug_create(char *, int, int, int, char *);
+extern DBfile *db_debug_open(char const *, int, int);
+extern DBfile *db_debug_create(char const *, int, int, int, char const *);
 
 #else
 #define DB_DEBUG_OPEN      NULL
@@ -226,8 +226,8 @@ extern DBfile *db_debug_create(char *, int, int, int, char *);
 #define DB_HDF5_CREATE     db_hdf5_Create
 #define DB_HDF5_FSINGLE    db_hdf5_ForceSingle
 
-extern DBfile *db_hdf5_Open(char*, int, int);
-extern DBfile *db_hdf5_Create(char*, int, int, int, char*);
+extern DBfile *db_hdf5_Open(char const *, int, int);
+extern DBfile *db_hdf5_Create(char const *, int, int, int, char const *);
 extern int db_hdf5_ForceSingle(int);
 
 #else
@@ -284,8 +284,8 @@ extern int db_hdf5_ForceSingle(int);
                          NULL,                  /*unused*/\
                          NULL}                  /*unused*/
 
-DBfile *(*DBOpenCB[DB_NFORMATS]) (char *, int, int) = DBOPENCB;
-DBfile *(*DBCreateCB[DB_NFORMATS]) (char *, int, int, int, char *) = DBCREATECB;
+DBfile *(*DBOpenCB[DB_NFORMATS]) (char const *, int, int) = DBOPENCB;
+DBfile *(*DBCreateCB[DB_NFORMATS]) (char const *, int, int, int, char const *) = DBCREATECB;
 int     (*DBFSingleCB[DB_NFORMATS]) (int) = DBFSINGLECB;
 #endif /* DB_MAIN */
 
diff --git a/src/silo/silo_exports.h b/src/silo/silo_exports.h
new file mode 100644
index 0000000..4e00504
--- /dev/null
+++ b/src/silo/silo_exports.h
@@ -0,0 +1,20 @@
+#ifndef SILO_EXPORTS_H
+#define SILO_EXPORTS_H
+
+#ifndef SILO_API
+  #ifdef _WIN32
+    #ifdef SILO_STATIC_LIBRARY
+      #define SILO_API
+    #else
+      #ifdef SILO_EXPORTS
+        #define SILO_API __declspec(dllexport)
+      #else
+        #define SILO_API __declspec(dllimport)
+      #endif
+    #endif
+  #else
+    #define SILO_API
+  #endif
+#endif
+
+#endif
diff --git a/src/silo/silo_f.c b/src/silo/silo_f.c
index f5b7181..17d72ed 100644
--- a/src/silo/silo_f.c
+++ b/src/silo/silo_f.c
@@ -688,7 +688,7 @@ SILO_API FORTRAN
 DBPUTMAT_FC (int *dbid, FCD_DB name,
            int *lname, FCD_DB meshname, int *lmeshname,
            int *nmat, int *matnos, int *matlist, int *dims, int *ndims,
-           int *mix_next, int *mix_mat, int *mix_zone, DB_DTPTR1 mix_vf,
+           int *mix_next, int *mix_mat, int *mix_zone, void const *mix_vf,
            int *mixlen, int *datatype, int *optlist_id, int *status)
 {
     int           *mixz = NULL;
@@ -777,7 +777,7 @@ DBPUTMAT_FC (int *dbid, FCD_DB name,
 SILO_API FORTRAN
 DBPUTMSP_FC (int *dbid, FCD_DB name, int *lname, FCD_DB matname, int *lmatname,
            int *nmat, int *nmatspec, int *speclist, int *dims, int *ndims,
-           int *nspecies_mf, DB_DTPTR1 species_mf, int *mix_speclist, int *mixlen,
+           int *nspecies_mf, void const *species_mf, int *mix_speclist, int *mixlen,
            int *datatype, int *optlist_id, int *status)
 {
     char          *nm = NULL, *mnm = NULL;
@@ -1453,7 +1453,7 @@ DBPUTMMESH_FC (int *dbid, FCD_DB name, int *lname, int *nmesh, FCD_DB meshnames,
              int *lmeshnames, int *meshtypes, int *optlist_id, int *status)
 {
     DBfile        *dbfile = NULL;
-    char const *  *meshnms = NULL;
+    char         **meshnms = NULL;
     char          *nm = NULL;
     char          *realmeshnames = NULL;
     int            i, indx;
@@ -1495,12 +1495,12 @@ DBPUTMMESH_FC (int *dbid, FCD_DB name, int *lname, int *nmesh, FCD_DB meshnames,
 
         if (*nmesh <= 0)
             API_ERROR("nmesh", E_BADARGS);
-        meshnms = ALLOC_N(char const *, *nmesh);
+        meshnms = ALLOC_N(char *, *nmesh);
 
         for (indx = 0, i = 0; i < *nmesh; i++) {
             if (lmeshnames[i] < 0)
                 API_ERROR("lmeshnames", E_BADARGS);
-            meshnms[i] = (char const *) SW_strndup(&realmeshnames[indx], lmeshnames[i]);
+            meshnms[i] = (char *) SW_strndup(&realmeshnames[indx], lmeshnames[i]);
             if (fortran2DStrLen > 0)
                 indx += fortran2DStrLen;
             else
@@ -1510,8 +1510,8 @@ DBPUTMMESH_FC (int *dbid, FCD_DB name, int *lname, int *nmesh, FCD_DB meshnames,
         /*----------------------------------------
          *  Invoke the C function to do the work.
          *---------------------------------------*/
-        *status = DBPutMultimesh(dbfile, nm, *nmesh, meshnms,
-                                 meshtypes, optlist);
+        *status = DBPutMultimesh(dbfile, nm, *nmesh,
+                      (char const * const *) meshnms, meshtypes, optlist);
 
         for (i = 0; i < *nmesh; i++)
             FREE(meshnms[i]);
@@ -1635,8 +1635,9 @@ DBPUTDEFVARS_FC (int *dbid, FCD_DB name, int *lname, int *ndefs, FCD_DB names,
         /*----------------------------------------
          *  Invoke the C function to do the work.
          *---------------------------------------*/
-        *status = DBPutDefvars(dbfile, nm, *ndefs, nms, types, defs,
-                      optlists);
+        *status = DBPutDefvars(dbfile, nm, *ndefs, (char const * const *) nms,
+                      types, (char const * const *) defs,
+                      (DBoptlist const * const *) optlists);
 
         for (i = 0; i < *ndefs; i++)
         {
@@ -1751,8 +1752,8 @@ DBPUTMVAR_FC (int *dbid, FCD_DB name, int *lname, int *nvar, FCD_DB varnames,
         }
 
         /* Invoke the C function to do the work. */
-        *status = DBPutMultivar(dbfile, nm, *nvar, varnms, vartypes,
-                                optlist);
+        *status = DBPutMultivar(dbfile, nm, *nvar, (char const * const *) varnms,
+                      vartypes, optlist);
 
         for(i=0;i<*nvar;i++)
             FREE(varnms[i]);
@@ -1852,7 +1853,7 @@ DBPUTMMAT_FC (int *dbid, FCD_DB name, int *lname, int *nmat, FCD_DB matnames,
         /*----------------------------------------
          *  Invoke the C function to do the work.
          *---------------------------------------*/
-        *status = DBPutMultimat(dbfile, nm, *nmat, matnms, optlist);
+        *status = DBPutMultimat(dbfile, nm, *nmat, (char const * const *) matnms, optlist);
 
         for (i = 0; i < *nmat; i++)
             FREE(matnms[i]);
@@ -1900,12 +1901,12 @@ DBPUTMMAT_FC (int *dbid, FCD_DB name, int *lname, int *nmat, FCD_DB matnames,
  *
  *-------------------------------------------------------------------------*/
 SILO_API FORTRAN
-DBPUTPM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, DB_DTPTR1 x, DB_DTPTR1 y,
-          DB_DTPTR1 z, int *nels, int *datatype, int *optlist_id, int *status)
+DBPUTPM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, void const *x, void const *y,
+          void const *z, int *nels, int *datatype, int *optlist_id, int *status)
 {
     DBfile        *dbfile = NULL;
     char          *nm = NULL;
-    DB_DTPTR      *coords[3];
+    void const *coords[3];
     DBoptlist     *optlist = NULL;
 
     API_BEGIN("dbputpm", int, -1) {
@@ -1978,7 +1979,7 @@ DBPUTPM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, DB_DTPTR1 x, DB_DTPT
 SILO_API FORTRAN
 DBPUTPV1_FC (int *dbid, FCD_DB name,
            int *lname, FCD_DB meshname, int *lmeshname,
-           DB_DTPTR1 var, int *nels, int *datatype, int *optlist_id, int *status)
+           void const *var, int *nels, int *datatype, int *optlist_id, int *status)
 {
     char          *nm = NULL, *mnm = NULL;
     DBfile        *dbfile = NULL;
@@ -2071,13 +2072,13 @@ DBPUTPV1_FC (int *dbid, FCD_DB name,
  *-------------------------------------------------------------------------*/
 SILO_API FORTRAN
 DBPUTQM_FC (int *dbid, FCD_DB name, int *lname, FCD_DB xname, int *lxname,
-          FCD_DB yname, int *lyname, FCD_DB zname, int *lzname, DB_DTPTR1 x,
-          DB_DTPTR1 y, DB_DTPTR1 z, int *dims, int *ndims, int *datatype,
+          FCD_DB yname, int *lyname, FCD_DB zname, int *lzname, void const *x,
+          void const *y, void const *z, int *dims, int *ndims, int *datatype,
           int *coordtype, int *optlist_id, int *status)
 {
     DBfile        *dbfile = NULL;
     int            i;
-    DB_DTPTR      *coords[3];
+    void const *coords[3];
     char          *coordnames[3], *nm = NULL;
     DBoptlist     *optlist = NULL;
 
@@ -2160,8 +2161,8 @@ DBPUTQM_FC (int *dbid, FCD_DB name, int *lname, FCD_DB xname, int *lxname,
 
         dbfile = (DBfile *) DBFortranAccessPointer(*dbid);
 
-        *status = DBPutQuadmesh(dbfile, nm, coordnames, coords, dims, *ndims,
-                                *datatype, *coordtype, optlist);
+        *status = DBPutQuadmesh(dbfile, nm, (char const * const *) coordnames,
+                      coords, dims, *ndims, *datatype, *coordtype, optlist);
 
         FREE(nm);
         FREE(coordnames[0]);
@@ -2211,7 +2212,7 @@ DBPUTQM_FC (int *dbid, FCD_DB name, int *lname, FCD_DB xname, int *lxname,
 SILO_API FORTRAN
 DBPUTQV1_FC (int *dbid, FCD_DB name,
            int *lname, FCD_DB meshname, int *lmeshname,
-           DB_DTPTR1 var, int *dims, int *ndims, DB_DTPTR1 mixvar, int *mixlen,
+           void const *var, int *dims, int *ndims, void const *mixvar, int *mixlen,
            int *datatype, int *centering, int *optlist_id, int *status)
 {
     DBfile        *dbfile = NULL;
@@ -2286,7 +2287,7 @@ DBPUTQV1_FC (int *dbid, FCD_DB name,
 SILO_API FORTRAN
 DBPUTQV_FC (int *dbid, FCD_DB vname, int *lvname, FCD_DB mname, int *lmname,
 	    int *nvars, FCD_DB varnames, int* lvarnames,
-	    DB_DTPTR1 vars, int *dims, int *ndims, DB_DTPTR1 mixvar, int *mixlen,
+	    void const *vars, int *dims, int *ndims, void const *mixvar, int *mixlen,
 	    int *datatype, int *centering, int *optlist_id, int *status)
 {
     DBfile        *dbfile = NULL;
@@ -2295,8 +2296,8 @@ DBPUTQV_FC (int *dbid, FCD_DB vname, int *lvname, FCD_DB mname, int *lmname,
     char          **cvarnames = NULL;
     char          *names = NULL;
     int           indx, i, j;
-    float **cvars = NULL ;
-    float **cmixvar = NULL ;
+    void        **cvars = NULL ;
+    void        **cmixvar = NULL ;
 
     API_BEGIN("dbputqv", int, -1) {
         optlist = (DBoptlist *) DBFortranAccessPointer(*optlist_id);
@@ -2359,44 +2360,40 @@ DBPUTQV_FC (int *dbid, FCD_DB vname, int *lvname, FCD_DB mname, int *lmname,
         }
 
         /*------------------------------
-         *  Create the float pointers addresses:
+         *  Create the variable data pointers addresses:
          *-----------------------------*/
-	/* Compute the size of the array */
+	/* Compute the size of the arrays in bytes */
 	indx = dims[0] ;
 	for (j=1; j<*ndims; j++ ) {
 	  indx *= dims[j] ;
 	}
-	if (*datatype == DB_DOUBLE) {
-	  /* Doubles use twice as much storage as floats */
-	  indx*= 2 ;
-	}
+        indx *= db_GetMachDataSize(*datatype);
 
 	/* Now convert the Fortran data arrays into C arrays of data */
 
 	if ((*(int *)vars) != DB_F77NULL) {
-	  cvars = malloc(sizeof(float*) * (*nvars));
+	  cvars = (void **)malloc(sizeof(void*) * (*nvars));
 	  /* Make pointers to Fortran address in vars array */
 	  for (i=0;i<*nvars;i++) {
-	    cvars[i] = (float*)vars + i*indx ;
+	    cvars[i] = (void*)((char*) vars + i*indx);
 	  }
 	} else {
 	  API_ERROR("vars", E_BADARGS);
 	}
 	if ((*(int *)mixvar) != DB_F77NULL) {
 	  /* Now convert the Fortran data array into a C array of data */
-	  cmixvar = malloc(sizeof(float*) * (*nvars));
+	  cmixvar = (void **)malloc(sizeof(void*) * (*nvars));
 	  /* Make pointers to Fortran address in vars array */
 	  for (i=0;i<*nvars;i++) {
-	    cmixvar[i] = (float*)mixvar + i*indx ;
+	    cmixvar[i] = (void*)((char*) mixvar + i*indx);
 	  }
 	}
 
         dbfile = (DBfile *) DBFortranAccessPointer(*dbid);
 
         *status = DBPutQuadvar(dbfile, cvname, cmname, *nvars,
-			       cvarnames, cvars, dims, *ndims,
-			       cmixvar, *mixlen, *datatype, *centering,
-			       optlist);
+                      (char const * const *) cvarnames, cvars, dims, *ndims,
+                      cmixvar, *mixlen, *datatype, *centering, optlist);
 
 	/* Remove pointers to pointers arrays */
 	if (cmixvar != NULL) 
@@ -2452,14 +2449,14 @@ DBPUTQV_FC (int *dbid, FCD_DB vname, int *lvname, FCD_DB mname, int *lmname,
  *
  *-------------------------------------------------------------------------*/
 SILO_API FORTRAN
-DBPUTUM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, DB_DTPTR1 x, DB_DTPTR1 y,
-          DB_DTPTR1 z, FCD_DB xname, int *lxname, FCD_DB yname, int *lyname,
+DBPUTUM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, void const *x, void const *y,
+          void const *z, FCD_DB xname, int *lxname, FCD_DB yname, int *lyname,
           FCD_DB zname, int *lzname, int *datatype, int *nnodes, int *nzones,
           FCD_DB zlname, int *lzlname, FCD_DB flname, int *lflname,
           int *optlist_id, int *status)
 {
     char          *nm = NULL, *zlnm = NULL, *flnm = NULL, *coordnames[3];
-    DB_DTPTR      *coords[3];
+    void const    *coords[3];
     DBfile        *dbfile = NULL;
     DBoptlist     *optlist = NULL;
 
@@ -2570,7 +2567,7 @@ DBPUTUM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, DB_DTPTR1 x, DB_DTPT
 
         dbfile = (DBfile *) DBFortranAccessPointer(*dbid);
 
-        *status = DBPutUcdmesh(dbfile, nm, *ndims, coordnames,
+        *status = DBPutUcdmesh(dbfile, nm, *ndims, (char const * const *) coordnames,
                                coords, *nnodes, *nzones, zlnm, flnm,
                                *datatype, optlist);
 
@@ -2624,7 +2621,7 @@ DBPUTUM_FC (int *dbid, FCD_DB name, int *lname, int *ndims, DB_DTPTR1 x, DB_DTPT
 SILO_API FORTRAN
 DBPUTUV1_FC (int *dbid, FCD_DB name,
            int *lname, FCD_DB meshname, int *lmeshname,
-           DB_DTPTR1 var, int *nels, DB_DTPTR1 mixvar, int *mixlen, int *datatype,
+           void const *var, int *nels, void const *mixvar, int *mixlen, int *datatype,
            int *centering, int *optlist_id, int *status)
 {
     char          *nm = NULL, *mnm = NULL;
@@ -3101,49 +3098,6 @@ DBSETDIR_FC (int *dbid, FCD_DB pathname, int *lpathname)
 }
 
 /*-------------------------------------------------------------------------
- * Routine                                                    DBSETDIRID_FC
- *
- * Purpose
- *     Set the current directory by ID within the database.
- *
- * Notes
- *     This function was built to be called from Fortran.
- *
- * Returns
- *     Returns 0 on success, -1 on failure.
- *
- * Programmer
- *     robb at cloud
- *     Mon Nov 28 14:28:41 EST 1994
- *
- * Modifications
- *     Eric Brugger, Tue Feb  7 08:09:26 PST 1995
- *     I replaced API_END with API_END_NOPOP.
- *
- *     Sean Ahern, Mon Apr 10 20:04:23 PDT 1995
- *     Added a DBfile lookup in a global array using
- *     DBFortranAccessPointer.
- *
- *     Thomas R. Treadway, Thu Oct 11 15:21:03 PDT 2007
- *     Using AC_FC_WRAPPERS for name-mangling
- *
- *     Kathleen Bonnell, Wed Sep 2 15:31:26 PDT 2009
- *     Added SILO_API so symbols are correctly exported on windows.
- *
- *-------------------------------------------------------------------------*/
-SILO_API FORTRAN
-DBSETDIRID_FC (int *dbid, int *dirid)
-{
-    DBfile        *dbfile = NULL;
-
-    API_BEGIN("dbsetdirid", int, -1) {
-        dbfile = (DBfile *) DBFortranAccessPointer(*dbid);
-        API_RETURN(DBSetDirID(dbfile, *dirid));
-    }
-    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
-}
-
-/*-------------------------------------------------------------------------
  * Routine                                                  DBSHOWERRORS_FC
  *
  * Purpose
@@ -3294,7 +3248,7 @@ DBWRITE_FC (int *dbid, FCD_DB varname, int *lvarname, void *var, int *dims,
  *-------------------------------------------------------------------------*/
 SILO_API FORTRAN
 DBPUTCA_FC (int *dbid, FCD_DB _name, int *lname, FCD_DB enames, int *width,
-          int *elengths, int *nelems, DB_DTPTR1 values, int *datatype,
+          int *elengths, int *nelems, void *values, int *datatype,
           int *optlist_id, int *status)
 {
     DBfile        *dbfile = NULL;
@@ -3343,9 +3297,8 @@ DBPUTCA_FC (int *dbid, FCD_DB _name, int *lname, FCD_DB enames, int *width,
 
         dbfile = (DBfile *) DBFortranAccessPointer(*dbid);
 
-        *status = DBPutCompoundarray(dbfile, array_name, elemnames,
-                                     elengths, *nelems, (void *)values,
-                                     nvalues, *datatype, optlist);
+        *status = DBPutCompoundarray(dbfile, array_name, (char const * const *) elemnames,
+                      elengths, *nelems, values, nvalues, *datatype, optlist);
 
         /*
          * Free all temporary memory.
@@ -3405,7 +3358,7 @@ DBPUTCA_FC (int *dbid, FCD_DB _name, int *lname, FCD_DB enames, int *width,
  *-------------------------------------------------------------------------*/
 SILO_API FORTRAN
 DBGETCA_FC (int *dbid, FCD_DB _name, int *lname, int *width, FCD_DB enames,
-          int *elengths, int *nelems, DB_DTPTR1 values, int *nvalues,
+          int *elengths, int *nelems, void *values, int *nvalues,
           int *datatype)
 {
     DBfile        *dbfile = NULL;
@@ -3516,7 +3469,7 @@ DBGETCA_FC (int *dbid, FCD_DB _name, int *lname, int *width, FCD_DB enames,
  *
  *-------------------------------------------------------------------------*/
 SILO_API FORTRAN
-DBFGETCA_FC (int *dbid, FCD_DB _name, int *lname, DB_DTPTR1 values, int *nvalues)
+DBFGETCA_FC (int *dbid, FCD_DB _name, int *lname, void *values, int *nvalues)
 {
     API_BEGIN("dbfgetca", int, -1) {
 #if CRAY
@@ -3559,7 +3512,7 @@ DBFGETCA_FC (int *dbid, FCD_DB _name, int *lname, DB_DTPTR1 values, int *nvalues
  *
  *------------------------------------------------------------------------- */
 SILO_API FORTRAN
-DBPUTCURVE_FC (int *dbid, FCD_DB _name, int *lname, DB_DTPTR1 xvals, DB_DTPTR1 yvals,
+DBPUTCURVE_FC (int *dbid, FCD_DB _name, int *lname, void const *xvals, void const *yvals,
               int *datatype, int *npts, int *optlist_id, int *status)
 {
 
@@ -3622,8 +3575,8 @@ DBPUTCURVE_FC (int *dbid, FCD_DB _name, int *lname, DB_DTPTR1 xvals, DB_DTPTR1 y
  *
  *------------------------------------------------------------------------ */
 SILO_API FORTRAN
-DBGETCURVE_FC (int *dbid, FCD_DB _name, int *lname, int *maxpts, DB_DTPTR1 xvals,
-              DB_DTPTR1 yvals, int *datatype, int *npts)
+DBGETCURVE_FC (int *dbid, FCD_DB _name, int *lname, int *maxpts, void *xvals,
+              void *yvals, int *datatype, int *npts)
 {
 
    DBfile   *dbfile ;
@@ -4364,7 +4317,7 @@ DBSETCOMPRESS_FC (FCD_DB cvalue, int *lcvalue)
     char          *cval = NULL;
     DBoptlist     *optlist = NULL;
 
-    API_BEGIN("dbsetcompression", int, -1) {
+    API_BEGIN("dbsetcompress", int, -1) {
         if (strcmp(cvalue, DB_F77NULLSTRING) < 0 && *lcvalue > 0)
             cval = SW_strndup(cvalue, *lcvalue);
 
@@ -4409,7 +4362,7 @@ DBSETCOMPRESS_FC (FCD_DB cvalue, int *lcvalue)
 SILO_API FORTRAN
 DBGETCOMPRESS_FC (FCD_DB cvalue, int *lcvalue)
 {
-    char          *cval = NULL;
+    char const *cval = NULL;
 
     API_BEGIN("dbgetcompression", int, -1) {
         if (*lcvalue <= 0)
@@ -4565,6 +4518,24 @@ DBUNREGFOPTS_FC ( int *opts_set_id )
 }
 
 SILO_API FORTRAN
+DBSETEMPTYOK_FC(int *ok)
+{
+    API_BEGIN("dbsetemptyok", int, -1) {
+        API_RETURN(DBSetAllowEmptyObjects(*ok));
+    }
+    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
+}
+
+SILO_API FORTRAN
+DBGETEMPTYOK_FC()
+{
+    API_BEGIN("dbgetemptyok", int, -1) {
+        API_RETURN(DBGetAllowEmptyObjects());
+    }
+    API_END_NOPOP; /*BEWARE: If API_RETURN above is removed use API_END */
+}
+
+SILO_API FORTRAN
 DBUNREGAFOPTS_FC ()
 {
     API_BEGIN("dbunregafopts", int, -1) {
@@ -4817,7 +4788,7 @@ DBADDREGIONA_FC (int *tree_id, int *nregn, FCD_DB regn_names, int *lregn_names,
                 indx += lregn_names[i] ;
         }
 
-        *status = DBAddRegionArray(tree, *nregn, regn_nms,
+        *status = DBAddRegionArray(tree, *nregn, (char const * const *) regn_nms,
             *type_info_bits, maps_nm, *nsegs, seg_ids, seg_sizes,
              seg_types, optlist);
 
@@ -5029,7 +5000,7 @@ DBPUTGRPLMAP_FC (int *dbid, FCD_DB map_name, int *lmap_name,
         /* convert array of segment data ids to their pointers */
         segment_data = (int**) malloc(*num_segments * sizeof(int*));
         for (i = 0; i < *num_segments; i++)
-            segment_data[i] = DBFortranAccessPointer(segment_data_ids[i]);
+            segment_data[i] = (int *)DBFortranAccessPointer(segment_data_ids[i]);
 
         /* convert array of segment fracs ids to their pointers */
         if (*segment_fracs_ids)
@@ -5040,8 +5011,9 @@ DBPUTGRPLMAP_FC (int *dbid, FCD_DB map_name, int *lmap_name,
         }
 
         *status = DBPutGroupelmap(dbfile, map_nm, *num_segments,
-            groupel_types, segment_lengths, segment_ids, segment_data,
-            segment_fracs, *fracs_data_type, optlist);
+            groupel_types, segment_lengths, segment_ids,
+            (int const * const *) segment_data, (void const * const *) segment_fracs,
+            *fracs_data_type, optlist);
 
         FREE(segment_data);
         FREE(segment_fracs);
@@ -5196,8 +5168,8 @@ DBPUTCSGV_FC (int *dbid, FCD_DB name, int *lname, FCD_DB meshname,
         for (i = 0; i < *nvals; i++)
             data[i] = DBFortranAccessPointer(data_ids[i]);
 
-        *status = DBPutCsgvar(dbfile, nm, m_nm, 1, &nm,
-            data, *nvals, *datatype, *centering, optlist);
+        *status = DBPutCsgvar(dbfile, nm, m_nm, 1, (char const * const *) &nm,
+            (void const * const *) data, *nvals, *datatype, *centering, optlist);
 
         FREE(nm);
         FREE(m_nm);
@@ -5395,8 +5367,8 @@ DBPMRGV_FC (int *dbid, FCD_DB name, int *lname, FCD_DB tname, int *ltname,
         /*----------------------------------------
          *  Invoke the C function to do the work.
          *---------------------------------------*/
-        *status = DBPutMrgvar(dbfile, nm, tnm, *ncomps, compnms,
-            *nregns, regnnms, *datatype, data, optlist);
+        *status = DBPutMrgvar(dbfile, nm, tnm, *ncomps, (char const * const *) compnms,
+            *nregns, (char const * const *) regnnms, *datatype, (void const * const *) data, optlist);
 
         for (i = 0; i < *ncomps; i++)
             FREE(compnms[i]);
diff --git a/src/silo/silo_f.h b/src/silo/silo_f.h
index e5e9ef9..5de06e0 100644
--- a/src/silo/silo_f.h
+++ b/src/silo/silo_f.h
@@ -104,7 +104,6 @@ be used for advertising or product endorsement purposes.
 #define DBRDVARSLICE_FC  FC_FUNC (dbrdvarslice,DBRDVARSLICE)
 #define DBWRITESLICE_FC  FC_FUNC (dbwriteslice,DBWRITESLICE)
 #define DBSETDIR_FC      FC_FUNC (dbsetdir,DBSETDIR)
-#define DBSETDIRID_FC    FC_FUNC (dbsetdirid,DBSETDIRID)
 #define DBSHOWERRORS_FC  FC_FUNC (dbshowerrors,DBSHOWERRORS)
 #define DBWRITE_FC       FC_FUNC (dbwrite,DBWRITE)
 #define DBPUTCA_FC       FC_FUNC (dbputca,DBPUTCA)
@@ -149,6 +148,8 @@ be used for advertising or product endorsement purposes.
 #define DBREGFOPTS_FC	 FC_FUNC (dbregfopts, DBREGFOPTS)
 #define DBUNREGFOPTS_FC  FC_FUNC (dbunregfopts, DBUNREGFOPTS)
 #define DBUNREGAFOPTS_FC FC_FUNC (dbunregafopts, DBUNREGAFOPTS)
+#define DBSETEMPTYOK_FC  FC_FUNC (dbsetemptyok, DBSETEMPTYOK)
+#define DBGETEMPTYOK_FC  FC_FUNC (dbgetemptyok, DBGETEMPTYOK)
 
 void    *DBFortranAccessPointer(int value);
 
diff --git a/src/silo/silo_f77.inc b/src/silo/silo_f77.inc
new file mode 100644
index 0000000..61e720c
--- /dev/null
+++ b/src/silo/silo_f77.inc
@@ -0,0 +1,842 @@
+Ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -*- fortran -*-
+C 
+C      SILO include file for Fortan applications.
+C 
+C  Programmer:   miller86 Mon Sep 29 07:01:26 PDT 2014
+C 
+C  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+C     This file is generated automatically from C header files in the
+C     SILO distribution.  Do not make changes to this file manually,
+C     as those changes will disappear.
+C  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+C 
+C  This file was generated by the following commands...
+C        mv silo.inc silo.inc~
+C        cat silo.h silo_f.h | mkinc > silo.inc
+C 
+C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+
+C...Functions.
+      EXTERNAL  DBADDCAOPT
+      EXTERNAL  DBADDCCMP
+      EXTERNAL  DBADDCOPT
+      EXTERNAL  DBADDDOPT
+      EXTERNAL  DBADDIAOPT
+      EXTERNAL  DBADDICMP
+      EXTERNAL  DBADDIOPT
+      EXTERNAL  DBADDRCMP
+      EXTERNAL  DBADDREGION
+      EXTERNAL  DBADDREGIONA
+      EXTERNAL  DBADDROPT
+      EXTERNAL  DBCALCFL
+      EXTERNAL  DBCLOSE
+      EXTERNAL  DBCREATE
+      EXTERNAL  DBERRNO
+      EXTERNAL  DBFGETCA
+      EXTERNAL  DBFREEMRGTREE
+      EXTERNAL  DBFREEOBJECT
+      EXTERNAL  DBFREEOPTLIST
+      EXTERNAL  DBGET2DSTRLEN
+      EXTERNAL  DBGETCA
+      EXTERNAL  DBGETCKSUMS
+      EXTERNAL  DBGETCOMPRESS
+      EXTERNAL  DBGETCURVE
+      EXTERNAL  DBGETDEPWARN
+      EXTERNAL  DBGETEMPTYOK
+      EXTERNAL  DBGETHDFNMS
+      EXTERNAL  DBGETOVRWRT
+      EXTERNAL  DBGETQV1
+      EXTERNAL  DBINQCA
+      EXTERNAL  DBINQFILE
+      EXTERNAL  DBINQLEN
+      EXTERNAL  DBMKDIR
+      EXTERNAL  DBMKMRGTREE
+      EXTERNAL  DBMKOBJECT
+      EXTERNAL  DBMKOPTLIST
+      EXTERNAL  DBMKPTR
+      EXTERNAL  DBOPEN
+      EXTERNAL  DBPMRGV
+      EXTERNAL  DBPUTCA
+      EXTERNAL  DBPUTCSGM
+      EXTERNAL  DBPUTCSGV
+      EXTERNAL  DBPUTCSGZL
+      EXTERNAL  DBPUTCURVE
+      EXTERNAL  DBPUTDEFVARS
+      EXTERNAL  DBPUTFL
+      EXTERNAL  DBPUTGRPLMAP
+      EXTERNAL  DBPUTMAT
+      EXTERNAL  DBPUTMMAT
+      EXTERNAL  DBPUTMMESH
+      EXTERNAL  DBPUTMRGTREE
+      EXTERNAL  DBPUTMSP
+      EXTERNAL  DBPUTMVAR
+      EXTERNAL  DBPUTPM
+      EXTERNAL  DBPUTPV1
+      EXTERNAL  DBPUTQM
+      EXTERNAL  DBPUTQV
+      EXTERNAL  DBPUTQV1
+      EXTERNAL  DBPUTUM
+      EXTERNAL  DBPUTUV1
+      EXTERNAL  DBPUTZL
+      EXTERNAL  DBPUTZL2
+      EXTERNAL  DBRDVAR
+      EXTERNAL  DBRDVARSLICE
+      EXTERNAL  DBREGFOPTS
+      EXTERNAL  DBRMPTR
+      EXTERNAL  DBSET2DSTRLEN
+      EXTERNAL  DBSETCKSUMS
+      EXTERNAL  DBSETCOMPRESS
+      EXTERNAL  DBSETCWR
+      EXTERNAL  DBSETDEPWARN
+      EXTERNAL  DBSETDIR
+      EXTERNAL  DBSETEMPTYOK
+      EXTERNAL  DBSETHDFNMS
+      EXTERNAL  DBSETOVRWRT
+      EXTERNAL  DBSHOWERRORS
+      EXTERNAL  DBUNREGAFOPTS
+      EXTERNAL  DBUNREGFOPTS
+      EXTERNAL  DBWRITE
+      EXTERNAL  DBWRITESLICE
+      EXTERNAL  DBWRTFL
+
+      INTEGER  DBADDCAOPT
+      INTEGER  DBADDCCMP
+      INTEGER  DBADDCOPT
+      INTEGER  DBADDDOPT
+      INTEGER  DBADDIAOPT
+      INTEGER  DBADDICMP
+      INTEGER  DBADDIOPT
+      INTEGER  DBADDRCMP
+      INTEGER  DBADDREGION
+      INTEGER  DBADDREGIONA
+      INTEGER  DBADDROPT
+      INTEGER  DBCALCFL
+      INTEGER  DBCLOSE
+      INTEGER  DBCREATE
+      INTEGER  DBERRNO
+      INTEGER  DBFGETCA
+      INTEGER  DBFREEMRGTREE
+      INTEGER  DBFREEOBJECT
+      INTEGER  DBFREEOPTLIST
+      INTEGER  DBGET2DSTRLEN
+      INTEGER  DBGETCA
+      INTEGER  DBGETCKSUMS
+      INTEGER  DBGETCOMPRESS
+      INTEGER  DBGETCURVE
+      INTEGER  DBGETDEPWARN
+      INTEGER  DBGETEMPTYOK
+      INTEGER  DBGETHDFNMS
+      INTEGER  DBGETOVRWRT
+      INTEGER  DBGETQV1
+      INTEGER  DBINQCA
+      INTEGER  DBINQFILE
+      INTEGER  DBINQLEN
+      INTEGER  DBMKDIR
+      INTEGER  DBMKMRGTREE
+      INTEGER  DBMKOBJECT
+      INTEGER  DBMKOPTLIST
+      INTEGER  DBMKPTR
+      INTEGER  DBOPEN
+      INTEGER  DBPMRGV
+      INTEGER  DBPUTCA
+      INTEGER  DBPUTCSGM
+      INTEGER  DBPUTCSGV
+      INTEGER  DBPUTCSGZL
+      INTEGER  DBPUTCURVE
+      INTEGER  DBPUTDEFVARS
+      INTEGER  DBPUTFL
+      INTEGER  DBPUTGRPLMAP
+      INTEGER  DBPUTMAT
+      INTEGER  DBPUTMMAT
+      INTEGER  DBPUTMMESH
+      INTEGER  DBPUTMRGTREE
+      INTEGER  DBPUTMSP
+      INTEGER  DBPUTMVAR
+      INTEGER  DBPUTPM
+      INTEGER  DBPUTPV1
+      INTEGER  DBPUTQM
+      INTEGER  DBPUTQV
+      INTEGER  DBPUTQV1
+      INTEGER  DBPUTUM
+      INTEGER  DBPUTUV1
+      INTEGER  DBPUTZL
+      INTEGER  DBPUTZL2
+      INTEGER  DBRDVAR
+      INTEGER  DBRDVARSLICE
+      INTEGER  DBREGFOPTS
+      INTEGER  DBRMPTR
+      INTEGER  DBSET2DSTRLEN
+      INTEGER  DBSETCKSUMS
+      INTEGER  DBSETCOMPRESS
+      INTEGER  DBSETCWR
+      INTEGER  DBSETDEPWARN
+      INTEGER  DBSETDIR
+      INTEGER  DBSETEMPTYOK
+      INTEGER  DBSETHDFNMS
+      INTEGER  DBSETOVRWRT
+      INTEGER  DBSHOWERRORS
+      INTEGER  DBUNREGAFOPTS
+      INTEGER  DBUNREGFOPTS
+      INTEGER  DBWRITE
+      INTEGER  DBWRITESLICE
+      INTEGER  DBWRTFL
+
+
+C...Parameters.
+      INTEGER  DBCSG_ANGLE_PNLA
+      INTEGER  DBCSG_ANGLE_PPA
+      INTEGER  DBCSG_BOX_XYXY
+      INTEGER  DBCSG_BOX_XYZXYZ
+      INTEGER  DBCSG_CIRCLE_PR
+      INTEGER  DBCSG_COMPLIMENT
+      INTEGER  DBCSG_CONE_PNLA
+      INTEGER  DBCSG_CONE_PPA
+      INTEGER  DBCSG_CYLINDER_PNLR
+      INTEGER  DBCSG_CYLINDER_PPR
+      INTEGER  DBCSG_DIFF
+      INTEGER  DBCSG_ELLIPSE_PRR
+      INTEGER  DBCSG_ELLIPSOID_PRRR
+      INTEGER  DBCSG_HEX_6F
+      INTEGER  DBCSG_INNER
+      INTEGER  DBCSG_INTERSECT
+      INTEGER  DBCSG_LINE_G
+      INTEGER  DBCSG_LINE_PN
+      INTEGER  DBCSG_LINE_PP
+      INTEGER  DBCSG_LINE_X
+      INTEGER  DBCSG_LINE_Y
+      INTEGER  DBCSG_ON
+      INTEGER  DBCSG_OUTER
+      INTEGER  DBCSG_PLANE_G
+      INTEGER  DBCSG_PLANE_PN
+      INTEGER  DBCSG_PLANE_PPP
+      INTEGER  DBCSG_PLANE_X
+      INTEGER  DBCSG_PLANE_Y
+      INTEGER  DBCSG_PLANE_Z
+      INTEGER  DBCSG_POLYGON_KP
+      INTEGER  DBCSG_POLYHEDRON_KF
+      INTEGER  DBCSG_PRISM_5F
+      INTEGER  DBCSG_PYRAMID_5F
+      INTEGER  DBCSG_QUADRATIC_G
+      INTEGER  DBCSG_QUADRIC_G
+      INTEGER  DBCSG_QUAD_4P
+      INTEGER  DBCSG_SPHERE_PR
+      INTEGER  DBCSG_SWEEP
+      INTEGER  DBCSG_TET_4F
+      INTEGER  DBCSG_TRI_3P
+      INTEGER  DBCSG_UNION
+      INTEGER  DBCSG_XFORM
+      INTEGER  DBOPT_ALIGN
+      INTEGER  DBOPT_ALLOWMAT0
+      INTEGER  DBOPT_ALT_NODENUM_VARS
+      INTEGER  DBOPT_ALT_ZONENUM_VARS
+      INTEGER  DBOPT_ASCII_LABEL
+      INTEGER  DBOPT_BASEINDEX
+      INTEGER  DBOPT_BLOCKORIGIN
+      INTEGER  DBOPT_BNDNAMES
+      INTEGER  DBOPT_CONSERVED
+      INTEGER  DBOPT_COORDSYS
+      INTEGER  DBOPT_CYCLE
+      INTEGER  DBOPT_DISJOINT_MODE
+      INTEGER  DBOPT_DTIME
+      INTEGER  DBOPT_EXTENSIVE
+      INTEGER  DBOPT_EXTENTS
+      INTEGER  DBOPT_EXTENTS_SIZE
+      INTEGER  DBOPT_FACETYPE
+      INTEGER  DBOPT_FIRST
+      INTEGER  DBOPT_GHOST_NODE_LABELS
+      INTEGER  DBOPT_GHOST_ZONE_LABELS
+      INTEGER  DBOPT_GROUPINGNAMES
+      INTEGER  DBOPT_GROUPINGS
+      INTEGER  DBOPT_GROUPINGS_SIZE
+      INTEGER  DBOPT_GROUPNUM
+      INTEGER  DBOPT_GROUPORIGIN
+      INTEGER  DBOPT_H5_ALIGN_MIN
+      INTEGER  DBOPT_H5_ALIGN_VAL
+      INTEGER  DBOPT_H5_CACHE_NBYTES
+      INTEGER  DBOPT_H5_CACHE_NELMTS
+      INTEGER  DBOPT_H5_CACHE_POLICY
+      INTEGER  DBOPT_H5_CORE_ALLOC_INC
+      INTEGER  DBOPT_H5_CORE_NO_BACK_STORE
+      INTEGER  DBOPT_H5_DIRECT_BLOCK_SIZE
+      INTEGER  DBOPT_H5_DIRECT_BUF_SIZE
+      INTEGER  DBOPT_H5_DIRECT_MEM_ALIGN
+      INTEGER  DBOPT_H5_FAM_FILE_OPTS
+      INTEGER  DBOPT_H5_FAM_SIZE
+      INTEGER  DBOPT_H5_FIC_BUF
+      INTEGER  DBOPT_H5_FIC_SIZE
+      INTEGER  DBOPT_H5_FIRST
+      INTEGER  DBOPT_H5_LAST
+      INTEGER  DBOPT_H5_LOG_BUF_SIZE
+      INTEGER  DBOPT_H5_LOG_NAME
+      INTEGER  DBOPT_H5_META_BLOCK_SIZE
+      INTEGER  DBOPT_H5_META_EXTENSION
+      INTEGER  DBOPT_H5_META_FILE_OPTS
+      INTEGER  DBOPT_H5_MPIO_COMM
+      INTEGER  DBOPT_H5_MPIO_INFO
+      INTEGER  DBOPT_H5_MPIP_NO_GPFS_HINTS
+      INTEGER  DBOPT_H5_RAW_EXTENSION
+      INTEGER  DBOPT_H5_RAW_FILE_OPTS
+      INTEGER  DBOPT_H5_SIEVE_BUF_SIZE
+      INTEGER  DBOPT_H5_SILO_BLOCK_COUNT
+      INTEGER  DBOPT_H5_SILO_BLOCK_SIZE
+      INTEGER  DBOPT_H5_SILO_LOG_STATS
+      INTEGER  DBOPT_H5_SILO_USE_DIRECT
+      INTEGER  DBOPT_H5_SMALL_RAW_SIZE
+      INTEGER  DBOPT_H5_USER_DRIVER_ID
+      INTEGER  DBOPT_H5_USER_DRIVER_INFO
+      INTEGER  DBOPT_H5_VFD
+      INTEGER  DBOPT_HAS_EXTERNAL_ZONES
+      INTEGER  DBOPT_HIDE_FROM_GUI
+      INTEGER  DBOPT_HI_OFFSET
+      INTEGER  DBOPT_LABEL
+      INTEGER  DBOPT_LAST
+      INTEGER  DBOPT_LLONGNZNUM
+      INTEGER  DBOPT_LO_OFFSET
+      INTEGER  DBOPT_MAJORORDER
+      INTEGER  DBOPT_MATCOLORS
+      INTEGER  DBOPT_MATCOUNTS
+      INTEGER  DBOPT_MATLISTS
+      INTEGER  DBOPT_MATNAME
+      INTEGER  DBOPT_MATNAMES
+      INTEGER  DBOPT_MATNOS
+      INTEGER  DBOPT_MB_BLOCK_NS
+      INTEGER  DBOPT_MB_BLOCK_TYPE
+      INTEGER  DBOPT_MB_EMPTY_COUNT
+      INTEGER  DBOPT_MB_EMPTY_LIST
+      INTEGER  DBOPT_MB_FILE_NS
+      INTEGER  DBOPT_MB_REPR_BLOCK_IDX
+      INTEGER  DBOPT_MISSING_VALUE
+      INTEGER  DBOPT_MIXLENS
+      INTEGER  DBOPT_MMESH_NAME
+      INTEGER  DBOPT_MRGTREE_NAME
+      INTEGER  DBOPT_MRGV_ONAMES
+      INTEGER  DBOPT_MRGV_RNAMES
+      INTEGER  DBOPT_NGROUPS
+      INTEGER  DBOPT_NMAT
+      INTEGER  DBOPT_NMATNOS
+      INTEGER  DBOPT_NMATSPEC
+      INTEGER  DBOPT_NODENUM
+      INTEGER  DBOPT_NSPACE
+      INTEGER  DBOPT_ORIGIN
+      INTEGER  DBOPT_PHZONELIST
+      INTEGER  DBOPT_PLANAR
+      INTEGER  DBOPT_REFERENCE
+      INTEGER  DBOPT_REGION_PNAMES
+      INTEGER  DBOPT_REGNAMES
+      INTEGER  DBOPT_SPECCOLORS
+      INTEGER  DBOPT_SPECNAMES
+      INTEGER  DBOPT_TENSOR_RANK
+      INTEGER  DBOPT_TIME
+      INTEGER  DBOPT_TOPO_DIM
+      INTEGER  DBOPT_TV_CONNECTIVITY
+      INTEGER  DBOPT_UNITS
+      INTEGER  DBOPT_USESPECMF
+      INTEGER  DBOPT_XLABEL
+      INTEGER  DBOPT_XUNITS
+      INTEGER  DBOPT_XVARNAME
+      INTEGER  DBOPT_YLABEL
+      INTEGER  DBOPT_YUNITS
+      INTEGER  DBOPT_YVARNAME
+      INTEGER  DBOPT_ZLABEL
+      INTEGER  DBOPT_ZONECOUNTS
+      INTEGER  DBOPT_ZONENAMES
+      INTEGER  DBOPT_ZONENUM
+      INTEGER  DBOPT_ZUNITS
+      INTEGER  DBOPT_ZVARNAME
+      INTEGER  DB_ABORT
+      INTEGER  DB_ABUTTING
+      INTEGER  DB_ALL
+      INTEGER  DB_ALL_AND_DRVR
+      INTEGER  DB_APPEND
+      INTEGER  DB_AREA
+      INTEGER  DB_ARRAY
+      INTEGER  DB_BLOCKCENT
+      INTEGER  DB_BNDCENT
+      INTEGER  DB_CARTESIAN
+      INTEGER  DB_CHAR
+      INTEGER  DB_CLOBBER
+      INTEGER  DB_COLLINEAR
+      INTEGER  DB_COLMAJOR
+      INTEGER  DB_CRAY
+      INTEGER  DB_CSGMESH
+      INTEGER  DB_CSGVAR
+      INTEGER  DB_CSGZONELIST
+      INTEGER  DB_CURVE
+      INTEGER  DB_CURVILINEAR
+      INTEGER  DB_CYLINDRICAL
+      INTEGER  DB_DEBUG
+      INTEGER  DB_DEFVARS
+      INTEGER  DB_DIR
+      INTEGER  DB_DOUBLE
+      INTEGER  DB_EDGECENT
+      INTEGER  DB_EDGELIST
+      INTEGER  DB_F77NULL
+      INTEGER  DB_FACECENT
+      INTEGER  DB_FACELIST
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_CORE
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_DEFAULT
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_DIRECT
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_FAMILY
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_LOG
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_MPIO
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_MPIP
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_SEC2
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_SILO
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_SPLIT
+      INTEGER  DB_FILE_OPTS_H5_DEFAULT_STDIO
+      INTEGER  DB_FILE_OPTS_LAST
+      INTEGER  DB_FLOAT
+      INTEGER  DB_FLOATING
+      INTEGER  DB_FROMCWR
+      INTEGER  DB_GHOSTTYPE_INTDUP
+      INTEGER  DB_GHOSTTYPE_NOGHOST
+      INTEGER  DB_GROUPELMAP
+      INTEGER  DB_H5VFD_CORE
+      INTEGER  DB_H5VFD_DEFAULT
+      INTEGER  DB_H5VFD_DIRECT
+      INTEGER  DB_H5VFD_FAMILY
+      INTEGER  DB_H5VFD_FIC
+      INTEGER  DB_H5VFD_LOG
+      INTEGER  DB_H5VFD_MPIO
+      INTEGER  DB_H5VFD_MPIP
+      INTEGER  DB_H5VFD_SEC2
+      INTEGER  DB_H5VFD_SILO
+      INTEGER  DB_H5VFD_SPLIT
+      INTEGER  DB_H5VFD_STDIO
+      INTEGER  DB_HDF5
+      INTEGER  DB_HDF5X
+      INTEGER  DB_HDF5_CORE
+      INTEGER  DB_HDF5_CORE_OBSOLETE
+      INTEGER  DB_HDF5_DIRECT
+      INTEGER  DB_HDF5_FAMILY
+      INTEGER  DB_HDF5_LOG
+      INTEGER  DB_HDF5_MPIO
+      INTEGER  DB_HDF5_MPIOP
+      INTEGER  DB_HDF5_MPIOP_OBSOLETE
+      INTEGER  DB_HDF5_MPIO_OBSOLETE
+      INTEGER  DB_HDF5_MPIP
+      INTEGER  DB_HDF5_SEC2
+      INTEGER  DB_HDF5_SEC2_OBSOLETE
+      INTEGER  DB_HDF5_SILO
+      INTEGER  DB_HDF5_SPLIT
+      INTEGER  DB_HDF5_STDIO
+      INTEGER  DB_HDF5_STDIO_OBSOLETE
+      INTEGER  DB_INT
+      INTEGER  DB_INTEL
+      INTEGER  DB_INVALID_OBJECT
+      INTEGER  DB_LOCAL
+      INTEGER  DB_LONG
+      INTEGER  DB_LONG_LONG
+      INTEGER  DB_MATERIAL
+      INTEGER  DB_MATSPECIES
+      INTEGER  DB_MAX_H5_OBJ_VALS
+      DOUBLE PRECISION DB_MISSING_VALUE_NOT_SET
+      INTEGER  DB_MRGTREE
+      INTEGER  DB_MRGVAR
+      INTEGER  DB_MULTIBLOCKMESH
+      INTEGER  DB_MULTIBLOCKVAR
+      INTEGER  DB_MULTIMAT
+      INTEGER  DB_MULTIMATSPECIES
+      INTEGER  DB_MULTIMESH
+      INTEGER  DB_MULTIMESHADJ
+      INTEGER  DB_MULTIVAR
+      INTEGER  DB_NETCDF
+      INTEGER  DB_NFILES
+      INTEGER  DB_NFILTERS
+      INTEGER  DB_NOCLOBBER
+      INTEGER  DB_NODECENT
+      INTEGER  DB_NONCOLLINEAR
+      INTEGER  DB_NONE
+      INTEGER  DB_NOTCENT
+      INTEGER  DB_NOTYPE
+      INTEGER  DB_NUMERICAL
+      INTEGER  DB_OFF
+      INTEGER  DB_ON
+      INTEGER  DB_OTHER
+      INTEGER  DB_PDB
+      INTEGER  DB_PDBP
+      INTEGER  DB_PHZONELIST
+      INTEGER  DB_POINTMESH
+      INTEGER  DB_POINTVAR
+      INTEGER  DB_POSTORDER
+      INTEGER  DB_PREORDER
+      INTEGER  DB_QUADCURV
+      INTEGER  DB_QUADMESH
+      INTEGER  DB_QUADRECT
+      INTEGER  DB_QUADVAR
+      INTEGER  DB_QUAD_CURV
+      INTEGER  DB_QUAD_RECT
+      INTEGER  DB_READ
+      INTEGER  DB_RECTILINEAR
+      INTEGER  DB_RESUME
+      INTEGER  DB_ROWMAJOR
+      INTEGER  DB_RS6000
+      INTEGER  DB_SGI
+      INTEGER  DB_SHORT
+      INTEGER  DB_SPHERICAL
+      INTEGER  DB_SUN3
+      INTEGER  DB_SUN4
+      INTEGER  DB_SUSPEND
+      INTEGER  DB_TAURUS
+      INTEGER  DB_TOP
+      INTEGER  DB_UCDMESH
+      INTEGER  DB_UCDVAR
+      INTEGER  DB_UNKNOWN
+      INTEGER  DB_USERDEF
+      INTEGER  DB_VARIABLE
+      INTEGER  DB_VARTYPE_ARRAY
+      INTEGER  DB_VARTYPE_LABEL
+      INTEGER  DB_VARTYPE_MATERIAL
+      INTEGER  DB_VARTYPE_SCALAR
+      INTEGER  DB_VARTYPE_SPECIES
+      INTEGER  DB_VARTYPE_SYMTENSOR
+      INTEGER  DB_VARTYPE_TENSOR
+      INTEGER  DB_VARTYPE_VECTOR
+      INTEGER  DB_VOLUME
+      INTEGER  DB_ZONECENT
+      INTEGER  DB_ZONELIST
+      INTEGER  DB_ZONETYPE_BEAM
+      INTEGER  DB_ZONETYPE_HEX
+      INTEGER  DB_ZONETYPE_POLYGON
+      INTEGER  DB_ZONETYPE_POLYHEDRON
+      INTEGER  DB_ZONETYPE_PRISM
+      INTEGER  DB_ZONETYPE_PYRAMID
+      INTEGER  DB_ZONETYPE_QUAD
+      INTEGER  DB_ZONETYPE_TET
+      INTEGER  DB_ZONETYPE_TRIANGLE
+      INTEGER  SILO_VERS_MAJ
+      INTEGER  SILO_VERS_MIN
+      INTEGER  SILO_VERS_PAT
+      INTEGER  SILO_VERS_PRE
+      CHARACTER*10  DB_F77NULLSTRING
+
+      PARAMETER (SILO_VERS_MAJ=4)
+      PARAMETER (SILO_VERS_MIN=10)
+      PARAMETER (SILO_VERS_PAT=0)
+      PARAMETER (SILO_VERS_PRE=0)
+      PARAMETER (DB_NETCDF=0)
+      PARAMETER (DB_PDB=2)
+      PARAMETER (DB_TAURUS=3)
+      PARAMETER (DB_UNKNOWN=5)
+      PARAMETER (DB_DEBUG=6)
+      PARAMETER (DB_HDF5X=7)
+      PARAMETER (DB_PDBP=1)
+      PARAMETER (DB_HDF5_SEC2_OBSOLETE=256)
+      PARAMETER (DB_HDF5_STDIO_OBSOLETE=512)
+      PARAMETER (DB_HDF5_CORE_OBSOLETE=768)
+      PARAMETER (DB_HDF5_MPIO_OBSOLETE=1024)
+      PARAMETER (DB_HDF5_MPIOP_OBSOLETE=1280)
+      PARAMETER (DB_H5VFD_DEFAULT=0)
+      PARAMETER (DB_H5VFD_SEC2=1)
+      PARAMETER (DB_H5VFD_STDIO=2)
+      PARAMETER (DB_H5VFD_CORE=3)
+      PARAMETER (DB_H5VFD_LOG=4)
+      PARAMETER (DB_H5VFD_SPLIT=5)
+      PARAMETER (DB_H5VFD_DIRECT=6)
+      PARAMETER (DB_H5VFD_FAMILY=7)
+      PARAMETER (DB_H5VFD_MPIO=8)
+      PARAMETER (DB_H5VFD_MPIP=9)
+      PARAMETER (DB_H5VFD_SILO=10)
+      PARAMETER (DB_H5VFD_FIC=11)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_DEFAULT=0)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_SEC2=1)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_STDIO=2)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_CORE=3)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_LOG=4)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_SPLIT=5)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_DIRECT=6)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_FAMILY=7)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_MPIO=8)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_MPIP=9)
+      PARAMETER (DB_FILE_OPTS_H5_DEFAULT_SILO=10)
+      PARAMETER (DB_FILE_OPTS_LAST=10)
+      PARAMETER (DB_HDF5=7)
+      PARAMETER (DB_HDF5_SEC2=2055)
+      PARAMETER (DB_HDF5_STDIO=4103)
+      PARAMETER (DB_HDF5_CORE=6151)
+      PARAMETER (DB_HDF5_LOG=8199)
+      PARAMETER (DB_HDF5_SPLIT=10247)
+      PARAMETER (DB_HDF5_DIRECT=12295)
+      PARAMETER (DB_HDF5_FAMILY=14343)
+      PARAMETER (DB_HDF5_MPIO=16391)
+      PARAMETER (DB_HDF5_MPIOP=18439)
+      PARAMETER (DB_HDF5_MPIP=18439)
+      PARAMETER (DB_HDF5_SILO=20487)
+      PARAMETER (DB_NFILES=256)
+      PARAMETER (DB_NFILTERS=32)
+      PARAMETER (DB_COLLINEAR=130)
+      PARAMETER (DB_NONCOLLINEAR=131)
+      PARAMETER (DB_QUAD_RECT=130)
+      PARAMETER (DB_QUAD_CURV=131)
+      PARAMETER (DB_INVALID_OBJECT=-1)
+      PARAMETER (DB_QUADRECT=130)
+      PARAMETER (DB_QUADCURV=131)
+      PARAMETER (DB_QUADMESH=500)
+      PARAMETER (DB_QUADVAR=501)
+      PARAMETER (DB_UCDMESH=510)
+      PARAMETER (DB_UCDVAR=511)
+      PARAMETER (DB_MULTIMESH=520)
+      PARAMETER (DB_MULTIVAR=521)
+      PARAMETER (DB_MULTIMAT=522)
+      PARAMETER (DB_MULTIMATSPECIES=523)
+      PARAMETER (DB_MULTIBLOCKMESH=520)
+      PARAMETER (DB_MULTIBLOCKVAR=521)
+      PARAMETER (DB_MULTIMESHADJ=524)
+      PARAMETER (DB_MATERIAL=530)
+      PARAMETER (DB_MATSPECIES=531)
+      PARAMETER (DB_FACELIST=550)
+      PARAMETER (DB_ZONELIST=551)
+      PARAMETER (DB_EDGELIST=552)
+      PARAMETER (DB_PHZONELIST=553)
+      PARAMETER (DB_CSGZONELIST=554)
+      PARAMETER (DB_CSGMESH=555)
+      PARAMETER (DB_CSGVAR=556)
+      PARAMETER (DB_CURVE=560)
+      PARAMETER (DB_DEFVARS=565)
+      PARAMETER (DB_POINTMESH=570)
+      PARAMETER (DB_POINTVAR=571)
+      PARAMETER (DB_ARRAY=580)
+      PARAMETER (DB_DIR=600)
+      PARAMETER (DB_VARIABLE=610)
+      PARAMETER (DB_MRGTREE=611)
+      PARAMETER (DB_GROUPELMAP=612)
+      PARAMETER (DB_MRGVAR=613)
+      PARAMETER (DB_USERDEF=700)
+      PARAMETER (DB_INT=16)
+      PARAMETER (DB_SHORT=17)
+      PARAMETER (DB_LONG=18)
+      PARAMETER (DB_FLOAT=19)
+      PARAMETER (DB_DOUBLE=20)
+      PARAMETER (DB_CHAR=21)
+      PARAMETER (DB_LONG_LONG=22)
+      PARAMETER (DB_NOTYPE=25)
+      PARAMETER (DB_CLOBBER=0)
+      PARAMETER (DB_NOCLOBBER=1)
+      PARAMETER (DB_READ=1)
+      PARAMETER (DB_APPEND=2)
+      PARAMETER (DB_LOCAL=0)
+      PARAMETER (DB_SUN3=10)
+      PARAMETER (DB_SUN4=11)
+      PARAMETER (DB_SGI=12)
+      PARAMETER (DB_RS6000=13)
+      PARAMETER (DB_CRAY=14)
+      PARAMETER (DB_INTEL=15)
+      PARAMETER (DBOPT_FIRST=260)
+      PARAMETER (DBOPT_ALIGN=260)
+      PARAMETER (DBOPT_COORDSYS=262)
+      PARAMETER (DBOPT_CYCLE=263)
+      PARAMETER (DBOPT_FACETYPE=264)
+      PARAMETER (DBOPT_HI_OFFSET=265)
+      PARAMETER (DBOPT_LO_OFFSET=266)
+      PARAMETER (DBOPT_LABEL=267)
+      PARAMETER (DBOPT_XLABEL=268)
+      PARAMETER (DBOPT_YLABEL=269)
+      PARAMETER (DBOPT_ZLABEL=270)
+      PARAMETER (DBOPT_MAJORORDER=271)
+      PARAMETER (DBOPT_NSPACE=272)
+      PARAMETER (DBOPT_ORIGIN=273)
+      PARAMETER (DBOPT_PLANAR=274)
+      PARAMETER (DBOPT_TIME=275)
+      PARAMETER (DBOPT_UNITS=276)
+      PARAMETER (DBOPT_XUNITS=277)
+      PARAMETER (DBOPT_YUNITS=278)
+      PARAMETER (DBOPT_ZUNITS=279)
+      PARAMETER (DBOPT_DTIME=280)
+      PARAMETER (DBOPT_USESPECMF=281)
+      PARAMETER (DBOPT_XVARNAME=282)
+      PARAMETER (DBOPT_YVARNAME=283)
+      PARAMETER (DBOPT_ZVARNAME=284)
+      PARAMETER (DBOPT_ASCII_LABEL=285)
+      PARAMETER (DBOPT_MATNOS=286)
+      PARAMETER (DBOPT_NMATNOS=287)
+      PARAMETER (DBOPT_MATNAME=288)
+      PARAMETER (DBOPT_NMAT=289)
+      PARAMETER (DBOPT_NMATSPEC=290)
+      PARAMETER (DBOPT_BASEINDEX=291)
+      PARAMETER (DBOPT_ZONENUM=292)
+      PARAMETER (DBOPT_NODENUM=293)
+      PARAMETER (DBOPT_BLOCKORIGIN=294)
+      PARAMETER (DBOPT_GROUPNUM=295)
+      PARAMETER (DBOPT_GROUPORIGIN=296)
+      PARAMETER (DBOPT_NGROUPS=297)
+      PARAMETER (DBOPT_MATNAMES=298)
+      PARAMETER (DBOPT_EXTENTS_SIZE=299)
+      PARAMETER (DBOPT_EXTENTS=300)
+      PARAMETER (DBOPT_MATCOUNTS=301)
+      PARAMETER (DBOPT_MATLISTS=302)
+      PARAMETER (DBOPT_MIXLENS=303)
+      PARAMETER (DBOPT_ZONECOUNTS=304)
+      PARAMETER (DBOPT_HAS_EXTERNAL_ZONES=305)
+      PARAMETER (DBOPT_PHZONELIST=306)
+      PARAMETER (DBOPT_MATCOLORS=307)
+      PARAMETER (DBOPT_BNDNAMES=308)
+      PARAMETER (DBOPT_REGNAMES=309)
+      PARAMETER (DBOPT_ZONENAMES=310)
+      PARAMETER (DBOPT_HIDE_FROM_GUI=311)
+      PARAMETER (DBOPT_TOPO_DIM=312)
+      PARAMETER (DBOPT_REFERENCE=313)
+      PARAMETER (DBOPT_GROUPINGS_SIZE=314)
+      PARAMETER (DBOPT_GROUPINGS=315)
+      PARAMETER (DBOPT_GROUPINGNAMES=316)
+      PARAMETER (DBOPT_ALLOWMAT0=317)
+      PARAMETER (DBOPT_MRGTREE_NAME=318)
+      PARAMETER (DBOPT_REGION_PNAMES=319)
+      PARAMETER (DBOPT_TENSOR_RANK=320)
+      PARAMETER (DBOPT_MMESH_NAME=321)
+      PARAMETER (DBOPT_TV_CONNECTIVITY=322)
+      PARAMETER (DBOPT_DISJOINT_MODE=323)
+      PARAMETER (DBOPT_MRGV_ONAMES=324)
+      PARAMETER (DBOPT_MRGV_RNAMES=325)
+      PARAMETER (DBOPT_SPECNAMES=326)
+      PARAMETER (DBOPT_SPECCOLORS=327)
+      PARAMETER (DBOPT_LLONGNZNUM=328)
+      PARAMETER (DBOPT_CONSERVED=329)
+      PARAMETER (DBOPT_EXTENSIVE=330)
+      PARAMETER (DBOPT_MB_FILE_NS=331)
+      PARAMETER (DBOPT_MB_BLOCK_NS=332)
+      PARAMETER (DBOPT_MB_BLOCK_TYPE=333)
+      PARAMETER (DBOPT_MB_EMPTY_LIST=334)
+      PARAMETER (DBOPT_MB_EMPTY_COUNT=335)
+      PARAMETER (DBOPT_MB_REPR_BLOCK_IDX=336)
+      PARAMETER (DBOPT_MISSING_VALUE=337)
+      PARAMETER (DBOPT_ALT_ZONENUM_VARS=338)
+      PARAMETER (DBOPT_ALT_NODENUM_VARS=339)
+      PARAMETER (DBOPT_GHOST_NODE_LABELS=340)
+      PARAMETER (DBOPT_GHOST_ZONE_LABELS=341)
+      PARAMETER (DBOPT_LAST=499)
+      PARAMETER (DBOPT_H5_FIRST=500)
+      PARAMETER (DBOPT_H5_VFD=500)
+      PARAMETER (DBOPT_H5_RAW_FILE_OPTS=501)
+      PARAMETER (DBOPT_H5_RAW_EXTENSION=502)
+      PARAMETER (DBOPT_H5_META_FILE_OPTS=503)
+      PARAMETER (DBOPT_H5_META_EXTENSION=504)
+      PARAMETER (DBOPT_H5_CORE_ALLOC_INC=505)
+      PARAMETER (DBOPT_H5_CORE_NO_BACK_STORE=506)
+      PARAMETER (DBOPT_H5_META_BLOCK_SIZE=507)
+      PARAMETER (DBOPT_H5_SMALL_RAW_SIZE=508)
+      PARAMETER (DBOPT_H5_ALIGN_MIN=509)
+      PARAMETER (DBOPT_H5_ALIGN_VAL=510)
+      PARAMETER (DBOPT_H5_DIRECT_MEM_ALIGN=511)
+      PARAMETER (DBOPT_H5_DIRECT_BLOCK_SIZE=512)
+      PARAMETER (DBOPT_H5_DIRECT_BUF_SIZE=513)
+      PARAMETER (DBOPT_H5_LOG_NAME=514)
+      PARAMETER (DBOPT_H5_LOG_BUF_SIZE=515)
+      PARAMETER (DBOPT_H5_MPIO_COMM=516)
+      PARAMETER (DBOPT_H5_MPIO_INFO=517)
+      PARAMETER (DBOPT_H5_MPIP_NO_GPFS_HINTS=518)
+      PARAMETER (DBOPT_H5_SIEVE_BUF_SIZE=519)
+      PARAMETER (DBOPT_H5_CACHE_NELMTS=520)
+      PARAMETER (DBOPT_H5_CACHE_NBYTES=521)
+      PARAMETER (DBOPT_H5_CACHE_POLICY=522)
+      PARAMETER (DBOPT_H5_FAM_SIZE=523)
+      PARAMETER (DBOPT_H5_FAM_FILE_OPTS=524)
+      PARAMETER (DBOPT_H5_USER_DRIVER_ID=525)
+      PARAMETER (DBOPT_H5_USER_DRIVER_INFO=526)
+      PARAMETER (DBOPT_H5_SILO_BLOCK_SIZE=527)
+      PARAMETER (DBOPT_H5_SILO_BLOCK_COUNT=528)
+      PARAMETER (DBOPT_H5_SILO_LOG_STATS=529)
+      PARAMETER (DBOPT_H5_SILO_USE_DIRECT=530)
+      PARAMETER (DBOPT_H5_FIC_SIZE=531)
+      PARAMETER (DBOPT_H5_FIC_BUF=532)
+      PARAMETER (DBOPT_H5_LAST=599)
+      PARAMETER (DB_TOP=0)
+      PARAMETER (DB_NONE=1)
+      PARAMETER (DB_ALL=2)
+      PARAMETER (DB_ABORT=3)
+      PARAMETER (DB_SUSPEND=4)
+      PARAMETER (DB_RESUME=5)
+      PARAMETER (DB_ALL_AND_DRVR=6)
+      PARAMETER (DB_ROWMAJOR=0)
+      PARAMETER (DB_COLMAJOR=1)
+      PARAMETER (DB_NOTCENT=0)
+      PARAMETER (DB_NODECENT=110)
+      PARAMETER (DB_ZONECENT=111)
+      PARAMETER (DB_FACECENT=112)
+      PARAMETER (DB_BNDCENT=113)
+      PARAMETER (DB_EDGECENT=114)
+      PARAMETER (DB_BLOCKCENT=115)
+      PARAMETER (DB_CARTESIAN=120)
+      PARAMETER (DB_CYLINDRICAL=121)
+      PARAMETER (DB_SPHERICAL=122)
+      PARAMETER (DB_NUMERICAL=123)
+      PARAMETER (DB_OTHER=124)
+      PARAMETER (DB_RECTILINEAR=100)
+      PARAMETER (DB_CURVILINEAR=101)
+      PARAMETER (DB_AREA=140)
+      PARAMETER (DB_VOLUME=141)
+      PARAMETER (DB_ON=1000)
+      PARAMETER (DB_OFF=-1000)
+      PARAMETER (DB_ABUTTING=142)
+      PARAMETER (DB_FLOATING=143)
+      PARAMETER (DB_VARTYPE_SCALAR=200)
+      PARAMETER (DB_VARTYPE_VECTOR=201)
+      PARAMETER (DB_VARTYPE_TENSOR=202)
+      PARAMETER (DB_VARTYPE_SYMTENSOR=203)
+      PARAMETER (DB_VARTYPE_ARRAY=204)
+      PARAMETER (DB_VARTYPE_MATERIAL=205)
+      PARAMETER (DB_VARTYPE_SPECIES=206)
+      PARAMETER (DB_VARTYPE_LABEL=207)
+      PARAMETER (DB_GHOSTTYPE_NOGHOST=0)
+      PARAMETER (DB_GHOSTTYPE_INTDUP=1)
+      PARAMETER (DBCSG_QUADRIC_G=16777216)
+      PARAMETER (DBCSG_SPHERE_PR=33619968)
+      PARAMETER (DBCSG_ELLIPSOID_PRRR=33685504)
+      PARAMETER (DBCSG_PLANE_G=50331648)
+      PARAMETER (DBCSG_PLANE_X=50397184)
+      PARAMETER (DBCSG_PLANE_Y=50462720)
+      PARAMETER (DBCSG_PLANE_Z=50528256)
+      PARAMETER (DBCSG_PLANE_PN=50593792)
+      PARAMETER (DBCSG_PLANE_PPP=50659328)
+      PARAMETER (DBCSG_CYLINDER_PNLR=67108864)
+      PARAMETER (DBCSG_CYLINDER_PPR=67174400)
+      PARAMETER (DBCSG_BOX_XYZXYZ=83886080)
+      PARAMETER (DBCSG_CONE_PNLA=100663296)
+      PARAMETER (DBCSG_CONE_PPA=100728832)
+      PARAMETER (DBCSG_POLYHEDRON_KF=117440512)
+      PARAMETER (DBCSG_HEX_6F=117506048)
+      PARAMETER (DBCSG_TET_4F=117571584)
+      PARAMETER (DBCSG_PYRAMID_5F=117637120)
+      PARAMETER (DBCSG_PRISM_5F=117702656)
+      PARAMETER (DBCSG_QUADRATIC_G=134217728)
+      PARAMETER (DBCSG_CIRCLE_PR=150994944)
+      PARAMETER (DBCSG_ELLIPSE_PRR=151060480)
+      PARAMETER (DBCSG_LINE_G=167772160)
+      PARAMETER (DBCSG_LINE_X=167837696)
+      PARAMETER (DBCSG_LINE_Y=167903232)
+      PARAMETER (DBCSG_LINE_PN=167968768)
+      PARAMETER (DBCSG_LINE_PP=168034304)
+      PARAMETER (DBCSG_BOX_XYXY=184549376)
+      PARAMETER (DBCSG_ANGLE_PNLA=201326592)
+      PARAMETER (DBCSG_ANGLE_PPA=201392128)
+      PARAMETER (DBCSG_POLYGON_KP=218103808)
+      PARAMETER (DBCSG_TRI_3P=218169344)
+      PARAMETER (DBCSG_QUAD_4P=218234880)
+      PARAMETER (DBCSG_INNER=2130706432)
+      PARAMETER (DBCSG_OUTER=2130771968)
+      PARAMETER (DBCSG_ON=2130837504)
+      PARAMETER (DBCSG_UNION=2130903040)
+      PARAMETER (DBCSG_INTERSECT=2130968576)
+      PARAMETER (DBCSG_DIFF=2131034112)
+      PARAMETER (DBCSG_COMPLIMENT=2131099648)
+      PARAMETER (DBCSG_XFORM=2131165184)
+      PARAMETER (DBCSG_SWEEP=2131230720)
+      PARAMETER (DB_PREORDER=1)
+      PARAMETER (DB_POSTORDER=2)
+      PARAMETER (DB_FROMCWR=4)
+      PARAMETER (DB_F77NULL=(-99))
+      PARAMETER (DB_MISSING_VALUE_NOT_SET=1.0D+308)
+      PARAMETER (DB_ZONETYPE_BEAM=10)
+      PARAMETER (DB_ZONETYPE_POLYGON=20)
+      PARAMETER (DB_ZONETYPE_TRIANGLE=23)
+      PARAMETER (DB_ZONETYPE_QUAD=24)
+      PARAMETER (DB_ZONETYPE_POLYHEDRON=30)
+      PARAMETER (DB_ZONETYPE_TET=34)
+      PARAMETER (DB_ZONETYPE_PYRAMID=35)
+      PARAMETER (DB_ZONETYPE_PRISM=36)
+      PARAMETER (DB_ZONETYPE_HEX=38)
+      PARAMETER (DB_MAX_H5_OBJ_VALS=64)
+      PARAMETER (DB_F77NULLSTRING="NULLSTRING")
+
+
+C End.
diff --git a/src/silo/silo_f9x.inc b/src/silo/silo_f9x.inc
new file mode 100644
index 0000000..78e3fd3
--- /dev/null
+++ b/src/silo/silo_f9x.inc
@@ -0,0 +1,433 @@
+!cccccccccccccccccccccccccccccccccccccccccccccccccccccccc -*- fortran -*-
+! 
+!      SILO include file for Fortan applications.
+! 
+!  Programmer:   miller86 Mon Sep 29 07:01:26 PDT 2014
+! 
+!  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+!     This file is generated automatically from C header files in the
+!     SILO distribution.  Do not make changes to this file manually,
+!     as those changes will disappear.
+!  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+! 
+!  This file was generated by the following commands...
+!        mv silo.inc silo.inc~
+!        cat silo.h silo_f.h | mkinc --f90 > silo.inc
+! 
+! cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+
+
+!...Functions.
+      integer, external :: dbaddcaopt
+      integer, external :: dbaddccmp
+      integer, external :: dbaddcopt
+      integer, external :: dbadddopt
+      integer, external :: dbaddiaopt
+      integer, external :: dbaddicmp
+      integer, external :: dbaddiopt
+      integer, external :: dbaddrcmp
+      integer, external :: dbaddregion
+      integer, external :: dbaddregiona
+      integer, external :: dbaddropt
+      integer, external :: dbcalcfl
+      integer, external :: dbclose
+      integer, external :: dbcreate
+      integer, external :: dberrno
+      integer, external :: dbfgetca
+      integer, external :: dbfreemrgtree
+      integer, external :: dbfreeobject
+      integer, external :: dbfreeoptlist
+      integer, external :: dbget2dstrlen
+      integer, external :: dbgetca
+      integer, external :: dbgetcksums
+      integer, external :: dbgetcompress
+      integer, external :: dbgetcurve
+      integer, external :: dbgetdepwarn
+      integer, external :: dbgetemptyok
+      integer, external :: dbgethdfnms
+      integer, external :: dbgetovrwrt
+      integer, external :: dbgetqv1
+      integer, external :: dbinqca
+      integer, external :: dbinqfile
+      integer, external :: dbinqlen
+      integer, external :: dbmkdir
+      integer, external :: dbmkmrgtree
+      integer, external :: dbmkobject
+      integer, external :: dbmkoptlist
+      integer, external :: dbmkptr
+      integer, external :: dbopen
+      integer, external :: dbpmrgv
+      integer, external :: dbputca
+      integer, external :: dbputcsgm
+      integer, external :: dbputcsgv
+      integer, external :: dbputcsgzl
+      integer, external :: dbputcurve
+      integer, external :: dbputdefvars
+      integer, external :: dbputfl
+      integer, external :: dbputgrplmap
+      integer, external :: dbputmat
+      integer, external :: dbputmmat
+      integer, external :: dbputmmesh
+      integer, external :: dbputmrgtree
+      integer, external :: dbputmsp
+      integer, external :: dbputmvar
+      integer, external :: dbputpm
+      integer, external :: dbputpv1
+      integer, external :: dbputqm
+      integer, external :: dbputqv
+      integer, external :: dbputqv1
+      integer, external :: dbputum
+      integer, external :: dbputuv1
+      integer, external :: dbputzl
+      integer, external :: dbputzl2
+      integer, external :: dbrdvar
+      integer, external :: dbrdvarslice
+      integer, external :: dbregfopts
+      integer, external :: dbrmptr
+      integer, external :: dbset2dstrlen
+      integer, external :: dbsetcksums
+      integer, external :: dbsetcompress
+      integer, external :: dbsetcwr
+      integer, external :: dbsetdepwarn
+      integer, external :: dbsetdir
+      integer, external :: dbsetemptyok
+      integer, external :: dbsethdfnms
+      integer, external :: dbsetovrwrt
+      integer, external :: dbshowerrors
+      integer, external :: dbunregafopts
+      integer, external :: dbunregfopts
+      integer, external :: dbwrite
+      integer, external :: dbwriteslice
+      integer, external :: dbwrtfl
+
+
+!...Parameters.
+      integer, parameter :: SILO_VERS_MAJ = 4
+      integer, parameter :: SILO_VERS_MIN = 10
+      integer, parameter :: SILO_VERS_PAT = 0
+      integer, parameter :: SILO_VERS_PRE = 0
+      integer, parameter :: DB_NETCDF = 0
+      integer, parameter :: DB_PDB = 2
+      integer, parameter :: DB_TAURUS = 3
+      integer, parameter :: DB_UNKNOWN = 5
+      integer, parameter :: DB_DEBUG = 6
+      integer, parameter :: DB_HDF5X = 7
+      integer, parameter :: DB_PDBP = 1
+      integer, parameter :: DB_HDF5_SEC2_OBSOLETE = 256
+      integer, parameter :: DB_HDF5_STDIO_OBSOLETE = 512
+      integer, parameter :: DB_HDF5_CORE_OBSOLETE = 768
+      integer, parameter :: DB_HDF5_MPIO_OBSOLETE = 1024
+      integer, parameter :: DB_HDF5_MPIOP_OBSOLETE = 1280
+      integer, parameter :: DB_H5VFD_DEFAULT = 0
+      integer, parameter :: DB_H5VFD_SEC2 = 1
+      integer, parameter :: DB_H5VFD_STDIO = 2
+      integer, parameter :: DB_H5VFD_CORE = 3
+      integer, parameter :: DB_H5VFD_LOG = 4
+      integer, parameter :: DB_H5VFD_SPLIT = 5
+      integer, parameter :: DB_H5VFD_DIRECT = 6
+      integer, parameter :: DB_H5VFD_FAMILY = 7
+      integer, parameter :: DB_H5VFD_MPIO = 8
+      integer, parameter :: DB_H5VFD_MPIP = 9
+      integer, parameter :: DB_H5VFD_SILO = 10
+      integer, parameter :: DB_H5VFD_FIC = 11
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_DEFAULT = 0
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_SEC2 = 1
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_STDIO = 2
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_CORE = 3
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_LOG = 4
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_SPLIT = 5
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_DIRECT = 6
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_FAMILY = 7
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_MPIO = 8
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_MPIP = 9
+      integer, parameter :: DB_FILE_OPTS_H5_DEFAULT_SILO = 10
+      integer, parameter :: DB_FILE_OPTS_LAST = 10
+      integer, parameter :: DB_HDF5 = 7
+      integer, parameter :: DB_HDF5_SEC2 = 2055
+      integer, parameter :: DB_HDF5_STDIO = 4103
+      integer, parameter :: DB_HDF5_CORE = 6151
+      integer, parameter :: DB_HDF5_LOG = 8199
+      integer, parameter :: DB_HDF5_SPLIT = 10247
+      integer, parameter :: DB_HDF5_DIRECT = 12295
+      integer, parameter :: DB_HDF5_FAMILY = 14343
+      integer, parameter :: DB_HDF5_MPIO = 16391
+      integer, parameter :: DB_HDF5_MPIOP = 18439
+      integer, parameter :: DB_HDF5_MPIP = 18439
+      integer, parameter :: DB_HDF5_SILO = 20487
+      integer, parameter :: DB_NFILES = 256
+      integer, parameter :: DB_NFILTERS = 32
+      integer, parameter :: DB_COLLINEAR = 130
+      integer, parameter :: DB_NONCOLLINEAR = 131
+      integer, parameter :: DB_QUAD_RECT = 130
+      integer, parameter :: DB_QUAD_CURV = 131
+      integer, parameter :: DB_INVALID_OBJECT = -1
+      integer, parameter :: DB_QUADRECT = 130
+      integer, parameter :: DB_QUADCURV = 131
+      integer, parameter :: DB_QUADMESH = 500
+      integer, parameter :: DB_QUADVAR = 501
+      integer, parameter :: DB_UCDMESH = 510
+      integer, parameter :: DB_UCDVAR = 511
+      integer, parameter :: DB_MULTIMESH = 520
+      integer, parameter :: DB_MULTIVAR = 521
+      integer, parameter :: DB_MULTIMAT = 522
+      integer, parameter :: DB_MULTIMATSPECIES = 523
+      integer, parameter :: DB_MULTIBLOCKMESH = 520
+      integer, parameter :: DB_MULTIBLOCKVAR = 521
+      integer, parameter :: DB_MULTIMESHADJ = 524
+      integer, parameter :: DB_MATERIAL = 530
+      integer, parameter :: DB_MATSPECIES = 531
+      integer, parameter :: DB_FACELIST = 550
+      integer, parameter :: DB_ZONELIST = 551
+      integer, parameter :: DB_EDGELIST = 552
+      integer, parameter :: DB_PHZONELIST = 553
+      integer, parameter :: DB_CSGZONELIST = 554
+      integer, parameter :: DB_CSGMESH = 555
+      integer, parameter :: DB_CSGVAR = 556
+      integer, parameter :: DB_CURVE = 560
+      integer, parameter :: DB_DEFVARS = 565
+      integer, parameter :: DB_POINTMESH = 570
+      integer, parameter :: DB_POINTVAR = 571
+      integer, parameter :: DB_ARRAY = 580
+      integer, parameter :: DB_DIR = 600
+      integer, parameter :: DB_VARIABLE = 610
+      integer, parameter :: DB_MRGTREE = 611
+      integer, parameter :: DB_GROUPELMAP = 612
+      integer, parameter :: DB_MRGVAR = 613
+      integer, parameter :: DB_USERDEF = 700
+      integer, parameter :: DB_INT = 16
+      integer, parameter :: DB_SHORT = 17
+      integer, parameter :: DB_LONG = 18
+      integer, parameter :: DB_FLOAT = 19
+      integer, parameter :: DB_DOUBLE = 20
+      integer, parameter :: DB_CHAR = 21
+      integer, parameter :: DB_LONG_LONG = 22
+      integer, parameter :: DB_NOTYPE = 25
+      integer, parameter :: DB_CLOBBER = 0
+      integer, parameter :: DB_NOCLOBBER = 1
+      integer, parameter :: DB_READ = 1
+      integer, parameter :: DB_APPEND = 2
+      integer, parameter :: DB_LOCAL = 0
+      integer, parameter :: DB_SUN3 = 10
+      integer, parameter :: DB_SUN4 = 11
+      integer, parameter :: DB_SGI = 12
+      integer, parameter :: DB_RS6000 = 13
+      integer, parameter :: DB_CRAY = 14
+      integer, parameter :: DB_INTEL = 15
+      integer, parameter :: DBOPT_FIRST = 260
+      integer, parameter :: DBOPT_ALIGN = 260
+      integer, parameter :: DBOPT_COORDSYS = 262
+      integer, parameter :: DBOPT_CYCLE = 263
+      integer, parameter :: DBOPT_FACETYPE = 264
+      integer, parameter :: DBOPT_HI_OFFSET = 265
+      integer, parameter :: DBOPT_LO_OFFSET = 266
+      integer, parameter :: DBOPT_LABEL = 267
+      integer, parameter :: DBOPT_XLABEL = 268
+      integer, parameter :: DBOPT_YLABEL = 269
+      integer, parameter :: DBOPT_ZLABEL = 270
+      integer, parameter :: DBOPT_MAJORORDER = 271
+      integer, parameter :: DBOPT_NSPACE = 272
+      integer, parameter :: DBOPT_ORIGIN = 273
+      integer, parameter :: DBOPT_PLANAR = 274
+      integer, parameter :: DBOPT_TIME = 275
+      integer, parameter :: DBOPT_UNITS = 276
+      integer, parameter :: DBOPT_XUNITS = 277
+      integer, parameter :: DBOPT_YUNITS = 278
+      integer, parameter :: DBOPT_ZUNITS = 279
+      integer, parameter :: DBOPT_DTIME = 280
+      integer, parameter :: DBOPT_USESPECMF = 281
+      integer, parameter :: DBOPT_XVARNAME = 282
+      integer, parameter :: DBOPT_YVARNAME = 283
+      integer, parameter :: DBOPT_ZVARNAME = 284
+      integer, parameter :: DBOPT_ASCII_LABEL = 285
+      integer, parameter :: DBOPT_MATNOS = 286
+      integer, parameter :: DBOPT_NMATNOS = 287
+      integer, parameter :: DBOPT_MATNAME = 288
+      integer, parameter :: DBOPT_NMAT = 289
+      integer, parameter :: DBOPT_NMATSPEC = 290
+      integer, parameter :: DBOPT_BASEINDEX = 291
+      integer, parameter :: DBOPT_ZONENUM = 292
+      integer, parameter :: DBOPT_NODENUM = 293
+      integer, parameter :: DBOPT_BLOCKORIGIN = 294
+      integer, parameter :: DBOPT_GROUPNUM = 295
+      integer, parameter :: DBOPT_GROUPORIGIN = 296
+      integer, parameter :: DBOPT_NGROUPS = 297
+      integer, parameter :: DBOPT_MATNAMES = 298
+      integer, parameter :: DBOPT_EXTENTS_SIZE = 299
+      integer, parameter :: DBOPT_EXTENTS = 300
+      integer, parameter :: DBOPT_MATCOUNTS = 301
+      integer, parameter :: DBOPT_MATLISTS = 302
+      integer, parameter :: DBOPT_MIXLENS = 303
+      integer, parameter :: DBOPT_ZONECOUNTS = 304
+      integer, parameter :: DBOPT_HAS_EXTERNAL_ZONES = 305
+      integer, parameter :: DBOPT_PHZONELIST = 306
+      integer, parameter :: DBOPT_MATCOLORS = 307
+      integer, parameter :: DBOPT_BNDNAMES = 308
+      integer, parameter :: DBOPT_REGNAMES = 309
+      integer, parameter :: DBOPT_ZONENAMES = 310
+      integer, parameter :: DBOPT_HIDE_FROM_GUI = 311
+      integer, parameter :: DBOPT_TOPO_DIM = 312
+      integer, parameter :: DBOPT_REFERENCE = 313
+      integer, parameter :: DBOPT_GROUPINGS_SIZE = 314
+      integer, parameter :: DBOPT_GROUPINGS = 315
+      integer, parameter :: DBOPT_GROUPINGNAMES = 316
+      integer, parameter :: DBOPT_ALLOWMAT0 = 317
+      integer, parameter :: DBOPT_MRGTREE_NAME = 318
+      integer, parameter :: DBOPT_REGION_PNAMES = 319
+      integer, parameter :: DBOPT_TENSOR_RANK = 320
+      integer, parameter :: DBOPT_MMESH_NAME = 321
+      integer, parameter :: DBOPT_TV_CONNECTIVITY = 322
+      integer, parameter :: DBOPT_DISJOINT_MODE = 323
+      integer, parameter :: DBOPT_MRGV_ONAMES = 324
+      integer, parameter :: DBOPT_MRGV_RNAMES = 325
+      integer, parameter :: DBOPT_SPECNAMES = 326
+      integer, parameter :: DBOPT_SPECCOLORS = 327
+      integer, parameter :: DBOPT_LLONGNZNUM = 328
+      integer, parameter :: DBOPT_CONSERVED = 329
+      integer, parameter :: DBOPT_EXTENSIVE = 330
+      integer, parameter :: DBOPT_MB_FILE_NS = 331
+      integer, parameter :: DBOPT_MB_BLOCK_NS = 332
+      integer, parameter :: DBOPT_MB_BLOCK_TYPE = 333
+      integer, parameter :: DBOPT_MB_EMPTY_LIST = 334
+      integer, parameter :: DBOPT_MB_EMPTY_COUNT = 335
+      integer, parameter :: DBOPT_MB_REPR_BLOCK_IDX = 336
+      integer, parameter :: DBOPT_MISSING_VALUE = 337
+      integer, parameter :: DBOPT_ALT_ZONENUM_VARS = 338
+      integer, parameter :: DBOPT_ALT_NODENUM_VARS = 339
+      integer, parameter :: DBOPT_GHOST_NODE_LABELS = 340
+      integer, parameter :: DBOPT_GHOST_ZONE_LABELS = 341
+      integer, parameter :: DBOPT_LAST = 499
+      integer, parameter :: DBOPT_H5_FIRST = 500
+      integer, parameter :: DBOPT_H5_VFD = 500
+      integer, parameter :: DBOPT_H5_RAW_FILE_OPTS = 501
+      integer, parameter :: DBOPT_H5_RAW_EXTENSION = 502
+      integer, parameter :: DBOPT_H5_META_FILE_OPTS = 503
+      integer, parameter :: DBOPT_H5_META_EXTENSION = 504
+      integer, parameter :: DBOPT_H5_CORE_ALLOC_INC = 505
+      integer, parameter :: DBOPT_H5_CORE_NO_BACK_STORE = 506
+      integer, parameter :: DBOPT_H5_META_BLOCK_SIZE = 507
+      integer, parameter :: DBOPT_H5_SMALL_RAW_SIZE = 508
+      integer, parameter :: DBOPT_H5_ALIGN_MIN = 509
+      integer, parameter :: DBOPT_H5_ALIGN_VAL = 510
+      integer, parameter :: DBOPT_H5_DIRECT_MEM_ALIGN = 511
+      integer, parameter :: DBOPT_H5_DIRECT_BLOCK_SIZE = 512
+      integer, parameter :: DBOPT_H5_DIRECT_BUF_SIZE = 513
+      integer, parameter :: DBOPT_H5_LOG_NAME = 514
+      integer, parameter :: DBOPT_H5_LOG_BUF_SIZE = 515
+      integer, parameter :: DBOPT_H5_MPIO_COMM = 516
+      integer, parameter :: DBOPT_H5_MPIO_INFO = 517
+      integer, parameter :: DBOPT_H5_MPIP_NO_GPFS_HINTS = 518
+      integer, parameter :: DBOPT_H5_SIEVE_BUF_SIZE = 519
+      integer, parameter :: DBOPT_H5_CACHE_NELMTS = 520
+      integer, parameter :: DBOPT_H5_CACHE_NBYTES = 521
+      integer, parameter :: DBOPT_H5_CACHE_POLICY = 522
+      integer, parameter :: DBOPT_H5_FAM_SIZE = 523
+      integer, parameter :: DBOPT_H5_FAM_FILE_OPTS = 524
+      integer, parameter :: DBOPT_H5_USER_DRIVER_ID = 525
+      integer, parameter :: DBOPT_H5_USER_DRIVER_INFO = 526
+      integer, parameter :: DBOPT_H5_SILO_BLOCK_SIZE = 527
+      integer, parameter :: DBOPT_H5_SILO_BLOCK_COUNT = 528
+      integer, parameter :: DBOPT_H5_SILO_LOG_STATS = 529
+      integer, parameter :: DBOPT_H5_SILO_USE_DIRECT = 530
+      integer, parameter :: DBOPT_H5_FIC_SIZE = 531
+      integer, parameter :: DBOPT_H5_FIC_BUF = 532
+      integer, parameter :: DBOPT_H5_LAST = 599
+      integer, parameter :: DB_TOP = 0
+      integer, parameter :: DB_NONE = 1
+      integer, parameter :: DB_ALL = 2
+      integer, parameter :: DB_ABORT = 3
+      integer, parameter :: DB_SUSPEND = 4
+      integer, parameter :: DB_RESUME = 5
+      integer, parameter :: DB_ALL_AND_DRVR = 6
+      integer, parameter :: DB_ROWMAJOR = 0
+      integer, parameter :: DB_COLMAJOR = 1
+      integer, parameter :: DB_NOTCENT = 0
+      integer, parameter :: DB_NODECENT = 110
+      integer, parameter :: DB_ZONECENT = 111
+      integer, parameter :: DB_FACECENT = 112
+      integer, parameter :: DB_BNDCENT = 113
+      integer, parameter :: DB_EDGECENT = 114
+      integer, parameter :: DB_BLOCKCENT = 115
+      integer, parameter :: DB_CARTESIAN = 120
+      integer, parameter :: DB_CYLINDRICAL = 121
+      integer, parameter :: DB_SPHERICAL = 122
+      integer, parameter :: DB_NUMERICAL = 123
+      integer, parameter :: DB_OTHER = 124
+      integer, parameter :: DB_RECTILINEAR = 100
+      integer, parameter :: DB_CURVILINEAR = 101
+      integer, parameter :: DB_AREA = 140
+      integer, parameter :: DB_VOLUME = 141
+      integer, parameter :: DB_ON = 1000
+      integer, parameter :: DB_OFF = -1000
+      integer, parameter :: DB_ABUTTING = 142
+      integer, parameter :: DB_FLOATING = 143
+      integer, parameter :: DB_VARTYPE_SCALAR = 200
+      integer, parameter :: DB_VARTYPE_VECTOR = 201
+      integer, parameter :: DB_VARTYPE_TENSOR = 202
+      integer, parameter :: DB_VARTYPE_SYMTENSOR = 203
+      integer, parameter :: DB_VARTYPE_ARRAY = 204
+      integer, parameter :: DB_VARTYPE_MATERIAL = 205
+      integer, parameter :: DB_VARTYPE_SPECIES = 206
+      integer, parameter :: DB_VARTYPE_LABEL = 207
+      integer, parameter :: DB_GHOSTTYPE_NOGHOST = 0
+      integer, parameter :: DB_GHOSTTYPE_INTDUP = 1
+      integer, parameter :: DBCSG_QUADRIC_G = 16777216
+      integer, parameter :: DBCSG_SPHERE_PR = 33619968
+      integer, parameter :: DBCSG_ELLIPSOID_PRRR = 33685504
+      integer, parameter :: DBCSG_PLANE_G = 50331648
+      integer, parameter :: DBCSG_PLANE_X = 50397184
+      integer, parameter :: DBCSG_PLANE_Y = 50462720
+      integer, parameter :: DBCSG_PLANE_Z = 50528256
+      integer, parameter :: DBCSG_PLANE_PN = 50593792
+      integer, parameter :: DBCSG_PLANE_PPP = 50659328
+      integer, parameter :: DBCSG_CYLINDER_PNLR = 67108864
+      integer, parameter :: DBCSG_CYLINDER_PPR = 67174400
+      integer, parameter :: DBCSG_BOX_XYZXYZ = 83886080
+      integer, parameter :: DBCSG_CONE_PNLA = 100663296
+      integer, parameter :: DBCSG_CONE_PPA = 100728832
+      integer, parameter :: DBCSG_POLYHEDRON_KF = 117440512
+      integer, parameter :: DBCSG_HEX_6F = 117506048
+      integer, parameter :: DBCSG_TET_4F = 117571584
+      integer, parameter :: DBCSG_PYRAMID_5F = 117637120
+      integer, parameter :: DBCSG_PRISM_5F = 117702656
+      integer, parameter :: DBCSG_QUADRATIC_G = 134217728
+      integer, parameter :: DBCSG_CIRCLE_PR = 150994944
+      integer, parameter :: DBCSG_ELLIPSE_PRR = 151060480
+      integer, parameter :: DBCSG_LINE_G = 167772160
+      integer, parameter :: DBCSG_LINE_X = 167837696
+      integer, parameter :: DBCSG_LINE_Y = 167903232
+      integer, parameter :: DBCSG_LINE_PN = 167968768
+      integer, parameter :: DBCSG_LINE_PP = 168034304
+      integer, parameter :: DBCSG_BOX_XYXY = 184549376
+      integer, parameter :: DBCSG_ANGLE_PNLA = 201326592
+      integer, parameter :: DBCSG_ANGLE_PPA = 201392128
+      integer, parameter :: DBCSG_POLYGON_KP = 218103808
+      integer, parameter :: DBCSG_TRI_3P = 218169344
+      integer, parameter :: DBCSG_QUAD_4P = 218234880
+      integer, parameter :: DBCSG_INNER = 2130706432
+      integer, parameter :: DBCSG_OUTER = 2130771968
+      integer, parameter :: DBCSG_ON = 2130837504
+      integer, parameter :: DBCSG_UNION = 2130903040
+      integer, parameter :: DBCSG_INTERSECT = 2130968576
+      integer, parameter :: DBCSG_DIFF = 2131034112
+      integer, parameter :: DBCSG_COMPLIMENT = 2131099648
+      integer, parameter :: DBCSG_XFORM = 2131165184
+      integer, parameter :: DBCSG_SWEEP = 2131230720
+      integer, parameter :: DB_PREORDER = 1
+      integer, parameter :: DB_POSTORDER = 2
+      integer, parameter :: DB_FROMCWR = 4
+      integer, parameter :: DB_F77NULL = (-99)
+      real (kind=8), parameter :: DB_MISSING_VALUE_NOT_SET = 1.0D+308
+      integer, parameter :: DB_ZONETYPE_BEAM = 10
+      integer, parameter :: DB_ZONETYPE_POLYGON = 20
+      integer, parameter :: DB_ZONETYPE_TRIANGLE = 23
+      integer, parameter :: DB_ZONETYPE_QUAD = 24
+      integer, parameter :: DB_ZONETYPE_POLYHEDRON = 30
+      integer, parameter :: DB_ZONETYPE_TET = 34
+      integer, parameter :: DB_ZONETYPE_PYRAMID = 35
+      integer, parameter :: DB_ZONETYPE_PRISM = 36
+      integer, parameter :: DB_ZONETYPE_HEX = 38
+      integer, parameter :: DB_MAX_H5_OBJ_VALS = 64
+      character (len=10), parameter :: DB_F77NULLSTRING = "NULLSTRING"
+
+
+! End.
diff --git a/src/silo/silo_json.c b/src/silo/silo_json.c
new file mode 100644
index 0000000..ba037d0
--- /dev/null
+++ b/src/silo/silo_json.c
@@ -0,0 +1,1794 @@
+/*
+Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
+LLNL-CODE-425250.
+All rights reserved.
+
+This file is part of Silo. For details, see silo.llnl.gov.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+   * Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the disclaimer below.
+   * Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the disclaimer (as noted
+     below) in the documentation and/or other materials provided with
+     the distribution.
+   * Neither the name of the LLNS/LLNL nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+THIS SOFTWARE  IS PROVIDED BY  THE COPYRIGHT HOLDERS  AND CONTRIBUTORS
+"AS  IS" AND  ANY EXPRESS  OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
+LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A  PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN  NO  EVENT SHALL  LAWRENCE
+LIVERMORE  NATIONAL SECURITY, LLC,  THE U.S.  DEPARTMENT OF  ENERGY OR
+CONTRIBUTORS BE LIABLE FOR  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR  CONSEQUENTIAL DAMAGES  (INCLUDING, BUT NOT  LIMITED TO,
+PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS  OF USE,  DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER  IN CONTRACT, STRICT LIABILITY,  OR TORT (INCLUDING
+NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT  OF THE USE  OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+This work was produced at Lawrence Livermore National Laboratory under
+Contract No.  DE-AC52-07NA27344 with the DOE.
+
+Neither the  United States Government nor  Lawrence Livermore National
+Security, LLC nor any of  their employees, makes any warranty, express
+or  implied,  or  assumes  any  liability or  responsibility  for  the
+accuracy, completeness,  or usefulness of  any information, apparatus,
+product, or  process disclosed, or  represents that its use  would not
+infringe privately-owned rights.
+
+Any reference herein to  any specific commercial products, process, or
+services by trade name,  trademark, manufacturer or otherwise does not
+necessarily  constitute or imply  its endorsement,  recommendation, or
+favoring  by  the  United  States  Government  or  Lawrence  Livermore
+National Security,  LLC. The views  and opinions of  authors expressed
+herein do not necessarily state  or reflect those of the United States
+Government or Lawrence Livermore National Security, LLC, and shall not
+be used for advertising or product endorsement purposes.
+*/
+#include <errno.h>
+#include <fcntl.h>
+#include <float.h>
+#include <limits.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <silo_private.h>
+
+#include <silo_json.h>
+#include <json/json.h>
+#include <json/json_object_private.h>
+#include <json/printbuf.h>
+
+#define EXTPTR_HDRSTR "\":{\"ptr\":\"0x"
+
+static void indent(struct printbuf *pb, int level, int flags)
+{
+    if (flags & JSON_C_TO_STRING_PRETTY)
+    {
+        printbuf_memset(pb, -1, ' ', level * 2);
+    }
+}
+
+static int json_object_object_length(struct json_object *o)
+{
+    struct lh_table *t = json_object_get_object(o);
+    return t->count;
+}
+
+static int json_object_object_get_member_count(struct json_object *o)
+{
+    int n = 0;
+    struct json_object_iter jiter;
+    json_object_object_foreachC(o, jiter)
+    {
+        n++;
+    }
+    return n;
+}
+
+static void json_object_set_serializer(json_object *jso,
+    json_object_to_json_string_fn to_string_func,
+    void * userdata, json_object_delete_fn * user_delete)
+{
+    jso->_to_json_string = to_string_func;
+}
+
+static void json_object_set_deleter(json_object *jso,
+    json_object_delete_fn delete_func)
+{
+    jso->_delete = delete_func;
+}
+
+void
+json_object_extptr_delete(struct json_object *jso)
+{
+    void *extptr = json_object_get_extptr_ptr(jso);
+    if (extptr) free(extptr);
+    json_object_put(jso);
+}
+
+static int
+json_object_extptr_to_json_string(struct json_object* jso,
+    struct printbuf *pb, int level, int flags)
+{
+        int had_children = 0;
+        int ii;
+        char *p;
+        int datatype, nvals, ndims, dims[32];
+        struct json_object *darr, *subobj;
+        int retval;
+
+        sprintbuf(pb, "{\"ptr\":%s", json_object_to_json_string(json_object_object_get(jso, "ptr")));
+        sprintbuf(pb, ",\"datatype\":%s", json_object_to_json_string(json_object_object_get(jso, "datatype")));
+        sprintbuf(pb, ",\"ndims\":%s", json_object_to_json_string(json_object_object_get(jso, "ndims")));
+        sprintbuf(pb, ",\"dims\":%s", json_object_to_json_string(json_object_object_get(jso, "dims")));
+ 
+        p = (char*) json_object_get_strptr(json_object_object_get(jso, "ptr"));
+        datatype = json_object_get_int(json_object_object_get(jso, "datatype"));
+        ndims = json_object_get_int(json_object_object_get(jso, "ndims"));
+        darr = json_object_object_get(jso, "dims");
+        nvals = 1;
+        for (ii = 0; ii < ndims; ii++)
+        {
+            dims[ii] = json_object_get_int(json_object_array_get_idx(darr, ii));
+            nvals *= dims[ii];
+        }
+
+        if (flags & JSON_C_TO_STRING_EXTPTR_AS_BINARY)
+        {
+            sprintbuf(pb, ",\"nvals\":%d", nvals);
+            sprintbuf(pb, ",\"data\":[");
+            printbuf_memappend(pb, p, nvals*db_GetMachDataSize(datatype));
+        }
+        else if (flags & JSON_C_TO_STRING_EXTPTR_SKIP)
+        {
+            return sprintbuf(pb, "}");
+        }
+        else
+        {
+
+            sprintbuf(pb, ",\"data\":[");
+            if (flags & JSON_C_TO_STRING_PRETTY)
+                    sprintbuf(pb, "\n");
+
+            for(ii=0; ii < nvals; ii++)
+            {
+                    struct json_object *val;
+                    if (had_children)
+                    {
+                            sprintbuf(pb, ",");
+                            if (flags & JSON_C_TO_STRING_PRETTY)
+                                    sprintbuf(pb, "\n");
+                    }
+                    had_children = 1;
+                    if (flags & JSON_C_TO_STRING_SPACED)
+                            sprintbuf(pb, " ");
+                    indent(pb, level + 1, flags);
+
+                    switch (datatype)
+                    {
+                        case DB_CHAR:
+                        {
+                            sprintbuf(pb, "%c", *((char*)p));
+                            p += sizeof(char);
+                            break;
+                        }
+                        case DB_SHORT:
+                        {
+                            sprintbuf(pb, "%hd", *((short*)p));
+                            p += sizeof(short);
+                            break;
+                        }
+                        case DB_INT:
+                        {
+                            sprintbuf(pb, "%d", *((int*)p));
+                            p += sizeof(int);
+                            break;
+                        }
+                        case DB_LONG:
+                        {
+                            sprintbuf(pb, "%ld", *((long*)p));
+                            p += sizeof(long);
+                            break;
+                        }
+                        case DB_LONG_LONG:
+                        {
+                            sprintbuf(pb, "%lld", *((long long*)p));
+                            p += sizeof(long long);
+                            break;
+                        }
+                        case DB_FLOAT:
+                        {
+                            sprintbuf(pb, "%f", *((float*)p));
+                            p += sizeof(float);
+                            break;
+                        }
+                        case DB_DOUBLE:
+                        {
+                            sprintbuf(pb, "%f", *((double*)p));
+                            p += sizeof(double);
+                            break;
+                        }
+                    }
+            }
+        }
+        if (flags & JSON_C_TO_STRING_PRETTY)
+        {
+                if (had_children)
+                        sprintbuf(pb, "\n");
+                indent(pb,level,flags);
+        }
+
+        if (flags & JSON_C_TO_STRING_SPACED)
+                retval = sprintbuf(pb, " ]}");
+        else
+                retval = sprintbuf(pb, "]}");
+
+        return retval;
+}
+
+struct json_object *
+json_object_new_strptr(void *p)
+{
+    static char tmp[32];
+    if (sizeof(p) == sizeof(unsigned))
+        snprintf(tmp, sizeof(tmp), "0x%016x", (unsigned) p);
+    else if (sizeof(p) == sizeof(unsigned long))
+        snprintf(tmp, sizeof(tmp), "0x%016lx", (unsigned long) p);
+    else if (sizeof(p) == sizeof(unsigned long long))
+        snprintf(tmp, sizeof(tmp), "0x%016llx", (unsigned long long) p);
+
+    return json_object_new_string(tmp);
+}
+
+void *
+json_object_get_strptr(struct json_object *o)
+{
+    void *p;
+    char const *strptr = json_object_get_string(o);
+    if (sscanf(strptr, "%p", &p) == 1)
+        return p;
+    else
+        return 0;
+}
+
+struct json_object *
+json_object_new_extptr(void *p, int ndims, int const *dims, int datatype)
+{
+    int i;
+    struct json_object *jobj = json_object_new_object();
+    struct json_object *jarr = json_object_new_array();
+
+    json_object_set_serializer(jobj, json_object_extptr_to_json_string, 0, 0);
+    json_object_set_deleter(jobj, json_object_extptr_delete); 
+
+    for (i = 0; i < ndims; i++)
+        json_object_array_add(jarr, json_object_new_int(dims[i]));
+
+    json_object_object_add(jobj, "ptr", json_object_new_strptr(p));
+    json_object_object_add(jobj, "datatype", json_object_new_int(datatype));
+    json_object_object_add(jobj, "ndims", json_object_new_int(ndims));
+    json_object_object_add(jobj, "dims", jarr);
+
+    return jobj;
+}
+
+int
+json_object_is_extptr(struct json_object *obj)
+{
+    if (json_object_object_get_ex(obj, "ptr", 0) &&
+        json_object_object_get_ex(obj, "datatype", 0) &&
+        json_object_object_get_ex(obj, "ndims", 0) &&
+        json_object_object_get_ex(obj, "dims", 0))
+        return 1;
+    return 0;
+}
+
+int
+json_object_get_extptr_ndims(struct json_object *obj)
+{
+    struct json_object *sobj = 0;
+    if (json_object_object_get_ex(obj, "ptr", 0) &&
+        json_object_object_get_ex(obj, "datatype", 0) &&
+        json_object_object_get_ex(obj, "ndims", &sobj) &&
+        json_object_object_get_ex(obj, "dims", 0) && sobj)
+        return json_object_get_int(sobj);
+    return -1;
+}
+
+int
+json_object_get_extptr_datatype(struct json_object *obj)
+{
+    struct json_object *sobj = 0;
+    if (json_object_object_get_ex(obj, "ptr", 0) &&
+        json_object_object_get_ex(obj, "datatype", &sobj) &&
+        json_object_object_get_ex(obj, "ndims", 0) &&
+        json_object_object_get_ex(obj, "dims", 0) && sobj)
+        return json_object_get_int(sobj);
+    return -1;
+}
+
+int
+json_object_get_extptr_dims_idx(struct json_object *obj, int idx)
+{
+    struct json_object *sobj = 0;
+    if (json_object_object_get_ex(obj, "ptr", 0) &&
+        json_object_object_get_ex(obj, "datatype", 0) &&
+        json_object_object_get_ex(obj, "ndims", 0) &&
+        json_object_object_get_ex(obj, "dims", &sobj) && sobj)
+        return json_object_get_int(json_object_array_get_idx(sobj, idx));
+    return 0;
+}
+
+void *
+json_object_get_extptr_ptr(struct json_object *obj)
+{
+    struct json_object *sobj = 0;
+    if (json_object_object_get_ex(obj, "ptr", &sobj) &&
+        json_object_object_get_ex(obj, "datatype", 0) &&
+        json_object_object_get_ex(obj, "ndims", 0) &&
+        json_object_object_get_ex(obj, "dims", 0) && sobj)
+        return json_object_get_strptr(sobj);
+    return 0;
+}
+
+int
+json_object_to_binary_buf(struct json_object *obj, int flags, void **buf, int *len)
+{
+    char const *pjhdr;
+    struct printbuf *pb = printbuf_new();
+
+    /* first, stringify the json object as normal but skipping extptr data */
+    char const *jhdr = json_object_to_json_string_ext(obj, flags|JSON_C_TO_STRING_EXTPTR_SKIP);
+    sprintbuf(pb, "%s", jhdr);
+    sprintbuf(pb, "%c", '\0'); /* so header is null-terminated */
+
+    /* now, handle all extptr objects by appending their binary data onto the end,
+       and over-writing the "ptr" value with offset within the buffer */
+    pjhdr = jhdr;
+    while (*pjhdr)
+    {
+        if (!strncmp(pjhdr, EXTPTR_HDRSTR, sizeof(EXTPTR_HDRSTR)-1))
+        {
+            char tmp[64];
+            int pblen;
+            struct json_object *extptr_obj = json_tokener_parse(pjhdr+2); /* walk past '":' */
+            void *p = json_object_get_strptr(json_object_object_get(extptr_obj, "ptr"));
+            int datatype = json_object_get_int(json_object_object_get(extptr_obj, "datatype"));
+            int ndims = json_object_get_int(json_object_object_get(extptr_obj, "ndims"));
+            struct json_object *darr = json_object_object_get(extptr_obj, "dims");
+            int ii, nvals = 1;
+            for (ii = 0; ii < ndims; ii++)
+                nvals *= json_object_get_int(json_object_array_get_idx(darr, ii));
+            pblen = printbuf_length(pb);
+            printbuf_memappend_fast(pb, p, nvals*db_GetMachDataSize(datatype));
+            /* Use of a hexadecimal value works ok here because a scanf can read it */
+            sprintf(tmp,"%-.16x",pblen); /* overwrite ptr value w/buffer-offset */
+            memcpy(pb->buf + (pjhdr+12-jhdr),tmp,strlen(tmp)); /* overwrite ptr value w/buffer-offset */
+            pjhdr += sizeof(EXTPTR_HDRSTR);
+            json_object_put(extptr_obj);
+        }
+        pjhdr++;
+    }
+    if (len) *len = printbuf_length(pb);
+    if (buf) *buf = pb->buf;
+    free(pb);
+    return 0;
+}
+
+static void
+json_object_from_binary_buf_recurse(struct json_object *jso, void *buf)
+{
+    /* first, reconstitute the header */
+    struct json_object_iter iter;
+
+    json_object_object_foreachC(jso, iter)
+    {
+        json_type jtype = json_object_get_type(iter.val);
+        if (jtype == json_type_object)
+        {
+            if (json_object_object_get_ex(iter.val, "ptr", 0) &&
+                json_object_object_get_ex(iter.val, "datatype", 0) &&
+                json_object_object_get_ex(iter.val, "ndims", 0) &&
+                json_object_object_get_ex(iter.val, "dims", 0))
+            {
+                char strptr[128];
+                void *p;
+                int i, offset, nvals=1;
+                char const *offstr = json_object_get_string(json_object_object_get(iter.val, "ptr"));
+                int datatype = json_object_get_int(json_object_object_get(iter.val, "datatype"));
+                int ndims = json_object_get_int(json_object_object_get(iter.val, "ndims"));
+                struct json_object *darr = json_object_object_get(iter.val, "dims");
+                for (i = 0; i < ndims; i++)
+                    nvals *= json_object_get_int(json_object_array_get_idx(darr, i));
+                sscanf(offstr, "%x", &offset);
+                p = malloc(nvals*db_GetMachDataSize(datatype));
+                memcpy(p, buf+offset, nvals*db_GetMachDataSize(datatype));
+                json_object_object_del(iter.val,"ptr");
+                snprintf(strptr, sizeof(strptr), "%p", p);
+                json_object_object_add(iter.val, "ptr", json_object_new_string(strptr));
+            }
+            else
+            {
+                json_object_from_binary_buf_recurse(iter.val, buf);
+            }
+        }
+    }
+}
+
+struct json_object *
+json_object_from_binary_buf(void *buf, int len)
+{
+    struct json_object *retval = json_tokener_parse((char*)buf);
+    json_object_from_binary_buf_recurse(retval, buf);
+    return retval;
+}
+
+struct json_object *
+json_object_from_binary_file(char const *filename)
+{
+    struct json_object *retval;
+    void *buf;
+    int fd;
+
+#ifndef SIZEOF_OFF64_T
+#error missing definition for SIZEOF_OFF64_T in silo_private.h
+#else
+#if SIZEOF_OFF64_T > 4
+    struct stat64 s;
+#else
+    struct stat s;
+#endif
+#endif
+
+    errno = 0;
+    memset(&s, 0, sizeof(s));
+
+#if SIZEOF_OFF64_T > 4
+    if (stat64(filename, &s) != 0 || errno != 0)
+        return 0;
+#else
+    if (stat(filename, &s) != 0 || errno != 0)
+        return 0;
+#endif
+
+    fd = open(filename, O_RDONLY);
+    if (fd < 0)
+        return 0;
+    buf = malloc(s.st_size);
+    if (read(fd, buf, (size_t) s.st_size) != (ssize_t) s.st_size)
+    {
+        free(buf);
+        return 0;
+    }
+    close(fd);
+    retval = json_object_from_binary_buf(buf, (int) s.st_size);
+    free(buf);
+
+    return retval;
+}
+
+int
+json_object_to_binary_file(char const *filename, struct json_object *obj)
+{
+    void *buf; int len; int fd;
+
+    json_object_to_binary_buf(obj, 0, &buf, &len);
+    fd = open(filename, O_CREAT|O_TRUNC|O_WRONLY, S_IRUSR|S_IWUSR);
+    write(fd, buf, len);
+    close(fd);
+    free(buf);
+    return 0;
+}
+
+int
+json_object_reconstitute_extptrs(struct json_object *obj)
+{
+    struct json_object_iter jiter;
+    struct json_object *parent_jobjs_with_extptr_members[1000];
+    char const *extptr_member_keys[1000];
+    int k, num_to_remove = 0;
+
+    json_object_object_foreachC(obj, jiter)
+    {
+        struct json_object *ptr_obj, *datatype_obj, *ndims_obj, *dims_obj, *data_obj;
+
+        struct json_object *mobj = jiter.val;
+        char const *mname = jiter.key;
+
+        if (json_object_get_type(mobj) != json_type_object)
+            continue;
+
+        if (!(json_object_object_get_ex(mobj, "ptr", &ptr_obj ) &&
+              json_object_object_get_ex(mobj, "datatype", &datatype_obj) &&
+              json_object_object_get_ex(mobj, "ndims", &ndims_obj) &&
+              json_object_object_get_ex(mobj, "dims", &dims_obj) &&
+              json_object_object_get_ex(mobj, "data", &data_obj)))
+        {
+            json_object_reconstitute_extptrs(mobj);
+            continue;
+        }
+
+        if (!(json_object_get_type(ptr_obj) == json_type_string &&
+              json_object_get_type(datatype_obj) == json_type_int &&
+              json_object_get_type(ndims_obj) == json_type_int &&
+              json_object_get_type(dims_obj) == json_type_array &&
+              json_object_get_type(data_obj) == json_type_array))
+        {
+            json_object_reconstitute_extptrs(mobj);
+            continue;
+        }
+
+        if (json_object_object_get_member_count(mobj) != 5)
+            continue;
+
+        extptr_member_keys[num_to_remove] = mname;
+        parent_jobjs_with_extptr_members[num_to_remove] = obj;
+        num_to_remove++;
+    }
+
+    for (k = 0; k < num_to_remove; k++)
+    {
+        struct json_object *ptr_obj, *datatype_obj, *ndims_obj, *dims_obj, *data_obj;
+        char *mname = strdup(extptr_member_keys[k]);
+        struct json_object *pobj = parent_jobjs_with_extptr_members[k];
+        struct json_object *extptr_obj;
+
+        json_object_object_get_ex(pobj, mname, &extptr_obj);
+        json_object_object_get_ex(extptr_obj, "ptr", &ptr_obj );
+        json_object_object_get_ex(extptr_obj, "datatype", &datatype_obj);
+        json_object_object_get_ex(extptr_obj, "ndims", &ndims_obj);
+        json_object_object_get_ex(extptr_obj, "dims", &dims_obj);
+        json_object_object_get_ex(extptr_obj, "data", &data_obj);
+
+        /* We're at an extptr object that was serialized to a 'standard' json string.
+         * So, lets reconstitute it. */
+        {
+            int i, n = 1;
+            int datatype = json_object_get_int(datatype_obj);
+            int ndims = json_object_get_int(ndims_obj);
+            int *dims = (int *) malloc(ndims * sizeof(int));
+            int jdtype = json_object_get_type(json_object_array_get_idx(data_obj, 0));
+            char *p;
+            void *pdata;
+
+            /* get the array dimension sizes */
+            for (i = 0; i < ndims; i++)
+            {
+                dims[i] = json_object_get_int(json_object_array_get_idx(dims_obj, i));
+                n *= dims[i];
+            }
+
+            /* get the array data */
+            pdata = (void *) malloc(n * db_GetMachDataSize(datatype));
+            for (i = 0, p = pdata; i < n; i++, p += db_GetMachDataSize(datatype))
+            {
+                switch (jdtype)
+                {
+                    case json_type_int:
+                    {
+                        int ival = json_object_get_int(json_object_array_get_idx(data_obj, i));
+                        if (datatype == DB_CHAR)
+                            *((char*)p) = (unsigned char) ival;
+                        else if (datatype == DB_SHORT)
+                            *((short*)p) = (short) ival;
+                        else if (datatype == DB_INT)
+                            *((int*)p) = ival;
+                        else if (datatype == DB_LONG)
+                            *((long*)p) = (long) ival;
+                        break;
+                    }
+                    case json_type_double:
+                    {
+                        double dval = json_object_get_double(json_object_array_get_idx(data_obj, i));
+                        if (datatype == DB_DOUBLE)
+                            *((double*)p) = dval;
+                        else
+                            *((float*)p) = (float) dval;
+                        break;
+                    }
+                }
+            }
+                    
+            /* delete the old object */
+            json_object_object_del(pobj, mname);
+
+            /* Add the reconstituted extptr object */
+            json_object_object_add(pobj, mname,
+                json_object_new_extptr(pdata, ndims, dims, datatype));
+
+            free(mname);
+        }
+    }
+
+    return 0;
+}
+
+#if 0
+/* Difference methods
+ *
+ * Easiest thing to develop is a thing to test equality. Given two objects, they
+ * are equal if all their sub-components are equal. But, that isn't the same as
+ * computing the difference itself.
+ *
+ * Given two json objects, what is the difference object?
+ * If both objects contain a member in common (e.g. same key/idx and value-type), diff that member
+ *     If their difference is "zero", return json_type_null
+ *     If their difference is non-zero, return a new json_object holding the difference
+ * If there is an object in one but not the other,
+ *     Ignore it or copy it to the difference object
+ *
+ * If caller wants just to 'print' the differences, then caller passes a stream
+ * or a printbuf into which the difference details are sprint'd
+ *
+ * If caller simply wants to know if the objects are different or not
+ *
+ * Options
+ *     * just return if the objecs are equal or not (e.g. check if diff is zero)
+ *         * ignoring exclusive members
+ *     * Compute a difference object
+ *         * ignoring exclusive members
+ *         * compute a 'total' difference or only map
+ *     * print the differences
+ *         * ignore exclusive members
+ *         * compute a total difference
+ *
+ * Consider the following example cases
+ *     Diffing an array of integer values (or extptr thingy)
+ *         1. stop on first diff, return false then, otherwise true
+ *         2. create a new array with zeros (json_type_null or special zero object) where diffs<tol and diffs otherwise
+ *         3. create a new array with only the diffs>tol and their indx's
+ *     Diffing an object with same name/type members
+ *         1. stop on first diff, return false then, otherwise true
+ *         2. create a new object with zeros (json_type_null or special zero object) where diffs<tol and diffs otherwise 
+ *         3. create a new object with only the different members and their names
+ *     Diffing a single primitive
+ *         1. return 1 if different otherwise 0
+ *         2. return a null or zero object if diff<tol
+ *         3. create a new primitive object with the difference
+ *     Diffing primitives of differing type
+ *         Promotion order: boolean->int->double->string
+ *                                    ^    ^
+ *                      string(int)-->|    |
+ *                      string(real)------>|
+ *         Always promote to highest and diff there
+ *     Diffing arbitrary objects
+ *         What constitutes a diff?
+ *             tolerances
+ *             ignore exclusive members (structure)
+ *             match idx/key but not type
+ *         How is diff returned?
+ *             as a bool
+ *             as an object
+ *                 modifications (e.g. map) or toleranced diffs (e.g. total), insertions, deletions
+ *             as a printbuf
+ *                 modifications (e.g. map) or toleranced diffs (e.g. total), insertions, deletions
+ *
+ *
+ *     String output might look like...
+ *     left { foo:5, bar:123.5, gorfo:{a:5, b:0.002567, c:"abc"}, q="mark", p=0}
+ *     right { foo:5, bar:123.6, gorfo:{a:5, s:41.1, b:0.002573, c:"abq"}, q="Mark", p=0}
+ *
+ *     left              right          diff          name/type
+ *     --------------------------------------------------------
+ *      5                  5              0            foo::int
+ *      123.5             123.6           0.1          bar::float
+ *                                                     gorfo::{
+ *      5                  5              0                a::int
+ *      <?>                41.1                            s::float
+ *      0.002567           0.002573       0.000006         b::float
+ *      "abc"              "abq"          "==!"            c::string
+ *                                                     }
+ *      "mark"             "Mark"         "!==="       q::string
+ *      0                  0              0            p::int
+ *
+ *      As an object... holds only the difference 'values'
+ *      {foo:0, bar:0.1, gorfo:{a:0, b:0.0006, c:"==!", additions:{s:41.1}}, q:"!===", p:0}
+ *
+ *
+ *               null     boolean     int     double     string     extpr    array     object
+ *
+ *       null     ok        REV       REV      REV        REV        REV      REV       REV
+
+ *    boolean     ok        ok        REV      REV        REV        REV      REV       REV
+
+ *        int     ok      non-zero    ok       REV        REV        REV      REV       REV
+
+ *     double     ok      non-zero    cast     ok         REV        REV      REV       REV
+
+ *     string     ok      non-empty   strtol  strtod      ok         REV      REV       REV
+
+ *      extpr     trunc   non-empty   size=1  size=1      chars      ok       REV       REV
+
+ *      array     trunc   non-empty   size=1  size=1      chars    diff       ok        REV
+
+ *     object     trunc   non-empty   size=1  size=1      ???      diff      diff       MAIN
+ *
+ *     There is a 2D array of function pointers, diff_matrix_funcs, which holds pointers
+ *     to all functions. The REV functions are just calls to the symmetric method with
+ *     left/right reversed and a flag to indicate a reversal was made.
+ *
+ *     The object/object method is main entry point for caller. The object/array and object/
+ *     object methods are also called recursively. Extptr is not a recursive call. Note that 
+ *     things like object names, depth of recursion, reversal flag, etc. need to get passed
+ *     recusively. This stuff is not appropriate for caller to worry about so need some kind
+ *     of wrapper method for caller that turns around and calls the main recursive entry
+ *     here.
+ *
+ *     An object/non-object method is a clear diff. If diff-only is desired return value, then
+ *     execution is complete at that point. If inclusive only, the execution is complete then
+ *     too. Otherwise, it would descend recursively on the object and null on the other.
+ *
+ *     When does recursion complete? When both objects' precedence <= 4; 
+ *
+ *     Need to know when diffs are strict or not (is a boolean 1 same as an int 1, depends
+ *     on strictness)?
+ *    
+ *     Naming of functions in the matrix
+ *
+ *     json_diff_<left-type>_<right-type>();
+ *
+ *     json_diff_null_null()
+ *     json_diff_null_bool(), e.g. json_diff_bool_null is a REV-wrapper to json_diff_null_bool()
+ *     json_diff_null_int()
+ *     json_diff_null_double()
+ *     json_diff_null_string()
+ *     json_diff_null_extptr()
+ *     json_diff_null_array()  will have to recurse on array members 
+ *     json_diff_null_object() will have to recurse on object members but so too for int_object
+ *         and double_object, etc. Thats a lot of duplicated code. We need to punt here.
+ *
+ *     More involved methods
+ *
+ *     json_diff_extptr_extptr() /* non-recursive but like an int/int or double/double or maybe int/double */
+ *     json_diff_extptr_array()  /* left is a 'datatype'd number; right is a json object which might be a number */
+ *     json_diff_extptr_object()
+ *     json_diff_array_array()   /* recurses on both left and right */
+ *     json_diff_array_object()  /* recurses on both left and right */
+ *     json_diff_object_object() /* recurses on both left and right */
+
+ *
+ *     Args these methods need to take...
+ *     left object, right object, left-name, right-name,
+ *     depth, mode, flags (incl rev), tolerances, retval
+ *
+ *     Caller's call to wrapper turns around and uses "LEFT-OBJECT" "RIGHT-OBJECT" names.
+ *     depth=0, mode, flags and tolerances determined by caller.
+ *
+ *     Need a way to set/push return 'value' (int 0/1, printbuf-str, object). Might be
+ *     best as macro'd code. At the point where you know you have a diff of some kind 
+ *     you then 'handle-diff' which may be an early return, printing to a buffer or
+ *     constructing 'additions'/'deletions' of an object. Macro'd code allows for 
+ *     logic handling early return to be written only once.
+ *
+ *
+ */
+
+#define HANDLE_DIFF()
+{ \
+    int *ret_intp                =                (int *) retval;
+    struct printbuf *ret_pbuf   =    (struct printbuf *) retval;
+    struct json_object *ret_obj = (struct json_object *) retval;
+
+    if (mode == json_diff_bool)
+    {
+        *ret_intp = is_diff;
+    }
+    else if (mode == json_diff_string)
+    {
+        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+        {
+            if (flags & JSON_C_DIFF_REVERSE_LR)
+            {
+            }
+            else
+            {
+                if (flags & JSON_C_DIFF_RADIX_DECIMAL)
+                    sprintbuf(ret_pbuf, "%s%-20s int    %20d%20d%20d\n", indent[depth], name, lval, rval, dval);
+                else if (flags & JSON_C_DIFF_RADIX_BINARY)
+            }
+        }
+    }
+    else if (mode == json_diff_object)
+    {
+        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+        {
+            if (flags & JSON_C_DIFF_REVERS_LR)
+            {
+            }
+            else
+            {
+                if (json_object_get_type(lobj) == json_type_null &&
+                    json_object_get_type(robj) != json_type_null)
+                {
+                    struct json_object *adds_obj;
+                    if (!json_object_object_get_ex(ret_obj, "additions", &adds_obj))
+                    {
+                        adds_obj = json_object_new_object();
+                        json_object_object_add(ret_obj, "additions", adds_obj);
+                    }
+                    
+                    /* add robj to additions */
+                    json_object_object_add(adds_obj, rkey, robj);
+                }
+                else if (json_object_get_type(lobj) != json_type_null &&
+                         json_object_get_type(robj) == json_type_null)
+                {
+                    struct json_object *dels_obj;
+                    if (!json_object_object_get_ex(ret_obj, "deletions", &dels_obj))
+                    {
+                        dels_obj = json_object_new_object();
+                        json_object_object_add(ret_obj, "deletions", dels_obj);
+                    }
+                    
+                    /* add lobj deletions */
+                    json_object_object_add(dels_obj, lkey, lobj);
+                }
+                else
+                {
+                    /* add normal */
+                    json_object_object_add(ret_obj, lkey, diff_obj);
+                }
+            }
+        }
+    }
+}
+
+void json_diff_null_null(
+    struct json_object const *lobj, char const *lkey,
+    struct json_object const *robj, char const *rkey,
+    int depth, enum json_diff_mode dmode, int flags,
+    double const tols[3], void *retval)
+{
+    HANDLE_DIFF();
+}
+
+void json_diff_int_int(
+    struct json_object const *lobj, char const *ltag,
+    struct json_object const *robj, char const *rtag,
+    int depth, enum json_diff_mode dmode, int flags,
+    double const tols[3], void *retval)
+{
+    int lval = json_object_get_int(lobj);
+    int rval = json_object_get_int(robj);
+    int dval = lval - rval;
+
+    if (flags & JSON_C_DIFF_REVERSE_LR) dval = -dval;
+
+    is_diff = DBIsDifferentLongLong(lval, rval, tols[0], tols[1], tols[2]);
+
+    HANDLE_DIFF();
+}
+
+
+
+
+
+void json_object_int_diff(
+    int depth, char const *tag,
+    struct json_object *lobj, struct json_object *robj,
+    enum json_diff_mode mode, int flags, double const tols[3],
+    void *retthing)
+{
+    int *ret_intp                =                (int *) retthing;
+    struct printbuf *ret_pbufp   =    (struct printbuf *) retthing;
+    struct json_object *ret_objp = (struct json_object *) retthing;
+    int lval, rval;
+    double abstol, reltol, reltol_eps;
+
+    if (retthing == 0) return;
+
+    if (flags & JSON_C_DIFF_ZERO_TOLS)
+        tols[0] = tols[1] = tols[2] = 0;
+
+    abstol = tols[0];
+    reltol = tols[1];
+    retol_eps = tols[2];
+
+    lval = json_object_get_int(lobj);
+    rval = json_object_get_int(robj);
+    dval = lval - rval;
+
+    is_diff = DBIsDifferentDouble(lval, rval, abstol, reltol, reltol_eps);
+
+    switch (mode) 
+    {
+        case json_diff_bool:
+            *ret_intp = is_diff;
+            return;
+        case json_diff_string:
+            if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                sprintbuf(*ret_pbp, "%s%-20s int    %20d%20d%20d\n", indent[depth], name, lval, rval, dval);
+            return;
+        case json_diff_object:
+            if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                json_object_object_add(ret_objp, name, json_object_new_int(dval));
+            return;
+    }
+}
+
+/* Return type precedence of json object according to generality of type */
+int json_object_type_precedence(struct json_object *obj)
+{
+    switch (json_object_get_type(obj))
+    {
+        case json_type_null:                return 0; /* primitive */
+        case json_type_boolean:             return 1; /* primitive */
+        case json_type_int:                 return 2; /* primitive */
+        case json_type_double:              return 3; /* primitive */
+        case json_type_string:              return 4; /* primitive */
+        case json_type_array:               return 6; /* recursive */
+        case json_type_object:
+        {
+            if (json_object_is_extptr(obj)) return 5; /* primitive */
+                                            return 7; /* recursive */
+        }
+    }
+    return -1;
+}
+
+void json_object_diff(struct json_object *lobj, struct json_object *robj,
+    enum json_diff_mode dmode, int flags, double const tols[3],
+    void *retval)
+{
+    if (retval == 0) return;
+
+    /* zero the tolerances if we need to */
+    if (flags & JSON_C_DIFF_ZERO_TOLS)
+        tols[0] = tols[1] = tols[2] = 0;
+
+    lprec = json_type_precedence(lobj);
+    rprec = json_type_precedence(robj);
+
+    /* Call correct json_object differencing function */
+    (*diff_matrix_func)(lobj, robj,
+
+
+    
+
+}
+
+void json_object_diff(
+    int depth,
+    struct json_object *lobj, char const *lnm,
+    struct json_object *robj, char const *rnm,
+    enum json_diff_mode mode, int flags, double const tols[3],
+    void *retthing)
+{
+    int *ret_intp                =                (int *) retthing;
+    struct printbuf *ret_pbufp   =    (struct printbuf *) retthing;
+    struct json_object *ret_objp = (struct json_object *) retthing;
+
+    if (json_object_is_type(lobj, json_type_object))
+    {
+        if (json_object_is_type(robj, json_type_object))
+        {
+            struct json_object_iterator liter, lend; 
+            struct json_object_iterator riter, rend; 
+
+            /* First, iterate over lobj members */
+            liter = json_object_iter_begin(lobj);
+            lend = json_object_iter_end(lobj);
+            while (!json_object_iter_equal(&liter, &lend))
+            {
+                char const *lsubnm = json_object_iter_peek_name(&liter);
+                struct json_object *lsubobj = json_object_iter_peek_value(&liter);
+                struct json_object *rsubobj;
+
+                if (json_object_object_get_ex(robj, lsubnm, &rsubojb))
+                {
+                    /* Recurse on the two object's members */
+                    json_object_diff(depth+1,lsubobj,lsubnm,rsubobj,lsubnm,mode,flags,tols,retting);
+                    if (mode == json_diff_bool && *ret_intp != 0) return;
+                }
+                else if (!(flags&JSON_DIFF_EXCLUSIVE_ONLY))
+                {
+                    if (mode == json_diff_bool)
+                    {
+                        *ret_intp = 1;
+                        return;
+                    }
+                    json_object_diff(depth+1,lsubobj,lsubnm,0,"***DEL***",mode,flags,tols,retting);
+                }
+            }
+
+            /* At this point, we've examined robj only for those names in lobj.
+             * So, now, iterate over robj members we haven't already visited.
+             * Anything we encounter at this point is treated as an 'addition.' */
+            if (!(flags&JSON_DIFF_EXCLUSIVE_ONLY))
+            {
+                riter = json_object_iter_begin(robj);
+                rend = json_object_iter_end(robj);
+                while (!json_object_iter_equal(&riter, &rend))
+                {
+                    char const *rsubnm = json_object_iter_peek_name(&riter);
+                    if (json_object_object_get_ex(lobj, rsubnm, 0)) continue;
+
+                    if (mode == json_diff_bool)
+                    {
+                        *ret_intp = 1;
+                        return;
+                    }
+                    json_object_diff(depth+1,0,"***ADD***",rsubobj,rsubnm,mode,flags,tols,retting);
+                }
+            }
+        }
+        else if (!(flags&JSON_DIFF_MIXED_TYPE))
+        {
+            if (mode == json_diff_bool)
+            {
+                *ret_intp = 1;
+                return;
+            }
+            else if (mode == json_diff_string)
+            {
+            }
+            else
+            {
+            }
+        }
+        else if (json_object_is_type(robj, json_type_array))
+        {
+        }
+        else
+        {
+        }
+    }
+    else if (json_object_is_type(lobj, json_type_array))
+    {
+        if (json_object_is_type(robj, json_type_array))
+        {
+            int llen = json_object_array_length(lobj);
+            int rlen = json_object_array_length(robj);
+            int done = 0, i = 0;
+            while (!done)
+            {
+                struct json_object *lsubobj = json_object_array_get_idx(lobj, i);
+                struct json_object *rsubobj = json_object_array_get_idx(robj, i);
+                if (i < llen && i < rlen)
+                {
+                    char subnm[32];
+                    snprintf(subnm, sizeof(subnm), "[%03d]", i);
+
+                    /* Recurse on the two object's members */
+                    json_object_diff(depth+1,lsubobj,subnm,rsubobj,subnm,mode,flags,tols,retting);
+                    if (mode == json_diff_bool && *ret_intp != 0) return;
+                }
+                else if (i < llen && !(flags&JSON_DIFF_EXCLUSIVE_ONLY)) /* We're off the end of robj array */
+                {
+                    if (mode == json_diff_bool)
+                    {
+                        *ret_intp = 1;
+                        return;
+                    }
+                    json_object_diff(depth+1,lsubobj,subnm,0,"***DEL***",mode,flags,tols,retting);
+                }
+                else if (!(flags&JSON_DIFF_EXCLUSIV_ONLY))/* We're off the end of lobj array */
+                {
+                    if (mode == json_diff_bool)
+                    {
+                        *ret_intp = 1;
+                        return;
+                    }
+                    json_object_diff(depth+1,0,"***ADD***",rsubobj,subnm,mode,flags,tols,retting);
+                }
+            }
+        }
+        else
+        {
+        }
+    }
+    else if (json_object_is_type(robj, json_type_array))
+    {
+    }
+}
+
+void json_object_object_diff(
+    int depth,
+    struct json_object *left, char const *lnm,
+    struct json_object *right, char const *rnm,
+    enum json_diff_mode mode, int flags, double const tols[3],
+    void *retthing)
+{
+
+    int *ret_intp                =                (int *) retthing;
+    struct printbuf *ret_pbufp   =    (struct printbuf *) retthing;
+    struct json_object *ret_objp = (struct json_object *) retthing;
+
+    if (retthing == 0) return;
+
+    if (flags & JSON_C_DIFF_ZERO_TOLS)
+        tols[0] = tols[1] = tols[2] = 0;
+
+    if (json_object_get_type(left) == json_object_get_type(right))
+    {
+        /* Diffing two objects of the same, primitive type is easy */
+        switch (json_object_get_type(left))
+        {
+            case json_type_null:
+            {
+                switch (mode) 
+                {
+                    case json_diff_bool:
+                        *ret_intp = 0;
+                        return;
+                    case json_diff_string:
+                        if (flags & JSON_C_DIFF_TOTAL)
+                            sprintbuf(*ret_pbp, "%s%-20s null   %20d%20d%20d\n", indent[depth], lnm, 0, 0, 0);
+                        return;
+                    case json_diff_object:
+                        if (flags & JSON_C_DIFF_TOTAL)
+                            json_object_object_add(ret_objp, lnm, json_object_new_int(0));
+                        return;
+                }
+            }
+            case json_type_bool:
+            {
+                switch (mode) 
+                {
+                    int is_diff = json_object_is_boolean_diff(left, right);
+                    case json_diff_bool:
+                        *ret_intp = is_diff;
+                        return;
+                    case json_diff_string:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                            sprintbuf(*ret_pbp, "%s%-20s bool   %20d%20d%20d\n", indent[depth],
+                                lnm, json_object_get_boolean(left), json_object_get_boolean(right),
+                                json_object_get_boolean_diff_string(left, right));
+                        return;
+                    case json_diff_object:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                            json_object_object_add(ret_objp, lnm, json_object_get_boolean_diff_object(left, right));
+                        return;
+                }
+            }
+            case json_type_int:
+            {
+                int is_diff = json_object_is_int_diff(left, right, tols[0], tols[1], tols[2]);
+                switch (mode) 
+                {
+                    case json_diff_bool:
+                        *ret_intp = is_diff;
+                        return;
+                    case json_diff_string:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                            sprintbuf(*ret_pbp, "%s%-20s int    %20d%20d%20d\n", indent[depth],
+                                lnm, json_object_get_int(left), json_object_get_int(right),
+                                json_object_get_int_diff_string(left, right, tols[0], tols[1], tols[2]));
+                    case json_diff_object:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                            json_object_object_add(ret_objp, lnm, json_object_get_int_diff_object(left, right, tols[0], tols[1], tols[2]));
+                }
+            }
+            case json_type_double:
+            {
+                int is_diff = json_object_is_double_diff(left, right, tols[0], tols[1], tols[2]);
+                switch (mode) 
+                {
+                    case json_diff_bool:
+                        *ret_intp = is_diff;
+                        return;
+                    case json_diff_string:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                            sprintbuf(*ret_pbp, "%s%-20s double %16g%16g%16g\n", indent[depth],
+                                lnm, json_object_get_double(left), json_object_get_double(right),
+                                json_object_get_double_diff_string(left, right, tols[0], tols[1], tols[2]));
+                        return;
+                    case json_diff_object:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                            json_object_object_add(ret_objp, lnm, json_object_get_double_diff_object(left, right, tols[0], tols[1], tols[2]));
+                        return;
+                }
+            }
+            case json_type_string:
+            {
+            }
+            case json_type_array:
+            {
+                int is_diff = json_object_is_array_diff(left, right, tols[0], tols[1], tols[2]);
+                switch (mode)
+                {
+                    case json_diff_bool:
+                        *ret_intp = is_diff;
+                        return;
+                    case json_diff_string:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                        {
+                            int leftcnt = json_object_array_length(left);
+                            int rightcnt = json_object_array_length(right);
+                            int mincnt = leftcnt < rightcnt ? leftcnt : rightcnt;
+                            int maxcnt = leftcnt < rightcnt ? rightcnt : leftcnt;
+                            sprintbuf(*ret_pbp, "%s%-20s array\n", indent[depth], lnm);
+                            for (i = 0 i < mincnt; i++)
+                            {
+                                char const subnm[32];
+                                json_object struct *subleft = json_object_array_get_idx(left, i);
+                                json_object struct *subright = json_object_array_get_idx(right, i);
+                                sprintf(subnm, "%s[%03d]", lnm, i);
+                                json_object_object_diff(depth+1, subleft, subright, subnm, subnm, mode, flags, tols, retthing);
+                            }
+                            if (!(flags & JSON_C_DIFF_INCLUSIVE))
+                            {
+                                for (i = mincnt; i < maxcnt; i++)
+                                {
+                                    char const subnm[32];
+                                    json_object struct *subleft = json_object_array_get_idx(left, i);
+                                    json_object struct *subright = json_object_array_get_idx(right, i);
+                                    sprintf(subnm, "%s[%03d]", lnm, i);
+                                    json_object_object_diff(depth+1, subleft, subright, subnm, subnm, mode, flags, tols, retthing);
+                                }
+                            }
+                        }
+                        return;
+                    case json_diff_object:
+                        if (is_diff || (flags & JSON_C_DIFF_TOTAL))
+                        {
+                        }
+                        return;
+                }
+            }
+            case json_type_object:
+            {
+            }
+        }
+    }
+    else if (flags & JSON_C_DIFF_MIX_PRIM_TYPE)
+    {
+
+
+
+
+
+
+    }
+    else
+    {
+    }
+
+
+
+
+
+
+    struct printbuf *pb_retval = printbuf_new();        /* prepare for pb return */
+    struct json_object *jso_retval = json_object_new(); /* prepare for obj return */
+}
+
+int json_object_get_boolean_diff(struct json_object *left, struct json_object *right)
+{
+    json_bool leftval, rightval;
+
+    if (!json_object_is_type(left, json_type_boolean) ||
+        !json_object_is_type(right, json_type_boolean))
+        return -2; /* invalid diff */
+
+    leftval = json_object_get_boolean(left);
+    rightval = json_object_get_boolean(right);
+
+    return (int) leftval - (int) rightval;
+}
+
+int json_object_get_int_diff(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    int leftval, rightval, diff;
+
+    if (!json_object_is_type(left, json_type_int) ||
+        !json_object_is_type(right, json_type_int))
+        return -INT_MAX; /* invalid diff */
+
+    leftval = json_object_get_int(left);
+    rightval = json_object_get_int(right);
+    diff = leftval - rightval;
+    if (DBIsDifferentDouble(leftval, rightval, abstol, reltol, reltol_eps))
+        return diff;
+    return 0;
+}
+
+double json_object_get_double_diff(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    double leftval, rightval, diff;
+
+    if (!json_object_is_type(left, json_type_double) ||
+        !json_object_is_type(right, json_type_double))
+        return -DBL_MAX; /* invalid diff */
+
+    leftval = json_object_get_double(left);
+    rightval = json_object_get_double(right);
+    diff = leftval - rightval;
+    if (DBIsDifferentDouble(leftval, rightval, abstol, reltol, reltol_eps))
+        return diff;
+    return 0;
+}
+
+char const *json_object_get_string_diff(struct json_object *left, struct json_object *right)
+{
+    if (!json_object_is_type(left, json_type_string) ||
+        !json_object_is_type(right, json_type_string))
+        return 0; /* invalid diff */
+
+    /* MAJOR HACK. To be consistent with rest of json-c interface, we would like to return
+     * a garbage collected string here. But, we're not going to create any new json
+     * objects here. So, our solution is to use the left operand's printbuf to hold
+     * the returned string. This is 'ok' because any future attempt to to_json_string()
+     * on the left operand will reset the left opeand's printbuf before stringifying the
+     * left operand json object. */
+    printbuf_reset(left->_pb);
+
+    {
+        char const *leftval  = json_object_get_string(left);
+        int leftlen  = json_object_get_string_len(left);
+        char const *rightval = json_object_get_string(right);
+        int rightlen = json_object_get_string_len(right);
+        int i, hasdiffs = 0, hasextras = 0, maxlen;
+
+        maxlen = leftlen < rightlen ? rightlen : leftlen;
+
+        for (i = 0; i < maxlen; i++)
+        {
+            char leftc  = i < leftlen  ? leftval[i]  : '<';
+            char rightc = i < rightlen ? rightval[i] : '>';
+
+            if (i < leftlen && i < rightlen)
+            {
+                if (leftc == rightc)
+                {
+                    sprintfbuf(left->_pb, "=");
+                }
+                else
+                {
+                    hasdiffs = 1;
+                    sprintfbuf(left->_pb, "!");
+                }
+            }
+            else
+            {
+                if (hasextras == 0)
+                    hasextras = i;
+                if (i < leftlen)
+                    sprintfbuf(left->_pb, "%c", hasdiffs ? '<' : leftc);
+                else
+                    sprintfbuf(left->_pb, "%c", hasdiffs ? '>' : rightc);
+            }
+        }
+
+        if (!hasdiffs && !hasextras)
+        {
+            printbuf_reset(left->_pb);
+            return "";
+        }
+
+        return left->_pb->buf;
+    }
+}
+
+struct json_object *json_object_array_get_idx_diff(
+    struct json_object *left, struct json_object *right, int idx,
+    double abstol, double reltol, double reltol_eps)
+{
+    struct json_object *leftidx, *rightidx;
+
+    if (!json_object_is_type(left, json_type_array) ||
+        !json_object_is_type(right, json_type_array))
+        return json_type_null; /* invalid diff */
+
+    if (idx >= json_object_array_length(left) ||
+        idx >= json_object_array_length(right))
+        return json_type_null; /* invalid diff */
+
+    leftidx = json_object_array_get_idx(left, idx);
+    rightidx = json_object_array_get_idx(right, idx);
+
+    return json_object_object_get_diff(leftidx, rightidx);
+}
+
+int json_object_is_boolean_diff(struct json_object *left, struct json_object *right)
+{
+    return json_object_get_boolean_diff(left, right) == 0;
+}
+
+int json_object_is_int_diff(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    return json_object_get_int_diff(left, right, abstol, reltol, reltol_eps) == 0;
+}
+
+int json_object_is_double_diff(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    return json_object_get_double_diff(left, right, abstol, reltol, reltol_eps) == 0;
+}
+
+int json_object_is_string_diff(struct json_object *left, struct json_object *right)
+{
+    char const *diffval = json_object_get_string_diff(left, right);
+    if (!diffval) return 1;
+    if (strlen(diffval) == 0) return 0;
+    return 1;
+}
+
+char const *
+json_object_get_boolean_diff_string(struct json_object *left, struct json_object *right)
+{
+    int diffval = json_object_get_boolean_diff(left, right);
+    /* MAJOR HACK. To be consistent with rest of json-c interface, we would like to return
+     * a garbage collected string here. But, we're not going to create any new json
+     * objects here. So, our solution is to use the left operand's printbuf to hold
+     * the returned string. This is 'ok' because any future attempt to to_json_string()
+     * on the left operand will reset the left opeand's printbuf before stringifying the
+     * left operand json object. */
+    printbuf_reset(left->_pb);
+    if (diffval == -2)
+        sprintbuf(left->_pb, "incompatible objects");
+    else if (diffval != 0)
+        sprintbuf(left->_pb, "%d", diffval);
+    else
+        sprintbuf(left->_pb, "");
+    return left->_pb->buf;
+}
+
+char const *
+json_object_get_int_diff_string(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    int diffval = json_object_get_int_diff(left, right, abstol, reltol, reltol_eps);
+    /* MAJOR HACK. To be consistent with rest of json-c interface, we would like to return
+     * a garbage collected string here. But, we're not going to create any new json
+     * objects here. So, our solution is to use the left operand's printbuf to hold
+     * the returned string. This is 'ok' because any future attempt to to_json_string()
+     * on the left operand will reset the left opeand's printbuf before stringifying the
+     * left operand json object. */
+    printbuf_reset(left->_pb);
+    if (diffval == -INT_MAX)
+        sprintbuf(left->_pb, "incompatible objects");
+    else if (diffval != 0)
+        sprintbuf(left->_pb, "%d", diffval);
+    else
+        sprintbuf(left->_pb, "");
+    return left->_pb->buf;
+}
+
+char const *
+json_object_get_double_diff_string(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    double diffval = json_object_get_double_diff(left, right, abstol, reltol, reltol_eps);
+    /* MAJOR HACK. To be consistent with rest of json-c interface, we would like to return
+     * a garbage collected string here. But, we're not going to create any new json
+     * objects here. So, our solution is to use the left operand's printbuf to hold
+     * the returned string. This is 'ok' because any future attempt to to_json_string()
+     * on the left operand will reset the left opeand's printbuf before stringifying the
+     * left operand json object. */
+    printbuf_reset(left->_pb);
+    if (diffval == -DBL_MAX)
+        sprintbuf(left->_pb, "incompatible objects");
+    else if (diffval != 0)
+        sprintbuf(left->_pb, "%16g", diffval);
+    else
+        sprintbuf(left->_pb, "");
+    return left->_pb->buf;
+}
+
+char const *
+json_object_get_string_diff_string(struct json_object *left, struct json_object *right)
+{
+    return json_object_get_string_diff(left, right);
+}
+
+
+
+
+struct json_object *
+json_object_get_boolean_diff_object(struct json_object *left, struct json_object *right)
+{
+    return json_object_new_boolean(json_object_get_boolean_diff(left, right));
+}
+
+struct json_object *
+json_object_get_int_diff_object(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    return json_object_new_int(json_object_get_int_diff(left, right, abstol, reltol, reltol_eps));
+}
+
+struct json_object *
+json_object_get_double_diff_object(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    return json_object_new_double(json_object_get_double_diff(left, right, abstol, reltol, reltol_eps));
+}
+
+struct json_object *
+json_object_get_string_diff_object(struct json_object *left, struct json_object *right)
+{
+    return json_object_new_string(json_object_get_string_diff(left, right));
+}
+
+struct json_object *json_object_get_array_diff(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    if (!json_object_is_type(left, json_type_array) ||
+        !json_object_is_type(right, json_type_array))
+        return json_object_invalid; /* invalid diff */
+
+    leftlen = json_object_get_array_length(left);
+    rightlen = json_object_get_array_length(right);
+    if (leftlen > rightlen)
+    {
+        maxlen = leftlen;
+        minlen = rightlen;
+    }
+    else
+    {
+        maxlen = rightlen;
+        minlen = leftlen;
+    }
+
+    retval = json_object_new_array();
+
+    for (i = 0; i < minlen; i++)
+    {
+        json_object_array_add(retval, json_object_object_get_diff());
+    }
+
+}
+
+struct json_object *json_object_object_get_diff(struct json_object *left, struct json_object *right,
+    double abstol, double reltol, double reltol_eps)
+{
+    if (json_object_get_type(left) != json_object_get_type(right))
+        return json_object_invalid; /* invalid diff */
+
+    switch (json_object_get_type(left))
+    {
+        case json_type_null:
+        {
+            return json_type_null;
+        }
+        case json_type_boolean:
+        {
+             return json_object_get_boolean_diff_object(left, right);
+        }
+        case json_type_int:
+        {
+            return json_object_get_int_diff_object(left, right, abstol, reltol, reltol_eps);
+        }
+        case json_type_double:
+        {
+            return json_object_get_double_diff_object(left, right, abstol, reltol, reltol_eps);
+        }
+        case json_type_string:
+        {
+            return json_object_get_string_diff_object(left, right);
+        }
+        case json_type_array:
+        {
+            return json_object_get_array_diff_object(left, right, abstol, reltol, reltol_eps);
+        }
+        case json_type_object:
+        {
+            /* check for extptr case here */
+        }
+    }
+}
+
+
+int json_object_diff_object(struct json_object *objL, struct json_object *objR)
+{
+    struct json_object_iterator jiter, jend; 
+
+    jiter = json_object_iter_begin(objL);
+    jend = json_object_iter_end(objL);
+    while (!json_object_iter_equal(&jiter, &jend))
+    {
+        char const *mnameL = json_object_iter_peek_name(&jiter);
+        struct json_object *subobjL = json_object_iter_peek_value(&jiter);
+        struct json_object *subobjR;
+
+        if (!json_object_object_get_ex(objR, mnameL, &subobjR))
+
+    }
+}
+#endif
+
+/* Return a Silo object as a Json Object. Bulk data passed using funky exptr */
+PUBLIC struct json_object *
+DBGetJsonObject(DBfile *dbfile, char const *objname)
+{
+    int i;
+    struct json_object *jobj = json_object_new_object();
+    DBobject *sobj = DBGetObject(dbfile, objname);
+    if (!sobj) return jobj;
+
+    json_object_object_add(jobj, "silo_name", json_object_new_string(sobj->name));
+    json_object_object_add(jobj, "silo_type", json_object_new_int(DBGetObjtypeTag(sobj->type)));
+
+    for (i = 0; i < sobj->ncomponents; i++)
+    {
+        char cat_comp_name[1024];
+        snprintf(cat_comp_name, sizeof(cat_comp_name), "%s_%s", objname, sobj->comp_names[i]);
+             if (!strncmp(sobj->pdb_names[i], "'<i>", 4))
+        {
+            json_object_object_add(jobj, sobj->comp_names[i],
+                json_object_new_int(strtol(sobj->pdb_names[i]+4, NULL, 0)));
+        }
+        else if (!strncmp(sobj->pdb_names[i], "'<f>", 4))
+        {
+            json_object_object_add(jobj, sobj->comp_names[i],
+                json_object_new_double(strtod(sobj->pdb_names[i]+4, NULL)));
+        }
+        else if (!strncmp(sobj->pdb_names[i], "'<d>", 4))
+        {
+            json_object_object_add(jobj, sobj->comp_names[i],
+                json_object_new_double(strtod(sobj->pdb_names[i]+4, NULL)));
+        }
+        else if (!strncmp(sobj->pdb_names[i], "'<s>", 4))
+        {
+            char tmp[256];
+            size_t len = strlen(sobj->pdb_names[i])-5;
+            memset(tmp, 0, sizeof(tmp));
+            strncpy(tmp, sobj->pdb_names[i]+4, len);
+            if (DBInqVarExists(dbfile, tmp))
+            {
+                if (DBInqVarType(dbfile, tmp) == DB_VARIABLE)
+                {
+                    void *p;
+                    int ndims, dims[32];
+                    int dtype = DBGetVarType(dbfile, tmp);
+                    ndims = DBGetVarDims(dbfile, tmp, sizeof(dims)/sizeof(dims[0]), dims);
+                    p = DBGetVar(dbfile, tmp);
+                    json_object_object_add(jobj, sobj->comp_names[i],
+                        json_object_new_extptr(p, ndims, dims, dtype));
+                }
+                else
+                {
+                    json_object_object_add(jobj, sobj->comp_names[i],
+                        DBGetJsonObject(dbfile, tmp));
+                }
+            }
+            else
+            {
+                json_object_object_add(jobj, sobj->comp_names[i],
+                    json_object_new_string(tmp));
+            }
+        }
+        else if (DBInqVarType(dbfile, cat_comp_name) == DB_VARIABLE)
+        {
+            void *p;
+            int ndims, dims[32];
+            int dtype = DBGetVarType(dbfile, cat_comp_name);
+            ndims = DBGetVarDims(dbfile, cat_comp_name, sizeof(dims)/sizeof(dims[0]), dims);
+            p = DBGetVar(dbfile, cat_comp_name);
+            json_object_object_add(jobj, sobj->comp_names[i],
+                json_object_new_extptr(p, ndims, dims, dtype));
+        }
+        else if (DBInqVarExists(dbfile, sobj->comp_names[i]))
+        {
+            json_object_object_add(jobj, sobj->comp_names[i],
+                DBGetJsonObject(dbfile, sobj->comp_names[i]));
+        }
+        else /* some component we do not know how to handle */
+        {
+            json_object_object_add(jobj, sobj->comp_names[i],
+                json_object_new_string("<unknown>"));
+        }
+    }
+    DBFreeObject(sobj);
+    return jobj;
+}
+
+int DBWriteJsonObject(DBfile *dbfile, struct json_object *jobj)
+{
+    static int cnt = 0;
+    int retval;
+    DBobject *sobj;
+    char objnm[256];
+    struct json_object_iterator jiter, jend; 
+    memset(objnm, 0, sizeof(objnm));
+    if (json_object_object_get_ex(jobj, "silo_type", 0) &&
+        json_object_object_get_ex(jobj, "silo_name", 0))
+    {
+        json_object *silo_type_obj = json_object_object_get(jobj, "silo_type");
+        json_object *silo_name_obj = json_object_object_get(jobj, "silo_name");
+        strncpy(objnm, json_object_get_string(silo_name_obj), sizeof(objnm));
+        sobj = DBMakeObject(objnm,
+            json_object_get_int(silo_type_obj),
+            json_object_object_length(jobj)+10
+        );
+    }
+    else
+    {
+        snprintf(objnm, sizeof(objnm), "anon_%d", cnt++);
+        sobj = DBMakeObject(objnm, DB_USERDEF, json_object_object_length(jobj)+10);
+    }
+    jiter = json_object_iter_begin(jobj);
+    jend = json_object_iter_end(jobj);
+
+    /* use foreachC macro instead */
+    while (!json_object_iter_equal(&jiter, &jend))
+    {
+        struct json_object *mobj = json_object_iter_peek_value(&jiter);
+        char const *mname = json_object_iter_peek_name(&jiter);
+        json_type jtype = json_object_get_type(mobj);
+
+        switch (jtype)
+        {
+            case json_type_array:
+            case json_type_null: break;
+
+            case json_type_boolean:
+            case json_type_int:
+            {
+                int val = 0;
+                if (jtype == json_type_boolean && json_object_get_boolean(mobj))
+                    val = 1;
+                else
+                    val = json_object_get_int(mobj);
+                DBAddIntComponent(sobj, mname, val);
+                break;
+            }
+            case json_type_double:
+            {
+                DBAddDblComponent(sobj, mname, json_object_get_double(mobj));
+                break;
+            }
+            case json_type_string:
+            {
+                if (strlen(json_object_get_string(mobj)))
+                    DBAddStrComponent(sobj, mname, json_object_get_string(mobj));
+                break;
+            }
+
+/* warning STRDUPS ARE LEAKS */
+
+            case json_type_object: /* must be extptr array reference */
+            {
+                if (json_object_object_get_ex(mobj, "ptr", 0) &&
+                    json_object_object_get_ex(mobj, "datatype", 0) &&
+                    json_object_object_get_ex(mobj, "ndims", 0) &&
+                    json_object_object_get_ex(mobj, "dims", 0))
+                {
+                    int i;
+                    long dims[32];
+                    void *p = json_object_get_strptr(json_object_object_get(mobj, "ptr"));
+                    int datatype = json_object_get_int(json_object_object_get(mobj, "datatype"));
+                    int ndims = json_object_get_int(json_object_object_get(mobj, "ndims"));
+                    struct json_object *darr = json_object_object_get(mobj, "dims");
+                    for (i = 0; i < ndims; i++)
+                        dims[i] = (long) json_object_get_int(json_object_array_get_idx(darr, i));
+                    DBWriteComponent(dbfile, sobj, mname, strdup(objnm),
+                        db_GetDatatypeString(datatype), p, ndims, dims);
+                }
+                else
+                {
+                    json_object *silo_type_subobj=0, *silo_name_subobj=0;
+                    int has_silo_type, has_silo_name;
+                    char tmp[32];
+                    has_silo_type = json_object_object_get_ex(mobj, "silo_type", &silo_type_subobj);
+                    has_silo_name = json_object_object_get_ex(mobj, "silo_name", &silo_name_subobj);
+                    snprintf(tmp, sizeof(tmp), "anon_%d", cnt);
+
+                    if (has_silo_name && has_silo_type)
+                        DBAddStrComponent(sobj, mname, strdup(json_object_get_string(silo_name_subobj)));
+                    else
+                        DBAddStrComponent(sobj, mname, strdup(tmp));
+                    DBWriteJsonObject(dbfile, mobj);
+                }
+
+                break;
+            }
+        }
+        json_object_iter_next(&jiter);
+    }
+    retval = DBWriteObject(dbfile, sobj, 0);
+    DBFreeObject(sobj);
+    return retval;
+}
diff --git a/src/silo/silo_json.h b/src/silo/silo_json.h
new file mode 100644
index 0000000..e9f9c66
--- /dev/null
+++ b/src/silo/silo_json.h
@@ -0,0 +1,120 @@
+/*
+Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
+LLNL-CODE-425250.
+All rights reserved.
+
+This file is part of Silo. For details, see silo.llnl.gov.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+   * Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the disclaimer below.
+   * Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the disclaimer (as noted
+     below) in the documentation and/or other materials provided with
+     the distribution.
+   * Neither the name of the LLNS/LLNL nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+THIS SOFTWARE  IS PROVIDED BY  THE COPYRIGHT HOLDERS  AND CONTRIBUTORS
+"AS  IS" AND  ANY EXPRESS  OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
+LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A  PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN  NO  EVENT SHALL  LAWRENCE
+LIVERMORE  NATIONAL SECURITY, LLC,  THE U.S.  DEPARTMENT OF  ENERGY OR
+CONTRIBUTORS BE LIABLE FOR  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR  CONSEQUENTIAL DAMAGES  (INCLUDING, BUT NOT  LIMITED TO,
+PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS  OF USE,  DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER  IN CONTRACT, STRICT LIABILITY,  OR TORT (INCLUDING
+NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT  OF THE USE  OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+This work was produced at Lawrence Livermore National Laboratory under
+Contract No.  DE-AC52-07NA27344 with the DOE.
+
+Neither the  United States Government nor  Lawrence Livermore National
+Security, LLC nor any of  their employees, makes any warranty, express
+or  implied,  or  assumes  any  liability or  responsibility  for  the
+accuracy, completeness,  or usefulness of  any information, apparatus,
+product, or  process disclosed, or  represents that its use  would not
+infringe privately-owned rights.
+
+Any reference herein to  any specific commercial products, process, or
+services by trade name,  trademark, manufacturer or otherwise does not
+necessarily  constitute or imply  its endorsement,  recommendation, or
+favoring  by  the  United  States  Government  or  Lawrence  Livermore
+National Security,  LLC. The views  and opinions of  authors expressed
+herein do not necessarily state  or reflect those of the United States
+Government or Lawrence Livermore National Security, LLC, and shall not
+be used for advertising or product endorsement purposes.
+*/
+#ifndef SILO_JSON_H
+#define SILO_JSON_H
+
+#include <json/json.h>
+
+#include <silo_exports.h>
+
+#define JSON_C_TO_STRING_EXTPTR_AS_BINARY (JSON_C_TO_STRING_PRETTY<<1)
+#define JSON_C_TO_STRING_EXTPTR_SKIP (JSON_C_TO_STRING_EXTPTR_AS_BINARY<<1)
+
+#define JSON_C_DIFF_ZERO_TOLS      0x00000001 /* ignore tolerances (e.g. set to zero) */
+#define JSON_C_DIFF_INCLUSIVE_ONLY 0x00000002 /* ignore exclusive members */
+#define JSON_C_DIFF_MIX_PRIM_TYPE  0x00000004 /* allow diffs of mixed primitive type */
+#define JSON_C_DIFF_TOTAL          0x00000008 /* compute a total difference including even non-differing terms. */
+#define JSON_C_DIFF_REVERSE_LR     0x00000010 /* INTERNAL USE ONLY (left/right operands are reversed) */
+#define JSON_C_DIFF_RADIX_BINARY   0x00000020 /* radix at which to print numerical values 2,8,10,16 */
+#define JSON_C_DIFF_RADIX_OCTAL    0x00000040 /* radix at which to print numerical values 2,8,10,16 */
+#define JSON_C_DIFF_RADIX_DECIMAL  0x00000080 /* radix at which to print numerical values 2,8,10,16 */
+#define JSON_C_DIFF_RADIX_HEX      0x00000100 /* radix at which to print numerical values 2,8,10,16 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum json_diff_mode { json_diff_bool, json_diff_string, json_diff_object };
+
+/* A 'strptr' json object is just a string representation
+ * (e.g. '0xFFFE60A42') of a void pointer */
+SILO_API extern struct json_object * json_object_new_strptr(void *p);
+SILO_API extern void *               json_object_get_strptr(struct json_object *o);
+
+/* An 'extptr' json object is an ensemble of 4 json objects, 
+ * (int) datatype, (int) ndims, (array) dims, (strptr) void *,
+ * that represent an array of data externally referenced from
+ * the json object. */
+SILO_API extern struct json_object * json_object_new_extptr(void *p, int ndims, int const *dims, int datatype);
+SILO_API extern void                 json_object_extptr_delete(struct json_object *jso);
+
+/* Inspect members of an extptr object */
+SILO_API int                         json_object_is_extptr(struct json_object *obj);
+SILO_API extern int                  json_object_get_extptr_datatype(struct json_object *obj);
+SILO_API extern int                  json_object_get_extptr_ndims(struct json_object *obj);
+SILO_API extern int                  json_object_get_extptr_dims_idx(struct json_object *obj, int idx);
+SILO_API extern void *               json_object_get_extptr_ptr(struct json_object *obj);
+SILO_API extern int                  json_object_reconstitute_extptrs(struct json_object *obj);
+
+/* Methods to serialize a json object to a binary buffer. Note that the
+ * json-c library itself can serialize Silo's json objects to a string using
+ * json_object_to_json_string(). */
+SILO_API extern int                  json_object_to_binary_buf(struct json_object *obj, int flags, void **buf, int *len);
+SILO_API extern struct json_object * json_object_from_binary_buf(void *buf, int len);
+
+/* Methods to read/write serial, json object to a file */
+SILO_API extern int                  json_object_to_binary_file(char const *filename, struct json_object *obj);
+SILO_API extern struct json_object * json_object_from_binary_file(char const *filename);
+
+SILO_API extern int json_object_diff(struct json_object *objL, struct json_object json_objR);
+
+/* Methods to read/write json objects as Silo objects */
+SILO_API extern int                 DBWriteJsonObject(DBfile *dbfile, struct json_object *jobj);
+SILO_API extern struct json_object *DBGetJsonObject(DBfile *, char const *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/silo/silo_ns.c b/src/silo/silo_ns.c
index 3da3524..56ebae8 100644
--- a/src/silo/silo_ns.c
+++ b/src/silo/silo_ns.c
@@ -175,7 +175,6 @@ BuildExprTree(const char **porig)
                 char typec = *p;
                 char tokbuf[129];
                 char *tp = tokbuf;
-                DBexprnode *subtree;
                 p++;
                 while (*p != '[')
                     *tp++ = *p++;
@@ -183,14 +182,6 @@ BuildExprTree(const char **porig)
                 *tp = '\0';
                 errno = 0;
                 tree = UpdateTree(tree, typec, 0, tokbuf);
-                p++;
-                subtree = BuildExprTree(&p);
-                if (tree->left == 0)
-                    tree->left = subtree;
-                else if (tree->right == 0)
-                    tree->right = subtree;
-                else
-                    free(subtree); /* should never hit this case */
                 break;
             }
 
@@ -202,7 +193,7 @@ BuildExprTree(const char **porig)
                 break;
             }
 
-            case '(':
+            case '(': case '[':
             {
                 DBexprnode *subtree;
                 p++;
@@ -257,11 +248,14 @@ BuildExprTree(const char **porig)
 }
 
 /* very simple circular cache for a handful of embedded strings */
-static int SaveInternalString(DBnamescheme *ns, const char *sval)
+static int SaveInternalString(DBnamescheme const *ns, const char *sval)
 {
-    int modn = ns->nembed++ % DB_MAX_EXPSTRS;
-    FREE(ns->embedstrs[modn]);
-    ns->embedstrs[modn] = STRDUP(sval);
+    /* The modn/embedstrs portion of a namescheme is 'internal' state
+       allowed to disobey const rules */
+    DBnamescheme *non_const_ns = (DBnamescheme*) ns;
+    int modn = non_const_ns->nembed++ % DB_MAX_EXPSTRS;
+    FREE(non_const_ns->embedstrs[modn]);
+    non_const_ns->embedstrs[modn] = STRDUP(sval);
     return modn;
 }
 
@@ -285,7 +279,7 @@ static char * SaveReturnedString(char const * retstr)
 }
 
 static int
-EvalExprTree(DBnamescheme *ns, DBexprnode *tree, int n)
+EvalExprTree(DBnamescheme const *ns, DBexprnode *tree, int n)
 {
     if (tree == 0)
         return 0;
@@ -319,16 +313,23 @@ EvalExprTree(DBnamescheme *ns, DBexprnode *tree, int n)
         {
             vc = EvalExprTree(ns, tree->left, n);
             tree = tree->right;
+            if (vc) 
+                vl = EvalExprTree(ns, tree->left, n);
+            else
+                vr = EvalExprTree(ns, tree->right, n);
+        }
+        else
+        {
+            vl = EvalExprTree(ns, tree->left, n);
+            vr = EvalExprTree(ns, tree->right, n);
         }
-        vl = EvalExprTree(ns, tree->left, n);
-        vr = EvalExprTree(ns, tree->right, n);
         switch (tree->type)
         {
             case '+': return vl + vr;
             case '-': return vl - vr;
             case '*': return vl * vr;
-            case '/': return vl / vr;
-            case '%': return vl % vr;
+            case '/': return (vr != 0 ? vl / vr : 1);
+            case '%': return (vr != 0 ? vl % vr : 1);
             case '|': return vl | vr;
             case '&': return vl & vr;
             case '^': return vl ^ vr;
@@ -339,7 +340,7 @@ EvalExprTree(DBnamescheme *ns, DBexprnode *tree, int n)
 }
 
 PUBLIC DBnamescheme *
-DBMakeNamescheme(const char *fmt, ...)
+DBMakeNamescheme(char const *fmt, ...)
 {
     va_list ap;
     int i, j, k, n, pass, ncspecs, done, saved_narrefs;
@@ -495,7 +496,7 @@ DBMakeNamescheme(const char *fmt, ...)
                         {
                             char **tmp = NULL;
                             rv->arrsizes[k] = -1; /* initialize to 'unknown size' */
-                            tmp = DBStringListToStringArray((char*)rv->arrvals[k], &(rv->arrsizes[k]), 0, 0);
+                            tmp = DBStringListToStringArray((char*)rv->arrvals[k], &(rv->arrsizes[k]), 0);
                             FREE(rv->arrvals[k]);
                             rv->arrvals[k] = tmp;
                         }
@@ -535,7 +536,7 @@ DBMakeNamescheme(const char *fmt, ...)
 }
 
 PUBLIC const char *
-DBGetName(DBnamescheme *ns, int natnum)
+DBGetName(DBnamescheme const *ns, int natnum)
 {
     char *currentExpr, *tmpExpr;
     static char retval[1024];
diff --git a/src/silo/silo_private.h b/src/silo/silo_private.h
index 0659680..cf50cab 100644
--- a/src/silo/silo_private.h
+++ b/src/silo/silo_private.h
@@ -76,9 +76,6 @@ be used for advertising or product endorsement purposes.
 #include <unistd.h> /*for access() F_OK, R_OK */
 #endif
 #endif
-/* define USE_CONST_DB_CONSTARR so that when we compile Silo
-   we are sure to get the CONST versions of DB_CONSTARR symbols */
-#define USE_CONST_DB_CONSTARR
 #include "silo.h"
 
 /*
@@ -314,7 +311,7 @@ typedef struct context_t {
                            jstat = 1 ;                                        \
                            if (NM && jdbfile && !jdbfile->pub.pathok) {       \
                               char const *jr ;                                \
-                              jold = context_switch (jdbfile,(char const *)NM,&jr) ;\
+                              jold = context_switch (jdbfile,NM,&jr) ;        \
                               if (!jold) longjmp (SILO_Globals.Jstk->jbuf, -1) ;\
                               NM = jr ;                                       \
                            }                                                  \
@@ -387,7 +384,7 @@ typedef struct context_t {
 #define REALLOC(P,T,N)  REALLOC_N((P),(T),(N))
 #define REALLOC_N(P,T,N)        ((T*)((N)>0?realloc((P),(size_t)((N)*sizeof(T))):0))
 #define FREE(M)         if(M){free(M);(M)=NULL;}
-#define STRDUP(S)               safe_strdup((S))
+#define STRDUP(S)               _db_safe_strdup((S))
 #define STRNDUP(S,N)            db_strndup((S),(N))
 
 #define SW_strndup(S,N) db_strndup((S),(N))
@@ -413,6 +410,26 @@ typedef struct context_t {
  */
 #define DB_ISOPEN       0x01          /*database is open; ID is in use */
 
+#define db_SetMissingValueForGet(DST, SRC) \
+{                                          \
+    DST = SRC;                             \
+    if (DST == DB_MISSING_VALUE_NOT_SET)   \
+        DST = 0.0;                         \
+    else if (DST == 0.0)                   \
+        DST = DB_MISSING_VALUE_NOT_SET;    \
+}
+
+#define db_SetMissingValueForPut(DST, SRC) \
+{                                          \
+    if (SRC != DB_MISSING_VALUE_NOT_SET)   \
+    {                                      \
+        if (SRC == 0)                      \
+            DST = DB_MISSING_VALUE_NOT_SET;\
+        else                               \
+            DST = SRC;                     \
+    }                                      \
+}
+
 /*
  * Global data for Material
  */
@@ -469,6 +486,9 @@ struct _pm {
     int            _llong_gnodeno;
     int            _conserved;
     int            _extensive;
+    double         _missing_value;
+    char          *_ghost_node_labels;
+    char         **_alt_nodenum_vars;
 
     /*These used only by NetCDF driver */
     int            _dim_ndims;
@@ -491,7 +511,7 @@ struct _qm {
     int            _dtime_set;
     float          _align[3];
     int            _cycle;
-    int            _coordsys;
+    int            _coord_sys;
     int            _facetype;
     int            _hi_offset[3];
     int            _lo_offset[3];
@@ -523,6 +543,11 @@ struct _qm {
     char         **_region_pnames;
     int            _conserved;
     int            _extensive;
+    double         _missing_value;
+    char          *_ghost_node_labels;
+    char          *_ghost_zone_labels;
+    char         **_alt_nodenum_vars;
+    char         **_alt_zonenum_vars;
 
     /* These are probably only used by the pdb driver */
     char           _nm_dims[64];
@@ -567,7 +592,7 @@ struct _um {
     int            _lo_offset;
     int            _hi_offset_set;
     int            _lo_offset_set;
-    int            _coordsys;
+    int            _coord_sys;
     int            _topo_dim;
     int            _facetype;
     int            _ndims;
@@ -604,6 +629,9 @@ struct _um {
     int            _llong_gnodeno;
     int            _conserved;
     int            _extensive;
+    double         _missing_value;
+    char          *_ghost_node_labels;
+    char         **_alt_nodenum_vars;
 };
 
 /*
@@ -642,6 +670,8 @@ struct _csgm {
     int            _disjoint_mode;
     int            _conserved;
     int            _extensive;
+    double         _missing_value;
+    char         **_alt_nodenum_vars;
 };
 
 /*
@@ -650,6 +680,8 @@ struct _csgm {
 struct _uzl {
     int           *_gzoneno;
     int            _llong_gzoneno;
+    char          *_ghost_zone_labels;
+    char         **_alt_zonenum_vars;
 };
 
 /*
@@ -658,6 +690,8 @@ struct _uzl {
 struct _phzl {
     int           *_gzoneno;
     int            _llong_gzoneno;
+    char          *_ghost_zone_labels;
+    char         **_alt_zonenum_vars;
 };
 
 /*
@@ -666,6 +700,7 @@ struct _phzl {
 struct _csgzl {
     char         **_regnames;
     char         **_zonenames;
+    char         **_alt_zonenum_vars;
 };
 
 /*
@@ -719,6 +754,9 @@ struct _mm {
     int           *_empty_list;
     int            _empty_cnt;
     int            _repr_block_idx;
+    double         _missing_value;
+    char         **_alt_zonenum_vars;
+    char         **_alt_nodenum_vars;
 };
 
 /*
@@ -731,6 +769,8 @@ struct _cu {
    char         *_units[2] ;
     int          _guihide;
    char         *_reference ;
+    int          _coord_sys ;
+    double       _missing_value;
 };
 
 /*
@@ -795,7 +835,7 @@ typedef struct filter_t {
 
 /* Namespace struct for Silo's global variables */
 typedef struct SILO_Globals_t {
-    long dataReadMask;
+    unsigned long long dataReadMask;
     int allowOverwrites;
     int allowEmptyObjects;
     int enableChecksums;
@@ -842,7 +882,7 @@ INTERNAL int db_GetMachDataSize (int);
 INTERNAL char *DBGetObjtypeName (int);
 INTERNAL char *db_strndup (const char *, int);
 INTERNAL char *db_GetDatatypeString (int);
-INTERNAL int db_GetDatatypeID (char *);
+INTERNAL int db_GetDatatypeID (char const * const);
 INTERNAL int db_perror (char const *, int, char const *);
 INTERNAL void _DBQQCalcStride (int *, int *, int, int);
 INTERNAL void _DBQMSetStride (DBquadmesh *);
@@ -856,16 +896,16 @@ INTERNAL int db_ListDir2 (DBfile *, char **, int, int, char **,
                               int *);
 INTERNAL int CSGM_CalcExtents (int, int, int, const int*,
                                  const void *, double *, double *);
-INTERNAL int _DBQMCalcExtents (DB_DTPTR2, int, int *, int *, int *, int,
+INTERNAL int _DBQMCalcExtents (DBVCP2_t, int, int const *, int const *, int const *, int,
                                    int, void *, void *);
-INTERNAL int UM_CalcExtents (DB_DTPTR2, int, int, int, void *,
+INTERNAL int UM_CalcExtents (DBVCP2_t, int, int, int, void *,
                                  void *);
-INTERNAL int _DBSubsetMinMax2 (DB_DTPTR1, int, float *, float *, int,
+INTERNAL int _DBSubsetMinMax2 (DBVCP1_t, int, float *, float *, int,
                                    int, int, int, int);
 INTERNAL int _DBSubsetMinMax3 (float *, int, float *, float *, int, int,
                                int, int, int, int, int, int);
-INTERNAL int db_ProcessOptlist (int, const DBoptlist *const);
-INTERNAL int db_VariableNameValid(char *);
+INTERNAL int db_ProcessOptlist (int, DBoptlist const * const);
+INTERNAL int db_VariableNameValid(char const *);
 INTERNAL int db_SplitShapelist (DBucdmesh *um);
 INTERNAL int db_ResetGlobalData_Csgmesh ();
 INTERNAL int db_ResetGlobalData_Mrgtree();
@@ -892,8 +932,10 @@ INTERNAL int   db_relative_path ( char *pathname );
 INTERNAL char *db_unsplit_path ( const db_Pathname *p );
 INTERNAL db_Pathname *db_split_path ( const char *pathname );
 INTERNAL const int *db_get_used_file_options_sets_ids();
-char   *safe_strdup (const char *);
+//char   *_db_safe_strdup (const char *);
 #undef strdup /*prevent a warning for the following definition*/
-#define strdup(s) safe_strdup(s)
+#define strdup(s) _db_safe_strdup(s)
+
+INTERNAL int db_StringListToStringArrayMBOpt(char *strList, char ***strArray, char **alloc_flag, int nblocks);
 
 #endif /* !SILO_PRIVATE_H */
diff --git a/src/taurus/Makefile.in b/src/taurus/Makefile.in
index 4604c24..b8af95e 100644
--- a/src/taurus/Makefile.in
+++ b/src/taurus/Makefile.in
@@ -181,6 +181,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +230,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/src/taurus/silo_taurus.c b/src/taurus/silo_taurus.c
index dbc7e8e..c30ece0 100644
--- a/src/taurus/silo_taurus.c
+++ b/src/taurus/silo_taurus.c
@@ -69,7 +69,7 @@ static char   *dir_names[] =
 {"almansi", "green", "inf_strain",
  "nodal", "shell", "stress", "rates"};
 
-PRIVATE int db_taur_cd(TAURUSfile *taurus, char *path);
+PRIVATE int db_taur_cd(TAURUSfile *taurus, char const *path);
 PRIVATE int db_taur_pwd(TAURUSfile *taurus, char *path);
 INTERNAL void db_taur_extface(int *znodelist, int nnodes,
                  int nzones, int *matlist, int **fnodelist,
@@ -118,7 +118,7 @@ db_taur_InitCallbacks (DBfile *dbfile)
     dbfile->pub.r_var = db_taur_ReadVar;
     dbfile->pub.newtoc = db_taur_NewToc;
     dbfile->pub.module = db_taur_Filters;
-    dbfile->pub.inqvartype = (DBObjectType(*)(struct DBfile *, char*)) db_taur_InqVartype;
+    dbfile->pub.inqvartype = db_taur_InqVartype;
 }
 
 /*-------------------------------------------------------------------------
@@ -231,7 +231,7 @@ get_next_int (void)
  *-------------------------------------------------------------------------*/
 /* ARGSUSED */
 PUBLIC DBfile *
-db_taur_Open(char *name, int mode, int subtype)
+db_taur_Open(char const *name, int mode, int subtype)
 {
     TAURUSfile    *taurus;
     DBfile_taur   *dbfile;
@@ -348,7 +348,7 @@ db_taur_GetDir(DBfile *_dbfile, char *path)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_taur_SetDir(DBfile *_dbfile, char *path)
+db_taur_SetDir(DBfile *_dbfile, char const *path)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     char          *me = "db_taur_SetDir";
@@ -580,7 +580,7 @@ db_taur_NewToc(DBfile *_dbfile)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_taur_GetComponent(DBfile *_dbfile, char *obj_name, char *comp_name)
+db_taur_GetComponent(DBfile *_dbfile, char const *obj_name, char const *comp_name)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -650,7 +650,7 @@ db_taur_GetComponent(DBfile *_dbfile, char *obj_name, char *comp_name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBmaterial *
-db_taur_GetMaterial(DBfile *_dbfile, char *mat_name)
+db_taur_GetMaterial(DBfile *_dbfile, char const *mat_name)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -789,7 +789,7 @@ db_taur_GetMaterial(DBfile *_dbfile, char *mat_name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBucdmesh *
-db_taur_GetUcdmesh(DBfile *_dbfile, char *mesh_name)
+db_taur_GetUcdmesh(DBfile *_dbfile, char const *mesh_name)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1139,7 +1139,7 @@ db_taur_GetUcdmesh(DBfile *_dbfile, char *mesh_name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK DBucdvar *
-db_taur_GetUcdvar(DBfile *_dbfile, char *var_name)
+db_taur_GetUcdvar(DBfile *_dbfile, char const *var_name)
 {
     int            i, j;
     int            nhex, nshell;
@@ -1182,7 +1182,7 @@ db_taur_GetUcdvar(DBfile *_dbfile, char *var_name)
 
     if (SILO_Globals.dataReadMask & DBUVData)
     {
-        uv->vals = (DB_DTPTR*) ALLOC_N(float *, 1);
+        uv->vals = (void **)ALLOC_N(void*, 1);
         if (taurus_readvar(taurus, var_name, &(((float **)(uv->vals))[0]), &uv->nels,
                            &uv->centering, meshname) < 0) {
             db_perror("taurus_readvar", E_CALLFAIL, me);
@@ -1197,7 +1197,7 @@ db_taur_GetUcdvar(DBfile *_dbfile, char *var_name)
          */
         if (taurus->activ >= 1000 && taurus->activ <= 1005) {
             if (uv->centering != 0) {
-                buf = uv->vals[0];
+                buf = (float *)uv->vals[0];
                 if (strcmp (meshname, "hs_mesh") == 0) {
                     for (i = 0, j = 0; i < taurus->nhex; i++) {
                         if (taurus->hex_activ [i] != 0) {
@@ -1274,7 +1274,7 @@ db_taur_GetUcdvar(DBfile *_dbfile, char *var_name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK void *
-db_taur_GetVar(DBfile *_dbfile, char *varname)
+db_taur_GetVar(DBfile *_dbfile, char const *varname)
 {
     void          *ptr;
     char          *me = "db_taur_GetVar";
@@ -1315,7 +1315,7 @@ db_taur_GetVar(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_taur_GetVarByteLength(DBfile *_dbfile, char *varname)
+db_taur_GetVarByteLength(DBfile *_dbfile, char const *varname)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1370,7 +1370,7 @@ db_taur_GetVarByteLength(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_taur_GetVarLength(DBfile *_dbfile, char *varname)
+db_taur_GetVarLength(DBfile *_dbfile, char const *varname)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1424,7 +1424,7 @@ db_taur_GetVarLength(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_taur_InqMeshname(DBfile *_dbfile, char *var_name, char *mesh_name)
+db_taur_InqMeshname(DBfile *_dbfile, char const *var_name, char *mesh_name)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1514,7 +1514,7 @@ db_taur_InqMeshname(DBfile *_dbfile, char *var_name, char *mesh_name)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_taur_InqMeshtype(DBfile *_dbfile, char *mesh_name)
+db_taur_InqMeshtype(DBfile *_dbfile, char const *mesh_name)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1596,8 +1596,8 @@ db_taur_InqMeshtype(DBfile *_dbfile, char *mesh_name)
  *
  *-------------------------------------------------------------------------
  */
-SILO_CALLBACK int
-db_taur_InqVartype(DBfile *_dbfile, char *varname)
+SILO_CALLBACK DBObjectType 
+db_taur_InqVartype(DBfile *_dbfile, char const *varname)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1610,7 +1610,7 @@ db_taur_InqVartype(DBfile *_dbfile, char *varname)
         char *path = 0;
         int   vartype = DB_INVALID_OBJECT;
         int   changeDir = 0;
-        char *var = varname + pos;
+        char const *var = varname + pos;
         while(*var != '/' && var != varname)
             --var;
         /* If we have a slash in the name then we have a directory and 
@@ -1641,10 +1641,11 @@ db_taur_InqVartype(DBfile *_dbfile, char *varname)
         if(changeDir)
             db_taur_cd(taurus, pwd);
 
-        return vartype;
+        return (DBObjectType)vartype;
     }
     
-    return db_perror(varname, E_NOTFOUND, me);
+    db_perror(varname, E_NOTFOUND, me);
+    return DB_INVALID_OBJECT;
 }
 
 /*----------------------------------------------------------------------
@@ -1664,7 +1665,7 @@ db_taur_InqVartype(DBfile *_dbfile, char *varname)
  *--------------------------------------------------------------------*/
 /* ARGSUSED */
 SILO_CALLBACK int
-db_taur_InqVarExists(DBfile *_dbfile, char *varname)
+db_taur_InqVarExists(DBfile *_dbfile, char const *varname)
 {
     if (strcmp(varname, "time") == 0) {
         return (1);
@@ -1716,7 +1717,7 @@ db_taur_InqVarExists(DBfile *_dbfile, char *varname)
  *-------------------------------------------------------------------------
  */
 SILO_CALLBACK int
-db_taur_ReadVar(DBfile *_dbfile, char *varname, void *ptr)
+db_taur_ReadVar(DBfile *_dbfile, char const *varname, void *ptr)
 {
     DBfile_taur   *dbfile = (DBfile_taur *) _dbfile;
     TAURUSfile    *taurus = dbfile->taurus;
@@ -1769,7 +1770,7 @@ db_taur_ReadVar(DBfile *_dbfile, char *varname, void *ptr)
  *-------------------------------------------------------------------------
  */
 PRIVATE int
-db_taur_cd(TAURUSfile *taurus, char *path)
+db_taur_cd(TAURUSfile *taurus, char const *path)
 {
     int            i;
     int            state;
diff --git a/src/taurus/silo_taurus_private.h b/src/taurus/silo_taurus_private.h
index 35ed5c5..5fa6063 100644
--- a/src/taurus/silo_taurus_private.h
+++ b/src/taurus/silo_taurus_private.h
@@ -76,19 +76,19 @@ typedef struct DBfile_taur {
 #ifndef SILO_NO_CALLBACKS
 SILO_CALLBACK int db_taur_Close(DBfile *);
 SILO_CALLBACK int db_taur_GetDir(DBfile *, char *);
-SILO_CALLBACK int db_taur_SetDir(DBfile *, char *);
-SILO_CALLBACK void *db_taur_GetComponent(DBfile *, char *, char *);
-SILO_CALLBACK int db_taur_InqMeshname(DBfile *, char *, char *);
-SILO_CALLBACK int db_taur_InqVarExists(DBfile *, char *);
-SILO_CALLBACK int db_taur_InqMeshtype(DBfile *, char *);
-SILO_CALLBACK int db_taur_InqVartype(DBfile *, char *);
-SILO_CALLBACK int db_taur_ReadVar(DBfile *, char *, void *);
-SILO_CALLBACK DBmaterial *db_taur_GetMaterial(DBfile *, char *);
-SILO_CALLBACK DBucdmesh *db_taur_GetUcdmesh(DBfile *, char *);
-SILO_CALLBACK DBucdvar *db_taur_GetUcdvar(DBfile *, char *);
-SILO_CALLBACK void *db_taur_GetVar(DBfile *, char *);
-SILO_CALLBACK int db_taur_GetVarByteLength(DBfile *, char *);
-SILO_CALLBACK int db_taur_GetVarLength(DBfile *, char *);
+SILO_CALLBACK int db_taur_SetDir(DBfile *, char const *);
+SILO_CALLBACK void *db_taur_GetComponent(DBfile *, char const *, char const *);
+SILO_CALLBACK int db_taur_InqMeshname(DBfile *, char const *, char *);
+SILO_CALLBACK int db_taur_InqVarExists(DBfile *, char const *);
+SILO_CALLBACK int db_taur_InqMeshtype(DBfile *, char const *);
+SILO_CALLBACK DBObjectType db_taur_InqVartype(DBfile *, char const *);
+SILO_CALLBACK int db_taur_ReadVar(DBfile *, char const *, void *);
+SILO_CALLBACK DBmaterial *db_taur_GetMaterial(DBfile *, char const *);
+SILO_CALLBACK DBucdmesh *db_taur_GetUcdmesh(DBfile *, char const *);
+SILO_CALLBACK DBucdvar *db_taur_GetUcdvar(DBfile *, char const *);
+SILO_CALLBACK void *db_taur_GetVar(DBfile *, char const *);
+SILO_CALLBACK int db_taur_GetVarByteLength(DBfile *, char const *);
+SILO_CALLBACK int db_taur_GetVarLength(DBfile *, char const *);
 SILO_CALLBACK int db_taur_Filters(DBfile *, FILE *);
 SILO_CALLBACK int db_taur_NewToc(DBfile *);
 
@@ -99,12 +99,12 @@ SILO_CALLBACK int db_taur_NewToc(DBfile *);
  * by the Taurus device driver.
  *-------------------------------------------------------------------------
  */
-extern TAURUSfile *db_taur_open(char *);
+extern TAURUSfile *db_taur_open(char const *);
 extern int db_taur_close(TAURUSfile *);
 extern void init_coord_info(TAURUSfile *);
 extern void init_mesh_info(TAURUSfile *);
 extern void init_zone_info(TAURUSfile *);
-extern int taurus_readvar(TAURUSfile *, char *, float **, int *, int *,
+extern int taurus_readvar(TAURUSfile *, char const *, float **, int *, int *,
                           char *);
 extern void db_taur_extface(int *, int, int, int *, int **, int *, int **);
 
diff --git a/src/taurus/taurus.c b/src/taurus/taurus.c
index b6aa022..c3df634 100644
--- a/src/taurus/taurus.c
+++ b/src/taurus/taurus.c
@@ -1592,7 +1592,7 @@ taurus_readblockvar (TAURUSfile *taurus, int var_id, int val_id, float *var)
  *-------------------------------------------------------------------------
  */
 TAURUSfile *
-db_taur_open (char *basename)
+db_taur_open (char const *basename)
 {
     int            fd;
     int            loc, size;
@@ -2289,7 +2289,7 @@ init_zone_info (TAURUSfile *taurus)
  *-------------------------------------------------------------------------
  */
 int
-taurus_readvar (TAURUSfile *taurus, char *varname, float **var, int *length,
+taurus_readvar (TAURUSfile *taurus, char const *varname, float **var, int *length,
                 int *center, char *meshname)
 {
     int            i;
diff --git a/src/unknown/Makefile.in b/src/unknown/Makefile.in
index 17821e3..b3857ff 100644
--- a/src/unknown/Makefile.in
+++ b/src/unknown/Makefile.in
@@ -181,6 +181,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -229,9 +230,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/svn_bin/Makefile.in b/svn_bin/Makefile.in
index 91d5ed6..894db8c 100644
--- a/svn_bin/Makefile.in
+++ b/svn_bin/Makefile.in
@@ -157,6 +157,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -205,9 +206,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 317401e..f0da5c0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -83,6 +83,7 @@ EXTRA_DIST= \
  Make_ioperf \
  ioperf_tests \
  std.c \
+ bcastopen.c \
  zeros.dat \
  $(check_SCRIPTS) \
  $(check_DATA)
@@ -117,26 +118,34 @@ if HDF5_DRV_NEEDED
 else
   LDADD = ../src/libsilo.la
 endif
+if JSON_NEEDED
+  LDADD += ../tools/json/json-c-0.10/libjson.la
+endif
 
 # paths look at install directories before sources
 AM_CPPFLAGS = \
- -I$(srcdir)/../src/pdb \
- -I$(srcdir)/../src/score \
  -I$(builddir)/../src/silo \
  -I$(srcdir)/../src/silo \
  -I$(includedir)
 #quad_CPPFLAGS = $(AM_CPPFLAGS)
 PDBTESTS =
 if INSTALL_LITE_HEADERS
-testpdb_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS)
-pdbtst_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS)
-PDBTESTS += testpdb pdbtst
+ testpdb_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS) -I../src/pdb -I../src/score
+ pdbtst_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS) -I../src/pdb -I../src/score
+ PDBTESTS += testpdb pdbtst
+endif
+JSONTESTS =
+if JSON_NEEDED
+ json_CPPFLAGS = -I$(prefix)/json/include $(AM_CPPFLAGS)
+ JSONTESTS += json
 endif
 #TestReadMask_CPPFLAGS = $(AM_CPPFLAGS)
+mk_nasf_pdb_CPPFLAGS = $(AM_CPPFLAGS) -I../src/pdb -I../src/score
 AM_FFLAGS = $(AM_CPPFLAGS)
+AM_FCFLAGS = $(AM_CPPFLAGS)
 
 HDF5PROGS=compression grab mk_nasf_h5
-FCPROGS= arrayf77 curvef77 matf77 pointf77 quadf77 ucdf77 testallf77 \
+FCPROGS= arrayf77 arrayf90 curvef77 matf77 pointf77 quadf77 ucdf77 testallf77 \
          csgmesh
 PROGS=array dir extface multi_test partial_io point quad simple ucd \
       ucdsamp3 testall obj onehex oneprism onepyramid onetet subhex \
@@ -144,9 +153,11 @@ PROGS=array dir extface multi_test partial_io point quad simple ucd \
       cpz1plt group_test listtypes alltypes wave multi_file polyzl csg \
       rocket mmadjacency largefile version namescheme efcentering \
       mk_nasf_pdb ioperf arbpoly2d readstuff mat3d_3across merge_block \
-      empty majorder $(PDBTESTS)
+      empty majorder realloc_obj_and_opts $(PDBTESTS) $(JSONTESTS)
 
 dir_SOURCES = dir.c testlib.c
+listtypes_SOURCES = listtypes.c listtypes_main.c
+bcastopen_SOURCES = bcastopen.c bcastopen_test.c
 quad_SOURCES = quad.c testlib.c
 rocket_SOURCES = rocket.cxx
 rocket_LDFLAGS = -ldl
@@ -170,6 +181,7 @@ EXTRA_ioperf_DEPENDENCIES = ioperf_silo.la ioperf_hdf5.la ioperf_pdb.la ioperf_s
 ioperf_LDFLAGS = -ldl
 ioperf_CXXFALGS = -rdynamic
 # the '-rpath /nowhere' is some trick to force libtool to produce a shared lib
+ioperf_pdb_la_CPPFLAGS = $(AM_CPPFLAGS) -I../src/pdb -I../src/score
 ioperf_silo_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 ioperf_hdf5_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 ioperf_pdb_la_LDFLAGS = -module -avoid-version -rpath /nowhere
@@ -226,7 +238,9 @@ check_PROGRAMS = \
  testfs \
  empty \
  majorder \
- $(PDBTESTS)
+ realloc_obj_and_opts \
+ $(PDBTESTS) \
+ $(JSONTESTS)
 
 # Deal with need to use c++ linker whenever we've got C++
 # sources compiled with the silo library and the fact that
@@ -280,6 +294,7 @@ if CXX_LINK_NEEDED
  nodist_EXTRA_version_SOURCES = dummy.cxx
  nodist_EXTRA_namescheme_SOURCES = dummy.cxx
  nodist_EXTRA_arrayf77_SOURCES = dummy.cxx
+ nodist_EXTRA_arrayf90_SOURCES = dummy.cxx
  nodist_EXTRA_curvef77_SOURCES = dummy.cxx
  nodist_EXTRA_matf77_SOURCES = dummy.cxx
  nodist_EXTRA_pointf77_SOURCES = dummy.cxx
@@ -296,6 +311,8 @@ if CXX_LINK_NEEDED
  nodist_EXTRA_testfs_SOURCES = dummy.cxx
  nodist_EXTRA_empty_SOURCES = dummy.cxx
  nodist_EXTRA_majorder_SOURCES = dummy.cxx
+ nodist_EXTRA_realloc_obj_and_opts_SOURCES = dummy.cxx
+ nodist_EXTRA_json_SOURCES = dummy.cxx
 endif
 
 
@@ -316,6 +333,8 @@ if FORTRAN_NEEDED
   check_PROGRAMS += $(FCPROGS)
   arrayf77_SOURCES = arrayf77.f
   arrayf77_LDADD = $(LDADD) $(FCLIBS)
+  arrayf90_SOURCES = arrayf90.f90
+  arrayf90_LDADD = $(LDADD) $(FCLIBS)
   curvef77_SOURCES = curvef77.f
   curvef77_LDADD = $(LDADD) $(FCLIBS)
   matf77_SOURCES = matf77.f
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 26ef13a..d773c07 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -95,7 +95,9 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
- at INSTALL_LITE_HEADERS_TRUE@am__append_1 = testpdb pdbtst
+ at JSON_NEEDED_TRUE@am__append_1 = ../tools/json/json-c-0.10/libjson.la
+ at INSTALL_LITE_HEADERS_TRUE@am__append_2 = testpdb pdbtst
+ at JSON_NEEDED_TRUE@am__append_3 = json
 check_PROGRAMS = arbpoly$(EXEEXT) arbpoly2d$(EXEEXT) array$(EXEEXT) \
 	extface$(EXEEXT) multi_test$(EXEEXT) partial_io$(EXEEXT) \
 	point$(EXEEXT) group_test$(EXEEXT) listtypes$(EXEEXT) \
@@ -111,13 +113,14 @@ check_PROGRAMS = arbpoly$(EXEEXT) arbpoly2d$(EXEEXT) array$(EXEEXT) \
 	dir$(EXEEXT) quad$(EXEEXT) version$(EXEEXT) \
 	namescheme$(EXEEXT) efcentering$(EXEEXT) mk_nasf_pdb$(EXEEXT) \
 	ioperf$(EXEEXT) readstuff$(EXEEXT) testfs$(EXEEXT) \
-	empty$(EXEEXT) majorder$(EXEEXT) $(am__EXEEXT_2) \
-	$(am__EXEEXT_4) $(am__EXEEXT_6)
- at HDF5_DRV_NEEDED_TRUE@am__append_2 = $(HDF5PROGS)
- at HDF5_DRV_NEEDED_TRUE@am__append_3 = $(HDF5PROGS)
- at HDF5_DRV_NEEDED_TRUE@am__append_4 = $(HDF5CKLTLIBS)
- at FORTRAN_NEEDED_TRUE@am__append_5 = $(FCPROGS)
- at FORTRAN_NEEDED_TRUE@am__append_6 = $(FCPROGS)
+	empty$(EXEEXT) majorder$(EXEEXT) realloc_obj_and_opts$(EXEEXT) \
+	$(am__EXEEXT_2) $(am__EXEEXT_4) $(am__EXEEXT_6) \
+	$(am__EXEEXT_8)
+ at HDF5_DRV_NEEDED_TRUE@am__append_4 = $(HDF5PROGS)
+ at HDF5_DRV_NEEDED_TRUE@am__append_5 = $(HDF5PROGS)
+ at HDF5_DRV_NEEDED_TRUE@am__append_6 = $(HDF5CKLTLIBS)
+ at FORTRAN_NEEDED_TRUE@am__append_7 = $(FCPROGS)
+ at FORTRAN_NEEDED_TRUE@am__append_8 = $(FCPROGS)
 subdir = tests
 DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -146,7 +149,7 @@ ioperf_hdf5_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 @HDF5_DRV_NEEDED_TRUE at am_ioperf_hdf5_la_rpath =
 ioperf_pdb_la_LIBADD =
 ioperf_pdb_la_SOURCES = ioperf_pdb.c
-ioperf_pdb_la_OBJECTS = ioperf_pdb.lo
+ioperf_pdb_la_OBJECTS = ioperf_pdb_la-ioperf_pdb.lo
 ioperf_pdb_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ioperf_pdb_la_LDFLAGS) $(LDFLAGS) -o $@
@@ -177,43 +180,60 @@ rocket_silo_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
 @INSTALL_LITE_HEADERS_TRUE at am__EXEEXT_1 = testpdb$(EXEEXT) \
 @INSTALL_LITE_HEADERS_TRUE@	pdbtst$(EXEEXT)
 am__EXEEXT_2 = $(am__EXEEXT_1)
-am__EXEEXT_3 = compression$(EXEEXT) grab$(EXEEXT) mk_nasf_h5$(EXEEXT)
- at HDF5_DRV_NEEDED_TRUE@am__EXEEXT_4 = $(am__EXEEXT_3)
-am__EXEEXT_5 = arrayf77$(EXEEXT) curvef77$(EXEEXT) matf77$(EXEEXT) \
-	pointf77$(EXEEXT) quadf77$(EXEEXT) ucdf77$(EXEEXT) \
-	testallf77$(EXEEXT) csgmesh$(EXEEXT)
- at FORTRAN_NEEDED_TRUE@am__EXEEXT_6 = $(am__EXEEXT_5)
+ at JSON_NEEDED_TRUE@am__EXEEXT_3 = json$(EXEEXT)
+am__EXEEXT_4 = $(am__EXEEXT_3)
+am__EXEEXT_5 = compression$(EXEEXT) grab$(EXEEXT) mk_nasf_h5$(EXEEXT)
+ at HDF5_DRV_NEEDED_TRUE@am__EXEEXT_6 = $(am__EXEEXT_5)
+am__EXEEXT_7 = arrayf77$(EXEEXT) arrayf90$(EXEEXT) curvef77$(EXEEXT) \
+	matf77$(EXEEXT) pointf77$(EXEEXT) quadf77$(EXEEXT) \
+	ucdf77$(EXEEXT) testallf77$(EXEEXT) csgmesh$(EXEEXT)
+ at FORTRAN_NEEDED_TRUE@am__EXEEXT_8 = $(am__EXEEXT_7)
 TestReadMask_SOURCES = TestReadMask.c
 TestReadMask_OBJECTS = TestReadMask.$(OBJEXT)
 TestReadMask_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@TestReadMask_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@TestReadMask_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@TestReadMask_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@TestReadMask_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 alltypes_SOURCES = alltypes.c
 alltypes_OBJECTS = alltypes.$(OBJEXT)
 alltypes_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@alltypes_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@alltypes_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@alltypes_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@alltypes_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 arbpoly_SOURCES = arbpoly.c
 arbpoly_OBJECTS = arbpoly.$(OBJEXT)
 arbpoly_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@arbpoly_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@arbpoly_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@arbpoly_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@arbpoly_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 arbpoly2d_SOURCES = arbpoly2d.c
 arbpoly2d_OBJECTS = arbpoly2d.$(OBJEXT)
 arbpoly2d_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@arbpoly2d_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@arbpoly2d_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@arbpoly2d_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@arbpoly2d_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 array_SOURCES = array.c
 array_OBJECTS = array.$(OBJEXT)
 array_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@array_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@array_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@array_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@array_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__arrayf77_SOURCES_DIST = arrayf77.f
 @FORTRAN_NEEDED_TRUE at am_arrayf77_OBJECTS = arrayf77.$(OBJEXT)
 arrayf77_OBJECTS = $(am_arrayf77_OBJECTS)
 am__DEPENDENCIES_1 =
 @FORTRAN_NEEDED_TRUE at arrayf77_DEPENDENCIES = $(LDADD) \
 @FORTRAN_NEEDED_TRUE@	$(am__DEPENDENCIES_1)
+am__arrayf90_SOURCES_DIST = arrayf90.f90
+ at FORTRAN_NEEDED_TRUE@am_arrayf90_OBJECTS = arrayf90.$(OBJEXT)
+arrayf90_OBJECTS = $(am_arrayf90_OBJECTS)
+ at FORTRAN_NEEDED_TRUE@arrayf90_DEPENDENCIES = $(LDADD) \
+ at FORTRAN_NEEDED_TRUE@	$(am__DEPENDENCIES_1)
 am__compression_SOURCES_DIST = compression.c
 @HDF5_DRV_NEEDED_TRUE at am_compression_OBJECTS = compression.$(OBJEXT)
 compression_OBJECTS = $(am_compression_OBJECTS)
@@ -221,13 +241,17 @@ compression_OBJECTS = $(am_compression_OBJECTS)
 cpz1plt_SOURCES = cpz1plt.c
 cpz1plt_OBJECTS = cpz1plt.$(OBJEXT)
 cpz1plt_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@cpz1plt_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@cpz1plt_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@cpz1plt_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@cpz1plt_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 csg_SOURCES = csg.c
 csg_OBJECTS = csg.$(OBJEXT)
 csg_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@csg_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@csg_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@csg_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@csg_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__csgmesh_SOURCES_DIST = csgmesh.f
 @FORTRAN_NEEDED_TRUE at am_csgmesh_OBJECTS = csgmesh.$(OBJEXT)
 csgmesh_OBJECTS = $(am_csgmesh_OBJECTS)
@@ -241,23 +265,31 @@ curvef77_OBJECTS = $(am_curvef77_OBJECTS)
 am_dir_OBJECTS = dir.$(OBJEXT) testlib.$(OBJEXT)
 dir_OBJECTS = $(am_dir_OBJECTS)
 dir_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@dir_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@dir_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@dir_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@dir_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 efcentering_SOURCES = efcentering.c
 efcentering_OBJECTS = efcentering.$(OBJEXT)
 efcentering_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@efcentering_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@efcentering_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@efcentering_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@efcentering_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 empty_SOURCES = empty.c
 empty_OBJECTS = empty.$(OBJEXT)
 empty_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@empty_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@empty_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@empty_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@empty_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 extface_SOURCES = extface.c
 extface_OBJECTS = extface.$(OBJEXT)
 extface_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@extface_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@extface_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@extface_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@extface_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__grab_SOURCES_DIST = grab.c
 @HDF5_DRV_NEEDED_TRUE at am_grab_OBJECTS = grab.$(OBJEXT)
 grab_OBJECTS = $(am_grab_OBJECTS)
@@ -265,37 +297,55 @@ grab_OBJECTS = $(am_grab_OBJECTS)
 group_test_SOURCES = group_test.c
 group_test_OBJECTS = group_test.$(OBJEXT)
 group_test_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@group_test_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@group_test_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@group_test_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@group_test_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 ioperf_SOURCES = ioperf.c
 ioperf_OBJECTS = ioperf.$(OBJEXT)
 ioperf_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@ioperf_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@ioperf_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@ioperf_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@ioperf_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 ioperf_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ioperf_LDFLAGS) $(LDFLAGS) -o $@
+json_SOURCES = json.c
+json_OBJECTS = json-json.$(OBJEXT)
+json_LDADD = $(LDADD)
+ at HDF5_DRV_NEEDED_FALSE@json_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@json_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 largefile_SOURCES = largefile.c
 largefile_OBJECTS = largefile.$(OBJEXT)
 largefile_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@largefile_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@largefile_DEPENDENCIES = ../src/libsiloh5.la
-listtypes_SOURCES = listtypes.c
-listtypes_OBJECTS = listtypes.$(OBJEXT)
+ at HDF5_DRV_NEEDED_FALSE@largefile_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@largefile_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
+am_listtypes_OBJECTS = listtypes.$(OBJEXT) listtypes_main.$(OBJEXT)
+listtypes_OBJECTS = $(am_listtypes_OBJECTS)
 listtypes_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@listtypes_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@listtypes_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@listtypes_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@listtypes_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 majorder_SOURCES = majorder.c
 majorder_OBJECTS = majorder.$(OBJEXT)
 majorder_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@majorder_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@majorder_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@majorder_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@majorder_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 mat3d_3across_SOURCES = mat3d_3across.c
 mat3d_3across_OBJECTS = mat3d_3across.$(OBJEXT)
 mat3d_3across_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@mat3d_3across_DEPENDENCIES = ../src/libsilo.la
+ at HDF5_DRV_NEEDED_FALSE@mat3d_3across_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
 @HDF5_DRV_NEEDED_TRUE at mat3d_3across_DEPENDENCIES =  \
- at HDF5_DRV_NEEDED_TRUE@	../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_TRUE@	../src/libsiloh5.la $(am__append_1)
 am__matf77_SOURCES_DIST = matf77.f
 @FORTRAN_NEEDED_TRUE at am_matf77_OBJECTS = matf77.$(OBJEXT)
 matf77_OBJECTS = $(am_matf77_OBJECTS)
@@ -304,82 +354,112 @@ matf77_OBJECTS = $(am_matf77_OBJECTS)
 merge_block_SOURCES = merge_block.c
 merge_block_OBJECTS = merge_block.$(OBJEXT)
 merge_block_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@merge_block_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@merge_block_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@merge_block_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@merge_block_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__mk_nasf_h5_SOURCES_DIST = mk_nasf_h5.c
 @HDF5_DRV_NEEDED_TRUE at am_mk_nasf_h5_OBJECTS = mk_nasf_h5.$(OBJEXT)
 mk_nasf_h5_OBJECTS = $(am_mk_nasf_h5_OBJECTS)
 @HDF5_DRV_NEEDED_TRUE at mk_nasf_h5_DEPENDENCIES = $(LDADD)
 mk_nasf_pdb_SOURCES = mk_nasf_pdb.c
-mk_nasf_pdb_OBJECTS = mk_nasf_pdb.$(OBJEXT)
+mk_nasf_pdb_OBJECTS = mk_nasf_pdb-mk_nasf_pdb.$(OBJEXT)
 mk_nasf_pdb_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@mk_nasf_pdb_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@mk_nasf_pdb_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@mk_nasf_pdb_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@mk_nasf_pdb_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 mmadjacency_SOURCES = mmadjacency.c
 mmadjacency_OBJECTS = mmadjacency.$(OBJEXT)
 mmadjacency_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@mmadjacency_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@mmadjacency_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@mmadjacency_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@mmadjacency_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 multi_file_SOURCES = multi_file.c
 multi_file_OBJECTS = multi_file.$(OBJEXT)
 multi_file_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@multi_file_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@multi_file_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@multi_file_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@multi_file_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 multi_test_SOURCES = multi_test.c
 multi_test_OBJECTS = multi_test.$(OBJEXT)
 multi_test_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@multi_test_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@multi_test_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@multi_test_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@multi_test_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 multispec_SOURCES = multispec.c
 multispec_OBJECTS = multispec.$(OBJEXT)
 multispec_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@multispec_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@multispec_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@multispec_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@multispec_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 namescheme_SOURCES = namescheme.c
 namescheme_OBJECTS = namescheme.$(OBJEXT)
 namescheme_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@namescheme_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@namescheme_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@namescheme_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@namescheme_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 obj_SOURCES = obj.c
 obj_OBJECTS = obj.$(OBJEXT)
 obj_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@obj_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@obj_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@obj_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@obj_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 onehex_SOURCES = onehex.c
 onehex_OBJECTS = onehex.$(OBJEXT)
 onehex_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@onehex_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@onehex_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@onehex_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@onehex_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 oneprism_SOURCES = oneprism.c
 oneprism_OBJECTS = oneprism.$(OBJEXT)
 oneprism_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@oneprism_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@oneprism_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@oneprism_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@oneprism_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 onepyramid_SOURCES = onepyramid.c
 onepyramid_OBJECTS = onepyramid.$(OBJEXT)
 onepyramid_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@onepyramid_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@onepyramid_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@onepyramid_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@onepyramid_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 onetet_SOURCES = onetet.c
 onetet_OBJECTS = onetet.$(OBJEXT)
 onetet_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@onetet_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@onetet_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@onetet_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@onetet_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 partial_io_SOURCES = partial_io.c
 partial_io_OBJECTS = partial_io.$(OBJEXT)
 partial_io_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@partial_io_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@partial_io_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@partial_io_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@partial_io_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 pdbtst_SOURCES = pdbtst.c
 pdbtst_OBJECTS = pdbtst-pdbtst.$(OBJEXT)
 pdbtst_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@pdbtst_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@pdbtst_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@pdbtst_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@pdbtst_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 point_SOURCES = point.c
 point_OBJECTS = point.$(OBJEXT)
 point_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@point_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@point_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@point_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@point_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__pointf77_SOURCES_DIST = pointf77.f
 @FORTRAN_NEEDED_TRUE at am_pointf77_OBJECTS = pointf77.$(OBJEXT)
 pointf77_OBJECTS = $(am_pointf77_OBJECTS)
@@ -388,13 +468,17 @@ pointf77_OBJECTS = $(am_pointf77_OBJECTS)
 polyzl_SOURCES = polyzl.c
 polyzl_OBJECTS = polyzl.$(OBJEXT)
 polyzl_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@polyzl_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@polyzl_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@polyzl_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@polyzl_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am_quad_OBJECTS = quad.$(OBJEXT) testlib.$(OBJEXT)
 quad_OBJECTS = $(am_quad_OBJECTS)
 quad_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@quad_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@quad_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@quad_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@quad_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__quadf77_SOURCES_DIST = quadf77.f
 @FORTRAN_NEEDED_TRUE at am_quadf77_OBJECTS = quadf77.$(OBJEXT)
 quadf77_OBJECTS = $(am_quadf77_OBJECTS)
@@ -403,46 +487,69 @@ quadf77_OBJECTS = $(am_quadf77_OBJECTS)
 readstuff_SOURCES = readstuff.c
 readstuff_OBJECTS = readstuff.$(OBJEXT)
 readstuff_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@readstuff_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@readstuff_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@readstuff_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@readstuff_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
+realloc_obj_and_opts_SOURCES = realloc_obj_and_opts.c
+realloc_obj_and_opts_OBJECTS = realloc_obj_and_opts.$(OBJEXT)
+realloc_obj_and_opts_LDADD = $(LDADD)
+ at HDF5_DRV_NEEDED_FALSE@realloc_obj_and_opts_DEPENDENCIES =  \
+ at HDF5_DRV_NEEDED_FALSE@	../src/libsilo.la $(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@realloc_obj_and_opts_DEPENDENCIES =  \
+ at HDF5_DRV_NEEDED_TRUE@	../src/libsiloh5.la $(am__append_1)
 am_rocket_OBJECTS = rocket-rocket.$(OBJEXT)
 rocket_OBJECTS = $(am_rocket_OBJECTS)
 rocket_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@rocket_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@rocket_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@rocket_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@rocket_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 rocket_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CXXLD) $(rocket_CXXFLAGS) $(CXXFLAGS) \
 	$(rocket_LDFLAGS) $(LDFLAGS) -o $@
 sami_SOURCES = sami.c
 sami_OBJECTS = sami.$(OBJEXT)
 sami_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@sami_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@sami_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@sami_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@sami_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 simple_SOURCES = simple.c
 simple_OBJECTS = simple.$(OBJEXT)
 simple_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@simple_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@simple_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@simple_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@simple_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 spec_SOURCES = spec.c
 spec_OBJECTS = spec.$(OBJEXT)
 spec_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@spec_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@spec_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@spec_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@spec_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 specmix_SOURCES = specmix.c
 specmix_OBJECTS = specmix.$(OBJEXT)
 specmix_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@specmix_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@specmix_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@specmix_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@specmix_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 subhex_SOURCES = subhex.c
 subhex_OBJECTS = subhex.$(OBJEXT)
 subhex_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@subhex_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@subhex_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@subhex_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@subhex_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 testall_SOURCES = testall.c
 testall_OBJECTS = testall.$(OBJEXT)
 testall_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@testall_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@testall_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@testall_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@testall_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__testallf77_SOURCES_DIST = testallf77.f
 @FORTRAN_NEEDED_TRUE at am_testallf77_OBJECTS = testallf77.$(OBJEXT)
 testallf77_OBJECTS = $(am_testallf77_OBJECTS)
@@ -451,28 +558,38 @@ testallf77_OBJECTS = $(am_testallf77_OBJECTS)
 testfs_SOURCES = testfs.c
 testfs_OBJECTS = testfs.$(OBJEXT)
 testfs_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@testfs_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@testfs_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@testfs_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@testfs_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 testpdb_SOURCES = testpdb.c
 testpdb_OBJECTS = testpdb-testpdb.$(OBJEXT)
 testpdb_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@testpdb_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@testpdb_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@testpdb_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@testpdb_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 twohex_SOURCES = twohex.c
 twohex_OBJECTS = twohex.$(OBJEXT)
 twohex_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@twohex_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@twohex_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@twohex_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@twohex_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 ucd_SOURCES = ucd.c
 ucd_OBJECTS = ucd.$(OBJEXT)
 ucd_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@ucd_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@ucd_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@ucd_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@ucd_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 ucd1d_SOURCES = ucd1d.c
 ucd1d_OBJECTS = ucd1d.$(OBJEXT)
 ucd1d_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@ucd1d_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@ucd1d_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@ucd1d_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@ucd1d_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__ucdf77_SOURCES_DIST = ucdf77.f
 @FORTRAN_NEEDED_TRUE at am_ucdf77_OBJECTS = ucdf77.$(OBJEXT)
 ucdf77_OBJECTS = $(am_ucdf77_OBJECTS)
@@ -481,18 +598,24 @@ ucdf77_OBJECTS = $(am_ucdf77_OBJECTS)
 ucdsamp3_SOURCES = ucdsamp3.c
 ucdsamp3_OBJECTS = ucdsamp3.$(OBJEXT)
 ucdsamp3_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@ucdsamp3_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@ucdsamp3_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@ucdsamp3_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@ucdsamp3_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 version_SOURCES = version.c
 version_OBJECTS = version.$(OBJEXT)
 version_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@version_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@version_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@version_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@version_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 wave_SOURCES = wave.c
 wave_OBJECTS = wave.$(OBJEXT)
 wave_LDADD = $(LDADD)
- at HDF5_DRV_NEEDED_FALSE@wave_DEPENDENCIES = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@wave_DEPENDENCIES = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@wave_DEPENDENCIES = ../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@wave_DEPENDENCIES = ../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -522,6 +645,13 @@ F77LD = $(F77)
 F77LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+LTFCCOMPILE = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
+FCLD = $(FC)
+FCLINK = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
 SOURCES = ioperf_hdf5.c ioperf_pdb.c ioperf_sec2.c ioperf_silo.c \
 	ioperf_stdio.c $(rocket_silo_la_SOURCES) \
 	$(nodist_EXTRA_TestReadMask_SOURCES) TestReadMask.c \
@@ -529,7 +659,8 @@ SOURCES = ioperf_hdf5.c ioperf_pdb.c ioperf_sec2.c ioperf_silo.c \
 	$(nodist_EXTRA_arbpoly_SOURCES) arbpoly.c \
 	$(nodist_EXTRA_arbpoly2d_SOURCES) arbpoly2d.c \
 	$(nodist_EXTRA_array_SOURCES) array.c $(arrayf77_SOURCES) \
-	$(nodist_EXTRA_arrayf77_SOURCES) $(compression_SOURCES) \
+	$(nodist_EXTRA_arrayf77_SOURCES) $(arrayf90_SOURCES) \
+	$(nodist_EXTRA_arrayf90_SOURCES) $(compression_SOURCES) \
 	$(nodist_EXTRA_compression_SOURCES) \
 	$(nodist_EXTRA_cpz1plt_SOURCES) cpz1plt.c \
 	$(nodist_EXTRA_csg_SOURCES) csg.c $(csgmesh_SOURCES) \
@@ -542,8 +673,9 @@ SOURCES = ioperf_hdf5.c ioperf_pdb.c ioperf_sec2.c ioperf_silo.c \
 	$(nodist_EXTRA_grab_SOURCES) \
 	$(nodist_EXTRA_group_test_SOURCES) group_test.c \
 	$(nodist_EXTRA_ioperf_SOURCES) ioperf.c \
+	$(nodist_EXTRA_json_SOURCES) json.c \
 	$(nodist_EXTRA_largefile_SOURCES) largefile.c \
-	$(nodist_EXTRA_listtypes_SOURCES) listtypes.c \
+	$(listtypes_SOURCES) $(nodist_EXTRA_listtypes_SOURCES) \
 	$(nodist_EXTRA_majorder_SOURCES) majorder.c \
 	$(nodist_EXTRA_mat3d_3across_SOURCES) mat3d_3across.c \
 	$(matf77_SOURCES) $(nodist_EXTRA_matf77_SOURCES) \
@@ -567,7 +699,9 @@ SOURCES = ioperf_hdf5.c ioperf_pdb.c ioperf_sec2.c ioperf_silo.c \
 	$(nodist_EXTRA_quad_SOURCES) $(quadf77_SOURCES) \
 	$(nodist_EXTRA_quadf77_SOURCES) \
 	$(nodist_EXTRA_readstuff_SOURCES) readstuff.c \
-	$(rocket_SOURCES) $(nodist_EXTRA_sami_SOURCES) sami.c \
+	$(nodist_EXTRA_realloc_obj_and_opts_SOURCES) \
+	realloc_obj_and_opts.c $(rocket_SOURCES) \
+	$(nodist_EXTRA_sami_SOURCES) sami.c \
 	$(nodist_EXTRA_simple_SOURCES) simple.c \
 	$(nodist_EXTRA_spec_SOURCES) spec.c \
 	$(nodist_EXTRA_specmix_SOURCES) specmix.c \
@@ -586,21 +720,23 @@ SOURCES = ioperf_hdf5.c ioperf_pdb.c ioperf_sec2.c ioperf_silo.c \
 DIST_SOURCES = ioperf_hdf5.c ioperf_pdb.c ioperf_sec2.c ioperf_silo.c \
 	ioperf_stdio.c $(rocket_silo_la_SOURCES) TestReadMask.c \
 	alltypes.c arbpoly.c arbpoly2d.c array.c \
-	$(am__arrayf77_SOURCES_DIST) $(am__compression_SOURCES_DIST) \
-	cpz1plt.c csg.c $(am__csgmesh_SOURCES_DIST) \
-	$(am__curvef77_SOURCES_DIST) $(dir_SOURCES) efcentering.c \
-	empty.c extface.c $(am__grab_SOURCES_DIST) group_test.c \
-	ioperf.c largefile.c listtypes.c majorder.c mat3d_3across.c \
+	$(am__arrayf77_SOURCES_DIST) $(am__arrayf90_SOURCES_DIST) \
+	$(am__compression_SOURCES_DIST) cpz1plt.c csg.c \
+	$(am__csgmesh_SOURCES_DIST) $(am__curvef77_SOURCES_DIST) \
+	$(dir_SOURCES) efcentering.c empty.c extface.c \
+	$(am__grab_SOURCES_DIST) group_test.c ioperf.c json.c \
+	largefile.c $(listtypes_SOURCES) majorder.c mat3d_3across.c \
 	$(am__matf77_SOURCES_DIST) merge_block.c \
 	$(am__mk_nasf_h5_SOURCES_DIST) mk_nasf_pdb.c mmadjacency.c \
 	multi_file.c multi_test.c multispec.c namescheme.c obj.c \
 	onehex.c oneprism.c onepyramid.c onetet.c partial_io.c \
 	pdbtst.c point.c $(am__pointf77_SOURCES_DIST) polyzl.c \
 	$(quad_SOURCES) $(am__quadf77_SOURCES_DIST) readstuff.c \
-	$(rocket_SOURCES) sami.c simple.c spec.c specmix.c subhex.c \
-	testall.c $(am__testallf77_SOURCES_DIST) testfs.c testpdb.c \
-	twohex.c ucd.c ucd1d.c $(am__ucdf77_SOURCES_DIST) ucdsamp3.c \
-	version.c wave.c
+	realloc_obj_and_opts.c $(rocket_SOURCES) sami.c simple.c \
+	spec.c specmix.c subhex.c testall.c \
+	$(am__testallf77_SOURCES_DIST) testfs.c testpdb.c twohex.c \
+	ucd.c ucd1d.c $(am__ucdf77_SOURCES_DIST) ucdsamp3.c version.c \
+	wave.c
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -677,6 +813,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -725,9 +862,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -824,6 +958,7 @@ EXTRA_DIST = \
  Make_ioperf \
  ioperf_tests \
  std.c \
+ bcastopen.c \
  zeros.dat \
  $(check_SCRIPTS) \
  $(check_DATA)
@@ -853,25 +988,27 @@ DISTCLEANFILES = atconfig
 AUTOM4TE = autom4te
 AUTOTEST = $(AUTOM4TE) --language=autotest
 TESTSUITE = $(srcdir)/testsuite
- at HDF5_DRV_NEEDED_FALSE@LDADD = ../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@LDADD = ../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@LDADD = ../src/libsilo.la $(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@LDADD = ../src/libsiloh5.la $(am__append_1)
 
 # paths look at install directories before sources
 AM_CPPFLAGS = \
- -I$(srcdir)/../src/pdb \
- -I$(srcdir)/../src/score \
  -I$(builddir)/../src/silo \
  -I$(srcdir)/../src/silo \
  -I$(includedir)
 
 #quad_CPPFLAGS = $(AM_CPPFLAGS)
-PDBTESTS = $(am__append_1)
- at INSTALL_LITE_HEADERS_TRUE@testpdb_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS)
- at INSTALL_LITE_HEADERS_TRUE@pdbtst_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS)
+PDBTESTS = $(am__append_2)
+ at INSTALL_LITE_HEADERS_TRUE@testpdb_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS) -I../src/pdb -I../src/score
+ at INSTALL_LITE_HEADERS_TRUE@pdbtst_CPPFLAGS = -DPDB_LITE $(AM_CPPFLAGS) -I../src/pdb -I../src/score
+JSONTESTS = $(am__append_3)
+ at JSON_NEEDED_TRUE@json_CPPFLAGS = -I$(prefix)/json/include $(AM_CPPFLAGS)
 #TestReadMask_CPPFLAGS = $(AM_CPPFLAGS)
+mk_nasf_pdb_CPPFLAGS = $(AM_CPPFLAGS) -I../src/pdb -I../src/score
 AM_FFLAGS = $(AM_CPPFLAGS)
+AM_FCFLAGS = $(AM_CPPFLAGS)
 HDF5PROGS = compression grab mk_nasf_h5
-FCPROGS = arrayf77 curvef77 matf77 pointf77 quadf77 ucdf77 testallf77 \
+FCPROGS = arrayf77 arrayf90 curvef77 matf77 pointf77 quadf77 ucdf77 testallf77 \
          csgmesh
 
 PROGS = array dir extface multi_test partial_io point quad simple ucd \
@@ -880,9 +1017,11 @@ PROGS = array dir extface multi_test partial_io point quad simple ucd \
 	group_test listtypes alltypes wave multi_file polyzl csg \
 	rocket mmadjacency largefile version namescheme efcentering \
 	mk_nasf_pdb ioperf arbpoly2d readstuff mat3d_3across \
-	merge_block empty majorder $(PDBTESTS) $(am__append_2) \
-	$(am__append_5)
+	merge_block empty majorder realloc_obj_and_opts $(PDBTESTS) \
+	$(JSONTESTS) $(am__append_4) $(am__append_7)
 dir_SOURCES = dir.c testlib.c
+listtypes_SOURCES = listtypes.c listtypes_main.c
+bcastopen_SOURCES = bcastopen.c bcastopen_test.c
 quad_SOURCES = quad.c testlib.c
 rocket_SOURCES = rocket.cxx
 rocket_LDFLAGS = -ldl
@@ -892,7 +1031,7 @@ EXTRA_rocket_DEPENDENCIES = rocket_silo.la
 # plugins for rocket and for ioperf
 HDF5CKLTLIBS = ioperf_hdf5.la
 check_LTLIBRARIES = rocket_silo.la ioperf_silo.la ioperf_pdb.la \
-	ioperf_sec2.la ioperf_stdio.la $(am__append_4)
+	ioperf_sec2.la ioperf_stdio.la $(am__append_6)
 rocket_silo_la_SOURCES = rocket_silo.cxx
 # the '-rpath /nowhere' is some trick to force libtool to produce a shared lib
 rocket_silo_la_LDFLAGS = -module -avoid-version -rpath /nowhere
@@ -900,6 +1039,7 @@ EXTRA_ioperf_DEPENDENCIES = ioperf_silo.la ioperf_hdf5.la ioperf_pdb.la ioperf_s
 ioperf_LDFLAGS = -ldl
 ioperf_CXXFALGS = -rdynamic
 # the '-rpath /nowhere' is some trick to force libtool to produce a shared lib
+ioperf_pdb_la_CPPFLAGS = $(AM_CPPFLAGS) -I../src/pdb -I../src/score
 ioperf_silo_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 ioperf_hdf5_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 ioperf_pdb_la_LDFLAGS = -module -avoid-version -rpath /nowhere
@@ -957,6 +1097,7 @@ ioperf_stdio_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_version_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_namescheme_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_arrayf77_SOURCES = dummy.cxx
+ at CXX_LINK_NEEDED_TRUE@nodist_EXTRA_arrayf90_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_curvef77_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_matf77_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_pointf77_SOURCES = dummy.cxx
@@ -973,6 +1114,8 @@ ioperf_stdio_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_testfs_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_empty_SOURCES = dummy.cxx
 @CXX_LINK_NEEDED_TRUE at nodist_EXTRA_majorder_SOURCES = dummy.cxx
+ at CXX_LINK_NEEDED_TRUE@nodist_EXTRA_realloc_obj_and_opts_SOURCES = dummy.cxx
+ at CXX_LINK_NEEDED_TRUE@nodist_EXTRA_json_SOURCES = dummy.cxx
 @HDF5_DRV_NEEDED_TRUE at compression_SOURCES = compression.c
 @HDF5_DRV_NEEDED_TRUE at compression_LDADD = $(LDADD)
 @HDF5_DRV_NEEDED_TRUE at grab_SOURCES = grab.c
@@ -981,6 +1124,8 @@ ioperf_stdio_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 @HDF5_DRV_NEEDED_TRUE at mk_nasf_h5_LDADD = $(LDADD)
 @FORTRAN_NEEDED_TRUE at arrayf77_SOURCES = arrayf77.f
 @FORTRAN_NEEDED_TRUE at arrayf77_LDADD = $(LDADD) $(FCLIBS)
+ at FORTRAN_NEEDED_TRUE@arrayf90_SOURCES = arrayf90.f90
+ at FORTRAN_NEEDED_TRUE@arrayf90_LDADD = $(LDADD) $(FCLIBS)
 @FORTRAN_NEEDED_TRUE at curvef77_SOURCES = curvef77.f
 @FORTRAN_NEEDED_TRUE at curvef77_LDADD = $(LDADD) $(FCLIBS)
 @FORTRAN_NEEDED_TRUE at matf77_SOURCES = matf77.f
@@ -998,7 +1143,7 @@ ioperf_stdio_la_LDFLAGS = -module -avoid-version -rpath /nowhere
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .cxx .f .lo .o .obj
+.SUFFIXES: .c .cxx .f .f90 .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -1077,6 +1222,9 @@ array$(EXEEXT): $(array_OBJECTS) $(array_DEPENDENCIES)
 arrayf77$(EXEEXT): $(arrayf77_OBJECTS) $(arrayf77_DEPENDENCIES) 
 	@rm -f arrayf77$(EXEEXT)
 	$(CXXLINK) $(arrayf77_OBJECTS) $(arrayf77_LDADD) $(LIBS)
+arrayf90$(EXEEXT): $(arrayf90_OBJECTS) $(arrayf90_DEPENDENCIES) 
+	@rm -f arrayf90$(EXEEXT)
+	$(CXXLINK) $(arrayf90_OBJECTS) $(arrayf90_LDADD) $(LIBS)
 compression$(EXEEXT): $(compression_OBJECTS) $(compression_DEPENDENCIES) 
 	@rm -f compression$(EXEEXT)
 	$(CXXLINK) $(compression_OBJECTS) $(compression_LDADD) $(LIBS)
@@ -1113,6 +1261,9 @@ group_test$(EXEEXT): $(group_test_OBJECTS) $(group_test_DEPENDENCIES)
 ioperf$(EXEEXT): $(ioperf_OBJECTS) $(ioperf_DEPENDENCIES) 
 	@rm -f ioperf$(EXEEXT)
 	$(ioperf_LINK) $(ioperf_OBJECTS) $(ioperf_LDADD) $(LIBS)
+json$(EXEEXT): $(json_OBJECTS) $(json_DEPENDENCIES) 
+	@rm -f json$(EXEEXT)
+	$(CXXLINK) $(json_OBJECTS) $(json_LDADD) $(LIBS)
 largefile$(EXEEXT): $(largefile_OBJECTS) $(largefile_DEPENDENCIES) 
 	@rm -f largefile$(EXEEXT)
 	$(CXXLINK) $(largefile_OBJECTS) $(largefile_LDADD) $(LIBS)
@@ -1191,6 +1342,9 @@ quadf77$(EXEEXT): $(quadf77_OBJECTS) $(quadf77_DEPENDENCIES)
 readstuff$(EXEEXT): $(readstuff_OBJECTS) $(readstuff_DEPENDENCIES) 
 	@rm -f readstuff$(EXEEXT)
 	$(CXXLINK) $(readstuff_OBJECTS) $(readstuff_LDADD) $(LIBS)
+realloc_obj_and_opts$(EXEEXT): $(realloc_obj_and_opts_OBJECTS) $(realloc_obj_and_opts_DEPENDENCIES) 
+	@rm -f realloc_obj_and_opts$(EXEEXT)
+	$(CXXLINK) $(realloc_obj_and_opts_OBJECTS) $(realloc_obj_and_opts_LDADD) $(LIBS)
 rocket$(EXEEXT): $(rocket_OBJECTS) $(rocket_DEPENDENCIES) 
 	@rm -f rocket$(EXEEXT)
 	$(rocket_LINK) $(rocket_OBJECTS) $(rocket_LDADD) $(LIBS)
@@ -1266,17 +1420,21 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/group_test.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf_hdf5.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf_pdb.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf_pdb_la-ioperf_pdb.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf_sec2.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf_silo.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ioperf_stdio.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/json-dummy.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/json-json.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/largefile.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/listtypes.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/listtypes_main.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/majorder.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mat3d_3across.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/merge_block.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mk_nasf_h5.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mk_nasf_pdb.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mk_nasf_pdb-dummy.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mmadjacency.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/multi_file.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/multi_test.Po at am__quote@
@@ -1294,6 +1452,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/polyzl.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/quad.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/readstuff.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/realloc_obj_and_opts.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rocket-rocket.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rocket_silo.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sami.Po at am__quote@
@@ -1334,6 +1493,41 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
+ioperf_pdb_la-ioperf_pdb.lo: ioperf_pdb.c
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ioperf_pdb_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ioperf_pdb_la-ioperf_pdb.lo -MD -MP -MF $(DEPDIR)/ioperf_pdb_la-ioperf_pdb.Tpo -c -o ioperf_pdb_la-ioperf_pdb.lo `test -f 'ioperf_pdb.c' || echo '$(srcdir)/'`ioperf_pdb.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/ioperf_pdb_la-ioperf_pdb.Tpo $(DEPDIR)/ioperf_pdb_la-ioperf_pdb.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ioperf_pdb.c' object='ioperf_pdb_la-ioperf_pdb.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ioperf_pdb_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ioperf_pdb_la-ioperf_pdb.lo `test -f 'ioperf_pdb.c' || echo '$(srcdir)/'`ioperf_pdb.c
+
+json-json.o: json.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-json.o -MD -MP -MF $(DEPDIR)/json-json.Tpo -c -o json-json.o `test -f 'json.c' || echo '$(srcdir)/'`json.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/json-json.Tpo $(DEPDIR)/json-json.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='json.c' object='json-json.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-json.o `test -f 'json.c' || echo '$(srcdir)/'`json.c
+
+json-json.obj: json.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT json-json.obj -MD -MP -MF $(DEPDIR)/json-json.Tpo -c -o json-json.obj `if test -f 'json.c'; then $(CYGPATH_W) 'json.c'; else $(CYGPATH_W) '$(srcdir)/json.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/json-json.Tpo $(DEPDIR)/json-json.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='json.c' object='json-json.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o json-json.obj `if test -f 'json.c'; then $(CYGPATH_W) 'json.c'; else $(CYGPATH_W) '$(srcdir)/json.c'; fi`
+
+mk_nasf_pdb-mk_nasf_pdb.o: mk_nasf_pdb.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mk_nasf_pdb-mk_nasf_pdb.o -MD -MP -MF $(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Tpo -c -o mk_nasf_pdb-mk_nasf_pdb.o `test -f 'mk_nasf_pdb.c' || echo '$(srcdir)/'`mk_nasf_pdb.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Tpo $(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mk_nasf_pdb.c' object='mk_nasf_pdb-mk_nasf_pdb.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mk_nasf_pdb-mk_nasf_pdb.o `test -f 'mk_nasf_pdb.c' || echo '$(srcdir)/'`mk_nasf_pdb.c
+
+mk_nasf_pdb-mk_nasf_pdb.obj: mk_nasf_pdb.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mk_nasf_pdb-mk_nasf_pdb.obj -MD -MP -MF $(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Tpo -c -o mk_nasf_pdb-mk_nasf_pdb.obj `if test -f 'mk_nasf_pdb.c'; then $(CYGPATH_W) 'mk_nasf_pdb.c'; else $(CYGPATH_W) '$(srcdir)/mk_nasf_pdb.c'; fi`
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Tpo $(DEPDIR)/mk_nasf_pdb-mk_nasf_pdb.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mk_nasf_pdb.c' object='mk_nasf_pdb-mk_nasf_pdb.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mk_nasf_pdb-mk_nasf_pdb.obj `if test -f 'mk_nasf_pdb.c'; then $(CYGPATH_W) 'mk_nasf_pdb.c'; else $(CYGPATH_W) '$(srcdir)/mk_nasf_pdb.c'; fi`
+
 pdbtst-pdbtst.o: pdbtst.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pdbtst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pdbtst-pdbtst.o -MD -MP -MF $(DEPDIR)/pdbtst-pdbtst.Tpo -c -o pdbtst-pdbtst.o `test -f 'pdbtst.c' || echo '$(srcdir)/'`pdbtst.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/pdbtst-pdbtst.Tpo $(DEPDIR)/pdbtst-pdbtst.Po
@@ -1383,6 +1577,34 @@ testpdb-testpdb.obj: testpdb.c
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
 
+json-dummy.o: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT json-dummy.o -MD -MP -MF $(DEPDIR)/json-dummy.Tpo -c -o json-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/json-dummy.Tpo $(DEPDIR)/json-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='dummy.cxx' object='json-dummy.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o json-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+
+json-dummy.obj: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT json-dummy.obj -MD -MP -MF $(DEPDIR)/json-dummy.Tpo -c -o json-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/json-dummy.Tpo $(DEPDIR)/json-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='dummy.cxx' object='json-dummy.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(json_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o json-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+
+mk_nasf_pdb-dummy.o: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mk_nasf_pdb-dummy.o -MD -MP -MF $(DEPDIR)/mk_nasf_pdb-dummy.Tpo -c -o mk_nasf_pdb-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mk_nasf_pdb-dummy.Tpo $(DEPDIR)/mk_nasf_pdb-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='dummy.cxx' object='mk_nasf_pdb-dummy.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mk_nasf_pdb-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
+
+mk_nasf_pdb-dummy.obj: dummy.cxx
+ at am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mk_nasf_pdb-dummy.obj -MD -MP -MF $(DEPDIR)/mk_nasf_pdb-dummy.Tpo -c -o mk_nasf_pdb-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+ at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/mk_nasf_pdb-dummy.Tpo $(DEPDIR)/mk_nasf_pdb-dummy.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='dummy.cxx' object='mk_nasf_pdb-dummy.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mk_nasf_pdb_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mk_nasf_pdb-dummy.obj `if test -f 'dummy.cxx'; then $(CYGPATH_W) 'dummy.cxx'; else $(CYGPATH_W) '$(srcdir)/dummy.cxx'; fi`
+
 pdbtst-dummy.o: dummy.cxx
 @am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pdbtst_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT pdbtst-dummy.o -MD -MP -MF $(DEPDIR)/pdbtst-dummy.Tpo -c -o pdbtst-dummy.o `test -f 'dummy.cxx' || echo '$(srcdir)/'`dummy.cxx
 @am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/pdbtst-dummy.Tpo $(DEPDIR)/pdbtst-dummy.Po
@@ -1434,6 +1656,15 @@ testpdb-dummy.obj: dummy.cxx
 .f.lo:
 	$(LTF77COMPILE) -c -o $@ $<
 
+.f90.o:
+	$(FCCOMPILE) -c -o $@ $<
+
+.f90.obj:
+	$(FCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.f90.lo:
+	$(LTFCCOMPILE) -c -o $@ $<
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/tests/TestReadMask.c b/tests/TestReadMask.c
index 95d33e3..72a39a0 100644
--- a/tests/TestReadMask.c
+++ b/tests/TestReadMask.c
@@ -69,16 +69,16 @@ product endorsement purposes.
  * Date:       Thu May 17 13:00:50 PST 2001
  *
  */
-void    printMask(FILE * fp, long mask);
-int     test_readmat(DBfile * dbfile, const char *testName, long mask);
-int     test_readpointmesh(DBfile * dbfile, long mask);
-int     test_readpointvar(DBfile * dbfile, long mask);
-int     test_readquadmesh(DBfile * dbfile, long mask);
-int     test_readquadvar(DBfile * dbfile, long mask);
-int     test_readucdmesh(DBfile * dbfile, const char *testName, long mask);
-int     test_readucdvar(DBfile * dbfile, long mask);
-int     test_readfacelist(DBfile * dbfile, long mask);
-int     test_readzonelist(DBfile * dbfile, long mask);
+void    printMask(FILE * fp, unsigned long long mask);
+int     test_readmat(DBfile * dbfile, const char *testName, unsigned long long mask);
+int     test_readpointmesh(DBfile * dbfile, unsigned long long mask);
+int     test_readpointvar(DBfile * dbfile, unsigned long long mask);
+int     test_readquadmesh(DBfile * dbfile, unsigned long long mask);
+int     test_readquadvar(DBfile * dbfile, unsigned long long mask);
+int     test_readucdmesh(DBfile * dbfile, const char *testName, unsigned long long mask);
+int     test_readucdvar(DBfile * dbfile, unsigned long long mask);
+int     test_readfacelist(DBfile * dbfile, unsigned long long mask);
+int     test_readzonelist(DBfile * dbfile, unsigned long long mask);
 
 void    ResetTime(void);
 int     ElapsedTime(void);
@@ -115,7 +115,7 @@ main(int argc, char *argv[])
     int show_all_errors = FALSE;
 
     /* Set the masks used for the tests. */
-    long    mask[] = {
+    unsigned long long mask[] = {
         DBAll,
         DBMatMatnos,
         DBMatMatlist,
@@ -178,7 +178,7 @@ main(int argc, char *argv[])
     printf("extraordinarily large.  For an accurate timing test, this cache\n");
     printf("would have to be disabled.\n\n");
 
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n\n");
 
     /**************************************************************************
@@ -357,7 +357,7 @@ main(int argc, char *argv[])
 }
 
 int
-test_readmat(DBfile * dbfile, const char *testName, long mask)
+test_readmat(DBfile * dbfile, const char *testName, unsigned long long mask)
 {
     int     ms;
     DBmaterial *mat = NULL;
@@ -365,9 +365,9 @@ test_readmat(DBfile * dbfile, const char *testName, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("%s: ", testName);
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the material list and print the material struct. */
     mat = DBGetMaterial(dbfile, "mat1");
@@ -411,7 +411,7 @@ printMaterial(const char *routine, DBmaterial * mat)
 }
 
 int
-test_readpointmesh(DBfile * dbfile, long mask)
+test_readpointmesh(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBpointmesh *pmesh = NULL;
@@ -419,9 +419,9 @@ test_readpointmesh(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readpointmesh: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the material list and print the material struct. */
     pmesh = DBGetPointmesh(dbfile, "dir1/pmesh");
@@ -454,7 +454,7 @@ test_readpointmesh(DBfile * dbfile, long mask)
  * Removed condition on call to DBFreeMeshvar
  */
 int
-test_readpointvar(DBfile * dbfile, long mask)
+test_readpointvar(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBmeshvar *mvar = NULL;
@@ -462,9 +462,9 @@ test_readpointvar(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readpointvar: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the material list and print the material struct. */
     mvar = DBGetPointvar(dbfile, "dir1/d");
@@ -488,7 +488,7 @@ test_readpointvar(DBfile * dbfile, long mask)
 }
 
 int
-test_readquadmesh(DBfile * dbfile, long mask)
+test_readquadmesh(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBquadmesh *qmesh = NULL;
@@ -496,9 +496,9 @@ test_readquadmesh(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readquadmesh: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the quad mesh and print the quadmesh struct. */
     qmesh = DBGetQuadmesh(dbfile, "quadmesh2d");
@@ -531,7 +531,7 @@ test_readquadmesh(DBfile * dbfile, long mask)
  * Removed condition on DBFreeQuadvar call.
  */
 int
-test_readquadvar(DBfile * dbfile, long mask)
+test_readquadvar(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBquadvar *qvar = NULL;
@@ -539,9 +539,9 @@ test_readquadvar(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readquadvar: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the quad var and print the struct. */
     qvar = DBGetQuadvar(dbfile, "d");
@@ -566,7 +566,7 @@ test_readquadvar(DBfile * dbfile, long mask)
 }
 
 int
-test_readucdmesh(DBfile * dbfile, const char *testName, long mask)
+test_readucdmesh(DBfile * dbfile, const char *testName, unsigned long long mask)
 {
     int     ms;
     DBucdmesh *umesh = NULL;
@@ -574,9 +574,9 @@ test_readucdmesh(DBfile * dbfile, const char *testName, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("%s: ", testName);
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the ucd mesh and print out the struct. */
     umesh = DBGetUcdmesh(dbfile, "mesh1");
@@ -613,7 +613,7 @@ test_readucdmesh(DBfile * dbfile, const char *testName, long mask)
  * Removed condition on DBFreeUcdvar call.
  */
 int
-test_readucdvar(DBfile * dbfile, long mask)
+test_readucdvar(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBucdvar *uvar = NULL;
@@ -621,9 +621,9 @@ test_readucdvar(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readucdvar: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the quad var and print the struct. */
     uvar = DBGetUcdvar(dbfile, "u");
@@ -648,7 +648,7 @@ test_readucdvar(DBfile * dbfile, long mask)
 }
 
 int
-test_readfacelist(DBfile * dbfile, long mask)
+test_readfacelist(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBfacelist *fl = NULL;
@@ -656,9 +656,9 @@ test_readfacelist(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readfacelist: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the face list and print the struct. */
     fl = DBGetFacelist(dbfile, "fl");
@@ -688,7 +688,7 @@ test_readfacelist(DBfile * dbfile, long mask)
 }
 
 int
-test_readzonelist(DBfile * dbfile, long mask)
+test_readzonelist(DBfile * dbfile, unsigned long long mask)
 {
     int     ms;
     DBzonelist *zl = NULL;
@@ -696,9 +696,9 @@ test_readzonelist(DBfile * dbfile, long mask)
     /* Reset the timer. */
     ResetTime();
 
-    DBSetDataReadMask(mask);
+    DBSetDataReadMask2(mask);
     printf("test_readzonelist: ");
-    printMask(stdout, DBGetDataReadMask());
+    printMask(stdout, DBGetDataReadMask2());
     printf("\n");
     /* Read the face list and print the struct. */
     zl = DBGetZonelist(dbfile, "zl");
@@ -806,7 +806,7 @@ printTimes(int *ms)
 }
 
 void
-printMask(FILE * fp, long mask)
+printMask(FILE * fp, unsigned long long mask)
 {
     fprintf(fp, "readMask={");
     if (mask == DBAll)
diff --git a/tests/arbpoly.c b/tests/arbpoly.c
index e71287b..33f2aaa 100644
--- a/tests/arbpoly.c
+++ b/tests/arbpoly.c
@@ -57,22 +57,6 @@ product endorsement purposes.
 
 #define LEN(A)	(sizeof(A)/sizeof(A[0]))
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 int
 main(int argc, char *argv[])
 {
@@ -217,7 +201,7 @@ main(int argc, char *argv[])
             }
 
             /* Typical 2D mesh with obsolete zonelist method */
-            DBPutUcdmesh(dbfile, "mesh1_zl1", pass, coordnames, coords, LEN(x), 11, "zl1",
+            DBPutUcdmesh(dbfile, "mesh1_zl1", pass, (DBCAS_t) coordnames, coords, LEN(x), 11, "zl1",
                 NULL, DB_FLOAT, NULL);
             DBSetDeprecateWarnings(0);
             DBPutZonelist(dbfile, "zl1", 11, 2, nl, LEN(nl), 0, shapesize,
@@ -229,7 +213,7 @@ main(int argc, char *argv[])
                 DB_ZONECENT, NULL);
 
             /* Same as above except using DBPutZonelist2 (newer method) */
-            DBPutUcdmesh(dbfile, "mesh1_zl2", pass, coordnames, coords, LEN(x), 11, "zl2",
+            DBPutUcdmesh(dbfile, "mesh1_zl2", pass, (DBCAS_t) coordnames, coords, LEN(x), 11, "zl2",
                 NULL, DB_FLOAT, NULL);
             DBPutZonelist2(dbfile, "zl2", 11, 2, nl, LEN(nl), 0, 0, 0, shapetype,
                 shapesize2, shapecnt, 5, 0);
@@ -239,7 +223,7 @@ main(int argc, char *argv[])
                 DB_ZONECENT, NULL);
 
             /* Same as above except with some ghost zones */
-            DBPutUcdmesh(dbfile, "mesh1g_zl2", pass, coordnames, coords, LEN(x), 11, "zlg2",
+            DBPutUcdmesh(dbfile, "mesh1g_zl2", pass, (DBCAS_t) coordnames, coords, LEN(x), 11, "zlg2",
                 NULL, DB_FLOAT, NULL);
             DBPutZonelist2(dbfile, "zlg2", 11, 2, nl, LEN(nl), 0, 3, 3, shapetype,
                 shapesize2, shapecnt, 5, 0);
@@ -251,7 +235,7 @@ main(int argc, char *argv[])
             /* same using ph-zonelist of faces only */
             ol = DBMakeOptlist(3);
             DBAddOption(ol, DBOPT_PHZONELIST, "phzl");
-            DBPutUcdmesh(dbfile, "mesh1_phzl", pass, coordnames, coords, LEN(x), 11, 0,
+            DBPutUcdmesh(dbfile, "mesh1_phzl", pass, (DBCAS_t) coordnames, coords, LEN(x), 11, 0,
                 NULL, DB_FLOAT, ol);
             DBFreeOptlist(ol);
             DBPutPHZonelist(dbfile, "phzl", 11, ndcnts_phzl1, LEN(nl_phzl1), nl_phzl1, 0,0,0,0,0,0,0,10,0);
@@ -263,7 +247,7 @@ main(int argc, char *argv[])
             /* same using ph-zonelist with explicit edge list */
             ol = DBMakeOptlist(3);
             DBAddOption(ol, DBOPT_PHZONELIST, "phzl2");
-            DBPutUcdmesh(dbfile, "mesh1_phzl2", pass, coordnames, coords, LEN(x), 11, 0,
+            DBPutUcdmesh(dbfile, "mesh1_phzl2", pass, (DBCAS_t) coordnames, coords, LEN(x), 11, 0,
                 NULL, DB_FLOAT, ol);
             DBFreeOptlist(ol);
             DBPutPHZonelist(dbfile, "phzl2", LEN(nl_phzl2)/2, ndcnts_phzl2, LEN(nl_phzl2), nl_phzl2, 0,
@@ -602,13 +586,13 @@ main(int argc, char *argv[])
         DBSetDir(dbfile, "3D");
     
         /* Use DBPutzonelist and DBPutZonelist2 */
-        DBPutUcdmesh(dbfile, "mesh1", 3, coordnames, coords, nnodes, nzones, "zl1", 0, DB_FLOAT, 0);
+        DBPutUcdmesh(dbfile, "mesh1", 3, (DBCAS_t) coordnames, coords, nnodes, nzones, "zl1", 0, DB_FLOAT, 0);
         DBPutUcdvar1(dbfile, "n1", "mesh1", nvar, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
         DBPutUcdvar1(dbfile, "z1", "mesh1", zvar, nzones, NULL, 0, DB_FLOAT, DB_ZONECENT, NULL);
-        DBPutUcdmesh(dbfile, "mesh2", 3, coordnames, coords, nnodes, nzones, "zl2", 0, DB_FLOAT, 0);
+        DBPutUcdmesh(dbfile, "mesh2", 3, (DBCAS_t) coordnames, coords, nnodes, nzones, "zl2", 0, DB_FLOAT, 0);
         DBPutUcdvar1(dbfile, "n2", "mesh2", nvar, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
         DBPutUcdvar1(dbfile, "z2", "mesh2", zvar, nzones, NULL, 0, DB_FLOAT, DB_ZONECENT, NULL);
-        DBPutUcdmesh(dbfile, "mesh2g", 3, coordnames, coords, nnodes, nzones, "zl2g", 0, DB_FLOAT, 0);
+        DBPutUcdmesh(dbfile, "mesh2g", 3, (DBCAS_t) coordnames, coords, nnodes, nzones, "zl2g", 0, DB_FLOAT, 0);
         DBPutUcdvar1(dbfile, "n2g", "mesh2g", nvar, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
         DBPutUcdvar1(dbfile, "z2g", "mesh2g", zvar, nzones, NULL, 0, DB_FLOAT, DB_ZONECENT, NULL);
         {
@@ -670,7 +654,7 @@ main(int argc, char *argv[])
 
         ol = DBMakeOptlist(3);
         DBAddOption(ol, DBOPT_PHZONELIST, "phzl");
-        DBPutUcdmesh(dbfile, "mesh3", 3, coordnames, coords, nnodes, nzones, 0, 0, DB_FLOAT, ol);
+        DBPutUcdmesh(dbfile, "mesh3", 3, (DBCAS_t) coordnames, coords, nnodes, nzones, 0, 0, DB_FLOAT, ol);
         DBFreeOptlist(ol);
         DBPutUcdvar1(dbfile, "n3", "mesh3", nvar, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
         DBPutUcdvar1(dbfile, "z3", "mesh3", zvar2, nzones, NULL, 0, DB_FLOAT, DB_ZONECENT, NULL);
@@ -682,7 +666,7 @@ main(int argc, char *argv[])
     
         ol = DBMakeOptlist(3);
         DBAddOption(ol, DBOPT_PHZONELIST, "phzl_r");
-        DBPutUcdmesh(dbfile, "mesh3r", 3, coordnames, coords, nnodes, nzones, 0, 0, DB_FLOAT, ol);
+        DBPutUcdmesh(dbfile, "mesh3r", 3, (DBCAS_t) coordnames, coords, nnodes, nzones, 0, 0, DB_FLOAT, ol);
         DBFreeOptlist(ol);
         DBPutUcdvar1(dbfile, "n3r", "mesh3r", nvar, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
         DBPutUcdvar1(dbfile, "z3r", "mesh3r", zvar2, nzones, NULL, 0, DB_FLOAT, DB_ZONECENT, NULL);
diff --git a/tests/arbpoly2d.c b/tests/arbpoly2d.c
index 5708a75..54d8303 100644
--- a/tests/arbpoly2d.c
+++ b/tests/arbpoly2d.c
@@ -105,8 +105,8 @@ main(int argc, char *argv[])
     shapesize[0] = 3;
     shapesize[1] = 4;
     shapesize[2] = 5;
-    DBPutUcdmesh(dbfile, "mesh_zl", 2, coordnames, coords, 8, 1, "zl",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_zl", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "zl", NULL, DB_FLOAT, NULL);
     DBSetDeprecateWarnings(0);
     DBPutZonelist(dbfile, "zl", 3, 2, nl, LEN(nl), 0, shapesize,
                   shapecnt, 3);
@@ -119,8 +119,8 @@ main(int argc, char *argv[])
     shapesize[0] = 3;
     shapesize[1] = 4;
     shapesize[2] = 0;
-    DBPutUcdmesh(dbfile, "mesh_zl0", 2, coordnames, coords, 8, 1, "zl0",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_zl0", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "zl0", NULL, DB_FLOAT, NULL);
     DBSetDeprecateWarnings(0);
     DBPutZonelist(dbfile, "zl0", 3, 2, nl2, LEN(nl2), 0, shapesize,
                   shapecnt, 3);
@@ -135,8 +135,8 @@ main(int argc, char *argv[])
     shapetype[0] = DB_ZONETYPE_TRIANGLE;
     shapetype[1] = DB_ZONETYPE_QUAD;
     shapetype[2] = DB_ZONETYPE_POLYGON;
-    DBPutUcdmesh(dbfile, "mesh_zl2", 2, coordnames, coords, 8, 1, "zl2",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_zl2", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "zl2", NULL, DB_FLOAT, NULL);
     DBPutZonelist2(dbfile, "zl2", 3, 2, nl, LEN(nl), 0, 0, 0, shapetype,
         shapesize, shapecnt, 3, NULL);
     DBPutUcdvar1(dbfile, "v_zl2", "mesh_zl2", var, 8, NULL, 0, DB_FLOAT,
@@ -149,8 +149,8 @@ main(int argc, char *argv[])
     shapetype[0] = DB_ZONETYPE_TRIANGLE;
     shapetype[1] = DB_ZONETYPE_QUAD;
     shapetype[2] = DB_ZONETYPE_POLYGON;
-    DBPutUcdmesh(dbfile, "mesh_zl20", 2, coordnames, coords, 8, 1, "zl20",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_zl20", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "zl20", NULL, DB_FLOAT, NULL);
     DBPutZonelist2(dbfile, "zl20", 3, 2, nl2, LEN(nl2), 0, 0, 0, shapetype,
         shapesize, shapecnt, 3, NULL);
     DBPutUcdvar1(dbfile, "v_zl20", "mesh_zl20", var, 8, NULL, 0, DB_FLOAT,
@@ -163,8 +163,8 @@ main(int argc, char *argv[])
     shapetype[0] = DB_ZONETYPE_POLYGON;
     shapetype[1] = DB_ZONETYPE_POLYGON;
     shapetype[2] = DB_ZONETYPE_POLYGON;
-    DBPutUcdmesh(dbfile, "mesh_zl2p", 2, coordnames, coords, 8, 1, "zl2p",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_zl2p", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "zl2p", NULL, DB_FLOAT, NULL);
     DBPutZonelist2(dbfile, "zl2p", 3, 2, nl, LEN(nl), 0, 0, 0, shapetype,
         shapesize, shapecnt, 3, NULL);
     DBPutUcdvar1(dbfile, "v_zl2p", "mesh_zl2p", var, 8, NULL, 0, DB_FLOAT,
@@ -177,8 +177,8 @@ main(int argc, char *argv[])
     shapetype[0] = DB_ZONETYPE_POLYGON;
     shapetype[1] = DB_ZONETYPE_POLYGON;
     shapetype[2] = DB_ZONETYPE_POLYGON;
-    DBPutUcdmesh(dbfile, "mesh_zl2p0", 2, coordnames, coords, 8, 1, "zl2p0",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_zl2p0", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "zl2p0", NULL, DB_FLOAT, NULL);
     DBPutZonelist2(dbfile, "zl2p0", 3, 2, nl3, LEN(nl3), 0, 0, 0, shapetype,
         shapesize, shapecnt, 3, NULL);
     DBPutUcdvar1(dbfile, "v_zl2p0", "mesh_zl2p0", var, 8, NULL, 0, DB_FLOAT,
@@ -188,8 +188,8 @@ main(int argc, char *argv[])
     shapetype[0] = DB_ZONETYPE_TRIANGLE;
     shapetype[1] = DB_ZONETYPE_QUAD;
     shapetype[2] = DB_ZONETYPE_POLYGON;
-    DBPutUcdmesh(dbfile, "mesh_fl", 2, coordnames, coords, 8, 1, "fl",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_fl", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "fl", NULL, DB_FLOAT, NULL);
     /* note that we need to say ndims==3 to get this call to write shapesize/shapecnt */
     DBPutFacelist(dbfile, "fl", 3, 3, nl, LEN(nl), 0, NULL,
         shapesize, shapecnt, 3, shapetype, NULL, 3);
@@ -200,8 +200,8 @@ main(int argc, char *argv[])
     shapesize[0] = 3;
     shapesize[1] = 4;
     shapesize[2] = 5;
-    DBPutUcdmesh(dbfile, "mesh_phzl", 2, coordnames, coords, 8, 1, "phzl",
-                 NULL, DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "mesh_phzl", 2, (DBCAS_t) coordnames,
+        coords, 8, 1, "phzl", NULL, DB_FLOAT, NULL);
     DBPutPHZonelist(dbfile, "phzl", 3, shapesize, LEN(nl), nl, 0,0,0,0,0,0,0,0,0);
     DBPutUcdvar1(dbfile, "v_phzl", "mesh_phzl", var, 8, NULL, 0, DB_FLOAT,
                  DB_NODECENT, NULL);
diff --git a/tests/array.c b/tests/array.c
index 937066a..363e441 100644
--- a/tests/array.c
+++ b/tests/array.c
@@ -142,7 +142,7 @@ main(int argc, char *argv[])
     }
 
     DBPutCompoundarray(dbfile, "carray",  /*array */
-                       ename, esize, 3,  /*simple arrays */
+                       (DBCAS_t) ename, esize, 3,  /*simple arrays */
                        val, 18, DB_FLOAT,  /*values */
                        NULL);   /*options */
     i = 1;
@@ -181,7 +181,7 @@ main(int argc, char *argv[])
         }
 
         printf("   values... (float)\n");
-        for (show = ca->values, i = 0; i < ca->nvalues; i++) {
+        for (show = (float*)ca->values, i = 0; i < ca->nvalues; i++) {
             printf(" value %d is %g\n", i, show[i]);
         }
     }
diff --git a/tests/arrayf90.f90 b/tests/arrayf90.f90
new file mode 100644
index 0000000..370dc0a
--- /dev/null
+++ b/tests/arrayf90.f90
@@ -0,0 +1,162 @@
+!***********************************************************************
+! Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
+! LLNL-CODE-425250.
+! All rights reserved.
+!
+! This file is part of Silo. For details, see silo.llnl.gov.
+!
+! Redistribution and use in source and binary forms, with or without
+! modification, are permitted provided that the following conditions
+! are met:
+!
+!    * Redistributions of source code must retain the above copyright
+!      notice, this list of conditions and the disclaimer below.
+!    * Redistributions in binary form must reproduce the above copyright
+!      notice, this list of conditions and the disclaimer (as noted
+!      below) in the documentation and/or other materials provided with
+!      the distribution.
+!    * Neither the name of the LLNS/LLNL nor the names of its
+!      contributors may be used to endorse or promote products derived
+!      from this software without specific prior written permission.
+!
+! THIS SOFTWARE  IS PROVIDED BY  THE COPYRIGHT HOLDERS  AND CONTRIBUTORS
+! "AS  IS" AND  ANY EXPRESS  OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
+! LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+! A  PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN  NO  EVENT SHALL  LAWRENCE
+! LIVERMORE  NATIONAL SECURITY, LLC,  THE U.S.  DEPARTMENT OF  ENERGY OR
+! CONTRIBUTORS BE LIABLE FOR  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+! EXEMPLARY, OR  CONSEQUENTIAL DAMAGES  (INCLUDING, BUT NOT  LIMITED TO,
+! PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS  OF USE,  DATA, OR
+! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+! LIABILITY, WHETHER  IN CONTRACT, STRICT LIABILITY,  OR TORT (INCLUDING
+! NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT  OF THE USE  OF THIS
+! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+!
+! This work was produced at Lawrence Livermore National Laboratory under
+! Contract No.  DE-AC52-07NA27344 with the DOE.
+!
+! Neither the  United States Government nor  Lawrence Livermore National
+! Security, LLC nor any of  their employees, makes any warranty, express
+! or  implied,  or  assumes  any  liability or  responsibility  for  the
+! accuracy, completeness,  or usefulness of  any information, apparatus,
+! product, or  process disclosed, or  represents that its use  would not
+! infringe privately-owned rights.
+!
+! Any reference herein to  any specific commercial products, process, or
+! services by trade name,  trademark, manufacturer or otherwise does not
+! necessarily  constitute or imply  its endorsement,  recommendation, or
+! favoring  by  the  United  States  Government  or  Lawrence  Livermore
+! National Security,  LLC. The views  and opinions of  authors expressed
+! herein do not necessarily state  or reflect those of the United States
+! Government or Lawrence Livermore National Security, LLC, and shall not
+! be used for advertising or product endorsement purposes.
+!***********************************************************************
+
+!-------------------------------------------------------------------------
+! Purpose
+!
+!   Demonstrate use of SILO for creating compound array objects.
+!
+!   Converted from arrayf77.f using https://bitbucket.org/lemonlab/f2f
+!
+!-------------------------------------------------------------------------
+
+    program main
+
+    implicit none
+    include "silo_f9x.inc"
+    integer :: dbid, err, driver, nargs
+    character(256) :: cloption
+
+    character(32) :: elemnames(3)
+    integer :: elemlengths(3), array_id, i
+    real :: values(18)
+
+    character(32) :: g_enames(10)
+    integer :: g_elengths(10), g_nelems, g_nvalues, g_datatype, &
+    g_maxwidth
+
+    real :: g_values(100)
+    real :: foo(100000000)
+    real (kind=8) :: dummy
+
+    data elemnames/"x","y","z"/
+    data elemlengths/4,6,8/
+
+    dummy = DB_MISSING_VALUE_NOT_SET
+    write (*,*) "dummy = ", dummy
+    driver = DB_PDB
+    nargs = iargc()
+    call getarg(1, cloption)
+    if (cloption == "DB_HDF5") then
+        driver = DB_HDF5
+    end if
+
+    err = dbshowerrors(DB_ABORT)
+
+!...Create file named "robb.pdb".  Database ID is returned in 'dbid'.
+
+    err = dbcreate("arrayf77.silo", 13, 0, DB_LOCAL, "file info", &
+    9, driver, dbid)
+
+
+    do i=1, 18
+        values(i) = i/100.0
+    enddo
+
+    err = dbputca (dbid, "carray", 6, elemnames, 32, &
+    elemlengths, 3, values, DB_FLOAT, DB_F77NULL, array_id)
+
+    err = dbclose (dbid)
+
+
+! CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+!  Now try to read from the file...
+! CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+
+    err = dbopen ("arrayf77.silo", 13, DB_UNKNOWN, DB_READ, dbid)
+
+    err = dbgetca (dbid, "carray", 6, 32, g_enames, g_elengths, &
+    g_nelems, g_values, g_nvalues, g_datatype)
+
+    write (*,*) "reading via dbgetca"
+    write (*,*) "number of elements..........", g_nelems
+    write (*,*) "number of values............", g_nvalues
+    write (*,*) "data type...................", g_datatype
+    do i=1, g_nelems
+        write (*,*) "simple array ", i, " name is ", g_enames(i)
+    enddo
+    do i=1, g_nvalues
+        write (*,*) "value ", i, " is ", g_values(i)
+    enddo
+
+
+    g_nvalues = 0
+    do i=1,100
+        g_values(i) = 0
+    enddo
+    err = dbfgetca (dbid, "carray", 6, g_values, g_nvalues)
+
+    write (*,*) "reading via dbfgetca"
+    write (*,*) "number of values............", g_nvalues
+    do i=1, g_nvalues
+        write (*,*) "value ", i, " is ", g_values(i)
+    enddo
+
+
+    g_nelems = 0
+    g_nvalues = 0
+    g_datatype = 0
+    err = dbinqca (dbid, "carray", 6, g_maxwidth, g_nelems, g_nvalues, &
+    g_datatype)
+
+    write (*,*) "reading via dbinqca"
+    write (*,*) "number of elements..........", g_nelems
+    write (*,*) "number of values............", g_nvalues
+    write (*,*) "data type...................", g_datatype
+    write (*,*) "longest name................", g_maxwidth
+
+    err = dbclose (dbid)
+
+    stop
+    END PROGRAM
diff --git a/tests/bcastopen.c b/tests/bcastopen.c
new file mode 100644
index 0000000..8e57509
--- /dev/null
+++ b/tests/bcastopen.c
@@ -0,0 +1,64 @@
+#include <stdlib.h>
+#include <mpi.h>
+#include <hdf5.h>
+#include <silo.h>
+
+DBfile *DBOpenByBcast(char const *filename, MPI_Comm comm, int rank_of_root)
+{
+    int rank;
+    int file_len;
+    void *file_buf;
+    DBfile *retval = 0;
+    DBoptlist *file_optlist;
+    int fic_vfd;
+    int fic_optset;
+
+    MPI_Comm_rank(comm, &rank);
+
+    if (rank == rank_of_root)
+    {
+        hid_t fapl, fid;
+        ssize_t read_len;
+
+        /* Just open the file at the HDF5 level
+           using default (sec2) and get file image from it */
+        /* Could just use stat/open to read the whole file too? */
+        fid = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT);
+        file_len = (int) H5Fget_file_image(fid, NULL, (size_t)0);
+        file_buf = malloc((size_t)file_len);
+        read_len = H5Fget_file_image(fid, file_buf, (size_t)file_len);
+        H5Fclose(fid);
+
+        /* bcast the size */
+        MPI_Bcast(&file_len, 1, MPI_INT, rank_of_root, comm);
+
+        /* bcast the buffer */
+        MPI_Bcast(file_buf, file_len, MPI_BYTE, rank_of_root, comm);
+    }
+    else
+    {
+        /* recv the size */
+        MPI_Bcast(&file_len, 1, MPI_INT, rank_of_root, comm);
+
+        /* recv the buffer */
+        file_buf = (void *) malloc(file_len);
+        MPI_Bcast(file_buf, file_len, MPI_BYTE, rank_of_root, comm);
+    }
+
+    /* Set up a file options set to use this buffer as the file */
+    file_optlist = DBMakeOptlist(10);
+    fic_vfd = DB_H5VFD_FIC;
+    DBAddOption(file_optlist, DBOPT_H5_VFD, &fic_vfd);
+    DBAddOption(file_optlist, DBOPT_H5_FIC_SIZE, &file_len);
+    DBAddOption(file_optlist, DBOPT_H5_FIC_BUF, file_buf);
+    fic_optset = DBRegisterFileOptionsSet(file_optlist);
+        
+    /* Ok, now have Silo open this buffer */
+    retval = DBOpen("dummy", DB_HDF5_OPTS(fic_optset), DB_READ);
+    
+    /* free up the file options set */
+    DBUnregisterFileOptionsSet(fic_optset);
+    DBFreeOptlist(file_optlist);
+
+    return retval;
+}
diff --git a/tests/checksums b/tests/checksums
index ab2aabf..4c3dd22 100755
--- a/tests/checksums
+++ b/tests/checksums
@@ -91,10 +91,19 @@ $topDir/multi_test DB_HDF5 1>/dev/null 2>&1
 # Silo's checksumming is done only on the dataset objects in
 # the file. So, we have to make sure that we corrupt a dataset.
 # We do this using octal dump (od) and looking for some numbers
-# we expect in a silo object (domain_23/fl)
-#
-offset=`od -A d4 -t d4 h5_check_files/multi_ucd3d.h5 | tr '\t' ' ' | tr -s ' ' | grep '167 179 323 311' | cut -d' ' -f1`
-offset=`echo $offset | cut -d' ' -f1`
+# we expect in a silo object (domain_23/fl). Note that od breaks
+# data up into lines of 16 bytes each. Due to variations in HDF5
+# library, the offset at which the sequence 167 179 323 211 can
+# occur can vary. So, we loop over successive starting points
+# each 4 bytes further down the file until we find one.
+#
+offset=0
+skip=0
+while [[ $offset -eq 0 && $skip -lt 13 ]]; do
+    offset=`od -j $skip -A d4 -t d4 h5_check_files/multi_ucd3d.h5 | tr '\t' ' ' | tr -s ' ' | grep '167 179 323 311' | cut -d' ' -f1`
+    offset=`echo $offset | cut -d' ' -f1`
+    skip=$(expr $skip + 4)
+done
 size=`ls -l h5_check_files/multi_ucd3d.h5 | tr -s ' ' | cut -d' ' -f5`
 
 #
@@ -131,7 +140,7 @@ fi
 #
 # Cleanup
 #
-rm -rf h5_check_files
-rm -f multi_ucd3d_corrupt.h5
+#rm -rf h5_check_files
+#rm -f multi_ucd3d_corrupt.h5
 
 exit $result 
diff --git a/tests/csg.c b/tests/csg.c
index 13f8345..6ed982f 100644
--- a/tests/csg.c
+++ b/tests/csg.c
@@ -170,8 +170,8 @@ build_csg(DBfile *dbfile, char *name)
         pv[0] = (void*) var1_data;
         pname[0] = name1;
 
-        DBPutCsgvar(dbfile, "var1", "csgmesh", 1, pname, pv, 2, DB_DOUBLE,
-            DB_ZONECENT, 0);
+        DBPutCsgvar(dbfile, "var1", "csgmesh", 1, (DBCAS_t) pname,
+            (void const * const *) pv, 2, DB_DOUBLE, DB_ZONECENT, 0);
 
         DBFreeCsgvar(DBGetCsgvar(dbfile, "var1"));
     }
diff --git a/tests/dir.c b/tests/dir.c
index 75263ef..624369c 100644
--- a/tests/dir.c
+++ b/tests/dir.c
@@ -84,7 +84,7 @@ extern int build_ucd_tri(DBfile *dbfile, char *name);
  *
  *-------------------------------------------------------------------------
  */
-main(int argc, char *argv[])
+int main(int argc, char *argv[])
 {
     
     int            meshid, diridq, diridu, diridt;
diff --git a/tests/efcentering.c b/tests/efcentering.c
index 6e8652e..9488415 100644
--- a/tests/efcentering.c
+++ b/tests/efcentering.c
@@ -325,14 +325,14 @@ main(int argc, char *argv[])
         }
     }
 
-    DBPutQuadmesh(dbfile, "qmesh2", coordnames, coords, dims, 2, DB_FLOAT, DB_NONCOLLINEAR, 0);
-    DBPutQuadmesh(dbfile, "qmesh3", coordnames, coords, dims, 3, DB_FLOAT, DB_NONCOLLINEAR, 0);
+    DBPutQuadmesh(dbfile, "qmesh2", (DBCAS_t) coordnames, coords, dims, 2, DB_FLOAT, DB_NONCOLLINEAR, 0);
+    DBPutQuadmesh(dbfile, "qmesh3", (DBCAS_t) coordnames, coords, dims, 3, DB_FLOAT, DB_NONCOLLINEAR, 0);
     DBPutQuadvar1(dbfile, "qevar2", "qmesh2", evar2d, dims, 2, 0, 0, DB_FLOAT, DB_EDGECENT, 0);
     DBPutQuadvar1(dbfile, "qevar3", "qmesh3", evar3d, dims, 3, 0, 0, DB_FLOAT, DB_EDGECENT, 0);
     DBPutQuadvar1(dbfile, "qfvar3", "qmesh3", fvar3d, dims, 3, 0, 0, DB_FLOAT, DB_FACECENT, 0);
 
-    DBPutUcdmesh(dbfile, "umesh2", 2, coordnames, coords, 16, 9,  "um2zl", 0, DB_FLOAT, 0);
-    DBPutUcdmesh(dbfile, "umesh3", 3, coordnames, coords, 64, 27, "um3zl", 0, DB_FLOAT, 0);
+    DBPutUcdmesh(dbfile, "umesh2", 2, (DBCAS_t) coordnames, coords, 16, 9,  "um2zl", 0, DB_FLOAT, 0);
+    DBPutUcdmesh(dbfile, "umesh3", 3, (DBCAS_t) coordnames, coords, 64, 27, "um3zl", 0, DB_FLOAT, 0);
     DBPutZonelist2(dbfile, "um2zl", 9, 2, nodelist2, ss2*sc2, 0, 0, 0, &st2, &ss2, &sc2, 1, 0);
     DBPutZonelist2(dbfile, "um3zl", 27, 3, nodelist3, ss3*sc3, 0, 0, 0, &st3, &ss3, &sc3, 1, 0);
 
diff --git a/tests/empty.c b/tests/empty.c
index b4c276a..6b297f6 100644
--- a/tests/empty.c
+++ b/tests/empty.c
@@ -59,32 +59,68 @@ product endorsement purposes.
 
 #include <std.c>
 
-#define ASSERT(FUNCCALL,RETPRED0,RETPRED1)                                                              \
-{   int retval = FUNCCALL;                                                                              \
-    if (pass == 0)                                                                                      \
-    {                                                                                                   \
-        if(!(RETPRED0)){fprintf(stderr,"On empty object rejection pass, assertion \"%s\" at line %d failed\n",#RETPRED0,__LINE__);abort();} \
-    }                                                                                                   \
-    else                                                                                                \
-    {                                                                                                   \
-        if(!(RETPRED1)){fprintf(stderr,"On empty object allow pass, assertion \"%s\" at line %d failed\n",#RETPRED1,__LINE__);abort();} \
-    }                                                                                                   \
+static DBfile *dbfile = NULL;
+
+#define ASSERT(FUNCCALL,RETPRED0,RETPRED1)		\
+{   int retval, i=0; 					\
+    char nm[256];					\
+    strncpy(nm, #FUNCCALL, sizeof(nm)); 		\
+    while (nm[i] != '(') i++;				\
+    if (nm[i-1]=='1'||nm[i-1]=='2') nm[i-1] = '\0';	\
+    nm[i] = '\0';					\
+							\
+    if (pass == 0)                                      \
+    {                                                   \
+        DBMkDir(dbfile, nm);				\
+        DBSetDir(dbfile, nm);				\
+        retval = FUNCCALL;                              \
+        if(!(RETPRED0)){fprintf(stderr,"On empty object " \
+            "rejection pass, assertion \"%s\" at line %d" \
+            " failed\n",#RETPRED0,__LINE__);abort();}   \
+        DBSetDir(dbfile, "..");				\
+    }                                                   \
+    else                                                \
+    {                                                   \
+        DBSetDir(dbfile, nm);				\
+        retval = FUNCCALL;                              \
+        if(!(RETPRED1)){fprintf(stderr,"On empty object "\
+            "allow pass, assertion \"%s\" at line %d "	\
+            "failed\n",#RETPRED1,__LINE__);abort();}    \
+        DBSetDir(dbfile, "..");				\
+    }                                                   \
+}
+
+static DBoptlist *OL(DBoptlist *ol)
+{
+    double *dtime = (double*) DBGetOption(ol, DBOPT_DTIME);
+    int *hfg = (int*) DBGetOption(ol, DBOPT_HIDE_FROM_GUI);
+    *dtime+=5;
+    *hfg+=1;
+    return ol;
 }
 
 int
 main(int argc, char *argv[])
 {
-    DBfile         *dbfile = NULL;
     int		    driver = DB_PDB;
     char 	    *filename = "empty.silo";
     int             show_all_errors = FALSE;
     int             i, pass;
-    char           *cnames[3] = {"x","y","z"};
-    void const     *coords[3] = {(void*)1,(void*)2,(void*)3}; /* really funky dummy pointers */
-    void const     *vars[3] = {(void*)1,(void*)2,(void*)3}; /* really funky dummy pointers */
+    char const * const cnames[3] = {"x","y","z"};
+    void           *coords[3] = {(void*)1,(void*)2,(void*)3}; /* really funky dummy pointers */
+    void           *vars[3] = {(void*)1,(void*)2,(void*)3}; /* really funky dummy pointers */
+    void const * const vvars[3] = {(void*)1,(void*)2,(void*)3}; /* really funky dummy pointers */
     void           *var = (void*)1;
     int             iarr[3] = {1,1,1}; /* dummy int array */
+    int             ZDIMS[3] = {0,0,0};
     double          exts[4] = {0,0,0,0};
+    DBoptlist      *ol = 0;
+    double          dtime = 0.0;
+    int             hide_from_gui=0;
+    int            *gnodeno = 0;
+    int            *gzoneno = 0;
+    char           *ghostn = 0;
+    char           *ghostz = 0;
 
     /* Parse command-line */
     for (i=1; i<argc; i++) {
@@ -97,68 +133,138 @@ main(int argc, char *argv[])
 	}
     }
     
+    DBSetDeprecateWarnings(0);
     DBShowErrors(show_all_errors?DB_ALL_AND_DRVR:DB_NONE, NULL);
     printf("Creating test file \"%s\".\n", filename);
     dbfile = DBCreate(filename, DB_CLOBBER, DB_LOCAL, "test empty silo objects", driver);
 
+    ol = DBMakeOptlist(10);
+    DBAddOption(ol, DBOPT_DTIME, &dtime);
+    DBAddOption(ol, DBOPT_HIDE_FROM_GUI, &hide_from_gui);
+    DBAddOption(ol, DBOPT_NODENUM, gnodeno);
+    DBAddOption(ol, DBOPT_ZONENUM, gzoneno);
+    DBAddOption(ol, DBOPT_GHOST_NODE_LABELS, ghostn);
+    DBAddOption(ol, DBOPT_GHOST_ZONE_LABELS, ghostz);
+
     /* first pass confirms we catch bad arguments; second pass confirms we permit empty objects */
     for (pass = 0; pass < 2; pass++)
     {
-        int dt = DB_FLOAT;
-        int ct = DB_ZONECENT;
+        const int dt = DB_FLOAT;
+        const int ct = DB_ZONECENT;
+        const int ZZ = 0; /* Used for sole arg causing emptiness */
         if (pass) DBSetAllowEmptyObjects(1);
 
         /* Because references to the following objects will not ever appear in a
            multi-xxx object, we do not currently test for support of empties...
                DBPutUcdsubmesh, DBPutMrgtree, DBPutMrgvar, DBPutGroupelmap
+
+           Note: 'ZZ' or 'ZDIMS' is the key argument in each call that triggers an empty
         */
 
         /* empty curve objects */
-        ASSERT(DBPutCurve(dbfile,"empty_curve",coords[0],coords[0],0,0,0),retval<0,retval==0);
+        ASSERT(DBPutCurve(dbfile,"empty_curvea",coords[0],coords[0],dt,ZZ,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCurve(dbfile,"empty_curveb",        0,coords[0],dt,ZZ,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCurve(dbfile,"empty_curvec",coords[0],        0,dt,ZZ,OL(ol)),retval<0,retval==0);
 
         /* empty point meshes and vars */
-        ASSERT(DBPutPointmesh(dbfile,"empty_pointmesh",1,coords,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutPointvar(dbfile,"pv","empty_pointmesh",1,vars,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutPointvar1(dbfile,"pv1","empty_pointmesh",var,0,0,0),retval<0,retval==0);
+        ASSERT(DBPutPointmesh(dbfile,"empty_pointmesha",1,coords,ZZ,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPointmesh(dbfile,"empty_pointmeshb",3,     0,ZZ,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPointvar(dbfile,"pva","empty_pointmesha",1,vars,ZZ,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPointvar(dbfile,"pvb","empty_pointmesha",3,   0,ZZ,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPointvar1(dbfile,"pv1a","empty_pointmesha",var,ZZ,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPointvar1(dbfile,"pv1b","empty_pointmesha",  0,ZZ,dt,OL(ol)),retval<0,retval==0);
+
+        /* empty quad meshes and vars (ZDIMS is the magic zero'ing arg) */
+        ASSERT(DBPutQuadmesh(dbfile,"empty_quadmesha",     0,coords,ZDIMS,1,dt,DB_COLLINEAR,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutQuadmesh(dbfile,"empty_quadmeshb",cnames,     0,ZDIMS,2,dt,DB_COLLINEAR,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutQuadmesh(dbfile,"empty_quadmeshc",cnames,coords,ZDIMS,3,dt,DB_COLLINEAR,OL(ol)),retval<0,retval==0);
 
-        /* empty quad meshes and vars */
-        ASSERT(DBPutQuadmesh(dbfile,"empty_quadmesh",cnames,coords,iarr,0,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutQuadvar(dbfile,"qv","empty_quadmesh",0,cnames,vars,iarr,0,0,0,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutQuadvar1(dbfile,"qv1","empty_quadmesh",0,0,0,0,0,dt,ct,0),retval<0,retval==0);
+        ASSERT(DBPutQuadvar(dbfile,"qva","empty_quadmesha",2,     0,vars,ZDIMS,2,0,0,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutQuadvar(dbfile,"qvb","empty_quadmesha",3,cnames,   0,ZDIMS,3,0,0,dt,ct,OL(ol)),retval<0,retval==0);
+
+        ASSERT(DBPutQuadvar1(dbfile,"qv1a","empty_quadmesha",  0,ZDIMS,ZZ,var,0,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutQuadvar1(dbfile,"qv1b","empty_quadmesha",var,ZDIMS,ZZ,  0,0,dt,ct,OL(ol)),retval<0,retval==0);
 
         /* empty ucd meshes, facelists, zonelists and vars */
-        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh1",0,cnames,coords,8,1,"foo","bar",0,0),retval<0,retval==0);
-        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh2",1,cnames,coords,0,1,"foo","bar",0,0),retval<0,retval==0);
-        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh3",1,cnames,coords,8,0,"foo","bar",0,0),retval<0,retval==0);
-        ASSERT(DBPutFacelist(dbfile,"empty_facelista",0,1,iarr,1,1,iarr,iarr,iarr,1,iarr,iarr,1),retval<0,retval==0);
-        ASSERT(DBPutFacelist(dbfile,"empty_facelistb",1,0,iarr,1,1,iarr,iarr,iarr,1,iarr,iarr,1),retval<0,retval==0);
-        ASSERT(DBPutFacelist(dbfile,"empty_facelistc",1,1,iarr,0,1,iarr,iarr,iarr,1,iarr,iarr,1),retval<0,retval==0);
-        ASSERT(DBPutFacelist(dbfile,"empty_facelistd",1,1,iarr,1,1,iarr,iarr,iarr,0,iarr,iarr,1),retval<0,retval==0);
-        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2a",0,1,iarr,1,0,0,0,iarr,iarr,iarr,1,0),retval<0,retval==0);
-        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2b",1,0,iarr,1,0,0,0,iarr,iarr,iarr,1,0),retval<0,retval==0);
-        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2c",1,1,iarr,0,0,0,0,iarr,iarr,iarr,1,0),retval<0,retval==0);
-        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2d",1,1,iarr,1,0,0,0,iarr,iarr,iarr,0,0),retval<0,retval==0);
-        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelista",0,iarr,1,iarr,cnames[0],1,iarr,1,iarr,0,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelistb",1,iarr,0,iarr,cnames[0],1,iarr,1,iarr,0,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutUcdvar(dbfile,"uva","empty_ucdmesh1",0,cnames,vars,1,vars,1,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutUcdvar(dbfile,"uvb","empty_ucdmesh1",1,cnames,vars,0,vars,1,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutUcdvar1(dbfile,"uv1","empty_ucdmesh1",var,0,vars,1,0,0,0),retval<0,retval==0);
+        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh1",3,cnames,coords,ZZ,1,"foo","bar",dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh2",1,     0,coords,ZZ,1,"foo","bar",dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh3",2,cnames,     0,ZZ,0,"foo","bar",dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdmesh(dbfile,"empty_ucdmesh3",0,     0,     0,ZZ,0,    0,    0,dt,OL(ol)),retval<0,retval==0);
+
+        ASSERT(DBPutFacelist(dbfile,"empty_facelista",ZZ,0,iarr,1,1,iarr,iarr,iarr,1,iarr,iarr,1),retval<0,retval==0);
+        ASSERT(DBPutFacelist(dbfile,"empty_facelistb",ZZ,0,   0,1,1,iarr,iarr,iarr,1,iarr,iarr,1),retval<0,retval==0);
+        ASSERT(DBPutFacelist(dbfile,"empty_facelistc",ZZ,0,iarr,1,1,   0,iarr,iarr,1,iarr,iarr,1),retval<0,retval==0);
+        ASSERT(DBPutFacelist(dbfile,"empty_facelistd",ZZ,0,iarr,1,1,iarr,   0,iarr,1,iarr,iarr,1),retval<0,retval==0);
+        ASSERT(DBPutFacelist(dbfile,"empty_faceliste",ZZ,0,iarr,1,1,iarr,iarr,   0,1,iarr,iarr,1),retval<0,retval==0);
+        ASSERT(DBPutFacelist(dbfile,"empty_facelistf",ZZ,0,iarr,1,1,iarr,iarr,iarr,1,   0,iarr,1),retval<0,retval==0);
+        ASSERT(DBPutFacelist(dbfile,"empty_facelistg",ZZ,0,iarr,1,1,iarr,iarr,iarr,1,iarr,   0,1),retval<0,retval==0);
+
+        ASSERT(DBPutZonelist(dbfile,"empty_zonelista",ZZ,1,iarr,10,0,iarr,iarr,10),retval<0,retval==0);
+        ASSERT(DBPutZonelist(dbfile,"empty_zonelistb",ZZ,1,   0,10,0,iarr,iarr,10),retval<0,retval==0);
+        ASSERT(DBPutZonelist(dbfile,"empty_zonelistc",ZZ,1,iarr,10,0,   0,iarr,10),retval<0,retval==0);
+        ASSERT(DBPutZonelist(dbfile,"empty_zonelistd",ZZ,1,iarr,10,0,iarr,    0,10),retval<0,retval==0);
+
+        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2a",ZZ,1,iarr,1,0,0,0,iarr,iarr,iarr,1,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2b",ZZ,0,   0,1,3,3,3,iarr,iarr,iarr,1,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2c",ZZ,1,iarr,0,3,3,3,   0,iarr,iarr,1,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2d",ZZ,1,iarr,1,0,3,0,iarr,   0,iarr,0,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutZonelist2(dbfile,"empty_zonelist2e",ZZ,1,iarr,1,3,0,0,iarr,iarr,   0,1,OL(ol)),retval<0,retval==0);
+
+        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelista",ZZ,iarr,1,iarr,cnames[0],1,iarr,1,iarr,0,0,0,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelistb",ZZ,   0,1,iarr,cnames[0],1,iarr,1,iarr,0,0,0,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelistc",ZZ,iarr,1,   0,cnames[0],1,iarr,1,iarr,0,0,0,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelistd",ZZ,iarr,1,iarr,        0,1,iarr,1,iarr,0,0,0,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPHZonelist(dbfile,"empty_phzoneliste",ZZ,iarr,1,iarr,cnames[0],1,   0,1,iarr,0,0,0,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutPHZonelist(dbfile,"empty_phzonelistf",ZZ,iarr,1,iarr,cnames[0],1,iarr,1,   0,0,0,0,OL(ol)),retval<0,retval==0);
+
+        ASSERT(DBPutUcdvar(dbfile,"uva","empty_ucdmesh1",0,cnames,vars,ZZ,vars,1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar(dbfile,"uvb","empty_ucdmesh1",1,     0,vars,ZZ,vars,1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar(dbfile,"uvc","empty_ucdmesh1",2,cnames,   0,ZZ,vars,1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar(dbfile,"uvd","empty_ucdmesh1",3,cnames,vars,ZZ,   0,1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar(dbfile,"uve","empty_ucdmesh1",3,     0,   0,ZZ,   0,1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar1(dbfile,"uv1a","empty_ucdmesh1",var,ZZ,vars[0],1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar1(dbfile,"uv1b","empty_ucdmesh1",  0,ZZ,vars[0],1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar1(dbfile,"uv1c","empty_ucdmesh1",var,ZZ,      0,1,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutUcdvar1(dbfile,"uv1d","empty_ucdmesh1",  0,ZZ,      0,1,dt,ct,OL(ol)),retval<0,retval==0);
 
         /* csg meshes and vars */
-        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh1",0,1,iarr,iarr,var,1,0,exts,"foo",0),retval<0,retval==0);
-        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh2",1,0,iarr,iarr,var,1,0,exts,"foo",0),retval<0,retval==0);
-        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh3",1,1,iarr,iarr,var,0,0,exts,"foo",0),retval<0,retval==0);
-        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzonelista",0,iarr,iarr,iarr,0,0,0,1,iarr,0),retval<0,retval==0);
-        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzonelistb",1,iarr,iarr,iarr,0,0,0,0,iarr,0),retval<0,retval==0);
-        ASSERT(DBPutCsgvar(dbfile,"csgva","empty_csgmesh1",0,cnames,vars,1,0,0,0),retval<0,retval==0);
-        ASSERT(DBPutCsgvar(dbfile,"csgvb","empty_csgmesh1",1,cnames,vars,0,0,0,0),retval<0,retval==0);
+        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh1",2,ZZ,   0,iarr,var,1,dt,exts,"foo",OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh2",2,ZZ,iarr,   0,var,2,dt,exts,"foo",OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh3",3,ZZ,iarr,iarr,  0,3,dt,exts,"foo",OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCsgmesh(dbfile,"empty_csgmesh4",3,ZZ,iarr,iarr,var,0,dt,exts,"foo",OL(ol)),retval<0,retval==0);
+
+        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzonelista",0,iarr,iarr,iarr,0,0,dt,ZZ,iarr,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzonelistb",1,   0,iarr,iarr,0,0,dt,ZZ,iarr,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzonelistc",1,iarr,   0,iarr,0,0,dt,ZZ,iarr,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzonelistd",1,iarr,iarr,   0,0,0,dt,ZZ,iarr,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCSGZonelist(dbfile,"empty_csgzoneliste",1,iarr,iarr,iarr,0,0,dt,ZZ,   0,OL(ol)),retval<0,retval==0);
+
+        ASSERT(DBPutCsgvar(dbfile,"csgva","empty_csgmesh1",0,cnames,vvars,ZZ,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCsgvar(dbfile,"csgvb","empty_csgmesh1",1,     0,vvars,ZZ,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCsgvar(dbfile,"csgvc","empty_csgmesh1",1,cnames,   0, ZZ,dt,ct,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutCsgvar(dbfile,"csgvd","empty_csgmesh1",1,cnames,vvars,ZZ,dt,ct,OL(ol)),retval<0,retval==0);
 
         /* empty materials and species */
-        ASSERT(DBPutMaterial(dbfile,"empty_mata","foo",0,iarr,iarr,iarr,1,iarr,iarr,iarr,iarr,1,0,0),retval<0,retval==0);
-        ASSERT(DBPutMaterial(dbfile,"empty_matb","foo",1,iarr,iarr,iarr,0,iarr,iarr,iarr,iarr,1,0,0),retval<0,retval==0);
-        ASSERT(DBPutMatspecies(dbfile,"empty_speca","empty_mata",0,iarr,iarr,iarr,1,1,var,iarr,1,0,0),retval<0,retval==0);
-        ASSERT(DBPutMatspecies(dbfile,"empty_specb","empty_mata",1,iarr,iarr,iarr,0,1,var,iarr,1,0,0),retval<0,retval==0);
-        ASSERT(DBPutMatspecies(dbfile,"empty_specc","empty_mata",1,iarr,iarr,iarr,1,0,var,iarr,1,0,0),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_mata","foo",1,iarr,iarr,ZDIMS,1,iarr,iarr,iarr,vars[0],1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_matb","foo",1,   0,iarr,ZDIMS,1,iarr,iarr,iarr,vars[0],1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_matc","foo",1,iarr,   0,ZDIMS,1,iarr,iarr,iarr,vars[0],1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_matd","foo",1,iarr,iarr,ZDIMS,1,   0,iarr,iarr,vars[0],1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_mate","foo",1,iarr,iarr,ZDIMS,1,iarr,   0,iarr,vars[0],1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_matf","foo",1,iarr,iarr,ZDIMS,1,iarr,iarr,   0,vars[0],1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMaterial(dbfile,"empty_matg","foo",1,iarr,iarr,ZDIMS,1,iarr,iarr,iarr,   0,1,dt,OL(ol)),retval<0,retval==0);
+
+        /* empty matspecies via dims[i] == 0 */
+        ASSERT(DBPutMatspecies(dbfile,"empty_speca","empty_mata",1,iarr,iarr,ZDIMS,1,1,var,iarr,1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMatspecies(dbfile,"empty_specb","empty_mata",1,iarr,iarr,ZDIMS,2,1,var,iarr,1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMatspecies(dbfile,"empty_specc","empty_mata",1,iarr,iarr,ZDIMS,3,1,var,iarr,1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMatspecies(dbfile,"empty_specd","empty_mata",1,iarr,iarr,ZDIMS,1,1,  0,iarr,1,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMatspecies(dbfile,"empty_spece","empty_mata",1,iarr,iarr,ZDIMS,1,1,var,   0,0,dt,OL(ol)),retval<0,retval==0);
+
+        /* empty matspeces via nspecies_mf==0 */
+        { int nd=2, d[2]={3,2}, slm[6]={0,0,-1,-3,0,0}, ml=4, msl[4]={1,2,1,2}, slc[6]={0,0,0,0,0,0};
+        ASSERT(DBPutMatspecies(dbfile,"empty_specf","empty_mata",1,iarr,slc,d,nd,ZZ,var,  0, 0,dt,OL(ol)),retval<0,retval==0);
+        ASSERT(DBPutMatspecies(dbfile,"empty_specg","empty_mata",1,iarr,slm,d,nd,ZZ,var,msl,ml,dt,OL(ol)),retval<0,retval==0);
+        }
     }
 
     DBClose(dbfile);
@@ -168,127 +274,185 @@ main(int argc, char *argv[])
     dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ);
 
     /* test read back of empty curves */
-    {   DBcurve *curve = DBGetCurve(dbfile, "empty_curve");
-        assert(DBIsEmptyCurve(curve));
-        DBFreeCurve(curve);
+    {   int i=0; char *cnames[] = {"empty_curvea", "empty_curveb", "empty_curvec", 0};
+        DBSetDir(dbfile, "DBPutCurve");
+        while (cnames[i])
+        {
+            DBcurve *curve = DBGetCurve(dbfile, cnames[i++]);
+            assert(DBIsEmptyCurve(curve));
+            DBFreeCurve(curve);
+        }
+        DBSetDir(dbfile, "..");
     }
 
     /* test read back of empty point meshes and vars */
-    {   DBpointmesh *pointmesh = DBGetPointmesh(dbfile, "empty_pointmesh");
-        assert(DBIsEmptyPointmesh(pointmesh));
-        DBFreePointmesh(pointmesh);
+    {   int i=0; char *pmnames[] = {"empty_pointmesha", "empty_pointmeshb", 0};
+        DBSetDir(dbfile, "DBPutPointmesh");
+        while (pmnames[i])
+        {
+            DBpointmesh *pointmesh = DBGetPointmesh(dbfile, pmnames[i++]);
+            assert(DBIsEmptyPointmesh(pointmesh));
+            DBFreePointmesh(pointmesh);
+        }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *vnames[] = {"pv", "pv1", 0};
+    {   int i=0; char *vnames[] = {"pva", "pvb", "pv1a", "pv1b", 0};
+        DBSetDir(dbfile, "DBPutPointvar");
         while (vnames[i])
         {
             DBpointvar *pointvar = DBGetPointvar(dbfile, vnames[i++]);
-            DBIsEmptyPointvar(pointvar);
+            assert(DBIsEmptyPointvar(pointvar));
             DBFreePointvar(pointvar);
         }
+        DBSetDir(dbfile, "..");
     }
 
     /* test read back of empty quad meshes and vars */
-    {   DBquadmesh *quadmesh = DBGetQuadmesh(dbfile, "empty_quadmesh");
-        assert(DBIsEmptyQuadmesh(quadmesh));
-        DBFreeQuadmesh(quadmesh);
+    {   int i=0; char *qmnames[] = {"empty_quadmesha", "empty_quadmeshb", "empty_quadmeshc", 0};
+        DBSetDir(dbfile, "DBPutQuadmesh");
+        while (qmnames[i])
+        {
+            DBquadmesh *quadmesh = DBGetQuadmesh(dbfile, qmnames[i++]);
+            assert(DBIsEmptyQuadmesh(quadmesh));
+            DBFreeQuadmesh(quadmesh);
+        }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *vnames[] = {"qv", "qv1", 0};
+    {   int i=0; char *vnames[] = {"qva" , "qvb", "qv1a", "qv1b",  0};
+        DBSetDir(dbfile, "DBPutQuadvar");
         while (vnames[i])
         {
             DBquadvar *quadvar = DBGetQuadvar(dbfile, vnames[i++]);
             assert(DBIsEmptyQuadvar(quadvar));
             DBFreeQuadvar(quadvar);
         }
+        DBSetDir(dbfile, "..");
     }
 
     /* test read back of empty ucd meshes, zonelists and vars */
     {   int i=0; char *mnames[] = {"empty_ucdmesh1", "empty_ucdmesh2", "empty_ucdmesh3", 0};
+        DBSetDir(dbfile, "DBPutUcdmesh");
         while (mnames[i])
         {
             DBucdmesh *ucdmesh = DBGetUcdmesh(dbfile, mnames[i++]);
             assert(DBIsEmptyUcdmesh(ucdmesh));
             DBFreeUcdmesh(ucdmesh);
         }
+        DBSetDir(dbfile, "..");
     }
     {   int i=0; char *flnames[] = {"empty_facelista", "empty_facelistb",
-                                    "empty_facelistc", "empty_facelistd", 0};
+                                    "empty_facelistc", "empty_facelistd",
+                                    "empty_faceliste", "empty_facelistf",
+                                    "empty_facelistg", 0};
+        DBSetDir(dbfile, "DBPutFacelist");
         while (flnames[i])
         {
             DBfacelist *fl = DBGetFacelist(dbfile, flnames[i++]);
             assert(DBIsEmptyFacelist(fl));
             DBFreeFacelist(fl);
         }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *zlnames[] = {"empty_zonelist2a", "empty_zonelist2b",
-                                    "empty_zonelist2c", "empty_zonelist2d", 0};
+    {   int i=0; char *zlnames[] = {"empty_zonelista", "empty_zonelistb",
+                                    "empty_zonelistc", "empty_zonelistd",
+                                    "empty_zonelist2a", "empty_zonelist2b",
+                                    "empty_zonelist2c", "empty_zonelist2d",
+                                    "empty_zonelist2e", 0};
+        DBSetDir(dbfile, "DBPutZonelist");
         while (zlnames[i])
         {
             DBzonelist *zl = DBGetZonelist(dbfile, zlnames[i++]);
             assert(DBIsEmptyZonelist(zl));
             DBFreeZonelist(zl);
         }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *zlnames[] = {"empty_phzonelista", "empty_phzonelistb", 0};
+    {   int i=0; char *zlnames[] = {"empty_phzonelista", "empty_phzonelistb",
+                                    "empty_phzonelistc", "empty_phzonelistd",
+                                    "empty_phzoneliste", "empty_phzonelistf", 0};
+        DBSetDir(dbfile, "DBPutPHZonelist");
         while (zlnames[i])
         {
             DBphzonelist *zl = DBGetPHZonelist(dbfile, zlnames[i++]);
             assert(DBIsEmptyPHZonelist(zl));
             DBFreePHZonelist(zl);
         }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *vnames[] = {"uva", "uvb", "uv1", 0};
+    {   int i=0; char *vnames[] = { "uva",  "uvb",  "uvc",
+                                    "uvd",  "uve",  "uv1a",
+                                    "uv1b", "uv1c", "uv1d", 0};
+        DBSetDir(dbfile, "DBPutUcdvar");
         while (vnames[i])
         {
             DBucdvar *ucdvar = DBGetUcdvar(dbfile, vnames[i++]);
             assert(DBIsEmptyUcdvar(ucdvar));
             DBFreeUcdvar(ucdvar);
         }
+        DBSetDir(dbfile, "..");
     }
 
     /* test read back of empty csg meshes and vars */
     {   int i=0; char *mnames[] = {"empty_csgmesh1", "empty_csgmesh2", "empty_csgmesh3", 0};
+        DBSetDir(dbfile, "DBPutCsgmesh");
         while (mnames[i])
         {
             DBcsgmesh *csgmesh = DBGetCsgmesh(dbfile, mnames[i++]);
             assert(DBIsEmptyCsgmesh(csgmesh));
             DBFreeCsgmesh(csgmesh);
         }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *zlnames[] = {"empty_csgzonelista", "empty_csgzonelistb", 0};
+    {   int i=0; char *zlnames[] = {"empty_csgzonelista", "empty_csgzonelistb",
+                                    "empty_csgzonelistc", "empty_csgzonelistd", 
+                                    "empty_csgzoneliste", 0};
+        DBSetDir(dbfile, "DBPutCSGZonelist");
         while (zlnames[i])
         {
             DBcsgzonelist *zl = DBGetCSGZonelist(dbfile, zlnames[i++]);
             assert(DBIsEmptyCSGZonelist(zl));
             DBFreeCSGZonelist(zl);
         }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *vnames[] = {"csgva", "csgvb", 0};
+    {   int i=0; char *vnames[] = {"csgva", "csgvb", "csgvc", "csgvd", 0};
+        DBSetDir(dbfile, "DBPutCsgvar");
         while (vnames[i])
         {
             DBcsgvar *csgvar = DBGetCsgvar(dbfile, vnames[i++]);
             assert(DBIsEmptyCsgvar(csgvar));
             DBFreeCsgvar(csgvar);
         }
+        DBSetDir(dbfile, "..");
     }
 
     /* test read back of empty materials and matspecies */
-    {   int i=0; char *vnames[] = {"empty_mata", "empty_matb", 0};
+    {   int i=0; char *vnames[] = {"empty_mata", "empty_matb", "empty_matc", "empty_matd",
+                                   "empty_mate", "empty_matf", "empty_matg", 0};
+        DBSetDir(dbfile, "DBPutMaterial");
         while (vnames[i])
         {
             DBmaterial *mat = DBGetMaterial(dbfile, vnames[i++]);
             assert(DBIsEmptyMaterial(mat));
             DBFreeMaterial(mat);
         }
+        DBSetDir(dbfile, "..");
     }
-    {   int i=0; char *vnames[] = {"empty_speca", "empty_specb", "empty_specc", 0};
+    {   int i=0; char *vnames[] = {"empty_speca", "empty_specb", "empty_specc",
+                                   "empty_specd", "empty_spece", "empty_specf", 
+                                   "empty_specg", 0};
+        DBSetDir(dbfile, "DBPutMatspecies");
         while (vnames[i])
         {
             DBmatspecies *spec = DBGetMatspecies(dbfile, vnames[i++]);
             assert(DBIsEmptyMatspecies(spec));
             DBFreeMatspecies(spec);
         }
+        DBSetDir(dbfile, "..");
     }
 
+    DBClose(dbfile);
+
     CleanupDriverStuff();
 
     return 0;
diff --git a/tests/extface.c b/tests/extface.c
index 17b7516..70f17f0 100644
--- a/tests/extface.c
+++ b/tests/extface.c
@@ -1931,8 +1931,8 @@ main(int argc, char *argv[])
         t[i] = i;
     }
 
-    DBPutUcdmesh(dbfile, "mesh1", ndims, coordnames, (void *)coords, nnodes,
-                 nzones, "zl", "fl", DB_DOUBLE, optlist);
+    DBPutUcdmesh(dbfile, "mesh1", ndims, (DBCAS_t) coordnames,
+        coords, nnodes, nzones, "zl", "fl", DB_DOUBLE, optlist);
 
     matnames = (char**)malloc(sizeof(char*)*4);
     matnames[0] = strdup("Inner poles");
diff --git a/tests/grab.c b/tests/grab.c
index 8b89b0a..d248894 100644
--- a/tests/grab.c
+++ b/tests/grab.c
@@ -219,8 +219,8 @@ main(int argc, char *argv[])
       dbfile = DBCreate(filename, DB_CLOBBER, DB_LOCAL, 
          "Native Driver I/O Test", driver);
 
-    DBPutQuadmesh(dbfile, "mesh", coordnames, coords, dims, ndims,
-        DB_FLOAT, DB_NONCOLLINEAR, NULL);
+    DBPutQuadmesh(dbfile, "mesh", (DBCAS_t) coordnames,
+        coords, dims, ndims, DB_FLOAT, DB_NONCOLLINEAR, NULL);
     DBPutQuadvar1(dbfile, "foo", "mesh", var, dims, ndims,
                              NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
     DBPutQuadvar1(dbfile, "bar", "mesh", var, dims, ndims,
diff --git a/tests/group_test.c b/tests/group_test.c
index a0a7d37..b9b1299 100644
--- a/tests/group_test.c
+++ b/tests/group_test.c
@@ -531,49 +531,50 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int nblocks_x,
     /* create the multi-block mesh */
 
     if (DBPutMultimesh(dbfile, "mesh1", nblocks,
-                       meshnames, meshtypes, optlist) == -1)
+            (DBCAS_t) meshnames, meshtypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi mesh\n");
         return (-1);
     }                           /* if */
     /* create the multi-block variables */
-    if (DBPutMultivar(dbfile, "d", nblocks, var1names, vartypes, optlist)
-        == -1)
+    if (DBPutMultivar(dbfile, "d", nblocks,
+            (DBCAS_t) var1names, vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var d\n");
         return (-1);
     }                           /* if */
-    if (DBPutMultivar(dbfile, "p", nblocks, var2names, vartypes, optlist)
-        == -1)
+    if (DBPutMultivar(dbfile, "p", nblocks,
+            (DBCAS_t) var2names, vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var p\n");
         return (-1);
     }                           /* if */
-    if (DBPutMultivar(dbfile, "u", nblocks, var3names, vartypes, optlist)
-        == -1)
+    if (DBPutMultivar(dbfile, "u", nblocks,
+            (DBCAS_t) var3names, vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var u\n");
         return (-1);
     }                           /* if */
-    if (DBPutMultivar(dbfile, "v", nblocks, var4names, vartypes, optlist)
-        == -1)
+    if (DBPutMultivar(dbfile, "v", nblocks,
+            (DBCAS_t) var4names, vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var v\n");
         return (-1);
     }                           /* if */
-    if (DBPutMultivar(dbfile, "w", nblocks, var5names, vartypes, optlist)
-        == -1)
+    if (DBPutMultivar(dbfile, "w", nblocks,
+            (DBCAS_t) var5names, vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var w\n");
         return (-1);
     }                       /* if */
-    if (DBPutMultimat(dbfile, "mat1", nblocks, matnames, optlist) == -1)
+    if (DBPutMultimat(dbfile, "mat1", nblocks,
+            (DBCAS_t) matnames, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi material\n");
@@ -631,7 +632,7 @@ build_block_rect3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
     int             cycle;
     float           time;
     double          dtime;
-    char           *coordnames[3];
+    char const * const coordnames[3] = {"xcoords", "ycoords", "zcoords"};
     int             ndims;
     int             dims[3], zdims[3];
     float          *coords[3];
@@ -701,9 +702,6 @@ build_block_rect3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
      * Create the mesh.
      */
     meshname = "mesh1";
-    coordnames[0] = "xcoords";
-    coordnames[1] = "ycoords";
-    coordnames[2] = "zcoords";
     coords[0] = x;
     coords[1] = y;
     coords[2] = z;
@@ -923,8 +921,8 @@ build_block_rect3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
                       (groupnum == (1+grouporigin) ? (NZ*2/3) : 0);
         DBAddOption(optlist, DBOPT_BASEINDEX, baseindex);
 
-        DBPutQuadmesh(dbfile, meshname, coordnames, coords, dims, ndims,
-                      DB_FLOAT, DB_COLLINEAR, optlist);
+        DBPutQuadmesh(dbfile, meshname, coordnames, coords,
+                      dims, ndims, DB_FLOAT, DB_COLLINEAR, optlist);
 
         DBPutQuadvar1(dbfile, var1name, meshname, d2, zdims, ndims,
                       NULL, 0, DB_FLOAT, DB_ZONECENT, optlist);
@@ -1026,7 +1024,7 @@ build_block_ucd3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
     int             cycle;
     float           time;
     double          dtime;
-    char           *coordnames[3];
+    char const * const coordnames[3] = {"xcoords", "ycoords", "zcoords"};
     float          *coords[3];
     float           *x, *y, *z;
     int             nfaces, nzones, nnodes;
@@ -1216,9 +1214,6 @@ build_block_ucd3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
     dtime = 4.8;
 
     meshname = "mesh1";
-    coordnames[0] = "xcoords";
-    coordnames[1] = "ycoords";
-    coordnames[2] = "zcoords";
 
     var1name = "d";
     var2name = "p";
@@ -1473,28 +1468,28 @@ build_block_ucd3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
 
         vars[0] = d2;
         varnames[0] = var1name;
-        DBPutUcdvar(dbfile, var1name, meshname, 1, varnames, vars,
-                    nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+        DBPutUcdvar(dbfile, var1name, meshname, 1, (DBCAS_t) varnames,
+            vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
         vars[0] = p2;
         varnames[0] = var2name;
-        DBPutUcdvar(dbfile, var2name, meshname, 1, varnames, vars,
-                    nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+        DBPutUcdvar(dbfile, var2name, meshname, 1, (DBCAS_t) varnames,
+            vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
         vars[0] = u2;
         varnames[0] = var3name;
-        DBPutUcdvar(dbfile, var3name, meshname, 1, varnames, vars,
-                    nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+        DBPutUcdvar(dbfile, var3name, meshname, 1, (DBCAS_t) varnames,
+            vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
         vars[0] = v2;
         varnames[0] = var4name;
-        DBPutUcdvar(dbfile, var4name, meshname, 1, varnames, vars,
-                    nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+        DBPutUcdvar(dbfile, var4name, meshname, 1, (DBCAS_t) varnames,
+            vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
         vars[0] = w2;
         varnames[0] = var5name;
-        DBPutUcdvar(dbfile, var5name, meshname, 1, varnames, vars,
-                    nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+        DBPutUcdvar(dbfile, var5name, meshname, 1, (DBCAS_t) varnames,
+            vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
         DBPutMaterial(dbfile, matname, meshname, nmats, matnos,
                       matlist2, &nzones, 1, mix_next, mix_mat, mix_zone,
@@ -1581,7 +1576,7 @@ build_block_curv3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
     int             cycle;
     float           time;
     double          dtime;
-    char           *coordnames[3];
+    char const * const coordnames[3] = {"xcoords", "ycoords", "zcoords"};
     float          *coords[3];
 
     float           *x;
@@ -1664,9 +1659,6 @@ build_block_curv3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
      * Create the mesh. 
      */
     meshname = "mesh1";
-    coordnames[0] = "xcoords";
-    coordnames[1] = "ycoords";
-    coordnames[2] = "zcoords";
     coords[0] = x;
     coords[1] = y;
     coords[2] = z;
@@ -1901,8 +1893,7 @@ build_block_curv3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
         DBAddOption(optlist, DBOPT_BASEINDEX, baseindex);
 
         DBPutQuadmesh(dbfile, meshname, coordnames, coords,
-                      dims, ndims, DB_FLOAT, DB_NONCOLLINEAR,
-                      optlist);
+                      dims, ndims, DB_FLOAT, DB_NONCOLLINEAR, optlist);
 
         DBPutQuadvar1(dbfile, var1name, meshname, d2, zdims, ndims,
                       NULL, 0, DB_FLOAT, DB_ZONECENT, optlist);
diff --git a/tests/ioperf_hdf5.c b/tests/ioperf_hdf5.c
index ac2a6e8..b6166e2 100644
--- a/tests/ioperf_hdf5.c
+++ b/tests/ioperf_hdf5.c
@@ -75,6 +75,9 @@ static const char *filename;
 static hid_t fid;
 static hid_t dspc = -1;
 
+extern herr_t H5Pset_fapl_silo(hid_t);
+extern herr_t H5Pset_silo_block_size_and_count(hid_t, hsize_t, int);
+
 static int Open_hdf5(ioflags_t iopflags)
 {
     hid_t fapl_id = H5Pcreate(H5P_FILE_ACCESS);
diff --git a/tests/ioperf_pdb.c b/tests/ioperf_pdb.c
index 89d01e5..d15612f 100644
--- a/tests/ioperf_pdb.c
+++ b/tests/ioperf_pdb.c
@@ -74,7 +74,7 @@ static int Write_pdb(void *buf, size_t nbytes)
     int status;
     char dsname[256];
     static int n = 0;
-    sprintf(dsname, "data_%07d(%d)", n++, nbytes/sizeof(double));
+    sprintf(dsname, "data_%07d(%d)", n++, (int) (nbytes/sizeof(double)));
     status = lite_PD_write(pdbfile, dsname, "double", buf);
     if (status) return nbytes;
     return 0;
diff --git a/tests/ioperf_silo.c b/tests/ioperf_silo.c
index ce82ace..140c122 100644
--- a/tests/ioperf_silo.c
+++ b/tests/ioperf_silo.c
@@ -89,7 +89,7 @@ static int Write_silo(void *buf, size_t nbytes)
         void *coords[3] = {0, 0, 0};
         coords[0] = buf;
         has_mesh = 1;
-        status = DBPutQuadmesh(dbfile, "mesh", coordnames, coords, dims, 1, DB_DOUBLE, DB_COLLINEAR, 0);
+        status = DBPutQuadmesh(dbfile, "mesh", (DBCAS_t) coordnames, coords, dims, 1, DB_DOUBLE, DB_COLLINEAR, 0);
     }
     else
     {
diff --git a/tests/json.c b/tests/json.c
new file mode 100644
index 0000000..89aeeb6
--- /dev/null
+++ b/tests/json.c
@@ -0,0 +1,220 @@
+/*
+Copyright (c) 1994 - 2010, Lawrence Livermore National Security, LLC.
+LLNL-CODE-425250.
+All rights reserved.
+
+This file is part of Silo. For details, see silo.llnl.gov.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+   * Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the disclaimer below.
+   * Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the disclaimer (as noted
+     below) in the documentation and/or other materials provided with
+     the distribution.
+   * Neither the name of the LLNS/LLNL nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+THIS SOFTWARE  IS PROVIDED BY  THE COPYRIGHT HOLDERS  AND CONTRIBUTORS
+"AS  IS" AND  ANY EXPRESS  OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
+LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A  PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN  NO  EVENT SHALL  LAWRENCE
+LIVERMORE  NATIONAL SECURITY, LLC,  THE U.S.  DEPARTMENT OF  ENERGY OR
+CONTRIBUTORS BE LIABLE FOR  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR  CONSEQUENTIAL DAMAGES  (INCLUDING, BUT NOT  LIMITED TO,
+PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS  OF USE,  DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER  IN CONTRACT, STRICT LIABILITY,  OR TORT (INCLUDING
+NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT  OF THE USE  OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+This work was produced at Lawrence Livermore National Laboratory under
+Contract  No.   DE-AC52-07NA27344 with  the  DOE.  Neither the  United
+States Government  nor Lawrence  Livermore National Security,  LLC nor
+any of  their employees,  makes any warranty,  express or  implied, or
+assumes   any   liability   or   responsibility  for   the   accuracy,
+completeness, or usefulness of any information, apparatus, product, or
+process  disclosed, or  represents  that its  use  would not  infringe
+privately-owned   rights.  Any  reference   herein  to   any  specific
+commercial products,  process, or  services by trade  name, trademark,
+manufacturer or otherwise does not necessarily constitute or imply its
+endorsement,  recommendation,   or  favoring  by   the  United  States
+Government or Lawrence Livermore National Security, LLC. The views and
+opinions  of authors  expressed  herein do  not  necessarily state  or
+reflect those  of the United  States Government or  Lawrence Livermore
+National  Security, LLC,  and shall  not  be used  for advertising  or
+product endorsement purposes.
+*/
+
+#include <math.h>
+#include <fcntl.h>
+#include <float.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <config.h>
+
+#include <silo.h>
+#include <silo_json.h>
+
+#include <std.c>
+
+static void json_object_print_extptr_header(json_object *obj)
+{
+    int i, ndims;
+    char *dtstr;
+
+    if (!json_object_is_extptr(obj)) return;
+
+    dtstr = DBGetDatatypeString(json_object_get_extptr_datatype(obj));
+    printf("datatype = %s, ", dtstr);
+    free(dtstr);
+    ndims = json_object_get_extptr_ndims(obj);
+    printf("ndims = %d ", ndims);
+    printf("dims = ");
+    for (i = 0; i < ndims; i++)
+        printf("%d, ", json_object_get_extptr_dims_idx(obj, i));
+    printf("\n");
+}
+
+int
+main(int argc, char *argv[])
+{
+    DBfile         *dbfile = NULL;
+    int		    fd, i, driver = DB_PDB;
+    char 	    *filename = "onehex.silo";
+    int             show_all_errors = FALSE;
+    struct json_object *jsilo_obj, *fil_obj, *jstuff, *jarr;
+    char            *binary_obj_strA;
+    void            *binary_obj_strB;
+
+    /* Parse command-line */
+    for (i=1; i<argc; i++) {
+	if (!strncmp(argv[i], "DB_", 3)) {
+	    driver = StringToDriver(argv[i]);
+        } else if (!strcmp(argv[i], "show-all-errors")) {
+            show_all_errors = 1;
+	} else if (argv[i][0] != '\0') {
+	    fprintf(stderr, "%s: ignored argument `%s'\n", argv[0], argv[i]);
+	}
+    }
+    
+    DBShowErrors(show_all_errors?DB_ALL_AND_DRVR:DB_ABORT, NULL);
+    dbfile = DBOpen(filename, driver, DB_READ);
+
+    /* Example of getting a Silo object from a silo file as a json object */
+    jsilo_obj = DBGetJsonObject(dbfile, "hex");
+    DBClose(dbfile);
+
+    /* Test interface to query extptr members from jsilo_obj */
+    {
+        json_object *jcoord_obj, *jzl_obj, *jnodelist_obj;
+        int i, ndims;
+
+        if (json_object_object_get_ex(jsilo_obj, "coord0", &jcoord_obj))
+        {
+            printf("For json member named \"coord0\": ");
+            json_object_print_extptr_header(jcoord_obj);
+        }
+        else
+        {
+            fprintf(stderr, "Failed to find json member named \"coord0\"\n");
+            return 1;
+        }
+
+        if (json_object_object_get_ex(jsilo_obj, "zonelist", &jzl_obj) &&
+            json_object_object_get_ex(jzl_obj, "nodelist", &jnodelist_obj))
+        {
+            printf("For json sub-member named \"nodelist\": ");
+            json_object_print_extptr_header(jnodelist_obj);
+        }
+        else
+        {
+            fprintf(stderr, "Failed to find json sub-member named \"nodelist\"\n");
+            return 1;
+        }
+    }
+
+    /* Test interface to serialize json object into an ascii string */
+    {
+        char const *obj_strA = json_object_to_json_string_ext(jsilo_obj, 0);
+        printf("Serialize to String::BEGIN[\n");
+        printf("----------------------------------------------------\n");
+        printf("%s\n", obj_strA);
+        printf("----------------------------------------------------\n");
+        printf("Serialize to String::END]\n");
+        /*free(obj_strA); string is owned by pbuf of jsilo_obj */
+    }
+
+    /* Test interface to serialize and write to an ascii file */
+    {
+        json_object *file_obj;
+        json_object_to_file("onehex.json", jsilo_obj);
+        file_obj = json_object_from_file("onehex.json");
+        json_object_put(file_obj);
+    }
+
+#if 0
+    binary_obj_strA = json_object_to_json_string_ext(jsilo_obj, JSON_C_TO_STRING_EXTPTR_AS_BINARY);
+    printf("binary object is of size %d\n", printbuf_length(jsilo_obj->_pb));
+    fd = open("onehex-A.bson", O_CREAT|O_TRUNC|O_WRONLY, S_IRUSR|S_IWUSR);
+    write(fd, binary_obj_strA, printbuf_length(jsilo_obj->_pb));
+    close(fd);
+#endif
+
+    /* Example of creating a serialized, binary buffer of a Silo json object and then
+       writing it to a binary file. */
+    { void *buf; int len;
+    struct json_object *bobj;
+    json_object_to_binary_buf(jsilo_obj, 0, &buf, &len);
+    fd = open("onehex-B.bson", O_CREAT|O_TRUNC|O_WRONLY, S_IRUSR|S_IWUSR);
+    write(fd, buf, len);
+    close(fd);
+
+    /* Example of re-constituting a Silo json object from a binary buffer
+       and writing it to a Silo file using DBWriteJsonObject */
+    bobj = json_object_from_binary_buf(buf, len);
+    printf("bojb =%s\n", json_object_to_json_string(bobj));
+    dbfile = DBCreate("onehex_from_binary_json.pdb", DB_CLOBBER, DB_LOCAL, "test binary json output", DB_PDB);
+    DBWriteJsonObject(dbfile, bobj);
+    json_object_put(bobj);
+    DBClose(dbfile);
+    free(buf);
+    }
+
+    /* Example of taking a standard silo object and adding some arbitrary stuff to it */
+    json_object_to_file("onehex.json", jsilo_obj);
+    json_object_put(jsilo_obj);
+    fil_obj = json_object_from_file("onehex.json");
+    json_object_reconstitute_extptrs(fil_obj);
+    printf("fil_obj=%s\n", json_object_to_json_string(fil_obj));
+
+    jstuff = json_object_new_object();
+    json_object_object_add(jstuff, "foo", json_object_new_boolean(0));
+    json_object_object_add(jstuff, "a_double", json_object_new_double(1.5));
+    json_object_object_add(jstuff, "b_int", json_object_new_int(33));
+
+    jarr = json_object_new_array();
+    json_object_array_add(jarr, json_object_new_double(0.5));
+    json_object_array_add(jarr, json_object_new_double(97.0));
+    json_object_array_add(jarr, json_object_new_double(21.666));
+    json_object_object_add(jstuff, "array", jarr);
+
+    json_object_object_add(fil_obj, "katie_data", jstuff);
+
+    dbfile = DBCreate("onehex_from_json.pdb", DB_CLOBBER, DB_LOCAL, "test json output", DB_PDB);
+    DBWriteJsonObject(dbfile, fil_obj);
+    DBClose(dbfile);
+    json_object_put(fil_obj);
+
+    CleanupDriverStuff();
+
+    return 0;
+}
diff --git a/tests/listtypes.c b/tests/listtypes.c
index 2bdda18..5bd60f7 100644
--- a/tests/listtypes.c
+++ b/tests/listtypes.c
@@ -56,13 +56,16 @@ be used for advertising or product endorsement purposes.
 #include <string.h>
 #include <silo.h>
 #include <config.h>
+#ifdef HAVE_HDF5_H
+#include <hdf5.h>
+#endif
 
 #define ALLOC_N(T, N) (T *)malloc((N) * sizeof(T))
 #define FREE(P) if(P) {free(P); (P) = NULL;}
 
 /* Prototypes */
-void PrintFileComponentTypes(char *);
-void PrintObjectComponentsType(DBfile *, char *, char *);
+void PrintFileComponentTypes(DBfile*, FILE*);
+static void PrintObjectComponentsType(DBfile *, FILE*, char *, char *);
 
 /*********************************************************************
  *
@@ -87,7 +90,7 @@ void PrintObjectComponentsType(DBfile *, char *, char *);
  *   Made long long support UNconditionally compiled.
  ********************************************************************/
 
-char *
+static char *
 IntToTypename(int type)
 {
     char *retval;
@@ -127,51 +130,6 @@ IntToTypename(int type)
 
 /*********************************************************************
  *
- * Purpose: Main function for listtypes.c. This function iterates
- *          over the command line arguments and supplies them to
- *          a function that prints the component types for a file.
- *          This program tests the DBGetComponentType function.
- *
- * Programmer: Brad Whitlock
- * Date:       Thu Jan 20 13:05:37 PST 2000
- *
- * Input Arguments:
- *     argc : The number of command line arguments.
- *     argv : An array containing the command line arguments.
- *
- * Modifications:
- *     Thomas R. Treadway, Thu Jul  5 16:33:38 PDT 2007
- *     Chaneged main's return type to int, to stop gcc-4.x whining.
- *
- ********************************************************************/
-
-int
-main(int argc, char *argv[])
-{
-    int i;
-
-    if(argc < 2)
-    {
-        printf("Usage: listtypes filename [filename ...]\n");
-        exit(0);
-    }
-
-    DBShowErrors (DB_NONE, NULL);
-
-    /* Print the types for components in the specified files. */
-    for(i = 1; i < argc; i++)
-    {
-        if (!strcmp(argv[i], "show-all-errors"))
-            DBShowErrors (DB_ALL_AND_DRVR, NULL);
-        else
-            PrintFileComponentTypes(argv[i]);
-    }
-    
-    return 0;
-}
-
-/*********************************************************************
- *
  * Purpose: Macroize code that processes entries in the TOC.
  *
  * The last 'S' argument to the macro is used to handle plural or
@@ -185,12 +143,12 @@ main(int argc, char *argv[])
  *   Mark C. Miller, Wed Sep 23 11:55:48 PDT 2009
  *   Added misc. variables.
  ********************************************************************/
-#define PRINT_OBJS(theFile, theToc, theClass, Indent)                \
+#define PRINT_OBJS(theFile, outFile, theToc, theClass, Indent)       \
     nobjs += theToc->n ## theClass;                                  \
     for (i = 0; i < theToc->n ## theClass; i++)                      \
-        PrintObjectComponentsType(theFile, theToc->theClass ## _names[i], Indent);
+        PrintObjectComponentsType(theFile, outFile, theToc->theClass ## _names[i], Indent);
 
-int ProcessCurrentDirectory(DBfile *dbfile, DBtoc *dbtoc, int depth)
+static int ProcessCurrentDirectory(DBfile *dbfile, FILE* outf, DBtoc *dbtoc, int depth)
 {
     int i, j, nobjs;
     char indent[1024];
@@ -224,9 +182,9 @@ int ProcessCurrentDirectory(DBfile *dbfile, DBtoc *dbtoc, int depth)
             DBtoc *current_dbtoc;
             DBSetDir(dbfile, dir_names[j]);
             current_dbtoc = DBGetToc(dbfile);
-            printf("%sDirectory: %s\n", indent, dir_names[j]);
-            if (ProcessCurrentDirectory(dbfile, current_dbtoc, depth+1) <= 0)
-                printf("%s<directory contains no objects>\n\n", indent);
+            fprintf(outf, "%sDirectory: %s\n", indent, dir_names[j]);
+            if (ProcessCurrentDirectory(dbfile, outf, current_dbtoc, depth+1) <= 0)
+                fprintf(outf, "%s<directory contains no objects>\n\n", indent);
         }
 
         /* Free the directory list. */
@@ -240,29 +198,29 @@ int ProcessCurrentDirectory(DBfile *dbfile, DBtoc *dbtoc, int depth)
 
     /* Print the objects in the top directory. */
     nobjs = ndirs; 
-    PRINT_OBJS(dbfile, dbtoc, obj, indent);
-    PRINT_OBJS(dbfile, dbtoc, defvars, indent);
-    PRINT_OBJS(dbfile, dbtoc, array, indent);
-    PRINT_OBJS(dbfile, dbtoc, var, indent);
-    PRINT_OBJS(dbfile, dbtoc, curve, indent);
-    PRINT_OBJS(dbfile, dbtoc, ptmesh, indent);
-    PRINT_OBJS(dbfile, dbtoc, ptvar, indent);
-    PRINT_OBJS(dbfile, dbtoc, qmesh, indent);
-    PRINT_OBJS(dbfile, dbtoc, qvar, indent);
-    PRINT_OBJS(dbfile, dbtoc, ucdmesh, indent);
-    PRINT_OBJS(dbfile, dbtoc, ucdvar, indent);
-    PRINT_OBJS(dbfile, dbtoc, csgmesh, indent);
-    PRINT_OBJS(dbfile, dbtoc, csgvar, indent);
-    PRINT_OBJS(dbfile, dbtoc, mat, indent);
-    PRINT_OBJS(dbfile, dbtoc, matspecies, indent);
-    PRINT_OBJS(dbfile, dbtoc, multimesh, indent);
-    PRINT_OBJS(dbfile, dbtoc, multimeshadj, indent);
-    PRINT_OBJS(dbfile, dbtoc, multivar, indent);
-    PRINT_OBJS(dbfile, dbtoc, multimat, indent);
-    PRINT_OBJS(dbfile, dbtoc, multimatspecies, indent);
-    PRINT_OBJS(dbfile, dbtoc, mrgtree, indent);
-    PRINT_OBJS(dbfile, dbtoc, mrgvar, indent);
-    PRINT_OBJS(dbfile, dbtoc, groupelmap, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, obj, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, defvars, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, array, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, var, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, curve, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, ptmesh, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, ptvar, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, qmesh, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, qvar, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, ucdmesh, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, ucdvar, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, csgmesh, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, csgvar, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, mat, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, matspecies, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, multimesh, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, multimeshadj, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, multivar, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, multimat, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, multimatspecies, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, mrgtree, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, mrgvar, indent);
+    PRINT_OBJS(dbfile, outf, dbtoc, groupelmap, indent);
     return nobjs;
 }
 
@@ -284,30 +242,20 @@ int ProcessCurrentDirectory(DBfile *dbfile, DBtoc *dbtoc, int depth)
  ********************************************************************/
 
 void
-PrintFileComponentTypes(char *filename)
+PrintFileComponentTypes(DBfile *dbfile, FILE* outf)
 {
-    DBfile *dbfile = NULL;
     DBtoc  *dbtoc = NULL;
 
-    /* Open the data file. Return if it cannot be read. */
-    if((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)) == NULL)
-    {
-        printf("File: %s\n    <could not be opened>\n\n", filename);
-        return;
-    }
-
     /* Read the file's table of contents. */
     if((dbtoc = DBGetToc(dbfile)) == NULL)
     {
-        printf("File: %s\n    <could not read TOC>\n\n", filename);
+        fprintf(outf, "File: \n    <could not read TOC>\n\n");
         DBClose(dbfile);
         return;
     }
 
-    printf("File: %s\n", filename);
-
-    if (ProcessCurrentDirectory(dbfile, dbtoc, 0) <= 0)
-        printf("<file contains no objects>\n\n");
+    if (ProcessCurrentDirectory(dbfile, outf, dbtoc, 0) <= 0)
+        fprintf(outf, "<file contains no objects>\n\n");
 
     /* Close the file. */
     DBClose(dbfile);
@@ -334,8 +282,8 @@ PrintFileComponentTypes(char *filename)
  *  Added support for misc. variable printing.
  ********************************************************************/
 
-void
-PrintObjectComponentsType(DBfile *dbfile, char *objname, char *indent)
+static void
+PrintObjectComponentsType(DBfile *dbfile, FILE* outf, char *objname, char *indent)
 {
     int  i, comptype = DB_NOTYPE;
     DBobject *obj = NULL;
@@ -345,12 +293,14 @@ PrintObjectComponentsType(DBfile *dbfile, char *objname, char *indent)
     {
         int len = DBGetVarLength(dbfile, objname);
         comptype = DBGetVarType(dbfile, objname);
-        printf("%sObject: \"%s\" is a simple array\n", indent, objname);
-        printf("    Length: %d  Type: %-11s\n", len, IntToTypename(comptype));
+        fprintf(outf, "%sObject: \"%s\"\n", indent, objname);
+        fprintf(outf, "%s    is a simple array\n", indent);
+        fprintf(outf, "%s    Length: %d  Type: %-11s\n", indent, len, IntToTypename(comptype));
+        fprintf(outf, "\n");
         return;
     }
 
-    printf("%sObject: \"%s\"\n", indent, objname);
+    fprintf(outf, "%sObject: \"%s\"\n", indent, objname);
     if(obj->ncomponents > 0)
     {
         void *comp = NULL;
@@ -364,7 +314,7 @@ PrintObjectComponentsType(DBfile *dbfile, char *objname, char *indent)
             if(comptype != DB_VARIABLE)
                 comp = DBGetComponent(dbfile, objname, obj->comp_names[i]);
 
-            printf("    %sComponent: %-15s  Type: %-11s",
+            fprintf(outf, "    %sComponent: %-15s  Type: %-11s",
                    indent, obj->comp_names[i], IntToTypename(comptype));
 
             if(comp != NULL)
@@ -375,31 +325,31 @@ PrintObjectComponentsType(DBfile *dbfile, char *objname, char *indent)
                 switch(comptype)
                 {
                 case DB_INT:
-                    printf(" Value: %d\n", *((int *)comp));
+                    fprintf(outf, " Value: %d\n", *((int *)comp));
                     break;
                 case DB_CHAR:
-                    printf(" Value: %s\n", (char *)comp);
+                    fprintf(outf, " Value: %s\n", (char *)comp);
                     break;
                 case DB_FLOAT:
-                    printf(" Value: %g\n", *((float *)comp));
+                    fprintf(outf, " Value: %g\n", *((float *)comp));
                     break;
                 case DB_DOUBLE:
-                    printf(" Value: %.30g\n", *((double *)comp));
+                    fprintf(outf, " Value: %.30g\n", *((double *)comp));
                     break;
                 default:
-                    printf(" Value: ???\n");
+                    fprintf(outf, " Value: ???\n");
                 }
 
                 /* Free the component memory. */
                 free(comp);
             }
             else
-                printf("\n");
+                fprintf(outf, "\n");
         }
-        printf("\n");
+        fprintf(outf, "\n");
     }
     else
-        printf("    %s<no components>\n\n", indent);
+        fprintf(outf, "    %s<no components>\n\n", indent);
 
     /* Free the object.*/
     DBFreeObject(obj);
diff --git a/tests/listtypes_main.c b/tests/listtypes_main.c
new file mode 100644
index 0000000..95b01a0
--- /dev/null
+++ b/tests/listtypes_main.c
@@ -0,0 +1,134 @@
+#include <silo.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <config.h>
+#ifdef HAVE_HDF5_H
+#include <hdf5.h>
+#define HDF5_VERSION_GE(Maj,Min,Rel)  \
+        (((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR==Min) && (H5_VERS_RELEASE>=Rel)) || \
+         ((H5_VERS_MAJOR==Maj) && (H5_VERS_MINOR>Min)) || \
+         (H5_VERS_MAJOR>Maj))
+#endif
+
+extern void PrintFileComponentTypes(DBfile *dbfile, FILE* outf);
+
+static void
+ProcessSiloFile(char const *filename, int test_fic_vfd)
+{
+    DBfile *dbfile;
+
+    if (test_fic_vfd)
+    {
+#ifdef HAVE_HDF5_H
+#if HDF5_VERSION_GE(1,8,9)
+        hid_t fapl, fid;
+        int file_len;
+        ssize_t read_len;
+        void *file_buf;
+        DBoptlist *file_optlist;
+        int fic_optset;
+        int fic_vfd;
+
+        /* Open the file using default (sec2) and get file image from it */
+        fid = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT);
+        file_len = (int) H5Fget_file_image(fid, NULL, (size_t)0);
+        file_buf = malloc((size_t)file_len);
+        read_len = H5Fget_file_image(fid, file_buf, (size_t)file_len);
+        H5Fclose(fid);
+
+        /* now, try to open the above buffer as a 'file' */
+        file_optlist = DBMakeOptlist(10);
+        fic_vfd = DB_H5VFD_FIC;
+        DBAddOption(file_optlist, DBOPT_H5_VFD, &fic_vfd);
+        DBAddOption(file_optlist, DBOPT_H5_FIC_SIZE, &file_len);
+        DBAddOption(file_optlist, DBOPT_H5_FIC_BUF, file_buf);
+        fic_optset = DBRegisterFileOptionsSet(file_optlist);
+
+        /* Ok, now test silo opening this 'buffer' */
+        if((dbfile = DBOpen("dummy", DB_HDF5_OPTS(fic_optset), DB_READ)) == NULL)
+        {
+            fprintf(stderr, "File: %s\n    <could not be opened>\n\n", "dummy");
+            return;
+        }
+
+        /* free up the file options set */
+        DBUnregisterFileOptionsSet(fic_optset);
+        DBFreeOptlist(file_optlist);
+
+#endif
+#else
+
+        fprintf(stderr, "Cannot test FIC vfd without HDF5 library\n");
+        exit(-1);
+
+#endif
+
+    }
+    else
+    {
+        /* Open the data file. Return if it cannot be read. */
+        if((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)) == NULL)
+        {
+            fprintf(stderr, "File: %s\n    <could not be opened>\n\n", filename);
+            return;
+        }
+    }
+
+    fprintf(stdout, "File: %s\n", filename);
+
+    PrintFileComponentTypes(dbfile, stdout);
+
+    DBClose(dbfile);
+}
+
+/*********************************************************************
+ *
+ * Purpose: Main function for listtypes.c. This function iterates
+ *          over the command line arguments and supplies them to
+ *          a function that prints the component types for a file.
+ *          This program tests the DBGetComponentType function.
+ *
+ * Programmer: Brad Whitlock
+ * Date:       Thu Jan 20 13:05:37 PST 2000
+ *
+ * Input Arguments:
+ *     argc : The number of command line arguments.
+ *     argv : An array containing the command line arguments.
+ *
+ * Modifications:
+ *     Thomas R. Treadway, Thu Jul  5 16:33:38 PDT 2007
+ *     Chaneged main's return type to int, to stop gcc-4.x whining.
+ *
+ ********************************************************************/
+
+int
+main(int argc, char *argv[])
+{
+    int i;
+    int test_fic_vfd = 0;
+    int show_all_errors = 0;
+
+    if (argc < 2)
+    {
+        printf("Usage: listtypes filename [filename ...]\n");
+        return 0;
+    }
+
+    DBShowErrors(DB_NONE, NULL);
+
+    /* Print the types for components in the specified files. */
+    for(i = 1; i < argc; i++)
+    {
+        if (!strcmp(argv[i], "show-all-errors"))
+            DBShowErrors(DB_ALL_AND_DRVR, NULL);
+        else if (!strcmp(argv[i], "test-fic-vfd"))
+            test_fic_vfd = 1;
+        else
+        {
+            ProcessSiloFile(argv[i], test_fic_vfd);
+        }
+    }
+    
+    return 0;
+}
diff --git a/tests/mat3d_3across.c b/tests/mat3d_3across.c
index 4ceed25..792c302 100644
--- a/tests/mat3d_3across.c
+++ b/tests/mat3d_3across.c
@@ -127,9 +127,10 @@ int     dims[3];
 int main(int argc, char **argv) {
     DBfile *db;
     int            i, driver = DB_PDB;
-    char          *filename = "csg.pdb";
+    char          *filename = "mat3d_3across.pdb";
     int            show_all_errors = FALSE;
-    char  *coordnames[3];
+    int            custom_mat = FALSE;
+    char const * const coordnames[3] = {"x", "y", "z"};
     float *coord[3];
 
     for (i=1; i<argc; i++) {
@@ -141,6 +142,8 @@ int main(int argc, char **argv) {
             filename = "mat3d_3across.h5";
         } else if (!strcmp(argv[i], "show-all-errors")) {
             show_all_errors = 1;
+        } else if (!strcmp(argv[i], "custom-mat")) {
+            custom_mat = 1;
 	} else if (argv[i][0] != '\0') {
             fprintf(stderr, "%s: ignored argument `%s'\n", argv[0], argv[i]);
         }
@@ -148,10 +151,6 @@ int main(int argc, char **argv) {
 
   if (show_all_errors) DBShowErrors(DB_ALL_AND_DRVR, 0);
 
-  coordnames[0]=strdup("x");
-  coordnames[1]=strdup("y");
-  coordnames[2]=strdup("z");
-
   coord[0] = x;
   coord[1] = y;
   coord[2] = z;
@@ -173,12 +172,60 @@ int main(int argc, char **argv) {
   DBPutMaterial(db, "material", "mesh", nmat, matnos, matlist, dims, 3, 
 		mix_next, mix_mat, mix_zone, mix_vf, mixlen, DB_FLOAT, NULL);
 
+  if (custom_mat)
+  {
+      long count[3]; 
+      DBobject *udef_matobj = DBMakeObject("userdef_material", DB_MATERIAL, 20);
+
+      /* Standard material stuf (in order of args to DBPutMaterial but that doesn't matter) */
+      DBAddStrComponent(udef_matobj, "meshid", "mesh");
+      DBAddIntComponent(udef_matobj, "nmat", nmat);
+      count[0] = nmat;
+      DBWriteComponent(db, udef_matobj, "matnos", "userdef_material", "integer", matnos, 1, count);
+      count[0] = dims[0]; count[1] = dims[1]; count[2] = dims[2];
+      DBWriteComponent(db, udef_matobj, "matlist", "userdef_material", "integer", matlist, 3, count);
+      count[0] = 3;
+      DBWriteComponent(db, udef_matobj, "dims", "userdef_material", "integer", dims, 1, count);
+      DBAddIntComponent(udef_matobj, "ndims", 3);
+      count[0] = mixlen;
+      DBWriteComponent(db, udef_matobj, "mix_next", "userdef_material", "integer", mix_next, 1, count);
+      DBWriteComponent(db, udef_matobj, "mix_mat", "userdef_material", "integer", mix_mat, 1, count);
+      DBWriteComponent(db, udef_matobj, "mix_zone", "userdef_material", "integer", mix_zone, 1, count);
+      DBWriteComponent(db, udef_matobj, "mix_vf", "userdef_material", "float", mix_vf, 1, count);
+      DBAddIntComponent(udef_matobj, "mixlen", mixlen);
+      DBAddIntComponent(udef_matobj, "datatype", DB_FLOAT);
+
+      /* Ok, lets write some extra arrays with interesting stuff */
+      {
+          char *strArray[] = {"mark","sandy","fred","steve","sue","JayLo"};
+          char *tmpList = 0;
+          int len;
+
+          /* Add a simple integer valued scalar member */
+          DBAddIntComponent(udef_matobj, "foo", 42);
+
+          /* Add a simple double valued scalar member */
+          DBAddDblComponent(udef_matobj, "M_PI", 3.1415926);
+
+          /* Add a string valued component */
+          DBAddStrComponent(udef_matobj, "make", "Toyota");
+
+          /* Add an array of strings (Katie's case) */
+          DBStringArrayToStringList((DBCAS_t) strArray, 6, &tmpList, &len);
+          count[0] = len;
+          DBWriteComponent(db, udef_matobj, "Katies_Names", "userdef_material", "char", tmpList, 1, count);
+          free(tmpList);
+      }
+
+      /* Finally, write the generic object to the file */
+      DBWriteObject(db, udef_matobj, 0);
+
+      DBFreeObject(udef_matobj);
+  }
+
+
   DBClose(db);
  
-  free(coordnames[0]);
-  free(coordnames[1]);
-  free(coordnames[2]);
-
   CleanupDriverStuff();
   return 0;
 }
diff --git a/tests/merge_block.c b/tests/merge_block.c
index e426518..8ae066f 100644
--- a/tests/merge_block.c
+++ b/tests/merge_block.c
@@ -81,7 +81,7 @@ void MCopyFile (char *fileName, char *meshFileName, int driver);
 void GetFileList (char *baseName, char ***files, int *nFiles);
 void ListSort (char **list, int n);
 
-main (int argc, char **argv)
+int main (int argc, char **argv)
 {
     int       i, driver = DB_PDB;
     int       nFiles;
@@ -134,6 +134,8 @@ main (int argc, char **argv)
     }
 
     CleanupDriverStuff();
+
+    return 0;
 }
 
 void
@@ -330,7 +332,7 @@ MCopyFile (char *fileName, char *meshFileName, int driver)
         int       *mix_next2=NULL, *mix_mat2=NULL;
 
         mixlen2 = mat[i]->mixlen;
-        mix_vf2 = mat[i]->mix_vf;
+        mix_vf2 = (float*)mat[i]->mix_vf;
         mix_next2 = mat[i]->mix_next;
         mix_mat2 = mat[i]->mix_mat;
         for (j = 0; j < mixlen2; j++)
@@ -450,7 +452,7 @@ MCopyFile (char *fileName, char *meshFileName, int driver)
         int       *map=NULL;
         int       nnode;
 
-        local_coord = um[i]->coords[0];
+        local_coord = (float*)um[i]->coords[0];
         map = local_global_map[i];
         nnode = um[i]->nnodes;
         for (j = 0; j < nnode; j++)
@@ -466,7 +468,7 @@ MCopyFile (char *fileName, char *meshFileName, int driver)
         int       *map=NULL;
         int       nnode;
 
-        local_coord = um[i]->coords[1];
+        local_coord = (float*)um[i]->coords[1];
         map = local_global_map[i];
         nnode = um[i]->nnodes;
         for (j = 0; j < nnode; j++)
@@ -482,7 +484,7 @@ MCopyFile (char *fileName, char *meshFileName, int driver)
         int       *map=NULL;
         int       nnode;
 
-        local_coord = um[i]->coords[2];
+        local_coord = (float*)um[i]->coords[2];
         map = local_global_map[i];
         nnode = um[i]->nnodes;
         for (j = 0; j < nnode; j++)
@@ -621,7 +623,7 @@ MCopyFile (char *fileName, char *meshFileName, int driver)
                 float     *var2=NULL;
 
                 nels2 = uv[j]->nels;
-                var2  = uv[j]->vals[0];
+                var2  = (float*)uv[j]->vals[0];
                 for (k = 0; k < nels2; k++)
                 {
                     var[l++] = var2[k];
@@ -642,7 +644,7 @@ MCopyFile (char *fileName, char *meshFileName, int driver)
                 int       *map=NULL;
 
                 nels2 = uv[j]->nels;
-                var2  = uv[j]->vals[0];
+                var2  = (float*)uv[j]->vals[0];
                 map = local_global_map[j];
                 for (k = 0; k < nels2; k++)
                 {
diff --git a/tests/mmadjacency.c b/tests/mmadjacency.c
index 156b07d..d55d13f 100644
--- a/tests/mmadjacency.c
+++ b/tests/mmadjacency.c
@@ -136,15 +136,15 @@ main(int argc, char *argv[])
        int nblocks = sizeof(meshtypes) / sizeof(meshtypes[0]);
 
        DBPutMultimeshadj(dbfile, "mmadjacency", nblocks, meshtypes,
-          nneighbors, neighbors, NULL, lnodelists, nodelists,
+          nneighbors, neighbors, NULL, lnodelists, (int const * const *) nodelists,
           NULL, NULL, NULL);
 
        /* now try writing the same object with repeated calls */
        DBPutMultimeshadj(dbfile, "mmadjacency2", nblocks, meshtypes,
-          nneighbors, neighbors, NULL, lnodelists, nodelists2,
+          nneighbors, neighbors, NULL, lnodelists, (int const * const *) nodelists2,
           NULL, NULL, NULL);
        DBPutMultimeshadj(dbfile, "mmadjacency2", nblocks, meshtypes,
-          nneighbors, neighbors, NULL, lnodelists, nodelists3,
+          nneighbors, neighbors, NULL, lnodelists, (int const * const *) nodelists3,
           NULL, NULL, NULL);
     }
 
diff --git a/tests/multi_file.c b/tests/multi_file.c
index 19721aa..f401aee 100644
--- a/tests/multi_file.c
+++ b/tests/multi_file.c
@@ -89,7 +89,7 @@ void fill_bkgr(int *, int, int, int, int);
 void fill_mat(float *, float *, float *, int *, int, int, int,
     int *, int *, int *, float *, int *, int, double, double, double, double);
 
-int  build_multi(char *, int, char *, int, int, int);
+int  build_multi(char *, int, char *, int, int, int, int);
 
 void build_block_ucd3d(char *, int, char *, int, int, int);
 
@@ -112,7 +112,12 @@ main(int argc, char *argv[])
     char          *basename="ucd3d";
     char          *file_ext="pdb";
     int            driver=DB_PDB;
-    int            show_all_errors = FALSE;
+    int            show_all_errors = 0;
+#if !defined(_WIN32)
+    int            windows_style_slash = 0;
+#else
+    int            windows_style_slash = 1;
+#endif
 
     /*
      * Parse the command-line.
@@ -137,6 +142,8 @@ main(int argc, char *argv[])
             empties = 1;
         else if (!strcmp(argv[i], "show-all-errors"))
             show_all_errors = 1;
+        else if (!strcmp(argv[i], "invert-slash-style"))
+            windows_style_slash = !windows_style_slash;
 	else if (argv[i][0] != '\0')
             fprintf(stderr, "%s: ignored argument `%s'\n", argv[0], argv[i]);
     }
@@ -147,7 +154,7 @@ main(int argc, char *argv[])
     /* 
      * Create the multi-block ucd 3d mesh.
      */
-    build_multi(basename, driver, file_ext, 6, 8, 6);
+    build_multi(basename, driver, file_ext, 6, 8, 6, windows_style_slash);
 
     CleanupDriverStuff();
     return 0;
@@ -314,7 +321,8 @@ fill_mat(float *x, float *y, float *z, int *matlist, int nx,
  ***********************************************************************/
 int
 build_multi(char *basename, int driver, char *file_ext,
-            int nblocks_x, int nblocks_y, int nblocks_z)
+            int nblocks_x, int nblocks_y, int nblocks_z,
+            int windows_style_slash)
 {
     int             i;
     int             cycle;
@@ -360,11 +368,12 @@ build_multi(char *basename, int driver, char *file_ext,
 
         filenum = i / (nblocks / NFILES);
         if (multidir)
-#ifdef WIN32	
-            sprintf(prefix, "multi_file.dir\\%03d\\%s%d.%s:/block%d/", filenum, basename, filenum, file_ext, i);
-#else
-            sprintf(prefix, "multi_file.dir/%03d/%s%d.%s:/block%d/", filenum, basename, filenum, file_ext, i);
-#endif
+        {
+            if (windows_style_slash)
+                sprintf(prefix, "multi_file.dir\\%03d\\%s%d.%s:/block%d/", filenum, basename, filenum, file_ext, i);
+            else
+                sprintf(prefix, "multi_file.dir/%03d/%s%d.%s:/block%d/", filenum, basename, filenum, file_ext, i);
+        }
         else
             sprintf(prefix, "%s%d.%s:/block%d/", basename, filenum, file_ext, i);
 
@@ -395,11 +404,11 @@ build_multi(char *basename, int driver, char *file_ext,
     {
         if (multidir)
         {
-#ifdef WIN32	
-            sprintf(file_ns, "|multi_file.dir\\%%03d\\%%s%%d.%%s|n/36|'%s'|n/36|'%s'", basename, file_ext);
-#else
-            sprintf(file_ns, "|multi_file.dir/%%03d/%%s%%d.%%s|n/36|'%s'|n/36|'%s'", basename, file_ext);
-#endif
+            if (windows_style_slash)
+                sprintf(file_ns, "|multi_file.dir\\%%03d\\%%s%%d.%%s|n/36|'%s'|n/36|'%s'", basename, file_ext);
+            else
+                sprintf(file_ns, "|multi_file.dir/%%03d/%%s%%d.%%s|n/36|'%s'|n/36|'%s'", basename, file_ext);
+    
         }
         else
             sprintf(file_ns, "|%%s%%d.%%s|'%s'|n/36|'%s'", basename, file_ext);
@@ -454,7 +463,8 @@ build_multi(char *basename, int driver, char *file_ext,
      */
     block_type = DB_UCDMESH;
     if (DBPutMultimesh(dbfile, "mesh1", nblocks,
-                       use_ns?0:meshnames, use_ns?0:meshtypes, optlist) == -1)
+                       (DBCAS_t) (use_ns?0:meshnames),
+                       use_ns?0:meshtypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi mesh\n");
@@ -462,7 +472,7 @@ build_multi(char *basename, int driver, char *file_ext,
     }
     block_type = DB_UCDVAR;
     sprintf(block_ns, "|/block%%d/d|n");
-    if (DBPutMultivar(dbfile, "d", nblocks, use_ns?0:var1names, use_ns?0:vartypes, optlist)
+    if (DBPutMultivar(dbfile, "d", nblocks, (DBCAS_t) (use_ns?0:var1names), use_ns?0:vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -470,7 +480,7 @@ build_multi(char *basename, int driver, char *file_ext,
         return -1;
     }
     sprintf(block_ns, "|/block%%d/p|n");
-    if (DBPutMultivar(dbfile, "p", nblocks, use_ns?0:var2names, use_ns?0:vartypes, optlist)
+    if (DBPutMultivar(dbfile, "p", nblocks, (DBCAS_t) (use_ns?0:var2names), use_ns?0:vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -478,7 +488,7 @@ build_multi(char *basename, int driver, char *file_ext,
         return -1;
     }
     sprintf(block_ns, "|/block%%d/u|n");
-    if (DBPutMultivar(dbfile, "u", nblocks, use_ns?0:var3names, use_ns?0:vartypes, optlist)
+    if (DBPutMultivar(dbfile, "u", nblocks, (DBCAS_t) (use_ns?0:var3names), use_ns?0:vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -486,7 +496,7 @@ build_multi(char *basename, int driver, char *file_ext,
         return -1;
     }
     sprintf(block_ns, "|/block%%d/v|n");
-    if (DBPutMultivar(dbfile, "v", nblocks, use_ns?0:var4names, use_ns?0:vartypes, optlist)
+    if (DBPutMultivar(dbfile, "v", nblocks, (DBCAS_t) (use_ns?0:var4names), use_ns?0:vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -494,7 +504,7 @@ build_multi(char *basename, int driver, char *file_ext,
         return -1;
     }
     sprintf(block_ns, "|/block%%d/w|n");
-    if (DBPutMultivar(dbfile, "w", nblocks, use_ns?0:var5names, use_ns?0:vartypes, optlist)
+    if (DBPutMultivar(dbfile, "w", nblocks, (DBCAS_t) (use_ns?0:var5names), use_ns?0:vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -502,7 +512,7 @@ build_multi(char *basename, int driver, char *file_ext,
         return -1;
     }
     sprintf(block_ns, "|/block%%d/mat1|n");
-    if (DBPutMultimat(dbfile, "mat1", nblocks, use_ns?0:matnames, optlist) == -1)
+    if (DBPutMultimat(dbfile, "mat1", nblocks, (DBCAS_t) (use_ns?0:matnames), optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi material\n");
@@ -534,7 +544,8 @@ build_block_ucd3d(char *basename, int driver, char *file_ext,
     int             cycle;
     float           time;
     double          dtime;
-    char           *coordnames[3];
+    char const * const coordnames[3] = {"xcoords", "ycoords", "zcoords"};
+ 
     float          *coords[3];
     float          *x=NULL, *y=NULL, *z=NULL;
 
@@ -685,9 +696,6 @@ build_block_ucd3d(char *basename, int driver, char *file_ext,
     dtime = 4.8;
 
     meshname = "mesh1";
-    coordnames[0] = "xcoords";
-    coordnames[1] = "ycoords";
-    coordnames[2] = "zcoords";
 
     var1name = "d";
     var2name = "p";
@@ -736,7 +744,7 @@ build_block_ucd3d(char *basename, int driver, char *file_ext,
         unlink("multi_file.dir/007/ucd3d7.h5");
         rmdir("multi_file.dir/007");
         rmdir("multi_file.dir");
-#ifndef WIN32
+#if !defined(_WIN32)
         st = mkdir("multi_file.dir",S_IRWXU|S_IRWXG|S_IRWXU);
 #else
         st = _mkdir("multi_file.dir");
@@ -978,7 +986,7 @@ build_block_ucd3d(char *basename, int driver, char *file_ext,
                 int st;
                 char dname[60];
                 sprintf(dname, "multi_file.dir/%03d", filenum);
-#ifndef WIN32
+#if !defined(_WIN32)
                 st = mkdir(dname, S_IRWXU|S_IRWXG|S_IRWXU);
 #else
                 st = _mkdir(dname);
@@ -1081,27 +1089,27 @@ build_block_ucd3d(char *basename, int driver, char *file_ext,
 
             vars[0] = d2;
             varnames[0] = var1name;
-            DBPutUcdvar(dbfile, var1name, meshname, 1, varnames, vars,
+            DBPutUcdvar(dbfile, var1name, meshname, 1, (DBCAS_t) varnames, vars,
                         nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
             vars[0] = p2;
             varnames[0] = var2name;
-            DBPutUcdvar(dbfile, var2name, meshname, 1, varnames, vars,
+            DBPutUcdvar(dbfile, var2name, meshname, 1, (DBCAS_t) varnames, vars,
                         nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
             vars[0] = u2;
             varnames[0] = var3name;
-            DBPutUcdvar(dbfile, var3name, meshname, 1, varnames, vars,
+            DBPutUcdvar(dbfile, var3name, meshname, 1, (DBCAS_t) varnames, vars,
                         nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
             vars[0] = v2;
             varnames[0] = var4name;
-            DBPutUcdvar(dbfile, var4name, meshname, 1, varnames, vars,
+            DBPutUcdvar(dbfile, var4name, meshname, 1, (DBCAS_t) varnames, vars,
                         nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
             vars[0] = w2;
             varnames[0] = var5name;
-            DBPutUcdvar(dbfile, var5name, meshname, 1, varnames, vars,
+            DBPutUcdvar(dbfile, var5name, meshname, 1, (DBCAS_t) varnames, vars,
                         nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
             DBPutMaterial(dbfile, matname, meshname, nmats, matnos,
diff --git a/tests/multi_test.c b/tests/multi_test.c
index d61ce3a..59bac7b 100644
--- a/tests/multi_test.c
+++ b/tests/multi_test.c
@@ -96,7 +96,9 @@ product endorsement purposes.
     if (MLISTS)                                             \
        DBAddOption(optlist, DBOPT_MATLISTS, MLISTS);        \
     if (HASEXT)                                             \
-       DBAddOption(optlist, DBOPT_HAS_EXTERNAL_ZONES, HASEXT)
+       DBAddOption(optlist, DBOPT_HAS_EXTERNAL_ZONES, HASEXT);\
+    if (missing_value != DB_MISSING_VALUE_NOT_SET)\
+       DBAddOption(optlist, DBOPT_MISSING_VALUE, &missing_value)
 
 #define ASSERT(PRED) if(!(PRED)){fprintf(stderr,"Assertion \"%s\" at line %d failed\n",#PRED,__LINE__);abort();}
 
@@ -300,7 +302,8 @@ static int check_struct(char *struct1, char *struct2, size_t struct_size, ...)
     }                                                                    \
     else                                                                 \
     {                                                                    \
-        ASSERT(DBPutUcdmesh(F,MN,NDS,CNMS,CS,NNS,NZS,ZLNM,FLNM,DTYPE,OL)==0);    \
+        ASSERT(DBPutUcdmesh(F,MN,NDS,(DBCAS_t) CNMS,        \
+            CS,NNS,NZS,ZLNM,FLNM,DTYPE,OL)==0);                          \
     }                                                                    \
 }
 
@@ -333,7 +336,8 @@ static int check_struct(char *struct1, char *struct2, size_t struct_size, ...)
     }                                                                    \
     else                                                                 \
     {                                                                    \
-        ASSERT(DBPutQuadmesh(F,MN,CNMS,CS,DS,NDS,DTYPE,CTYPE,OL)==0);    \
+        ASSERT(DBPutQuadmesh(F,MN,(DBCAS_t) CNMS,           \
+            CS,DS,NDS,DTYPE,CTYPE,OL)==0);                               \
     }                                                                    \
 }
 
@@ -396,11 +400,12 @@ static int check_struct(char *struct1, char *struct2, size_t struct_size, ...)
     }                                                                    \
     else                                                                 \
     {                                                                    \
-        ASSERT(DBPutUcdvar(F,VN,MN,NV,VNMS,VP,NVALS,MXVALS,MXLEN,DTYPE,CENT,OL)==0); \
+        ASSERT(DBPutUcdvar(F,VN,MN,NV,(DBCAS_t)VNMS,        \
+            VP,NVALS,MXVALS,MXLEN,DTYPE,CENT,OL)==0);                    \
     }                                                                    \
 }
 
-#define TESTQVAR(F,VN,MN,VP,DS,NDS,VTYPE,CENT,OL)                       \
+#define TESTQVAR(F,VN,MN,VP,DS,NDS,VTYPE,CENT,OL)                        \
 {                                                                        \
     int sz = DS[0]*(NDS>=2?DS[1]:1)*(NDS==3?DS[2]:1);                    \
     if (handle_read)                                                     \
@@ -503,6 +508,7 @@ int driver = DB_PDB;
 int check_early_close = FALSE;
 int testread = FALSE;
 int testbadread = FALSE;
+double missing_value = DB_MISSING_VALUE_NOT_SET;
 
 int           build_multi(DBfile *, int, int, int, int, int, int, int, int);
 
@@ -812,6 +818,8 @@ main(int argc, char *argv[])
             testread = 1;
         } else if (!strcmp(argv[i], "testbadread")) {
             testbadread = 1;
+        } else if (!strcmp(argv[i], "missing-value")) {
+            missing_value = strtod(argv[++i],0);
         } else {
             fprintf(stderr, "%s: ignored argument `%s'\n", argv[0], argv[i]);
         }
@@ -836,7 +844,7 @@ main(int argc, char *argv[])
         if (testread || testbadread)
         {
             fprintf(stdout, "reading %s\n", filename);
-            if (dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ))
+            if ((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)))
             {
                 if (build_multi(dbfile, DB_QUADMESH, DB_QUADVAR, 2, 3, 4, 1, DB_COLLINEAR, 1) == -1)
                     fprintf(stderr, "Error reading contents of '%s'.\n", filename);
@@ -867,7 +875,7 @@ main(int argc, char *argv[])
         if (testread || testbadread)
         {
             fprintf(stdout, "reading %s\n", filename);
-            if (dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ))
+            if ((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)))
             {
                 if (build_multi(dbfile, DB_QUADMESH, DB_QUADVAR, 2, 5, 1, 1, DB_NONCOLLINEAR, 1) == -1)
                     fprintf(stderr, "Error reading contents of '%s'.\n", filename);
@@ -898,7 +906,7 @@ main(int argc, char *argv[])
         if (testread || testbadread)
         {
             fprintf(stdout, "reading %s\n", filename);
-            if (dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ))
+            if ((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)))
             {
                 if (build_multi(dbfile, DB_POINTMESH, DB_POINTVAR, 2, 5, 1, 1, 0, 1) == -1)
                     fprintf(stderr, "Error reading contents of '%s'.\n", filename);
@@ -929,7 +937,7 @@ main(int argc, char *argv[])
         if (testread || testbadread)
         {
             fprintf(stdout, "reading %s\n", filename);
-            if (dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ))
+            if ((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)))
             {
                 if (build_multi(dbfile, DB_QUADMESH, DB_QUADVAR, 3, 3, 4, 3, DB_COLLINEAR, 1) == -1)
                     fprintf(stderr, "Error reading contents of '%s'.\n", filename);
@@ -960,7 +968,7 @@ main(int argc, char *argv[])
         if (testread || testbadread)
         {
             fprintf(stdout, "reading %s\n", filename);
-            if (dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ))
+            if ((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)))
             {
                 if (build_multi(dbfile, DB_QUADMESH, DB_QUADVAR, 3, 3, 4, 3, DB_NONCOLLINEAR, 1) == -1)
                     fprintf(stderr, "Error reading contents of '%s'.\n", filename);
@@ -992,7 +1000,7 @@ main(int argc, char *argv[])
         if (testread || testbadread)
         {
             fprintf(stdout, "reading %s\n", filename);
-            if (dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ))
+            if ((dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ)))
             {
                 if (build_multi(dbfile, DB_UCDMESH, DB_UCDVAR, 3, 3, 4, 3, 0, 1) == -1)
                     fprintf(stderr, "Error reading contents of '%s'.\n", filename);
@@ -1214,7 +1222,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
     /* create the multi-block variables */
     extentssize = 2;
     SET_OPTIONS(extentssize,varextents[3],NULL,NULL,NULL,NULL,NULL);
-    if (DBPutMultivar(dbfile, "d", nblocks, var1names, vartypes, optlist)
+    if (DBPutMultivar(dbfile, "d", nblocks, (DBCAS_t) var1names, vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -1222,7 +1230,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
         return (-1);
     }                                  /* if */
     SET_OPTIONS(extentssize,varextents[4],NULL,NULL,NULL,NULL,NULL);
-    if (DBPutMultivar(dbfile, "p", nblocks, var2names, vartypes, optlist)
+    if (DBPutMultivar(dbfile, "p", nblocks, (DBCAS_t) var2names, vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -1230,7 +1238,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
         return (-1);
     }                                  /* if */
     SET_OPTIONS(extentssize,varextents[5],NULL,NULL,NULL,NULL,NULL);
-    if (DBPutMultivar(dbfile, "u", nblocks, var3names, vartypes, optlist)
+    if (DBPutMultivar(dbfile, "u", nblocks, (DBCAS_t) var3names, vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -1238,7 +1246,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
         return (-1);
     }                                  /* if */
     SET_OPTIONS(extentssize,varextents[6],NULL,NULL,NULL,NULL,NULL);
-    if (DBPutMultivar(dbfile, "v", nblocks, var4names, vartypes, optlist)
+    if (DBPutMultivar(dbfile, "v", nblocks, (DBCAS_t) var4names, vartypes, optlist)
         == -1)
     {
         DBFreeOptlist(optlist);
@@ -1248,7 +1256,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
     if (dim == 3)
     {
         SET_OPTIONS(extentssize,varextents[7],NULL,NULL,NULL,NULL,NULL);
-        if (DBPutMultivar(dbfile, "w", nblocks, var5names, vartypes, optlist)
+        if (DBPutMultivar(dbfile, "w", nblocks, (DBCAS_t) var5names, vartypes, optlist)
             == -1)
         {
             DBFreeOptlist(optlist);
@@ -1269,7 +1277,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
     SET_OPTIONS(extentssize,NULL,NULL,mixlens,matcounts,tmpList,NULL);
     if (meshtype != DB_POINTMESH)
     {
-        if (DBPutMultimat(dbfile, "mat1", nblocks, matnames, optlist) == -1)
+        if (DBPutMultimat(dbfile, "mat1", nblocks, (DBCAS_t) matnames, optlist) == -1)
         {
             DBFreeOptlist(optlist);
             fprintf(stderr, "Error creating multi material\n");
@@ -1284,7 +1292,7 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
             char *matrnames[3] = {"outer","middle","inner"};
             DBAddOption(optlist, DBOPT_MATCOLORS, colors);
             DBAddOption(optlist, DBOPT_MATNAMES, matrnames);
-            if (DBPutMultimat(dbfile, "mat2", nblocks, matnames, optlist) == -1)
+            if (DBPutMultimat(dbfile, "mat2", nblocks, (DBCAS_t) matnames, optlist) == -1)
             {
                 DBFreeOptlist(optlist);
                 fprintf(stderr, "Error creating multi material\n");
@@ -1326,7 +1334,8 @@ build_multi(DBfile *dbfile, int meshtype, int vartype, int dim, int nblocks_x,
         sprintf(defns[2], "nmats(mat1)");
         pdefns[2] = defns[2];
 
-        DBPutDefvars(dbfile, "defvars", ndefs, pvnames, types, pdefns, 0);
+        DBPutDefvars(dbfile, "defvars", ndefs, (DBCAS_t) pvnames, types,
+            (DBCAS_t) pdefns, 0);
     }
 
     return (0);
@@ -1487,9 +1496,9 @@ build_block_rect2d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
     dims2[1] = NY;
     mixlen = 0;
     matnames = (char**)malloc(sizeof(char*)*nmats);
-    matnames[0] = safe_strdup("Shredded documents");
-    matnames[1] = safe_strdup("Marble");
-    matnames[2] = safe_strdup("Gold bullion");
+    matnames[0] = _db_safe_strdup("Shredded documents");
+    matnames[1] = _db_safe_strdup("Marble");
+    matnames[2] = _db_safe_strdup("Gold bullion");
 
     /*
      * Put in material 1.
@@ -2853,8 +2862,8 @@ build_block_ucd3d(DBfile *dbfile, char dirnames[MAXBLOCKS][STRLEN],
                             (x[i * (NX + 1) * (NY + 1) + j * (NX + 1) + k] - xcenter) +
                             (y[i * (NX + 1) * (NY + 1) + j * (NX + 1) + k] - ycenter) *
                             (y[i * (NX + 1) * (NY + 1) + j * (NX + 1) + k] - ycenter));
-                d[i * (NX + 1) * (NY + 1) + j * (NX + 1) + k] = dist;
-                p[i * (NX + 1) * (NY + 1) + j * (NX + 1) + k] = 1. / (dist + .0001);
+                d[i * NX * NY + j * NX + k] = dist;
+                p[i * NX * NY + j * NX + k] = 1. / (dist + .0001);
             }
         }
     }
diff --git a/tests/multispec.c b/tests/multispec.c
index 98e02a4..c8f922b 100644
--- a/tests/multispec.c
+++ b/tests/multispec.c
@@ -122,7 +122,7 @@ build_dbfile(DBfile *dbfile)
     int             meshtype=DB_QUADMESH;
     int             vartype=DB_QUADVAR;
     int             coord_type=DB_NONCOLLINEAR;
-    char           *coordnames[3];
+    char const * const coordnames[3] = {"xcoords", "ycoords", "zcoords"};
     int             ndims;
     int             dims[3], zdims[3];
     float          *coords[3];
@@ -228,9 +228,6 @@ build_dbfile(DBfile *dbfile)
      * Create the mesh.
      */
     meshname = "mesh1";
-    coordnames[0] = "xcoords";
-    coordnames[1] = "ycoords";
-    coordnames[2] = "zcoords";
     coords[0] = x;
     coords[1] = y;
     ndims = 2;
@@ -465,7 +462,7 @@ build_dbfile(DBfile *dbfile)
     
 
     /* create the multi-block mesh */
-    if (DBPutMultimesh(dbfile, "mesh1", nblocks, meshnames, 
+    if (DBPutMultimesh(dbfile, "mesh1", nblocks, (DBCAS_t) meshnames, 
                                         meshtypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
@@ -474,26 +471,26 @@ build_dbfile(DBfile *dbfile)
     }                           /* if */
  
    /* create the multi-block variables */
-    if (DBPutMultivar(dbfile, "d", nblocks, varnames[0], vartypes, optlist) == -1)
+    if (DBPutMultivar(dbfile, "d", nblocks, (DBCAS_t) varnames[0], vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var d\n");
         return (-1);
     }                           /* if */
-    if (DBPutMultivar(dbfile, "p", nblocks, varnames[1], vartypes, optlist) == -1)
+    if (DBPutMultivar(dbfile, "p", nblocks, (DBCAS_t) varnames[1], vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var p\n");
         return (-1);
     }                           /* if */
 
-    if (DBPutMultivar(dbfile, "u", nblocks, varnames[2], vartypes, optlist) == -1)
+    if (DBPutMultivar(dbfile, "u", nblocks, (DBCAS_t) varnames[2], vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var u\n");
         return (-1);
     }                           /* if */
-    if (DBPutMultivar(dbfile, "v", nblocks, varnames[3], vartypes, optlist) == -1)
+    if (DBPutMultivar(dbfile, "v", nblocks, (DBCAS_t) varnames[3], vartypes, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi var v\n");
@@ -501,7 +498,7 @@ build_dbfile(DBfile *dbfile)
     }                           /* if */
 
     /* create the multi-block material */
-    if (DBPutMultimat(dbfile, "mat1", nblocks, matnames, optlist) == -1)
+    if (DBPutMultimat(dbfile, "mat1", nblocks, (DBCAS_t) matnames, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi material\n");
@@ -509,7 +506,7 @@ build_dbfile(DBfile *dbfile)
     }                           /* if */
 
     /* create the multi-block species */
-    if (DBPutMultimatspecies(dbfile, "species1", nblocks, specnames, optlist) == -1)
+    if (DBPutMultimatspecies(dbfile, "species1", nblocks, (DBCAS_t) specnames, optlist) == -1)
     {
         DBFreeOptlist(optlist);
         fprintf(stderr, "Error creating multi species\n");
diff --git a/tests/namescheme.c b/tests/namescheme.c
index 165fd1b..247d336 100644
--- a/tests/namescheme.c
+++ b/tests/namescheme.c
@@ -65,11 +65,27 @@ be used for advertising or product endorsement purposes.
 #include <std.c>
 #include <string.h>
 
+#define TEST_GET_NAME(NS,I,EXP)                                                                            \
+if (!NS)                                                                                                   \
+{                                                                                                          \
+    fprintf(stderr, "Got NULL namescheme from DBMakeNamescheme at line %d\n", __LINE__);                   \
+    return 1;                                                                                              \
+}                                                                                                          \
+else                                                                                                       \
+{                                                                                                          \
+    if (strcmp(DBGetName(NS, I), EXP) != 0)                                                                \
+    {                                                                                                      \
+        fprintf(stderr, "Namescheme at line %d failed failed for index %d. Expected \"%s\", got \"%s\"\n", \
+            __LINE__, I, EXP, DBGetName(NS, I));                                                           \
+        return 1;                                                                                          \
+    }                                                                                                      \
+}
+
 int main(int argc, char **argv)
 {
     int i;
     int P[100], U[4];
-    char *N[3];
+    char const * const N[3] = {"red","green","blue"};
     char blockName[1024];
     int driver = DB_PDB;
     int show_all_errors = 0;
@@ -92,8 +108,7 @@ int main(int argc, char **argv)
 
     /* Test a somewhat complex expression */ 
     ns = DBMakeNamescheme("@foo_%+03d at 3-((n % 3)*(4+1)+1/2)+1");
-    if (strcmp(DBGetName(ns, 25), "foo_+01") != 0)
-        return 1;
+    TEST_GET_NAME(ns, 25, "foo_+01");
     DBFreeNamescheme(ns);
 
     /* test returned string is different for successive calls (Dan Laney bug) */
@@ -105,24 +120,22 @@ int main(int argc, char **argv)
 
     /* Test ?:: operator */
     ns = DBMakeNamescheme("@foo_%d@(n-5)?14:77:");
-    if (strcmp(DBGetName(ns, 6), "foo_14") != 0)
-        return 1;
+    TEST_GET_NAME(ns, 5, "foo_77");
+    TEST_GET_NAME(ns, 6, "foo_14");
     DBFreeNamescheme(ns);
 
     /* Test multiple conversion specifiers */
     ns = DBMakeNamescheme("|foo_%03dx%03d|n/5|n%5");
-    if (strcmp(DBGetName(ns, 17), "foo_003x002") != 0)
-       return 1;
-    if (strcmp(DBGetName(ns, 20), "foo_004x000") != 0)
-       return 1;
-    if (strcmp(DBGetName(ns, 3), "foo_000x003") != 0)
-       return 1;
+    TEST_GET_NAME(ns, 17, "foo_003x002");
+    TEST_GET_NAME(ns, 20, "foo_004x000");
+    TEST_GET_NAME(ns, 3, "foo_000x003");
     DBFreeNamescheme(ns);
 
     /* Test embedded string value results */
     ns = DBMakeNamescheme("@foo_%s@(n-5)?'master':'slave':");
-    if (strcmp(DBGetName(ns, 6), "foo_master") != 0)
-        return 1;
+    TEST_GET_NAME(ns, 4, "foo_master");
+    TEST_GET_NAME(ns, 5, "foo_slave");
+    TEST_GET_NAME(ns, 6, "foo_master");
     DBFreeNamescheme(ns);
 
     /* Test array-based references to int valued arrays and whose
@@ -132,27 +145,17 @@ int main(int argc, char **argv)
     for (i = 0; i < 4; i++)
         U[i] = i*i;
     ns = DBMakeNamescheme("@foo_%03dx%03d@#Place[n]@#Upper[n%4]", P, U);
-    if (strcmp(DBGetName(ns, 17), "foo_085x001") != 0)
-        return 1;
-    if (strcmp(DBGetName(ns, 18), "foo_090x004") != 0)
-        return 1;
-    if (strcmp(DBGetName(ns, 19), "foo_095x009") != 0)
-        return 1;
-    if (strcmp(DBGetName(ns, 20), "foo_100x000") != 0)
-        return 1;
-    if (strcmp(DBGetName(ns, 21), "foo_105x001") != 0)
-        return 1;
+    TEST_GET_NAME(ns, 17, "foo_085x001");
+    TEST_GET_NAME(ns, 18, "foo_090x004");
+    TEST_GET_NAME(ns, 19, "foo_095x009");
+    TEST_GET_NAME(ns, 20, "foo_100x000");
+    TEST_GET_NAME(ns, 21, "foo_105x001");
     DBFreeNamescheme(ns);
 
     /* Test array-based references to char* valued array */
-    N[0] = "red";
-    N[1] = "green";
-    N[2] = "blue";
     ns = DBMakeNamescheme("Hfoo_%sH$Noodle[n%3]", N);
-    if (strcmp(DBGetName(ns, 17), "foo_blue") != 0)
-        return 1;
-    if (strcmp(DBGetName(ns, 6), "foo_red") != 0)
-        return 1;
+    TEST_GET_NAME(ns, 17, "foo_blue");
+    TEST_GET_NAME(ns, 6, "foo_red");
     DBFreeNamescheme(ns);
 
     /* Test namescheme as it might be used for multi-block objects */
@@ -164,17 +167,17 @@ int main(int argc, char **argv)
     strcat(blockName, ":");
     strcat(blockName, DBGetName(ns2, 123)); /* blockname part */
     if (strcmp(blockName, "multi_file.dir/003/ucd3d3.pdb:/block123/mesh1") != 0)
-        return 0;
+        return 1;
     strcpy(blockName, DBGetName(ns, 0)); /* filename part */
     strcat(blockName, ":");
     strcat(blockName, DBGetName(ns2, 0)); /* blockname part */
     if (strcmp(blockName, "multi_file.dir/000/ucd3d0.pdb:/block0/mesh1") != 0)
-        return 0;
+        return 1;
     strcpy(blockName, DBGetName(ns, 287)); /* filename part */
     strcat(blockName, ":");
     strcat(blockName, DBGetName(ns2, 287)); /* blockname part */
     if (strcmp(blockName, "multi_file.dir/007/ucd3d7.pdb:/block287/mesh1") != 0)
-        return 0;
+        return 1;
     DBFreeNamescheme(ns);
     DBFreeNamescheme(ns2);
 
@@ -183,6 +186,7 @@ int main(int argc, char **argv)
         DBfile *dbfile;
         int dims[3];
         int strListLen;
+        char const * const FileNumbers[] = {"1","2","3"};
 
         /* uses same namescheme as above but am placing arrays in different dir
            relative to where I will place the namesheme */
@@ -191,12 +195,16 @@ int main(int argc, char **argv)
         /* Use absolute path to external array; 'H' is delim char */
         char *ns2 = "Hfoo_%sH$/arr_dir/Noodle[n%3]";
         char *ns2r;
-        char *strList;
+        char *strList = 0;
         /* use paths relative to the MB mesh object in which the nameschems
            are embedded */
         char *ns3 = "|/meshes/mesh1/dom_%s_%d|$../ns_arrays/Noodle[n]|n*2+1";
         char *ns3r;
 
+        /* Test McCandless' namescheme example */
+        char *ns4 = "@%s%s@(n/4)?'myfilename.':'':@(n/4)?$/arr_dir/FileNumbers[n/4-1]:'':";
+        char *ns4r;
+
         dbfile = DBCreate("namescheme.silo", DB_CLOBBER, DB_LOCAL,
             "Test namescheme constructor with external arrays in file", driver);
 
@@ -207,6 +215,10 @@ int main(int argc, char **argv)
         DBWrite(dbfile, "Place", P, dims, 1, DB_INT);
         dims[0] = 4;
         DBWrite(dbfile, "Upper", U, dims, 1, DB_INT);
+        DBStringArrayToStringList(FileNumbers, 3, &strList, &strListLen);
+        dims[0] = strListLen;
+        DBWrite(dbfile, "FileNumbers", strList, dims, 1, DB_CHAR);
+        free(strList);
         DBStringArrayToStringList(N, 3, &strList, &strListLen);
         dims[0] = strListLen;
         DBWrite(dbfile, "Noodle", strList, dims, 1, DB_CHAR);
@@ -222,6 +234,8 @@ int main(int argc, char **argv)
         DBSetDir(dbfile, "/dir_2/dir_3");
         dims[0] = strlen(ns2)+1;
         DBWrite(dbfile, "ns2", ns2, dims, 1, DB_CHAR);
+        dims[0] = strlen(ns4)+1;
+        DBWrite(dbfile, "ns4", ns4, dims, 1, DB_CHAR);
 
         DBSetDir(dbfile, "/");
         DBMkDir(dbfile, "meshes");
@@ -229,6 +243,7 @@ int main(int argc, char **argv)
         DBMkDir(dbfile, "ns_arrays");
         dims[0] = strListLen;
         DBWrite(dbfile, "ns_arrays/Noodle", strList, dims, 1, DB_CHAR);
+        free(strList);
 
         DBMkDir(dbfile, "mesh1");
         DBSetDir(dbfile, "mesh1");
@@ -271,40 +286,32 @@ int main(int argc, char **argv)
             DBPutMultimesh(dbfile, "mmesh", 3, 0, 0, optlist);
             DBFreeOptlist(optlist);
         }
-        free(strList);
         DBClose(dbfile);
 
         dbfile = DBOpen("namescheme.silo", DB_UNKNOWN, DB_READ);
         DBSetDir(dbfile, "dir_1");
-        ns1r = DBGetVar(dbfile, "ns1");
+        ns1r = (char*)DBGetVar(dbfile, "ns1");
 
         /* Use the '0, DBfile*, 0' form of args to constructor */
         ns = DBMakeNamescheme(ns1r, 0, dbfile, 0);
 
         /* Ok, lets test the constructed namescheme */
-        if (strcmp(DBGetName(ns, 17), "foo_085x001") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 18), "foo_090x004") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 19), "foo_095x009") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 20), "foo_100x000") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 21), "foo_105x001") != 0)
-            return 1;
+        TEST_GET_NAME(ns, 17, "foo_085x001");
+        TEST_GET_NAME(ns, 18, "foo_090x004");
+        TEST_GET_NAME(ns, 19, "foo_095x009");
+        TEST_GET_NAME(ns, 20, "foo_100x000");
+        TEST_GET_NAME(ns, 21, "foo_105x001");
         DBFreeNamescheme(ns);
         free(ns1r);
 
         DBSetDir(dbfile, "/dir_2/dir_3");
-        ns2r = DBGetVar(dbfile, "ns2");
+        ns2r = (char *)DBGetVar(dbfile, "ns2");
 
         /* Use the '0, DBfile*, 0' form of args to constructor */
         ns = DBMakeNamescheme(ns2r, 0, dbfile, 0);
 
-        if (strcmp(DBGetName(ns, 17), "foo_blue") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 6), "foo_red") != 0)
-            return 1;
+        TEST_GET_NAME(ns, 17, "foo_blue");
+        TEST_GET_NAME(ns, 6, "foo_red");
         DBFreeNamescheme(ns);
         free(ns2r);
 
@@ -319,28 +326,33 @@ int main(int argc, char **argv)
         {
             DBmultimesh *mm = DBGetMultimesh(dbfile, "mmesh");
             ns = DBMakeNamescheme(mm->block_ns, 0, dbfile, "/meshes/mesh1");
-            if (strcmp(DBGetName(ns, 0), "/meshes/mesh1/dom_red_1") != 0)
-                return 1;
-            if (strcmp(DBGetName(ns, 1), "/meshes/mesh1/dom_green_3") != 0)
-                return 1;
-            if (strcmp(DBGetName(ns, 2), "/meshes/mesh1/dom_blue_5") != 0)
-                return 1;
+            TEST_GET_NAME(ns, 0, "/meshes/mesh1/dom_red_1");
+            TEST_GET_NAME(ns, 1, "/meshes/mesh1/dom_green_3");
+            TEST_GET_NAME(ns, 2, "/meshes/mesh1/dom_blue_5");
             DBFreeNamescheme(ns);
             DBFreeMultimesh(mm);
         }
 
+        /* Test McCandless' example */
+        DBSetDir(dbfile, "/");
+        ns4r = (char *)DBGetVar(dbfile, "/dir_2/dir_3/ns4");
+        ns = DBMakeNamescheme(ns4r, 0, dbfile, 0);
+        TEST_GET_NAME(ns, 0, "");
+        TEST_GET_NAME(ns, 1, "");
+        TEST_GET_NAME(ns, 4, "myfilename.1");
+        TEST_GET_NAME(ns, 15, "myfilename.3");
+        DBFreeNamescheme(ns);
+        free(ns4r);
+
         DBClose(dbfile);
     }
 
     /* test namescheme with constant componets */
     {
         ns = DBMakeNamescheme("@foo/bar/gorfo_0@");
-        if (strcmp(DBGetName(ns, 0), "foo/bar/gorfo_0") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 1), "foo/bar/gorfo_0") != 0)
-            return 1;
-        if (strcmp(DBGetName(ns, 122), "foo/bar/gorfo_0") != 0)
-            return 1;
+        TEST_GET_NAME(ns, 0, "foo/bar/gorfo_0");
+        TEST_GET_NAME(ns, 1, "foo/bar/gorfo_0");
+        TEST_GET_NAME(ns, 122, "foo/bar/gorfo_0");
         DBFreeNamescheme(ns);
     }
 
diff --git a/tests/onehex.c b/tests/onehex.c
index 58357a2..33f8e61 100644
--- a/tests/onehex.c
+++ b/tests/onehex.c
@@ -114,7 +114,7 @@ int
 main(int argc, char *argv[])
 {
     DBfile         *dbfile = NULL;
-    char           *coordnames[3];
+    char const * const coordnames[3] = {"xcoords", "ycoords", "zcoords"};
     double         *coords[3];
     int             nodelist[8];
     double          x[8], y[8], z[8];
@@ -234,9 +234,6 @@ main(int argc, char *argv[])
         DBFreeOptlist(split_opts);
     }
 
-    coordnames[0] = "xcoords";
-    coordnames[1] = "ycoords";
-    coordnames[2] = "zcoords";
 
     x[0] = 0; y[0] = 0; z[0] = 0;
     x[1] = 1; y[1] = 0; z[1] = 0;
@@ -303,8 +300,7 @@ main(int argc, char *argv[])
 #endif
             var[0] = sqrt((double)-1.0);
     }
-    DBPutUcdvar1(dbfile, "v", "hex", var, 8, NULL, 0, DB_DOUBLE, DB_NODECENT,
-                 NULL);
+    DBPutUcdvar1(dbfile, "v", "hex", var, 8, NULL, 0, DB_DOUBLE, DB_NODECENT, NULL);
 
     nodelist[0] = 0;
     nodelist[1] = 1;
diff --git a/tests/oneprism.c b/tests/oneprism.c
index af62b6e..850b92a 100644
--- a/tests/oneprism.c
+++ b/tests/oneprism.c
@@ -189,8 +189,8 @@ main(int argc, char *argv[])
         var[i] = x[i]+y[i]*z[i];
     }
 
-    DBPutUcdmesh(dbfile, "prism", 3, coordnames, coords, 6, 1, "zonelist",
-                 "facelist", DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "prism", 3, (DBCAS_t) coordnames,
+        coords, 6, 1, "zonelist", "facelist", DB_FLOAT, NULL);
 
     matnos[0] = 1;
     matlist[0] = 1;
diff --git a/tests/onepyramid.c b/tests/onepyramid.c
index 1dedd43..4a43c1e 100644
--- a/tests/onepyramid.c
+++ b/tests/onepyramid.c
@@ -178,8 +178,8 @@ main(int argc, char *argv[])
         var[i] = x[i]+y[i]*z[i];
     }
 
-    DBPutUcdmesh(dbfile, "pyramid", 3, coordnames, coords, 5, 1, "zonelist",
-                 "facelist", DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "pyramid", 3, (DBCAS_t) coordnames,
+        coords, 5, 1, "zonelist", "facelist", DB_FLOAT, NULL);
 
     matnos[0] = 1;
     matlist[0] = 1;
diff --git a/tests/onetet.c b/tests/onetet.c
index 85870b4..f9904fa 100644
--- a/tests/onetet.c
+++ b/tests/onetet.c
@@ -177,8 +177,8 @@ main(int argc, char *argv[])
         var[i] = x[i]+y[i]*z[i];
     }
 
-    DBPutUcdmesh(dbfile, "tet", 3, coordnames, coords, 4, 1, "zonelist",
-                 "facelist", DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "tet", 3, (DBCAS_t) coordnames,
+        coords, 4, 1, "zonelist", "facelist", DB_FLOAT, NULL);
 
     matnos[0] = 1;
     matlist[0] = 1;
diff --git a/tests/package.m4 b/tests/package.m4
index 58930a5..99ee643 100644
--- a/tests/package.m4
+++ b/tests/package.m4
@@ -1,6 +1,6 @@
 # Signature of the current package.
 m4_define([AT_PACKAGE_NAME],      [silo])
 m4_define([AT_PACKAGE_TARNAME],   [silo])
-m4_define([AT_PACKAGE_VERSION],   [4.9.1])
-m4_define([AT_PACKAGE_STRING],    [silo 4.9.1])
-m4_define([AT_PACKAGE_BUGREPORT], [visit-users at email.ornl.gov])
+m4_define([AT_PACKAGE_VERSION],   [4.10.2])
+m4_define([AT_PACKAGE_STRING],    [silo 4.10.2])
+m4_define([AT_PACKAGE_BUGREPORT], [visit-users at elist.ornl.gov])
diff --git a/tests/pdbtst.c b/tests/pdbtst.c
index 18c2458..fe6371c 100644
--- a/tests/pdbtst.c
+++ b/tests/pdbtst.c
@@ -272,7 +272,7 @@ static int PM_value_compare(double x1, double x2, double tol)
 
     return(rv);}
 
-static int def_hash_types(PDBfile *file)
+static void def_hash_types(PDBfile *file)
 {
     PD_defstr(file, haelemstr,
                     "char *name",
@@ -3992,9 +3992,15 @@ static int run_test(PFTest test, int n, char *host, int native)
 
     cs = SC_mem_monitor(cs, dbg, "B", msg);
 
+#if defined PRId64
     PRINT(STDOUT,
-          "\t\t     %3d    %8d  %8d   %7d     %.2g\n",
+          "\t\t     %3d    %8" PRId64 "  %8" PRI64d "   %7" PRI64d "     %.2g\n",
           n, bytaa, bytfa, bytaa - bytfa, time);
+#else
+    PRINT(STDOUT,
+          "\t\t     %3lld    %8lld  %8lld   %7lld     %.2g\n",
+          n, bytaa, bytfa, bytaa - bytfa, time);
+#endif
 
     return(fail);}
 
@@ -4052,7 +4058,7 @@ int main(int c, char **v)
         struct dirent *dent;
 
         ddir = opendir(".");
-        while (dent = readdir(ddir))
+        while ((dent = readdir(ddir)))
         {
             if (dent->d_name[0] == '.') continue;
             SC_ASSERT(REMOVE(dent->d_name)==0);
diff --git a/tests/point.c b/tests/point.c
index 50dee94..b4ed493 100644
--- a/tests/point.c
+++ b/tests/point.c
@@ -106,9 +106,7 @@ static void build_defvars(DBfile *dbfile, int dims);
  *-------------------------------------------------------------------------
  */
 double
-randf(rmin, rmax)
-    double          rmin;
-    double          rmax;
+randf(double rmin, double rmax)
 {   
     unsigned long   acc;
     static double   divisor = 0;
@@ -232,28 +230,37 @@ build_point(DBfile *dbfile, char *name, int N, int dims)
     float          *x = NULL, *y = NULL, *z = NULL;
     float          *u = NULL, *v = NULL, *w = NULL;
     float          *d = NULL, *t = NULL;
+    float          *vm1 = NULL, *vm2 = NULL;
     int            *itype = NULL;
     long long      *litype = NULL;
     int             i;
     float          *coords[3], *vars[3];
     DBoptlist      *optlist = NULL;
     DBoptlist      *optlist1 = NULL;
+    char           *ghost_labels;
+    char            name2[256];
 
     int             one = 1;
     int             cycle = 44;
     float           time = 4.4;
     double          dtime = 4.4;
 
+    double          missing_value1 = (float) 345.678;
+    double          missing_value2 = 0;
+
     x = ALLOC(float,N); assert_mem(x);
     y = ALLOC(float,N); assert_mem(y);
     z = ALLOC(float,N); assert_mem(y);
     u = ALLOC(float,N); assert_mem(u);
     v = ALLOC(float,N); assert_mem(v);
+    vm1 = ALLOC(float,N); assert_mem(vm1);
+    vm2 = ALLOC(float,N); assert_mem(vm2);
     w = ALLOC(float,N); assert_mem(w);
     d = ALLOC(float,N); assert_mem(d);
     t = ALLOC(float,N); assert_mem(t);
     itype = ALLOC(int,N); assert_mem(itype);
     litype = ALLOC(long long,N); assert_mem(litype);
+    ghost_labels = ALLOC(char,N); assert_mem(ghost_labels);
 
     optlist = DBMakeOptlist(10);
     optlist1 = DBMakeOptlist(10);
@@ -266,6 +273,7 @@ build_point(DBfile *dbfile, char *name, int N, int dims)
     DBAddOption(optlist1, DBOPT_TIME, &time);
     DBAddOption(optlist1, DBOPT_DTIME, &dtime);
     DBAddOption(optlist1, DBOPT_HIDE_FROM_GUI, &one);
+    DBAddOption(optlist1, DBOPT_MISSING_VALUE, &missing_value1);
 
     DBMkDir(dbfile, "dir1");
     DBMkDir(dbfile, "dir2");
@@ -288,17 +296,32 @@ build_point(DBfile *dbfile, char *name, int N, int dims)
             d[i] = sqrt(x[i]*x[i] + y[i]*y[i] + z[i]*z[i]);
         u[i] = x[i] / TwoPI;
         v[i] = y[i] / TwoPI;
+        vm1[i] = v[i];
+        vm2[i] = v[i];
+        if ((i % 7) == 0)
+        {
+            vm1[i] = missing_value1;
+            vm2[i] = missing_value2;
+        }
         w[i] = w[i] / TwoPI;
         t[i] = pow(10., 5. * f * f);
         itype[i] = i;
+        if (i > 5 && i < 17)
+            ghost_labels[i] = 1;
     }
 
     coords[0] = x;
     coords[1] = y;
     coords[2] = z;
 
+
     DBPutPointmesh(dbfile, name, dims, coords, N, DB_FLOAT, optlist);
 
+    DBAddOption(optlist, DBOPT_GHOST_NODE_LABELS, ghost_labels);
+    sprintf(name2, "%s_wghost", name);
+    DBPutPointmesh(dbfile, name2, dims, coords, N, DB_FLOAT, optlist);
+    DBClearOption(optlist, DBOPT_GHOST_NODE_LABELS);
+
     vars[0] = d;
     DBPutPointvar(dbfile, "d", name, 1, vars, N, DB_FLOAT, optlist);
 
@@ -308,6 +331,17 @@ build_point(DBfile *dbfile, char *name, int N, int dims)
     vars[0] = v;
     DBPutPointvar(dbfile, "v", name, 1, vars, N, DB_FLOAT, optlist);
 
+    vars[0] = vm1;
+    DBClearOption(optlist1, DBOPT_HIDE_FROM_GUI);
+    DBPutPointvar(dbfile, "vm1", name, 1, vars, N, DB_FLOAT, optlist1);
+
+    DBClearOption(optlist1, DBOPT_MISSING_VALUE);
+    DBAddOption(optlist1, DBOPT_MISSING_VALUE, &missing_value2);
+    vars[0] = vm2;
+    DBPutPointvar(dbfile, "vm2", name, 1, vars, N, DB_FLOAT, optlist1);
+    DBClearOption(optlist1, DBOPT_MISSING_VALUE);
+    DBAddOption(optlist1, DBOPT_HIDE_FROM_GUI, &one);
+
     if(dims == 3)
     {
         vars[0] = w;
diff --git a/tests/polyzl.c b/tests/polyzl.c
index f82ff98..e2b16d0 100644
--- a/tests/polyzl.c
+++ b/tests/polyzl.c
@@ -145,8 +145,8 @@ main(int argc, char *argv[])
     optlist = DBMakeOptlist(3);
     DBAddOption(optlist, DBOPT_PHZONELIST, "polyzl");
 
-    DBPutUcdmesh(dbfile, "ucdmesh", 3, coordnames, coords, NNODES, NZONES,
-        NULL, NULL, DB_FLOAT, optlist);
+    DBPutUcdmesh(dbfile, "ucdmesh", 3, (DBCAS_t) coordnames,
+        coords, NNODES, NZONES, NULL, NULL, DB_FLOAT, optlist);
 
     DBPutPHZonelist(dbfile, "polyzl",
         NFACES, nodecnt, lnodelist, nodelist, NULL,
diff --git a/tests/quadf77.f b/tests/quadf77.f
index dbcb65d..9510b19 100644
--- a/tests/quadf77.f
+++ b/tests/quadf77.f
@@ -91,6 +91,8 @@ c...............................................................................
           driver = DB_HDF5
       end if
 
+      err = dbset2dstrlen(1024)
+
 c...Create file.
       err = dbcreate("quadf77.silo", 12, DB_CLOBBER, DB_LOCAL,
      .               "file info", 9, driver, dbid)
@@ -155,9 +157,11 @@ c----------------------------------------------------------------------
       integer    i, meshid, varid
       integer    tcycle, mixlen, optlistid
       integer    dims(3), ndims
-      real       x(NX), y(NY), d(NZONES)
+      real       x(NX), y(NY), d(NZONES), f(2*NZONES)
       real       ttime
       double precision dttime
+      character*1024 vnames(2)
+      integer lvnames(2)
 
 
 c...Initializations.
@@ -165,6 +169,7 @@ c...Initializations.
       data  x/1.,2.,3.,4./
       data  y/1.,2.,3./
       data  d/1.,2.,3.,4.,5.,6./
+      data  f/1.0,1.1,1.2,1.3,1.4,1.5,2.0,2.1,2.2,2.3,2.4,2.5/
 
       ttime     = 2.345
       dttime    = 2.345
@@ -222,6 +227,13 @@ c...two different meshes
      .                lname, d, dims, ndims,
      .                DB_F77NULL, 0, DB_FLOAT, DB_ZONECENT,
      .                optlistid, varid)
+      vnames(1) = "FooBar"
+      lvnames(1) = 6
+      vnames(2) = "gorfo"
+      lvnames(2) = 5
+      err = dbputqv(dbid, "f", 1, name, lname, 2, vnames, lvnames,
+     .          f, dims, ndims, DB_F77NULL, 0, DB_FLOAT, DB_ZONECENT,
+     .          optlistid, varid)
 
       buildquad = meshid
 
diff --git a/tests/readstuff.c b/tests/readstuff.c
index 7a0b65b..0d752ea 100644
--- a/tests/readstuff.c
+++ b/tests/readstuff.c
@@ -112,7 +112,7 @@ main(int argc, char *argv[])
     obj_names[11] = "../mesh1";
     obj_names[12] = "../block11/u";
 
-    DBSortObjectsByOffset(dbfile, 13, obj_names, ordering);
+    DBSortObjectsByOffset(dbfile, 13, (DBCAS_t) obj_names, ordering);
     printf("UNsorted objects...\n");
     for (i = 0; i < 13; i++)
         printf("\t\"%s\"\n", obj_names[i]);
diff --git a/tests/ioperf_pdb.c b/tests/realloc_obj_and_opts.c
similarity index 56%
copy from tests/ioperf_pdb.c
copy to tests/realloc_obj_and_opts.c
index 89d01e5..11e8ee9 100644
--- a/tests/ioperf_pdb.c
+++ b/tests/realloc_obj_and_opts.c
@@ -49,72 +49,68 @@ reflect those  of the United  States Government or  Lawrence Livermore
 National  Security, LLC,  and shall  not  be used  for advertising  or
 product endorsement purposes.
 */
-#include <stdlib.h>
+#include <silo.h>
+#include <stdio.h>
+#include <math.h>
 #include <string.h>
-#include <pdb.h> /* below we are using lite_ functions */
-#include <ioperf.h>
+#include <float.h>
 
-/*
- * Implement ioperf's I/O interface using PDB functions
- */
-
-static options_t options;
-static char *filename;
-static PDBfile *pdbfile;
-
-static int Open_pdb(ioflags_t iopflags)
+int
+main(int argc, char *argv[])
 {
-    pdbfile = lite_PD_create(filename);
-    if (!pdbfile) return 0;
-    return 1;
-}
-
-static int Write_pdb(void *buf, size_t nbytes)
-{
-    int status;
-    char dsname[256];
-    static int n = 0;
-    sprintf(dsname, "data_%07d(%d)", n++, nbytes/sizeof(double));
-    status = lite_PD_write(pdbfile, dsname, "double", buf);
-    if (status) return nbytes;
+    DBobject *obj;
+    DBoptlist *opts;
+    DBfile *dbfile;
+    int comp_data[] = {0,1,2,3,4,5,6,7,8,9};
+    int ndims = 1;
+    const long int dims = sizeof(comp_data)/sizeof(comp_data[0]);
+    int cycle = 1;
+    float time = 1.5;
+    double dtime = 1.515;
+    int lo_offset = 7;
+    int hi_offset = 24;
+
+    dbfile = DBCreate("object-tests.silo", DB_CLOBBER, DB_LOCAL, "object tests", DB_PDB);
+
+    /* confirm can handle more components than orginal make of '3' */
+    obj = DBMakeObject("test", DB_USERDEF, 3);
+    DBAddIntComponent(obj, "oneInt", 4);
+    DBAddIntComponent(obj, "secondInt", 5);
+    DBAddFltComponent(obj, "oneFlt", 3.5);
+    DBAddDblComponent(obj, "oneDbl", 1.53776);
+    DBAddStrComponent(obj, "foo", "bar");
+    DBAddIntComponent(obj, "anotherInt", 8);
+    DBWriteComponent(dbfile, obj, "intCompA", "pre_", "integer", comp_data, 1, &dims);
+    DBAddDblComponent(obj, "Dbl2", 1.53776);
+    DBAddDblComponent(obj, "Dbl3", 1.53776);
+    DBAddDblComponent(obj, "Dbl4", 1.53776);
+    DBWriteComponent(dbfile, obj, "intCompB", "pre_", "integer", comp_data, 1, &dims);
+    DBWriteObject(dbfile, obj, 0);
+    DBFreeObject(obj);
+
+    opts = DBMakeOptlist(3);
+    DBAddOption(opts, DBOPT_CYCLE, &cycle);
+    DBAddOption(opts, DBOPT_TIME, &time);
+    DBAddOption(opts, DBOPT_DTIME, &dtime);
+    DBClearOption(opts, DBOPT_CYCLE);
+    DBAddOption(opts, DBOPT_LO_OFFSET, &lo_offset);
+    DBAddOption(opts, DBOPT_HI_OFFSET, &hi_offset);
+    DBClearOptlist(opts);
+    DBAddOption(opts, DBOPT_CYCLE, &cycle);
+    DBAddOption(opts, DBOPT_TIME, &time);
+    DBAddOption(opts, DBOPT_DTIME, &dtime);
+    DBAddOption(opts, DBOPT_LO_OFFSET, &lo_offset);
+    DBAddOption(opts, DBOPT_HI_OFFSET, &hi_offset);
+    DBAddOption(opts, DBOPT_COORDSYS, &cycle);
+    DBAddOption(opts, DBOPT_NMATNOS, &cycle);
+    DBAddOption(opts, DBOPT_HIDE_FROM_GUI, &cycle);
+    DBAddOption(opts, DBOPT_TOPO_DIM, &cycle);
+    DBAddOption(opts, DBOPT_ALLOWMAT0, &cycle);
+    DBAddOption(opts, DBOPT_TV_CONNECTIVITY, &cycle);
+    DBAddOption(opts, DBOPT_DISJOINT_MODE, &cycle);
+    DBFreeOptlist(opts);
+
+    DBClose(dbfile);
+  
     return 0;
 }
-
-static int Read_pdb(void *buf, size_t nbytes)
-{
-    return 0;
-}
-
-static int Close_pdb()
-{
-    return lite_PD_close(pdbfile);
-}
-
-static iointerface_t *CreateInterfaceReal(int argi, int argc, char *argv[], const char *_filename, const options_t *opts)
-{
-    iointerface_t *retval;
-
-    options = *opts;
-    filename = strdup(_filename);
-
-    retval = (iointerface_t*) calloc(sizeof(iointerface_t),1);
-    retval->Open = Open_pdb;
-    retval->Write = Write_pdb;
-    retval->Read = Read_pdb;
-    retval->Close = Close_pdb;
-
-    return retval;
-}
-
-#ifdef STATIC_PLUGINS
-iointerface_t *CreateInterface_pdb(int argi, int argc, char *argv[], const char *_filename, const options_t *opts)
-{
-    return CreateInterfaceReal(argi, argc, argv, _filename, opts);
-}
-#else
-iointerface_t *CreateInterface(int argi, int argc, char *argv[], const char *_filename, const options_t *opts)
-{
-    return CreateInterfaceReal(argi, argc, argv, _filename, opts);
-}
-#endif
-
diff --git a/tests/rocket.cxx b/tests/rocket.cxx
index 2a500a2..f35fb92 100644
--- a/tests/rocket.cxx
+++ b/tests/rocket.cxx
@@ -748,7 +748,7 @@ WriteAllFormats(int argc, char **argv)
         if (!cwdir) continue;
     
         struct dirent* dent;
-        while (dent = readdir(cwdir))
+        while ((dent = readdir(cwdir)))
         {
             string dname = string(dent->d_name);
     
diff --git a/tests/rocket.h b/tests/rocket.h
index e898a0b..b18e4cc 100644
--- a/tests/rocket.h
+++ b/tests/rocket.h
@@ -52,7 +52,6 @@ Government or Lawrence Livermore National Security, LLC, and shall not
 be used for advertising or product endorsement purposes.
 */
 
-#warning MAKE THIS CONDITIONAL LATER
 #define HAVE_SILO
 
 #ifdef __sgi    /* IRIX C++ bug */
diff --git a/tests/rocket_silo.cxx b/tests/rocket_silo.cxx
index 3260bcd..17200d7 100644
--- a/tests/rocket_silo.cxx
+++ b/tests/rocket_silo.cxx
@@ -221,7 +221,7 @@ static int AddRegions(DBfile *dbfile, DBmrgtree *mrgt,
     DBSetCwr(mrgt, className);
 
     int seg_types[1], seg_lens[1], seg_ids[1];
-    const int *seg_data[1];
+    int *seg_data[1];
     seg_types[0] = DB_NODECENT;
     seg_ids[0] = 0;
 
@@ -265,7 +265,7 @@ static int AddRegions(DBfile *dbfile, DBmrgtree *mrgt,
                 seg_data[0] = &map_data[0];
                 string mapnm = string(regnNames[i]) + "_map";
                 DBAddRegion(mrgt, regnNames[i], 0, 0, mapnm.c_str(), 1, seg_ids, seg_lens, seg_types, 0);
-                DBPutGroupelmap(dbfile, mapnm.c_str(), 1, seg_types, seg_lens, seg_ids, (int**)seg_data, 0, 0, 0);
+                DBPutGroupelmap(dbfile, mapnm.c_str(), 1, seg_types, seg_lens, seg_ids, (int**)seg_data, 0, DB_NOTYPE, 0);
             }
         }
     }
@@ -300,7 +300,7 @@ static int WriteSiloSingleMesh(DBfile *dbfile, DBoptlist *ol,
     int ndoms = dom_classes.size();
     vector<int> dom_map;
     zoneClasses.GetEntitiesPartitionedByClasses(dom_classes, dom_map);
-    DBPutUcdvar1(dbfile, "proc_map", "mesh", &dom_map[0], nzones, 0, 0, DB_INT, DB_ZONECENT, 0);
+    DBPutUcdvar1(dbfile, "proc_map", "mesh", (float*) &dom_map[0], nzones, 0, 0, DB_INT, DB_ZONECENT, 0);
 
     // Create MRG Tree 
     DBmrgtree *mrgt = DBMakeMrgtree(DB_UCDMESH, 0x0, 4, 0);
diff --git a/tests/sami.c b/tests/sami.c
index 3e97d55..2cf9dfc 100644
--- a/tests/sami.c
+++ b/tests/sami.c
@@ -381,7 +381,7 @@ test_get_all(DBfile *dbfile)
     
     /* 1d char */
     puts("    1d_char");
-    if (NULL==(cdata_in=DBGetVar(dbfile, "1d_char"))) {
+    if (NULL==(cdata_in=(char *)DBGetVar(dbfile, "1d_char"))) {
 	puts("        DBGetVar() failed");
 	nerrors++;
     } else {
@@ -397,7 +397,7 @@ test_get_all(DBfile *dbfile)
 
     /* 2d short */
     puts("    2d_short");
-    if (NULL==(sdata_in=DBGetVar(dbfile, "2d_short"))) {
+    if (NULL==(sdata_in=(short*)DBGetVar(dbfile, "2d_short"))) {
 	puts("        DBGetVar() failed");
 	nerrors++;
     } else {
@@ -414,7 +414,7 @@ test_get_all(DBfile *dbfile)
 
     /* 3d int */
     puts("    3d_int");
-    if (NULL==(idata_in=DBGetVar(dbfile, "3d_int"))) {
+    if (NULL==(idata_in=(int*)DBGetVar(dbfile, "3d_int"))) {
 	puts("        DBGetVar() failed");
 	nerrors++;
     } else {
@@ -429,7 +429,7 @@ test_get_all(DBfile *dbfile)
 
     /* 3d long */
     puts("    3d_long");
-    if (NULL==(ldata_in=DBGetVar(dbfile, "3d_long"))) {
+    if (NULL==(ldata_in=(long*)DBGetVar(dbfile, "3d_long"))) {
 	puts("        DBGetVar() failed");
 	nerrors++;
     } else {
@@ -445,7 +445,7 @@ test_get_all(DBfile *dbfile)
     /* 4d float */
     DBForceSingle(TRUE);
     puts("    4d_float");
-    if (NULL==(fdata_in=DBGetVar(dbfile, "4d_float"))) {
+    if (NULL==(fdata_in=(float*)DBGetVar(dbfile, "4d_float"))) {
 	puts("        DBGetVar() failed");
 	nerrors++;
     } else {
@@ -462,7 +462,7 @@ test_get_all(DBfile *dbfile)
 
     /* 5d double */
     puts("    5d_double");
-    if (NULL==(ddata_in=DBGetVar(dbfile, "5d_double"))) {
+    if (NULL==(ddata_in=(double*)DBGetVar(dbfile, "5d_double"))) {
 	puts("        DBGetVar() failed");
 	nerrors++;
     } else {
@@ -998,8 +998,8 @@ test_quadmesh(DBfile *dbfile)
 	nerrors++;
     }
 
-    if (DBPutQuadvar(dbfile, "qv1", "qm1", 3, varnames, (float**)vars, dims, 2,
-		     NULL, 0, DB_DOUBLE, DB_NODECENT, NULL)<0) {
+    if (DBPutQuadvar(dbfile, "qv1", "qm1", 3, (DBCAS_t) varnames,
+        vars, dims, 2, NULL, 0, DB_DOUBLE, DB_NODECENT, NULL)<0) {
 	puts("DBPutQuadmesh(qv1) failed");
 	nerrors++;
     }
@@ -1063,9 +1063,8 @@ test_ucdmesh(DBfile *dbfile)
     DBSetDir(dbfile, "/ucd");
 
     /* Mesh */
-    if (DBPutUcdmesh(dbfile, "um1", ndims, coordnames, (float**)coords, nnodes,
-		     nzones, "zl1", "fl1", DB_DOUBLE,
-		     NULL)<0) {
+    if (DBPutUcdmesh(dbfile, "um1", ndims, (DBCAS_t) coordnames,
+           coords, nnodes, nzones, "zl1", "fl1", DB_DOUBLE, NULL)<0) {
 	puts("DBPutUcdmesh(um1) failed");
 	nerrors++;
     }
@@ -1075,8 +1074,8 @@ test_ucdmesh(DBfile *dbfile)
     }
     
     /* Variable */
-    if (DBPutUcdvar(dbfile, "uv1", "um1", nvars, varnames, vars, nels, mixvars,
-		    mixlen, DB_FLOAT, DB_NODECENT, NULL)<0) {
+    if (DBPutUcdvar(dbfile, "uv1", "um1", nvars, (DBCAS_t) varnames,
+        vars, nels, mixvars, mixlen, DB_FLOAT, DB_NODECENT, NULL)<0) {
 	puts("DBPutUcdvar(uv1) failed");
 	nerrors++;
     }
diff --git a/tests/simple.c b/tests/simple.c
index 54d8c83..8a0b774 100644
--- a/tests/simple.c
+++ b/tests/simple.c
@@ -211,7 +211,7 @@ main(int argc, char *argv[])
         val2[i] = 0;
 
     DBReadVarSlice(dbfile, "simple", offset, length, stride, ndims, val2);
-    lval2 = DBGetVar(dbfile, "longlong");
+    lval2 = (long long *)DBGetVar(dbfile, "longlong");
 
     DBClose(dbfile);
 
diff --git a/tests/spec.c b/tests/spec.c
index 4c22ae0..29aab8b 100644
--- a/tests/spec.c
+++ b/tests/spec.c
@@ -137,8 +137,8 @@ main(int argc, char *argv[])
     }
 
     /* Name the coordinate axes 'X' and 'Y' */
-    coordnames[0] = (char *) safe_strdup("X");
-    coordnames[1] = (char *) safe_strdup("Y");
+    coordnames[0] = (char *) _db_safe_strdup("X");
+    coordnames[1] = (char *) _db_safe_strdup("Y");
 
     /* Set up the coordinate values */
 
@@ -158,8 +158,8 @@ main(int argc, char *argv[])
     dims[1] = NY + 1;
 
     /* Write out the mesh to the file */
-    DBPutQuadmesh(file, "quad_mesh", coordnames, coordinates, dims, 2,
-                  DB_FLOAT, DB_COLLINEAR, NULL);
+    DBPutQuadmesh(file, "quad_mesh", (DBCAS_t) coordnames,
+        coordinates, dims, 2, DB_FLOAT, DB_COLLINEAR, NULL);
 
     /* Set up the material and species information */
 
diff --git a/tests/specmix.c b/tests/specmix.c
index 4355ab4..f1062fd 100644
--- a/tests/specmix.c
+++ b/tests/specmix.c
@@ -86,6 +86,14 @@ product endorsement purposes.
 #define lim(a,l,h) (max(min((a),(h)),(l)))
 #define lim01(a)   (lim((a),0,1))
 
+static double difftol = 0.000001;
+static int equald(double a, double b)
+{
+    if (a == 0 && b == 0) return 1;
+    if (b == 0) return 0;
+    return fabs(a/b - 1.0) < difftol;
+}
+
 /* Structures for a 2-d problem domain: */
 
 /* Struct: Node */
@@ -102,7 +110,9 @@ typedef struct {
   int   nmats;
   int   mats[MAXMAT+1];
   float matvf[MAXMAT+1];
+  double matvfd[MAXMAT+1];
   float specmf[MAXMAT+1][MAXSPEC];
+  double specmfd[MAXMAT+1][MAXSPEC];
   Node *n[2][2];  /* the four nodes at the corners of this zone*/
 } Zone;
 
@@ -120,7 +130,8 @@ void Mesh_Create(Mesh*,int,int); /* constructor */
 /* file-writing functions */
 void writemesh_curv2d(DBfile*,int,int);
 void writemesh_ucd2d(DBfile*,int,int);
-int writematspec(DBfile*);
+typedef enum _DoSpecOp_t { doWrite, doReadAndCheck} DoSpecOp_t;
+int domatspec(DBfile*,DoSpecOp_t,int);
 
 /* problem specifics */
 enum ZVARS { ZV_P, ZV_D };
@@ -211,6 +222,9 @@ int main(int argc, char *argv[]) {
 	  reorder = 1;
       } else if (!strcmp(argv[i], "show-all-errors")) {
           show_all_errors = 1;
+      } else if (!strcmp(argv[i], "difftol")) {
+          difftol = strtod(argv[i+1], 0);
+          i++;
       } else if (argv[i][0] != '\0') {
 	  fprintf(stderr, "%s: ignored argument `%s'\n", argv[0], argv[i]);
       }
@@ -287,6 +301,7 @@ int main(int argc, char *argv[]) {
 	int   i,j;
 	int   c=0;
 	float vf=0.;
+        double vfd=0.;
 	const int RES=40; /* subsampling resolution */
 
 	/* Subsample the zone at RESxRES to    *
@@ -321,9 +336,12 @@ int main(int argc, char *argv[]) {
 	  }
 	}
 
+        vfd = vf;
 	vf /= (float)c;
+        vfd /= (double)c;
 
 	mesh.zone[x][y].matvf[m]=vf;
+	mesh.zone[x][y].matvfd[m]=vfd;
 	if (vf)
 	  mesh.zone[x][y].nmats++;
       }
@@ -370,43 +388,51 @@ int main(int argc, char *argv[]) {
 	    float y11=mesh.zone[x][y].n[1][1]->y;
 	    float xx=(x00+x10+x01+x11)/4.;
 	    float yy=(y00+y10+y01+y11)/4.;
+	    double xxd=(x00+x10+x01+x11)/4.;
+	    double yyd=(y00+y10+y01+y11)/4.;
 	    
-	    float mf=0;
+	    float mf=0.;
+	    double mfd=0.;
 	    float g,g1,g2; /* gradient values */
+	    double gd,g1d,g2d; /* gradient values */
 	    switch (m) {
 	    case 1:
 	      g=lim01((xx+20.)/40.);
+	      gd=lim01((xxd+20.)/40.);
 	      switch (s) {
-	      case 0: mf=g;	      break;
-	      case 1: mf=1.-g;	      break;
+	      case 0: mf=g;    mfd=gd;    break;
+	      case 1: mf=1.-g; mfd=1.-gd; break;
 	      default: exit(-1);
 	      }
 	      break;
 	    case 2:
 	      g=lim01((yy+20.)/40.);
+	      gd=lim01((yyd+20.)/40.);
 	      switch (s) {
-	      case 0: mf=.2+g/2.;     break;
-	      case 1: mf=.5-g/2.;     break;
-	      case 2: mf=.2;	      break;
-	      case 3: mf=.1;	      break;
+	      case 0: mf=.2+g/2.; mfd=.2+gd/2.; break;
+	      case 1: mf=.5-g/2.; mfd=.5-gd/2.; break;
+	      case 2: mf=.2;      mfd=.2;       break;
+	      case 3: mf=.1;      mfd=.1;       break;
 	      default: exit(-1);
 	      }
 	      break;
 	    case 3:
 	      g1=lim01((xx-5+yy+40.)/80.);
 	      g2=lim01((xx-5-yy+40.)/80.);
+	      g1d=lim01((xxd-5+yyd+40.)/80.);
+	      g2d=lim01((xxd-5-yyd+40.)/80.);
 	      switch (s) {
-	      case 0: mf=g1/2.;	      break;
-	      case 1: mf=g2/4.;	      break;
-	      case 2: mf=.5-g1/2.;    break;
-	      case 3: mf=.25-g2/4.;   break;
-	      case 4: mf=.25;	      break;
+	      case 0: mf=g1/2.;	    mfd=g1d/2.;     break;
+	      case 1: mf=g2/4.;	    mfd=g2d/4.;     break;
+	      case 2: mf=.5-g1/2.;  mfd=.5-g1d/2.;  break;
+	      case 3: mf=.25-g2/4.; mfd=.25-g2d/4.; break;
+	      case 4: mf=.25;	    mfd=.25;        break;
 	      default: exit(-1);
 	      }
 	      break;
 	    case 4:
 	      switch (s) {
-	      case 0: mf=1.0;	      break;
+	      case 0: mf=1.0; mfd=1.0;  break;
 	      default: exit(-1);
 	      }
 	      break;
@@ -416,6 +442,7 @@ int main(int argc, char *argv[]) {
 	    }
 	    
 	    mesh.zone[x][y].specmf[m][s] = mf;
+	    mesh.zone[x][y].specmfd[m][s] = mfd;
 	    mftot += mf;
 	  }
 	  if (mftot < .99 || mftot > 1.01) {
@@ -436,17 +463,28 @@ int main(int argc, char *argv[]) {
   sprintf(filename, "specmix_quad%s", file_ext);
   printf("Writing %s using curvilinear mesh.\n", filename);
   db=DBCreate(filename, DB_CLOBBER, DB_LOCAL, "Mixed zone species test", driver);
-  mixc=writematspec(db);
+  mixc=domatspec(db, doWrite, 0);
   writemesh_curv2d(db,mixc,reorder);
   DBClose(db);
 
   sprintf(filename, "specmix_ucd%s", file_ext);
   printf("Writing %s using unstructured mesh.\n", filename);
   db=DBCreate(filename, DB_CLOBBER, DB_LOCAL, "Mixed zone species test", driver);
-  mixc=writematspec(db);
+  mixc=domatspec(db, doWrite, 0);
   writemesh_ucd2d(db,mixc,reorder);
   DBClose(db);
 
+  /* Test read-back of species */
+  printf("Reading %s with Force Single off.\n", filename);
+  db=DBOpen(filename, driver, DB_READ);
+  domatspec(db, doReadAndCheck, 0);
+  DBClose(db);
+  printf("Reading %s with Force Single ON.\n", filename);
+  DBForceSingle(1);
+  db=DBOpen(filename, driver, DB_READ);
+  domatspec(db, doReadAndCheck, 1);
+  DBClose(db);
+
   printf("Done!\n");
 
   for (x=0;x<mesh.nx;x++)
@@ -516,8 +554,51 @@ void writemesh_curv2d(DBfile *db, int mixc, int reorder) {
   dims[0]=mesh.nx;
   dims[1]=mesh.ny;
 
-  DBPutQuadmesh(db, "Mesh", coordnames, coord, dims, 2, 
-		DB_FLOAT, DB_NONCOLLINEAR, NULL);
+  DBPutQuadmesh(db, "Mesh", (DBCAS_t) coordnames, coord,
+      dims, 2, DB_FLOAT, DB_NONCOLLINEAR, NULL);
+
+  /* Test outputting of ghost node and zone labels */
+  {
+      int i;
+      int nnodes = mesh.nx * mesh.ny;
+      int nzones = (mesh.nx-1) * (mesh.ny-1);
+      char *gn = (char *) calloc(nnodes,1);
+      char *gz = (char *) calloc(nzones,1);
+      DBoptlist *ol = DBMakeOptlist(5);
+
+      for (i = 0; i < nnodes; i++)
+      {
+          if (!(i % 3)) gn[i] = 1;
+      }
+      for (i = 0; i < nzones; i++)
+      {
+          if (!(i % 7)) gz[i] = 1;
+      }
+
+      strcpy(coordnames[0],"xn");
+      strcpy(coordnames[1],"yn");
+      DBAddOption(ol, DBOPT_GHOST_NODE_LABELS, gn);
+      DBPutQuadmesh(db, "Mesh_gn", (DBCAS_t) coordnames,
+          coord, dims, 2, DB_FLOAT, DB_NONCOLLINEAR, ol);
+      DBClearOption(ol, DBOPT_GHOST_NODE_LABELS);
+
+      strcpy(coordnames[0],"xz");
+      strcpy(coordnames[1],"yz");
+      DBAddOption(ol, DBOPT_GHOST_ZONE_LABELS, gz);
+      DBPutQuadmesh(db, "Mesh_gz", (DBCAS_t) coordnames,
+          coord, dims, 2, DB_FLOAT, DB_NONCOLLINEAR, ol);
+
+      strcpy(coordnames[0],"xnz");
+      strcpy(coordnames[1],"ynz");
+      DBAddOption(ol, DBOPT_GHOST_NODE_LABELS, gn);
+      DBPutQuadmesh(db, "Mesh_gnz", (DBCAS_t) coordnames,
+          coord, dims, 2, DB_FLOAT, DB_NONCOLLINEAR, ol);
+
+      DBFreeOptlist(ol);
+      free(gn);
+      free(gz);
+  }
+
   free(coordnames[0]);
   free(coordnames[1]);
 
@@ -576,8 +657,8 @@ void writemesh_curv2d(DBfile *db, int mixc, int reorder) {
   varbufs[3] = f2;
   varbufs[4] = f1;
   varbufs[5] = f2;
-  DBPutQuadvar(db, "manyc", "Mesh", 6, varnames, varbufs, dims, 2, NULL, 0,
-    DB_FLOAT, DB_NODECENT, NULL);
+  DBPutQuadvar(db, "manyc", "Mesh", 6, (DBCAS_t) varnames,
+      varbufs, dims, 2, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
 
   /* do Zone vars */
 
@@ -666,6 +747,7 @@ void writemesh_ucd2d(DBfile *db, int mixc, int reorder) {
   int nzones;
   int shapesize[1];
   int shapecnt[1];
+  int shapetyp[1];
 
   /* do mesh */
   c=0;
@@ -703,12 +785,44 @@ void writemesh_ucd2d(DBfile *db, int mixc, int reorder) {
   nzones=mesh.zx*mesh.zy;
   shapesize[0]=4;
   shapecnt[0]=nzones;
+  shapetyp[0]=DB_ZONETYPE_QUAD;
 
-  DBSetDeprecateWarnings(0);
-  DBPutZonelist(db,"Mesh_zonelist",nzones,2,nl,lnodelist,0,shapesize,shapecnt,1);
-  DBSetDeprecateWarnings(3);
+  DBPutZonelist2(db,"Mesh_zonelist",nzones,2,nl,lnodelist,0,0,0,shapetyp,shapesize,shapecnt,1,NULL);
   DBPutUcdmesh (db,"Mesh",2,NULL,coord,nnodes,nzones,"Mesh_zonelist",NULL,DB_FLOAT,NULL);
 
+  /* test output of ghost node and zone labels */
+  {
+      int i;
+      char *gn = (char*)calloc(nnodes,1);
+      char *gz = (char*)calloc(nzones,1);
+      DBoptlist *ol = DBMakeOptlist(5);
+
+      for (i = 0; i < nnodes; i++)
+      {
+          if (!(i % 3)) gn[i] = 1;
+      } 
+      for (i = 0; i < nzones; i++)
+      {
+          if (!(i % 7)) gz[i] = 1;
+      } 
+
+      DBAddOption(ol, DBOPT_GHOST_NODE_LABELS, gn);
+      DBPutUcdmesh (db,"Mesh_gn",2,NULL,coord,nnodes,nzones,"Mesh_zonelist",NULL,DB_FLOAT,ol);
+      DBClearOption(ol, DBOPT_GHOST_NODE_LABELS);
+
+      DBPutUcdmesh (db,"Mesh_gz",2,NULL,coord,nnodes,nzones,"Mesh_zonelist_gz",NULL,DB_FLOAT,NULL);
+      DBAddOption(ol, DBOPT_GHOST_ZONE_LABELS, gz);
+      DBPutZonelist2(db,"Mesh_zonelist_gz",nzones,2,nl,lnodelist,0,0,0,shapetyp,shapesize,shapecnt,1,ol);
+
+      DBAddOption(ol, DBOPT_GHOST_NODE_LABELS, gn);
+      DBPutUcdmesh (db,"Mesh_gnz",2,NULL,coord,nnodes,nzones,"Mesh_zonelist_gnz",NULL,DB_FLOAT,ol);
+      DBPutZonelist2(db,"Mesh_zonelist_gnz",nzones,2,nl,lnodelist,0,0,0,shapetyp,shapesize,shapecnt,1,ol);
+
+      DBFreeOptlist(ol);
+      free(gn);
+      free(gz);
+  }
+
   /* do Node vars */
 
   cnvar = (char *)        malloc(sizeof(char)*nnodes); 
@@ -740,10 +854,8 @@ void writemesh_ucd2d(DBfile *db, int mixc, int reorder) {
     int val = DB_ON;
 
     DBAddOption(opt,DBOPT_USESPECMF,&val);
-    DBPutUcdvar1(db, "u", "Mesh", f1, nnodes, NULL, 0, DB_FLOAT,
-        DB_NODECENT, opt);
-    DBPutUcdvar1(db, "v", "Mesh", f2, nnodes, NULL, 0, DB_FLOAT,
-        DB_NODECENT, opt);
+    DBPutUcdvar1(db, "u", "Mesh", f1, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, opt);
+    DBPutUcdvar1(db, "v", "Mesh", f2, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, opt);
     DBPutUcdvar1(db, "u", "Mesh", f1, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, opt);
     DBPutUcdvar1(db, "v", "Mesh", f2, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, opt);
     DBPutUcdvar1(db, "cnvar", "Mesh", cnvar, nnodes, NULL, 0, DB_CHAR, DB_NODECENT, opt);
@@ -819,8 +931,54 @@ void writemesh_ucd2d(DBfile *db, int mixc, int reorder) {
 }
 
 
+#define CHECKIVAL(V1, V2)                                                   \
+if ((V1) != (V2))                                                           \
+{                                                                           \
+    fprintf(stderr, "ReadAndCheck failed at line %d, %s(%d) != %s(%d)\n",   \
+        __LINE__, #V1, V1, #V2, V2);                                        \
+    exit(-1);                                                               \
+}
+
+#define CHECKDVAL(V1, V2)                                                   \
+if (!equald(V1,V2))                                                         \
+{                                                                           \
+    fprintf(stderr, "ReadAndCheck failed at line %d, %s(%f) != %s(%f)\n",   \
+        __LINE__, #V1, V1, #V2, V2);                                        \
+    exit(-1);                                                               \
+}
+
+#define CHECKIARRVAL(A1,A2,I)                                               \
+if ((A1)[I] != (A2)[I])                                                     \
+{                                                                           \
+    fprintf(stderr, "ReadAndCheck failed at line %d, %s[%d](%d) != %s[%d](%d)\n",\
+        __LINE__, #A1, I, (A1)[I], #A2, I, (A2)[I]);                        \
+    exit(-1);                                                               \
+}
+
+#define CHECKDARRVAL(A1,A2,I)                                               \
+if (!equald((A1)[I], (A2)[I]))                                              \
+{                                                                           \
+    fprintf(stderr, "ReadAndCheck failed at line %d, %s[%d](%.16g) != %s[%d](%.16g)\n",\
+        __LINE__, #A1, I, (A1)[I], #A2, I, (A2)[I]);                        \
+    exit(-1);                                                               \
+}
+
+#define CHECKIARR(A1,A2,N)          \
+{                                   \
+    int i;                          \
+    for (i = 0; i < N; i++)         \
+        CHECKIARRVAL(A1,A2,i);      \
+}
+
+#define CHECKDARR(A1,A2,N)          \
+{                                   \
+    int i;                          \
+    for (i = 0; i < N; i++)         \
+        CHECKDARRVAL(A1,A2,i);      \
+}
+
 /*----------------------------------------------------------------------------
- * Function: writematspec
+ * Function: domatspec
  *
  * Inputs:   db (DBfile*): the Silo file handle
  *
@@ -834,7 +992,7 @@ void writemesh_ucd2d(DBfile *db, int mixc, int reorder) {
  *    Added material names.
  *---------------------------------------------------------------------------*/
 int
-writematspec(DBfile *db)
+domatspec(DBfile *db, DoSpecOp_t writeOrReadAndCheck, int forceSingle)
 {
     int     x, y, c;
     int     dims[2];
@@ -843,11 +1001,13 @@ writematspec(DBfile *db)
     int     mix_zone[1000];
     int     mix_next[1000];
     float   mix_vf[1000];
+    double  mix_vfd[1000];
     int     mixc;
     int     mfc;
     int     speclist[1000];
     int     mixspeclist[1000];
     float   specmf[10000];
+    double  specmfd[10000];
     DBoptlist      *optlist;
 
     dims[0] = mesh.zx;
@@ -888,6 +1048,7 @@ writematspec(DBfile *db)
                     {
                         mix_mat[mixc] = m;
                         mix_vf[mixc] = mesh.zone[x][y].matvf[m];
+                        mix_vfd[mixc] = mesh.zone[x][y].matvfd[m];
                         mix_zone[mixc] = c + 1; /* 1-origin */
                         nmats--;
                         if (nmats)
@@ -902,12 +1063,54 @@ writematspec(DBfile *db)
         }
     }
 
-    optlist = DBMakeOptlist(10);
-    DBAddOption(optlist, DBOPT_MATNAMES, matnames);
+    if (writeOrReadAndCheck == doWrite)
+    {
+        optlist = DBMakeOptlist(10);
+        DBAddOption(optlist, DBOPT_MATNAMES, matnames);
+
+        DBPutMaterial(db, "Material", "Mesh", nmat, matnos, matlist, dims, 2,
+                      mix_next, mix_mat, mix_zone, mix_vf, mixc, DB_FLOAT, optlist);
+        DBPutMaterial(db, "Materiald", "Mesh", nmat, matnos, matlist, dims, 2,
+                      mix_next, mix_mat, mix_zone, mix_vfd, mixc, DB_DOUBLE, optlist);
 
-    DBPutMaterial(db, "Material", "Mesh", nmat, matnos, matlist, dims, 2,
-                  mix_next, mix_mat, mix_zone, mix_vf, mixc, DB_FLOAT,
-                  optlist);
+    }
+    else /* doReadAndCheck */
+    {
+        int pass;
+        for (pass = 0; pass < 2; pass++)
+        {
+            DBmaterial *mat = DBGetMaterial(db, pass?"Material":"Materiald");
+            CHECKIVAL(mat->nmat, nmat);
+            CHECKIARR(mat->matnos, matnos, nmat);
+            CHECKIVAL(mat->ndims, 2);
+            CHECKIARR(mat->dims, dims, 2);
+            if (forceSingle)
+            {
+                CHECKIVAL(mat->datatype, DB_FLOAT);
+            }
+            else
+            {
+                CHECKIVAL(mat->datatype, pass?DB_FLOAT:DB_DOUBLE);
+            }
+            CHECKIVAL(mat->mixlen, mixc);
+            CHECKIARR(mat->matlist, matlist, dims[0]*dims[1]);
+            CHECKIARR(mat->mix_next, mix_next, mixc);
+            CHECKIARR(mat->mix_mat, mix_mat, mixc);
+            CHECKIARR(mat->mix_zone, mix_zone, mixc);
+            if (forceSingle)
+            {
+                CHECKDARR(((float*)mat->mix_vf), mix_vf, mixc);
+            }
+            else if (pass)
+            {
+                CHECKDARR(((float*)mat->mix_vf), mix_vf, mixc);
+            }
+            else
+            {
+                CHECKDARR(((double*)mat->mix_vf), mix_vfd, mixc);
+            }
+        }
+    }
 
     /* Okay! Now for the species! */
 
@@ -940,6 +1143,7 @@ writematspec(DBfile *db)
                     for (s = 0; s < nspec[m - 1]; s++)
                     {
                         specmf[mfc] = mesh.zone[x][y].specmf[m][s];
+                        specmfd[mfc] = mesh.zone[x][y].specmfd[m][s];
                         mfc++;
                     }
                 }
@@ -964,6 +1168,7 @@ writematspec(DBfile *db)
                             for (s = 0; s < nspec[m - 1]; s++)
                             {
                                 specmf[mfc] = mesh.zone[x][y].specmf[m][s];
+                                specmfd[mfc] = mesh.zone[x][y].specmfd[m][s];
                                 mfc++;
                             }
                         }
@@ -975,14 +1180,56 @@ writematspec(DBfile *db)
         }
     }
 
-    DBClearOptlist(optlist);
-    DBAddOption(optlist, DBOPT_SPECNAMES, specnames);
-    DBAddOption(optlist, DBOPT_SPECCOLORS, speccolors);
+    if (writeOrReadAndCheck == doWrite)
+    {
+        DBClearOptlist(optlist);
+        DBAddOption(optlist, DBOPT_SPECNAMES, specnames);
+        DBAddOption(optlist, DBOPT_SPECCOLORS, speccolors);
+
+        DBPutMatspecies(db, "Species", "Material", nmat, nspec, speclist, dims, 2,
+                        mfc, specmf, mixspeclist, mixc, DB_FLOAT, optlist);
 
-    DBPutMatspecies(db, "Species", "Material", nmat, nspec, speclist, dims, 2,
-                    mfc, specmf, mixspeclist, mixc, DB_FLOAT, optlist);
+        DBPutMatspecies(db, "Speciesd", "Materiald", nmat, nspec, speclist, dims, 2,
+                        mfc, specmfd, mixspeclist, mixc, DB_DOUBLE, optlist);
 
-    DBFreeOptlist(optlist);
+        DBFreeOptlist(optlist);
+    }
+    else /* doReadAndCheck */ 
+    {
+        int pass;
+        for (pass = 0; pass < 2; pass++)
+        {
+            DBmatspecies *spec = DBGetMatspecies(db, pass?"Species":"Speciesd");
+            CHECKIVAL(spec->nmat, nmat);
+            CHECKIARR(spec->nmatspec, nspec, nmat);
+            CHECKIVAL(spec->ndims, 2);
+            CHECKIARR(spec->dims, dims, 2);
+            if (forceSingle)
+            {
+                CHECKIVAL(spec->datatype, DB_FLOAT);
+            }
+            else
+            {
+                CHECKIVAL(spec->datatype, pass?DB_FLOAT:DB_DOUBLE);
+            }
+            CHECKIVAL(spec->mixlen, mixc);
+            CHECKIVAL(spec->nspecies_mf, mfc);
+            CHECKIARR(spec->speclist, speclist, dims[0]*dims[1]);
+            CHECKIARR(spec->mix_speclist, mixspeclist, mixc);
+            if (forceSingle)
+            {
+                CHECKDARR(((float*)spec->species_mf), specmf, mfc);
+            }
+            else if (pass)
+            {
+                CHECKDARR(((float*)spec->species_mf), specmf, mfc);
+            }
+            else
+            {
+                CHECKDARR(((double*)spec->species_mf), specmfd, mfc);
+            }
+        }
+    }
 
     return mixc;
 }
diff --git a/tests/std.c b/tests/std.c
index 4640d1f..8fc6ba9 100644
--- a/tests/std.c
+++ b/tests/std.c
@@ -248,3 +248,4 @@ static int StringToDriver(const char *str)
     fprintf(stderr, "Unable to determine driver from string \"%s\"\n", str);
     exit(-1);
 }
+
diff --git a/tests/subhex.c b/tests/subhex.c
index fe3f99c..0c90898 100644
--- a/tests/subhex.c
+++ b/tests/subhex.c
@@ -227,11 +227,10 @@ main(int argc, char *argv[])
     |
     +-------------------------------------*/
 
-    DBPutUcdmesh(dbfile, "parent", 3, coordnames, coords, 12, 2, "Pzonelist",
-                 "Pfacelist", DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "parent", 3, (DBCAS_t) coordnames,
+        coords, 12, 2, "Pzonelist", "Pfacelist", DB_FLOAT, NULL);
 
-    DBPutUcdvar1(dbfile, "v", "parent", Pvar, 12, NULL, 0, DB_FLOAT, DB_NODECENT,
-                 NULL);
+    DBPutUcdvar1(dbfile, "v", "parent", Pvar, 12, NULL, 0, DB_FLOAT, DB_NODECENT, NULL);
 
     Pnodelist[ 0] =  0;	/* The first hex */
     Pnodelist[ 1] =  1;
@@ -281,8 +280,7 @@ main(int argc, char *argv[])
     +-------------------------------------*/
 
     DBSetDeprecateWarnings(0);
-    DBPutUcdsubmesh(dbfile, "child", "parent", 1, "Czonelist",
-                 "Cfacelist", NULL);
+    DBPutUcdsubmesh(dbfile, "child", "parent", 1, "Czonelist", "Cfacelist", NULL);
     DBSetDeprecateWarnings(3);
 
     Cnodelist[ 0] =  1;	/* Just one hex, refering to parent nodes */
diff --git a/tests/test_write.py b/tests/test_write.py
index fc38ec2..34dc43c 100644
--- a/tests/test_write.py
+++ b/tests/test_write.py
@@ -70,9 +70,9 @@ db.Close()
 db2=Silo.Open("foo.silo")
 print "toc=%s"%db2.GetToc()
 print "t2='%s'"%db2.GetVar("t2")
-print "t6=",db2.GetVar("t6")
+print "t6=%.2f,%.2f"%db2.GetVar("t6")
 print "a/t8='%s'"%db2.GetVar("a/t8")
 db2.SetDir("a")
 print "t9=%s"%db2.GetVar("t9")
-print "/t5=",db2.GetVar("../t5")
+print "/t5=%.2f,%.2f"%db2.GetVar("../t5")
 db2.Close()
diff --git a/tests/testall.c b/tests/testall.c
index d5ca93b..80669ee 100644
--- a/tests/testall.c
+++ b/tests/testall.c
@@ -80,7 +80,9 @@ be used for advertising or product endorsement purposes.
 
 #include <math.h>
 #include <stdlib.h>
-#ifdef WIN32
+#ifndef WIN32
+#include <unistd.h>
+#else
 #include <stdio.h>
 #include <io.h>
 #endif
@@ -375,7 +377,9 @@ build_rect2d(DBfile * dbfile, int size, int order)
     char          *meshname = NULL, *var1name = NULL, *var2name = NULL;
     char          *var3name = NULL, *var4name = NULL, *matname = NULL;
 
-    float         *d=NULL, *p=NULL, *u=NULL, *v=NULL, *t=NULL, *ascii=NULL;
+    float         *d=NULL, *p=NULL, *u=NULL, *v=NULL, *t=NULL, *distarr=NULL;
+
+    char          *ascii=NULL, *asciiw=NULL;
 
     int            nmats;
     int            matnos[9];
@@ -386,8 +390,8 @@ build_rect2d(DBfile * dbfile, int size, int order)
     float         *mix_vf = NULL;
 
     DBoptlist     *optlist = NULL;
-    char **matnames = NULL;
-    char **matcolors = NULL;
+    char         **matnames = NULL;
+    char         **matcolors = NULL;
 
     int            one = 1;
     int            i, j;
@@ -417,7 +421,9 @@ build_rect2d(DBfile * dbfile, int size, int order)
     u = ALLOC_N (float, (nx + 1) * (ny + 1));
     v = ALLOC_N (float, (nx + 1) * (ny + 1));
     t = ALLOC_N (float, (nx + 1) * (ny + 1));
-    ascii = ALLOC_N (float, nx * ny);
+    distarr = ALLOC_N (float, nx * ny);
+    ascii = ALLOC_N (char, nx * ny);
+    asciiw = ALLOC_N (char, nx * ny * 9);
     matlist = ALLOC_N (int, nx * ny);
     mix_next = ALLOC_N (int, 40 * ny);
     mix_mat  = ALLOC_N (int, 40 * ny);
@@ -514,18 +520,25 @@ build_rect2d(DBfile * dbfile, int size, int order)
        ycenter = .5;
        for (i=0; i<nx; i++) {
           for (j=0; j<ny; j++) {
-            dist = sqrt ((x[i] - xcenter) * (x[i] - xcenter) +
-                         (y[j] - ycenter) * (y[j] - ycenter));
-            ascii[j*nx+i] = dist;
-            if (dist>maxdist) maxdist = dist;
+            distarr[j*nx+i] = sqrt ((x[i] - xcenter) * (x[i] - xcenter) +
+                                 (y[j] - ycenter) * (y[j] - ycenter));
+            if (distarr[j*nx+i]>maxdist) maxdist = distarr[j*nx+i];
           }
        }
        for (i=0; i<nx*ny; i++) {
-          ascii[i] = 'A' + 26*ascii[i]/maxdist;
+          ascii[i] = (char) ((int) ('A' + 26*distarr[i]/maxdist));
+          asciiw[0*nx*ny+i] = 'M';
+          asciiw[1*nx*ny+i] = 'a';
+          asciiw[2*nx*ny+i] = 'r';
+          asciiw[3*nx*ny+i] = 'k';
+          asciiw[4*nx*ny+i] = ' ';
+          asciiw[5*nx*ny+i] = 'M';
+          asciiw[6*nx*ny+i] = 'i';
+          asciiw[7*nx*ny+i] = 'l';
+          asciiw[8*nx*ny+i] = '\0';
        }
     }
 
-
     /*
      * Create the material array.
      */
@@ -544,26 +557,26 @@ build_rect2d(DBfile * dbfile, int size, int order)
     dims2[1] = ny;
     mixlen = 0;
     matnames = (char**)malloc(sizeof(char*)*nmats);
-    matnames[0] = safe_strdup("Green eggs");
-    matnames[1] = safe_strdup("Ham");
-    matnames[2] = safe_strdup("Air");
-    matnames[3] = safe_strdup("Ozone");
-    matnames[4] = safe_strdup("Diamond");
-    matnames[5] = safe_strdup("Pure water");
-    matnames[6] = safe_strdup("C8H10N4O2");
-    matnames[7] = safe_strdup("Wood");
-    matnames[8] = safe_strdup("Nothing important");
+    matnames[0] = _db_safe_strdup("Green eggs");
+    matnames[1] = _db_safe_strdup("Ham");
+    matnames[2] = _db_safe_strdup("Air");
+    matnames[3] = _db_safe_strdup("Ozone");
+    matnames[4] = _db_safe_strdup("Diamond");
+    matnames[5] = _db_safe_strdup("Pure water");
+    matnames[6] = _db_safe_strdup("C8H10N4O2");
+    matnames[7] = _db_safe_strdup("Wood");
+    matnames[8] = _db_safe_strdup("Nothing important");
 
     matcolors = (char**)malloc(sizeof(char*)*nmats);
-    matcolors[0] = safe_strdup("Green");
-    matcolors[1] = safe_strdup("Red");
-    matcolors[2] = safe_strdup("Light Blue");
-    matcolors[3] = safe_strdup("Yellow");
-    matcolors[4] = safe_strdup("White");
-    matcolors[5] = safe_strdup("Blue");
-    matcolors[6] = safe_strdup("Black");
-    matcolors[7] = safe_strdup("Light Brown");
-    matcolors[8] = safe_strdup("#fcfcfc");
+    matcolors[0] = _db_safe_strdup("Green");
+    matcolors[1] = _db_safe_strdup("Red");
+    matcolors[2] = _db_safe_strdup("Light Blue");
+    matcolors[3] = _db_safe_strdup("Yellow");
+    matcolors[4] = _db_safe_strdup("White");
+    matcolors[5] = _db_safe_strdup("Blue");
+    matcolors[6] = _db_safe_strdup("Black");
+    matcolors[7] = _db_safe_strdup("Light Brown");
+    matcolors[8] = _db_safe_strdup("#fcfcfc");
 
     /*
      * Put in material 1 as the background then overlay materials
@@ -649,10 +662,24 @@ build_rect2d(DBfile * dbfile, int size, int order)
                   DB_FLOAT, optlist);
 
     if (ascii) {
+       void *arr[9];
+       char *arrnames[] = {"L0","L1","L2","L3","L4","L5","L6","L7","L8"};
        j = true;
+
        DBAddOption (optlist, DBOPT_ASCII_LABEL, &j);
        DBPutQuadvar1(dbfile, "ascii", meshname, ascii, zdims, ndims, NULL, 0,
-                     DB_FLOAT, DB_ZONECENT, optlist);
+                     DB_CHAR, DB_ZONECENT, optlist);
+       arr[0] = &asciiw[0*nx*ny];
+       arr[1] = &asciiw[1*nx*ny];
+       arr[2] = &asciiw[2*nx*ny];
+       arr[3] = &asciiw[3*nx*ny];
+       arr[4] = &asciiw[4*nx*ny];
+       arr[5] = &asciiw[5*nx*ny];
+       arr[6] = &asciiw[6*nx*ny];
+       arr[7] = &asciiw[7*nx*ny];
+       arr[8] = &asciiw[8*nx*ny];
+       DBPutQuadvar(dbfile, "asciiw", meshname, 9, (DBCAS_t) arrnames,
+           arr, zdims, ndims, NULL, 0, DB_CHAR, DB_ZONECENT, optlist);
     }
 
     DBFreeOptlist(optlist);
@@ -667,7 +694,9 @@ build_rect2d(DBfile * dbfile, int size, int order)
     FREE (u);
     FREE (v);
     FREE (t);
+    FREE (distarr);
     FREE (ascii);
+    FREE (asciiw);
     FREE (matlist);
     FREE (mix_next);
     FREE (mix_mat);
@@ -884,9 +913,9 @@ build_curv2d(DBfile * dbfile, int size, int order)
     dims2[1] = ny;
     mixlen = 0;
     matnames = (char**)malloc(sizeof(char*)*nmats);
-    matnames[0] = safe_strdup("First circle of Hell");
-    matnames[1] = safe_strdup("Second circle of Hell");
-    matnames[2] = safe_strdup("Third circle of Hell");
+    matnames[0] = _db_safe_strdup("First circle of Hell");
+    matnames[1] = _db_safe_strdup("Second circle of Hell");
+    matnames[2] = _db_safe_strdup("Third circle of Hell");
 
     /*
      * Put in the material in 3 shells.
@@ -1208,10 +1237,10 @@ build_ucd2d(DBfile * dbfile, int size, int order)
     materials[2] = 3;
     materials[3] = 4;
     matnames = (char**)malloc(sizeof(char*)*4);
-    matnames[0] = safe_strdup("Bottom");
-    matnames[1] = safe_strdup("Right");
-    matnames[2] = safe_strdup("Top");
-    matnames[3] = safe_strdup("Left");
+    matnames[0] = _db_safe_strdup("Bottom");
+    matnames[1] = _db_safe_strdup("Right");
+    matnames[2] = _db_safe_strdup("Top");
+    matnames[3] = _db_safe_strdup("Left");
 
 #define SET_MIX(mat1,mat2) \
     matlist[i] = -(current_mix+1); \
@@ -1537,14 +1566,14 @@ build_rect3d(DBfile * dbfile, int size, int order)
     dims2[2] = nz;
     mixlen = 0;
     matnames = (char**)malloc(sizeof(char*)*nmats);
-    matnames[0] = safe_strdup("Brocolli/Cheddar soup");
-    matnames[1] = safe_strdup("Beef");
-    matnames[2] = safe_strdup("Gray smoke");
-    matnames[3] = safe_strdup("Wax");
-    matnames[4] = safe_strdup("Soapstone");
-    matnames[5] = safe_strdup("Bubble gum");
-    matnames[6] = safe_strdup("Platinum");
-    matnames[7] = safe_strdup("Nitrozanium");
+    matnames[0] = _db_safe_strdup("Brocolli/Cheddar soup");
+    matnames[1] = _db_safe_strdup("Beef");
+    matnames[2] = _db_safe_strdup("Gray smoke");
+    matnames[3] = _db_safe_strdup("Wax");
+    matnames[4] = _db_safe_strdup("Soapstone");
+    matnames[5] = _db_safe_strdup("Bubble gum");
+    matnames[6] = _db_safe_strdup("Platinum");
+    matnames[7] = _db_safe_strdup("Nitrozanium");
 
     /*
      * Put in material 1 as the background then overlay materials
@@ -1991,9 +2020,9 @@ build_curv3d(DBfile * dbfile, int size, int order)
     dims2[1] = ny;
     dims2[2] = nz;
     matnames = (char**)malloc(sizeof(char*)*nmats);
-    matnames[0] = safe_strdup("Greed");
-    matnames[1] = safe_strdup("Charity");
-    matnames[2] = safe_strdup("Apathy");
+    matnames[0] = _db_safe_strdup("Greed");
+    matnames[1] = _db_safe_strdup("Charity");
+    matnames[2] = _db_safe_strdup("Apathy");
 
     mixlen = 0;
 
@@ -2384,9 +2413,9 @@ build_ucd3d(DBfile * dbfile, int size, int order)
     matnos[2] = 9;
     mixlen = 0;
     matnames = (char**)malloc(sizeof(char*)*4);
-    matnames[0] = safe_strdup("Inner goop");
-    matnames[1] = safe_strdup("Middle stuff");
-    matnames[2] = safe_strdup("Outer junk");
+    matnames[0] = _db_safe_strdup("Inner goop");
+    matnames[1] = _db_safe_strdup("Middle stuff");
+    matnames[2] = _db_safe_strdup("Outer junk");
 
     /*
      * Material 1 has 2 species at static concentrations 0.1 and 0.9
@@ -2527,37 +2556,37 @@ build_ucd3d(DBfile * dbfile, int size, int order)
     vars[0] = d;
     varnames[0] = var1name;
 
-    DBPutUcdvar(dbfile, var1name, meshname, 1, varnames, vars, nnodes, NULL,
-                0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var1name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = p;
     varnames[0] = var2name;
 
-    DBPutUcdvar(dbfile, var2name, meshname, 1, varnames, vars, nnodes, NULL,
-                0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var2name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = u;
     varnames[0] = var3name;
 
-    DBPutUcdvar(dbfile, var3name, meshname, 1, varnames, vars, nnodes, NULL,
-                0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var3name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = v;
     varnames[0] = var4name;
 
-    DBPutUcdvar(dbfile, var4name, meshname, 1, varnames, vars, nnodes, NULL,
-                0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var4name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = w;
     varnames[0] = var5name;
 
-    DBPutUcdvar(dbfile, var5name, meshname, 1, varnames, vars, nnodes, NULL,
-                0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var5name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0]     = t;
     varnames[0] = "t";
-    DBPutUcdvar(dbfile, "t", meshname, 1, varnames, vars, nnodes, NULL, 0,
-                DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, "t", meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     DBPutMaterial(dbfile, matname, meshname, nmats, matnos, matlist, &nzones,
                   1, mix_next, mix_mat, mix_zone, mix_vf, mixlen, DB_FLOAT,
@@ -2570,8 +2599,8 @@ build_ucd3d(DBfile * dbfile, int size, int order)
     vars[0] = (float*) ascii;
     varnames[0] = var6name;
     DBAddOption(optlist, DBOPT_ASCII_LABEL, &onvalue);
-    DBPutUcdvar(dbfile, var6name, meshname, 1, varnames, vars, nnodes, NULL,
-                0, DB_CHAR, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var6name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_CHAR, DB_NODECENT, optlist);
 
     DBFreeOptlist(optlist);
 
@@ -2965,9 +2994,9 @@ build_poly3d(DBfile *dbfile, int size, int order)
     matnos[2] = 3;
     mixlen = 0;
     matnames = (char**)malloc(sizeof(char*)*nmats);
-    matnames[0] = safe_strdup("Something important");
-    matnames[1] = safe_strdup("Of little interest");
-    matnames[2] = safe_strdup("Notable");
+    matnames[0] = _db_safe_strdup("Something important");
+    matnames[1] = _db_safe_strdup("Of little interest");
+    matnames[2] = _db_safe_strdup("Notable");
 
     /*
      * Put in the material in 3 shells.
@@ -3051,53 +3080,53 @@ build_poly3d(DBfile *dbfile, int size, int order)
     DBAddOption(optlist, DBOPT_ZUNITS, "cm");
     DBAddOption(optlist, DBOPT_MATNAMES, matnames);
 
-    (void)DBPutFacelist(dbfile, "fl1", nfaces, 3, facelist, lfacelist, 0,
+    DBPutFacelist(dbfile, "fl1", nfaces, 3, facelist, lfacelist, 0,
                         zoneno, fshapesize, fshapecnt, nfshapes,
                         NULL, NULL, 0);
 
-    (void)DBPutZonelist2(dbfile, "zl1", nzones, 3, zonelist, lzonelist, 0,
+    DBPutZonelist2(dbfile, "zl1", nzones, 3, zonelist, lzonelist, 0,
                          lo_offset, hi_offset, zshapetype, zshapesize,
                          zshapecnt, nzshapes, NULL);
 
-    (void)DBPutUcdmesh(dbfile, meshname, 3, coordnames, coords,
-                       nnodes, nzones, "zl1", "fl1", DB_FLOAT, optlist);
+    DBPutUcdmesh(dbfile, meshname, 3, (DBCAS_t) coordnames,
+        coords, nnodes, nzones, "zl1", "fl1", DB_FLOAT, optlist);
 
     vars[0] = d;
     varnames[0] = var1name;
 
-    (void)DBPutUcdvar(dbfile, var1name, meshname, 1, varnames, vars,
-                      nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var1name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = p;
     varnames[0] = var2name;
 
-    (void)DBPutUcdvar(dbfile, var2name, meshname, 1, varnames, vars,
-                      nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var2name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = u;
     varnames[0] = var3name;
 
-    (void)DBPutUcdvar(dbfile, var3name, meshname, 1, varnames, vars,
-                      nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var3name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = v;
     varnames[0] = var4name;
 
-    (void)DBPutUcdvar(dbfile, var4name, meshname, 1, varnames, vars,
-                      nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var4name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = w;
     varnames[0] = var5name;
 
-    (void)DBPutUcdvar(dbfile, var5name, meshname, 1, varnames, vars,
-                      nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, var5name, meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0]     = t;
     varnames[0] = "t";
-    (void)DBPutUcdvar(dbfile, "t", meshname, 1, varnames, vars,
-                      nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
+    DBPutUcdvar(dbfile, "t", meshname, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
-    (void)DBPutMaterial(dbfile, matname, meshname, nmats, matnos,
+    DBPutMaterial(dbfile, matname, meshname, nmats, matnos,
                         matlist, &nzones, 1, NULL, NULL, NULL,
                         NULL, mixlen, DB_FLOAT, optlist);
 
@@ -3143,7 +3172,7 @@ build_poly3d(DBfile *dbfile, int size, int order)
 static void
 build_carray(DBfile * dbfile)
 {
-    char          *ename[3];
+    char const    *ename[3];
     int            esize[3];
     float          val[18];
     int            i;
@@ -3190,7 +3219,8 @@ static void
 build_curve (DBfile *dbfile, int driver)
 {
    float        x[20], y[2][20] ;
-   int          i, one=1;
+   float        r[40], theta[40] ;
+   int          i, one=1, coord_sys = DB_SPHERICAL;
    DBoptlist    *opts ;
 
    /*
@@ -3221,15 +3251,27 @@ build_curve (DBfile *dbfile, int driver)
     * Write the `coscurve' curve. It shares x values with the `sincurve'
     * curve.
     */
-   if (driver == DB_HDF5)
-       DBAddOption(opts, DBOPT_XVARNAME, "sincurve_xvals");
-   else
-       DBAddOption(opts, DBOPT_XVARNAME, "sincurve_x");
+   DBAddOption(opts, DBOPT_XVARNAME, "sincurve_xvals");
    DBPutCurve (dbfile, "coscurve", NULL, y[1], DB_FLOAT, 20, opts) ;
    DBClearOption(opts, DBOPT_XVARNAME);
 
    DBAddOption (opts, DBOPT_REFERENCE, "sincurve") ;
    DBPutCurve (dbfile, "sincurv1", NULL, NULL, DB_FLOAT, 20, opts);
+
+   DBClearOptlist(opts);
+   DBAddOption (opts, DBOPT_XLABEL, "radius") ;
+   DBAddOption (opts, DBOPT_YLABEL, "angle") ;
+   DBAddOption (opts, DBOPT_XUNITS, "radians") ;
+   DBAddOption (opts, DBOPT_YUNITS, "meters") ;
+   DBAddOption (opts, DBOPT_COORDSYS, &coord_sys );
+  
+   for (i=0; i<40; i++) {
+      r[i] = 1.0;
+      theta[i] = 2 * M_PI * (float) (i / 39.0);
+   }
+
+   DBPutCurve (dbfile, "circle", r, theta, DB_FLOAT, 40, opts);
+
    DBFreeOptlist (opts) ;
    DBSetFriendlyHDF5Names(0);
 }
diff --git a/tests/testallf77.f b/tests/testallf77.f
index 791bc53..b20f9e4 100644
--- a/tests/testallf77.f
+++ b/tests/testallf77.f
@@ -55,7 +55,7 @@ c---------------------------------------------------------------------
 c  Purpose
 c
 c     Demonstrate use of SILO for creating unstructured cell data
-c     (UCD) objects for viewing with MeshTV.
+c     (UCD) objects for visualization.
 c
 c---------------------------------------------------------------------
       program main
@@ -63,7 +63,7 @@ c---------------------------------------------------------------------
       implicit none
 
       include "silo.inc"
-      integer  dbid, meshid, err, driver, nargs
+      integer  dbid, meshid, err, driver, nargs, i, compress
       character*256 cloption 
 
       integer buildrect2d
@@ -72,45 +72,50 @@ c---------------------------------------------------------------------
 c...Create file named "rectf77.silo". Database ID is returned in 'dbid'.
 
       driver = DB_PDB
-      nargs = iargc()
-      call getarg(1, cloption)
-      if (cloption .eq. "DB_HDF5") then
-          driver = DB_HDF5
-      end if
+      compress = 0
+      do i = 1, iargc()
+         call getarg(i, cloption)
+         if (cloption .eq. "DB_HDF5") then
+             driver = DB_HDF5
+         else if (cloption .eq. "compress") then
+             compress = 1
+         endif
+      enddo
+
+      if (driver .eq. DB_HDF5 .and. compress .eq. 1) then
+         err = dbsetcompress("METHOD=GZIP",11)
+      endif
 
-      err = dbcreate("rectf77.silo", 12, 0, DB_LOCAL,
-     .               "file info", 9, driver, dbid)
+c...Create file named "ucdf77.silo". Database ID is returned in 'dbid'.
 
+      err = dbcreate("ucdf77.silo", 11, 0, DB_LOCAL,
+     .               "file info", 9, driver, dbid)
 
-c...Write out necessary objects for MeshTV.
-
-      err = buildrect2d(dbid, "rect", 4)
+c...Write out objects for visualization
 
+      err = builducd(dbid, "ucd", 3)
 
 c...Close data file.
 
       err = dbclose(dbid)
 
+      print *,'Created file: ucdf77.silo'
 
-      print *,'Created file: rectf77.silo'
+c...Test re-setting compression to off
+      err = dbsetcompress("",-1)
 
-c...Create file named "ucdf77.silo". Database ID is returned in 'dbid'.
-
-      err = dbcreate("ucdf77.silo", 11, 0, DB_LOCAL,
+      err = dbcreate("rectf77.silo", 12, 0, DB_LOCAL,
      .               "file info", 9, driver, dbid)
 
+c...Write out objects for visualization 
 
-c...Write out necessary objects for MeshTV.
-
-      err = builducd(dbid, "ucd", 3)
-
+      err = buildrect2d(dbid, "rect", 4)
 
 c...Close data file.
 
       err = dbclose(dbid)
 
-
-      print *,'Created file: ucdf77.silo'
+      print *,'Created file: rectf77.silo'
 
       stop
       end
diff --git a/tests/testdtypes b/tests/testdtypes
index 2048039..37ba41c 100755
--- a/tests/testdtypes
+++ b/tests/testdtypes
@@ -75,7 +75,7 @@ else
 fi
 
 smode="pdb"
-if test "${2:0:7}" = "DB_HDF5"; then
+if test -n "$(echo $2 | grep DB_HDF5)"; then
     smode="h5"
 fi
 
diff --git a/tests/testfs.c b/tests/testfs.c
index e5b4abf..632aa73 100644
--- a/tests/testfs.c
+++ b/tests/testfs.c
@@ -76,7 +76,7 @@ be used for advertising or product endorsement purposes.
  * Programmer:  Mark C. Miller, Wed Aug 29 11:07:16 PDT 2012
  *-------------------------------------------------------------------------
  */
-main(int argc, char *argv[])
+int main(int argc, char *argv[])
 {
     int            i, driver = DB_PDB;
     int            show_all_errors = FALSE;
diff --git a/tests/testhzip b/tests/testhzip
index 9f502c4..67a3050 100755
--- a/tests/testhzip
+++ b/tests/testhzip
@@ -49,7 +49,6 @@
 # reflect those  of the United  States Government or  Lawrence Livermore
 # National  Security, LLC,  and shall  not  be used  for advertising  or
 # product endorsement purposes.
-set -x
 
 # -----------------------------------------------------------------------------
 # Test hzip compression capability in silo by generating compressed data
@@ -82,7 +81,7 @@ fi
 $topDir/multi_test DB_HDF5 hzip 1>/dev/null 2>&1
 rm -rf h5_hzip_files
 mkdir h5_hzip_files
-mv *.h5 h5_hzip_files/.
+mv multi_*d.h5 h5_hzip_files/.
 
 #
 # Create data without compression 
@@ -105,7 +104,7 @@ for df in multi_*.h5; do
     # do a diff on the files
     rm -f testhzip.out
     $topDir/../tools/browser/browser -q -e diff $df h5_hzip_files/$df 1>testhzip.out 2>&1
-    if test `wc -l testhzip.out | tr -s ' ' | cut -d' ' -f2` -gt 0; then
+    if test `cat testhzip.out | wc -l | tr -d ' '` -gt 0; then
         result=1
         break
     fi
@@ -114,7 +113,7 @@ done
 #
 # Cleanup
 #
-#rm -rf h5_hzip_files
-#rm -f testhzip.out
+rm -rf h5_hzip_files
+rm -f testhzip.out
 
 exit $result 
diff --git a/tests/testlib.c b/tests/testlib.c
index 0e760ad..088e793 100644
--- a/tests/testlib.c
+++ b/tests/testlib.c
@@ -134,8 +134,8 @@ build_quad(DBfile *dbfile, char *name)
     for (i = 0; i < dims[1]; i++)
         y[i] = (float)i + .1;
 
-    meshid = DBPutQuadmesh(dbfile, name, coordnames, coords, dims, ndims,
-                           DB_FLOAT, DB_COLLINEAR, optlist);
+    meshid = DBPutQuadmesh(dbfile, name, (DBCAS_t) coordnames,
+                 coords, dims, ndims, DB_FLOAT, DB_COLLINEAR, optlist);
 
     varnames[0] = "d";
     vars[0] = d;
@@ -145,7 +145,7 @@ build_quad(DBfile *dbfile, char *name)
     for (i = 0; i < zdims[0] * zdims[1]; i++)
         d[i] = (float)i *.2;
 
-    (void)DBPutQuadvar1(dbfile, "d", name, d, zdims, ndims,
+    DBPutQuadvar1(dbfile, "d", name, d, zdims, ndims,
                         NULL, 0, DB_FLOAT, DB_ZONECENT, optlist);
 
     for (i = 0; i < dims[0] * dims[1]; i++) {
@@ -153,9 +153,9 @@ build_quad(DBfile *dbfile, char *name)
         v[i] = (float)i *.1;
     }
 
-    (void)DBPutQuadvar1(dbfile, "ucomp", name, u, dims, ndims,
+    DBPutQuadvar1(dbfile, "ucomp", name, u, dims, ndims,
                         NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
-    (void)DBPutQuadvar1(dbfile, "vcomp", name, v, dims, ndims,
+    DBPutQuadvar1(dbfile, "vcomp", name, v, dims, ndims,
                         NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = u;
@@ -163,9 +163,8 @@ build_quad(DBfile *dbfile, char *name)
     varnames[0] = "u";
     varnames[1] = "v";
 
-    (void)DBPutQuadvar(dbfile, "velocity", name, 2, varnames, vars,
-                       dims, ndims, NULL, 0, DB_FLOAT, DB_NODECENT,
-                       optlist);
+    DBPutQuadvar(dbfile, "velocity", name, 2, (DBCAS_t) varnames,
+        vars, dims, ndims, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     /*
      *  Build material data.
@@ -183,7 +182,7 @@ build_quad(DBfile *dbfile, char *name)
     for (i = 45; i < 63; i++)
         matlist[i] = 3;
 
-    (void)DBPutMaterial(dbfile, "material", name, nmat, matnos,
+    DBPutMaterial(dbfile, "material", name, nmat, matnos,
                         matlist, zones, ndims, NULL, NULL, NULL, NULL,
                         mixlen, DB_FLOAT, NULL);
 
@@ -255,8 +254,8 @@ build_quad3(DBfile *dbfile, char *name)
     for (i = 0; i < dims[2]; i++)
         z[i] = (float)i;
 
-    meshid = DBPutQuadmesh(dbfile, name, coordnames, coords, dims, ndims,
-                           DB_FLOAT, DB_COLLINEAR, optlist);
+    meshid = DBPutQuadmesh(dbfile, name, (DBCAS_t) coordnames,
+                 coords, dims, ndims, DB_FLOAT, DB_COLLINEAR, optlist);
 
     varnames[0] = "d";
     vars[0] = d;
@@ -268,7 +267,7 @@ build_quad3(DBfile *dbfile, char *name)
         d[i] = (float)i *.2;
 
     for (i=0;i<200; i++)
-    (void)DBPutQuadvar1(dbfile, "d", name, d, zdims, ndims,
+    DBPutQuadvar1(dbfile, "d", name, d, zdims, ndims,
                         NULL, 0, DB_FLOAT, DB_ZONECENT, optlist);
 
     for (i = 0; i < dims[0] * dims[1] * dims[2]; i++) {
@@ -278,11 +277,11 @@ build_quad3(DBfile *dbfile, char *name)
     }
 
     for (i=0;i<200; i++)
-    (void)DBPutQuadvar1(dbfile, "ucomp", name, u, dims, ndims,
+    DBPutQuadvar1(dbfile, "ucomp", name, u, dims, ndims,
                         NULL, 0, DB_FLOAT, DB_NODECENT, 0);
-    (void)DBPutQuadvar1(dbfile, "vcomp", name, v, dims, ndims,
+    DBPutQuadvar1(dbfile, "vcomp", name, v, dims, ndims,
                         NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
-    (void)DBPutQuadvar1(dbfile, "wcomp", name, w, dims, ndims,
+    DBPutQuadvar1(dbfile, "wcomp", name, w, dims, ndims,
                         NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     vars[0] = u;
@@ -292,9 +291,8 @@ build_quad3(DBfile *dbfile, char *name)
     varnames[1] = "v";
     varnames[2] = "w";
 
-    (void)DBPutQuadvar(dbfile, "velocity", name, 3, varnames, vars,
-                       dims, ndims, NULL, 0, DB_FLOAT, DB_NODECENT,
-                       optlist);
+    DBPutQuadvar(dbfile, "velocity", name, 3, (DBCAS_t) varnames,
+        vars, dims, ndims, NULL, 0, DB_FLOAT, DB_NODECENT, optlist);
 
     /*
      *  Bulid material data.
@@ -312,7 +310,7 @@ build_quad3(DBfile *dbfile, char *name)
     for (i = 45; i < 63; i++)
         matlist[i] = 3;
 
-    (void)DBPutMaterial(dbfile, "material", name, nmat, matnos,
+    DBPutMaterial(dbfile, "material", name, nmat, matnos,
                         matlist, zones, ndims, NULL, NULL, NULL,
                         NULL, mixlen, DB_FLOAT, NULL);
 
@@ -443,44 +441,44 @@ build_ucd(DBfile *dbfile, char *name)
     vars[0] = d;
     varnames[0] = "d";
 
-    (void)DBPutFacelist(dbfile, "fl", NFACES, 2, fnodelist, LFNODELIST, 0,
+    DBPutFacelist(dbfile, "fl", NFACES, 2, fnodelist, LFNODELIST, 0,
                         NULL, &fshapesize, &fshapecnt, NFSHAPES,
                         NULL, NULL, 0);
 
-    (void)DBPutZonelist(dbfile, "zl", NZONES, 2, znodelist, LZNODELIST, 0,
+    DBPutZonelist(dbfile, "zl", NZONES, 2, znodelist, LZNODELIST, 0,
                         &zshapesize, &zshapecnt, NZSHAPES);
 
-    meshid = DBPutUcdmesh(dbfile, name, 2, coordnames, coords,
-                          NNODES, NZONES, "zl", "fl", DB_FLOAT, NULL);
+    meshid = DBPutUcdmesh(dbfile, name, 2, (DBCAS_t) coordnames,
+                 coords, NNODES, NZONES, "zl", "fl", DB_FLOAT, NULL);
 
     vars[0] = d;
     varnames[0] = "d";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NZONES,
-                      NULL, 0, idatatype, DB_ZONECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NZONES, NULL, 0, idatatype, DB_ZONECENT, NULL);
     vars[0] = u;
     varnames[0] = "u";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = v;
     varnames[0] = "v";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = u;
     varnames[0] = "ucomp";
     vars[1] = v;
     varnames[1] = "vcomp";
 
-    (void)DBPutUcdvar(dbfile, "velocity", name, 2, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, "velocity", name, 2, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     dims = NZONES;
 
-    (void)DBPutMaterial(dbfile, "material", name, NMATS, matnos,
+    DBPutMaterial(dbfile, "material", name, NMATS, matnos,
                         matlist, &dims, 1, mix_next, mix_mat, mix_zone,
                         mix_vf, mixlen, DB_FLOAT, NULL);
 #if 0
@@ -496,7 +494,7 @@ build_ucd(DBfile *dbfile, char *name)
     DBConvertMat(NMATS, NZONES, nmix, mixedels, imatlist, matnos, vf, DB_FLOAT,
                  &mixlen, matlist, mix_next, mix_mat, mix_zone, mix_vf);
 
-    (void)DBPutMaterial(dbfile, "material", name, matnos, NMATS,
+    DBPutMaterial(dbfile, "material", name, matnos, NMATS,
                         matlist, &dims, 1, mix_next, mix_mat, mix_zone,
                         mix_vf, mixlen, DB_FLOAT, NULL);
 
@@ -693,7 +691,7 @@ build_ucd3(DBfile *dbfile, char *name)
                                        &zshapesize, &zshapecnt, NZSHAPES,
                                                matlist, 0);
 
-    (void)DBPutFacelist(dbfile, "fl", fl->nfaces, 3, fl->nodelist,
+    DBPutFacelist(dbfile, "fl", fl->nfaces, 3, fl->nodelist,
                         fl->lnodelist, 0, fl->zoneno, fl->shapesize,
                         fl->shapecnt, fl->nshapes, NULL, NULL, 0);
 
@@ -702,38 +700,38 @@ build_ucd3(DBfile *dbfile, char *name)
  * fzoneno, &fshapesize, &fshapecnt, NFSHAPES,
  * NULL, NULL, 0);
  */
-    (void)DBPutZonelist(dbfile, "zl", NZONES, 3, znodelist, LZNODELIST, 0,
+    DBPutZonelist(dbfile, "zl", NZONES, 3, znodelist, LZNODELIST, 0,
                         &zshapesize, &zshapecnt, NZSHAPES);
 
-    meshid = DBPutUcdmesh(dbfile, name, 3, coordnames, coords,
-                          NNODES, NZONES, "zl", "fl", DB_FLOAT, NULL);
+    meshid = DBPutUcdmesh(dbfile, name, 3, (DBCAS_t) coordnames,
+        coords, NNODES, NZONES, "zl", "fl", DB_FLOAT, NULL);
 
-    (void)DBPutMaterial(dbfile, "material", name, 2, matnos, matlist,
+    DBPutMaterial(dbfile, "material", name, 2, matnos, matlist,
                         &dims, 1, NULL, NULL, NULL, NULL, 0, DB_FLOAT,
                         NULL);
 
     vars[0] = d;
     varnames[0] = "d";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NZONES,
-                      NULL, 0, idatatype, DB_ZONECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NZONES, NULL, 0, idatatype, DB_ZONECENT, NULL);
     vars[0] = u;
     varnames[0] = "u";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = v;
     varnames[0] = "v";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = w;
     varnames[0] = "w";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = u;
     varnames[0] = "ucomp";
@@ -742,8 +740,8 @@ build_ucd3(DBfile *dbfile, char *name)
     vars[2] = w;
     varnames[2] = "wcomp";
 
-    (void)DBPutUcdvar(dbfile, "velocity", name, 3, varnames, vars, NNODES,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, "velocity", name, 3, (DBCAS_t) varnames,
+        vars, NNODES, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     return (meshid);
 }
@@ -837,26 +835,26 @@ build_ucd_tri(DBfile *dbfile, char *name)
     vars[0] = d;
     varnames[0] = "d";
 
-    (void)DBPutFacelist(dbfile, "fl", nfaces, 2, fnodelist, lfnodelist, 0,
+    DBPutFacelist(dbfile, "fl", nfaces, 2, fnodelist, lfnodelist, 0,
                         NULL, &fshapesize, &fshapecnt, nfshapes,
                         NULL, NULL, 0);
 
-    (void)DBPutZonelist(dbfile, "zl", nzones, 2, znodelist, lznodelist, 0,
+    DBPutZonelist(dbfile, "zl", nzones, 2, znodelist, lznodelist, 0,
                         &zshapesize, &zshapecnt, nzshapes);
 
-    meshid = DBPutUcdmesh(dbfile, name, 2, coordnames, coords,
-                          nnodes, nzones, "zl", "fl", DB_FLOAT, NULL);
+    meshid = DBPutUcdmesh(dbfile, name, 2, (DBCAS_t) coordnames,
+        coords, nnodes, nzones, "zl", "fl", DB_FLOAT, NULL);
 
     vars[0] = d;
     varnames[0] = "d";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, nzones,
-                      NULL, 0, idatatype, DB_ZONECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, nzones, NULL, 0, idatatype, DB_ZONECENT, NULL);
     vars[0] = u;
     varnames[0] = "u";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, nnodes,
-                      NULL, 0, idatatype, DB_NODECENT, NULL);
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames,
+        vars, nnodes, NULL, 0, idatatype, DB_NODECENT, NULL);
 
     return (meshid);
 }
diff --git a/tests/testpdb.c b/tests/testpdb.c
index 6f68480..b986ff8 100644
--- a/tests/testpdb.c
+++ b/tests/testpdb.c
@@ -60,7 +60,6 @@ product endorsement purposes.
 #include <stdlib.h>
 #include <string.h>
 
-char *safe_strdup(const char *);
 
 typedef struct {
     char          *name;
@@ -113,12 +112,14 @@ float coord0_data[20] = { 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.,
                          10., 11., 12., 13., 14., 15., 16., 17., 18., 19.};
 
 
-main ()
+int main ()
 {
 
     CreateFile("abc.pdb", "mesh", "ucdmesh", 17, comp_names, pdb_names);
 
     ReadFile("abc.pdb", "mesh");
+
+    return 0;
 }
 
 void
diff --git a/tests/testsuite b/tests/testsuite
index 5099f0b..af89d31 100755
--- a/tests/testsuite
+++ b/tests/testsuite
@@ -627,83 +627,86 @@ at_change_dir=false
 # List of the tested programs.
 at_tested=''
 # List of the all the test groups.
-at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71'
+at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74'
 # As many question marks as there are digits in the last test group number.
 # Used to normalize the test group numbers so that `ls' lists them in
 # numerical order.
 at_format='??'
 # Description of all the test groups.
 at_help_all="1;testsuite.at:63;version;;
-2;testsuite.at:86;namescheme;;
-3;testsuite.at:89;point;;
-4;testsuite.at:92;extface;;
-5;testsuite.at:95;testall -small;;
-6;testsuite.at:98;TestReadMask;;
-7;testsuite.at:104;array;;
-8;testsuite.at:107;multi_test testread;;
-9;testsuite.at:110;multi_test earlyclose;;
-10;testsuite.at:113;partial_io;;
-11;testsuite.at:116;simple;;
-12;testsuite.at:119;ucd;;
-13;testsuite.at:122;ucdsamp3;;
-14;testsuite.at:125;testall -small -fortran;;
-15;testsuite.at:128;obj;;
-16;testsuite.at:131;onehex;;
-17;testsuite.at:134;oneprism;;
-18;testsuite.at:137;onepyramid;;
-19;testsuite.at:140;onetet;;
-20;testsuite.at:143;subhex;;
-21;testsuite.at:146;twohex;;
-22;testsuite.at:149;multispec;;
-23;testsuite.at:152;sami;;
-24;testsuite.at:155;specmix;;
-25;testsuite.at:158;spec;;
-26;testsuite.at:161;group_test;;
-27;testsuite.at:164;listtypes;;
-28;testsuite.at:168;alltypes;;
-29;testsuite.at:171;wave;;
-30;testsuite.at:174;polyzl;;
-31;testsuite.at:177;csg;;
-32;testsuite.at:180;rocket;;
-33;testsuite.at:183;mmadjacency;;
-34;testsuite.at:186;mat3d_3across;;
-35;testsuite.at:189;ucd1d;;
-36;testsuite.at:192;dir;;
-37;testsuite.at:195;quad;;
-38;testsuite.at:198;arbpoly2d;;
-39;testsuite.at:201;readstuff;;
-40;testsuite.at:205;testfs;;
-41;testsuite.at:208;empty;;
-42;testsuite.at:213;read;python;
-43;testsuite.at:218;write;python;
-44;testsuite.at:233;error handling;python;
-45;testsuite.at:238;write objects;python;
-46;testsuite.at:244;testpdb;;
-47;testsuite.at:247;pdbtst;;
-48;testsuite.at:252;grab;;
-49;testsuite.at:255;compression gzip;compression;
-50;testsuite.at:260;compression szip;compression;
-51;testsuite.at:265;compression fpzip;compression;
-52;testsuite.at:270;compression lossy3;compression;
-53;testsuite.at:275;compression minratio1000;compression;
-54;testsuite.at:279;testhzip;compression;
-55;testsuite.at:283;checksums;;
-56;testsuite.at:286;xversion;;
-57;testsuite.at:289;largefile;large;
-58;testsuite.at:295;arrayf77;fortran;
-59;testsuite.at:299;curvef77;fortran;
-60;testsuite.at:303;matf77;fortran;
-61;testsuite.at:307;pointf77;fortran;
-62;testsuite.at:311;quadf77;fortran;
-63;testsuite.at:315;testallf77;fortran;
-64;testsuite.at:319;ucdf77;fortran;
-65;testsuite.at:323;csgmesh;fortran;
-66;testsuite.at:329;silock;tools;
-67;testsuite.at:333;force single;conversions;
-68;testsuite.at:338;multi_file;large;
-69;testsuite.at:342;multi_file use-ns;large;
-70;testsuite.at:346;testall -medium;large;
-71;testsuite.at:350;testall -large;large;
+2;testsuite.at:88;namescheme;;
+3;testsuite.at:91;realloc_obj_and_opts;;
+4;testsuite.at:94;point;;
+5;testsuite.at:97;extface;;
+6;testsuite.at:100;testall -small;;
+7;testsuite.at:103;TestReadMask;;
+8;testsuite.at:109;array;;
+9;testsuite.at:112;multi_test testread;;
+10;testsuite.at:115;multi_test earlyclose;;
+11;testsuite.at:118;partial_io;;
+12;testsuite.at:121;simple;;
+13;testsuite.at:124;ucd;;
+14;testsuite.at:127;ucdsamp3;;
+15;testsuite.at:130;testall -small -fortran;;
+16;testsuite.at:133;obj;;
+17;testsuite.at:136;onehex;;
+18;testsuite.at:139;oneprism;;
+19;testsuite.at:142;onepyramid;;
+20;testsuite.at:145;onetet;;
+21;testsuite.at:148;subhex;;
+22;testsuite.at:151;twohex;;
+23;testsuite.at:154;multispec;;
+24;testsuite.at:157;sami;;
+25;testsuite.at:160;specmix;;
+26;testsuite.at:163;spec;;
+27;testsuite.at:166;group_test;;
+28;testsuite.at:169;listtypes;;
+29;testsuite.at:173;alltypes;;
+30;testsuite.at:176;wave;;
+31;testsuite.at:179;polyzl;;
+32;testsuite.at:182;csg;;
+33;testsuite.at:185;rocket;;
+34;testsuite.at:188;mmadjacency;;
+35;testsuite.at:191;mat3d_3across;;
+36;testsuite.at:194;ucd1d;;
+37;testsuite.at:197;dir;;
+38;testsuite.at:200;quad;;
+39;testsuite.at:203;arbpoly2d;;
+40;testsuite.at:206;readstuff;;
+41;testsuite.at:210;testfs;;
+42;testsuite.at:213;empty;;
+43;testsuite.at:218;read;python;
+44;testsuite.at:223;write;python;
+45;testsuite.at:238;error handling;python;
+46;testsuite.at:243;write objects;python;
+47;testsuite.at:249;json;json;
+48;testsuite.at:256;testpdb;;
+49;testsuite.at:259;pdbtst;;
+50;testsuite.at:264;grab;;
+51;testsuite.at:267;compression gzip;compression;
+52;testsuite.at:272;compression szip;compression;
+53;testsuite.at:277;compression fpzip;compression;
+54;testsuite.at:282;compression lossy3;compression;
+55;testsuite.at:287;compression minratio1000;compression;
+56;testsuite.at:291;testhzip;compression;
+57;testsuite.at:295;checksums;;
+58;testsuite.at:298;xversion;;
+59;testsuite.at:301;largefile;large;
+60;testsuite.at:307;arrayf77;fortran;
+61;testsuite.at:311;arrayf90;fortran;
+62;testsuite.at:315;curvef77;fortran;
+63;testsuite.at:319;matf77;fortran;
+64;testsuite.at:323;pointf77;fortran;
+65;testsuite.at:327;quadf77;fortran;
+66;testsuite.at:331;testallf77;fortran;
+67;testsuite.at:335;ucdf77;fortran;
+68;testsuite.at:339;csgmesh;fortran;
+69;testsuite.at:345;silock;tools;
+70;testsuite.at:349;force single;conversions;
+71;testsuite.at:354;multi_file;large;
+72;testsuite.at:358;multi_file use-ns;large;
+73;testsuite.at:362;testall -medium;large;
+74;testsuite.at:366;testall -large;large;
 "
 
 # at_func_validate_ranges [NAME...]
@@ -715,7 +718,7 @@ at_func_validate_ranges ()
   for at_grp
   do
     eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 71; then
+    if test $at_value -lt 1 || test $at_value -gt 74; then
       $as_echo "invalid test group: $at_value" >&2
       exit 1
     fi
@@ -944,7 +947,7 @@ Execution tuning:
 _ATEOF
 cat <<_ATEOF || at_write_fail=1
 
-Report bugs to <visit-users at email.ornl.gov>.
+Report bugs to <visit-users at elist.ornl.gov>.
 _ATEOF
   exit $at_write_fail
 fi
@@ -952,7 +955,7 @@ fi
 # List of tests.
 if $at_list_p; then
   cat <<_ATEOF || at_write_fail=1
-silo 4.9.1 test suite: VALGRIND="$VALGRIND" STARGS="$STARGS" test groups:
+silo 4.10.2 test suite: VALGRIND="$VALGRIND" STARGS="$STARGS" test groups:
 
  NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
@@ -981,7 +984,7 @@ _ATEOF
   exit $at_write_fail
 fi
 if $at_version_p; then
-  $as_echo "$as_me (silo 4.9.1)" &&
+  $as_echo "$as_me (silo 4.10.2)" &&
   cat <<\_ACEOF || at_write_fail=1
 
 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
@@ -1009,21 +1012,24 @@ esac
 # Banner 1. testsuite.at:62
 # Category starts at test group 1.
 at_banner_text_1="Non-driver-specific"
-# Banner 2. testsuite.at:212
-# Category starts at test group 42.
+# Banner 2. testsuite.at:217
+# Category starts at test group 43.
 at_banner_text_2="pythonmodule"
-# Banner 3. testsuite.at:243
-# Category starts at test group 46.
-at_banner_text_3="PDB Lite"
-# Banner 4. testsuite.at:251
+# Banner 3. testsuite.at:248
+# Category starts at test group 47.
+at_banner_text_3="JSON (experimental)"
+# Banner 4. testsuite.at:255
 # Category starts at test group 48.
-at_banner_text_4="HDF5 Driver Specific"
-# Banner 5. testsuite.at:294
-# Category starts at test group 58.
-at_banner_text_5="Fortran"
-# Banner 6. testsuite.at:328
-# Category starts at test group 66.
-at_banner_text_6="Special"
+at_banner_text_4="PDB Lite"
+# Banner 5. testsuite.at:263
+# Category starts at test group 50.
+at_banner_text_5="HDF5 Driver Specific"
+# Banner 6. testsuite.at:306
+# Category starts at test group 60.
+at_banner_text_6="Fortran"
+# Banner 7. testsuite.at:344
+# Category starts at test group 69.
+at_banner_text_7="Special"
 
 # Take any -C into account.
 if $at_change_dir ; then
@@ -1187,11 +1193,11 @@ exec 5>>"$at_suite_log"
 
 # Banners and logs.
 sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## silo 4.9.1 test suite: VALGRIND="$VALGRIND" STARGS="$STARGS". ##
+## silo 4.10.2 test suite: VALGRIND="$VALGRIND" STARGS="$STARGS". ##
 _ASBOX
 {
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## silo 4.9.1 test suite: VALGRIND="$VALGRIND" STARGS="$STARGS". ##
+## silo 4.10.2 test suite: VALGRIND="$VALGRIND" STARGS="$STARGS". ##
 _ASBOX
   echo
 
@@ -1621,7 +1627,7 @@ at_func_group_postprocess ()
     sed "s/^ */$as_me: WARNING: /" <<_ATEOF
       A failure happened in a test group before any test could be
       run. This means that test suite is improperly designed.  Please
-      report this failure to <visit-users at email.ornl.gov>.
+      report this failure to <visit-users at elist.ornl.gov>.
 _ATEOF
     $as_echo "$at_setup_line" >"$at_check_line_file"
   fi
@@ -1921,8 +1927,8 @@ _ASBOX
   echo
   $as_echo "Please send \`${at_testdir+${at_testdir}/}$as_me.log' and all information you think might help:
 
-   To: <visit-users at email.ornl.gov>
-   Subject: [silo 4.9.1] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
+   To: <visit-users at elist.ornl.gov>
+   Subject: [silo 4.10.2] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}
 "
   if test $at_debug_p = false; then
     echo
@@ -1952,17 +1958,19 @@ echo "#                             -*- compilation -*-" >> "$at_group_log"
   $at_traceon
 
 cat >expout <<'_ATEOF'
-This version of Silo is greater than or equal to 4.6
-This version of Silo is NOT greater than or equal to 90.5.2
-DBVersion() returns "4.9.1"
+This version of the Silo library is greater than or equal to 4
+This version of the Silo library is NOT greater than or equal to 9
+This version of the Silo library is greater than or equal to 4.6
+This version of the Silo library is NOT greater than or equal to 90.5.2
+DBVersion() returns "4.10.2"
 DBVersionGE(4,6,0) returns 1
 DBVersionGE(90,5,2) returns 0
 On file handle returned from DBCreate...
-    DBFileVersion() returns "4.9.1"
+    DBFileVersion() returns "4.10.2"
     DBFileVersionGE(4,6,0) returns 1
     DBFileVersionGE(90,5,2) returns 0
 On file handle returned from DBOpen...
-    DBFileVersion() returns "4.9.1"
+    DBFileVersion() returns "4.10.2"
     DBFileVersionGE(4,6,0) returns 1
     DBFileVersionGE(90,5,2) returns 0
 On old silo file handle returned from DBOpen...
@@ -1973,8 +1981,8 @@ On old silo file handle returned from DBOpen...
 _ATEOF
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:84: \$VALGRIND version \$STARGS"
-echo testsuite.at:84 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:86: \$VALGRIND version \$STARGS"
+echo testsuite.at:86 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND version $STARGS"; then
@@ -1987,7 +1995,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:84"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:86"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -1998,20 +2006,20 @@ $at_traceon; }
 at_status=`cat "$at_status_file"`
 #AT_STOP_1
 #AT_START_2
-# 2. testsuite.at:86: namescheme
-at_setup_line='testsuite.at:86'
+# 2. testsuite.at:88: namescheme
+at_setup_line='testsuite.at:88'
 at_func_banner 1
 at_desc="namescheme"
 $at_quiet $as_echo_n "  2: $at_desc                                     "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "2. testsuite.at:86: testing ..."
+  $as_echo "2. testsuite.at:88: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:87: \$VALGRIND namescheme"
-echo testsuite.at:87 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:89: \$VALGRIND namescheme"
+echo testsuite.at:89 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND namescheme"; then
@@ -2024,7 +2032,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:87"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:89"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2035,20 +2043,57 @@ $at_traceon; }
 at_status=`cat "$at_status_file"`
 #AT_STOP_2
 #AT_START_3
-# 3. testsuite.at:89: point
-at_setup_line='testsuite.at:89'
+# 3. testsuite.at:91: realloc_obj_and_opts
+at_setup_line='testsuite.at:91'
+at_func_banner 1
+at_desc="realloc_obj_and_opts"
+$at_quiet $as_echo_n "  3: $at_desc                           "
+at_xfail=no
+echo "#                             -*- compilation -*-" >> "$at_group_log"
+(
+  $as_echo "3. testsuite.at:91: testing ..."
+  $at_traceon
+
+{ $at_traceoff
+$as_echo "$at_srcdir/testsuite.at:92: \$VALGRIND realloc_obj_and_opts \$STARGS"
+echo testsuite.at:92 >"$at_check_line_file"
+
+if test -n "$at_traceon" \
+  && at_func_check_newline "$VALGRIND realloc_obj_and_opts $STARGS"; then
+  ( $at_traceon; $VALGRIND realloc_obj_and_opts $STARGS ) >"$at_stdout" 2>"$at_stder1"
+  at_func_filter_trace $?
+else
+  ( :; $VALGRIND realloc_obj_and_opts $STARGS ) >"$at_stdout" 2>"$at_stderr"
+fi
+at_status=$?
+at_failed=false
+at_func_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:92"
+
+$at_failed && at_func_log_failure
+$at_traceon; }
+
+  $at_traceoff
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 | eval $at_tee_pipe
+at_status=`cat "$at_status_file"`
+#AT_STOP_3
+#AT_START_4
+# 4. testsuite.at:94: point
+at_setup_line='testsuite.at:94'
 at_func_banner 1
 at_desc="point"
-$at_quiet $as_echo_n "  3: $at_desc                                          "
+$at_quiet $as_echo_n "  4: $at_desc                                          "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "3. testsuite.at:89: testing ..."
+  $as_echo "4. testsuite.at:94: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:90: \$VALGRIND point \$STARGS"
-echo testsuite.at:90 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:95: \$VALGRIND point \$STARGS"
+echo testsuite.at:95 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND point $STARGS"; then
@@ -2061,7 +2106,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:90"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:95"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2070,22 +2115,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_3
-#AT_START_4
-# 4. testsuite.at:92: extface
-at_setup_line='testsuite.at:92'
+#AT_STOP_4
+#AT_START_5
+# 5. testsuite.at:97: extface
+at_setup_line='testsuite.at:97'
 at_func_banner 1
 at_desc="extface"
-$at_quiet $as_echo_n "  4: $at_desc                                        "
+$at_quiet $as_echo_n "  5: $at_desc                                        "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "4. testsuite.at:92: testing ..."
+  $as_echo "5. testsuite.at:97: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:93: \$VALGRIND extface \$STARGS"
-echo testsuite.at:93 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:98: \$VALGRIND extface \$STARGS"
+echo testsuite.at:98 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND extface $STARGS"; then
@@ -2098,7 +2143,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:93"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:98"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2107,22 +2152,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_4
-#AT_START_5
-# 5. testsuite.at:95: testall -small
-at_setup_line='testsuite.at:95'
+#AT_STOP_5
+#AT_START_6
+# 6. testsuite.at:100: testall -small
+at_setup_line='testsuite.at:100'
 at_func_banner 1
 at_desc="testall -small"
-$at_quiet $as_echo_n "  5: $at_desc                                 "
+$at_quiet $as_echo_n "  6: $at_desc                                 "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "5. testsuite.at:95: testing ..."
+  $as_echo "6. testsuite.at:100: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:96: \$VALGRIND testall -small \$STARGS"
-echo testsuite.at:96 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:101: \$VALGRIND testall -small \$STARGS"
+echo testsuite.at:101 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND testall -small $STARGS"; then
@@ -2135,7 +2180,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:96"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:101"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2144,22 +2189,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_5
-#AT_START_6
-# 6. testsuite.at:98: TestReadMask
-at_setup_line='testsuite.at:98'
+#AT_STOP_6
+#AT_START_7
+# 7. testsuite.at:103: TestReadMask
+at_setup_line='testsuite.at:103'
 at_func_banner 1
 at_desc="TestReadMask"
-$at_quiet $as_echo_n "  6: $at_desc                                   "
+$at_quiet $as_echo_n "  7: $at_desc                                   "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "6. testsuite.at:98: testing ..."
+  $as_echo "7. testsuite.at:103: testing ..."
   $at_traceon
  # needs files generated by other execs
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:99: extface \$STARGS"
-echo testsuite.at:99 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:104: extface \$STARGS"
+echo testsuite.at:104 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "extface $STARGS"; then
@@ -2172,14 +2217,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:99"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:104"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
  # don't valgrind these intermediate parts
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:100: point \$STARGS"
-echo testsuite.at:100 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:105: point \$STARGS"
+echo testsuite.at:105 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "point $STARGS"; then
@@ -2192,14 +2237,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:100"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:105"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:101: testall -small \$STARGS"
-echo testsuite.at:101 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:106: testall -small \$STARGS"
+echo testsuite.at:106 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "testall -small $STARGS"; then
@@ -2212,14 +2257,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:101"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:106"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:102: \$VALGRIND TestReadMask \$STARGS"
-echo testsuite.at:102 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:107: \$VALGRIND TestReadMask \$STARGS"
+echo testsuite.at:107 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND TestReadMask $STARGS"; then
@@ -2232,7 +2277,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:102"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:107"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2241,22 +2286,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_6
-#AT_START_7
-# 7. testsuite.at:104: array
-at_setup_line='testsuite.at:104'
+#AT_STOP_7
+#AT_START_8
+# 8. testsuite.at:109: array
+at_setup_line='testsuite.at:109'
 at_func_banner 1
 at_desc="array"
-$at_quiet $as_echo_n "  7: $at_desc                                          "
+$at_quiet $as_echo_n "  8: $at_desc                                          "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "7. testsuite.at:104: testing ..."
+  $as_echo "8. testsuite.at:109: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:105: \$VALGRIND array \$STARGS"
-echo testsuite.at:105 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:110: \$VALGRIND array \$STARGS"
+echo testsuite.at:110 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND array $STARGS"; then
@@ -2269,7 +2314,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:105"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:110"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2278,22 +2323,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_7
-#AT_START_8
-# 8. testsuite.at:107: multi_test testread
-at_setup_line='testsuite.at:107'
+#AT_STOP_8
+#AT_START_9
+# 9. testsuite.at:112: multi_test testread
+at_setup_line='testsuite.at:112'
 at_func_banner 1
 at_desc="multi_test testread"
-$at_quiet $as_echo_n "  8: $at_desc                            "
+$at_quiet $as_echo_n "  9: $at_desc                            "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "8. testsuite.at:107: testing ..."
+  $as_echo "9. testsuite.at:112: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:108: \$VALGRIND multi_test testread \$STARGS"
-echo testsuite.at:108 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:113: \$VALGRIND multi_test testread \$STARGS"
+echo testsuite.at:113 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND multi_test testread $STARGS"; then
@@ -2306,7 +2351,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:108"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:113"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2315,22 +2360,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_8
-#AT_START_9
-# 9. testsuite.at:110: multi_test earlyclose
-at_setup_line='testsuite.at:110'
+#AT_STOP_9
+#AT_START_10
+# 10. testsuite.at:115: multi_test earlyclose
+at_setup_line='testsuite.at:115'
 at_func_banner 1
 at_desc="multi_test earlyclose"
-$at_quiet $as_echo_n "  9: $at_desc                          "
+$at_quiet $as_echo_n " 10: $at_desc                          "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "9. testsuite.at:110: testing ..."
+  $as_echo "10. testsuite.at:115: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:111: \$VALGRIND multi_test earlyclose \$STARGS"
-echo testsuite.at:111 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:116: \$VALGRIND multi_test earlyclose \$STARGS"
+echo testsuite.at:116 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND multi_test earlyclose $STARGS"; then
@@ -2343,7 +2388,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:111"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:116"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2352,22 +2397,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_9
-#AT_START_10
-# 10. testsuite.at:113: partial_io
-at_setup_line='testsuite.at:113'
+#AT_STOP_10
+#AT_START_11
+# 11. testsuite.at:118: partial_io
+at_setup_line='testsuite.at:118'
 at_func_banner 1
 at_desc="partial_io"
-$at_quiet $as_echo_n " 10: $at_desc                                     "
+$at_quiet $as_echo_n " 11: $at_desc                                     "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "10. testsuite.at:113: testing ..."
+  $as_echo "11. testsuite.at:118: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:114: \$VALGRIND partial_io \$STARGS"
-echo testsuite.at:114 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:119: \$VALGRIND partial_io \$STARGS"
+echo testsuite.at:119 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND partial_io $STARGS"; then
@@ -2380,7 +2425,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:114"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:119"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2389,22 +2434,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_10
-#AT_START_11
-# 11. testsuite.at:116: simple
-at_setup_line='testsuite.at:116'
+#AT_STOP_11
+#AT_START_12
+# 12. testsuite.at:121: simple
+at_setup_line='testsuite.at:121'
 at_func_banner 1
 at_desc="simple"
-$at_quiet $as_echo_n " 11: $at_desc                                         "
+$at_quiet $as_echo_n " 12: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "11. testsuite.at:116: testing ..."
+  $as_echo "12. testsuite.at:121: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:117: \$VALGRIND simple \$STARGS"
-echo testsuite.at:117 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:122: \$VALGRIND simple \$STARGS"
+echo testsuite.at:122 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND simple $STARGS"; then
@@ -2417,7 +2462,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:117"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:122"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2426,22 +2471,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_11
-#AT_START_12
-# 12. testsuite.at:119: ucd
-at_setup_line='testsuite.at:119'
+#AT_STOP_12
+#AT_START_13
+# 13. testsuite.at:124: ucd
+at_setup_line='testsuite.at:124'
 at_func_banner 1
 at_desc="ucd"
-$at_quiet $as_echo_n " 12: $at_desc                                            "
+$at_quiet $as_echo_n " 13: $at_desc                                            "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "12. testsuite.at:119: testing ..."
+  $as_echo "13. testsuite.at:124: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:120: \$VALGRIND ucd \$STARGS"
-echo testsuite.at:120 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:125: \$VALGRIND ucd \$STARGS"
+echo testsuite.at:125 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND ucd $STARGS"; then
@@ -2454,7 +2499,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:120"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:125"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2463,22 +2508,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_12
-#AT_START_13
-# 13. testsuite.at:122: ucdsamp3
-at_setup_line='testsuite.at:122'
+#AT_STOP_13
+#AT_START_14
+# 14. testsuite.at:127: ucdsamp3
+at_setup_line='testsuite.at:127'
 at_func_banner 1
 at_desc="ucdsamp3"
-$at_quiet $as_echo_n " 13: $at_desc                                       "
+$at_quiet $as_echo_n " 14: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "13. testsuite.at:122: testing ..."
+  $as_echo "14. testsuite.at:127: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:123: \$VALGRIND ucdsamp3 \$STARGS"
-echo testsuite.at:123 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:128: \$VALGRIND ucdsamp3 \$STARGS"
+echo testsuite.at:128 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND ucdsamp3 $STARGS"; then
@@ -2491,7 +2536,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:123"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:128"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2500,22 +2545,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_13
-#AT_START_14
-# 14. testsuite.at:125: testall -small -fortran
-at_setup_line='testsuite.at:125'
+#AT_STOP_14
+#AT_START_15
+# 15. testsuite.at:130: testall -small -fortran
+at_setup_line='testsuite.at:130'
 at_func_banner 1
 at_desc="testall -small -fortran"
-$at_quiet $as_echo_n " 14: $at_desc                        "
+$at_quiet $as_echo_n " 15: $at_desc                        "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "14. testsuite.at:125: testing ..."
+  $as_echo "15. testsuite.at:130: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:126: \$VALGRIND testall -small -fortran \$STARGS"
-echo testsuite.at:126 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:131: \$VALGRIND testall -small -fortran \$STARGS"
+echo testsuite.at:131 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND testall -small -fortran $STARGS"; then
@@ -2528,7 +2573,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:126"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:131"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2537,22 +2582,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_14
-#AT_START_15
-# 15. testsuite.at:128: obj
-at_setup_line='testsuite.at:128'
+#AT_STOP_15
+#AT_START_16
+# 16. testsuite.at:133: obj
+at_setup_line='testsuite.at:133'
 at_func_banner 1
 at_desc="obj"
-$at_quiet $as_echo_n " 15: $at_desc                                            "
+$at_quiet $as_echo_n " 16: $at_desc                                            "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "15. testsuite.at:128: testing ..."
+  $as_echo "16. testsuite.at:133: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:129: \$VALGRIND obj \$STARGS"
-echo testsuite.at:129 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:134: \$VALGRIND obj \$STARGS"
+echo testsuite.at:134 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND obj $STARGS"; then
@@ -2565,7 +2610,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:129"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:134"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2574,22 +2619,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_15
-#AT_START_16
-# 16. testsuite.at:131: onehex
-at_setup_line='testsuite.at:131'
+#AT_STOP_16
+#AT_START_17
+# 17. testsuite.at:136: onehex
+at_setup_line='testsuite.at:136'
 at_func_banner 1
 at_desc="onehex"
-$at_quiet $as_echo_n " 16: $at_desc                                         "
+$at_quiet $as_echo_n " 17: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "16. testsuite.at:131: testing ..."
+  $as_echo "17. testsuite.at:136: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:132: \$VALGRIND onehex \$STARGS"
-echo testsuite.at:132 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:137: \$VALGRIND onehex \$STARGS"
+echo testsuite.at:137 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND onehex $STARGS"; then
@@ -2602,7 +2647,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:132"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:137"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2611,22 +2656,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_16
-#AT_START_17
-# 17. testsuite.at:134: oneprism
-at_setup_line='testsuite.at:134'
+#AT_STOP_17
+#AT_START_18
+# 18. testsuite.at:139: oneprism
+at_setup_line='testsuite.at:139'
 at_func_banner 1
 at_desc="oneprism"
-$at_quiet $as_echo_n " 17: $at_desc                                       "
+$at_quiet $as_echo_n " 18: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "17. testsuite.at:134: testing ..."
+  $as_echo "18. testsuite.at:139: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:135: \$VALGRIND oneprism \$STARGS"
-echo testsuite.at:135 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:140: \$VALGRIND oneprism \$STARGS"
+echo testsuite.at:140 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND oneprism $STARGS"; then
@@ -2639,7 +2684,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:135"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:140"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2648,22 +2693,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_17
-#AT_START_18
-# 18. testsuite.at:137: onepyramid
-at_setup_line='testsuite.at:137'
+#AT_STOP_18
+#AT_START_19
+# 19. testsuite.at:142: onepyramid
+at_setup_line='testsuite.at:142'
 at_func_banner 1
 at_desc="onepyramid"
-$at_quiet $as_echo_n " 18: $at_desc                                     "
+$at_quiet $as_echo_n " 19: $at_desc                                     "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "18. testsuite.at:137: testing ..."
+  $as_echo "19. testsuite.at:142: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:138: \$VALGRIND onepyramid \$STARGS"
-echo testsuite.at:138 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:143: \$VALGRIND onepyramid \$STARGS"
+echo testsuite.at:143 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND onepyramid $STARGS"; then
@@ -2676,7 +2721,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:138"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:143"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2685,22 +2730,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_18
-#AT_START_19
-# 19. testsuite.at:140: onetet
-at_setup_line='testsuite.at:140'
+#AT_STOP_19
+#AT_START_20
+# 20. testsuite.at:145: onetet
+at_setup_line='testsuite.at:145'
 at_func_banner 1
 at_desc="onetet"
-$at_quiet $as_echo_n " 19: $at_desc                                         "
+$at_quiet $as_echo_n " 20: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "19. testsuite.at:140: testing ..."
+  $as_echo "20. testsuite.at:145: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:141: \$VALGRIND onetet \$STARGS"
-echo testsuite.at:141 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:146: \$VALGRIND onetet \$STARGS"
+echo testsuite.at:146 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND onetet $STARGS"; then
@@ -2713,7 +2758,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:141"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:146"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2722,22 +2767,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_19
-#AT_START_20
-# 20. testsuite.at:143: subhex
-at_setup_line='testsuite.at:143'
+#AT_STOP_20
+#AT_START_21
+# 21. testsuite.at:148: subhex
+at_setup_line='testsuite.at:148'
 at_func_banner 1
 at_desc="subhex"
-$at_quiet $as_echo_n " 20: $at_desc                                         "
+$at_quiet $as_echo_n " 21: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "20. testsuite.at:143: testing ..."
+  $as_echo "21. testsuite.at:148: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:144: \$VALGRIND subhex \$STARGS"
-echo testsuite.at:144 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:149: \$VALGRIND subhex \$STARGS"
+echo testsuite.at:149 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND subhex $STARGS"; then
@@ -2750,7 +2795,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:144"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:149"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2759,22 +2804,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_20
-#AT_START_21
-# 21. testsuite.at:146: twohex
-at_setup_line='testsuite.at:146'
+#AT_STOP_21
+#AT_START_22
+# 22. testsuite.at:151: twohex
+at_setup_line='testsuite.at:151'
 at_func_banner 1
 at_desc="twohex"
-$at_quiet $as_echo_n " 21: $at_desc                                         "
+$at_quiet $as_echo_n " 22: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "21. testsuite.at:146: testing ..."
+  $as_echo "22. testsuite.at:151: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:147: \$VALGRIND twohex \$STARGS"
-echo testsuite.at:147 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:152: \$VALGRIND twohex \$STARGS"
+echo testsuite.at:152 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND twohex $STARGS"; then
@@ -2787,7 +2832,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:147"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:152"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2796,22 +2841,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_21
-#AT_START_22
-# 22. testsuite.at:149: multispec
-at_setup_line='testsuite.at:149'
+#AT_STOP_22
+#AT_START_23
+# 23. testsuite.at:154: multispec
+at_setup_line='testsuite.at:154'
 at_func_banner 1
 at_desc="multispec"
-$at_quiet $as_echo_n " 22: $at_desc                                      "
+$at_quiet $as_echo_n " 23: $at_desc                                      "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "22. testsuite.at:149: testing ..."
+  $as_echo "23. testsuite.at:154: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:150: \$VALGRIND multispec \$STARGS"
-echo testsuite.at:150 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:155: \$VALGRIND multispec \$STARGS"
+echo testsuite.at:155 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND multispec $STARGS"; then
@@ -2824,7 +2869,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:150"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:155"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2833,22 +2878,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_22
-#AT_START_23
-# 23. testsuite.at:152: sami
-at_setup_line='testsuite.at:152'
+#AT_STOP_23
+#AT_START_24
+# 24. testsuite.at:157: sami
+at_setup_line='testsuite.at:157'
 at_func_banner 1
 at_desc="sami"
-$at_quiet $as_echo_n " 23: $at_desc                                           "
+$at_quiet $as_echo_n " 24: $at_desc                                           "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "23. testsuite.at:152: testing ..."
+  $as_echo "24. testsuite.at:157: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:153: \$VALGRIND sami \$STARGS"
-echo testsuite.at:153 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:158: \$VALGRIND sami \$STARGS"
+echo testsuite.at:158 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND sami $STARGS"; then
@@ -2861,7 +2906,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:153"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:158"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2870,22 +2915,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_23
-#AT_START_24
-# 24. testsuite.at:155: specmix
-at_setup_line='testsuite.at:155'
+#AT_STOP_24
+#AT_START_25
+# 25. testsuite.at:160: specmix
+at_setup_line='testsuite.at:160'
 at_func_banner 1
 at_desc="specmix"
-$at_quiet $as_echo_n " 24: $at_desc                                        "
+$at_quiet $as_echo_n " 25: $at_desc                                        "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "24. testsuite.at:155: testing ..."
+  $as_echo "25. testsuite.at:160: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:156: \$VALGRIND specmix \$STARGS"
-echo testsuite.at:156 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:161: \$VALGRIND specmix \$STARGS"
+echo testsuite.at:161 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND specmix $STARGS"; then
@@ -2898,7 +2943,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:156"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:161"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2907,22 +2952,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_24
-#AT_START_25
-# 25. testsuite.at:158: spec
-at_setup_line='testsuite.at:158'
+#AT_STOP_25
+#AT_START_26
+# 26. testsuite.at:163: spec
+at_setup_line='testsuite.at:163'
 at_func_banner 1
 at_desc="spec"
-$at_quiet $as_echo_n " 25: $at_desc                                           "
+$at_quiet $as_echo_n " 26: $at_desc                                           "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "25. testsuite.at:158: testing ..."
+  $as_echo "26. testsuite.at:163: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:159: \$VALGRIND spec \$STARGS"
-echo testsuite.at:159 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:164: \$VALGRIND spec \$STARGS"
+echo testsuite.at:164 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND spec $STARGS"; then
@@ -2935,7 +2980,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:159"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:164"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2944,22 +2989,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_25
-#AT_START_26
-# 26. testsuite.at:161: group_test
-at_setup_line='testsuite.at:161'
+#AT_STOP_26
+#AT_START_27
+# 27. testsuite.at:166: group_test
+at_setup_line='testsuite.at:166'
 at_func_banner 1
 at_desc="group_test"
-$at_quiet $as_echo_n " 26: $at_desc                                     "
+$at_quiet $as_echo_n " 27: $at_desc                                     "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "26. testsuite.at:161: testing ..."
+  $as_echo "27. testsuite.at:166: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:162: \$VALGRIND group_test 0 0 0 \$STARGS"
-echo testsuite.at:162 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:167: \$VALGRIND group_test 0 0 0 \$STARGS"
+echo testsuite.at:167 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND group_test 0 0 0 $STARGS"; then
@@ -2972,7 +3017,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:162"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:167"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -2981,22 +3026,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_26
-#AT_START_27
-# 27. testsuite.at:164: listtypes
-at_setup_line='testsuite.at:164'
+#AT_STOP_27
+#AT_START_28
+# 28. testsuite.at:169: listtypes
+at_setup_line='testsuite.at:169'
 at_func_banner 1
 at_desc="listtypes"
-$at_quiet $as_echo_n " 27: $at_desc                                      "
+$at_quiet $as_echo_n " 28: $at_desc                                      "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "27. testsuite.at:164: testing ..."
+  $as_echo "28. testsuite.at:169: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:165: \$VALGRIND ucd \$STARGS"
-echo testsuite.at:165 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:170: \$VALGRIND ucd \$STARGS"
+echo testsuite.at:170 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND ucd $STARGS"; then
@@ -3009,14 +3054,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:165"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:170"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:166: test -z \"\$STARGS\" && \$VALGRIND listtypes ucd.pdb || \$VALGRIND listtypes ucd.h5"
-echo testsuite.at:166 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:171: test -z \"\$STARGS\" && \$VALGRIND listtypes ucd.pdb || \$VALGRIND listtypes ucd.h5"
+echo testsuite.at:171 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test -z \"$STARGS\" && $VALGRIND listtypes ucd.pdb || $VALGRIND listtypes ucd.h5"; then
@@ -3029,7 +3074,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:166"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:171"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3038,22 +3083,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_27
-#AT_START_28
-# 28. testsuite.at:168: alltypes
-at_setup_line='testsuite.at:168'
+#AT_STOP_28
+#AT_START_29
+# 29. testsuite.at:173: alltypes
+at_setup_line='testsuite.at:173'
 at_func_banner 1
 at_desc="alltypes"
-$at_quiet $as_echo_n " 28: $at_desc                                       "
+$at_quiet $as_echo_n " 29: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "28. testsuite.at:168: testing ..."
+  $as_echo "29. testsuite.at:173: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:169: \$VALGRIND alltypes \$STARGS"
-echo testsuite.at:169 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:174: \$VALGRIND alltypes \$STARGS"
+echo testsuite.at:174 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND alltypes $STARGS"; then
@@ -3066,7 +3111,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:169"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:174"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3075,22 +3120,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_28
-#AT_START_29
-# 29. testsuite.at:171: wave
-at_setup_line='testsuite.at:171'
+#AT_STOP_29
+#AT_START_30
+# 30. testsuite.at:176: wave
+at_setup_line='testsuite.at:176'
 at_func_banner 1
 at_desc="wave"
-$at_quiet $as_echo_n " 29: $at_desc                                           "
+$at_quiet $as_echo_n " 30: $at_desc                                           "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "29. testsuite.at:171: testing ..."
+  $as_echo "30. testsuite.at:176: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:172: \$VALGRIND wave \$STARGS"
-echo testsuite.at:172 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:177: \$VALGRIND wave \$STARGS"
+echo testsuite.at:177 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND wave $STARGS"; then
@@ -3103,7 +3148,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:172"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:177"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3112,22 +3157,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_29
-#AT_START_30
-# 30. testsuite.at:174: polyzl
-at_setup_line='testsuite.at:174'
+#AT_STOP_30
+#AT_START_31
+# 31. testsuite.at:179: polyzl
+at_setup_line='testsuite.at:179'
 at_func_banner 1
 at_desc="polyzl"
-$at_quiet $as_echo_n " 30: $at_desc                                         "
+$at_quiet $as_echo_n " 31: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "30. testsuite.at:174: testing ..."
+  $as_echo "31. testsuite.at:179: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:175: \$VALGRIND polyzl \$STARGS"
-echo testsuite.at:175 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:180: \$VALGRIND polyzl \$STARGS"
+echo testsuite.at:180 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND polyzl $STARGS"; then
@@ -3140,7 +3185,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:175"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:180"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3149,22 +3194,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_30
-#AT_START_31
-# 31. testsuite.at:177: csg
-at_setup_line='testsuite.at:177'
+#AT_STOP_31
+#AT_START_32
+# 32. testsuite.at:182: csg
+at_setup_line='testsuite.at:182'
 at_func_banner 1
 at_desc="csg"
-$at_quiet $as_echo_n " 31: $at_desc                                            "
+$at_quiet $as_echo_n " 32: $at_desc                                            "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "31. testsuite.at:177: testing ..."
+  $as_echo "32. testsuite.at:182: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:178: \$VALGRIND csg \$STARGS"
-echo testsuite.at:178 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:183: \$VALGRIND csg \$STARGS"
+echo testsuite.at:183 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND csg $STARGS"; then
@@ -3177,7 +3222,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:178"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:183"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3186,22 +3231,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_31
-#AT_START_32
-# 32. testsuite.at:180: rocket
-at_setup_line='testsuite.at:180'
+#AT_STOP_32
+#AT_START_33
+# 33. testsuite.at:185: rocket
+at_setup_line='testsuite.at:185'
 at_func_banner 1
 at_desc="rocket"
-$at_quiet $as_echo_n " 32: $at_desc                                         "
+$at_quiet $as_echo_n " 33: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "32. testsuite.at:180: testing ..."
+  $as_echo "33. testsuite.at:185: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:181: \$VALGRIND rocket \$STARGS"
-echo testsuite.at:181 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:186: \$VALGRIND rocket \$STARGS"
+echo testsuite.at:186 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND rocket $STARGS"; then
@@ -3214,7 +3259,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:181"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:186"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3223,22 +3268,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_32
-#AT_START_33
-# 33. testsuite.at:183: mmadjacency
-at_setup_line='testsuite.at:183'
+#AT_STOP_33
+#AT_START_34
+# 34. testsuite.at:188: mmadjacency
+at_setup_line='testsuite.at:188'
 at_func_banner 1
 at_desc="mmadjacency"
-$at_quiet $as_echo_n " 33: $at_desc                                    "
+$at_quiet $as_echo_n " 34: $at_desc                                    "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "33. testsuite.at:183: testing ..."
+  $as_echo "34. testsuite.at:188: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:184: \$VALGRIND mmadjacency \$STARGS"
-echo testsuite.at:184 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:189: \$VALGRIND mmadjacency \$STARGS"
+echo testsuite.at:189 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND mmadjacency $STARGS"; then
@@ -3251,7 +3296,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:184"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:189"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3260,22 +3305,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_33
-#AT_START_34
-# 34. testsuite.at:186: mat3d_3across
-at_setup_line='testsuite.at:186'
+#AT_STOP_34
+#AT_START_35
+# 35. testsuite.at:191: mat3d_3across
+at_setup_line='testsuite.at:191'
 at_func_banner 1
 at_desc="mat3d_3across"
-$at_quiet $as_echo_n " 34: $at_desc                                  "
+$at_quiet $as_echo_n " 35: $at_desc                                  "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "34. testsuite.at:186: testing ..."
+  $as_echo "35. testsuite.at:191: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:187: \$VALGRIND mat3d_3across \$STARGS"
-echo testsuite.at:187 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:192: \$VALGRIND mat3d_3across \$STARGS"
+echo testsuite.at:192 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND mat3d_3across $STARGS"; then
@@ -3288,7 +3333,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 at_func_diff_devnull "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:187"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:192"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3297,22 +3342,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_34
-#AT_START_35
-# 35. testsuite.at:189: ucd1d
-at_setup_line='testsuite.at:189'
+#AT_STOP_35
+#AT_START_36
+# 36. testsuite.at:194: ucd1d
+at_setup_line='testsuite.at:194'
 at_func_banner 1
 at_desc="ucd1d"
-$at_quiet $as_echo_n " 35: $at_desc                                          "
+$at_quiet $as_echo_n " 36: $at_desc                                          "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "35. testsuite.at:189: testing ..."
+  $as_echo "36. testsuite.at:194: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:190: \$VALGRIND ucd1d \$STARGS"
-echo testsuite.at:190 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:195: \$VALGRIND ucd1d \$STARGS"
+echo testsuite.at:195 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND ucd1d $STARGS"; then
@@ -3325,7 +3370,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:190"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:195"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3334,22 +3379,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_35
-#AT_START_36
-# 36. testsuite.at:192: dir
-at_setup_line='testsuite.at:192'
+#AT_STOP_36
+#AT_START_37
+# 37. testsuite.at:197: dir
+at_setup_line='testsuite.at:197'
 at_func_banner 1
 at_desc="dir"
-$at_quiet $as_echo_n " 36: $at_desc                                            "
+$at_quiet $as_echo_n " 37: $at_desc                                            "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "36. testsuite.at:192: testing ..."
+  $as_echo "37. testsuite.at:197: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:193: \$VALGRIND dir \$STARGS"
-echo testsuite.at:193 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:198: \$VALGRIND dir \$STARGS"
+echo testsuite.at:198 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND dir $STARGS"; then
@@ -3362,7 +3407,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:193"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:198"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3371,22 +3416,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_36
-#AT_START_37
-# 37. testsuite.at:195: quad
-at_setup_line='testsuite.at:195'
+#AT_STOP_37
+#AT_START_38
+# 38. testsuite.at:200: quad
+at_setup_line='testsuite.at:200'
 at_func_banner 1
 at_desc="quad"
-$at_quiet $as_echo_n " 37: $at_desc                                           "
+$at_quiet $as_echo_n " 38: $at_desc                                           "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "37. testsuite.at:195: testing ..."
+  $as_echo "38. testsuite.at:200: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:196: \$VALGRIND quad \$STARGS"
-echo testsuite.at:196 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:201: \$VALGRIND quad \$STARGS"
+echo testsuite.at:201 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND quad $STARGS"; then
@@ -3399,7 +3444,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:196"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:201"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3408,22 +3453,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_37
-#AT_START_38
-# 38. testsuite.at:198: arbpoly2d
-at_setup_line='testsuite.at:198'
+#AT_STOP_38
+#AT_START_39
+# 39. testsuite.at:203: arbpoly2d
+at_setup_line='testsuite.at:203'
 at_func_banner 1
 at_desc="arbpoly2d"
-$at_quiet $as_echo_n " 38: $at_desc                                      "
+$at_quiet $as_echo_n " 39: $at_desc                                      "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "38. testsuite.at:198: testing ..."
+  $as_echo "39. testsuite.at:203: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:199: \$VALGRIND arbpoly2d \$STARGS"
-echo testsuite.at:199 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:204: \$VALGRIND arbpoly2d \$STARGS"
+echo testsuite.at:204 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND arbpoly2d $STARGS"; then
@@ -3436,7 +3481,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:199"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:204"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3445,22 +3490,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_38
-#AT_START_39
-# 39. testsuite.at:201: readstuff
-at_setup_line='testsuite.at:201'
+#AT_STOP_39
+#AT_START_40
+# 40. testsuite.at:206: readstuff
+at_setup_line='testsuite.at:206'
 at_func_banner 1
 at_desc="readstuff"
-$at_quiet $as_echo_n " 39: $at_desc                                      "
+$at_quiet $as_echo_n " 40: $at_desc                                      "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "39. testsuite.at:201: testing ..."
+  $as_echo "40. testsuite.at:206: testing ..."
   $at_traceon
  # needs data file from multi_test
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:202: multi_test \$STARGS"
-echo testsuite.at:202 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:207: multi_test \$STARGS"
+echo testsuite.at:207 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "multi_test $STARGS"; then
@@ -3473,14 +3518,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:202"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:207"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
  # don't valgrind these intermediate parts
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:203: \$VALGRIND readstuff \$STARGS"
-echo testsuite.at:203 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:208: \$VALGRIND readstuff \$STARGS"
+echo testsuite.at:208 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND readstuff $STARGS"; then
@@ -3493,7 +3538,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_skip $at_status "$at_srcdir/testsuite.at:203"
+at_func_check_skip $at_status "$at_srcdir/testsuite.at:208"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3502,22 +3547,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_39
-#AT_START_40
-# 40. testsuite.at:205: testfs
-at_setup_line='testsuite.at:205'
+#AT_STOP_40
+#AT_START_41
+# 41. testsuite.at:210: testfs
+at_setup_line='testsuite.at:210'
 at_func_banner 1
 at_desc="testfs"
-$at_quiet $as_echo_n " 40: $at_desc                                         "
+$at_quiet $as_echo_n " 41: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "40. testsuite.at:205: testing ..."
+  $as_echo "41. testsuite.at:210: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:206: \$VALGRIND testfs \$STARGS"
-echo testsuite.at:206 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:211: \$VALGRIND testfs \$STARGS"
+echo testsuite.at:211 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND testfs $STARGS"; then
@@ -3530,7 +3575,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:206"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:211"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3539,22 +3584,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_40
-#AT_START_41
-# 41. testsuite.at:208: empty
-at_setup_line='testsuite.at:208'
+#AT_STOP_41
+#AT_START_42
+# 42. testsuite.at:213: empty
+at_setup_line='testsuite.at:213'
 at_func_banner 1
 at_desc="empty"
-$at_quiet $as_echo_n " 41: $at_desc                                          "
+$at_quiet $as_echo_n " 42: $at_desc                                          "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "41. testsuite.at:208: testing ..."
+  $as_echo "42. testsuite.at:213: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:209: \$VALGRIND empty \$STARGS"
-echo testsuite.at:209 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:214: \$VALGRIND empty \$STARGS"
+echo testsuite.at:214 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND empty $STARGS"; then
@@ -3565,9 +3610,9 @@ else
 fi
 at_status=$?
 at_failed=false
-at_func_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:209"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:214"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3576,23 +3621,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_41
-#AT_START_42
-# 42. testsuite.at:213: read
-at_setup_line='testsuite.at:213'
+#AT_STOP_42
+#AT_START_43
+# 43. testsuite.at:218: read
+at_setup_line='testsuite.at:218'
 at_func_banner 2
 at_desc="read"
-$at_quiet $as_echo_n " 42: $at_desc                                           "
+$at_quiet $as_echo_n " 43: $at_desc                                           "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "42. testsuite.at:213: testing ..."
+  $as_echo "43. testsuite.at:218: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:215: multi_test \$STARGS hdf-friendly"
-echo testsuite.at:215 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:220: multi_test \$STARGS hdf-friendly"
+echo testsuite.at:220 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "multi_test $STARGS hdf-friendly"; then
@@ -3605,14 +3650,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:215"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:220"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
  # generate data for python tests
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:216: test -z \"\$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs \$PYTHON ../../test_read.py"
-echo testsuite.at:216 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:221: test -z \"\$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs \$PYTHON ../../test_read.py"
+echo testsuite.at:221 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test -z \"$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs $PYTHON ../../test_read.py"; then
@@ -3625,7 +3670,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:216"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:221"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3634,17 +3679,17 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_42
-#AT_START_43
-# 43. testsuite.at:218: write
-at_setup_line='testsuite.at:218'
+#AT_STOP_43
+#AT_START_44
+# 44. testsuite.at:223: write
+at_setup_line='testsuite.at:223'
 at_func_banner 2
 at_desc="write"
-$at_quiet $as_echo_n " 43: $at_desc                                          "
+$at_quiet $as_echo_n " 44: $at_desc                                          "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "43. testsuite.at:218: testing ..."
+  $as_echo "44. testsuite.at:223: testing ..."
   $at_traceon
 
 
@@ -3655,15 +3700,15 @@ ndir = 1
 dir_names = (a)
 
 t2='hello'
-t6= (1.2, 10.199999999999999)
+t6=1.20,10.20
 a/t8='x2'
 t9=x3
-/t5= (1.2, 10.0)
+/t5=1.20,10.00
 _ATEOF
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:231: test -z \"\$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs \$PYTHON ../../test_write.py"
-echo testsuite.at:231 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:236: test -z \"\$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs \$PYTHON ../../test_write.py"
+echo testsuite.at:236 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test -z \"$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs $PYTHON ../../test_write.py"; then
@@ -3676,7 +3721,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:231"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:236"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3685,23 +3730,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_43
-#AT_START_44
-# 44. testsuite.at:233: error handling
-at_setup_line='testsuite.at:233'
+#AT_STOP_44
+#AT_START_45
+# 45. testsuite.at:238: error handling
+at_setup_line='testsuite.at:238'
 at_func_banner 2
 at_desc="error handling"
-$at_quiet $as_echo_n " 44: $at_desc                                 "
+$at_quiet $as_echo_n " 45: $at_desc                                 "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "44. testsuite.at:233: testing ..."
+  $as_echo "45. testsuite.at:238: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:235: multi_test \$STARGS hdf-friendly"
-echo testsuite.at:235 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:240: multi_test \$STARGS hdf-friendly"
+echo testsuite.at:240 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "multi_test $STARGS hdf-friendly"; then
@@ -3714,14 +3759,14 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:235"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:240"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
  # generate data for python tests
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:236: test -z \"\$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs \$PYTHON ../../test_error.py"
-echo testsuite.at:236 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:241: test -z \"\$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs \$PYTHON ../../test_error.py"
+echo testsuite.at:241 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test -z \"$PYTHON\" && exit 77 || env PYTHONPATH=../../../tools/python/.libs $PYTHON ../../test_error.py"; then
@@ -3734,7 +3779,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:236"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:241"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3743,23 +3788,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_44
-#AT_START_45
-# 45. testsuite.at:238: write objects
-at_setup_line='testsuite.at:238'
+#AT_STOP_45
+#AT_START_46
+# 46. testsuite.at:243: write objects
+at_setup_line='testsuite.at:243'
 at_func_banner 2
 at_desc="write objects"
-$at_quiet $as_echo_n " 45: $at_desc                                  "
+$at_quiet $as_echo_n " 46: $at_desc                                  "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "45. testsuite.at:238: testing ..."
+  $as_echo "46. testsuite.at:243: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:240: test -z \"\$PYTHON\" -o -z \"\$BROWSER\" && exit 77 || \$VALGRIND testonehex \`pwd\`"
-echo testsuite.at:240 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:245: test -z \"\$PYTHON\" -o -z \"\$BROWSER\" && exit 77 || \$VALGRIND testonehex \`pwd\`"
+echo testsuite.at:245 >"$at_check_line_file"
 
 if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
    false; }; then
@@ -3772,7 +3817,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:240"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:245"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3781,22 +3826,80 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_45
-#AT_START_46
-# 46. testsuite.at:244: testpdb
-at_setup_line='testsuite.at:244'
+#AT_STOP_46
+#AT_START_47
+# 47. testsuite.at:249: json
+at_setup_line='testsuite.at:249'
 at_func_banner 3
+at_desc="json"
+$at_quiet $as_echo_n " 47: $at_desc                                           "
+at_xfail=no
+echo "#                             -*- compilation -*-" >> "$at_group_log"
+(
+  $as_echo "47. testsuite.at:249: testing ..."
+  $at_traceon
+
+
+{ $at_traceoff
+$as_echo "$at_srcdir/testsuite.at:251: test ! \\( -e ./json -o -e ../../json \\) && exit 77 || onehex \$STARGS"
+echo testsuite.at:251 >"$at_check_line_file"
+
+if test -n "$at_traceon" \
+  && at_func_check_newline "test ! \\( -e ./json -o -e ../../json \\) && exit 77 || onehex $STARGS"; then
+  ( $at_traceon; test ! \( -e ./json -o -e ../../json \) && exit 77 || onehex $STARGS ) >"$at_stdout" 2>"$at_stder1"
+  at_func_filter_trace $?
+else
+  ( :; test ! \( -e ./json -o -e ../../json \) && exit 77 || onehex $STARGS ) >"$at_stdout" 2>"$at_stderr"
+fi
+at_status=$?
+at_failed=false
+at_func_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:251"
+
+$at_failed && at_func_log_failure
+$at_traceon; }
+ # don't valgrind these intermediate parts
+{ $at_traceoff
+$as_echo "$at_srcdir/testsuite.at:252: test ! \\( -e ./json -o -e ../../json \\) && exit 77 || \$VALGRIND json \$STARGS"
+echo testsuite.at:252 >"$at_check_line_file"
+
+if test -n "$at_traceon" \
+  && at_func_check_newline "test ! \\( -e ./json -o -e ../../json \\) && exit 77 || $VALGRIND json $STARGS"; then
+  ( $at_traceon; test ! \( -e ./json -o -e ../../json \) && exit 77 || $VALGRIND json $STARGS ) >"$at_stdout" 2>"$at_stder1"
+  at_func_filter_trace $?
+else
+  ( :; test ! \( -e ./json -o -e ../../json \) && exit 77 || $VALGRIND json $STARGS ) >"$at_stdout" 2>"$at_stderr"
+fi
+at_status=$?
+at_failed=false
+at_func_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_func_check_skip $at_status "$at_srcdir/testsuite.at:252"
+
+$at_failed && at_func_log_failure
+$at_traceon; }
+
+  $at_traceoff
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 | eval $at_tee_pipe
+at_status=`cat "$at_status_file"`
+#AT_STOP_47
+#AT_START_48
+# 48. testsuite.at:256: testpdb
+at_setup_line='testsuite.at:256'
+at_func_banner 4
 at_desc="testpdb"
-$at_quiet $as_echo_n " 46: $at_desc                                        "
+$at_quiet $as_echo_n " 48: $at_desc                                        "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "46. testsuite.at:244: testing ..."
+  $as_echo "48. testsuite.at:256: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:245: test ! \\( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \\) -o \"\$STARGS\" = DB_HDF5 && exit 77 || \$VALGRIND testpdb"
-echo testsuite.at:245 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:257: test ! \\( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \\) -o \"\$STARGS\" = DB_HDF5 && exit 77 || \$VALGRIND testpdb"
+echo testsuite.at:257 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \\) -o \"$STARGS\" = DB_HDF5 && exit 77 || $VALGRIND testpdb"; then
@@ -3809,7 +3912,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_skip $at_status "$at_srcdir/testsuite.at:245"
+at_func_check_skip $at_status "$at_srcdir/testsuite.at:257"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3818,22 +3921,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_46
-#AT_START_47
-# 47. testsuite.at:247: pdbtst
-at_setup_line='testsuite.at:247'
-at_func_banner 3
+#AT_STOP_48
+#AT_START_49
+# 49. testsuite.at:259: pdbtst
+at_setup_line='testsuite.at:259'
+at_func_banner 4
 at_desc="pdbtst"
-$at_quiet $as_echo_n " 47: $at_desc                                         "
+$at_quiet $as_echo_n " 49: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "47. testsuite.at:247: testing ..."
+  $as_echo "49. testsuite.at:259: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:248: test ! \\( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \\) -o \"\$STARGS\" = DB_HDF5 && exit 77 || \$VALGRIND pdbtst"
-echo testsuite.at:248 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:260: test ! \\( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \\) -o \"\$STARGS\" = DB_HDF5 && exit 77 || \$VALGRIND pdbtst"
+echo testsuite.at:260 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \\) -o \"$STARGS\" = DB_HDF5 && exit 77 || $VALGRIND pdbtst"; then
@@ -3846,7 +3949,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_skip $at_status "$at_srcdir/testsuite.at:248"
+at_func_check_skip $at_status "$at_srcdir/testsuite.at:260"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3855,22 +3958,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_47
-#AT_START_48
-# 48. testsuite.at:252: grab
-at_setup_line='testsuite.at:252'
-at_func_banner 4
+#AT_STOP_49
+#AT_START_50
+# 50. testsuite.at:264: grab
+at_setup_line='testsuite.at:264'
+at_func_banner 5
 at_desc="grab"
-$at_quiet $as_echo_n " 48: $at_desc                                           "
+$at_quiet $as_echo_n " 50: $at_desc                                           "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "48. testsuite.at:252: testing ..."
+  $as_echo "50. testsuite.at:264: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:253: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND grab"
-echo testsuite.at:253 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:265: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND grab"
+echo testsuite.at:265 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND grab"; then
@@ -3883,7 +3986,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:253"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:265"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3892,23 +3995,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_48
-#AT_START_49
-# 49. testsuite.at:255: compression gzip
-at_setup_line='testsuite.at:255'
-at_func_banner 4
+#AT_STOP_50
+#AT_START_51
+# 51. testsuite.at:267: compression gzip
+at_setup_line='testsuite.at:267'
+at_func_banner 5
 at_desc="compression gzip"
-$at_quiet $as_echo_n " 49: $at_desc                               "
+$at_quiet $as_echo_n " 51: $at_desc                               "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "49. testsuite.at:255: testing ..."
+  $as_echo "51. testsuite.at:267: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:257: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression gzip"
-echo testsuite.at:257 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:269: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression gzip"
+echo testsuite.at:269 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression gzip"; then
@@ -3921,14 +4024,14 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:257"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:269"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:258: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
-echo testsuite.at:258 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:270: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
+echo testsuite.at:270 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression readonly"; then
@@ -3941,7 +4044,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:258"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:270"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -3950,23 +4053,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_49
-#AT_START_50
-# 50. testsuite.at:260: compression szip
-at_setup_line='testsuite.at:260'
-at_func_banner 4
+#AT_STOP_51
+#AT_START_52
+# 52. testsuite.at:272: compression szip
+at_setup_line='testsuite.at:272'
+at_func_banner 5
 at_desc="compression szip"
-$at_quiet $as_echo_n " 50: $at_desc                               "
+$at_quiet $as_echo_n " 52: $at_desc                               "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "50. testsuite.at:260: testing ..."
+  $as_echo "52. testsuite.at:272: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:262: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression szip"
-echo testsuite.at:262 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:274: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression szip"
+echo testsuite.at:274 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression szip"; then
@@ -3979,14 +4082,14 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:262"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:274"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:263: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
-echo testsuite.at:263 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:275: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
+echo testsuite.at:275 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression readonly"; then
@@ -3999,7 +4102,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:263"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:275"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4008,23 +4111,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_50
-#AT_START_51
-# 51. testsuite.at:265: compression fpzip
-at_setup_line='testsuite.at:265'
-at_func_banner 4
+#AT_STOP_52
+#AT_START_53
+# 53. testsuite.at:277: compression fpzip
+at_setup_line='testsuite.at:277'
+at_func_banner 5
 at_desc="compression fpzip"
-$at_quiet $as_echo_n " 51: $at_desc                              "
+$at_quiet $as_echo_n " 53: $at_desc                              "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "51. testsuite.at:265: testing ..."
+  $as_echo "53. testsuite.at:277: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:267: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression fpzip"
-echo testsuite.at:267 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:279: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression fpzip"
+echo testsuite.at:279 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression fpzip"; then
@@ -4037,14 +4140,14 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:267"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:279"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:268: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
-echo testsuite.at:268 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:280: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
+echo testsuite.at:280 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression readonly"; then
@@ -4057,7 +4160,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:268"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:280"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4066,23 +4169,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_51
-#AT_START_52
-# 52. testsuite.at:270: compression lossy3
-at_setup_line='testsuite.at:270'
-at_func_banner 4
+#AT_STOP_53
+#AT_START_54
+# 54. testsuite.at:282: compression lossy3
+at_setup_line='testsuite.at:282'
+at_func_banner 5
 at_desc="compression lossy3"
-$at_quiet $as_echo_n " 52: $at_desc                             "
+$at_quiet $as_echo_n " 54: $at_desc                             "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "52. testsuite.at:270: testing ..."
+  $as_echo "54. testsuite.at:282: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:272: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression lossy3"
-echo testsuite.at:272 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:284: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression lossy3"
+echo testsuite.at:284 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression lossy3"; then
@@ -4095,14 +4198,14 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:272"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:284"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:273: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
-echo testsuite.at:273 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:285: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression readonly"
+echo testsuite.at:285 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression readonly"; then
@@ -4115,7 +4218,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 50 $at_status "$at_srcdir/testsuite.at:273"
+at_func_check_status 50 $at_status "$at_srcdir/testsuite.at:285"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4124,23 +4227,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_52
-#AT_START_53
-# 53. testsuite.at:275: compression minratio1000
-at_setup_line='testsuite.at:275'
-at_func_banner 4
+#AT_STOP_54
+#AT_START_55
+# 55. testsuite.at:287: compression minratio1000
+at_setup_line='testsuite.at:287'
+at_func_banner 5
 at_desc="compression minratio1000"
-$at_quiet $as_echo_n " 53: $at_desc                       "
+$at_quiet $as_echo_n " 55: $at_desc                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "53. testsuite.at:275: testing ..."
+  $as_echo "55. testsuite.at:287: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:277: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression minratio1000"
-echo testsuite.at:277 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:289: test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND compression minratio1000"
+echo testsuite.at:289 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -e ../src/fpzip/read.o -o -e ../../../src/fpzip/read.o \\) -o \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND compression minratio1000"; then
@@ -4153,7 +4256,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 1 $at_status "$at_srcdir/testsuite.at:277"
+at_func_check_status 1 $at_status "$at_srcdir/testsuite.at:289"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4162,23 +4265,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_53
-#AT_START_54
-# 54. testsuite.at:279: testhzip
-at_setup_line='testsuite.at:279'
-at_func_banner 4
+#AT_STOP_55
+#AT_START_56
+# 56. testsuite.at:291: testhzip
+at_setup_line='testsuite.at:291'
+at_func_banner 5
 at_desc="testhzip"
-$at_quiet $as_echo_n " 54: $at_desc                                       "
+$at_quiet $as_echo_n " 56: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "54. testsuite.at:279: testing ..."
+  $as_echo "56. testsuite.at:291: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:281: test ! \\( -e ../src/hzip/hzutil.o -o -e ../../../src/hzip/hzutil.o \\) -o -z \"\$BROWSER\" -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND testhzip \`pwd\`"
-echo testsuite.at:281 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:293: test ! \\( -e ../src/hzip/hzutil.o -o -e ../../../src/hzip/hzutil.o \\) -o -z \"\$BROWSER\" -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND testhzip \`pwd\`"
+echo testsuite.at:293 >"$at_check_line_file"
 
 if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
    false; }; then
@@ -4191,7 +4294,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:281"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:293"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4200,22 +4303,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_54
-#AT_START_55
-# 55. testsuite.at:283: checksums
-at_setup_line='testsuite.at:283'
-at_func_banner 4
+#AT_STOP_56
+#AT_START_57
+# 57. testsuite.at:295: checksums
+at_setup_line='testsuite.at:295'
+at_func_banner 5
 at_desc="checksums"
-$at_quiet $as_echo_n " 55: $at_desc                                      "
+$at_quiet $as_echo_n " 57: $at_desc                                      "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "55. testsuite.at:283: testing ..."
+  $as_echo "57. testsuite.at:295: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:284: test -z \"\$BROWSER\" -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND checksums \`pwd\`"
-echo testsuite.at:284 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:296: test -z \"\$BROWSER\" -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND checksums \`pwd\`"
+echo testsuite.at:296 >"$at_check_line_file"
 
 if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
    false; }; then
@@ -4228,7 +4331,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:284"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:296"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4237,22 +4340,22 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_55
-#AT_START_56
-# 56. testsuite.at:286: xversion
-at_setup_line='testsuite.at:286'
-at_func_banner 4
+#AT_STOP_57
+#AT_START_58
+# 58. testsuite.at:298: xversion
+at_setup_line='testsuite.at:298'
+at_func_banner 5
 at_desc="xversion"
-$at_quiet $as_echo_n " 56: $at_desc                                       "
+$at_quiet $as_echo_n " 58: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "56. testsuite.at:286: testing ..."
+  $as_echo "58. testsuite.at:298: testing ..."
   $at_traceon
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:287: test -z \"\$BROWSER\" -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND testxvers \`pwd\`"
-echo testsuite.at:287 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:299: test -z \"\$BROWSER\" -o \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND testxvers \`pwd\`"
+echo testsuite.at:299 >"$at_check_line_file"
 
 if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
    false; }; then
@@ -4265,7 +4368,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:287"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:299"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4274,23 +4377,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_56
-#AT_START_57
-# 57. testsuite.at:289: largefile
-at_setup_line='testsuite.at:289'
-at_func_banner 4
+#AT_STOP_58
+#AT_START_59
+# 59. testsuite.at:301: largefile
+at_setup_line='testsuite.at:301'
+at_func_banner 5
 at_desc="largefile"
-$at_quiet $as_echo_n " 57: $at_desc                                      "
+$at_quiet $as_echo_n " 59: $at_desc                                      "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "57. testsuite.at:289: testing ..."
+  $as_echo "59. testsuite.at:301: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:291: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND largefile"
-echo testsuite.at:291 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:303: test \"\$STARGS\" != DB_HDF5 && exit 77 || \$VALGRIND largefile"
+echo testsuite.at:303 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test \"$STARGS\" != DB_HDF5 && exit 77 || $VALGRIND largefile"; then
@@ -4303,7 +4406,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:291"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:303"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4312,23 +4415,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_57
-#AT_START_58
-# 58. testsuite.at:295: arrayf77
-at_setup_line='testsuite.at:295'
-at_func_banner 5
+#AT_STOP_59
+#AT_START_60
+# 60. testsuite.at:307: arrayf77
+at_setup_line='testsuite.at:307'
+at_func_banner 6
 at_desc="arrayf77"
-$at_quiet $as_echo_n " 58: $at_desc                                       "
+$at_quiet $as_echo_n " 60: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "58. testsuite.at:295: testing ..."
+  $as_echo "60. testsuite.at:307: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:297: test ! \\( -f arrayf77 -o -f ../../arrayf77 \\) && exit 77 || \$VALGRIND arrayf77 \$STARGS"
-echo testsuite.at:297 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:309: test ! \\( -f arrayf77 -o -f ../../arrayf77 \\) && exit 77 || \$VALGRIND arrayf77 \$STARGS"
+echo testsuite.at:309 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f arrayf77 -o -f ../../arrayf77 \\) && exit 77 || $VALGRIND arrayf77 $STARGS"; then
@@ -4341,7 +4444,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:297"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:309"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4350,23 +4453,61 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_58
-#AT_START_59
-# 59. testsuite.at:299: curvef77
-at_setup_line='testsuite.at:299'
-at_func_banner 5
+#AT_STOP_60
+#AT_START_61
+# 61. testsuite.at:311: arrayf90
+at_setup_line='testsuite.at:311'
+at_func_banner 6
+at_desc="arrayf90"
+$at_quiet $as_echo_n " 61: $at_desc                                       "
+at_xfail=no
+echo "#                             -*- compilation -*-" >> "$at_group_log"
+(
+  $as_echo "61. testsuite.at:311: testing ..."
+  $at_traceon
+
+
+{ $at_traceoff
+$as_echo "$at_srcdir/testsuite.at:313: test ! \\( -f arrayf90 -o -f ../../arrayf90 \\) && exit 77 || \$VALGRIND arrayf90 \$STARGS"
+echo testsuite.at:313 >"$at_check_line_file"
+
+if test -n "$at_traceon" \
+  && at_func_check_newline "test ! \\( -f arrayf90 -o -f ../../arrayf90 \\) && exit 77 || $VALGRIND arrayf90 $STARGS"; then
+  ( $at_traceon; test ! \( -f arrayf90 -o -f ../../arrayf90 \) && exit 77 || $VALGRIND arrayf90 $STARGS ) >"$at_stdout" 2>"$at_stder1"
+  at_func_filter_trace $?
+else
+  ( :; test ! \( -f arrayf90 -o -f ../../arrayf90 \) && exit 77 || $VALGRIND arrayf90 $STARGS ) >"$at_stdout" 2>"$at_stderr"
+fi
+at_status=$?
+at_failed=false
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:313"
+
+$at_failed && at_func_log_failure
+$at_traceon; }
+
+  $at_traceoff
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 | eval $at_tee_pipe
+at_status=`cat "$at_status_file"`
+#AT_STOP_61
+#AT_START_62
+# 62. testsuite.at:315: curvef77
+at_setup_line='testsuite.at:315'
+at_func_banner 6
 at_desc="curvef77"
-$at_quiet $as_echo_n " 59: $at_desc                                       "
+$at_quiet $as_echo_n " 62: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "59. testsuite.at:299: testing ..."
+  $as_echo "62. testsuite.at:315: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:301: test ! \\( -f curvef77 -o -f ../../curvef77 \\) && exit 77 || \$VALGRIND curvef77 \$STARGS"
-echo testsuite.at:301 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:317: test ! \\( -f curvef77 -o -f ../../curvef77 \\) && exit 77 || \$VALGRIND curvef77 \$STARGS"
+echo testsuite.at:317 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f curvef77 -o -f ../../curvef77 \\) && exit 77 || $VALGRIND curvef77 $STARGS"; then
@@ -4379,7 +4520,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:301"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:317"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4388,23 +4529,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_59
-#AT_START_60
-# 60. testsuite.at:303: matf77
-at_setup_line='testsuite.at:303'
-at_func_banner 5
+#AT_STOP_62
+#AT_START_63
+# 63. testsuite.at:319: matf77
+at_setup_line='testsuite.at:319'
+at_func_banner 6
 at_desc="matf77"
-$at_quiet $as_echo_n " 60: $at_desc                                         "
+$at_quiet $as_echo_n " 63: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "60. testsuite.at:303: testing ..."
+  $as_echo "63. testsuite.at:319: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:305: test ! \\( -f matf77 -o -f ../../matf77 \\) && exit 77 || \$VALGRIND matf77 \$STARGS"
-echo testsuite.at:305 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:321: test ! \\( -f matf77 -o -f ../../matf77 \\) && exit 77 || \$VALGRIND matf77 \$STARGS"
+echo testsuite.at:321 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f matf77 -o -f ../../matf77 \\) && exit 77 || $VALGRIND matf77 $STARGS"; then
@@ -4417,7 +4558,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:305"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:321"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4426,23 +4567,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_60
-#AT_START_61
-# 61. testsuite.at:307: pointf77
-at_setup_line='testsuite.at:307'
-at_func_banner 5
+#AT_STOP_63
+#AT_START_64
+# 64. testsuite.at:323: pointf77
+at_setup_line='testsuite.at:323'
+at_func_banner 6
 at_desc="pointf77"
-$at_quiet $as_echo_n " 61: $at_desc                                       "
+$at_quiet $as_echo_n " 64: $at_desc                                       "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "61. testsuite.at:307: testing ..."
+  $as_echo "64. testsuite.at:323: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:309: test ! \\( -f pointf77 -o -f ../../pointf77 \\) && exit 77 || \$VALGRIND pointf77 \$STARGS"
-echo testsuite.at:309 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:325: test ! \\( -f pointf77 -o -f ../../pointf77 \\) && exit 77 || \$VALGRIND pointf77 \$STARGS"
+echo testsuite.at:325 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f pointf77 -o -f ../../pointf77 \\) && exit 77 || $VALGRIND pointf77 $STARGS"; then
@@ -4455,7 +4596,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:309"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:325"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4464,23 +4605,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_61
-#AT_START_62
-# 62. testsuite.at:311: quadf77
-at_setup_line='testsuite.at:311'
-at_func_banner 5
+#AT_STOP_64
+#AT_START_65
+# 65. testsuite.at:327: quadf77
+at_setup_line='testsuite.at:327'
+at_func_banner 6
 at_desc="quadf77"
-$at_quiet $as_echo_n " 62: $at_desc                                        "
+$at_quiet $as_echo_n " 65: $at_desc                                        "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "62. testsuite.at:311: testing ..."
+  $as_echo "65. testsuite.at:327: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:313: test ! \\( -f quadf77 -o -f ../../quadf77 \\) && exit 77 || \$VALGRIND quadf77 \$STARGS"
-echo testsuite.at:313 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:329: test ! \\( -f quadf77 -o -f ../../quadf77 \\) && exit 77 || \$VALGRIND quadf77 \$STARGS"
+echo testsuite.at:329 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f quadf77 -o -f ../../quadf77 \\) && exit 77 || $VALGRIND quadf77 $STARGS"; then
@@ -4493,7 +4634,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:313"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:329"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4502,23 +4643,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_62
-#AT_START_63
-# 63. testsuite.at:315: testallf77
-at_setup_line='testsuite.at:315'
-at_func_banner 5
+#AT_STOP_65
+#AT_START_66
+# 66. testsuite.at:331: testallf77
+at_setup_line='testsuite.at:331'
+at_func_banner 6
 at_desc="testallf77"
-$at_quiet $as_echo_n " 63: $at_desc                                     "
+$at_quiet $as_echo_n " 66: $at_desc                                     "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "63. testsuite.at:315: testing ..."
+  $as_echo "66. testsuite.at:331: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:317: test ! \\( -f testallf77 -o -f ../../testallf77 \\) && exit 77 || \$VALGRIND testallf77 \$STARGS"
-echo testsuite.at:317 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:333: test ! \\( -f testallf77 -o -f ../../testallf77 \\) && exit 77 || \$VALGRIND testallf77 \$STARGS"
+echo testsuite.at:333 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f testallf77 -o -f ../../testallf77 \\) && exit 77 || $VALGRIND testallf77 $STARGS"; then
@@ -4531,7 +4672,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:317"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:333"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4540,23 +4681,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_63
-#AT_START_64
-# 64. testsuite.at:319: ucdf77
-at_setup_line='testsuite.at:319'
-at_func_banner 5
+#AT_STOP_66
+#AT_START_67
+# 67. testsuite.at:335: ucdf77
+at_setup_line='testsuite.at:335'
+at_func_banner 6
 at_desc="ucdf77"
-$at_quiet $as_echo_n " 64: $at_desc                                         "
+$at_quiet $as_echo_n " 67: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "64. testsuite.at:319: testing ..."
+  $as_echo "67. testsuite.at:335: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:321: test ! \\( -f ucdf77 -o -f ../../ucdf77 \\) && exit 77 || \$VALGRIND ucdf77 \$STARGS"
-echo testsuite.at:321 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:337: test ! \\( -f ucdf77 -o -f ../../ucdf77 \\) && exit 77 || \$VALGRIND ucdf77 \$STARGS"
+echo testsuite.at:337 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f ucdf77 -o -f ../../ucdf77 \\) && exit 77 || $VALGRIND ucdf77 $STARGS"; then
@@ -4569,7 +4710,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:321"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:337"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4578,23 +4719,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_64
-#AT_START_65
-# 65. testsuite.at:323: csgmesh
-at_setup_line='testsuite.at:323'
-at_func_banner 5
+#AT_STOP_67
+#AT_START_68
+# 68. testsuite.at:339: csgmesh
+at_setup_line='testsuite.at:339'
+at_func_banner 6
 at_desc="csgmesh"
-$at_quiet $as_echo_n " 65: $at_desc                                        "
+$at_quiet $as_echo_n " 68: $at_desc                                        "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "65. testsuite.at:323: testing ..."
+  $as_echo "68. testsuite.at:339: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:325: test ! \\( -f csgmesh -o -f ../../csgmesh \\) && exit 77 || \$VALGRIND csgmesh \$STARGS"
-echo testsuite.at:325 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:341: test ! \\( -f csgmesh -o -f ../../csgmesh \\) && exit 77 || \$VALGRIND csgmesh \$STARGS"
+echo testsuite.at:341 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "test ! \\( -f csgmesh -o -f ../../csgmesh \\) && exit 77 || $VALGRIND csgmesh $STARGS"; then
@@ -4607,7 +4748,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:325"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:341"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4616,23 +4757,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_65
-#AT_START_66
-# 66. testsuite.at:329: silock
-at_setup_line='testsuite.at:329'
-at_func_banner 6
+#AT_STOP_68
+#AT_START_69
+# 69. testsuite.at:345: silock
+at_setup_line='testsuite.at:345'
+at_func_banner 7
 at_desc="silock"
-$at_quiet $as_echo_n " 66: $at_desc                                         "
+$at_quiet $as_echo_n " 69: $at_desc                                         "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "66. testsuite.at:329: testing ..."
+  $as_echo "69. testsuite.at:345: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:331: testsilock \`pwd\` \$STARGS"
-echo testsuite.at:331 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:347: testsilock \`pwd\` \$STARGS"
+echo testsuite.at:347 >"$at_check_line_file"
 
 if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
    false; }; then
@@ -4645,7 +4786,7 @@ at_status=$?
 at_failed=false
 echo stderr:; cat "$at_stderr"
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:331"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:347"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4654,23 +4795,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_66
-#AT_START_67
-# 67. testsuite.at:333: force single
-at_setup_line='testsuite.at:333'
-at_func_banner 6
+#AT_STOP_69
+#AT_START_70
+# 70. testsuite.at:349: force single
+at_setup_line='testsuite.at:349'
+at_func_banner 7
 at_desc="force single"
-$at_quiet $as_echo_n " 67: $at_desc                                   "
+$at_quiet $as_echo_n " 70: $at_desc                                   "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "67. testsuite.at:333: testing ..."
+  $as_echo "70. testsuite.at:349: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:335: specmix \$STARGS"
-echo testsuite.at:335 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:351: specmix \$STARGS"
+echo testsuite.at:351 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "specmix $STARGS"; then
@@ -4683,27 +4824,27 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:335"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:351"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:336: testdtypes \`pwd\` \$STARGS"
-echo testsuite.at:336 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:352: test -z \"\$BROWSER\" && exit 77 || \$VALGRIND testdtypes \`pwd\` \$STARGS"
+echo testsuite.at:352 >"$at_check_line_file"
 
 if { echo 'Not enabling shell tracing (command contains a `...` command substitution)'
    false; }; then
-  ( $at_traceon; testdtypes `pwd` $STARGS ) >"$at_stdout" 2>"$at_stder1"
+  ( $at_traceon; test -z "$BROWSER" && exit 77 || $VALGRIND testdtypes `pwd` $STARGS ) >"$at_stdout" 2>"$at_stder1"
   at_func_filter_trace $?
 else
-  ( :; testdtypes `pwd` $STARGS ) >"$at_stdout" 2>"$at_stderr"
+  ( :; test -z "$BROWSER" && exit 77 || $VALGRIND testdtypes `pwd` $STARGS ) >"$at_stdout" 2>"$at_stderr"
 fi
 at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:336"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:352"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4712,23 +4853,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_67
-#AT_START_68
-# 68. testsuite.at:338: multi_file
-at_setup_line='testsuite.at:338'
-at_func_banner 6
+#AT_STOP_70
+#AT_START_71
+# 71. testsuite.at:354: multi_file
+at_setup_line='testsuite.at:354'
+at_func_banner 7
 at_desc="multi_file"
-$at_quiet $as_echo_n " 68: $at_desc                                     "
+$at_quiet $as_echo_n " 71: $at_desc                                     "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "68. testsuite.at:338: testing ..."
+  $as_echo "71. testsuite.at:354: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:340: \$VALGRIND multi_file \$STARGS"
-echo testsuite.at:340 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:356: \$VALGRIND multi_file \$STARGS"
+echo testsuite.at:356 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND multi_file $STARGS"; then
@@ -4741,7 +4882,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:340"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:356"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4750,23 +4891,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_68
-#AT_START_69
-# 69. testsuite.at:342: multi_file use-ns
-at_setup_line='testsuite.at:342'
-at_func_banner 6
+#AT_STOP_71
+#AT_START_72
+# 72. testsuite.at:358: multi_file use-ns
+at_setup_line='testsuite.at:358'
+at_func_banner 7
 at_desc="multi_file use-ns"
-$at_quiet $as_echo_n " 69: $at_desc                              "
+$at_quiet $as_echo_n " 72: $at_desc                              "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "69. testsuite.at:342: testing ..."
+  $as_echo "72. testsuite.at:358: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:344: \$VALGRIND multi_file use-ns \$STARGS"
-echo testsuite.at:344 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:360: \$VALGRIND multi_file use-ns \$STARGS"
+echo testsuite.at:360 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND multi_file use-ns $STARGS"; then
@@ -4779,7 +4920,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:344"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:360"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4788,23 +4929,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_69
-#AT_START_70
-# 70. testsuite.at:346: testall -medium
-at_setup_line='testsuite.at:346'
-at_func_banner 6
+#AT_STOP_72
+#AT_START_73
+# 73. testsuite.at:362: testall -medium
+at_setup_line='testsuite.at:362'
+at_func_banner 7
 at_desc="testall -medium"
-$at_quiet $as_echo_n " 70: $at_desc                                "
+$at_quiet $as_echo_n " 73: $at_desc                                "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "70. testsuite.at:346: testing ..."
+  $as_echo "73. testsuite.at:362: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:348: \$VALGRIND testall -medium \$STARGS"
-echo testsuite.at:348 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:364: \$VALGRIND testall -medium \$STARGS"
+echo testsuite.at:364 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND testall -medium $STARGS"; then
@@ -4817,7 +4958,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:348"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:364"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4826,23 +4967,23 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_70
-#AT_START_71
-# 71. testsuite.at:350: testall -large
-at_setup_line='testsuite.at:350'
-at_func_banner 6
+#AT_STOP_73
+#AT_START_74
+# 74. testsuite.at:366: testall -large
+at_setup_line='testsuite.at:366'
+at_func_banner 7
 at_desc="testall -large"
-$at_quiet $as_echo_n " 71: $at_desc                                 "
+$at_quiet $as_echo_n " 74: $at_desc                                 "
 at_xfail=no
 echo "#                             -*- compilation -*-" >> "$at_group_log"
 (
-  $as_echo "71. testsuite.at:350: testing ..."
+  $as_echo "74. testsuite.at:366: testing ..."
   $at_traceon
 
 
 { $at_traceoff
-$as_echo "$at_srcdir/testsuite.at:352: \$VALGRIND testall -large \$STARGS"
-echo testsuite.at:352 >"$at_check_line_file"
+$as_echo "$at_srcdir/testsuite.at:368: \$VALGRIND testall -large \$STARGS"
+echo testsuite.at:368 >"$at_check_line_file"
 
 if test -n "$at_traceon" \
   && at_func_check_newline "$VALGRIND testall -large $STARGS"; then
@@ -4855,7 +4996,7 @@ at_status=$?
 at_failed=false
 at_func_diff_devnull "$at_stderr" || at_failed=:
 echo stdout:; cat "$at_stdout"
-at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:352"
+at_func_check_status 0 $at_status "$at_srcdir/testsuite.at:368"
 
 $at_failed && at_func_log_failure
 $at_traceon; }
@@ -4864,4 +5005,4 @@ $at_traceon; }
   $at_times_p && times >"$at_times_file"
 ) 5>&1 2>&1 | eval $at_tee_pipe
 at_status=`cat "$at_status_file"`
-#AT_STOP_71
+#AT_STOP_74
diff --git a/tests/testsuite.at b/tests/testsuite.at
index ec69b0b..a62e716 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -62,8 +62,10 @@ in part under Contract DE-AC52-07NA27344.])
 AT_BANNER(Non-driver-specific)
 AT_SETUP(version)
 AT_DATA(expout,
-This version of Silo is greater than or equal to 4.6
-This version of Silo is NOT greater than or equal to 90.5.2
+This version of the Silo library is greater than or equal to 4
+This version of the Silo library is NOT greater than or equal to 9
+This version of the Silo library is greater than or equal to 4.6
+This version of the Silo library is NOT greater than or equal to 90.5.2
 DBVersion() returns "AT_PACKAGE_VERSION"
 DBVersionGE(4,6,0) returns 1
 DBVersionGE(90,5,2) returns 0
@@ -86,6 +88,9 @@ AT_CLEANUP
 AT_SETUP(namescheme)
 AT_CHECK($VALGRIND namescheme,,ignore)
 AT_CLEANUP
+AT_SETUP(realloc_obj_and_opts)
+AT_CHECK($VALGRIND realloc_obj_and_opts $STARGS,,ignore)
+AT_CLEANUP
 AT_SETUP(point)
 AT_CHECK($VALGRIND point $STARGS,,ignore)
 AT_CLEANUP
@@ -206,7 +211,7 @@ AT_SETUP(testfs)
 AT_CHECK($VALGRIND testfs $STARGS,,ignore)
 AT_CLEANUP
 AT_SETUP(empty)
-AT_CHECK($VALGRIND empty $STARGS,,ignore)
+AT_CHECK($VALGRIND empty $STARGS,,ignore,ignore)
 AT_CLEANUP
 
 AT_BANNER(pythonmodule)
@@ -223,10 +228,10 @@ ndir = 1
 dir_names = (a)
 
 t2='hello'
-t6= (1.2, 10.199999999999999)
+t6=1.20,10.20
 a/t8='x2'
 t9=x3
-/t5= (1.2, 10.0)
+/t5=1.20,10.00
 ])
 AT_CHECK(test -z "$PYTHON" && exit 77 || env PYTHONPATH=../../../tools/python/.libs $PYTHON ../../test_write.py,,expout,ignore)
 AT_CLEANUP
@@ -240,6 +245,13 @@ AT_KEYWORDS(python)
 AT_CHECK(test -z "$PYTHON" -o -z "$BROWSER" && exit 77 || $VALGRIND testonehex `pwd`,,ignore,ignore)
 AT_CLEANUP
 
+AT_BANNER(JSON (experimental))
+AT_SETUP(json)
+AT_KEYWORDS(json)
+AT_CHECK(test ! \( -e ./json -o -e ../../json \) && exit 77 || onehex $STARGS,,ignore) # don't valgrind these intermediate parts
+AT_CHECK(test ! \( -e ./json -o -e ../../json \) && exit 77 || $VALGRIND json $STARGS,ignore,ignore)
+AT_CLEANUP
+
 AT_BANNER(PDB Lite)
 AT_SETUP(testpdb)
 AT_CHECK(test ! \( -e ../src/score/lite_score.h -o -e ../../../src/pdb/lite_pdb.h \) -o "$STARGS" = DB_HDF5 && exit 77 || $VALGRIND testpdb,ignore,ignore)
@@ -296,6 +308,10 @@ AT_SETUP(arrayf77)
 AT_KEYWORDS(fortran)
 AT_CHECK(test ! \( -f arrayf77 -o -f ../../arrayf77 \) && exit 77 || $VALGRIND arrayf77 $STARGS,,ignore,ignore)
 AT_CLEANUP
+AT_SETUP(arrayf90)
+AT_KEYWORDS(fortran)
+AT_CHECK(test ! \( -f arrayf90 -o -f ../../arrayf90 \) && exit 77 || $VALGRIND arrayf90 $STARGS,,ignore,ignore)
+AT_CLEANUP
 AT_SETUP(curvef77)
 AT_KEYWORDS(fortran)
 AT_CHECK(test ! \( -f curvef77 -o -f ../../curvef77 \) && exit 77 || $VALGRIND curvef77 $STARGS,,ignore,ignore)
@@ -333,7 +349,7 @@ AT_CLEANUP
 AT_SETUP(force single)
 AT_KEYWORDS(conversions)
 AT_CHECK(specmix $STARGS,,ignore)
-AT_CHECK(testdtypes `pwd` $STARGS,,ignore)
+AT_CHECK(test -z "$BROWSER" && exit 77 || $VALGRIND testdtypes `pwd` $STARGS,,ignore)
 AT_CLEANUP
 AT_SETUP(multi_file)
 AT_KEYWORDS(large)
diff --git a/tests/twohex.c b/tests/twohex.c
index 88f625e..31afdb5 100644
--- a/tests/twohex.c
+++ b/tests/twohex.c
@@ -240,8 +240,8 @@ main(int argc, char *argv[])
                   facelist->nshapes, facelist->types, facelist->typelist,
                   facelist->ntypes);
 
-    DBPutUcdmesh(dbfile, "hex", 3, coordnames, coords, 12, 2, "zonelist",
-                 "facelist", DB_FLOAT, NULL);
+    DBPutUcdmesh(dbfile, "hex", 3, (DBCAS_t) coordnames,
+        coords, 12, 2, "zonelist", "facelist", DB_FLOAT, NULL);
 
     DBPutUcdvar1(dbfile, "v", "hex", var, 12, NULL, 0, DB_FLOAT, DB_NODECENT,
                  NULL);
diff --git a/tests/ucd.c b/tests/ucd.c
index 260a8dd..d395f80 100644
--- a/tests/ucd.c
+++ b/tests/ucd.c
@@ -202,7 +202,9 @@ build_ucd(DBfile *dbfile, char *name)
 #endif
 
     float         *coords[3], *vars[8];
-    char          *coordnames[3], *varnames[8];
+    char          *coordnames[3], *varnames[8], *alt_nodenum_varnames[5];
+
+    DBoptlist     *opts;
 
     fshapesize = 2;
     fshapecnt = NFACES;
@@ -218,18 +220,26 @@ build_ucd(DBfile *dbfile, char *name)
     coordnames[1] = "Y";
     vars[0] = d;
     varnames[0] = "d";
+    alt_nodenum_varnames[0] = "foo";
+    alt_nodenum_varnames[1] = "bar";
+    alt_nodenum_varnames[2] = "gorfo";
+    alt_nodenum_varnames[3] = "qwerty";
+    alt_nodenum_varnames[4] = 0;
 
-    (void)DBPutFacelist(dbfile, "fl", NFACES, 2, fnodelist, LFNODELIST, 0,
+    DBPutFacelist(dbfile, "fl", NFACES, 2, fnodelist, LFNODELIST, 0,
                         NULL, &fshapesize, &fshapecnt, NFSHAPES,
                         NULL, NULL, 0);
 
     DBSetDeprecateWarnings(0);
-    (void)DBPutZonelist(dbfile, "zl", NZONES, 2, znodelist, LZNODELIST, 0,
+    DBPutZonelist(dbfile, "zl", NZONES, 2, znodelist, LZNODELIST, 0,
                         &zshapesize, &zshapecnt, NZSHAPES);
     DBSetDeprecateWarnings(3);
 
-    (void)DBPutUcdmesh(dbfile, name, 2, coordnames, coords,
-                       NNODES, NZONES, "zl", NULL, DB_FLOAT, NULL);
+    opts = DBMakeOptlist(3);
+    DBAddOption(opts, DBOPT_ALT_NODENUM_VARS, alt_nodenum_varnames);
+    DBPutUcdmesh(dbfile, name, 2, (DBCAS_t) coordnames,
+        coords, NNODES, NZONES, "zl", NULL, DB_FLOAT, opts);
+    DBFreeOptlist(opts);
 
     vars[0] = d;
     varnames[0] = "d";
@@ -239,20 +249,20 @@ build_ucd(DBfile *dbfile, char *name)
 
         sprintf(vname, "d%d", i);
 
-        (void)DBPutUcdvar1(dbfile, vname, name, vars[0], NZONES,
+        DBPutUcdvar1(dbfile, vname, name, vars[0], NZONES,
                            NULL, 0, idatatype, DB_ZONECENT, NULL);
     }
 
     vars[0] = u;
     varnames[0] = "u";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames, vars, NNODES,
                       NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = v;
     varnames[0] = "v";
 
-    (void)DBPutUcdvar(dbfile, varnames[0], name, 1, varnames, vars, NNODES,
+    DBPutUcdvar(dbfile, varnames[0], name, 1, (DBCAS_t) varnames, vars, NNODES,
                       NULL, 0, idatatype, DB_NODECENT, NULL);
 
     vars[0] = u;
@@ -260,7 +270,7 @@ build_ucd(DBfile *dbfile, char *name)
     vars[1] = v;
     varnames[1] = "vcomp";
 
-    (void)DBPutUcdvar(dbfile, "velocity", name, 2, varnames, vars, NNODES,
+    DBPutUcdvar(dbfile, "velocity", name, 2, (DBCAS_t) varnames, vars, NNODES,
                       NULL, 0, idatatype, DB_NODECENT, NULL);
 
     /* test writing more than 2 or 3 component variable */
@@ -277,13 +287,13 @@ build_ucd(DBfile *dbfile, char *name)
     vars[5] = v;
     varnames[5] = "vcompm_copy";
 
-    (void)DBPutUcdvar(dbfile, "many_comps", name, 6, varnames, vars, NNODES,
+    DBPutUcdvar(dbfile, "many_comps", name, 6, (DBCAS_t) varnames, vars, NNODES,
                       NULL, 0, idatatype, DB_NODECENT, NULL);
 
 
     dims = NZONES;
 
-    (void)DBPutMaterial(dbfile, "material", name, NMATS, matnos,
+    DBPutMaterial(dbfile, "material", name, NMATS, matnos,
                         matlist, &dims, 1, mix_next, mix_mat, mix_zone,
                         mix_vf, mixlen, DB_FLOAT, NULL);
 #if 0
@@ -299,7 +309,7 @@ build_ucd(DBfile *dbfile, char *name)
     DBConvertMat(NMATS, NZONES, nmix, mixedels, imatlist, matnos, vf, DB_FLOAT,
                  &mixlen, matlist, mix_next, mix_mat, mix_zone, mix_vf);
 
-    (void)DBPutMaterial(dbfile, "material", name, matnos, NMATS,
+    DBPutMaterial(dbfile, "material", name, matnos, NMATS,
                         matlist, &dims, 1, mix_next, mix_mat, mix_zone,
                         mix_vf, mixlen, DB_FLOAT, NULL);
 #endif
diff --git a/tests/ucdf77.f b/tests/ucdf77.f
index c040932..9a43308 100644
--- a/tests/ucdf77.f
+++ b/tests/ucdf77.f
@@ -56,7 +56,7 @@ c---------------------------------------------------------------------
 c  Purpose
 c
 c     Demonstrate use of SILO for creating unstructured cell data
-c     (UCD) objects for viewing with MeshTV.
+c     (UCD) objects for visualization.
 c
 c---------------------------------------------------------------------
       program main
@@ -80,7 +80,7 @@ c...Create file named "ucdf77.silo". Database ID is returned in 'dbid'.
      .               "file info", 9, driver, dbid)
 
 
-c...Write out necessary objects for MeshTV.
+c...Write out objects for visualization 
 
       meshid = builducd(dbid, "ucd", 3)
 
diff --git a/tests/ucdsamp3.c b/tests/ucdsamp3.c
index 6f5da21..8e7693d 100644
--- a/tests/ucdsamp3.c
+++ b/tests/ucdsamp3.c
@@ -258,7 +258,7 @@ build_ucd3(DBfile *dbfile, char *name)
       *  Write out the external facelist we defined
       *  above.
       *-------------------------------------------------*/
-    (void)DBPutFacelist(dbfile, "fl", NFACES, 3, fnodelist, LFNODELIST, 0,
+    DBPutFacelist(dbfile, "fl", NFACES, 3, fnodelist, LFNODELIST, 0,
                         fzoneno, &fshapesize, &fshapecnt, NFSHAPES,
                         NULL, NULL, 0);
 #else
@@ -269,7 +269,7 @@ build_ucd3(DBfile *dbfile, char *name)
     fl = (DBfacelist *) DBCalcExternalFacelist(znodelist, NNODES, 0,
                                        &zshapesize, &zshapecnt, NZSHAPES,
                                                matlist, 2);
-    (void)DBPutFacelist(dbfile, "fl", fl->nfaces, 3,
+    DBPutFacelist(dbfile, "fl", fl->nfaces, 3,
                         fl->nodelist, fl->lnodelist, 0,
                         fl->zoneno, fl->shapesize, fl->shapecnt,
                         fl->nshapes, NULL, NULL, 0);
@@ -279,7 +279,7 @@ build_ucd3(DBfile *dbfile, char *name)
       *  Write out the zonelist.
       *-------------------------------------------------*/
     DBSetDeprecateWarnings(0);
-    (void)DBPutZonelist(dbfile, "zl", NZONES, 3, znodelist, LZNODELIST, 0,
+    DBPutZonelist(dbfile, "zl", NZONES, 3, znodelist, LZNODELIST, 0,
                         &zshapesize, &zshapecnt, NZSHAPES);
     DBSetDeprecateWarnings(3);
 
@@ -293,26 +293,26 @@ build_ucd3(DBfile *dbfile, char *name)
     coordnames[1] = "Y";
     coordnames[2] = "Z";
 
-    meshid = DBPutUcdmesh(dbfile, name, 3, coordnames, coords,
-                          NNODES, NZONES, "zl", "fl", DB_FLOAT, NULL);
+    meshid = DBPutUcdmesh(dbfile, name, 3, (DBCAS_t) coordnames,
+                 coords, NNODES, NZONES, "zl", "fl", DB_FLOAT, NULL);
 
      /*--------------------------------------------------
       *  Write out the material data.
       *-------------------------------------------------*/
-    (void)DBPutMaterial(dbfile, "material", name, 2, matnos, matlist,
+    DBPutMaterial(dbfile, "material", name, 2, matnos, matlist,
                         &dims, 1, NULL, NULL, NULL, NULL, 0, DB_FLOAT,
                         NULL);
 
      /*--------------------------------------------------
       *  Write out a zonal variable.
       *-------------------------------------------------*/
-    (void)DBPutUcdvar1(dbfile, "d", name, d, NZONES,
+    DBPutUcdvar1(dbfile, "d", name, d, NZONES,
                        NULL, 0, idatatype, DB_ZONECENT, NULL);
 
      /*--------------------------------------------------
       *  Write out a nodal variable.
       *-------------------------------------------------*/
-    (void)DBPutUcdvar1(dbfile, "u", name, u, NNODES,
+    DBPutUcdvar1(dbfile, "u", name, u, NNODES,
                        NULL, 0, idatatype, DB_NODECENT, NULL);
 
     return (meshid);
diff --git a/tests/version.c b/tests/version.c
index d3dad97..4d737da 100644
--- a/tests/version.c
+++ b/tests/version.c
@@ -57,13 +57,45 @@ be used for advertising or product endorsement purposes.
 #include "silo.h"
 #include <std.c>
 
+static int VersionNumberGE(int aMaj, int aMin, int aPat,
+                           int bMaj, int bMin, int bPat)
+{
+    if (aMaj < 0) aMaj = 0;
+    if (aMin < 0) aMin = 0;
+    if (aPat < 0) aPat = 0;
+
+    if (bMaj < 0) bMaj = 0;
+    if (bMin < 0) bMin = 0;
+    if (bPat < 0) bPat = 0;
+
+    if (aMaj > bMaj)
+        return 1;
+    else if (aMaj < bMaj)
+        return 0;
+    else
+    {
+        if (aMin > bMin)
+            return 1;
+        else if (aMin < bMin)
+            return 0;
+        else
+        {
+            if (aPat >= bPat)
+                return 1;
+            else
+                return 0;
+        }
+    }
+}
+
 int
 main(int argc, char *argv[])
 {
     DBfile        *dbfile;
-    int           i, driver=DB_PDB;
+    int           i, pass, driver=DB_PDB;
     static char   *filename="version.pdb";
     int            show_all_errors = FALSE;
+    int           vnos[4];
 
     for (i=1; i<argc; i++) {
         if (!strncmp(argv[i], "DB_PDB", 6)) {
@@ -81,18 +113,30 @@ main(int argc, char *argv[])
 
     DBShowErrors(show_all_errors?DB_ALL_AND_DRVR:DB_ALL, NULL);
 
+    /* test version macro with 1 digit version number */
+#if SILO_VERSION_GE(4,0,0)
+    printf("This version of the Silo library is greater than or equal to 4\n");
+#else
+    printf("This version of the Silo library is NOT greater than or equal to 4\n");
+#endif
+#if SILO_VERSION_GE(9,0,0)
+    printf("This version of the Silo library is greater than or equal to 9\n");
+#else
+    printf("This version of the Silo library is NOT greater than or equal to 9\n");
+#endif
+
     /* test version macro with 2 digit version number */
-#if SILO_VERSION_GE(4,6,)
-    printf("This version of Silo is greater than or equal to 4.6\n");
+#if SILO_VERSION_GE(4,6,0)
+    printf("This version of the Silo library is greater than or equal to 4.6\n");
 #else
-    printf("This version of Silo is NOT greater than or equal to 4.6\n");
+    printf("This version of the Silo library is NOT greater than or equal to 4.6\n");
 #endif
 
     /* test version macro with 3 digit version number */
 #if SILO_VERSION_GE(90,5,2)
-    printf("This version of Silo is greater than or equal to 90.5.2\n");
+    printf("This version of the Silo library is greater than or equal to 90.5.2\n");
 #else
-    printf("This version of Silo is NOT greater than or equal to 90.5.2\n");
+    printf("This version of the Silo library is NOT greater than or equal to 90.5.2\n");
 #endif
 
     /* test run-time version methods for lib */
@@ -132,6 +176,144 @@ main(int argc, char *argv[])
         DBClose(dbfile);
     }
 
+    /* Test scanning through a set of version numbers on both old and
+       new files to ensure comparisons work as expected */
+    for (pass = 0; pass < 2; pass++)
+    {
+        struct {int maj; int min; int pat; int result_old; int result_new;}
+            vnos_to_sample[] =
+            {
+                { 3, 0, 0, -1, 1},
+                { 3, 0, 1, -1, 1},
+                { 3, 1, 0, -1, 1},
+                { 3, 1, 1, -1, 1},
+                { 4, 5, 0, -1, 1},
+                { 4, 5, 1,  0, 1},
+                { 4, 5, 2,  0, 1},
+                {90, 0, 0,  0, 0},
+                {90, 0, 1,  0, 0},
+                {90, 1, 0,  0, 0},
+                {90, 1, 1,  0, 0}
+            };
+
+        /* Get a file handle for this pass */
+        if (pass == 0)
+        {
+            /* The second open attempt is to allow this test to run correctly
+               under autotest. Autotest runs its tests two levels down. */
+            dbfile = DBOpen("pion0244.silo", DB_UNKNOWN, DB_READ);
+            if (dbfile == 0)
+                dbfile = DBOpen("../../pion0244.silo", DB_UNKNOWN, DB_READ);
+        }
+        else
+        {
+            dbfile = DBOpen(filename, driver, DB_READ);
+        }
+
+        if (dbfile == 0)
+        {
+            fprintf(stderr, "Could not open file.\n");
+            return 1;
+        }
+        
+        /* loop over all version number tests */
+        for (i = 0; i < sizeof(vnos_to_sample)/sizeof(vnos_to_sample[0]); i++)
+        {
+            int ck = DBFileVersionGE(dbfile, vnos_to_sample[i].maj, 
+                                             vnos_to_sample[i].min,
+                                             vnos_to_sample[i].pat);
+            int expected = pass==0 ? vnos_to_sample[i].result_old : vnos_to_sample[i].result_new;
+
+            if (ck != expected)
+            {
+                fprintf(stderr, "Version check failed for file version \"%s\" against %d.%d.%d, expected = %d, result = %d\n",
+                    DBFileVersion(dbfile), vnos_to_sample[i].maj, vnos_to_sample[i].min, vnos_to_sample[i].pat, expected, ck);
+                return 1;
+            }
+        }
+
+        DBClose(dbfile);
+    }
+
+    /* Test getting version digits from file handle */
+    dbfile = DBOpen(filename, driver, DB_READ);
+    if (dbfile == 0)
+    {
+        fprintf(stderr, "Could not open file.\n");
+        return 1;
+    }
+    if (DBFileVersionDigits(dbfile, &vnos[0], &vnos[1], &vnos[2], &vnos[3]))
+    {
+        fprintf(stderr, "Error getting file version digits\n");
+        return 1;
+    }
+    if (vnos[0] != SILO_VERS_MAJ || vnos[1] != SILO_VERS_MIN || vnos[2] != SILO_VERS_PAT)
+    {
+        fprintf(stderr, "Error in version digits returned from DBFileVersionDigits\n");
+        return 1;
+    }
+    DBClose(dbfile);
+
+    /* Test getting version digits from library */
+    if (DBVersionDigits(&vnos[0], &vnos[1], &vnos[2], 0))
+    {
+        fprintf(stderr, "Error getting library version digits\n");
+        return 1;
+    }
+    if (vnos[0] != SILO_VERS_MAJ || vnos[1] != SILO_VERS_MIN || vnos[2] != SILO_VERS_PAT)
+    {
+        fprintf(stderr, "Error in version digits returned from DBVersionDigits\n");
+        return 1;
+    }
+
+    dbfile = DBOpen("pion0244.silo", DB_UNKNOWN, DB_READ);
+    if (dbfile == 0)
+        dbfile = DBOpen("../../pion0244.silo", DB_UNKNOWN, DB_READ);
+    if (dbfile == 0)
+    {
+        fprintf(stderr, "Could not open file.\n");
+        return 1;
+    }
+    if (!DBVersionGEFileVersion(dbfile))
+    {
+        fprintf(stderr, "Error comparing library version to OLD file version.\n");
+        return 1;
+    }
+    DBClose(dbfile);
+
+    dbfile = DBOpen(filename, driver, DB_APPEND);
+    if (dbfile == 0)
+    {
+        fprintf(stderr, "Could not open file.\n");
+        return 1;
+    }
+    if (!DBVersionGEFileVersion(dbfile))
+    {
+        fprintf(stderr, "Error comparing library version to CURRENT file version.\n");
+        return 1;
+    }
+
+    /* Ok, now overwrite version info in the file to a version number way in the
+       future and test again */
+    DBSetAllowOverwrites(1);
+    i = 5;
+    DBWrite(dbfile, SILO_VSTRING_NAME, "99.9", &i, 1, DB_CHAR);
+    DBClose(dbfile);
+    DBSetAllowOverwrites(0);
+
+    dbfile = DBOpen(filename, driver, DB_READ);
+    if (dbfile == 0)
+    {
+        fprintf(stderr, "Could not open file.\n");
+        return 1;
+    }
+    if (DBVersionGEFileVersion(dbfile))
+    {
+        fprintf(stderr, "Error comparing library version to FUTURE file version.\n");
+        return 1;
+    }
+    DBClose(dbfile);
+
     CleanupDriverStuff();
     return 0;
 }
diff --git a/tests/wave.c b/tests/wave.c
index 6f99d3f..bfe85c7 100644
--- a/tests/wave.c
+++ b/tests/wave.c
@@ -184,8 +184,8 @@ SWriteFile(double time, int cycle, int driver)
     DBAddOption(optList, DBOPT_DTIME, &time);
     DBAddOption(optList, DBOPT_CYCLE, &cycle);
     
-    DBPutQuadmesh(dbfile, "quadmesh", coordnames, coords, dims, ndims,
-                  DB_FLOAT, DB_NONCOLLINEAR, optList);
+    DBPutQuadmesh(dbfile, "quadmesh", (DBCAS_t) coordnames,
+         coords, dims, ndims, DB_FLOAT, DB_NONCOLLINEAR, optList);
 
     DBPutQuadvar1(dbfile, "pressure", "quadmesh", var, dims, ndims, NULL,
                   0, DB_FLOAT, DB_NODECENT, optList);
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 04ce234..6c06870 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -53,9 +53,9 @@
 ## Procss this file with automake to create Makefile.in
 
 
-TOOLS_DIR =
+TOOLS_DIR = silock
 if BROWSER_NEEDED
-TOOLS_DIR += browser silock
+TOOLS_DIR += browser
 endif
 if PYTHON_NEEDED
 TOOLS_DIR += python
@@ -63,6 +63,9 @@ endif
 if SILEX_NEEDED
 TOOLS_DIR += silex
 endif
+if JSON_NEEDED
+TOOLS_DIR += json
+endif
 SUBDIRS = \
  . \
  $(TOOLS_DIR)
@@ -71,4 +74,6 @@ DIST_SUBDIRS = \
  browser \
  python \
  silex \
- silock
+ silock \
+ mapred \
+ json
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 1649903..c3c17d5 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -86,9 +86,10 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
- at BROWSER_NEEDED_TRUE@am__append_1 = browser silock
+ at BROWSER_NEEDED_TRUE@am__append_1 = browser
 @PYTHON_NEEDED_TRUE at am__append_2 = python
 @SILEX_NEEDED_TRUE at am__append_3 = silex
+ at JSON_NEEDED_TRUE@am__append_4 = json
 subdir = tools
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -199,6 +200,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -247,9 +249,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -323,7 +322,8 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-TOOLS_DIR = $(am__append_1) $(am__append_2) $(am__append_3)
+TOOLS_DIR = silock $(am__append_1) $(am__append_2) $(am__append_3) \
+	$(am__append_4)
 SUBDIRS = \
  . \
  $(TOOLS_DIR)
@@ -333,7 +333,9 @@ DIST_SUBDIRS = \
  browser \
  python \
  silex \
- silock
+ silock \
+ mapred \
+ json
 
 all: all-recursive
 
diff --git a/tools/browser/Makefile.am b/tools/browser/Makefile.am
index 8ef05f1..575fa51 100644
--- a/tools/browser/Makefile.am
+++ b/tools/browser/Makefile.am
@@ -81,12 +81,16 @@ endif
 else
   browser_LDADD = ../../src/libsilo.la
 endif
+if JSON_NEEDED
+  browser_LDADD += ../json/json-c-0.10/libjson.la
+endif
 browser_LDADD += $(READLINE_LIBS)
 info_TEXINFOS = browser.texi
 AM_MAKEINFOHTMLFLAGS = --no-split
 
 AM_CPPFLAGS = \
  -I$(top_builddir)/src/silo \
+ -I$(top_srcdir)/src/silo \
  -I$(top_srcdir)/src/filters \
  -I$(includedir) \
  -DPUBLIC_INIT_FILE=\"$(includedir)/browser_rc\" \
diff --git a/tools/browser/Makefile.in b/tools/browser/Makefile.in
index 7f6ed8a..cc49b0e 100644
--- a/tools/browser/Makefile.in
+++ b/tools/browser/Makefile.in
@@ -90,6 +90,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 bin_PROGRAMS = browser$(EXEEXT)
+ at JSON_NEEDED_TRUE@am__append_1 = ../json/json-c-0.10/libjson.la
 subdir = tools/browser
 DIST_COMMON = $(dist_bin_SCRIPTS) $(noinst_HEADERS) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -120,9 +121,9 @@ am_browser_OBJECTS = $(am__objects_1)
 browser_OBJECTS = $(am_browser_OBJECTS)
 am__DEPENDENCIES_1 =
 @HDF5_DRV_NEEDED_FALSE at browser_DEPENDENCIES = ../../src/libsilo.la \
- at HDF5_DRV_NEEDED_FALSE@	$(am__DEPENDENCIES_1)
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1) $(am__DEPENDENCIES_1)
 @HDF5_DRV_NEEDED_TRUE at browser_DEPENDENCIES = ../../src/libsiloh5.la \
- at HDF5_DRV_NEEDED_TRUE@	$(am__DEPENDENCIES_1)
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1) $(am__DEPENDENCIES_1)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -235,6 +236,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -283,9 +285,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -367,13 +366,14 @@ browser_SOURCES = $(FILES)
 @FPZIP_NEEDED_TRUE@@HDF5_DRV_NEEDED_TRUE at nodist_EXTRA_browser_SOURCES = dummy.cxx
 @HDF5_DRV_NEEDED_TRUE@@HZIP_NEEDED_TRUE at nodist_EXTRA_browser_SOURCES = dummy.cxx
 @HDF5_DRV_NEEDED_FALSE at browser_LDADD = ../../src/libsilo.la \
- at HDF5_DRV_NEEDED_FALSE@	$(READLINE_LIBS)
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1) $(READLINE_LIBS)
 @HDF5_DRV_NEEDED_TRUE at browser_LDADD = ../../src/libsiloh5.la \
- at HDF5_DRV_NEEDED_TRUE@	$(READLINE_LIBS)
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1) $(READLINE_LIBS)
 info_TEXINFOS = browser.texi
 AM_MAKEINFOHTMLFLAGS = --no-split
 AM_CPPFLAGS = \
  -I$(top_builddir)/src/silo \
+ -I$(top_srcdir)/src/silo \
  -I$(top_srcdir)/src/filters \
  -I$(includedir) \
  -DPUBLIC_INIT_FILE=\"$(includedir)/browser_rc\" \
diff --git a/tools/browser/array.c b/tools/browser/array.c
index cb4b55c..ee635f2 100644
--- a/tools/browser/array.c
+++ b/tools/browser/array.c
@@ -112,7 +112,12 @@ typedef struct obj_ary_t {
                                  * sentinal, N, where N comes from
                                  * `(array "SH5 N, ...)' 
                                  */
-#define ARY_NSH         6       /*THIS MUST BE LAST!                    */
+#define ARY_SH_6        6       /* Array dimension determined by adding next
+                                 * argument to each of the specified dimension
+                                 * sizes as in `(array SH6 -1, self.dims)'
+                                 */
+                                    
+#define ARY_NSH         7       /*THIS MUST BE LAST!                    */
 
 static int      SHFlagsEncountered[ARY_NSH];
 
@@ -155,10 +160,10 @@ int             AryNProcessed;          /*num args used by ary_deref()  */
 class_t
 ary_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("ARRAY");
-   cls->new = ary_new;
+   cls->newobj = ary_new;
    cls->copy = ary_copy;
    cls->dest = ary_dest;
    cls->apply = ary_apply;
@@ -198,7 +203,7 @@ ary_class (void) {
 static obj_t
 ary_new (va_list ap) {
 
-   obj_ary_t    *self = calloc (1, sizeof(obj_ary_t));
+   obj_ary_t    *self = (obj_ary_t*)calloc (1, sizeof(obj_ary_t));
    char         *s;
 
    assert (self);
@@ -243,7 +248,7 @@ ary_copy (obj_t _self, int flag) {
       retval = self;
 
    } else {
-      retval = calloc (1, sizeof(obj_ary_t));
+      retval = (obj_ary_t*)calloc (1, sizeof(obj_ary_t));
       retval->ascii_dims = safe_strdup (self->ascii_dims);
       retval->byte_offset = self->byte_offset;
       retval->ndims = self->ndims;
@@ -493,7 +498,7 @@ ary_walk1 (obj_t _self, void *mem, int operation, walk_t *wdata) {
    if ((nbytes=obj_sizeof(self->sub))<=0) {
       /* Total hack to make SH5 case work */
       if (ARY_SH_5==self->special_handling) {
-          nbytes=sizeof(int);
+          nbytes=sizeof(void*);
       } else {
           out_error ("unable to determine size of: ", self->sub);
           return;
@@ -593,24 +598,12 @@ ary_walk1 (obj_t _self, void *mem, int operation, walk_t *wdata) {
       if (wdata->nvals<0) return ;      /*error already detected*/
       if (wdata->vals == 0)
       {
-          /* Total hack to make SH5 case work */
-          wdata->vals = (int *) malloc(10*sizeof(int));
-          wdata->nvals = 0;
-          wdata->maxvals = 10;
+          int sentinel = wdata->maxvals;
+          void **memtmp = (void**) mem;
           i = 0;
-          while (1)
-          {
-              if (wdata->nvals == wdata->maxvals)
-              {
-                  wdata->maxvals *= 1.5;
-                  wdata->vals = (int *) realloc(wdata->vals, wdata->maxvals*sizeof(int));
-              }
-              wdata->vals[i] = *((int*)((char*)mem+i*nbytes));
-              wdata->nvals++;
-              if (wdata->vals[i] == -1)
-                  break;
+          while ((void*) sentinel != memtmp[i])
               i++;
-          }
+          wdata->nvals = i;
       }
       else
       {
@@ -1310,7 +1303,7 @@ ary_bind (obj_t _self, void *mem) {
 
    obj_ary_t    *self = MYCLASS(_self);
    char         *s, *t, *rest, buf[1024];
-   int          i, n, dim[NDIMS], max_dim0=0, sentinel;
+   int          i, n, dim[NDIMS], max_dim0=0, sentinel=0, dimadd=0;
    lex_t        *lex_input=NULL;
    obj_t        in=NIL, sdo=NIL;
    walk_t       wdata;
@@ -1370,7 +1363,10 @@ ary_bind (obj_t _self, void *mem) {
             max_dim0 = strtol (rest, &rest, 0);
          } else if (ARY_SH_5==self->special_handling) {
             sentinel = strtol (rest, &rest, 0);
-            self->ndims = 1;
+             self->ndims = 1;
+         } else if (ARY_SH_6==self->special_handling) {
+            self->special_handling = 0; /*completely handled here*/
+            dimadd = strtol (rest, &rest, 0);
          }
          assert (!rest || !*rest);
 
@@ -1413,16 +1409,18 @@ ary_bind (obj_t _self, void *mem) {
          {
              wdata.vals = 0;
              wdata.nvals = 0;
-             wdata.maxvals = 0;
+             wdata.maxvals = sentinel;
              obj_walk1 (sdo, NULL, WALK_RETRIEVE, &wdata);
-             if (wdata.nvals<1) {
-                out_errorn ("array dimension has no value: %s", t);
+             if (wdata.nvals<1)
+             {
                 self->ndims = 0;
-                goto error;
+             }
+             else
+             {
+                 self->ndims = 1;
+                 self->dim[0] = wdata.nvals;
              }
              sdo = obj_dest (sdo);
-             self->ndims = 1;
-             self->dim[0] = wdata.nvals;
          }
          else
          {
@@ -1430,7 +1428,7 @@ ary_bind (obj_t _self, void *mem) {
              wdata.nvals = 0;
              wdata.maxvals = NELMTS(dim);
              obj_walk1 (sdo, NULL, WALK_RETRIEVE, &wdata);
-             if (wdata.nvals<1) {
+             if (wdata.nvals<0) {
                 out_errorn ("array dimension has no value: %s", t);
                 self->ndims = 0;
                 goto error;
@@ -1441,11 +1439,11 @@ ary_bind (obj_t _self, void *mem) {
                    out_errorn ("too many dimensions in array type");
                    goto error;
                 }
-                self->dim[self->ndims] = n = wdata.vals[i];
+                self->dim[self->ndims] = n = wdata.vals[i] + dimadd;
                 self->ndims += 1;
-                if (n<0) {
-                   out_errorn ("dimension %d is invalid: %d",
-                               self->ndims, n);
+                if (n<0 && !(wdata.vals[i]==0 && dimadd==-1)) {
+                   out_errorn ("dimension %d is invalid: %d (%s)",
+                               self->ndims, n, t);
                    goto error;
                 }
              }
diff --git a/tools/browser/bif.c b/tools/browser/bif.c
index 61980a4..53b8cb7 100644
--- a/tools/browser/bif.c
+++ b/tools/browser/bif.c
@@ -104,10 +104,10 @@ static obj_t    bif_apply (obj_t,obj_t);
 class_t
 bif_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("BIF");
-   cls->new = bif_new;
+   cls->newobj = bif_new;
    cls->apply = bif_apply;
    cls->dest = NULL;
    cls->copy = NULL;
@@ -137,7 +137,7 @@ bif_class (void) {
 static obj_t
 bif_new (va_list ap) {
 
-   obj_bif_t    *self = calloc (1, sizeof(obj_bif_t));
+   obj_bif_t    *self = (obj_bif_t *)calloc (1, sizeof(obj_bif_t));
    int          flags ; 
 
    assert (self);
diff --git a/tools/browser/browser.c b/tools/browser/browser.c
index 66241c7..08fba8a 100644
--- a/tools/browser/browser.c
+++ b/tools/browser/browser.c
@@ -296,7 +296,7 @@ browser_DBGetToc (DBfile *file, int *nentries, int (*sorter)(toc_t*,toc_t*)) {
            toc->nobj + toc->ndir + toc->narray + toc->ndefvars +
            toc->ncsgmesh + toc->ncsgvar + toc->nmultimeshadj +
            toc->nmrgtree + toc->ngroupelmap + toc->nmrgvar;
-   if (total) retval = malloc (total * sizeof(toc_t));
+   if (total) retval = (toc_t *)malloc (total * sizeof(toc_t));
 
    /*
     * Load the various types of objects into the new structure.
@@ -462,7 +462,7 @@ browser_DBGetToc (DBfile *file, int *nentries, int (*sorter)(toc_t*,toc_t*)) {
  */
 #if defined(HAVE_READLINE_READLINE_H) && defined(HAVE_LIBREADLINE)
 static char *
-browser_rl_obj_generator (char *text, int state) {
+browser_rl_obj_generator (char const *text, int state) {
 
    obj_t        f1, val;
    int          i, n;
@@ -602,67 +602,9 @@ browser_rl_obj_generator (char *text, int state) {
  * Made reltol_eps diff mutually exclusive with abstol || reltol diff.
  *-------------------------------------------------------------------------
  */
-int
-different (double a, double b, double abstol, double reltol,
-    double reltol_eps) {
-
-   double       num, den;
-
-   /*
-    * First, see if we should use the alternate diff.
-    * check |A-B|/(|A|+|B|+EPS) in a way that won't overflow.
-    */
-   if (reltol_eps >= 0 && reltol > 0)
-   {
-      if ((a<0 && b>0) || (b<0 && a>0)) {
-         num = fabs (a/2 - b/2);
-         den = fabs (a/2) + fabs(b/2) + reltol_eps/2;
-         reltol /= 2;
-      } else {
-         num = fabs (a - b);
-         den = fabs (a) + fabs(b) + reltol_eps;
-      }
-      if (0.0==den && num) return 1;
-      if (num/den > reltol) return 1;
-      return 0;
-   }
-   else /* use the old Abs|Rel difference test */
-   {
-      /*
-       * Now the |A-B| but make sure it doesn't overflow which can only
-       * happen if one is negative and the other is positive.
-       */
-      if (abstol>0) {
-         if ((a<0 && b>0) || (b<0 && a>0)) {
-            if (fabs (a/2 - b/2) > abstol/2) return 1;
-         } else {
-            if (fabs(a-b) > abstol) return 1;
-         }
-      }
-
-      /*
-       * Now check 2|A-B|/|A+B| in a way that won't overflow.
-       */
-      if (reltol>0) {
-         if ((a<0 && b>0) || (b<0 && a>0)) {
-            num = fabs (a/2 - b/2);
-            den = fabs (a/2 + b/2);
-            reltol /= 2;
-         } else {
-            num = fabs (a - b);
-            den = fabs (a/2 + b/2);
-         }
-         if (0.0==den && num) return 1;
-         if (num/den > reltol) return 1;
-      }
-
-      if (abstol>0 || reltol>0) return 0;
-   }
-
-   /*
-    * Otherwise do a normal exact comparison.
-    */
-   return a!=b;
+int different (double a, double b, double abstol, double reltol, double reltol_eps)
+{
+    return DBIsDifferentDouble(a,b,abstol,reltol,reltol_eps);
 }
 
 /*-------------------------------------------------------------------------
@@ -682,68 +624,9 @@ different (double a, double b, double abstol, double reltol,
  *   Made it compiled UNconditionally.
  *-------------------------------------------------------------------------
  */
-#define FABS(A) ((A)<0?-(A):(A))
-int
-differentll (long long a, long long b, double abstol, double reltol,
-    double reltol_eps) {
-
-   long long num, den;
-
-   /*
-    * First, see if we should use the alternate diff.
-    * check |A-B|/(|A|+|B|+EPS) in a way that won't overflow.
-    */
-   if (reltol_eps >= 0 && reltol > 0)
-   {
-      if ((a<0 && b>0) || (b<0 && a>0)) {
-         num = FABS (a/2 - b/2);
-         den = FABS (a/2) + FABS(b/2) + reltol_eps/2;
-         reltol /= 2;
-      } else {
-         num = FABS (a - b);
-         den = FABS (a) + FABS(b) + reltol_eps;
-      }
-      if (0.0==den && num) return 1;
-      if (num/den > reltol) return 1;
-      return 0;
-   }
-   else
-   {
-      /*
-       * Now the |A-B| but make sure it doesn't overflow which can only
-       * happen if one is negative and the other is positive.
-       */
-      if (abstol>0) {
-         if ((a<0 && b>0) || (b<0 && a>0)) {
-            if (FABS(a/2 - b/2) > abstol/2) return 1;
-         } else {
-            if (FABS(a-b) > abstol) return 1;
-         }
-      }
-
-      /*
-       * Now check 2|A-B|/|A+B| in a way that won't overflow.
-       */
-      if (reltol>0) {
-         if ((a<0 && b>0) || (b<0 && a>0)) {
-            num = FABS (a/2 - b/2);
-            den = FABS (a/2 + b/2);
-            reltol /= 2;
-         } else {
-            num = FABS (a - b);
-            den = FABS (a/2 + b/2);
-         }
-         if (0.0==den && num) return 1;
-         if (num/den > reltol) return 1;
-
-         if (abstol>0 || reltol>0) return 0;
-      }
-   }
-
-   /*
-    * Otherwise do a normal exact comparison.
-    */
-   return a!=b;
+int differentll (long long a, long long b, double abstol, double reltol, double reltol_eps)
+{
+    return DBIsDifferentLongLong(a,b,abstol,reltol,reltol_eps);
 }
 
 /*-------------------------------------------------------------------------
@@ -1229,9 +1112,9 @@ process_switches(switches_t *switches, int pass)
         sym_bi_set("lowlevel", sw->lexeme, NULL, NULL);
     }
     
-    if ((sw=switch_find(switches, "--rdonly")) && sw->seen) {
+    if ((sw=switch_find(switches, "--writeable")) && sw->seen) {
         sprintf(tmp, "%d", sw->value.d); /*boolean*/
-        sym_bi_set("rdonly", tmp, NULL, NULL);
+        sym_bi_set("writeable", tmp, NULL, NULL);
     }
 
     if ((sw=switch_find(switches, "--single")) && sw->seen) {
@@ -1429,7 +1312,15 @@ main(int argc, char *argv[])
     /* We have our own readline completion function that tries to complete
      * object names instead of the standard completion function that tries
      * to complete file names. */
-    rl_completion_entry_function = (char *(*)(const char *, int)) browser_rl_obj_generator;
+#ifdef RL_READLINE_VERSION
+#   if RL_READLINE_VERSION >= 0x602
+        rl_completion_entry_function = (rl_compentry_func_t *) browser_rl_obj_generator;
+#   else
+        rl_completion_entry_function = (Function *) browser_rl_obj_generator;
+#   endif
+#else
+    rl_completion_entry_function = browser_rl_obj_generator;
+#endif
 #endif /*HAVE_READLINE_READLINE_H && HAVE_LIBREADLINE*/
 
 #if defined(HAVE_READLINE_HISTORY_H) && defined(HAVE_READLINE_HISTORY)
@@ -1503,7 +1394,7 @@ main(int argc, char *argv[])
         if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL,
                                   SHGFP_TYPE_CURRENT, szPath)))
         {
-            ExpandEnvironmentStrings(userhome, szPath, 1024);
+            ExpandEnvironmentStrings((LPCWSTR)userhome, szPath, 1024);
             sprintf(init_file_buf, "%s\\%s", userhome, INIT_FILE);
             if (access(init_file_buf, F_OK)>=0) init_file = init_file_buf;
         }
@@ -1629,11 +1520,11 @@ main(int argc, char *argv[])
                "displayed with a type-dependent printf(3C) format string "
                "which is user defined (e.g., `$fmt_int').");
 
-    switch_add(sws, "-r", "--rdonly",   "b=1",          NULL);
+    switch_add(sws, "-W", "--writeable",   "b=1",          NULL);
     switch_doc(NULL,
-               "If this switch is specified then all files will be open in "
-               "read-only mode regardless of their permissions. This switch "
-               "sets the $rdonly variable.");
+               "If this switch is specified then all files will be open with "
+               "write permission if the file permissions allow it. This switch "
+               "sets the $writeable variable.");
 
     switch_add(sws, "-s", "--single",   "b=1",          NULL);
     switch_doc(NULL,
diff --git a/tools/browser/browser.h b/tools/browser/browser.h
index 47341be..9e12bd8 100644
--- a/tools/browser/browser.h
+++ b/tools/browser/browser.h
@@ -146,13 +146,17 @@ be used for advertising or product endorsement purposes.
 #define DEEP            1
 #define NIL             ((obj_t)0)
 #define NDIMS           10
+#ifndef NELEMTS
 #define NELMTS(X)       (sizeof(X)/sizeof(*(X)))
-
-#ifndef _WIN32
-char *safe_strdup(const char *);
 #endif
+
+//#ifndef _WIN32
+//extern char *_db_safe_strdup(const char *);
+//#endif
 #undef strdup
-#define strdup(s) safe_strdup(s)
+#undef safe_strdup
+#define strdup(s) _db_safe_strdup(s)
+#define safe_strdup(s) _db_safe_strdup(s)
 
 /*
  * The Makefile can override these constants.
@@ -227,14 +231,8 @@ typedef struct walk_t {
 
 } walk_t;
 
-/*
- * I/O association tables map integer values to string constants and
- * vice versa.
- */
-#define NASSOCS         32
-
 typedef struct prim_assoc_t {
-   int          n ;                     /*integer part                  */
+   double        n ;                    /*double part                  */
    char         *s ;                    /*string part                   */
 } prim_assoc_t;
 
@@ -243,7 +241,7 @@ typedef struct prim_assoc_t {
  */
 struct class_t {
    char                 *name ;                 /*class name            */
-   obj_t                (*new)(va_list);        /*constructor           */
+   obj_t                (*newobj)(va_list);        /*constructor           */
    obj_t                (*dest)(obj_t);         /*destructor            */
    obj_t                (*copy)(obj_t,int);     /*copy constructor      */
    void                 (*print)(obj_t,struct out_t*);  /*print object  */
@@ -499,7 +497,7 @@ obj_t cons_tail (obj_t);
 
 /*** file.c ***/
 DBfile *file_file (obj_t);
-int file_rdonly (obj_t);
+int file_writeable (obj_t);
 
 /*** func.c ***/
 extern diffopt_t DiffOpt;
@@ -634,6 +632,8 @@ extern prim_assoc_t PA_BOUNDARYTYPE[];
 extern prim_assoc_t PA_REGIONOP[];
 extern prim_assoc_t PA_TOPODIM[];
 extern prim_assoc_t PA_REPRBLOCK[];
+extern prim_assoc_t PA_MISSING_VALUE[];
+extern prim_assoc_t PA_ZONETYPE[];
 
 obj_t prim_set_io_assoc (obj_t, prim_assoc_t*);
 DBdatatype prim_silotype (obj_t);
diff --git a/tools/browser/cons.c b/tools/browser/cons.c
index a3f1c9e..a99aa9a 100644
--- a/tools/browser/cons.c
+++ b/tools/browser/cons.c
@@ -104,10 +104,10 @@ static obj_t    cons_deref(obj_t, int, obj_t*);
 class_t
 cons_class (void)
 {
-    class_t     cls = calloc(1, sizeof(*cls));
+    class_t     cls = (class_t)calloc(1, sizeof(*cls));
 
     cls->name = safe_strdup("CONS");
-    cls->new = cons_new;
+    cls->newobj = cons_new;
     cls->dest = cons_dest;
     cls->copy = cons_copy;
     cls->print = cons_print;
@@ -138,7 +138,7 @@ cons_class (void)
 static obj_t
 cons_new (va_list ap) {
 
-   obj_cons_t   *self = calloc (1, sizeof(obj_cons_t));
+   obj_cons_t   *self = (obj_cons_t *)calloc (1, sizeof(obj_cons_t));
 
    assert (self);
    self->head = va_arg (ap, obj_t);
diff --git a/tools/browser/file.c b/tools/browser/file.c
index fb7e6da..6b006d2 100644
--- a/tools/browser/file.c
+++ b/tools/browser/file.c
@@ -63,16 +63,16 @@ be used for advertising or product endorsement purposes.
  *
  *-------------------------------------------------------------------------
  */
+#include <config.h>     /*Silo configuration record*/
 #include <assert.h>
 #include <browser.h>
+#include <errno.h>
 #ifdef HAVE_FNMATCH_H
 #  include <fnmatch.h>
 #endif
-
-#include <config.h>     /*Silo configuration record*/
+#include <math.h>
 #include <stdio.h>
 #include <string.h>
-#include <errno.h>
 
 #define CHECK_SYMBOL(A)  if (!strncmp(str, #A, strlen(str))) return A
 
@@ -183,13 +183,15 @@ static int StringToOptval(const char *str)
     CHECK_SYMBOL(DB_H5VFD_MPIO);
     CHECK_SYMBOL(DB_H5VFD_MPIP);
     CHECK_SYMBOL(DB_H5VFD_SILO);
+
+    return DB_PDB;
 }
 
 #define MYCLASS(X)      ((obj_file_t*)(X))
 
 typedef struct obj_file_t {
    obj_pub_t    pub;
-   int          rdonly;
+   int          writeable;
    char         *name;
    DBfile       *f;
 } obj_file_t;
@@ -226,10 +228,10 @@ static int      file_diff (obj_t, obj_t);
 class_t
 file_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("FILE");
-   cls->new = file_new;
+   cls->newobj = file_new;
    cls->dest = file_dest;
    cls->copy = NULL;
    cls->print = file_print;
@@ -400,12 +402,12 @@ file_new (va_list ap)
    obj_file_t   *self;
    char         *fname=NULL;
    DBfile       *f;
-   int          rdonly;
+   int          writeable;
    int          old_err_level;
    static int   seen_file_format = -1;
 
    fname = va_arg (ap, char*);
-   rdonly = va_arg (ap, int);
+   writeable = va_arg (ap, int);
 
    /* reset hdf5 vfd options (whether the are used or not) */
    file_reset_hdf5_vfd_options();
@@ -415,13 +417,13 @@ file_new (va_list ap)
     * permission then try opening it for read-only
     */
 #define DEFAULT_DB_TYPE DB_UNKNOWN 
-   f = DBOpen (fname, DEFAULT_DB_TYPE, rdonly ? DB_READ : DB_APPEND);
-   if (!f && E_FILENOWRITE==db_errno && !rdonly) {
+   f = DBOpen (fname, DEFAULT_DB_TYPE, writeable ? DB_APPEND : DB_READ);
+   if (!f && E_FILENOWRITE==db_errno && writeable) {
       f = DBOpen (fname, DEFAULT_DB_TYPE, DB_READ);
       if (f) {
          out_info ("file opened, but without write permission");
       }
-      rdonly = true;
+      writeable = false;
    }
 
    /*
@@ -432,7 +434,7 @@ file_new (va_list ap)
    if (!f && E_NOTFILTER==db_errno) {
       old_err_level = DBErrlvl();
       DBShowErrors(DB_ALL, NULL);
-      f = DBOpen (fname, DEFAULT_DB_TYPE, rdonly ? DB_READ : DB_APPEND);
+      f = DBOpen (fname, DEFAULT_DB_TYPE, writeable ? DB_APPEND : DB_READ);
       DBShowErrors(old_err_level, NULL);
    }
 
@@ -441,10 +443,10 @@ file_new (va_list ap)
    }
 
    if (!f) return NIL ; /*error already printed*/
-   self = calloc (1, sizeof(obj_file_t));
+   self = (obj_file_t *)calloc (1, sizeof(obj_file_t));
    self->name = safe_strdup (fname);
    self->f = f;
-   self->rdonly = rdonly;
+   self->writeable = writeable;
 
    /* If we see any file which is not PDB then turn off the `$lowlevel'
     * flag for fear of the caller attempting a `diff' operation across
@@ -524,7 +526,7 @@ file_print (obj_t _self, out_t *f) {
    char         cwd[1024];
 
    if (DBGetDir (self->f, cwd)<0) strcpy (cwd, "???");
-   out_printf (f, "%s%s:%s", self->name, self->rdonly?"[RDONLY]":"", cwd);
+   out_printf (f, "%s%s:%s", self->name, self->writeable?"[WRITEABLE]":"", cwd);
 }
 
 
@@ -598,7 +600,7 @@ fix_objdups(DBobject *obj)
     int         i, j, occur;
     
     if (!obj) return NULL;
-    new_names = calloc(obj->ncomponents, sizeof(char*));
+    new_names = (char **)calloc(obj->ncomponents, sizeof(char*));
 
     /* Look for duplicates and generate new names */
     for (i=1; i<obj->ncomponents; i++) {
@@ -615,7 +617,7 @@ fix_objdups(DBobject *obj)
             } else {
                 sprintf(suffix, " [%dth occurrence]", occur);
             }
-            new_names[i] = malloc(strlen(obj->comp_names[i])+strlen(suffix)+1);
+            new_names[i] = (char *)malloc(strlen(obj->comp_names[i])+strlen(suffix)+1);
             strcpy(new_names[i], obj->comp_names[i]);
             strcat(new_names[i], suffix);
         }
@@ -734,11 +736,11 @@ browser_DBGetObject (DBfile *file, char *name, obj_t *type_ptr)
      * fields (four pointers and an integer) are properly aligned when packed.
      */
     assert(sizeof(char*)==sizeof(void*));
-    b_obj = malloc (need);
+    b_obj = (char *)malloc (need);
     *((DBobject**)b_obj) = obj;
     *((char**)(b_obj+sizeof(void*))) = obj->name;
     *((char**)(b_obj+2*sizeof(void*))) = obj->type;
-    flags = calloc (obj->ncomponents, sizeof(int));
+    flags = (int *)calloc (obj->ncomponents, sizeof(int));
     *((int**)(b_obj+3*sizeof(void*))) = flags;
     *((int*)(b_obj+4*sizeof(void*))) = obj->ncomponents;
     offset = 4 * sizeof(void*) + sizeof(int);
@@ -857,7 +859,7 @@ browser_DBSaveObject (obj_t _self, char *unused, void *mem, obj_t type) {
    double       d;
    obj_t        comp_name;
 
-   if (self->rdonly) {
+   if (!self->writeable) {
       out_errorn ("file `%s' is read-only", self->name);
       return -1;
    }
@@ -905,7 +907,7 @@ browser_DBSaveObject (obj_t _self, char *unused, void *mem, obj_t type) {
          s = *((char**)(b_obj+offset));
          if (strncmp(obj->pdb_names[i]+4, s, strlen(s))) {
             free (obj->pdb_names[i]);
-            obj->pdb_names[i] = malloc (strlen(s)+5);
+            obj->pdb_names[i] = (char *)malloc (strlen(s)+5);
             strcpy (obj->pdb_names[i], "'<s>");
             strcpy (obj->pdb_names[i]+4, s);
             nchanges++;
@@ -926,24 +928,6 @@ browser_DBSaveObject (obj_t _self, char *unused, void *mem, obj_t type) {
 
 
 /*-------------------------------------------------------------------------
- * Function:    browser_DBGetMultimeshadj
- *
- * Purpose:     Deal with non-standard get-API for DBmultimeshadj objects 
- *
- * Return:      DBmultimeshadj 
- *
- * Programmer:  Mark C. Miller 
- *              August 24, 2005
- *
- *-------------------------------------------------------------------------
- */
-static DBmultimeshadj*
-browser_DBGetMultimeshadj(DBfile *file, char *name)
-{
-    return DBGetMultimeshadj(file, name, 0, NULL);
-}
-
-/*-------------------------------------------------------------------------
  * Function:    browser_DBFreeObject
  *
  * Purpose:     Frees a modified SILO DBobject which was created with the
@@ -988,6 +972,333 @@ browser_DBFreeObject (void *mem, obj_t type) {
    DBFreeObject (obj);
 }
 
+/*-------------------------------------------------------------------------
+ * Function:    browser_DBGetMultimeshadj
+ *
+ * Purpose:     Deal with non-standard get-API for DBmultimeshadj objects 
+ *
+ * Return:      DBmultimeshadj 
+ *
+ * Programmer:  Mark C. Miller 
+ *              August 24, 2005
+ *
+ *-------------------------------------------------------------------------
+ */
+static void*
+browser_DBGetMultimeshadj(DBfile *file, char *name, obj_t *type_ptr)
+{
+   DBmultimeshadj       *mmadj;
+   char                 **b_mmadj;
+   char                 buf[64], fmt[64];
+   int                  i, nbytes, digits;
+   obj_t                type=NIL, tmp=NIL;
+
+   /*
+    * Read the multimeshadj and create a browser multimeshadj.  The
+    * first entry in the browser multimeshadj points to the beginning
+    * of the silo multimeshadj so we can free it later.
+    */
+   mmadj = DBGetMultimeshadj(file, name, -1, 0);
+   if (!mmadj) return NULL;
+
+   b_mmadj = (char **)calloc (2*(mmadj->lneighbors)+11, sizeof(char*));
+   type = obj_new (C_STC, NULL, NULL);
+   b_mmadj[0] = (char*)mmadj;
+
+   /*
+    * The browser multimeshadj should point to the silo multimeshadj 
+    * fields so that modifying the browser object actually modifies the
+    * silo object.
+    */
+   b_mmadj[1] = (char*)&(mmadj->nblocks);
+   stc_add (type, obj_new(C_PTR, obj_new(C_PRIM, "int")),
+            1*sizeof(char*), "nblocks");
+
+   b_mmadj[2] = (char*)&(mmadj->blockorigin);
+   stc_add (type, obj_new(C_PTR, obj_new(C_PRIM, "int")),
+            2*sizeof(char*), "blockorigin");
+
+   tmp = obj_new (C_PRIM, "int");
+   prim_set_io_assoc (tmp, PA_OBJTYPE);
+   obj_bind (tmp, NULL);
+   b_mmadj[3] = (char*)mmadj->meshtypes;
+   sprintf (buf, "%d", mmadj->nblocks);
+   stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            3*sizeof(char*), "meshtypes");
+   tmp = NIL;
+
+   tmp = obj_new (C_PRIM, "int");
+   obj_bind (tmp, NULL);
+   b_mmadj[4] = (char*)mmadj->nneighbors;
+   sprintf (buf, "%d", mmadj->nblocks);
+   stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            4*sizeof(char*), "nneighbors");
+   tmp = NIL;
+
+   b_mmadj[5] = (char*)&(mmadj->lneighbors);
+   stc_add (type, obj_new(C_PTR, obj_new(C_PRIM, "int")),
+            5*sizeof(char*), "lneighbors");
+
+   tmp = obj_new (C_PRIM, "int");
+   obj_bind (tmp, NULL);
+   b_mmadj[6] = (char*)mmadj->neighbors;
+   sprintf (buf, "%d", mmadj->lneighbors);
+   stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            6*sizeof(char*), "neighbors");
+   tmp = NIL;
+
+   if (mmadj->back) {
+       tmp = obj_new (C_PRIM, "int");
+       obj_bind (tmp, NULL);
+       b_mmadj[7] = (char*)mmadj->back;
+       sprintf (buf, "%d", mmadj->lneighbors);
+       stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            7*sizeof(char*), "back");
+       tmp = NIL;
+   }
+
+   b_mmadj[8] = (char*)&(mmadj->totlnodelists);
+   stc_add (type, obj_new(C_PTR, obj_new(C_PRIM, "int")),
+            8*sizeof(char*), "totlnodelists");
+
+   if (mmadj->lnodelists) {
+       tmp = obj_new (C_PRIM, "int");
+       obj_bind (tmp, NULL);
+       b_mmadj[9] = (char*)mmadj->lnodelists;
+       sprintf (buf, "%d", mmadj->lneighbors);
+       stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            9*sizeof(char*), "lnodelists");
+       tmp = NIL;
+   }
+
+   b_mmadj[10] = (char*)&(mmadj->totlzonelists);
+   stc_add (type, obj_new(C_PTR, obj_new(C_PRIM, "int")),
+            10*sizeof(char*), "totlzonelists");
+
+   if (mmadj->zonelists) {
+       tmp = obj_new (C_PRIM, "int");
+       obj_bind (tmp, NULL);
+       b_mmadj[11] = (char*)mmadj->lzonelists;
+       sprintf (buf, "%d", mmadj->lneighbors);
+       stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            11*sizeof(char*), "lzonelists");
+       tmp = NIL;
+    }
+
+   /*
+    * Create the sub array base type.
+    */
+   sprintf (buf, "%d", DB_INT);
+   tmp = obj_new (C_PRIM, buf);
+   obj_bind (tmp, NULL);
+   nbytes = obj_sizeof(tmp);
+   assert (nbytes>0);
+
+   /*
+    * Create browser entries for each of the sub arrays.
+    */
+   digits = (int) (log10((double)mmadj->lneighbors) + 1);
+   for (i=0; i<mmadj->lneighbors; i++) {
+      char aname[32];
+
+      /* deal with nodelist entry */
+      sprintf(fmt, "nodelist%%0%dd", digits);
+      if (mmadj->nodelists && mmadj->nodelists[i])
+      {
+          b_mmadj[2*i+11] = (char*)(mmadj->nodelists[i]);
+          sprintf (aname, fmt, i);
+          if (1==mmadj->lnodelists[i]) {
+             stc_add (type, obj_new (C_PTR, obj_copy (tmp, SHALLOW)),
+                      (2*i+11)*sizeof(char*), aname);
+          } else {
+             sprintf (buf, "%d", mmadj->lnodelists[i]);
+             stc_add (type, obj_new (C_PTR, obj_new (C_ARY, buf, obj_copy(tmp,SHALLOW))),
+                      (2*i+11)*sizeof(char*), aname);
+          }
+      }
+
+      /* deal with zonelist entry */
+      sprintf(fmt, "zonelist%%0%dd", digits);
+      if (mmadj->zonelists && mmadj->zonelists[i])
+      {
+          b_mmadj[2*i+1+11] = (char*)(mmadj->zonelists[i]);
+          sprintf (aname, fmt, i);
+          if (1==mmadj->lzonelists[i]) {
+             stc_add (type, obj_new (C_PTR, obj_copy (tmp, SHALLOW)),
+                      (2*i+1+11)*sizeof(char*), aname);
+          } else {
+             sprintf (buf, "%d", mmadj->lzonelists[i]);
+             stc_add (type, obj_new (C_PTR, obj_new (C_ARY, buf, obj_copy(tmp,SHALLOW))),
+                      (2*i+1+11)*sizeof(char*), aname);
+          }
+      }
+   }
+
+   /*
+    * Free temp data and return
+    */
+   tmp = obj_dest (tmp);
+   *type_ptr = type;
+   return b_mmadj;
+}
+
+static void
+browser_DBFreeMultimeshadj(void *mem, obj_t type) {
+
+   char                 *b_mmadj = (char*)mem;
+   DBmultimeshadj       *mmadj;
+
+   if (!b_mmadj) return;
+   mmadj = *((DBmultimeshadj**)b_mmadj);
+   if (!mmadj) return;
+   DBFreeMultimeshadj(mmadj);
+}
+
+static void *
+browser_DBGetGroupelmap(DBfile *file, char *name, obj_t *type_ptr) {
+
+   DBgroupelmap         *gm;
+   char                 **b_gm;
+   char                 buf[64], bufi[64], buff[64];
+   int                  i, nbytes;
+   obj_t                type=NIL, tmp=NIL, tmpi=NIL, tmpf=NIL;
+
+   /*
+    * Read the compound array and create a browser compound array.  The
+    * first entry in the browser compound array points to the beginning
+    * of the silo compound array so we can free it later.
+    */
+   gm = DBGetGroupelmap(file, name);
+   if (!gm) return NULL;
+   b_gm = (char **)calloc (2*gm->num_segments+7, sizeof(char*));
+   type = obj_new (C_STC, NULL, NULL);
+   b_gm[0] = (char*)gm;
+
+   /*
+    * The browser compound array should point to the silo compound array
+    * fields so that modifying the browser object actually modifies the
+    * silo object.
+    */
+   b_gm[1] = gm->name;
+   stc_add (type, obj_new(C_PRIM, "string"),
+            1*sizeof(char*), "name");
+
+   b_gm[2] = (char*)&(gm->num_segments);
+   stc_add (type, obj_new(C_PTR, obj_new(C_PRIM, "int")),
+            2*sizeof(char*), "num_segments");
+
+   tmp = obj_new (C_PRIM, "int");
+   prim_set_io_assoc (tmp, PA_CENTERING);
+   obj_bind (tmp, NULL);
+   b_gm[3] = (char*)gm->groupel_types;
+   sprintf (buf, "%d", gm->num_segments);
+   stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            3*sizeof(char*), "groupel_types");
+   tmp = NIL;
+
+   tmp = obj_new (C_PRIM, "int");
+   obj_bind (tmp, NULL);
+   b_gm[4] = (char*)gm->segment_lengths;
+   sprintf (buf, "%d", gm->num_segments);
+   stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            4*sizeof(char*), "segment_lengths");
+   tmp = NIL;
+
+   tmp = obj_new (C_PRIM, "int");
+   obj_bind (tmp, NULL);
+   b_gm[5] = (char*)gm->segment_ids;
+   sprintf (buf, "%d", gm->num_segments);
+   stc_add (type, obj_new(C_PTR, obj_new(C_ARY, buf, obj_copy(tmp,SHALLOW))),
+            5*sizeof(char*), "segment_ids");
+   tmp = NIL;
+
+   b_gm[6] = (char*)&(gm->fracs_data_type);
+   tmp = obj_new (C_PRIM, "int");
+   prim_set_io_assoc (tmp, PA_DATATYPE);
+   stc_add (type, obj_new(C_PTR, tmp), 6*sizeof(char*), "fracs_data_type");
+   tmp = NIL;
+
+   /*
+    * Create the sub array base type for segment_data segments
+    */
+   sprintf (bufi, "%d", DB_INT);
+   tmpi = obj_new (C_PRIM, bufi);
+   obj_bind (tmpi, NULL);
+   nbytes = obj_sizeof(tmpi);
+   assert (nbytes>0);
+
+   /*
+    * Create the sub array base type for segment_fracs segments
+    */
+   if (gm->fracs_data_type)
+   {
+       sprintf (buff, "%d", gm->fracs_data_type);
+       tmpf = obj_new (C_PRIM, buff);
+       obj_bind (tmpf, NULL);
+       nbytes = obj_sizeof(tmpf);
+       assert (nbytes>0);
+   }
+
+   /*
+    * Create browser entries for each of the sub arrays.
+    */
+   for (i=0; i<gm->num_segments; i++) {
+      char aname[32];
+      int segid = gm->segment_ids?gm->segment_ids[i]:i;
+      char *segid_label = gm->segment_ids?"":"(def)";
+
+      /* deal segment_data entry */
+      if (gm->segment_lengths[i] && gm->segment_data[i])
+      {
+          b_gm[2*i+7] = (char*)(gm->segment_data[i]);
+          sprintf (aname, "segdata(id=%05d%s)", segid, segid_label);
+          if (1==gm->segment_lengths[i]) {
+             stc_add (type, obj_new (C_PTR, obj_copy (tmpi, SHALLOW)),
+                      (2*i+7)*sizeof(char*), aname);
+          } else {
+             sprintf (bufi, "%d", gm->segment_lengths[i]);
+             stc_add (type, obj_new (C_PTR, obj_new (C_ARY, bufi, obj_copy(tmpi,SHALLOW))),
+                      (2*i+7)*sizeof(char*), aname);
+          }
+      }
+
+      /* deal with segment_fracs entry */
+      if (gm->segment_fracs && gm->segment_lengths[i] && gm->segment_fracs[i])
+      {
+          b_gm[2*i+1+7] = (char*)(gm->segment_fracs[i]);
+          sprintf (aname, "segfracs(id=%05d%s)", segid, segid_label);
+          if (1==gm->segment_lengths[i]) {
+             stc_add (type, obj_new (C_PTR, obj_copy (tmpf, SHALLOW)),
+                      (2*i+1+7)*sizeof(char*), aname);
+          } else {
+             sprintf (buff, "%d", gm->segment_lengths[i]);
+             stc_add (type, obj_new (C_PTR, obj_new (C_ARY, buff, obj_copy(tmpf,SHALLOW))),
+                      (2*i+1+7)*sizeof(char*), aname);
+          }
+      }
+   }
+
+   /*
+    * Free temp data and return
+    */
+   tmpi = obj_dest (tmpi);
+   if (tmpf) tmpf = obj_dest (tmpf);
+   *type_ptr = type;
+   return b_gm;
+}
+
+/*ARGSUSED*/
+static void
+browser_DBFreeGroupelmap(void *mem, obj_t type) {
+
+   char                 *b_gm = (char*)mem;
+   DBgroupelmap         *gm;
+
+   if (!b_gm) return;
+   gm = *((DBgroupelmap**)b_gm);
+   if (!gm) return;
+   DBFreeGroupelmap (gm);
+}
 
 /*-------------------------------------------------------------------------
  * Function:    browser_DBGetCompoundarray
@@ -1023,7 +1334,7 @@ browser_DBGetCompoundarray (DBfile *file, char *name, obj_t *type_ptr) {
     */
    ca = DBGetCompoundarray (file, name);
    if (!ca) return NULL;
-   b_ca = calloc (ca->nelems+7, sizeof(char*));
+   b_ca = (char **)calloc (ca->nelems+7, sizeof(char*));
    type = obj_new (C_STC, NULL, NULL);
    b_ca[0] = (char*)ca;
 
@@ -1165,10 +1476,10 @@ browser_DBGetDirectory (DBfile *file, char *name)
    toc = browser_DBGetToc (file, &nentries, sort_toc_by_type);
    if (DBSetDir (file, cwd)<0) return NULL;
 
-   dir = calloc (1, sizeof(DBdirectory));
+   dir = (DBdirectory *)calloc (1, sizeof(DBdirectory));
    dir->nsyms = nentries;
    dir->toc = toc;
-   if (nentries) dir->entry_ptr = calloc (nentries, sizeof (toc_t *));
+   if (nentries) dir->entry_ptr = (toc_t **)calloc (nentries, sizeof (toc_t *));
    for (i=0; i<nentries; i++) {
       dir->entry_ptr[i] = dir->toc + i;
    }
@@ -1210,7 +1521,7 @@ browser_DBGetSubarray (DBcompoundarray *ca, int elmtno, obj_t *type_ptr) {
    assert (ca);
    assert (elmtno>=0 && elmtno<ca->nelems);
 
-   b_ca = calloc (2, sizeof(char*));
+   b_ca = (char **)calloc (2, sizeof(char*));
    b_ca[1] = (char*)ca;
 
    /*
@@ -1394,25 +1705,6 @@ browser_DBFreeMultimesh (void *mem, obj_t type) {
 }
 
 /*-------------------------------------------------------------------------
- * Function:    browser_DBFreeMultimeshadj
- *
- * Purpose:     Frees a DBmultimeshadj.
- *
- * Return:      void
- *
- * Programmer:  Mark C. Miller 
- *              August 24, 2005 
- *
- *-------------------------------------------------------------------------
- */
-/*ARGSUSED*/
-static void
-browser_DBFreeMultimeshadj (void *mem, obj_t type) {
-
-   DBFreeMultimeshadj ((DBmultimeshadj*)mem);
-}
-
-/*-------------------------------------------------------------------------
  * Function:    browser_DBFreeMultivar
  *
  * Purpose:     Frees a DBmultivar
@@ -1670,12 +1962,6 @@ browser_DBFreeMrgtree(void *mem, obj_t type) {
 
 /*ARGSUSED*/
 static void 
-browser_DBFreeGroupelmap(void *mem, obj_t type) {
-   DBFreeGroupelmap ((DBgroupelmap*)mem);
-}
-
-/*ARGSUSED*/
-static void 
 browser_DBFreeMrgvar(void *mem, obj_t type) {
    DBFreeMrgvar ((DBmrgvar*)mem);
 }
@@ -1829,7 +2115,7 @@ browser_DBSaveVar (obj_t _self, char *name, void *mem, obj_t type)
     DBdatatype      silotype;
     DBfile         *dbfile = file_file(_self);
 
-    if (self->rdonly)
+    if (!self->writeable)
     {
         out_errorn("file `%s' is read-only", self->name);
         return -1;
@@ -1913,7 +2199,7 @@ file_deref_DBdirectory (obj_t _self, int argc, obj_t argv[])
    char         *name=NULL, buf[4096];
    obj_t        retval=NIL, tmp_argv[1];
 
-   dir = sdo_mem (_self);
+   dir = (DBdirectory *)sdo_mem (_self);
    name = obj_name (argv[0]);
 
    /*
@@ -1994,7 +2280,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
     obj_file_t  *self = MYCLASS(_self);
     char        *name=NULL, *orig=NULL, cwd[1024], fullname[1024];
     char        path[1024], *base=NULL, buf[1024];
-    char        *typename=NULL;
+    char        *type_name=NULL;
     DBfile      *file=NULL;
     DBtoc       *toc=NULL;
     void        *r_mem=NULL;
@@ -2057,7 +2343,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
         savefunc = NULL;
         freefunc = browser_DBFreeDirectory;
         dereffunc = file_deref_DBdirectory;
-        typename = "DBdirectory";
+        type_name = "DBdirectory";
         goto done;
     }
 
@@ -2098,7 +2384,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetCurve;
             savefunc = NULL;
             freefunc = browser_DBFreeCurve;
-            typename = "DBcurve";
+            type_name = "DBcurve";
             goto done;
         }
     }
@@ -2108,7 +2394,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetCsgmesh;
             savefunc = NULL;
             freefunc = browser_DBFreeCsgmesh;
-            typename = "DBcsgmesh";
+            type_name = "DBcsgmesh";
             goto done;
         }
     }
@@ -2118,7 +2404,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetCsgvar;
             savefunc = NULL;
             freefunc = browser_DBFreeCsgvar;
-            typename = "DBcsgvar";
+            type_name = "DBcsgvar";
             goto done;
         }
     }
@@ -2128,7 +2414,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetDefvars;
             savefunc = NULL;
             freefunc = browser_DBFreeDefvars;
-            typename = "DBdefvars";
+            type_name = "DBdefvars";
             goto done;
         }
     }
@@ -2138,18 +2424,21 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMultimesh;
             savefunc = NULL;
             freefunc = browser_DBFreeMultimesh;
-            typename = "DBmultimesh";
+            type_name = "DBmultimesh";
             goto done;
         }
     }
 
     for (i=0; i<toc->nmultimeshadj; i++) {
         if (!strcmp(toc->multimeshadj_names[i], base)) {
-            loadfunc = (void*(*)(DBfile*,char*))browser_DBGetMultimeshadj;
+            if (Verbosity>=2) {
+                out_info("file_deref: loading DBmultimeshadj%s:%s",
+                         self->name, name);
+            }
+            r_mem = browser_DBGetMultimeshadj(file, base, &type);
             savefunc = NULL;
             freefunc = browser_DBFreeMultimeshadj;
-            typename = "DBmultimeshadj";
-            goto done;
+            if (r_mem) goto done;
         }
     }
 
@@ -2158,7 +2447,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMultivar;
             savefunc = NULL;
             freefunc = browser_DBFreeMultivar;
-            typename = "DBmultivar";
+            type_name = "DBmultivar";
             goto done;
         }
     }
@@ -2168,7 +2457,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMultimat;
             savefunc = NULL;
             freefunc = browser_DBFreeMultimat;
-            typename = "DBmultimat";
+            type_name = "DBmultimat";
             goto done;
         }
     }
@@ -2178,7 +2467,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMultimatspecies;
             savefunc = NULL;
             freefunc = browser_DBFreeMultimatspecies;
-            typename = "DBmultimatspecies";
+            type_name = "DBmultimatspecies";
             goto done;
         }
     }
@@ -2188,7 +2477,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetQuadmesh;
             savefunc = NULL;
             freefunc = browser_DBFreeQuadmesh;
-            typename = "DBquadmesh";
+            type_name = "DBquadmesh";
             goto done;
         }
     }
@@ -2198,7 +2487,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetQuadvar;
             savefunc = NULL;
             freefunc = browser_DBFreeQuadvar;
-            typename = "DBquadvar";
+            type_name = "DBquadvar";
             goto done;
         }
     }
@@ -2208,7 +2497,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetUcdmesh;
             savefunc = NULL;
             freefunc = browser_DBFreeUcdmesh;
-            typename = "DBucdmesh";
+            type_name = "DBucdmesh";
             goto done;
         }
     }
@@ -2218,7 +2507,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetUcdvar;
             savefunc = NULL;
             freefunc = browser_DBFreeUcdvar;
-            typename = "DBucdvar";
+            type_name = "DBucdvar";
             goto done;
         }
     }
@@ -2228,7 +2517,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetPointmesh;
             savefunc = NULL;
             freefunc = browser_DBFreePointmesh;
-            typename = "DBpointmesh";
+            type_name = "DBpointmesh";
             goto done;
         }
     }
@@ -2238,7 +2527,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetPointvar;
             savefunc = NULL;
             freefunc = browser_DBFreeMeshvar;
-            typename = "DBmeshvar";
+            type_name = "DBmeshvar";
             goto done;
         }
     }
@@ -2248,7 +2537,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMaterial;
             savefunc = NULL;
             freefunc = browser_DBFreeMaterial;
-            typename = "DBmaterial";
+            type_name = "DBmaterial";
             goto done;
         }
     }
@@ -2258,7 +2547,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMatspecies;
             savefunc = NULL;
             freefunc = browser_DBFreeMatspecies;
-            typename = "DBmatspecies";
+            type_name = "DBmatspecies";
             goto done;
         }
     }
@@ -2268,18 +2557,21 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMrgtree;
             savefunc = NULL;
             freefunc = browser_DBFreeMrgtree;
-            typename = "DBmrgtree";
+            type_name = "DBmrgtree";
             goto done;
         }
     }
 
     for (i=0; i<toc->ngroupelmap; i++) {
         if (!strcmp(toc->groupelmap_names[i], base)) {
-            loadfunc = (void*(*)(DBfile*,char*))DBGetGroupelmap;
+            if (Verbosity>=2) {
+                out_info("file_deref: loading DBgroupelmap %s:%s",
+                         self->name, name);
+            }
+            r_mem = browser_DBGetGroupelmap(file, base, &type);
             savefunc = NULL;
             freefunc = browser_DBFreeGroupelmap;
-            typename = "DBgroupelmap";
-            goto done;
+            if (r_mem) goto done;
         }
     }
 
@@ -2288,7 +2580,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*,char*))DBGetMrgvar;
             savefunc = NULL;
             freefunc = browser_DBFreeMrgvar;
-            typename = "DBmrgvar";
+            type_name = "DBmrgvar";
             goto done;
         }
     }
@@ -2318,7 +2610,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             savefunc = NULL;
             freefunc = browser_DBFreeDirectory;
             dereffunc = file_deref_DBdirectory;
-            typename = "DBdirectory";
+            type_name = "DBdirectory";
             if (r_mem) goto done;
         }
     }
@@ -2342,8 +2634,8 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
                  * Add a null terminator just to be sure.  Also make the data
                  * a pointer to a string instead of the string itself.
                  */
-                char **s_ptr = malloc(sizeof(char*));
-                *s_ptr = malloc(nelmts+1);
+                char **s_ptr = (char **)malloc(sizeof(char*));
+                *s_ptr = (char *)malloc(nelmts+1);
                 memcpy(*s_ptr, r_mem, nelmts);
                 (*s_ptr)[nelmts] = '\0';
                 free(r_mem);
@@ -2370,7 +2662,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             }
 
             lex_in = lex_string(buf);
-            typename = NULL;
+            type_name = NULL;
             in = parse_stmt(lex_in, false);
             lex_in = lex_close(lex_in);
             type = obj_eval(in);
@@ -2396,6 +2688,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
                         browser_DBFreeSubarray(r_mem, type);
                         r_mem = NULL;
                         type = obj_dest(type);
+                        DBFreeCompoundarray(ca);
                         goto error;
                     } else {
                         r_mem = browser_DBGetSubarray(ca, j, &type);
@@ -2407,6 +2700,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             }
             if (r_mem) goto done;
             toc = DBGetToc(file); /*insure pointer is valid*/
+            DBFreeCompoundarray(ca);
         }
     }
 
@@ -2419,25 +2713,25 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
             loadfunc = (void*(*)(DBfile*, char*))DBGetFacelist;
             savefunc = NULL;
             freefunc = browser_DBFreeFacelist;
-            typename = "DBfacelist";
+            type_name = "DBfacelist";
             goto done;
         } else if (!strcmp(obj->type, "zonelist")) {
             loadfunc = (void*(*)(DBfile*, char*))DBGetZonelist;
             savefunc = NULL;
             freefunc = browser_DBFreeZonelist;
-            typename = "DBzonelist";
+            type_name = "DBzonelist";
             goto done;
         } else if (!strcmp(obj->type, "polyhedral-zonelist")) {
             loadfunc = (void*(*)(DBfile*, char*))DBGetPHZonelist;
             savefunc = NULL;
             freefunc = browser_DBFreePHZonelist;
-            typename = "DBphzonelist";
+            type_name = "DBphzonelist";
             goto done;
         } else if (!strcmp(obj->type, "csgzonelist")) {
             loadfunc = (void*(*)(DBfile*, char*))DBGetCSGZonelist;
             savefunc = NULL;
             freefunc = browser_DBFreeCSGZonelist;
-            typename = "DBcsgzonelist";
+            type_name = "DBcsgzonelist";
             goto done;
         } else if (!strcmp(obj->type, "edgelist")) {
             out_info("file_deref: edgelists are retrieved with DBGetObject() "
@@ -2451,7 +2745,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
      */
     DBShowErrors(DB_SUSPEND, NULL);
     r_mem = browser_DBGetObject(file, base, &type);
-    typename = NULL;
+    type_name = NULL;
     savefunc = browser_DBSaveObject;
     freefunc = browser_DBFreeObject;
     DBShowErrors(DB_RESUME, NULL);
@@ -2482,7 +2776,7 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
     if (!r_mem) {
         if (Verbosity>=2) {
             out_info("file_deref: loading %s %s:%s",
-                     typename?typename:"void type", self->name, name);
+                     type_name?type_name:"void type", self->name, name);
         }
         r_mem = (loadfunc)(file, name);
         if (!r_mem) goto error;
@@ -2493,8 +2787,8 @@ file_deref (obj_t _self, int argc, obj_t argv[]) {
                    cwd, self->name);
     }
 
-    if (typename) {
-        in = obj_new(C_SYM, typename);
+    if (type_name) {
+        in = obj_new(C_SYM, type_name);
         type = obj_copy(tmp=sym_vboundp(in), DEEP);
         tmp = obj_dest(tmp);
         in = obj_dest(in);
@@ -2638,6 +2932,8 @@ file_diff (obj_t a, obj_t b)
                         }
                         break;
                     case DIFF_REP_SUMMARY:
+                        free(atoc);
+                        free(btoc);
                         return 1;
                     }
                 } else if (Verbosity>=2) {
@@ -2672,6 +2968,8 @@ file_diff (obj_t a, obj_t b)
                         }
                         break;
                     case DIFF_REP_SUMMARY:
+                        free(atoc);
+                        free(btoc);
                         return 1;
                     }
                 } else if (Verbosity>=2) {
@@ -2710,7 +3008,12 @@ file_diff (obj_t a, obj_t b)
 
                     if (status) {
                         ndiff++;
-                        if (DIFF_REP_SUMMARY==DiffOpt.report) return 1;
+                        if (DIFF_REP_SUMMARY==DiffOpt.report)
+                        {
+                            free(atoc);
+                            free(btoc);
+                            return 1;
+                        }
                     }
                 }
             } else if (Verbosity>=2) {
@@ -2760,6 +3063,8 @@ file_diff (obj_t a, obj_t b)
                         aobj = obj_dest (aobj);
                         bobj = obj_dest (bobj);
                         out_progress(NULL);
+                        free(atoc);
+                        free(btoc);
                         return 1;
                     }
                     break;
@@ -2776,12 +3081,14 @@ file_diff (obj_t a, obj_t b)
     }
 
     out_progress (NULL);
+    free(atoc);
+    free(btoc);
     return ndiff ? 1 : 0;
 }
 
 
 /*-------------------------------------------------------------------------
- * Function:    file_rdonly
+ * Function:    file_writeable
  *
  * Purpose:     Determines if the file is read-only.
  *
@@ -2798,9 +3105,9 @@ file_diff (obj_t a, obj_t b)
  *-------------------------------------------------------------------------
  */
 int
-file_rdonly (obj_t _self)
+file_writeable (obj_t _self)
 {
    obj_file_t   *self = MYCLASS(_self);
 
-   return self->rdonly;
+   return self->writeable;
 }
diff --git a/tools/browser/func.c b/tools/browser/func.c
index bf9162b..94bdfb0 100644
--- a/tools/browser/func.c
+++ b/tools/browser/func.c
@@ -781,9 +781,7 @@ obj_t
 V_exit (int argc, obj_t argv[]) {
 
 #if defined(HAVE_READLINE_HISTORY_H) && defined(HISTORY_FILE) && defined(HAVE_READLINE_HISTORY)
-   if (HistoryFile[0] && write_history (HistoryFile)) 
-      ;
-   else
+   if (!(HistoryFile[0] && !write_history (HistoryFile))) 
    {
 #ifdef HAVE_STRERROR
       out_errorn ("command history not saved in %s (%s)",
@@ -858,6 +856,11 @@ F_fbind (obj_t self, obj_t func) {
  *      Robb Matzke, 2 Apr 1997
  *      If `$rdonly' is true then the file is open for reading only.
  *
+ *      Mark C. Miller, Wed Dec  4 11:22:26 PST 2013
+ *      Replaced `$rdonly' behavior with `$writable' thereby swaping the
+ *      default open behavior to be to open for write only when it is
+ *      acutally requested.
+ *
  *-------------------------------------------------------------------------
  */
 obj_t
@@ -865,7 +868,7 @@ V_file (int argc, obj_t argv[]) {
 
    obj_t        retval=NIL, filename=NIL;
    char         *fname;
-   int          rdonly = sym_bi_true("rdonly");
+   int          writeable = sym_bi_true("writeable");
 
    if (1!=argc) {
       out_errorn ("file: wrong number of arguments");
@@ -882,7 +885,7 @@ V_file (int argc, obj_t argv[]) {
    } else if (NULL==(fname=obj_name(filename))) {
       out_errorn ("file: arg-1 is inappropriate");
 
-   } else if (NIL==(retval=obj_new (C_FILE, fname, rdonly))) {
+   } else if (NIL==(retval=obj_new (C_FILE, fname, writeable))) {
 #if 0 /*error message already printed*/
       out_errorn ("file: could not open `%s'", fname);
 #endif
@@ -1396,7 +1399,7 @@ V_list (int argc, obj_t argv[])
         }
 
         /* Prune the table of contents based on the arguments supplied. */    
-        selected = calloc(nentries, sizeof(int));
+        selected = (int *)calloc(nentries, sizeof(int));
         if (first_arg==argc) {
             for (i=0; i<nentries; i++) selected[i] = true;
         } else {
@@ -1443,6 +1446,7 @@ V_list (int argc, obj_t argv[])
             if (DBSetDir(file, cwd)<0) return NIL;
             if (!toc || 0==nentries) {
                 out_errorn("ls: no table of contents");
+                free(selected);
                 goto error;
             }
             out_info("Listing file: %s, directory: %s:",
@@ -1453,7 +1457,7 @@ V_list (int argc, obj_t argv[])
 
             /* select all entries of that directory for display */
             free(selected);
-            selected = calloc(nentries, sizeof(int));
+            selected = (int *)calloc(nentries, sizeof(int));
             for (i=0; i<nentries; i++) selected[i] = true;
         } else {
             out_info("Listing from file %s", obj_name(fileobj));
diff --git a/tools/browser/lex.c b/tools/browser/lex.c
index e028bd4..51fe615 100644
--- a/tools/browser/lex.c
+++ b/tools/browser/lex.c
@@ -181,7 +181,7 @@ lex_open(const char *fname)
     }
 
     /* Create the lex file pointer */
-    f = calloc(1, sizeof(lex_t));
+    f = (lex_t *)calloc(1, sizeof(lex_t));
     assert(f);
     f->f = stream;
     f->prompt = LEX_PROMPT;
@@ -213,7 +213,7 @@ lex_open(const char *fname)
 lex_t *
 lex_stream(FILE *stream)
 {
-    lex_t        *f = calloc(1, sizeof(lex_t));
+    lex_t        *f = (lex_t *)calloc(1, sizeof(lex_t));
 
     assert (f);
     if (NULL==(f->f=fdopen(fileno(stream), "r"))) {
@@ -256,7 +256,7 @@ lex_stream(FILE *stream)
 lex_t *
 lex_string(const char *s)
 {
-    lex_t        *f = calloc(1, sizeof(lex_t));
+    lex_t        *f = (lex_t *)calloc(1, sizeof(lex_t));
 
     assert(f);
     f->s = safe_strdup(s?s:"");
@@ -280,7 +280,7 @@ lex_string(const char *s)
 lex_t *
 lex_stack(void)
 {
-    lex_t       *f = calloc(1, sizeof(lex_t));
+    lex_t       *f = (lex_t *)calloc(1, sizeof(lex_t));
     if (!LEX_STDIN) LEX_STDIN = f;
     return f;
 }
@@ -483,7 +483,7 @@ lex_ungetc(lex_t *f, int c)
 
     } else {
         /* Allocate a buffer for the pushback */
-        f->s = malloc(2);
+        f->s = (char *)malloc(2);
         f->s[0] = c;
         f->s[1] = '\0';
         f->at = 0;
diff --git a/tools/browser/num.c b/tools/browser/num.c
index 02b9327..8fb395c 100644
--- a/tools/browser/num.c
+++ b/tools/browser/num.c
@@ -108,10 +108,10 @@ static int      num_diff (obj_t, obj_t);
 class_t
 num_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("NUM");
-   cls->new = num_new;
+   cls->newobj = num_new;
    cls->dest = NULL;
    cls->copy = NULL;
    cls->print = num_print;
@@ -143,7 +143,7 @@ num_class (void) {
 static obj_t
 num_new (va_list ap) {
 
-   obj_num_t    *self = calloc (1, sizeof(obj_num_t));
+   obj_num_t    *self = (obj_num_t *)calloc (1, sizeof(obj_num_t));
    char         *lexeme;
 
    lexeme = va_arg (ap, char*);
diff --git a/tools/browser/obj.c b/tools/browser/obj.c
index 9fd8845..0d25c47 100644
--- a/tools/browser/obj.c
+++ b/tools/browser/obj.c
@@ -133,12 +133,12 @@ obj_new (class_t cls, ...) {
    /*
     * Initialize the object if a constructor is defined.
     */
-   if (cls->new) {
+   if (cls->newobj) {
       va_start (ap, cls);
-      self = (cls->new)(ap);
+      self = (cls->newobj)(ap);
       va_end (ap);
    } else {
-      self = calloc (1, sizeof(*self));
+      self = (obj_t)calloc (1, sizeof(*self));
    }
 
    /*
@@ -175,32 +175,32 @@ obj_new (class_t cls, ...) {
 obj_t
 obj_copy (obj_t self, int flag) {
 
-   obj_t        new=NIL;
+   obj_t        new_obj=NIL;
    int          oldref;
 
    if (self) {
       oldref = self->pub.ref;
       
       if (self->pub.cls->copy) {
-         new = (self->pub.cls->copy)(self, flag);
+         new_obj = (self->pub.cls->copy)(self, flag);
       } else {
          assert (SHALLOW==flag);
-         new = self;
+         new_obj = self;
       }
       
-      if (new==self) {
-         assert (new->pub.ref==oldref);
-         new->pub.ref += 1;
+      if (new_obj==self) {
+         assert (new_obj->pub.ref==oldref);
+         new_obj->pub.ref += 1;
       } else {
-         assert (0==new->pub.ref    || 1==new->pub.ref);
-         assert (NULL==new->pub.cls || self->pub.cls==new->pub.cls);
-         new->pub.cls = self->pub.cls;
-         new->pub.ref = 1;
+         assert (0==new_obj->pub.ref    || 1==new_obj->pub.ref);
+         assert (NULL==new_obj->pub.cls || self->pub.cls==new_obj->pub.cls);
+         new_obj->pub.cls = self->pub.cls;
+         new_obj->pub.ref = 1;
       }
    }
 
-   if (new) NObjs++;
-   return new;
+   if (new_obj) NObjs++;
+   return new_obj;
 }
 
 

diff --git a/tools/browser/output.c b/tools/browser/output.c
index 4b170de..ba8c06c 100644
--- a/tools/browser/output.c
+++ b/tools/browser/output.c
@@ -1223,7 +1223,7 @@ out_reset (out_t *f) {
 out_t *
 out_stream (FILE *stream) {
 
-   out_t        *f = calloc (1, sizeof(out_t));
+   out_t        *f = (out_t *)calloc (1, sizeof(out_t));
 
    assert (f);
    if (NULL==(f->f=fdopen(fileno(stream), "w"))) {
diff --git a/tools/browser/parse.c b/tools/browser/parse.c
index 2566fce..03928e8 100644
--- a/tools/browser/parse.c
+++ b/tools/browser/parse.c
@@ -63,6 +63,7 @@ be used for advertising or product endorsement purposes.
  *
  *-------------------------------------------------------------------------
  */
+#include <config.h>
 #include <browser.h>
 #include <ctype.h>
 #include <signal.h>
@@ -172,9 +173,9 @@ parse_init (void) {
         "use of this function is with the `ls' or `diff' functions which can "
         "take file objects as arguments. For instance, the command `ls "
         "(file curv2d.pdb)' opens the file, lists the root directory, and "
-        "then closes the file. The file is opened for read-write unless "
-        "the file has only read permission or the `$rdonly' variable is "
-        "non-zero and non-nil.  See also `help open'.");
+        "then closes the file. The file is opened for read-only unless "
+        "the `$writable' variable is non-zero and non-nil and the file has "
+        "write permission. See also `help open'.");
         
    bif ("help",         V_help,         HOLDFIRST,
         "Show documentation.",
diff --git a/tools/browser/prim.c b/tools/browser/prim.c
index 63a782d..5a0b72b 100644
--- a/tools/browser/prim.c
+++ b/tools/browser/prim.c
@@ -316,6 +316,24 @@ prim_assoc_t PA_REPRBLOCK[] = {
    {-1,        "not specified"},
    {0,         NULL}};
 
+prim_assoc_t PA_MISSING_VALUE[] = {
+   {PA_NAME,                                    "missing value"},
+   {DB_MISSING_VALUE_NOT_SET, "not set"},
+   {0,                        NULL}};
+
+prim_assoc_t PA_ZONETYPE[] = {
+   {PA_NAME,                                    "zonetype"},
+   {DB_ZONETYPE_BEAM,        "BEAM"},
+   {DB_ZONETYPE_POLYGON,     "POLYGON"},
+   {DB_ZONETYPE_TRIANGLE,    "TRIANGLE"},
+   {DB_ZONETYPE_QUAD,        "QUAD"},
+   {DB_ZONETYPE_POLYHEDRON,  "POLYHEDRON"},
+   {DB_ZONETYPE_TET,         "TET"},
+   {DB_ZONETYPE_PYRAMID,     "PYRAMID"},
+   {DB_ZONETYPE_PRISM,       "PRISM"},
+   {DB_ZONETYPE_HEX,         "HEX"},
+   {0,                        NULL}};
+
 

 /*-------------------------------------------------------------------------
  * Function:    prim_class
@@ -340,10 +358,10 @@ prim_assoc_t PA_REPRBLOCK[] = {
 class_t
 prim_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("PRIM");
-   cls->new = prim_new;
+   cls->newobj = prim_new;
    cls->copy = prim_copy;
    cls->dest = prim_dest;
    cls->objname = prim_name;
@@ -383,7 +401,7 @@ prim_class (void) {
 static obj_t
 prim_new (va_list ap) {
 
-   obj_prim_t   *self = calloc (1, sizeof(obj_prim_t));
+   obj_prim_t   *self = (obj_prim_t *)calloc (1, sizeof(obj_prim_t));
    char         *s;
 
    assert (self);
@@ -423,7 +441,7 @@ prim_copy (obj_t _self, int flag) {
       retval = self;
 
    } else {
-      retval = calloc (1, sizeof(obj_prim_t));
+      retval = (obj_prim_t *)calloc (1, sizeof(obj_prim_t));
       retval->name = safe_strdup (self->name);
       retval->tname = self->tname ? safe_strdup (self->tname) : NULL;
       retval->browser_type = self->browser_type;
@@ -842,7 +860,12 @@ prim_walk1 (obj_t _self, void *mem, int operation, walk_t *wdata)
                 break;
                 
             case BROWSER_DOUBLE:
-                if (16==obase) {
+                for (i=0; self->assoc && self->assoc[i].s; i++) {
+                    if (*((double*)mem) == self->assoc[i].n) break;
+                }
+                if (self->assoc && self->assoc[i].s) {
+                    out_printf(f, "%s", self->assoc[i].s);
+                } else if (16==obase) {
                     for (i=0; i<sizeof(double); i++) {
                         sprintf(buf+2*i, "%02x", *((unsigned char*)mem+i));
                     }
@@ -922,6 +945,7 @@ prim_getval_ll(int type, void *mem)
     case BROWSER_FLOAT:     return (long long) *((float*)mem);
     case BROWSER_DOUBLE:    return (long long) *((double*)mem);
     }
+    return 0;
 }
 
 /*-------------------------------------------------------------------------
@@ -947,6 +971,7 @@ prim_getval(int type, void *mem)
     case BROWSER_FLOAT:     return (double) *((float*)mem);
     case BROWSER_DOUBLE:    return (double) *((double*)mem);
     }
+    return 0;
 }
 
 

@@ -1436,6 +1461,12 @@ prim_bind (obj_t _self, void *mem) {
          self->nbytes = sizeof(double);
          break;
 
+      case DB_NOTYPE:
+         self->tname = safe_strdup ("notype");
+         self->browser_type = BROWSER_INT;
+         self->nbytes = 0;
+         break;
+
       default:
          out_errorn ("prim_bind: cannot resolve %s to a silo type",
                      self->name);
diff --git a/tools/browser/ptr.c b/tools/browser/ptr.c
index e64c28d..2f6e5d6 100644
--- a/tools/browser/ptr.c
+++ b/tools/browser/ptr.c
@@ -109,10 +109,10 @@ static int      ptr_diff (obj_t, obj_t);
 class_t
 ptr_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("POINTER");
-   cls->new = ptr_new;
+   cls->newobj = ptr_new;
    cls->copy = ptr_copy;
    cls->dest = ptr_dest;
    cls->apply = ptr_apply;
@@ -147,7 +147,7 @@ ptr_class (void) {
 static obj_t
 ptr_new (va_list ap) {
 
-   obj_ptr_t    *self = calloc (1, sizeof(obj_ptr_t));
+   obj_ptr_t    *self = (obj_ptr_t *)calloc (1, sizeof(obj_ptr_t));
    
    assert (self);
    self->sub = va_arg (ap, obj_t);
@@ -185,7 +185,7 @@ ptr_copy (obj_t _self, int flag) {
       retval = self;
 
    } else {
-      retval = calloc (1, sizeof(obj_ptr_t));
+      retval = (obj_ptr_t *)calloc (1, sizeof(obj_ptr_t));
       retval->sub = obj_copy (self->sub, DEEP);
    }
 
diff --git a/tools/browser/range.c b/tools/browser/range.c
index 6416e64..a9b3bd5 100644
--- a/tools/browser/range.c
+++ b/tools/browser/range.c
@@ -102,10 +102,10 @@ static int      range_diff (obj_t, obj_t);
 class_t
 range_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("RANGE");
-   cls->new = range_new;
+   cls->newobj = range_new;
    cls->print = range_print;
    cls->diff = range_diff;
    return cls;
@@ -133,7 +133,7 @@ range_class (void) {
 static obj_t
 range_new (va_list ap) {
 
-   obj_range_t  *self = calloc (1, sizeof(obj_range_t));
+   obj_range_t  *self = (obj_range_t *)calloc (1, sizeof(obj_range_t));
    int          tmp;
 
    self->lo = va_arg (ap, int);
diff --git a/tools/browser/sdo.c b/tools/browser/sdo.c
index e724bf4..5c98481 100644
--- a/tools/browser/sdo.c
+++ b/tools/browser/sdo.c
@@ -142,10 +142,10 @@ static char     *sdo_name (obj_t);
 class_t
 sdo_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("SDO");
-   cls->new = sdo_new;
+   cls->newobj = sdo_new;
    cls->dest = sdo_dest;
    cls->copy = sdo_copy;
    cls->print = sdo_print;
@@ -263,10 +263,10 @@ sdo_new (va_list ap) {
        */
       if (!Sdo) {
          NSdos = 1024;
-         Sdo = calloc (NSdos, sizeof(sdo_t));
+         Sdo = (sdo_t *)calloc (NSdos, sizeof(sdo_t));
          unused = 0;
       } else {
-         Sdo = realloc (Sdo, (NSdos+1024) * sizeof(sdo_t));
+         Sdo = (sdo_t *)realloc (Sdo, (NSdos+1024) * sizeof(sdo_t));
          memset (Sdo+NSdos, 0, 1024*sizeof(sdo_t));
          unused = NSdos;
          NSdos += 1024;
@@ -300,7 +300,7 @@ sdo_new (va_list ap) {
       }
    }
 
-   self = calloc (1, sizeof(obj_sdo_t));
+   self = (obj_sdo_t *)calloc (1, sizeof(obj_sdo_t));
    self->sdo = sdo;
    self->r_type = obj_copy(r_type, SHALLOW);
    self->c_mem = c_mem;
@@ -869,7 +869,7 @@ sdo_assign (obj_t _self, obj_t val) {
 
    obj_sdo_t    *self = MYCLASS(_self);
 
-   if (file_rdonly(self->sdo->file)) {
+   if (!file_writeable(self->sdo->file)) {
       out_errorn ("file `%s' is read-only", obj_name(self->sdo->file));
       return NIL;
    }
diff --git a/tools/browser/silodiff b/tools/browser/silodiff
index 1ee6ab2..082b939 100755
--- a/tools/browser/silodiff
+++ b/tools/browser/silodiff
@@ -85,7 +85,7 @@ if test -z "$tmpDir"; then
     fi
 fi
 optError=0
-browserOptsDef="-l 0 -r"
+browserOptsDef="-l 0"
 browserOpts=""
 arg1=
 arg2=
@@ -153,7 +153,10 @@ else
         fi
     fi
 fi
-
+sfexe=silofile
+if test -x ${sddir}/silofile; then
+    sfexe=${sddir}/silofile
+fi
 if test $optError = 1 -o -z "$arg1" -o -z "$arg2"; then
     echo "Usage:  $0 <file|dir> <file|dir> <options>"
     echo ""
@@ -184,31 +187,59 @@ if test $optError = 1 -o -z "$arg1" -o -z "$arg2"; then
 fi
 
 if test -d $arg1 -a -d $arg2; then # both are dirs
-    for f in $arg1/*; do
-        if test -d $f; then
-            df=`echo $f | rev | cut -d'/' -f1 | rev`
-            if test $recurse = 1; then
-                if test -d $arg2/$df; then
-                    if test $verbose = 1; then
-                        echo "Processing directory \"$df\"..."
-                        $0 -recurse -verbose $browserOpts $f $arg2/$df
-                    else
-                        $0 -recurse $browserOpts $f $arg2/$df
-                    fi
-                else
-                    test $verbose = 1 && echo "Directory \"$df\" does not exist in \"$arg2\", skipping it."
-                fi
+    if test $recurse -eq 1 -a $verbose -eq 1; then
+        echo "Recursively diffing directories..."
+    fi
+    # Iterate through all members of dir $arg1 finding
+    # those in or not in common with dir $arg2
+    arg1_files_tmp=`ls -1rt $arg1`
+    common_members=""
+    not_common_members=""
+    for f in $arg1_files_tmp; do
+        if test -d $arg1/$f -a -d $arg2/$f -a $recurse -eq 1; then
+            common_members="$f $common_members"
+        elif test -f $arg1/$f -a -f $arg2/$f; then
+            if test -n "$($sfexe $arg1/$f | grep PDB\\\|HDF)"; then
+                common_members="$f $common_members"
             else
-                test $verbose = 1 && echo "\"$df\" is a directory, skipping it. Use -recurse to process directories."
+                not_common_members="$arg1/$f $not_common_members"
             fi
         else
-            bf=`basename $f`
-            if test -e $arg2/$bf; then
-                test $verbose = 1 && echo "Processing file \"$bf\"..."
-                $brexe $browserOptsDef $browserOpts -e diff $f $arg2/$bf
+            if test $verbose -eq 1; then
+                not_common_members="$arg1/$f $not_common_members"
+            fi
+        fi
+    done
+    # If in verbose mode, continue to iterate through dir $arg2
+    # finding everything else not in common with dir $arg1
+    if test $verbose -eq 1; then
+        arg2_files_tmp=`ls -1rt $arg2`
+        for f in $arg2_files_tmp; do
+            if test -d $arg1/$f -a -d $arg2/$f -a $recurse -eq 1; then
+               true
+            elif test -f $arg1/$f -a -f $arg2/$f; then
+               true
             else
-                test $verbose = 1 && echo "File \"$bf\" does not exist in \"$arg2\", skipping it."
+                not_common_members="$arg2/$f $not_common_members"
             fi
+        done
+        for f in $not_common_members; do
+            echo "    Skipping \"$f\"."
+        done
+    fi
+    for f in $common_members; do
+        if test -d $arg1/$f -a -d $arg2/$f -a $recurse -eq 1; then
+            if test $verbose -eq 1; then
+                echo "Recusively diffing directories \"$arg1/$f\" and \"$arg2/$f\"..."
+                $0 -recurse -verbose $browserOpts $arg1/$f $arg2/$f
+            else
+                $0 -recurse $browserOpts $arg1/$f $arg2/$f
+            fi
+        elif test -f $arg1/$f -a -f $arg2/$f; then
+            test $verbose -eq 1 && echo "Diffing files \"$arg1/$f\" and \"$arg2/$f\"..."
+            $brexe $browserOptsDef $browserOpts -e diff $arg1/$f $arg2/$f
+        else
+            true
         fi
     done
 elif test -d $arg1 -o -d $arg2; then # one is dir
diff --git a/tools/browser/silofile b/tools/browser/silofile
index 7425cfe..47bc270 100755
--- a/tools/browser/silofile
+++ b/tools/browser/silofile
@@ -65,24 +65,21 @@
 #
 unknownFiles=
 for f in $*; do
-    headerBytes=$(od -c -N 10 $f)
-    if test -n "$(echo $headerBytes | tr -d ' ' | grep '<<PDB:')"; then
-        echo "$f: Portable Database (PDB) data"
-    elif test -n "$(echo $headerBytes | tr -d ' \\' | grep 'HDFrn032')"; then
-        echo "$f: Hierarchical Data Format version 5 (HDF5) data"
-    else
-        headerBytes=$(od -t x1 -N 4 $f)
-        if test -n "$(echo $headerBytes | grep '0000000 0e 03 13 01')"; then
-            echo "$f: Hierarchical Data Format version 4 (HDF4) data"
+    if test -f $f; then
+        headerBytes=$(od -a -N 10 $f)
+        if test -n "$(echo $headerBytes | tr -d ' ' | grep '<<PDB:')"; then
+            echo "$f: Portable Database (PDB) data"
+        elif test -n "$(echo $headerBytes | tr -d ' \\' | grep 'HDFcrnl')"; then
+            echo "$f: Hierarchical Data Format version 5 (HDF5) data"
         else
-	    unknownFiles="$unknownFiles $f"
+            headerBytes=$(od -t x1 -N 4 $f)
+            if test -n "$(echo $headerBytes | grep '0000000 0e 03 13 01')"; then
+                echo "$f: Hierarchical Data Format version 4 (HDF4) data"
+            else
+                file $f
+            fi
         fi
+    else # not a regular file
+        file $f
     fi
 done
-
-#
-# If we have any unknown files, use the ordinary file command on them.
-#
-if test -n "$unknownFiles"; then
-    file $unknownFiles
-fi
diff --git a/tools/browser/stc.c b/tools/browser/stc.c
index 23ee329..f56039c 100644
--- a/tools/browser/stc.c
+++ b/tools/browser/stc.c
@@ -165,10 +165,10 @@ static obj_t    stc_bind (obj_t, void*);
 class_t
 stc_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("STRUCT");
-   cls->new = stc_new;
+   cls->newobj = stc_new;
    cls->copy = stc_copy;
    cls->dest = stc_dest;
    cls->feval = stc_feval;
@@ -213,7 +213,7 @@ stc_class (void) {
 static obj_t
 stc_new (va_list ap) {
 
-   obj_stc_t    *self = calloc (1, sizeof(obj_stc_t));
+   obj_stc_t    *self = (obj_stc_t *)calloc (1, sizeof(obj_stc_t));
    obj_t        _self = (obj_t)self;
    obj_t        sub;
    int          offset;
@@ -281,13 +281,13 @@ stc_add (obj_t _self, obj_t sub, int offset, const char *name) {
    if (self->ncomps>=self->acomps) {
       self->acomps = MAX (2*self->acomps, 30);
       if (self->sub) {
-         self->offset = realloc (self->offset, self->acomps*sizeof(int));
-         self->compname = realloc (self->compname, self->acomps*sizeof(char*));
-         self->sub = realloc (self->sub, self->acomps*sizeof(obj_t));
+         self->offset = (int *)realloc (self->offset, self->acomps*sizeof(int));
+         self->compname = (char **)realloc (self->compname, self->acomps*sizeof(char*));
+         self->sub = (obj_t *)realloc (self->sub, self->acomps*sizeof(obj_t));
       } else {
-         self->offset = malloc (self->acomps*sizeof(int));
-         self->compname = malloc (self->acomps*sizeof(char*));
-         self->sub = malloc (self->acomps*sizeof(obj_t));
+         self->offset = (int *)malloc (self->acomps*sizeof(int));
+         self->compname = (char **)malloc (self->acomps*sizeof(char*));
+         self->sub = (obj_t *)malloc (self->acomps*sizeof(obj_t));
       }
       assert (self->offset);
       assert (self->compname);
@@ -345,14 +345,14 @@ stc_copy (obj_t _self, int flag) {
       retval = self;
 
    } else {
-      retval = calloc (1, sizeof(obj_stc_t));
+      retval = (obj_stc_t *)calloc (1, sizeof(obj_stc_t));
       retval->walk1 = self->walk1;
       retval->walk2 = self->walk2;
       retval->name = safe_strdup (self->name);
       retval->acomps = self->ncomps;    /*save some memory*/
-      retval->sub = malloc (retval->acomps * sizeof(obj_t));
-      retval->offset = malloc (retval->acomps * sizeof(int));
-      retval->compname = malloc (retval->acomps * sizeof(char*));
+      retval->sub = (obj_t *)malloc (retval->acomps * sizeof(obj_t));
+      retval->offset = (int *)malloc (retval->acomps * sizeof(int));
+      retval->compname = (char **)malloc (retval->acomps * sizeof(char*));
       retval->ncomps = self->ncomps;
       
       for (i=0; i<self->ncomps; i++) {
@@ -737,7 +737,7 @@ stc_walk1_DBmrgtree(obj_t _self, void *mem, int operation, walk_t *wdata)
        p++;
    }
 
-   DBWalkMrgtree(tree, stc_walk1_outmrgtree, wdata, DB_PREORDER);
+   DBWalkMrgtree(tree, (DBmrgwalkcb) stc_walk1_outmrgtree, wdata, DB_PREORDER);
    return;
 }
 
@@ -1014,16 +1014,6 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
    int          nsame=0, ndiffer=0, nonlya=0, nonlyb=0;
 
    /*
-    * Clear the difference indicators by setting them each to -999.
-    * When A differs from B, a_diff will contain the index of B and
-    * b_diff will contain the index of A.
-    */
-   a_diff = calloc (a->ncomps, sizeof(int));
-   for (i=0; i<a->ncomps; i++) a_diff[i] = -999;
-   b_diff = calloc (b->ncomps, sizeof(int));
-   for (i=0; i<b->ncomps; i++) b_diff[i] = -999;
-
-   /*
     * If both types have localized their walk2 functions, then call that
     * function instead.
     */
@@ -1032,13 +1022,27 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
    }
 
    /*
+    * Clear the difference indicators by setting them each to -999.
+    * When A differs from B, a_diff will contain the index of B and
+    * b_diff will contain the index of A.
+    */
+   a_diff = (int *)calloc (a->ncomps, sizeof(int));
+   for (i=0; i<a->ncomps; i++) a_diff[i] = -999;
+   b_diff = (int *)calloc (b->ncomps, sizeof(int));
+   for (i=0; i<b->ncomps; i++) b_diff[i] = -999;
+
+   /*
     * Figure out which fields appear only in A (a_diff[i]==b->ncomps),
     * which appear only in B (b_diff[i]==a->ncomps), which appear in both
     * but differ (a_diff[i]=j, b_diff[j]=i, i>=0, j>=0), and which are
     * the same in both.
     */
    for (i=0; i<a->ncomps; i++) {
-      if (out_brokenpipe(f)) return -1;
+      if (out_brokenpipe(f)) {
+          free(a_diff);
+          free(b_diff);
+          return -1;
+      }
       for (j=0; j<b->ncomps; j++) {
          if (!strcmp(a->compname[i], b->compname[j])) {
 
@@ -1061,6 +1065,8 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
                 }
                 break;
             case DIFF_REP_SUMMARY:
+                free(a_diff);
+                free(b_diff);
                 return 1;
             }
             break;
@@ -1079,7 +1085,11 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
               }
               break;
           case DIFF_REP_SUMMARY:
-              if (!DiffOpt.ignore_dels) return 2;
+              if (!DiffOpt.ignore_dels) {
+                  free(a_diff);
+                  free(b_diff);
+                  return 2;
+              }
               nsame++;
               break;
           }
@@ -1102,7 +1112,11 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
               }
               break;
           case DIFF_REP_SUMMARY:
-              if (!DiffOpt.ignore_adds) return 2;
+              if (!DiffOpt.ignore_adds) {
+                  free(a_diff);
+                  free(b_diff);
+                  return 2;
+              }
               nsame++;
               break;
           }
@@ -1111,7 +1125,11 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
 
    /* Print the A side of things */
    for (i=na=0; i<a->ncomps; i++) {
-       if (out_brokenpipe(f)) return -1;
+       if (out_brokenpipe(f)) {
+           free(a_diff);
+           free(b_diff);
+           return -1;
+       }
        if (a_diff[i]==b->ncomps && !DiffOpt.ignore_dels) {
            switch (DiffOpt.report) {
            case DIFF_REP_ALL:
@@ -1136,6 +1154,8 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
                out_pop(f);
                break;
            case DIFF_REP_SUMMARY:
+               free(a_diff);
+               free(b_diff);
                return 2;
            }
            na++;
@@ -1165,6 +1185,8 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
                out_pop(f);
                break;
            case DIFF_REP_SUMMARY:
+               free(a_diff);
+               free(b_diff);
                return 2;
            }
            na++;
@@ -1173,7 +1195,11 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
 
    /* Print the B side of things */
    for (i=nb=0; i<b->ncomps; i++) {
-       if (out_brokenpipe(f)) return -1;
+       if (out_brokenpipe(f)) {
+           free(a_diff);
+           free(b_diff);
+           return -1;
+       }
        if (b_diff[i]==a->ncomps && !DiffOpt.ignore_adds) {
            switch (DiffOpt.report) {
            case DIFF_REP_ALL:
@@ -1201,6 +1227,8 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
                out_pop(f);
                break;
            case DIFF_REP_SUMMARY:
+               free(a_diff);
+               free(b_diff);
                return 2;
            }
            nb++;
@@ -1224,6 +1252,8 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
            case DIFF_REP_BRIEF:
                break; /*already printed*/
            case DIFF_REP_SUMMARY:
+               free(a_diff);
+               free(b_diff);
                return 2;
            }
            nb++;
@@ -1233,6 +1263,9 @@ stc_walk2 (obj_t _a, void *a_mem, obj_t _b, void *b_mem, walk_t *wdata) {
        out_line (f, "***************");
    }
 
+   free(a_diff);
+   free(b_diff);
+
    /* Return */
    if (ndiffer) {
        if (DiffOpt.two_column) return 1;
@@ -1590,6 +1623,10 @@ stc_silo_types (void) {
       COMP (reference,          "primitive 'string'");
       COMP (guihide,            "primitive 'int'");
       IOASSOC (PA_BOOLEAN);
+      COMP (coord_sys,          "primitive 'int'");
+      IOASSOC (PA_COORDSYS);
+      COMP (missing_value,      "primitive 'double'");
+      IOASSOC (PA_MISSING_VALUE);
       COMP (x,
             "pointer (array 'self.npts' (primitive 'self.datatype'))");
       COMP (y,
@@ -1616,72 +1653,41 @@ stc_silo_types (void) {
       COMP (id,                 "primitive 'int'");
       COMP (nblocks,            "primitive 'int'");
       COMP (ngroups,            "primitive 'int'");
-      COMP (guihide,            "primitive 'int'");
-      IOASSOC (PA_BOOLEAN);
+      COMP (guihide,            "primitive 'int'"); IOASSOC (PA_BOOLEAN);
       COMP (blockorigin,        "primitive 'int'");
       COMP (grouporigin,        "primitive 'int'");
       COMP (extentssize,        "primitive 'int'");
       COMP (mrgtree_name,       "primitive 'string'");
       COMP (tv_connectivity,    "primitive 'int'");
       COMP (disjoint_mode,      "primitive 'int'");
-      COMP (topo_dim,           "primitive 'int'");
-      IOASSOC (PA_TOPODIM);
+      COMP (topo_dim,           "primitive 'int'"); IOASSOC (PA_TOPODIM);
       COMP (file_ns,            "primitive 'string'");
       COMP (block_ns,           "primitive 'string'");
       COMP (block_type,         "primitive 'int'");
-      COMP (repr_block_idx,     "primitive 'int'");
-      IOASSOC (PA_REPRBLOCK);
+      COMP (repr_block_idx,     "primitive 'int'"); IOASSOC (PA_REPRBLOCK);
+      COMP (alt_nodenum_vars,   "pointer (array 'SH5 0, self.alt_nodenum_vars' (primitive 'string'))");
+      COMP (alt_zonenum_vars,   "pointer (array 'SH5 0, self.alt_zonenum_vars' (primitive 'string'))");
       COMP (empty_cnt,          "primitive 'int'");
-      COMP (empty_list,
-            "pointer (array 'self.empty_cnt' (primitive 'int'))");
-      COMP (meshids,
-            "pointer (array 'self.nblocks' (primitive 'int'))");
-      COMP (meshnames,
-            "pointer (array 'self.nblocks' (primitive 'string'))");
+      COMP (empty_list,         "pointer (array 'self.empty_cnt' (primitive 'int'))");
+      COMP (meshids,            "pointer (array 'self.nblocks' (primitive 'int'))");
+      COMP (meshnames,          "pointer (array 'self.nblocks' (primitive 'string'))");
 
       tmp = obj_new (C_PRIM, "int");
       prim_set_io_assoc (tmp, PA_OBJTYPE);
       tmp = obj_new (C_PTR, obj_new (C_ARY, "self.nblocks", tmp));
       COMP3 (meshtypes, "meshtypes", tmp);
 
-      COMP (dirids,
-            "pointer (array 'self.nblocks' (primitive 'int'))");
-      COMP (extents,
-            "pointer (array 'self.nblocks,self.extentssize' (primitive 'double'))");
-      COMP (zonecounts,
-            "pointer (array 'self.nblocks' (primitive 'int'))");
-      COMP (has_external_zones,
-            "pointer (array 'self.nblocks' (primitive 'int'))");
-      COMP (lgroupings,        "primitive 'int'");
-      COMP (groupings,
-            "pointer (array 'self.lgroupings' (primitive 'int'))");
-      COMP (groupnames,
-            "pointer (array 'self.lgroupings' (primitive 'string'))");
+      COMP (dirids,             "pointer (array 'self.nblocks' (primitive 'int'))");
+      COMP (extents,            "pointer (array 'self.nblocks,self.extentssize' (primitive 'double'))");
+      COMP (zonecounts,         "pointer (array 'self.nblocks' (primitive 'int'))");
+      COMP (has_external_zones, "pointer (array 'self.nblocks' (primitive 'int'))");
+      COMP (lgroupings,         "primitive 'int'");
+      COMP (groupings,          "pointer (array 'self.lgroupings' (primitive 'int'))");
+      COMP (groupnames,         "pointer (array 'self.lgroupings' (primitive 'string'))");
    } ESTRUCT;
 
-   STRUCT (DBmultimeshadj) {
-      COMP (nblocks,            "primitive 'int'");
-      COMP (blockorigin,        "primitive 'int'");
-      COMP (lneighbors,         "primitive 'int'");
-      COMP (totlnodelists,      "primitive 'int'");
-      COMP (totlzonelists,      "primitive 'int'");
-
-      tmp = obj_new (C_PRIM, "int");
-      prim_set_io_assoc (tmp, PA_OBJTYPE);
-      tmp = obj_new (C_PTR, obj_new (C_ARY, "self.nblocks", tmp));
-      COMP3 (meshtypes, "meshtypes", tmp);
-
-      COMP (nneighbors,
-            "pointer (array 'self.nblocks' (primitive 'int'))");
-      COMP (neighbors,
-            "pointer (array 'self.lneighbors' (primitive 'int'))");
-      COMP (back,
-            "pointer (array 'self.lneighbors' (primitive 'int'))");
-      COMP (lnodelists,
-            "pointer (array 'self.lneighbors' (primitive 'int'))");
-      COMP (lzonelists,
-            "pointer (array 'self.lneighbors' (primitive 'int'))");
-   } ESTRUCT;
+    /* ThDBmultimeshadj object is handled specially in browser using the
+       browser_DBGetMultimesadj() function */
 
    STRUCT (DBmultivar) {
       COMP (id,                 "primitive 'int'");
@@ -1702,6 +1708,8 @@ stc_silo_types (void) {
       COMP (block_type,         "primitive 'int'");
       COMP (repr_block_idx,     "primitive 'int'");
       IOASSOC (PA_REPRBLOCK);
+      COMP (missing_value,      "primitive 'double'");
+      IOASSOC (PA_MISSING_VALUE);
       COMP (empty_cnt,          "primitive 'int'");
       COMP (empty_list,
             "pointer (array 'self.empty_cnt' (primitive 'int'))");
@@ -1788,45 +1796,36 @@ stc_silo_types (void) {
       COMP (cycle,              "primitive 'int'");
       COMP (time,               "primitive 'float'");
       COMP (dtime,              "primitive 'double'");
-      COMP (coord_sys,          "primitive 'int'");
-      IOASSOC (PA_COORDSYS);
-      COMP (major_order,        "primitive 'int'");
-      IOASSOC (PA_ORDER);
+      COMP (coord_sys,          "primitive 'int'"); IOASSOC (PA_COORDSYS);
+      COMP (major_order,        "primitive 'int'"); IOASSOC (PA_ORDER);
       COMP (stride,             "array 3 (primitive 'int')");
-      COMP (coordtype,          "primitive 'int'");
-      IOASSOC (PA_COORDTYPE);
-      COMP (facetype,           "primitive 'int'");
-      IOASSOC (PA_FACETYPE);
-      COMP (planar,             "primitive 'int'");
-      IOASSOC (PA_PLANAR);
+      COMP (coordtype,          "primitive 'int'"); IOASSOC (PA_COORDTYPE);
+      COMP (facetype,           "primitive 'int'"); IOASSOC (PA_FACETYPE);
+      COMP (planar,             "primitive 'int'"); IOASSOC (PA_PLANAR);
       COMP (ndims,              "primitive 'int'");
       COMP (nspace,             "primitive 'int'");
       COMP (nnodes,             "primitive 'int'");
-      COMP (dims,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
-      COMP (min_index,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
-      COMP (max_index,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (dims,               "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (min_index,          "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (max_index,          "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (origin,             "primitive 'int'");
-      COMP (datatype,           "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (min_extents,
-            "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
-      COMP (max_extents,
-            "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
-      COMP (labels,
-            "array 'SH3 3, self.ndims' (primitive 'string')");
-      COMP (units,
-            "array 'SH3 3, self.ndims' (primitive 'string')");
-      COMP (guihide,            "primitive 'int'");
-      IOASSOC (PA_BOOLEAN);
+      COMP (datatype,           "primitive 'int'"); IOASSOC (PA_DATATYPE);
+      COMP (min_extents,        "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
+      COMP (max_extents,        "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
+      COMP (labels,             "array 'SH3 3, self.ndims' (primitive 'string')");
+      COMP (units,              "array 'SH3 3, self.ndims' (primitive 'string')");
+      COMP (guihide,            "primitive 'int'"); IOASSOC (PA_BOOLEAN);
       COMP (base_index,         "array 3 (primitive 'int')");
+      COMP (start_index,        "array 3 (primitive 'int')");
+      COMP (size_index,         "array 3 (primitive 'int')");
       COMP (mrgtree_name,       "primitive 'string'");
-      COMP (coords,
-            "array 'SH3 3, self.ndims' "
+      COMP (alt_nodenum_vars,   "pointer (array 'SH5 0, self.alt_nodenum_vars' (primitive 'string'))");
+      COMP (alt_zonenum_vars,   "pointer (array 'SH5 0, self.alt_zonenum_vars' (primitive 'string'))");
+      COMP (coords,             "array 'SH3 3, self.ndims' "
             "(pointer (array 'SH1 self.coordtype, self.dims' "
             "(primitive 'self.datatype')))");
+      COMP (ghost_node_labels,  "pointer (array 'self.dims' (primitive 'int8'))");
+      COMP (ghost_zone_labels,  "pointer (array 'SH6 -1, self.dims' (primitive 'int8'))");
    } ESTRUCT;
 
    STRUCT (DBquadvar) {
@@ -1839,36 +1838,29 @@ stc_silo_types (void) {
       COMP (time,               "primitive 'float'");
       COMP (dtime,              "primitive 'double'");
       COMP (meshid,             "primitive 'int'");
-      COMP (datatype,           "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (centering,          "primitive 'int'");
-      IOASSOC (PA_CENTERING);
+      COMP (datatype,           "primitive 'int'"); IOASSOC (PA_DATATYPE);
+      COMP (centering,          "primitive 'int'"); IOASSOC (PA_CENTERING);
       COMP (nels,               "primitive 'int'");
       COMP (nvals,              "primitive 'int'");
       COMP (ndims,              "primitive 'int'");
       COMP (dims,               "array 'SH3 3, self.ndims' (primitive 'int')");
-      COMP (major_order,        "primitive 'int'");
-      IOASSOC (PA_ORDER);
+      COMP (major_order,        "primitive 'int'"); IOASSOC (PA_ORDER);
       COMP (stride,             "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (min_index,          "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (max_index,          "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (origin,             "primitive 'int'");
-      COMP (align,
-            "array 'SH3 3, self.ndims' (primitive 'float')");
+      COMP (align,              "array 'SH3 3, self.ndims' (primitive 'float')");
       COMP (mixlen,             "primitive 'int'");
-      COMP (use_specmf,         "primitive 'int'");
-      IOASSOC (PA_ONOFF);
-      COMP (ascii_labels,       "primitive 'int'");
-      IOASSOC (PA_BOOLEAN);
-      COMP (guihide,            "primitive 'int'");
-      IOASSOC (PA_BOOLEAN);
+      COMP (use_specmf,         "primitive 'int'"); IOASSOC (PA_ONOFF);
+      COMP (ascii_labels,       "primitive 'int'"); IOASSOC (PA_BOOLEAN);
+      COMP (guihide,            "primitive 'int'"); IOASSOC (PA_BOOLEAN);
       COMP (conserved,          "primitive 'int'");
       COMP (extensive,          "primitive 'int'");
-      COMP (mixvals,
-            "pointer (array 'self.nvals' (pointer (array 'self.mixlen' "
+      COMP (missing_value,      "primitive 'double'"); IOASSOC (PA_MISSING_VALUE);
+      COMP (region_pnames,      "pointer (array 'SH5 0, self.region_pnames' (primitive 'string'))");
+      COMP (mixvals,            "pointer (array 'self.nvals' (pointer (array 'self.mixlen' "
             "(primitive 'self.datatype'))))");
-      COMP (vals,
-            "pointer (array 'self.nvals' (pointer (array 'self.nels' "
+      COMP (vals,               "pointer (array 'self.nvals' (pointer (array 'self.nels' "
             "(primitive 'self.datatype'))))");
    } ESTRUCT;
 
@@ -1879,21 +1871,20 @@ stc_silo_types (void) {
       COMP (origin,             "primitive 'int'");
       COMP (min_index,          "primitive 'int'");
       COMP (max_index,          "primitive 'int'");
-      COMP (gnznodtype,         "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
+      COMP (gnznodtype,         "primitive 'int'"); IOASSOC (PA_DATATYPE);
       COMP (lnodelist,          "primitive 'int'");
-      COMP (shapecnt,
-            "pointer (array 'self.nshapes' (primitive 'int'))");
-      COMP (shapesize,
-            "pointer (array 'self.nshapes' (primitive 'int'))");
-      COMP (shapetype,
-            "pointer (array 'self.nshapes' (primitive 'int'))");
-      COMP (nodelist,
-            "pointer (array 'self.lnodelist' (primitive 'int'))");
-      COMP (zoneno,
-            "pointer (array 'self.nzones' (primitive 'int'))");
-      COMP (gzoneno,
-            "pointer (array 'self.nzones' (primitive 'self.gnznodtype'))");
+      COMP (shapecnt,           "pointer (array 'self.nshapes' (primitive 'int'))");
+      COMP (shapesize,          "pointer (array 'self.nshapes' (primitive 'int'))");
+
+      tmp = obj_new (C_PRIM, "int");
+      prim_set_io_assoc (tmp, PA_ZONETYPE);
+      tmp = obj_new (C_PTR, obj_new (C_ARY, "self.nshapes", tmp));
+      COMP3 (shapetype, "shapetype", tmp);
+
+      COMP (nodelist,           "pointer (array 'self.lnodelist' (primitive 'int'))");
+      COMP (zoneno,             "pointer (array 'self.nzones' (primitive 'int'))");
+      COMP (gzoneno,            "pointer (array 'self.nzones' (primitive 'self.gnznodtype'))");
+      COMP (ghost_zone_labels,  "pointer (array 'self.nzones' (primitive 'int8'))");
    } ESTRUCT;
 
    STRUCT (DBphzonelist) {
@@ -1904,22 +1895,16 @@ stc_silo_types (void) {
       COMP (hi_offset,          "primitive 'int'");
       COMP (lnodelist,          "primitive 'int'");
       COMP (lfacelist,          "primitive 'int'");
-      COMP (gnznodtype,         "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (nodecnt,
-            "pointer (array 'self.nfaces' (primitive 'int'))");
-      COMP (nodelist,
-            "pointer (array 'self.lnodelist' (primitive 'int'))");
-      COMP (extface,
-            "pointer (array 'self.nfaces' (primitive 'int8'))");
-      COMP (facecnt,
-            "pointer (array 'self.nzones' (primitive 'int'))");
-      COMP (facelist,
-            "pointer (array 'self.lfacelist' (primitive 'int'))");
-      COMP (zoneno,
-            "pointer (array 'self.nzones' (primitive 'int'))");
-      COMP (gzoneno,
-            "pointer (array 'self.nzones' (primitive 'self.gnznodtype'))");
+      COMP (gnznodtype,         "primitive 'int'"); IOASSOC (PA_DATATYPE);
+      COMP (alt_zonenum_vars,   "pointer (array 'SH5 0, self.alt_zonenum_vars' (primitive 'string'))");
+      COMP (nodecnt,            "pointer (array 'self.nfaces' (primitive 'int'))");
+      COMP (nodelist,           "pointer (array 'self.lnodelist' (primitive 'int'))");
+      COMP (extface,            "pointer (array 'self.nfaces' (primitive 'int8'))");
+      COMP (facecnt,            "pointer (array 'self.nzones' (primitive 'int'))");
+      COMP (facelist,           "pointer (array 'self.lfacelist' (primitive 'int'))");
+      COMP (zoneno,             "pointer (array 'self.nzones' (primitive 'int'))");
+      COMP (gzoneno,            "pointer (array 'self.nzones' (primitive 'self.gnznodtype'))");
+      COMP (ghost_zone_labels,  "pointer (array 'self.nzones' (primitive 'int8'))");
    } ESTRUCT;
 
    STRUCT (DBcsgzonelist) {
@@ -1930,6 +1915,7 @@ stc_silo_types (void) {
       COMP (datatype,          "primitive 'int'");
       COMP (min_index,         "primitive 'int'");
       COMP (max_index,         "primitive 'int'");
+      COMP (alt_zonenum_vars,  "pointer (array 'SH5 0, self.alt_zonenum_vars' (primitive 'string'))");
 
       tmp = obj_new (C_PRIM, "int");
       prim_set_io_assoc (tmp, PA_REGIONOP);
@@ -2008,6 +1994,7 @@ stc_silo_types (void) {
       COMP (disjoint_mode,      "primitive 'int'");
       COMP (lcoeffs,            "primitive 'int'");
       COMP (datatype,           "primitive 'int'");
+      COMP (alt_nodenum_vars,   "pointer (array 'SH5 0, self.alt_nodenum_vars' (primitive 'string'))");
 
       tmp = obj_new (C_PRIM, "int");
       prim_set_io_assoc (tmp, PA_BOUNDARYTYPE);
@@ -2045,6 +2032,9 @@ stc_silo_types (void) {
       IOASSOC (PA_BOOLEAN);
       COMP (conserved,          "primitive 'int'");
       COMP (extensive,          "primitive 'int'");
+      COMP (missing_value,      "primitive 'double'");
+      IOASSOC (PA_MISSING_VALUE);
+      COMP (region_pnames,      "pointer (array 'SH5 0, self.region_pnames' (primitive 'string'))");
       COMP (vals,
             "pointer (array 'self.nvals' (pointer "
             "(array 'self.nels' (primitive 'self.datatype'))))");
@@ -2058,37 +2048,27 @@ stc_silo_types (void) {
       COMP (cycle,              "primitive 'int'");
       COMP (time,               "primitive 'float'");
       COMP (dtime,              "primitive 'double'");
-      COMP (coord_sys,          "primitive 'int'");
-      IOASSOC (PA_COORDSYS);
-      COMP (topo_dim,           "primitive 'int'");
-      IOASSOC (PA_TOPODIM);
+      COMP (coord_sys,          "primitive 'int'"); IOASSOC (PA_COORDSYS);
+      COMP (topo_dim,           "primitive 'int'"); IOASSOC (PA_TOPODIM);
       COMP (ndims,              "primitive 'int'");
       COMP (nnodes,             "primitive 'int'");
       COMP (origin,             "primitive 'int'");
-      COMP (datatype,           "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (units,
-            "array 'SH3 3, self.ndims' (primitive 'string')");
-      COMP (labels,
-            "array 'SH3 3, self.ndims' (primitive 'string')");
-      COMP (guihide,            "primitive 'int'");
-      IOASSOC (PA_BOOLEAN);
-      COMP (mrgtree_name,      "primitive 'string'");
-      COMP (tv_connectivity,   "primitive 'int'");
-      COMP (disjoint_mode,     "primitive 'int'");
-      COMP (gnznodtype,        "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (min_extents,
-            "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
-      COMP (max_extents,
-            "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
-      COMP (coords,
-            "array 'SH3 3, self.ndims' (pointer (array 'self.nnodes' "
+      COMP (datatype,           "primitive 'int'"); IOASSOC (PA_DATATYPE);
+      COMP (units,              "array 'SH3 3, self.ndims' (primitive 'string')");
+      COMP (labels,             "array 'SH3 3, self.ndims' (primitive 'string')");
+      COMP (guihide,            "primitive 'int'"); IOASSOC (PA_BOOLEAN);
+      COMP (mrgtree_name,       "primitive 'string'");
+      COMP (tv_connectivity,    "primitive 'int'");
+      COMP (disjoint_mode,      "primitive 'int'");
+      COMP (gnznodtype,         "primitive 'int'"); IOASSOC (PA_DATATYPE);
+      COMP (min_extents,        "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
+      COMP (max_extents,        "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
+      COMP (alt_nodenum_vars,   "pointer (array 'SH5 0, self.alt_nodenum_vars' (primitive 'string'))");
+      COMP (coords,             "array 'SH3 3, self.ndims' (pointer (array 'self.nnodes' "
             "(primitive 'self.datatype')))");
-      COMP (gnodeno,
-            "pointer (array 'self.nnodes' (primitive 'self.gnznodtype'))");
-      COMP (nodeno,
-            "pointer (array 'self.nnodes' (primitive 'int'))");
+      COMP (gnodeno,            "pointer (array 'self.nnodes' (primitive 'self.gnznodtype'))");
+      COMP (nodeno,             "pointer (array 'self.nnodes' (primitive 'int'))");
+      COMP (ghost_node_labels,  "pointer (array 'self.nnodes' (primitive 'int8'))");
       COMP (faces,              "pointer 'DBfacelist'");
       COMP (zones,              "pointer 'DBzonelist'");
       COMP (edges,              "pointer 'DBedgelist'");
@@ -2122,6 +2102,9 @@ stc_silo_types (void) {
       IOASSOC (PA_BOOLEAN);
       COMP (conserved,          "primitive 'int'");
       COMP (extensive,          "primitive 'int'");
+      COMP (missing_value,      "primitive 'double'");
+      IOASSOC (PA_MISSING_VALUE);
+      COMP (region_pnames,      "pointer (array 'SH5 0, self.region_pnames' (primitive 'string'))");
       COMP (vals,
             "pointer (array 'self.nvals' (pointer "
             "(array 'self.nels' (primitive 'self.datatype'))))");
@@ -2144,24 +2127,20 @@ stc_silo_types (void) {
       COMP (ndims,              "primitive 'int'");
       COMP (nels,               "primitive 'int'");
       COMP (origin,             "primitive 'int'");
-      COMP (units,
-            "array 'SH3 3, self.ndims' (primitive 'string')");
-      COMP (labels,
-            "array 'SH3 3, self.ndims' (primitive 'string')");
+      COMP (units,              "array 'SH3 3, self.ndims' (primitive 'string')");
+      COMP (labels,             "array 'SH3 3, self.ndims' (primitive 'string')");
       COMP (guihide,            "primitive 'int'");
       IOASSOC (PA_BOOLEAN);
       COMP (mrgtree_name,       "primitive 'string'");
       COMP (gnznodtype,         "primitive 'int'");
       IOASSOC (PA_DATATYPE);
-      COMP (min_extents,
-            "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
-      COMP (max_extents,
-            "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
-      COMP (coords,
-            "array 'self.ndims' (pointer (array 'self.nels' "
+      COMP (min_extents,        "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
+      COMP (max_extents,        "array 'SH3 3, self.ndims' (primitive 'self.datatype')");
+      COMP (alt_nodenum_vars,   "pointer (array 'SH5 0, self.alt_nodenum_vars' (primitive 'string'))");
+      COMP (coords,             "array 'self.ndims' (pointer (array 'self.nels' "
             "(primitive 'self.datatype')))");
-      COMP (gnodeno,
-            "pointer (array 'self.nels' (primitive 'self.gnznodtype'))");
+      COMP (gnodeno,            "pointer (array 'self.nels' (primitive 'self.gnznodtype'))");
+      COMP (ghost_node_labels,  "pointer (array 'self.nels' (primitive 'int8'))");
    } ESTRUCT;
 
    STRUCT (DBmeshvar) {
@@ -2183,27 +2162,24 @@ stc_silo_types (void) {
       COMP (origin,             "primitive 'int'");
       COMP (centering,          "primitive 'int'");
       IOASSOC (PA_CENTERING);
-      COMP (align,
-            "array 'SH3 3, self.ndims' (primitive 'float')");
-      COMP (dims,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (align,              "array 'SH3 3, self.ndims' (primitive 'float')");
+      COMP (dims,               "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (major_order,        "primitive 'int'");
       IOASSOC (PA_ORDER);
-      COMP (stride,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
-      COMP (min_index,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
-      COMP (max_index,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (stride,             "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (min_index,          "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (max_index,          "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (guihide,            "primitive 'int'");
       IOASSOC (PA_BOOLEAN);
       COMP (ascii_labels,       "primitive 'int'");
       IOASSOC (PA_BOOLEAN);
       COMP (conserved,          "primitive 'int'");
       COMP (extensive,          "primitive 'int'");
-      COMP (vals,
-            "pointer (array 'self.nvals' (pointer "
-            "(array 'self.nels' (primitive 'self.datatype'))))");
+      COMP (missing_value,      "primitive 'double'");
+      IOASSOC (PA_MISSING_VALUE);
+      COMP (region_pnames,      "pointer (array 'SH5 0, self.region_pnames' (primitive 'string'))");
+      COMP (vals,               "pointer (array 'self.nvals' (pointer "
+                                "(array 'self.nels' (primitive 'self.datatype'))))");
    } ESTRUCT;
 
    STRUCT (DBmaterial) {
@@ -2212,19 +2188,14 @@ stc_silo_types (void) {
       COMP (meshname,           "primitive 'string'");
       COMP (ndims,              "primitive 'int'");
       COMP (origin,             "primitive 'int'");
-      COMP (dims,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (dims,               "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (major_order,        "primitive 'int'");
       IOASSOC (PA_ORDER);
-      COMP (stride,
-            "array 'SH3 3, self.ndims' (primitive 'int')");
+      COMP (stride,             "array 'SH3 3, self.ndims' (primitive 'int')");
       COMP (nmat,               "primitive 'int'");
-      COMP (matnos,
-            "pointer (array 'self.nmat' (primitive 'int'))");
-      COMP (matnames,
-            "pointer (array 'self.nmat' (primitive 'string'))");
-      COMP (matcolors,
-            "pointer (array 'self.nmat' (primitive 'string'))");
+      COMP (matnos,             "pointer (array 'self.nmat' (primitive 'int'))");
+      COMP (matnames,           "pointer (array 'self.nmat' (primitive 'string'))");
+      COMP (matcolors,          "pointer (array 'self.nmat' (primitive 'string'))");
       COMP (allowmat0,          "primitive 'int'");
       IOASSOC (PA_BOOLEAN);
       COMP (guihide,            "primitive 'int'");
@@ -2232,16 +2203,11 @@ stc_silo_types (void) {
       COMP (mixlen,             "primitive 'int'");
       COMP (datatype,           "primitive 'int'");
       IOASSOC (PA_DATATYPE);
-      COMP (matlist,
-            "pointer (array 'SH2, self.dims' (primitive 'int'))");
-      COMP (mix_vf,
-            "pointer (array 'self.mixlen' (primitive 'self.datatype'))");
-      COMP (mix_next,
-            "pointer (array 'self.mixlen' (primitive 'int'))");
-      COMP (mix_mat,
-            "pointer (array 'self.mixlen' (primitive 'int'))");
-      COMP (mix_zone,
-            "pointer (array 'self.mixlen' (primitive 'int'))");
+      COMP (matlist,            "pointer (array 'SH2, self.dims' (primitive 'int'))");
+      COMP (mix_vf,             "pointer (array 'self.mixlen' (primitive 'self.datatype'))");
+      COMP (mix_next,           "pointer (array 'self.mixlen' (primitive 'int'))");
+      COMP (mix_mat,            "pointer (array 'self.mixlen' (primitive 'int'))");
+      COMP (mix_zone,           "pointer (array 'self.mixlen' (primitive 'int'))");
    } ESTRUCT;
 
    STRUCT (DBmatspecies) {
@@ -2276,20 +2242,8 @@ stc_silo_types (void) {
             "pointer (array 'self.mixlen' (primitive 'int'))");
    } ESTRUCT;
 
-   STRUCT (DBcompoundarray) {
-      COMP (id,                 "primitive 'int'");
-      COMP (name,               "primitive 'string'");
-      COMP (nelems,             "primitive 'int'");
-      COMP (nvalues,            "primitive 'int'");
-      COMP (datatype,           "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (elemnames,
-            "pointer (array 'self.nelems' (primitive 'string'))");
-      COMP (elemlengths,
-            "pointer (array 'self.nelems' (primitive 'int'))");
-      COMP (values,
-            "pointer (array 'self.nvalues' (primitive 'self.datatype'))");
-   } ESTRUCT;
+    /* The DBcompoundarray object is handled specially in browser using the
+       browser_DBGetCompoundarray() function */
 
    STRUCT (DBmrgtree) {
       WALK1 (stc_walk1_DBmrgtree);
@@ -2300,30 +2254,8 @@ stc_silo_types (void) {
       COMP (num_nodes,          "primitive 'int'");
    } ESTRUCT;
 
-   STRUCT(DBgroupelmap) {
-      COMP (name,               "primitive 'string'");
-      COMP (num_segments,       "primitive 'int'");
-      COMP (fracs_data_type,    "primitive 'int'");
-      IOASSOC (PA_DATATYPE);
-      COMP (segment_lengths,
-            "pointer (array 'self.num_segments' (primitive 'int'))");
-      COMP (groupel_types,
-            "pointer (array 'self.num_segments' (primitive 'int'))");
-      tmp = obj_new (C_PRIM, "int");
-      prim_set_io_assoc (tmp, PA_CENTERING);
-      tmp = obj_new (C_PTR, obj_new (C_ARY, "self.num_segments", tmp));
-      COMP3 (groupel_types, "groupel_types", tmp);
-      COMP (segment_ids,
-            "pointer (array 'self.num_segments' (primitive 'int'))");
-      COMP (segment_data,
-            "pointer (array 'SH3 1000, self.num_segments' "
-            "(pointer (array 'SH1 DB_COLLINEAR, self.segment_lengths' "
-            "(primitive 'int'))))");
-      COMP (segment_fracs,
-            "pointer (array 'SH3 1000, self.num_segments' "
-            "(pointer (array 'SH1 DB_COLLINEAR, self.segment_lengths' "
-            "(primitive 'self.fracs_data_type'))))");
-   } ESTRUCT;
+    /* The DBgroupelmap object is handled specially in browser using the
+       browser_DBGroupelmap() function */
 
    STRUCT (DBmrgvar) {
       COMP (name,               "primitive 'string'");
@@ -2332,13 +2264,10 @@ stc_silo_types (void) {
       COMP (nregns,             "primitive 'int'");
       COMP (datatype,           "primitive 'int'");
       IOASSOC (PA_DATATYPE);
-      COMP (compnames,
-            "pointer (array 'self.ncomps' (primitive 'string'))");
-      COMP (reg_pnames,
-            "pointer (array '1' (primitive 'string'))");
-      COMP (data,
-            "pointer (array 'self.ncomps' (pointer "
-            "(array 'self.nregns' (primitive 'self.datatype'))))");
+      COMP (compnames,          "pointer (array 'self.ncomps' (primitive 'string'))");
+      COMP (reg_pnames,         "pointer (array 'SH5 0, self.reg_pnames' (primitive 'string'))");
+      COMP (data,               "pointer (array 'self.ncomps' (pointer "
+                                "(array 'self.nregns' (primitive 'self.datatype'))))");
    } ESTRUCT;
 
    STRUCT (toc_t) {
@@ -2351,14 +2280,12 @@ stc_silo_types (void) {
       WALK1 (stc_walk1_DBdirectory);
       WALK2 (stc_walk2_DBdirectory);
       COMP (nsyms,              "primitive 'int'");
-      COMP (entry_ptr,
-            "pointer (array 'self.nsyms' (pointer 'toc_t'))");
+      COMP (entry_ptr,          "pointer (array 'self.nsyms' (pointer 'toc_t'))");
    } ESTRUCT;
 
    STRUCT (DBtoc) {
       COMP (ncurve,             "primitive 'int'");
-      COMP (curve_names,
-            "pointer (array 'self.ncurve' (primitive 'string'))");
+      COMP (curve_names,        "pointer (array 'self.ncurve' (primitive 'string'))");
       COMP (ndefvars,           "primitive 'int'");
       COMP (defvars_names,
             "pointer (array 'self.ndefvars' (primitive 'string'))");
diff --git a/tools/browser/str.c b/tools/browser/str.c
index bf085d6..57648f6 100644
--- a/tools/browser/str.c
+++ b/tools/browser/str.c
@@ -101,10 +101,10 @@ static int      str_diff (obj_t, obj_t);
 class_t
 str_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = strdup ("STR");
-   cls->new = str_new;
+   cls->newobj = str_new;
    cls->copy = str_copy;
    cls->dest = str_dest;
    cls->print = str_print;
@@ -135,7 +135,7 @@ static obj_t
 str_new (va_list ap) {
 
    char         *s;
-   obj_str_t    *self = calloc (1, sizeof(obj_str_t));
+   obj_str_t    *self = (obj_str_t *)calloc (1, sizeof(obj_str_t));
 
    assert (self);
    s = va_arg (ap, char*);
@@ -171,7 +171,7 @@ str_copy (obj_t _self, int flag) {
       retval = self;
 
    } else {
-      retval = calloc (1, sizeof(obj_str_t));
+      retval = (obj_str_t *)calloc (1, sizeof(obj_str_t));
       retval->s = strdup (self->s);
    }
    return (obj_t)retval;
diff --git a/tools/browser/switch.c b/tools/browser/switch.c
index 6e73015..d9e23e7 100644
--- a/tools/browser/switch.c
+++ b/tools/browser/switch.c
@@ -81,7 +81,7 @@ static char *switch_synopsis(switch_t *sw, char *buffer);
 switches_t *
 switch_new(void)
 {
-    return calloc(1, sizeof(switches_t));
+    return (switches_t *)calloc(1, sizeof(switches_t));
 }
 
 /*---------------------------------------------------------------------------
@@ -111,7 +111,7 @@ switch_add(switches_t *switches, const char *short_name, const char *long_name,
     } else {
         if (switches->nused+1>=switches->nalloc) {
             switches->nalloc = MAX(100, 2*switches->nalloc);
-            switches->sw = realloc(switches->sw,
+            switches->sw = (switch_t *)realloc(switches->sw,
                                    switches->nalloc*sizeof(switch_t));
         }
         found = switches->sw + switches->nused++;
@@ -155,7 +155,7 @@ switch_info(switch_t *sw, void *info)
 void
 switch_doc(switch_t *sw, const char *doc_string)
 {
-    char        *fulldoc = malloc(8192);
+    char        *fulldoc = (char *)malloc(8192);
 
     /* Set switch info */
     if (!sw) sw = switch_latest;
diff --git a/tools/browser/sym.c b/tools/browser/sym.c
index da9784f..574e5a4 100644
--- a/tools/browser/sym.c
+++ b/tools/browser/sym.c
@@ -123,10 +123,10 @@ static char *   sym_name (obj_t);
 class_t
 sym_class (void) {
 
-   class_t      cls = calloc (1, sizeof(*cls));
+   class_t      cls = (class_t)calloc (1, sizeof(*cls));
 
    cls->name = safe_strdup ("SYM");
-   cls->new = sym_new;
+   cls->newobj = sym_new;
    cls->dest = NULL;
    cls->copy = NULL;
    cls->print = sym_print;
@@ -180,10 +180,10 @@ sym_new (va_list ap) {
    if (!sym && unused<0) {
       if (!Symbol) {
          NSymbols = 1024;
-         Symbol = calloc (NSymbols, sizeof(sym_t));
+         Symbol = (sym_t*)calloc (NSymbols, sizeof(sym_t));
          unused = 0;
       } else {
-         Symbol = realloc (Symbol, (NSymbols+1024) * sizeof(sym_t));
+         Symbol = (sym_t*)realloc (Symbol, (NSymbols+1024) * sizeof(sym_t));
          memset (Symbol+NSymbols, 0, 1024*sizeof(sym_t));
          unused = NSymbols;
          NSymbols += 1024;
@@ -195,7 +195,7 @@ sym_new (va_list ap) {
       sym->name = safe_strdup (name);
    }
 
-   self = calloc (1, sizeof(obj_sym_t));
+   self = (obj_sym_t*)calloc (1, sizeof(obj_sym_t));
    self->sym = sym;
    return (obj_t)self;
 }
@@ -842,12 +842,12 @@ sym_init (void)
               "`comp_names' or `pdb_names' arrays since the SILO DBobject "
               "is regenerated from the user-friendly fields before being "
               "saved back to the file.");
-   sym_bi_set("rdonly",         "0",
-              "Open files for read-only access.",
+   sym_bi_set("writeable",         "0",
+              "Open files for write access.",
               "If this variable has any true value (nil, zero, and the empty "
               "string are considered false) then the browser opens files in "
-              "read-only mode regardless of the file permissions. Editing "
-              "objects in a read-only file is not allowed.");
+              "write mode if the file permissions allow it. Editing "
+              "objects in a writeable file is allowed.");
    sym_bi_set("diff",           NULL,
               "Influence behavior of `diff' function.",
               "This variable controls the details of the `diff' function. It "
@@ -977,19 +977,19 @@ sym_init (void)
    sym_bi_set("fmt_null",       "(null)",       "Null format",
               "This is a C printf() format string used to render null "
               "pointers in the browser output.");
-   sym_bi_set("fmt_int8",       "(int8)%hhd",   "Byte format",
+   sym_bi_set("fmt_int8",       "%hhd",   "Byte format",
               "This is a C printf() format string used to render byte "
               "values in the browser output.");
-   sym_bi_set("fmt_short",      "(short)%hd",   "Short format",
+   sym_bi_set("fmt_short",      "%hd",   "Short format",
               "This is a C printf() format string used to render short "
               "integer values in the browser output.");
    sym_bi_set("fmt_int",        "%d",           "Integer format",
               "This is a C printf() format string used to render integer "
               "values in the browser output.");
-   sym_bi_set("fmt_long",       "(long)%ld",    "Long format",
+   sym_bi_set("fmt_long",       "%ld",    "Long format",
               "This is a C printf() format string used to render long "
               "integer values in the browser output.");
-   sym_bi_set("fmt_long_long",   "(long long)%lld",         "Long long format",
+   sym_bi_set("fmt_long_long",   "%lld",         "Long long format",
               "This is a C printf() format string used to render long "
               "long integer values in the browser output.");
 
diff --git a/tools/Makefile.am b/tools/json/Makefile.am
similarity index 92%
copy from tools/Makefile.am
copy to tools/json/Makefile.am
index 04ce234..9e35b4f 100644
--- a/tools/Makefile.am
+++ b/tools/json/Makefile.am
@@ -52,23 +52,7 @@
 #
 ## Procss this file with automake to create Makefile.in
 
+EXTRA_DIST = json-c-0.10.tar.gz jsonify_silo_example.c
 
-TOOLS_DIR =
-if BROWSER_NEEDED
-TOOLS_DIR += browser silock
-endif
-if PYTHON_NEEDED
-TOOLS_DIR += python
-endif
-if SILEX_NEEDED
-TOOLS_DIR += silex
-endif
-SUBDIRS = \
- . \
- $(TOOLS_DIR)
-DIST_SUBDIRS = \
- . \
- browser \
- python \
- silex \
- silock
+distclean-local:
+	rm -rf json-c-0.10
diff --git a/svn_bin/Makefile.in b/tools/json/Makefile.in
similarity index 93%
copy from svn_bin/Makefile.in
copy to tools/json/Makefile.in
index 91d5ed6..a2c83e5 100644
--- a/svn_bin/Makefile.in
+++ b/tools/json/Makefile.in
@@ -86,7 +86,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-subdir = svn_bin
+subdir = tools/json
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ax_check_compiler_flags.m4 \
@@ -157,6 +157,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -205,9 +206,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -281,15 +279,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-EXTRA_DIST = \
- build-3rdparty-closed \
- build-3rdparty-open \
- regressiontest \
- silo-release-closed \
- silo-release-open \
- get_sys_info \
- winsilo-dist
-
+EXTRA_DIST = json-c-0.10.tar.gz jsonify_silo_example.c
 all: all-am
 
 .SUFFIXES:
@@ -302,9 +292,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign svn_bin/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/json/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign svn_bin/Makefile
+	  $(AUTOMAKE) --foreign tools/json/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -401,7 +391,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-local
 
 dvi: dvi-am
 
@@ -464,16 +454,20 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir 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-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 installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir 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-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 installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am
+
+
+distclean-local:
+	rm -rf json-c-0.10
 
 # 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/tools/json/json-c-0.10.tar.gz b/tools/json/json-c-0.10.tar.gz
new file mode 100644
index 0000000..f585999
Binary files /dev/null and b/tools/json/json-c-0.10.tar.gz differ
diff --git a/tools/json/jsonify_silo_example.c b/tools/json/jsonify_silo_example.c
new file mode 100644
index 0000000..a698291
--- /dev/null
+++ b/tools/json/jsonify_silo_example.c
@@ -0,0 +1,287 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <string.h>
+#include <assert.h>
+
+#include "json.h"
+#include "parse_flags.h"
+
+#include <silo.h>
+
+static int sort_fn (const void *j1, const void *j2)
+{
+  json_object * const *jso1, * const *jso2;
+  int i1, i2;
+
+  jso1 = j1;
+  jso2 = j2;
+  if (!*jso1 && !*jso2) {
+    return 0;
+  }
+  if (!*jso1) {
+    return -1;
+  }
+  if (!*jso2) {
+    return 1;
+  }
+
+  i1 = json_object_get_int(*jso1);
+  i2 = json_object_get_int(*jso2);
+
+  return i1 - i2;
+}
+
+#ifdef TEST_FORMATTED
+#define json_object_to_json_string(obj) json_object_to_json_string_ext(obj,sflags)
+#else
+/* no special define */
+#endif
+
+struct json_object *json_object_new_stringsafe(char const *s)
+{
+    if (!s || !*s)
+        return json_object_new_string("");
+    else
+        return json_object_new_string(s);
+}
+
+struct json_object *json_object_new_strptr(void *p)
+{
+    static char tmp[32];
+    snprintf(tmp, sizeof(tmp), "%p", p);
+    return json_object_new_string(tmp);
+}
+
+void *json_object_get_strptr(struct json_object *o)
+{
+    void *p;
+    char const *strptr = json_object_get_string(o);
+    sscanf(strptr, "%p", &p);
+    return p;
+}
+
+int json_object_object_length(struct json_object *o)
+{
+    struct lh_table *t = json_object_get_object(o);
+    return t->count;
+}
+
+extern char *db_GetDatatypeString(int);
+
+struct json_object *json_object_new_extptr(void *p, int ndims, int const *dims, int datatype)
+{
+    int i;
+    struct json_object *jobj = json_object_new_object();
+    struct json_object *jarr = json_object_new_array();
+
+    for (i = 0; i < ndims; i++)
+        json_object_array_add(jarr, json_object_new_int(dims[i]));
+
+    json_object_object_add(jobj, "ptr", json_object_new_strptr(p));
+    json_object_object_add(jobj, "datatype", json_object_new_int(datatype));
+    json_object_object_add(jobj, "ndims", json_object_new_int(ndims));
+    json_object_object_add(jobj, "dims", jarr);
+
+#warning DO WE NEED TO DECRIMENT JARR REFS WITH PUT CALL
+
+    return jobj;
+}
+
+int DBWriteJsonObject(DBfile *dbfile, struct json_object *jobj)
+{
+    json_object *silo_type_obj = json_object_object_get(jobj, "silo_type");
+    json_object *silo_name_obj = json_object_object_get(jobj, "silo_name");
+    DBobject *sobj = DBMakeObject( 
+                         json_object_get_string(silo_name_obj),
+                         json_object_get_int(silo_type_obj),
+                         json_object_object_length(jobj)+10
+                     );
+    struct json_object_iterator jiter = json_object_iter_begin(jobj);
+    struct json_object_iterator jend = json_object_iter_end(jobj);
+    while (!json_object_iter_equal(&jiter, &jend))
+    {
+        struct json_object *mobj = json_object_iter_peek_value(&jiter);
+        char const *mname = json_object_iter_peek_name(&jiter);
+        json_type jtype = json_object_get_type(mobj);
+
+        switch (jtype)
+        {
+            case json_type_array:
+            case json_type_null: break;
+            case json_type_boolean:
+            case json_type_int:
+            {
+                int val = 0;
+                if (jtype == json_type_boolean && json_object_get_boolean(mobj))
+                    val = 1;
+                else
+                    val = json_object_get_int(mobj);
+                DBAddIntComponent(sobj, mname, val);
+                break;
+            }
+            case json_type_double:
+            {
+                DBAddDblComponent(sobj, mname, json_object_get_double(mobj));
+                break;
+            }
+            case json_type_string:
+            {
+                if (strlen(json_object_get_string(mobj)))
+                    DBAddStrComponent(sobj, mname, json_object_get_string(mobj));
+                break;
+            }
+            case json_type_object: /* must be extptr array reference */
+            {
+                int i;
+                long dims[32];
+                void *p = json_object_get_strptr(json_object_object_get(mobj, "ptr"));
+                int datatype = json_object_get_int(json_object_object_get(mobj, "datatype"));
+                int ndims = json_object_get_int(json_object_object_get(mobj, "ndims"));
+                struct json_object *darr = json_object_object_get(mobj, "dims");
+                for (i = 0; i < ndims; i++)
+                    dims[i] = (long) json_object_get_int(json_object_array_get_idx(darr, i));
+printf("Writing component named \"%s\" to object named \"%s\"\n", mname, json_object_get_string(silo_name_obj));
+                DBWriteComponent(dbfile, sobj, mname, json_object_get_string(silo_name_obj),
+                    db_GetDatatypeString(datatype), p, ndims, dims);
+                break;
+            }
+        }
+        json_object_iter_next(&jiter);
+    }
+    return DBWriteObject(dbfile, sobj, 0);
+}
+
+
+int main(int argc, char **argv)
+{
+  json_object *my_string, *my_int, *my_object, *my_array, *jsilo_curve;
+  int i;
+#ifdef TEST_FORMATTED
+	int sflags = 0;
+#endif
+
+  MC_SET_DEBUG(1);
+
+#ifdef TEST_FORMATTED
+	sflags = parse_flags(argc, argv);
+#endif
+
+  my_string = json_object_new_string("\t");
+  printf("my_string=%s\n", json_object_get_string(my_string));
+  printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
+  json_object_put(my_string);
+
+  my_string = json_object_new_string("\\");
+  printf("my_string=%s\n", json_object_get_string(my_string));
+  printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
+  json_object_put(my_string);
+
+  my_string = json_object_new_string("foo");
+  printf("my_string=%s\n", json_object_get_string(my_string));
+  printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string));
+
+  my_int = json_object_new_int(9);
+  printf("my_int=%d\n", json_object_get_int(my_int));
+  printf("my_int.to_string()=%s\n", json_object_to_json_string(my_int));
+
+  my_array = json_object_new_array();
+  json_object_array_add(my_array, json_object_new_int(1));
+  json_object_array_add(my_array, json_object_new_int(2));
+  json_object_array_add(my_array, json_object_new_int(3));
+  json_object_array_put_idx(my_array, 4, json_object_new_int(5));
+  printf("my_array=\n");
+  for(i=0; i < json_object_array_length(my_array); i++) {
+    json_object *obj = json_object_array_get_idx(my_array, i);
+    printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
+  }
+  printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));    
+
+  json_object_put(my_array);
+
+  my_array = json_object_new_array();
+  json_object_array_add(my_array, json_object_new_int(3));
+  json_object_array_add(my_array, json_object_new_int(1));
+  json_object_array_add(my_array, json_object_new_int(2));
+  json_object_array_put_idx(my_array, 4, json_object_new_int(0));
+  printf("my_array=\n");
+  for(i=0; i < json_object_array_length(my_array); i++) {
+    json_object *obj = json_object_array_get_idx(my_array, i);
+    printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
+  }
+  printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));    
+  json_object_array_sort(my_array, sort_fn);
+  printf("my_array=\n");
+  for(i=0; i < json_object_array_length(my_array); i++) {
+    json_object *obj = json_object_array_get_idx(my_array, i);
+    printf("\t[%d]=%s\n", i, json_object_to_json_string(obj));
+  }
+  printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array));    
+
+  my_object = json_object_new_object();
+  json_object_object_add(my_object, "abc", json_object_new_int(12));
+  json_object_object_add(my_object, "foo", json_object_new_string("bar"));
+  json_object_object_add(my_object, "bool0", json_object_new_boolean(0));
+  json_object_object_add(my_object, "bool1", json_object_new_boolean(1));
+  json_object_object_add(my_object, "baz", json_object_new_string("bang"));
+  json_object_object_add(my_object, "baz", json_object_new_string("fark"));
+  json_object_object_del(my_object, "baz");
+  /*json_object_object_add(my_object, "arr", my_array);*/
+  printf("my_object=\n");
+  json_object_object_foreach(my_object, key, val) {
+    printf("\t%s: %s\n", key, json_object_to_json_string(val));
+  }
+  printf("my_object.to_string()=%s\n", json_object_to_json_string(my_object));
+  json_object_to_file("mark_tmp.json", my_object);
+
+  json_object_put(my_string);
+  json_object_put(my_int);
+  json_object_put(my_object);
+  json_object_put(my_array);
+
+  {
+      char tmp[32];
+      DBfile *dbfile = DBOpen("curve.pdb", DB_UNKNOWN, DB_READ);
+      DBcurve *curve = DBGetCurve(dbfile, "sincurve");
+
+      jsilo_curve = json_object_new_object();
+
+      json_object_object_add(jsilo_curve, "silo_type", json_object_new_int(DB_CURVE));
+#warning BINDING OBJECT NAME HERE MANUALLY
+      json_object_object_add(jsilo_curve, "silo_name", json_object_new_string("sincurve"));
+      json_object_object_add(jsilo_curve, "id", json_object_new_int(curve->id));
+      json_object_object_add(jsilo_curve, "datatype", json_object_new_int(curve->datatype));
+      json_object_object_add(jsilo_curve, "origin", json_object_new_int(curve->origin));
+      json_object_object_add(jsilo_curve, "npts", json_object_new_int(curve->npts));
+      json_object_object_add(jsilo_curve, "guihide", json_object_new_boolean(curve->guihide));
+      json_object_object_add(jsilo_curve, "title", json_object_new_stringsafe(curve->title));
+      json_object_object_add(jsilo_curve, "xvarname", json_object_new_stringsafe(curve->xvarname));
+      json_object_object_add(jsilo_curve, "yvarname", json_object_new_stringsafe(curve->yvarname));
+      json_object_object_add(jsilo_curve, "xlabel", json_object_new_stringsafe(curve->xlabel));
+      json_object_object_add(jsilo_curve, "ylabel", json_object_new_stringsafe(curve->ylabel));
+      json_object_object_add(jsilo_curve, "xunits", json_object_new_stringsafe(curve->xunits));
+      json_object_object_add(jsilo_curve, "yunits", json_object_new_stringsafe(curve->yunits));
+      json_object_object_add(jsilo_curve, "reference", json_object_new_stringsafe(curve->reference));
+      json_object_object_add(jsilo_curve, "xvals", json_object_new_extptr(curve->x, 1, &(curve->npts), curve->datatype));
+      json_object_object_add(jsilo_curve, "yvals", json_object_new_extptr(curve->y, 1, &(curve->npts), curve->datatype));
+
+#if 0
+      json_object_object_add(jsilo_curve, "x", json_object_new_strptr(curve->x));
+      json_object_object_add(jsilo_curve, "x-datatype", json_object_new_int(curve->datatype));
+      json_object_object_add(jsilo_curve, "x-size", json_object_new_int(curve->npts));
+      json_object_object_add(jsilo_curve, "y", json_object_new_strptr(curve->y));
+      json_object_object_add(jsilo_curve, "y-datatype", json_object_new_int(curve->datatype));
+      json_object_object_add(jsilo_curve, "y-size", json_object_new_int(curve->npts));
+#endif
+
+      /*DBFreeCurve(curve); if we free it, we loose x and y members */
+      DBClose(dbfile);
+      printf("jsilo_object.to_string()=%s\n", json_object_to_json_string(jsilo_curve));
+
+      dbfile = DBCreate("curve_from_json.pdb", DB_CLOBBER, DB_LOCAL, "test json output", DB_PDB);
+      DBWriteJsonObject(dbfile, jsilo_curve);
+      DBClose(dbfile);
+    }
+
+  return 0;
+}
diff --git a/tools/Makefile.am b/tools/mapred/Makefile.am
similarity index 92%
copy from tools/Makefile.am
copy to tools/mapred/Makefile.am
index 04ce234..8d8f918 100644
--- a/tools/Makefile.am
+++ b/tools/mapred/Makefile.am
@@ -52,23 +52,6 @@
 #
 ## Procss this file with automake to create Makefile.in
 
+# See https://visitbugs.ornl.gov/projects/silo/wiki/Silo_Hadoop_and_VisIt
 
-TOOLS_DIR =
-if BROWSER_NEEDED
-TOOLS_DIR += browser silock
-endif
-if PYTHON_NEEDED
-TOOLS_DIR += python
-endif
-if SILEX_NEEDED
-TOOLS_DIR += silex
-endif
-SUBDIRS = \
- . \
- $(TOOLS_DIR)
-DIST_SUBDIRS = \
- . \
- browser \
- python \
- silex \
- silock
+EXTRA_DIST = mapper.py reducer.py stream_silo.c
diff --git a/svn_bin/Makefile.in b/tools/mapred/Makefile.in
similarity index 97%
copy from svn_bin/Makefile.in
copy to tools/mapred/Makefile.in
index 91d5ed6..7535877 100644
--- a/svn_bin/Makefile.in
+++ b/tools/mapred/Makefile.in
@@ -67,6 +67,8 @@
 # Government or Lawrence Livermore National Security, LLC, and shall not
 # be used for advertising or product endorsement purposes.
 #
+
+# See https://visitbugs.ornl.gov/projects/silo/wiki/Silo_Hadoop_and_VisIt
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -86,7 +88,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-subdir = svn_bin
+subdir = tools/mapred
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ax_check_compiler_flags.m4 \
@@ -157,6 +159,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -205,9 +208,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -281,15 +281,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-EXTRA_DIST = \
- build-3rdparty-closed \
- build-3rdparty-open \
- regressiontest \
- silo-release-closed \
- silo-release-open \
- get_sys_info \
- winsilo-dist
-
+EXTRA_DIST = mapper.py reducer.py stream_silo.c
 all: all-am
 
 .SUFFIXES:
@@ -302,9 +294,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign svn_bin/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/mapred/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign svn_bin/Makefile
+	  $(AUTOMAKE) --foreign tools/mapred/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
diff --git a/tools/mapred/mapper.py b/tools/mapred/mapper.py
new file mode 100644
index 0000000..981f0d9
--- /dev/null
+++ b/tools/mapred/mapper.py
@@ -0,0 +1,226 @@
+#!/usr/bin/env python
+
+import sys, os, re, math
+
+hot_colors = {0:[0,0,255,255], 0.25:[0,255,255,255], 0.5:[0,255,0,255], 0.75:[255,255,0,255], 1:[255,0,0,255]}
+
+# Va-Vb
+def vecsub(Va,Vb):
+    return [Va[0]-Vb[0],Va[1]-Vb[1],Va[2]-Vb[2]]
+
+def vecmag(V):
+    return math.sqrt(V[0]*V[0]+V[1]*V[1]+V[2]*V[2])
+
+def vecdot(Va,Vb):
+    return Va[0]*Vb[0]+Va[1]*Vb[1]+Va[2]*Vb[2]
+
+def normalize(V):
+    Vmag = vecmag(V)
+    return [V[0]/Vmag, V[1]/Vmag, V[2]/Vmag]
+
+def cross_prod(Va,Vb):
+    return [Va[1]*Vb[2]-Va[2]*Vb[1],-(Va[0]*Vb[2]-Va[2]*Vb[0]),Va[0]*Vb[1]-Va[1]*Vb[0]]
+
+def ray_tri_intersect(Pe, r, P1, P2, P3):
+    V21 = vecsub(P2,P1)
+    V32 = vecsub(P3,P2)
+    Tn = cross_prod(V21,V32)
+    tnum = Tn[0]*(P1[0]-Pe[0]) + Tn[1]*(P1[1]-Pe[1]) + Tn[2]*(P1[2]-Pe[2])
+    tden = Tn[0]*r[0] + Tn[1]*r[1] + Tn[2]*r[2]
+    if (tden == 0):
+        return None
+    t = tnum / tden
+    # candidate point
+    Pc = [Pe[0]+r[0]*t,Pe[1]+r[1]*t,Pe[2]+r[2]*t]
+
+    # Now, check in/out of triangle using barycentric method
+    V0 = vecsub(P3,P1)
+    V1 = vecsub(P2,P1)
+    V2 = vecsub(Pc,P1)
+    dot00 = vecdot(V0,V0)
+    dot01 = vecdot(V0,V1)
+    dot02 = vecdot(V0,V2)
+    dot11 = vecdot(V1,V1)
+    dot12 = vecdot(V1,V2)
+    invDenom = 1.0 / (dot00 * dot11 - dot01 * dot01)
+    u = (dot11 * dot02 - dot01 * dot12) * invDenom
+    v = (dot00 * dot12 - dot01 * dot02) * invDenom
+
+    if u >= 0 and v >= 0 and (u+v) < 1:
+        return Pc, u, v
+    else:
+        return None, 0, 0
+
+def interp_field(u, v, A, B, C):
+    return (1-u-v)*A + v*B + u*C
+
+def interp_color(fval, fmin, fmax):
+    ckeys = sorted(hot_colors.keys())
+    cnum = len(ckeys)
+    crange = ckeys[cnum-1] - ckeys[0]
+    val = (fval-fmin)/(fmax-fmin) * crange + ckeys[0]
+    if val <= ckeys[0]:
+        return hot_colors[ckeys[0]]
+    if val > ckeys[cnum-1]:
+        return hot_colors[ckeys[cnum-1]]
+    for i in range(1,len(ckeys)):
+        if ckeys[i-1] <= val and val <= ckeys[i]:
+            cval = (val-ckeys[i-1])/(ckeys[i]-ckeys[i-1])
+            c0 = hot_colors[ckeys[i-1]]
+            c1 = hot_colors[ckeys[i]]
+            cdiff = vecsub(c1,c0)
+            cdiff = [int(cdiff[0]*cval+c0[0]),int(cdiff[1]*cval+c0[1]),int(cdiff[2]*cval+c0[2])]
+            return cdiff
+
+def camera_params(LF, LA, VUP, FOV, W, H):
+    N = [LA[0]-LF[0],LA[1]-LF[1],LA[2]-LF[2]]
+    N = normalize(N)
+
+    U = cross_prod(N,VUP)
+    U = normalize(U)
+
+    V = cross_prod(U,N)
+    V = normalize(V)
+
+    fova = math.tan(FOV/2)
+    Xinc = [2*fova*U[0]/W, 2*fova*U[1]/W, 2*fova*U[2]/W]
+    Yinc = [2*fova*V[0]/W, 2*fova*V[1]/W, 2*fova*V[2]/W]
+
+    return N, U, V, Xinc, Yinc
+
+def send_rays(LF, LA, VUP, FOV, W, H, P0, P1, P2, VMIN, VMAX):
+    (N, U, V, Xinc, Yinc) = camera_params(LF, LA, VUP, FOV, W, H)
+
+    for x in range(W):
+        for y in range(H):
+            R = [N[0] + 0.5*(2*y+1-H)*Yinc[0] + 0.5*(2*x+1-W)*Xinc[0],\
+                 N[1] + 0.5*(2*y+1-H)*Yinc[1] + 0.5*(2*x+1-W)*Xinc[1],\
+                 N[2] + 0.5*(2*y+1-H)*Yinc[2] + 0.5*(2*x+1-W)*Xinc[2]]
+            R = normalize(R)
+            ipoint_closests = None
+            for i in range(12):
+                (ipoint, u, v) = ray_tri_intersect(LF,R,P0[i],P1[i],P2[i])
+                if ipoint != None:
+                    if ipoint_closest != None:
+                        if ipoint[2] > ipoint_closest[2]:
+                            ipoint_closest = ipoint
+                            fval = interp_field(u,v,P0[i][3],P1[i][3],P2[i][3])
+                            rgb = interp_color(fval, VMIN, VMAX)
+            print "%d:%d\t%d:%d:%d|%f"%(x,y,rgb[0],rgb[1],rgb[2],ipoint_closest[2])
+
+def parse_zone_info(data):
+    nodes = []
+    nodeids = data[0].split(':')
+    for n in nodeids:
+        nspec = n.split('=')
+        nodes.append(nspec[1])
+    coords = []
+    # data[1] = coords at each node
+    coordlist = data[1].split(':')
+    for coordval in coordlist:
+        ctuple = coordval.split('$')
+        coord = []
+        for comp in ctuple:
+            compval = comp.split('=')
+            coord.append(compval[1])
+        coords.append(coord)
+    # data[2] = variables (both nodal and zonal)
+    varlist = data[2].split(':')
+    zonevars = {}
+    nodevars = {}
+    for varspec in varlist:
+        vartuple = varspec.split('$')
+        v = []
+        if len(vartuple) == 1: # zone-centered case
+            varvec = vartuple[0].split(';')
+            if len(varvec) > 1: # vector var
+                varval = varvec[0].split('=')
+                varname = re.search("([^0-9]*)([0-9]{1})",varval[0])
+                varname = varname.group(1)
+                for varcomp in varvec:
+                    varval = varcomp.split('=')
+                    v.append(float(varval[1]))
+            else: # scalar var
+                varval = vartuple[0].split('=')
+                varname = re.search("([^0-9]*)([0-9]{1})",varval[0])
+                if varname == None:
+                    continue
+                varname = varname.group(1)
+                v.append(float(varval[1]))
+            zonevars[varname] = v
+        else: # node-centered case
+            for t in vartuple:
+                varvec = t.split(';')
+                if len(varvec) > 1: # vector var
+                    varval = varvec[0].split('=')
+                    varname = re.search("([^0-9]*)([0-9]{1})",varval[0])
+                    varname = varname.group(1)
+                    for varcomp in varvec:
+                        varval = varcomp.split('=')
+                        v.append(float(varval[1]))
+                else: # scalar var
+                    varval = varvec[0].split('=')
+                    varname = re.search("([^0-9]*)([0-9]{1})",varval[0])
+                    varname = varname.group(1)
+                    v.append(float(varval[1]))
+            nodevars[varname] = v
+    return nodes, coords, zonevars, nodevars
+
+def render_tri(coords, vals, na, nb, nc):
+    p0 = [float(coords[na][0]),float(coords[na][1]),float(coords[na][2]),float(vals[na])]
+    p1 = [float(coords[nb][0]),float(coords[nb][1]),float(coords[nb][2]),float(vals[nb])]
+    p2 = [float(coords[nc][0]),float(coords[nc][1]),float(coords[nc][2]),float(vals[nc])]
+    send_rays([0,0,10],[0,0,0],[0,1,0],0.5,20,20,p0,p1,p2,-10,10)
+
+def render_zone(coords, vals):
+    if len(coords) == 8: # hex
+        render_tri(coords, vals, 0, 1, 5)
+        render_tri(coords, vals, 0, 5, 4)
+
+        render_tri(coords, vals, 0, 2, 1)
+        render_tri(coords, vals, 0, 3, 2)
+
+        render_tri(coords, vals, 0, 4, 7)
+        render_tri(coords, vals, 0, 7, 3)
+        
+        render_tri(coords, vals, 1, 2, 6)
+        render_tri(coords, vals, 1, 6, 5)
+
+        render_tri(coords, vals, 2, 3, 7)
+        render_tri(coords, vals, 2, 7, 6)
+
+        render_tri(coords, vals, 4, 5, 6)
+        render_tri(coords, vals, 4, 6, 7)
+
+# input comes from STDIN (standard input)
+for line in sys.stdin:
+
+    # remove leading and trailing whitespace
+    line = line.strip()
+
+    # split the line into words
+    (key, value) = line.split()
+
+    data = value.split('|') # 1rst level split (nodes|coords|vars) sections
+
+    (nodes, coords, zonevars, nodevars) = parse_zone_info(data)
+
+    mode = os.environ['PLOTMODE']
+    var = os.environ['PLOTVAR']
+
+    if mode == "threshold":
+        min = float(os.environ['THRESHOLD_MIN'])
+        max = float(os.environ['THRESHOLD_MAX'])
+        if var in nodevars:
+            nodevals = nodevars[var]
+            for val in nodevals:
+                if val >= min and val <= max:
+                    render_zone(coords, nodevals)
+                    continue
+        elif var in zonevars:
+            val = zonevars[var]
+            if val >= min and val <= max:
+                render_zone(coords, val)
+                continue
+    elif mode == "iso-contour":
+        isovals = os.eniron['ISOVALS'].split(':') 
diff --git a/tools/mapred/reducer.py b/tools/mapred/reducer.py
new file mode 100644
index 0000000..5dbec7e
--- /dev/null
+++ b/tools/mapred/reducer.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+ 
+from operator import itemgetter
+import sys
+ 
+current_word = None
+current_z = None
+current_rgb = None
+word = None
+ 
+# input comes from STDIN
+for line in sys.stdin:
+    # remove leading and trailing whitespace
+    line = line.strip()
+ 
+    # parse the input we got from mapper.py
+    word, pixval = line.split('\t', 1)
+ 
+    rgbz = pixval.split('|')
+    rgb = rgbz[0]
+    z = rgbz[1]
+
+    # convert count (currently a string) to int
+    try:
+        z = float(z)
+    except ValueError:
+        # count was not a number, so silently
+        # ignore/discard this line
+        continue
+ 
+    # this IF-switch only works because Hadoop sorts map output
+    # by key (here: word) before it is passed to the reducer
+    if current_word == word:
+        if z < current_z:
+            current_z = z
+            curent_rgb = rgb
+    else:
+        if current_word:
+            # write result to STDOUT
+            print '%s\t%s' % (current_word, current_rgb)
+        current_word = word
+        current_rgb = rgb 
+        current_z = z 
+ 
+# do not forget to output the last word if needed!
+if current_word == word:
+    print '%s\t%s' % (current_word, current_rgb)
diff --git a/tools/mapred/stream_silo.c b/tools/mapred/stream_silo.c
new file mode 100644
index 0000000..7ab2795
--- /dev/null
+++ b/tools/mapred/stream_silo.c
@@ -0,0 +1,295 @@
+#include <silo.h>
+
+#include <map>
+#include <string>
+#include <iostream>
+
+#include <assert.h>
+#include <string.h>
+
+using std::map;
+using std::string;
+using std::cout;
+using std::endl;
+using std::cerr;
+
+typedef map<string, string> strmap_t;
+
+#define ARG_OPT(A) (!strncmp(argv[i],#A,sizeof(#A)))
+
+static void get_coord(DBucdmesh const *ucdm, int nid, double* x, double* y, double* z)
+{
+    if (ucdm->datatype == DB_DOUBLE)
+    {
+        *x = ((double*)(ucdm->coords[0]))[nid];
+        *y = ((double*)(ucdm->coords[1]))[nid];
+        *z = ((double*)(ucdm->coords[2]))[nid];
+    }
+    else if (ucdm->datatype == DB_FLOAT)
+    {
+        *x = ((float*)(ucdm->coords[0]))[nid];
+        *y = ((float*)(ucdm->coords[1]))[nid];
+        *z = ((float*)(ucdm->coords[2]))[nid];
+    }
+    else
+    {
+        assert(0);
+    }
+}
+
+static unsigned long long get_zoneid(DBzonelist const *zl, int zidx)
+{
+    if (!zl->gzoneno) return (unsigned long long)-1;
+
+    switch (zl->gnznodtype)
+    {
+        case DB_INT: {int *p = (int *) zl->gzoneno; return (unsigned long long) p[zidx]; }
+        case DB_LONG: { long *p = (long *) zl->gzoneno; return (unsigned long long) p[zidx]; }
+        case DB_LONG_LONG: { long long *p = (long long *) zl->gzoneno; return (unsigned long long) p[zidx]; }
+        default: assert(0);
+    }
+}
+
+static double get_var_value(void *vdata, int datatype, int idx)
+{
+    switch (datatype)
+    {
+        case DB_INT: {int *p = (int*)vdata; return p[idx];} 
+        case DB_FLOAT: {float *p = (float*)vdata; return p[idx];} 
+        case DB_DOUBLE: {double *p = (double*)vdata; return p[idx];} 
+        default: assert(0);
+    }
+}
+
+static string genkey(DBucdmesh const* ucdm, string const& prefix, int dom, int zidx)
+{
+    unsigned long long gzoneno = get_zoneid(ucdm->zones, zidx);
+    char tmp[256];
+    if (gzoneno != (unsigned long long)-1)
+    {
+        if (dom == -1)
+            sprintf(tmp, "%llx:%d", gzoneno, zidx);
+        else
+            sprintf(tmp, "%llx:%d:%d", gzoneno, dom, zidx);
+    }
+    else
+    {
+        if (dom == -1)
+            sprintf(tmp, "%d", zidx);
+        else
+            sprintf(tmp, "%d:%d", dom, zidx);
+    }
+    string zkey = prefix + ":" + string(tmp); 
+    return zkey;
+}
+
+static double retvals[256];
+static double *get_var_values(void **vdata, int nvars, int datatype, int idx)
+{
+    for (int i = 0; i < nvars; i++)
+        retvals[i] = get_var_value(vdata[i], datatype, idx);
+    return retvals;
+}
+
+static void stream_ucdvar(DBucdmesh const *ucdm, DBucdvar const *ucdv, string const& prefix, int dom, strmap_t& fmap)
+{
+    if (ucdv->centering == DB_ZONECENT)
+    {
+        for (int i = 0; i < ucdm->zones->nzones; i++)
+        {
+            string zkey = genkey(ucdm, prefix, dom, i);
+            double *vals = get_var_values(ucdv->vals, ucdv->nvals, ucdv->datatype, i);
+            for (int j = 0; j < ucdv->nvals; j++)
+            {
+                char tmp[256];
+                sprintf(tmp, "%s%1d=%f", ucdv->name, j, vals[j]);
+                fmap[zkey] += string(tmp);
+                if (j < ucdv->nvals-1) fmap[zkey] += ";";
+            }
+            fmap[zkey] += ":";
+        }
+    }
+    else if (ucdv->centering == DB_NODECENT)
+    {
+        int zlidx = 0;
+        int zidx = 0;
+        DBzonelist const *zl = ucdm->zones;
+        for (int i = 0; i < zl->nshapes; i++)
+        {
+            const int shapecnt = zl->shapecnt[i];
+            const int shapesize = zl->shapesize[i];
+            const int shapetype = zl->shapetype[i];
+            for (int j = 0; j < shapecnt; j++)
+            {
+                char tmp[256];
+                string zkey = genkey(ucdm, prefix, dom, zidx);
+                for (int k = 0; k < shapesize; k++)
+                {
+                    int nodeid = zl->nodelist[zlidx+k];
+                    double *vals = get_var_values(ucdv->vals, ucdv->nvals, ucdv->datatype, nodeid);
+                    for (int j = 0; j < ucdv->nvals; j++)
+                    {
+                        char tmp[256];
+                        sprintf(tmp, "%s%1d=%f", ucdv->name, j, vals[j]);
+                        fmap[zkey] += string(tmp);
+                        if (j < ucdv->nvals-1) fmap[zkey] += ";";
+                    }
+                    if (k < shapesize-1) fmap[zkey] += "$";
+                }
+                zlidx += shapesize;
+                zidx++;
+                fmap[zkey] += ":";
+            }
+        }
+    }
+    else
+    {
+        assert(0);
+    }
+}
+
+static void stream_ucdmesh(DBucdmesh const *ucdm, string const& prefix, int dom, strmap_t& fmap)
+{
+    int zlidx = 0;
+    int zidx = 0;
+    DBzonelist const *zl = ucdm->zones;
+    for (int i = 0; i < zl->nshapes; i++)
+    {
+        const int shapecnt = zl->shapecnt[i];
+        const int shapesize = zl->shapesize[i];
+        const int shapetype = zl->shapetype[i];
+        for (int j = 0; j < shapecnt; j++)
+        {
+            // Zone key section
+            char tmp[256];
+            string zkey = genkey(ucdm, prefix, dom, zidx);
+            fmap[zkey] = "";
+            // nodes  section (probaly not necessary)
+            for (int k = 0; k < shapesize; k++)
+            {
+                int nodeid = zl->nodelist[zlidx+k];
+                sprintf(tmp, "n%1d=%d", k, nodeid);
+                fmap[zkey] += string(tmp);
+                if (k < shapesize-1) fmap[zkey] += ":";
+            }
+            fmap[zkey] += "|";
+            // coordinates section
+            for (int k = 0; k < shapesize; k++)
+            {
+                int nodeid = zl->nodelist[zlidx+k];
+                double x, y, z;
+                get_coord(ucdm, nodeid, &x, &y, &z);
+                sprintf(tmp, "x%1d=%f$y%1d=%f$z%1d=%f", k, x, k, y, k, z);
+                fmap[zkey] += string(tmp);
+                if (k < shapesize-1) fmap[zkey] += ":";
+            }
+            fmap[zkey] += "|";
+            zlidx += shapesize;
+            zidx++;
+        }
+    }
+}
+
+static void stream_cwdir(DBfile *dbfile, string prefix, int dom, strmap_t &fmap)
+{
+    DBtoc *toc = DBGetToc (dbfile);
+
+    for (int i = 0; i < toc->nucdmesh; i++)
+    {
+        DBucdmesh *m = DBGetUcdmesh(dbfile, toc->ucdmesh_names[i]);
+        string newprefix = prefix + "/" + string(toc->ucdmesh_names[i]);
+        stream_ucdmesh(m, newprefix, dom, fmap);
+        long oldmask = DBGetDataReadMask();
+        for (int j = 0; j < toc->nucdvar; j++)
+        {
+            DBSetDataReadMask(DBNone); 
+            DBucdvar *v = DBGetUcdvar(dbfile, toc->ucdvar_names[j]);
+            if (!strcmp(v->meshname, toc->ucdmesh_names[i]))
+            {
+                DBFreeUcdvar(v);
+                DBSetDataReadMask(DBAll); 
+                v = DBGetUcdvar(dbfile, toc->ucdvar_names[j]);
+                stream_ucdvar(m, v, newprefix, dom, fmap);
+                DBFreeUcdvar(v);
+            }
+        }
+        DBSetDataReadMask(oldmask);
+        DBFreeUcdmesh(m);
+    }
+
+    if (!toc->ndir) return;
+
+    //
+    // Copy relevant info from the toc. Otherwise, it'll get lost on
+    // successive calls to DBSetDir().
+    //
+    int      norigdir      = toc->ndir;
+    char   **origdir_names = new char*[norigdir];
+    for (int i = 0 ; i < norigdir ; i++)
+    {
+        origdir_names[i] = new char[strlen(toc->dir_names[i])+1];
+        strcpy(origdir_names[i], toc->dir_names[i]);
+    }
+
+    for (int i = 0; i <norigdir; i++)
+    {
+        int newdom;
+        int n = sscanf(origdir_names[i], "domain_%d", &newdom);
+        if (n != 1)
+            n = sscanf(origdir_names[i], "block%d", &newdom);
+        if (n != 1) continue;
+        string new_prefix = prefix + "/" + string(origdir_names[i]);
+        DBSetDir(dbfile, origdir_names[i]);
+        stream_cwdir(dbfile, new_prefix, newdom, fmap);
+        DBSetDir(dbfile, "..");
+    }
+
+    for (int i = 0; i <norigdir; i++)
+        delete [] origdir_names[i];
+    delete [] origdir_names;
+
+}
+
+static void stream_file(char const *filename)
+{
+    DBfile *dbfile = DBOpen(filename, DB_UNKNOWN, DB_READ);
+    strmap_t stream_map;
+    stream_cwdir(dbfile, "", -1, stream_map);
+
+    for (strmap_t::const_iterator cit = stream_map.begin(); cit != stream_map.end(); cit++)
+        cout << cit->first << "\t" << cit->second << endl;
+}
+
+int main(int argc, char **argv)
+{
+    char filename[1024];
+    char varname[256];
+
+    filename[0] = '\0';
+    varname[0] = '\0';
+    for (int i = 0; i < argc; i++)
+    {
+        if (ARG_OPT(--fn))
+        {
+            i++;
+            assert(strlen(argv[i])<sizeof(filename));
+            strcpy(filename, argv[i]);
+        }
+        else if (ARG_OPT(--var))
+        {
+            i++;
+            assert(strlen(argv[i])<sizeof(varname));
+            strcpy(varname, argv[i]);
+        }
+    }
+
+    if (!strcmp(filename, ""))
+    {
+        cerr << "filename not specified" << endl;
+        exit(1);
+    }
+
+    stream_file(filename);
+
+    return 0;
+}
diff --git a/tools/python/Makefile.am b/tools/python/Makefile.am
index b266648..e8c9fdb 100644
--- a/tools/python/Makefile.am
+++ b/tools/python/Makefile.am
@@ -61,6 +61,9 @@ if HDF5_DRV_NEEDED
 else
   Silo_la_LIBADD = ../../src/libsilo.la
 endif
+if JSON_NEEDED
+  Silo_la_LIBADD += ../json/json-c-0.10/libjson.la
+endif
 
 AM_CPPFLAGS = $(PYTHON_CPPFLAGS) -I$(top_builddir)/src/silo -I$(top_srcdir)/src/silo -I$(includedir)
 
diff --git a/tools/python/Makefile.in b/tools/python/Makefile.in
index a7cd0c1..f3a1a16 100644
--- a/tools/python/Makefile.in
+++ b/tools/python/Makefile.in
@@ -88,6 +88,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+ at JSON_NEEDED_TRUE@am__append_1 = ../json/json-c-0.10/libjson.la
 subdir = tools/python
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -130,8 +131,10 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
- at HDF5_DRV_NEEDED_FALSE@Silo_la_DEPENDENCIES = ../../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@Silo_la_DEPENDENCIES = ../../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@Silo_la_DEPENDENCIES = ../../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@Silo_la_DEPENDENCIES = ../../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 am__objects_1 = pydbfile.lo pydbtoc.lo pysilo.lo
 am_Silo_la_OBJECTS = $(am__objects_1)
 Silo_la_OBJECTS = $(am_Silo_la_OBJECTS)
@@ -216,6 +219,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -264,9 +268,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -343,8 +344,10 @@ top_srcdir = @top_srcdir@
 lib_LTLIBRARIES = Silo.la
 Silo_la_SOURCES = $(FILES)
 Silo_la_LDFLAGS = -module -avoid-version
- at HDF5_DRV_NEEDED_FALSE@Silo_la_LIBADD = ../../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@Silo_la_LIBADD = ../../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@Silo_la_LIBADD = ../../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@Silo_la_LIBADD = ../../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 AM_CPPFLAGS = $(PYTHON_CPPFLAGS) -I$(top_builddir)/src/silo -I$(top_srcdir)/src/silo -I$(includedir)
 noinst_HEADERS = \
  pydbfile.h \
diff --git a/tools/python/pydbfile.cpp b/tools/python/pydbfile.cpp
index 6c85f22..d203ce2 100644
--- a/tools/python/pydbfile.cpp
+++ b/tools/python/pydbfile.cpp
@@ -507,7 +507,7 @@ static PyObject *DBfile_DBWriteObject(PyObject *self, PyObject *args)
     if (!ncomps) return NULL;
     int objtype = DBGetObjtypeTag(PyString_AsString(PyDict_GetItemString((PyObject*)dictobj, "type")));
     DBobject *siloobj = DBMakeObject(objname, objtype, ncomps);
-
+printf("writing objname = \"%s\"\n", objname);
     PyObject *key, *value;
 #if PY_VERSION_GE(2,5,0)
     Py_ssize_t pos = 0;
@@ -529,10 +529,7 @@ static PyObject *DBfile_DBWriteObject(PyObject *self, PyObject *args)
             for (int i = 0; i < len && allint; i++)
             {
                 if (PyFloat_Check(PyTuple_GET_ITEM(value,i)))
-                {
-                    double dval = PyFloat_AS_DOUBLE(PyTuple_GET_ITEM(value,i));
-                    if (dval != (int) dval) allint = false;
-                }
+                    allint = false;
             }
             if (allint)
             {
diff --git a/tools/python/pydbtoc.cpp b/tools/python/pydbtoc.cpp
index bfac915..8970802 100644
--- a/tools/python/pydbtoc.cpp
+++ b/tools/python/pydbtoc.cpp
@@ -134,6 +134,7 @@ static int DBtoc_as_string(PyObject *self, char *s)
     PRINT_OBJS(qmesh);
     PRINT_OBJS(qvar);
     PRINT_OBJS(ucdmesh);
+    PRINT_OBJS(ucdvar);
     PRINT_OBJS(ptmesh);
     PRINT_OBJS(ptvar);
     PRINT_OBJS(mat);
@@ -226,6 +227,7 @@ GET_FUNC_DEFS(defvars);
 GET_FUNC_DEFS(qmesh);
 GET_FUNC_DEFS(qvar);
 GET_FUNC_DEFS(ucdmesh);
+GET_FUNC_DEFS(ucdvar);
 GET_FUNC_DEFS(ptmesh);
 GET_FUNC_DEFS(ptvar);
 GET_FUNC_DEFS(mat);
@@ -269,6 +271,7 @@ static PyObject *DBtoc_getattr(PyObject *self, char *name)
     GET_FUNC_N(qmesh);
     GET_FUNC_N(qvar);
     GET_FUNC_N(ucdmesh);
+    GET_FUNC_N(ucdvar);
     GET_FUNC_N(ptmesh);
     GET_FUNC_N(ptvar);
     GET_FUNC_N(mat);
@@ -291,6 +294,7 @@ static PyObject *DBtoc_getattr(PyObject *self, char *name)
     GET_FUNC_NAMES(qmesh);
     GET_FUNC_NAMES(qvar);
     GET_FUNC_NAMES(ucdmesh);
+    GET_FUNC_NAMES(ucdvar);
     GET_FUNC_NAMES(ptmesh);
     GET_FUNC_NAMES(ptvar);
     GET_FUNC_NAMES(mat);
diff --git a/tools/silex/Makefile.am b/tools/silex/Makefile.am
index 863a9c8..8591f7c 100644
--- a/tools/silex/Makefile.am
+++ b/tools/silex/Makefile.am
@@ -61,6 +61,9 @@ if HDF5_DRV_NEEDED
 else
   silex_LDADD = ../../src/libsilo.la $(QT_LDFLAGS) $(QT_LIBS)
 endif
+if JSON_NEEDED
+  silex_LDADD += ../json/json-c-0.10/libjson.la
+endif
 
 EXTRA_DIST = \
  array.xpm \
@@ -76,6 +79,7 @@ EXTRA_DIST = \
 AM_CXXFLAGS=$(QT_CXXFLAGS)
 AM_CPPFLAGS = \
  -I$(top_builddir)/src/silo \
+ -I$(top_srcdir)/src/silo \
  -I$(includedir)
 
 noinst_HEADERS = \
@@ -115,7 +119,7 @@ BUILT_SOURCES = $(FILES_MOC)
 
 CLEANFILES = $(FILES_MOC)
 
-install-exec-hook: $(BUNDLE_TARGET)
+install-exec-hook: silex.app
 
 silex.app:
 	@if test -e $@; then \
@@ -126,7 +130,7 @@ silex.app:
 	mkdir $@/Contents; \
 	mkdir $@/Contents/MacOS; \
 	mkdir $@/Contents/Resources; \
-	{
+	{ \
 	  echo '<?xml version="1.0" encoding="UTF-8"?>'; \
 	  echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">'; \
 	  echo '<plist version="1.0">'; \
@@ -141,7 +145,7 @@ silex.app:
 	  echo '        <string>SILX</string>'; \
 	  echo '</dict>'; \
 	  echo '</plist>'; \
-	} > $@/Contents/Info.plist
+	} > $@/Contents/Info.plist; \
 	echo 'APPLSILX' > $@/Contents/PkgInfo
 
 .PHONY: silex.app
diff --git a/tools/silex/Makefile.in b/tools/silex/Makefile.in
index a514b59..70d3a70 100644
--- a/tools/silex/Makefile.in
+++ b/tools/silex/Makefile.in
@@ -89,6 +89,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 bin_PROGRAMS = silex$(EXEEXT)
+ at JSON_NEEDED_TRUE@am__append_1 = ../json/json-c-0.10/libjson.la
 subdir = tools/silex
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -123,9 +124,9 @@ nodist_silex_OBJECTS = $(am__objects_2)
 silex_OBJECTS = $(am_silex_OBJECTS) $(nodist_silex_OBJECTS)
 am__DEPENDENCIES_1 =
 @HDF5_DRV_NEEDED_FALSE at silex_DEPENDENCIES = ../../src/libsilo.la \
- at HDF5_DRV_NEEDED_FALSE@	$(am__DEPENDENCIES_1)
+ at HDF5_DRV_NEEDED_FALSE@	$(am__DEPENDENCIES_1) $(am__append_1)
 @HDF5_DRV_NEEDED_TRUE at silex_DEPENDENCIES = ../../src/libsiloh5.la \
- at HDF5_DRV_NEEDED_TRUE@	$(am__DEPENDENCIES_1)
+ at HDF5_DRV_NEEDED_TRUE@	$(am__DEPENDENCIES_1) $(am__append_1)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -195,6 +196,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -243,9 +245,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -321,8 +320,11 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 silex_SOURCES = $(FILES)
 nodist_silex_SOURCES = $(FILES_MOC)
- at HDF5_DRV_NEEDED_FALSE@silex_LDADD = ../../src/libsilo.la $(QT_LDFLAGS) $(QT_LIBS)
- at HDF5_DRV_NEEDED_TRUE@silex_LDADD = ../../src/libsiloh5.la $(QT_LDFLAGS) $(QT_LIBS)
+ at HDF5_DRV_NEEDED_FALSE@silex_LDADD = ../../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(QT_LDFLAGS) $(QT_LIBS) \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@silex_LDADD = ../../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(QT_LDFLAGS) $(QT_LIBS) $(am__append_1)
 EXTRA_DIST = \
  array.xpm \
  curve.xpm \
@@ -337,6 +339,7 @@ EXTRA_DIST = \
 AM_CXXFLAGS = $(QT_CXXFLAGS)
 AM_CPPFLAGS = \
  -I$(top_builddir)/src/silo \
+ -I$(top_srcdir)/src/silo \
  -I$(includedir)
 
 noinst_HEADERS = \
@@ -712,7 +715,7 @@ uninstall-am: uninstall-binPROGRAMS
 %_moc.cpp: %.h
 	$(QT_MOC) -o $@ $<
 
-install-exec-hook: $(BUNDLE_TARGET)
+install-exec-hook: silex.app
 
 silex.app:
 	@if test -e $@; then \
@@ -723,7 +726,7 @@ silex.app:
 	mkdir $@/Contents; \
 	mkdir $@/Contents/MacOS; \
 	mkdir $@/Contents/Resources; \
-	{
+	{ \
 	  echo '<?xml version="1.0" encoding="UTF-8"?>'; \
 	  echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">'; \
 	  echo '<plist version="1.0">'; \
@@ -738,7 +741,7 @@ silex.app:
 	  echo '        <string>SILX</string>'; \
 	  echo '</dict>'; \
 	  echo '</plist>'; \
-	} > $@/Contents/Info.plist
+	} > $@/Contents/Info.plist; \
 	echo 'APPLSILX' > $@/Contents/PkgInfo
 
 .PHONY: silex.app
diff --git a/tools/silex/SiloArrayView.cpp b/tools/silex/SiloArrayView.cpp
index fd186e1..631b573 100644
--- a/tools/silex/SiloArrayView.cpp
+++ b/tools/silex/SiloArrayView.cpp
@@ -96,6 +96,12 @@ using std::cerr;
 //
 //    Mark C. Miller, Wed Sep 12 15:34:28 PDT 2012
 //    Added logic to NOT cut DB_CHAR arrays shorter than 400 chars.
+//
+//    Mark C. Miller, Thu Dec 12 13:46:12 PST 2013
+//    Changed logic for DB_CHAR arrays to first check that all values are
+//    isprint() before treating as a printable string. If not, the DB_CHAR
+//    values are instead treated like all other types execpt as unsigned
+//    ints of size char.
 // ****************************************************************************
 SiloArrayViewWindow::SiloArrayViewWindow(SiloFile *s, const QString &n,
                                          QWidget *p)
@@ -116,46 +122,20 @@ SiloArrayViewWindow::SiloArrayViewWindow(SiloFile *s, const QString &n,
     int type = silo->GetVarType(name);
     int len  = silo->GetVarLength(name);
 
-    if (type != DB_CHAR)
+    bool isString= true;
+    if (type == DB_CHAR)
     {
-        // Just a bunch of numbers: one per line
-        for (int i=0; i<len; i++)
+        char *p = (char*)var;
+        for (int i=0; i<len-1 && isString; i++)
         {
-            char str[256];
-            switch (type)
-            {
-              case DB_INT:
-                sprintf(str, "%-4d: %d", i, ((int*)var)[i]);
-                break;
-              case DB_SHORT:
-                sprintf(str, "%-4d: %d", i, ((short*)var)[i]);
-                break;
-              case DB_LONG:
-                sprintf(str, "%-4d: %ld", i, ((long*)var)[i]);
-                break;
-              case DB_LONG_LONG:
-                sprintf(str, "%-4d: %lld", i, ((long long*)var)[i]);
-                break;
-              case DB_FLOAT:
-                sprintf(str, "%-4d: %g", i, ((float*)var)[i]);
-                break;
-              case DB_DOUBLE:
-                sprintf(str, "%-4d: %g", i, ((double*)var)[i]);
-                break;
-              case DB_CHAR:
-                sprintf(str, "%-4d: %c", i, ((char*)var)[i]);
-                break;
-              case DB_NOTYPE:
-                sprintf(str, "%-4d: NOTYPE", i);
-                break;
-              default:
-                sprintf(str, "%-4d: type ???", i);
-                break;
-            }
-            lb->addItem(str);
+            if (!isprint(p[i]))
+                isString = false;
         }
+        if (p[len-1] != '\0')
+            isString = false;
     }
-    else
+
+    if (type == DB_CHAR && isString)
     {
         // Guess how to split the string based on a heuristic:
         //  - If the length is short, just stick it in
@@ -249,6 +229,45 @@ SiloArrayViewWindow::SiloArrayViewWindow(SiloFile *s, const QString &n,
             delete[] str;
         }
     }
+    else
+    {
+        // Just a bunch of numbers: one per line
+        for (int i=0; i<len; i++)
+        {
+            char str[256];
+            switch (type)
+            {
+              case DB_INT:
+                sprintf(str, "%-4d: %d", i, ((int*)var)[i]);
+                break;
+              case DB_SHORT:
+                sprintf(str, "%-4d: %d", i, ((short*)var)[i]);
+                break;
+              case DB_LONG:
+                sprintf(str, "%-4d: %ld", i, ((long*)var)[i]);
+                break;
+              case DB_LONG_LONG:
+                sprintf(str, "%-4d: %lld", i, ((long long*)var)[i]);
+                break;
+              case DB_FLOAT:
+                sprintf(str, "%-4d: %g", i, ((float*)var)[i]);
+                break;
+              case DB_DOUBLE:
+                sprintf(str, "%-4d: %g", i, ((double*)var)[i]);
+                break;
+              case DB_CHAR:
+                sprintf(str, "%-4d: %hhd", i, ((char*)var)[i]);
+                break;
+              case DB_NOTYPE:
+                sprintf(str, "%-4d: NOTYPE", i);
+                break;
+              default:
+                sprintf(str, "%-4d: type ???", i);
+                break;
+            }
+            lb->addItem(str);
+        }
+    }
 
     free(var);
 }
diff --git a/tools/silex/SiloDirTreeView.cpp b/tools/silex/SiloDirTreeView.cpp
index c389e56..9b88301 100644
--- a/tools/silex/SiloDirTreeView.cpp
+++ b/tools/silex/SiloDirTreeView.cpp
@@ -108,7 +108,7 @@ SiloDirTreeView::AddDir(SiloDir *d, QTreeWidgetItem *parent)
         item = new SiloDirTreeViewItem(d, parent, d->name);
 
     item->setIcon(0,*folder_pixmap);
-    for (unsigned int i=0; i<d->subdir.size(); i++)
+    for (unsigned int i=0; i<d->subdir.size(); i++)
         AddDir(d->subdir[i], item);
 
     return item;
diff --git a/tools/silex/SiloDirView.cpp b/tools/silex/SiloDirView.cpp
index 4b14574..f6dc082 100644
--- a/tools/silex/SiloDirView.cpp
+++ b/tools/silex/SiloDirView.cpp
@@ -154,7 +154,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *curve = new SiloDirViewItem(NULL,this, "Curves");
         curve->setIcon(0, *curve_pixmap);
-        for (unsigned int i=0; i<d->curve.size(); i++)
+        for (unsigned int i=0; i<d->curve.size(); i++)
             new SiloDirViewItem(d,curve, d->curve[i]);
         curve->setExpanded(true);
     }
@@ -163,7 +163,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *multimesh = new SiloDirViewItem(NULL,this, "MultiMeshes");
         multimesh->setIcon(0, *mesh_pixmap);
-        for (unsigned int i=0; i<d->multimesh.size(); i++)
+        for (unsigned int i=0; i<d->multimesh.size(); i++)
             new SiloDirViewItem(d,multimesh, d->multimesh[i]);
         multimesh->setExpanded(true);
         expandVars = false;
@@ -173,7 +173,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *multivar = new SiloDirViewItem(NULL,this, "MultiVars");
         multivar->setIcon(0, *var_pixmap);
-        for (unsigned int i=0; i<d->multivar.size(); i++)
+        for (unsigned int i=0; i<d->multivar.size(); i++)
             new SiloDirViewItem(d,multivar, d->multivar[i]);
         multivar->setExpanded(true);
         expandVars = false;
@@ -183,7 +183,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *multimeshadj = new SiloDirViewItem(NULL,this, "MultiMesheadjs");
         multimeshadj->setIcon(0, *mesh_pixmap);
-        for (unsigned int i=0; i<d->multimeshadj.size(); i++)
+        for (unsigned int i=0; i<d->multimeshadj.size(); i++)
             new SiloDirViewItem(d,multimeshadj, d->multimeshadj[i]);
         multimeshadj->setExpanded(true);
         expandVars = false;
@@ -194,7 +194,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *multimat = new SiloDirViewItem(NULL,this, "MultiMats");
         multimat->setIcon(0, *mat_pixmap);
-        for (unsigned int i=0; i<d->multimat.size(); i++)
+        for (unsigned int i=0; i<d->multimat.size(); i++)
             new SiloDirViewItem(d,multimat, d->multimat[i]);
         multimat->setExpanded(true);
         expandVars = false;
@@ -204,7 +204,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *multimatspecies = new SiloDirViewItem(NULL,this, "MultiSpecies");
         multimatspecies->setIcon(0, *spec_pixmap);
-        for (unsigned int i=0; i<d->multimatspecies.size(); i++)
+        for (unsigned int i=0; i<d->multimatspecies.size(); i++)
             new SiloDirViewItem(d,multimatspecies, d->multimatspecies[i]);
         multimatspecies->setExpanded(true);
         expandVars = false;
@@ -214,7 +214,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *qmesh = new SiloDirViewItem(NULL,this, "QuadMeshes");
         qmesh->setIcon(0, *mesh_pixmap);
-        for (unsigned int i=0; i<d->qmesh.size(); i++)
+        for (unsigned int i=0; i<d->qmesh.size(); i++)
             new SiloDirViewItem(d,qmesh, d->qmesh[i]);
         qmesh->setExpanded(true);
         expandVars = false;
@@ -224,7 +224,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *qvar = new SiloDirViewItem(NULL,this, "QuadVars");
         qvar->setIcon(0, *var_pixmap);
-        for (unsigned int i=0; i<d->qvar.size(); i++)
+        for (unsigned int i=0; i<d->qvar.size(); i++)
             new SiloDirViewItem(d,qvar, d->qvar[i]);
         qvar->setExpanded(true);
         expandVars = false;
@@ -234,7 +234,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *ucdmesh = new SiloDirViewItem(NULL,this, "UCDMeshes");
         ucdmesh->setIcon(0, *mesh_pixmap);
-        for (unsigned int i=0; i<d->ucdmesh.size(); i++)
+        for (unsigned int i=0; i<d->ucdmesh.size(); i++)
             new SiloDirViewItem(d,ucdmesh, d->ucdmesh[i]);
         ucdmesh->setExpanded(true);
         expandVars = false;
@@ -244,7 +244,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *ucdvar = new SiloDirViewItem(NULL,this, "UCDVars");
         ucdvar->setIcon(0, *var_pixmap);
-        for (unsigned int i=0; i<d->ucdvar.size(); i++)
+        for (unsigned int i=0; i<d->ucdvar.size(); i++)
             new SiloDirViewItem(d,ucdvar, d->ucdvar[i]);
         ucdvar->setExpanded(true);
         expandVars = false;
@@ -254,7 +254,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *ptmesh = new SiloDirViewItem(NULL,this, "PointMeshes");
         ptmesh->setIcon(0, *mesh_pixmap);
-        for (unsigned int i=0; i<d->ptmesh.size(); i++)
+        for (unsigned int i=0; i<d->ptmesh.size(); i++)
             new SiloDirViewItem(d,ptmesh, d->ptmesh[i]);
         ptmesh->setExpanded(true);
         expandVars = false;
@@ -264,7 +264,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *ptvar = new SiloDirViewItem(NULL,this, "PointVars");
         ptvar->setIcon(0, *var_pixmap);
-        for (unsigned int i=0; i<d->ptvar.size(); i++)
+        for (unsigned int i=0; i<d->ptvar.size(); i++)
             new SiloDirViewItem(d,ptvar, d->ptvar[i]);
         ptvar->setExpanded(true);
         expandVars = false;
@@ -274,7 +274,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *csgmesh = new SiloDirViewItem(NULL,this, "CSGMeshes");
         csgmesh->setIcon(0, *mesh_pixmap);
-        for (unsigned int i=0; i<d->csgmesh.size(); i++)
+        for (unsigned int i=0; i<d->csgmesh.size(); i++)
             new SiloDirViewItem(d,csgmesh, d->csgmesh[i]);
         csgmesh->setExpanded(true);
         expandVars = false;
@@ -284,7 +284,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *csgvar = new SiloDirViewItem(NULL,this, "CSGVars");
         csgvar->setIcon(0, *var_pixmap);
-        for (unsigned int i=0; i<d->csgvar.size(); i++)
+        for (unsigned int i=0; i<d->csgvar.size(); i++)
             new SiloDirViewItem(d,csgvar, d->csgvar[i]);
         csgvar->setExpanded(true);
         expandVars = false;
@@ -294,7 +294,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *mat = new SiloDirViewItem(NULL,this, "Materials");
         mat->setIcon(0, *mat_pixmap);
-        for (unsigned int i=0; i<d->mat.size(); i++)
+        for (unsigned int i=0; i<d->mat.size(); i++)
             new SiloDirViewItem(d,mat, d->mat[i]);
         mat->setExpanded(true);
         expandVars = false;
@@ -304,7 +304,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *matspecies = new SiloDirViewItem(NULL,this, "Species");
         matspecies->setIcon(0, *spec_pixmap);
-        for (unsigned int i=0; i<d->matspecies.size(); i++)
+        for (unsigned int i=0; i<d->matspecies.size(); i++)
             new SiloDirViewItem(d,matspecies, d->matspecies[i]);
         matspecies->setExpanded(true);
         expandVars = false;
@@ -314,7 +314,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *obj = new SiloDirViewItem(NULL,this, "Objects");
         obj->setIcon(0, *obj_pixmap);
-        for (unsigned int i=0; i<d->obj.size(); i++)
+        for (unsigned int i=0; i<d->obj.size(); i++)
             new SiloDirViewItem(d,obj, d->obj[i]);
         obj->setExpanded(true);
     }
@@ -323,7 +323,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *array = new SiloDirViewItem(NULL,this, "Arrays");
         array->setIcon(0, *array_pixmap);
-        for (unsigned int i=0; i<d->array.size(); i++)
+        for (unsigned int i=0; i<d->array.size(); i++)
             new SiloDirViewItem(d,array, d->array[i]);
         array->setExpanded(true);
     }
@@ -332,7 +332,7 @@ SiloDirView::Set(SiloDir *d)
     {
         SiloDirViewItem *var = new SiloDirViewItem(NULL,this, "Vars");
         var->setIcon(0, *silovar_pixmap);
-        for (unsigned int i=0; i<d->var.size(); i++)
+        for (unsigned int i=0; i<d->var.size(); i++)
             new SiloDirViewItem(d,var, d->var[i]);
         if (expandVars)
             var->setExpanded(true);
diff --git a/tools/silex/SiloFile.cpp b/tools/silex/SiloFile.cpp
index 3ab563c..3d1c759 100644
--- a/tools/silex/SiloFile.cpp
+++ b/tools/silex/SiloFile.cpp
@@ -156,7 +156,7 @@ SiloDir::SiloDir(DBfile *db, const QString &name_, const QString &path_)
     for (i=0; i<toc->ngroupelmap; i++)
         dir.push_back(toc->groupelmap_names[i]);
 
-    for (unsigned int i=0; i<dir.size(); i++)
+    for (unsigned int i=0; i<dir.size(); i++)
     {
         if (name == "/")
             subdir.push_back(new SiloDir(db, dir[i], path + dir[i]));
@@ -174,7 +174,7 @@ SiloDir::SiloDir(DBfile *db, const QString &name_, const QString &path_)
 // ****************************************************************************
 SiloDir::~SiloDir()
 {
-    for (unsigned int i=0; i<subdir.size(); i++)
+    for (unsigned int i=0; i<subdir.size(); i++)
     {
         delete subdir[i];
     }
diff --git a/tools/silex/main.cpp b/tools/silex/main.cpp
index 2a2a1f6..e28d772 100644
--- a/tools/silex/main.cpp
+++ b/tools/silex/main.cpp
@@ -117,6 +117,7 @@ int main( int argc, char **argv )
     }
 
     w->show();
+    w->raise();
 
     return a.exec();
 }
diff --git a/tools/silock/Makefile.am b/tools/silock/Makefile.am
index 6ff64cc..23eb0c3 100644
--- a/tools/silock/Makefile.am
+++ b/tools/silock/Makefile.am
@@ -68,4 +68,7 @@ endif
 else
   silock_LDADD = ../../src/libsilo.la
 endif
-AM_CPPFLAGS = -I$(top_builddir)/src/silo -I$(includedir)
+if JSON_NEEDED
+  silock_LDADD += ../json/json-c-0.10/libjson.la
+endif
+AM_CPPFLAGS = -I$(top_builddir)/src/silo -I$(top_srcdir)/src/silo -I$(includedir)
diff --git a/tools/silock/Makefile.in b/tools/silock/Makefile.in
index a28f4f8..de8af29 100644
--- a/tools/silock/Makefile.in
+++ b/tools/silock/Makefile.in
@@ -88,6 +88,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 bin_PROGRAMS = silock$(EXEEXT)
+ at JSON_NEEDED_TRUE@am__append_1 = ../json/json-c-0.10/libjson.la
 subdir = tools/silock
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -110,8 +111,10 @@ am__installdirs = "$(DESTDIR)$(bindir)"
 PROGRAMS = $(bin_PROGRAMS)
 am_silock_OBJECTS = silock.$(OBJEXT)
 silock_OBJECTS = $(am_silock_OBJECTS)
- at HDF5_DRV_NEEDED_FALSE@silock_DEPENDENCIES = ../../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@silock_DEPENDENCIES = ../../src/libsiloh5.la
+ at HDF5_DRV_NEEDED_FALSE@silock_DEPENDENCIES = ../../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@silock_DEPENDENCIES = ../../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -189,6 +192,7 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JSON = @JSON@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBM = @LIBM@
@@ -237,9 +241,6 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SILEX = @SILEX@
-SILO_DTYPPTR = @SILO_DTYPPTR@
-SILO_DTYPPTR1 = @SILO_DTYPPTR1@
-SILO_DTYPPTR2 = @SILO_DTYPPTR2@
 SILO_VERS_MAJ = @SILO_VERS_MAJ@
 SILO_VERS_MIN = @SILO_VERS_MIN@
 SILO_VERS_PAT = @SILO_VERS_PAT@
@@ -316,9 +317,11 @@ top_srcdir = @top_srcdir@
 silock_SOURCES = silock.c
 @FPZIP_NEEDED_TRUE@@HDF5_DRV_NEEDED_TRUE at nodist_EXTRA_silock_SOURCES = dummy.cxx
 @HDF5_DRV_NEEDED_TRUE@@HZIP_NEEDED_TRUE at nodist_EXTRA_silock_SOURCES = dummy.cxx
- at HDF5_DRV_NEEDED_FALSE@silock_LDADD = ../../src/libsilo.la
- at HDF5_DRV_NEEDED_TRUE@silock_LDADD = ../../src/libsiloh5.la
-AM_CPPFLAGS = -I$(top_builddir)/src/silo -I$(includedir)
+ at HDF5_DRV_NEEDED_FALSE@silock_LDADD = ../../src/libsilo.la \
+ at HDF5_DRV_NEEDED_FALSE@	$(am__append_1)
+ at HDF5_DRV_NEEDED_TRUE@silock_LDADD = ../../src/libsiloh5.la \
+ at HDF5_DRV_NEEDED_TRUE@	$(am__append_1)
+AM_CPPFLAGS = -I$(top_builddir)/src/silo -I$(top_srcdir)/src/silo -I$(includedir)
 all: all-am
 
 .SUFFIXES:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/silo-llnl.git



More information about the debian-science-commits mailing list