[adios] 58/207: upstream 1.5.0

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jun 12 06:04:36 UTC 2015


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

mckinstry pushed a commit to branch master
in repository adios.

commit 54d078eabfe6f7f5674f77bf3e7e4a49ba44b5df
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Mon Dec 9 15:14:02 2013 +0000

    upstream 1.5.0
---
 CMakeLists.txt                                     | 1181 +++++
 Makefile.am                                        |   27 +-
 Makefile.in                                        |   62 +-
 NEWS                                               |   21 +
 aclocal.m4                                         |   42 +
 adios_config                                       |   68 +-
 adios_config.flags.in                              |    9 +
 runconf => cmake_init                              |  571 +-
 config.h.in => config.h.cmake                      |  190 +-
 config.h.in                                        |   16 +-
 config/ac_cray_pmi.m4                              |    6 +-
 config/ac_cray_ugni.m4                             |    6 +-
 config/ac_dataspaces.m4                            |    7 +
 config/ac_dcmf.m4                                  |   70 +
 config/ac_dimes.m4                                 |   40 +-
 config/ac_flexpath.m4                              |  120 +
 config/compile                                     |   25 +-
 config/config.guess                                |  634 ++-
 config/config.sub                                  |  205 +-
 config/depcomp                                     |  172 +-
 config/install-sh                                  |  530 +-
 config/missing                                     |  117 +-
 configure                                          | 3545 +++++++++++--
 configure.ac                                       |   75 +-
 examples/C/CMakeLists.txt                          |   10 +
 examples/C/Makefile.am                             |    2 +-
 examples/C/Makefile.in                             |   20 +-
 examples/C/arrays/CMakeLists.txt                   |   13 +
 examples/C/arrays/Makefile.am                      |    4 +-
 examples/C/arrays/Makefile.in                      |   24 +-
 examples/C/arrays/arrays_read.c                    |   46 +-
 examples/C/arrays/arrays_write.c                   |    4 +-
 examples/C/attributes/CMakeLists.txt               |   14 +
 examples/C/attributes/Makefile.am                  |    5 +-
 examples/C/attributes/Makefile.in                  |   32 +-
 examples/C/attributes/attributes_read.c            |   23 +-
 examples/C/attributes/attributes_write.c           |    4 +-
 examples/C/flexpath_arrays/Makefile.am             |    1 +
 .../{Fortran => C/flexpath_arrays}/Makefile.in     |   27 +-
 .../global_range_select}/Makefile.am               |    2 +-
 .../global_range_select}/Makefile.in               |   26 +-
 .../flexpath_arrays/global_range_select/arrays.xml |   19 +
 .../global_range_select/arrays_read.c              |  117 +
 .../global_range_select/arrays_write.c             |   58 +
 .../process_select}/Makefile.am                    |    4 +-
 .../process_select}/Makefile.in                    |   28 +-
 .../C/flexpath_arrays/process_select/arrays.xml    |   16 +
 .../C/flexpath_arrays/process_select/arrays_read.c |   95 +
 .../flexpath_arrays/process_select/arrays_write.c  |   80 +
 examples/C/flexpath_arrays/process_select/job.pbs  |    7 +
 examples/C/global-array-time/CMakeLists.txt        |   19 +
 examples/C/global-array-time/Makefile.am           |    9 +-
 examples/C/global-array-time/Makefile.in           |   36 +-
 examples/C/global-array-time/adios_globaltime.c    |    6 +-
 .../C/global-array-time/adios_globaltime_no_xml.c  |    4 +-
 .../C/global-array-time/adios_read_globaltime.c    |   72 +-
 .../adios_read_globaltime_streaming.c              |  135 +-
 examples/C/global-array/CMakeLists.txt             |   38 +
 examples/C/global-array/Makefile.am                |   23 +-
 examples/C/global-array/Makefile.in                |   67 +-
 examples/C/global-array/adios_global.c             |    4 +-
 examples/C/global-array/adios_global.xml           |    1 +
 examples/C/global-array/adios_global_2files.c      |    4 +-
 examples/C/global-array/adios_global_no_xml.c      |    4 +-
 examples/C/global-array/adios_read_global.c        |   26 +-
 examples/C/global-array/adios_read_global_no_xml.c |   30 +-
 examples/C/global-array/no_xml_write_byid.c        |    4 +-
 examples/C/global-array/read_no_xml_write_byid.c   |   29 +-
 examples/C/manual/2_adios_write.c                  |    4 +-
 examples/C/manual/3_adios_read.c                   |    4 +-
 examples/C/manual/4_adios_nfiles.c                 |    4 +-
 examples/C/manual/CMakeLists.txt                   |   19 +
 examples/C/manual/Makefile.in                      |   18 +-
 examples/C/read_all/CMakeLists.txt                 |   12 +
 examples/C/read_all/Makefile.am                    |   10 +-
 examples/C/read_all/Makefile.in                    |   47 +-
 examples/C/read_all/read_all.c                     |   57 +-
 examples/C/read_all/read_all_v1.c                  |  220 +
 examples/C/scalars/CMakeLists.txt                  |   15 +
 examples/C/scalars/Makefile.am                     |    6 +-
 examples/C/scalars/Makefile.in                     |   27 +-
 examples/C/scalars/README                          |   33 -
 examples/C/scalars/scalars_read.c                  |   44 +-
 examples/C/scalars/scalars_write.c                 |    4 +-
 examples/C/schema/CMakeLists.txt                   |   18 +
 examples/C/schema/Makefile.in                      |   18 +-
 examples/C/schema/rectilinear.c                    |    4 +-
 examples/C/schema/structured.c                     |   17 +-
 examples/C/schema/structured.xml                   |   39 +-
 examples/C/schema/uniform.c                        |    4 +-
 examples/C/schema/unstructured.c                   |    4 +-
 examples/C/schema/unstructured.xml                 |   10 +-
 examples/C/stat/CMakeLists.txt                     |   13 +
 examples/C/stat/Makefile.am                        |    7 +-
 examples/C/stat/Makefile.in                        |   34 +-
 examples/C/stat/stat_read.c                        |  171 +-
 examples/C/stat/stat_write.c                       |    6 +-
 examples/CMakeLists.txt                            |    6 +
 examples/Fortran/CMakeLists.txt                    |    5 +
 examples/Fortran/Makefile.in                       |   18 +-
 examples/Fortran/arrays/CMakeLists.txt             |   13 +
 examples/Fortran/arrays/Makefile.am                |    6 +-
 examples/Fortran/arrays/Makefile.in                |   25 +-
 examples/Fortran/arrays/README                     |   16 +-
 examples/Fortran/arrays/arrays_read.F90            |   47 +-
 examples/Fortran/arrays/arrays_write.F90           |    2 +-
 examples/Fortran/global-array-time/CMakeLists.txt  |   10 +
 examples/Fortran/global-array-time/Makefile.in     |   18 +-
 .../Fortran/global-array-time/adios_globaltime.F90 |    2 +-
 examples/Fortran/global-array/CMakeLists.txt       |   13 +
 examples/Fortran/global-array/Makefile.in          |   18 +-
 examples/Fortran/global-array/adios_global.F90     |    2 +-
 .../Fortran/global-array/adios_global_no_xml.F90   |    2 +-
 .../Fortran/global-array/no_xml_write_byid.F90     |    2 +-
 examples/Fortran/scalars/CMakeLists.txt            |   13 +
 examples/Fortran/scalars/Makefile.am               |    6 +-
 examples/Fortran/scalars/Makefile.in               |   25 +-
 examples/Fortran/scalars/README                    |   13 +-
 examples/Fortran/scalars/scalars_read.F90          |   51 +-
 examples/Fortran/scalars/scalars_write.F90         |    2 +-
 examples/Makefile.in                               |   18 +-
 examples/coupling/.svn/all-wcprops                 |   47 -
 examples/coupling/.svn/entries                     |  273 -
 examples/coupling/.svn/format                      |    1 -
 examples/coupling/.svn/prop-base/job.svn-base      |    5 -
 examples/coupling/.svn/text-base/Makefile.svn-base |   45 -
 examples/coupling/.svn/text-base/README.svn-base   |  132 -
 .../.svn/text-base/coupling_reader_2D.xml.svn-base |   27 -
 .../.svn/text-base/coupling_writer_2D.F90.svn-base |  214 -
 .../.svn/text-base/coupling_writer_2D.xml.svn-base |   41 -
 examples/coupling/.svn/text-base/job.svn-base      |   89 -
 examples/coupling/.svn/tmp/tempfile.2.tmp          |   89 -
 examples/coupling/.svn/tmp/tempfile.tmp            |   89 -
 examples/coupling/Makefile                         |   10 +-
 examples/coupling/coupling_reader_2D.F90           |   51 +-
 examples/coupling/coupling_writer_2D.F90           |   18 +-
 examples/coupling/coupling_writer_2D.xml           |    2 +
 .../coupling_reader_2D.F90.svn-base => read.F90}   |   31 +-
 examples/skel/.svn/all-wcprops                     |    5 -
 examples/skel/.svn/entries                         |   43 -
 examples/skel/.svn/format                          |    1 -
 examples/skel/genarray3d/.svn/all-wcprops          |   11 -
 examples/skel/genarray3d/.svn/entries              |   62 -
 examples/skel/genarray3d/.svn/format               |    1 -
 .../.svn/text-base/genarray3d.xml.svn-base         |   48 -
 examples/skel/geos5/.svn/all-wcprops               |   11 -
 examples/skel/geos5/.svn/entries                   |   62 -
 examples/skel/geos5/.svn/format                    |    1 -
 .../skel/geos5/.svn/prop-base/geos5.xml.svn-base   |    5 -
 .../skel/geos5/.svn/text-base/geos5.xml.svn-base   |  301 --
 examples/skel/grapes/.svn/all-wcprops              |   11 -
 examples/skel/grapes/.svn/entries                  |   62 -
 examples/skel/grapes/.svn/format                   |    1 -
 .../skel/grapes/.svn/text-base/grapes.xml.svn-base |   50 -
 examples/skel/gts/.svn/all-wcprops                 |   11 -
 examples/skel/gts/.svn/entries                     |   62 -
 examples/skel/gts/.svn/format                      |    1 -
 examples/skel/gts/.svn/text-base/gts.xml.svn-base  |   82 -
 examples/skel/s3d/.svn/all-wcprops                 |   11 -
 examples/skel/s3d/.svn/entries                     |   62 -
 examples/skel/s3d/.svn/format                      |    1 -
 examples/skel/s3d/.svn/text-base/s3d.xml.svn-base  |   26 -
 examples/staging/.svn/all-wcprops                  |    5 -
 examples/staging/.svn/entries                      |   38 -
 examples/staging/.svn/format                       |    1 -
 examples/staging/stage_write/.svn/all-wcprops      |   83 -
 examples/staging/stage_write/.svn/entries          |  477 --
 examples/staging/stage_write/.svn/format           |    1 -
 .../stage_write/.svn/prop-base/job.svn-base        |    5 -
 .../text-base/Makefile.genarray_stream.svn-base    |   30 -
 .../stage_write/.svn/text-base/Makefile.svn-base   |   41 -
 .../stage_write/.svn/text-base/README.svn-base     |   47 -
 .../.svn/text-base/decompose.h.svn-base            |   17 -
 .../.svn/text-base/decompose_block.c.svn-base      |   91 -
 .../.svn/text-base/decompose_single.c.svn-base     |   27 -
 .../.svn/text-base/genarray_stream.F90.svn-base    |  309 --
 .../.svn/text-base/genarray_stream.xml.svn-base    |   48 -
 .../stage_write/.svn/text-base/job.svn-base        |   62 -
 .../.svn/text-base/stage_write.c.svn-base          |  430 --
 .../.svn/text-base/test_decompose.c.svn-base       |  134 -
 .../stage_write/.svn/text-base/utils.c.svn-base    |  211 -
 .../stage_write/.svn/text-base/utils.h.svn-base    |   50 -
 examples/staging/stage_write/genarray_stream.F90   |    2 +-
 examples/staging/stage_write/stage_write.c         |    4 +-
 examples/staging/stage_write/x.bp.dir/x.bp.0       |  Bin 0 -> 386962 bytes
 runconf                                            |   84 +-
 src/CMakeLists.txt                                 |  628 +++
 src/Makefile.am                                    |   64 +-
 src/Makefile.in                                    | 1277 ++++-
 src/core/CMakeLists.txt                            |    1 +
 src/core/adios.c                                   |   10 +-
 src/core/adios_internals.c                         |   74 +-
 src/core/adios_internals.h                         |   10 +-
 src/core/adios_internals_mxml.c                    | 5594 +++++++++++++++-----
 src/core/adios_internals_mxml.h                    |   10 +-
 src/core/adios_read.c                              |   16 +-
 src/core/adios_read_hooks.c                        |    9 +-
 src/core/adios_read_hooks.h                        |   11 +-
 src/core/adios_read_v1.c                           |   41 +-
 src/core/adios_timing.c                            |  124 +-
 src/core/adios_transport_hooks.c                   |   19 +-
 src/core/adios_transport_hooks.h                   |   17 +-
 src/core/adiosf.c                                  |   24 +-
 src/core/adiosf_defs_mod.f90                       |   13 +-
 src/core/adiosf_read.c                             |   12 +-
 src/core/adiosf_read_mod.f90                       |   18 +-
 src/core/adiosf_read_v1.c                          |    4 +
 src/core/adiosf_write_mod.f90                      |   16 +-
 src/core/bp_utils.c                                |   94 +-
 src/core/bp_utils.h                                |    7 +-
 src/core/common_adios.c                            |   21 +-
 src/core/common_adios.h                            |    6 +-
 src/core/common_read.c                             |   18 +-
 src/core/common_read.h                             |   22 +-
 src/core/ds_metadata.h                             |   11 +
 src/core/flexpath.h                                |  217 +
 src/core/util.c                                    |   10 +-
 src/core/util.h                                    |    4 +-
 src/nssi/adios_nssi_config.c                       |    9 +-
 src/nssi/adios_nssi_filter.c                       |   37 +-
 src/nssi/nssi_coupling_server.cpp                  |    2 +-
 src/nssi/nssi_staging_server.cpp                   |    4 +-
 src/public/adios.h                                 |   17 +-
 src/public/adios_mpi.h                             |   20 +
 src/public/adios_read_v1.h                         |    9 +-
 src/public/adios_read_v2.h                         |   25 +-
 src/public/adios_selection.h                       |    4 +-
 src/public/mpidummy.h                              |    3 +
 src/read/read_bp.c                                 |   38 +-
 src/read/read_bp_staged.c                          |    6 +-
 src/read/read_bp_staged1.c                         |    2 +-
 src/read/read_dataspaces.c                         |   14 +-
 src/read/read_datatap.c                            |   11 +-
 src/read/read_dimes.c                              | 1806 +++++--
 src/read/read_flexpath.c                           | 1409 +++++
 src/write/CMakeLists.txt                           |    1 +
 src/write/adios_dataspaces.c                       |   88 +-
 src/write/adios_dimes.c                            | 1118 ++--
 src/write/adios_flexpath.c                         | 1682 ++++++
 src/write/adios_mpi.c                              |   98 +-
 src/write/adios_mpi_amr.c                          |  112 +-
 src/write/adios_mpi_lustre.c                       |  106 +-
 src/write/adios_nc4.c                              |   57 +-
 src/write/adios_nssi.c                             |   34 +-
 src/write/adios_phdf5.c                            |   89 +-
 src/write/adios_posix.c                            |  105 +-
 src/write/adios_posix1.c                           |    4 +-
 src/write/adios_var_merge.c                        | 1740 ++++++
 tests/C/CMakeLists.txt                             |   13 +
 tests/C/Makefile.in                                |   18 +-
 tests/C/adios_test_c.c                             |   10 +-
 tests/CMakeLists.txt                               |   29 +
 tests/Fortran/CMakeLists.txt                       |    9 +
 tests/Fortran/Makefile.in                          |   18 +-
 tests/Fortran/adios_test_f.F90                     |    5 +-
 tests/Makefile.in                                  |   18 +-
 tests/bp_read/CMakeLists.txt                       |   36 +
 tests/bp_read/Makefile.in                          |   18 +-
 tests/bp_read/genbp.c                              |    6 +-
 tests/genarray/CMakeLists.txt                      |   37 +
 tests/genarray/Makefile.in                         |   18 +-
 tests/genarray/copyarray.F90                       |    7 +-
 tests/genarray/copyarray2D.F90                     |   16 +-
 tests/genarray/genarray.F90                        |    7 +-
 tests/genarray/genarray.xml                        |    3 +-
 tests/genarray/genarray2D.F90                      |    9 +-
 tests/genarray/genarray3d.xml                      |    3 +-
 tests/suite/CMakeLists.txt                         |    8 +
 tests/suite/Makefile.in                            |   18 +-
 tests/suite/programs/CMakeLists.txt                |   50 +
 tests/suite/programs/Makefile.in                   |   18 +-
 tests/suite/programs/adios_amr_write.c             |    4 +-
 tests/suite/programs/adios_amr_write_2vars.c       |    4 +-
 tests/suite/programs/adios_amr_write_2vars.xml     |    3 +-
 tests/suite/programs/connect_to_space_subset.c     |    4 +-
 tests/suite/programs/local_array_time.c            |    6 +-
 tests/suite/programs/many_vars.c                   |    4 +-
 tests/suite/programs/posix_method.F90              |    3 +-
 tests/suite/programs/selections.c                  |    8 +-
 tests/suite/programs/two_groups.c                  |    4 +-
 tests/suite/programs/write_alternate.c             |    8 +-
 tests/suite/programs/write_read.c                  |    4 +-
 tests/suite/reference/global_array_time_read.txt   |  235 +-
 tests/suite/tests/05_global_array_time.sh          |    2 +-
 toolchain.cmake                                    |   13 +
 utils/CMakeLists.txt                               |   36 +
 utils/Makefile.in                                  |   18 +-
 utils/adios_lint/CMakeLists.txt                    |   13 +
 utils/adios_lint/Makefile.in                       |   18 +-
 utils/bp2ascii/CMakeLists.txt                      |   13 +
 utils/bp2ascii/Makefile.in                         |   18 +-
 utils/bp2bp/CMakeLists.txt                         |   10 +
 utils/bp2bp/Makefile.am                            |    2 +-
 utils/bp2bp/Makefile.in                            |   20 +-
 utils/bp2bp/bp2bp.c                                |    4 +-
 utils/bp2h5/CMakeLists.txt                         |   13 +
 utils/bp2h5/Makefile.am                            |    4 +-
 utils/bp2h5/Makefile.in                            |   22 +-
 utils/bp2h5/bp2h5.c                                |    4 +-
 utils/bp2ncd/CMakeLists.txt                        |   21 +
 utils/bp2ncd/Makefile.in                           |   18 +-
 utils/bpdump/CMakeLists.txt                        |   11 +
 utils/bpdump/Makefile.in                           |   18 +-
 utils/bpdump/bpdump.c                              |    7 +-
 utils/bpls/CMakeLists.txt                          |   12 +
 utils/bpls/Makefile.in                             |   18 +-
 utils/bpsplit/CMakeLists.txt                       |   20 +
 utils/bpsplit/Makefile.in                          |   18 +-
 utils/gpp/CMakeLists.txt                           |    1 +
 utils/gpp/Makefile.in                              |   18 +-
 utils/skel/CMakeLists.txt                          |   36 +
 utils/skel/Makefile.am                             |   16 +-
 utils/skel/Makefile.in                             |   31 +-
 utils/skel/bin/skel                                |    8 +-
 utils/skel/{lib => bin}/skel_cat.py                |    0
 utils/skel/bin/skel_extract.py                     |   79 +-
 utils/skel/etc/CMakeLists.txt                      |   28 +
 utils/skel/etc/Makefile.in                         |   18 +-
 utils/skel/etc/compiler_fragment.mk                |    7 -
 utils/skel/etc/templates/Makefile.default.tpl      |    3 +-
 utils/skel/etc/templates/submit_jaguar.tpl         |    2 +-
 .../{submit_sith.tpl => submit_nautilus.tpl}       |   14 +-
 utils/skel/etc/templates/submit_sith.tpl           |    4 +-
 utils/skel/lib/skel_have_adios_timing.py           |    1 +
 utils/skel/lib/skel_have_adios_timing.py.in        |    1 +
 utils/skel/lib/skel_makefile.py                    |   12 +-
 utils/skel/lib/skel_settings.py                    |    8 +-
 utils/skel/lib/skel_source.py                      |   36 +-
 utils/skel/lib/skel_submit.py                      |   10 +-
 utils/skel/lib/skelconf.py                         |    7 +-
 utils/skel/src/CMakeLists.txt                      |   12 +
 utils/skel/src/Makefile.am                         |   15 +
 .../skel/src}/Makefile.in                          |  277 +-
 utils/skel/src/skel_xml_output.c                   |  114 +
 utils/skel/src/skel_xml_output.h                   |    6 +
 utils/skel/src/skel_xml_output_f.c                 |   19 +
 wrappers/.svn/all-wcprops                          |    5 -
 wrappers/.svn/dir-prop-base                        |    5 -
 wrappers/.svn/entries                              |   44 -
 wrappers/.svn/format                               |    1 -
 wrappers/java/.svn/all-wcprops                     |   41 -
 wrappers/java/.svn/entries                         |  350 --
 wrappers/java/.svn/format                          |    1 -
 .../java/.svn/text-base/CMakeLists.txt.svn-base    |   96 -
 wrappers/java/.svn/text-base/README.svn-base       |   49 -
 .../.svn/text-base/gov_ornl_ccs_Adios.cxx.svn-base |  578 --
 .../gov_ornl_ccs_AdiosBufferAllocWhen.cxx.svn-base |    0
 .../gov_ornl_ccs_AdiosDatatype.cxx.svn-base        |    0
 .../text-base/gov_ornl_ccs_AdiosFile.cxx.svn-base  |  102 -
 .../text-base/gov_ornl_ccs_AdiosFlag.cxx.svn-base  |    0
 .../text-base/gov_ornl_ccs_AdiosGroup.cxx.svn-base |   97 -
 .../gov_ornl_ccs_AdiosVarinfo.cxx.svn-base         |  175 -
 wrappers/java/Modules/.svn/entries                 |  137 -
 wrappers/java/Modules/.svn/format                  |    1 -
 .../text-base/CMakeUtilityFunctions.cmake.svn-base |   19 -
 .../.svn/text-base/FindADIOS.cmake.svn-base        |  136 -
 .../FindPackageHandleStandardArgs.cmake.svn-base   |  260 -
 wrappers/java/gov/.svn/all-wcprops                 |    5 -
 wrappers/java/gov/.svn/entries                     |   38 -
 wrappers/java/gov/.svn/format                      |    1 -
 wrappers/java/gov/ornl/.svn/all-wcprops            |    5 -
 wrappers/java/gov/ornl/.svn/entries                |   38 -
 wrappers/java/gov/ornl/.svn/format                 |    1 -
 wrappers/java/gov/ornl/ccs/.svn/all-wcprops        |   35 -
 wrappers/java/gov/ornl/ccs/.svn/entries            |  307 --
 wrappers/java/gov/ornl/ccs/.svn/format             |    1 -
 .../ornl/ccs/.svn/text-base/Adios.java.svn-base    |  266 -
 .../text-base/AdiosBufferAllocWhen.java.svn-base   |   17 -
 .../ccs/.svn/text-base/AdiosDatatype.java.svn-base |   33 -
 .../ccs/.svn/text-base/AdiosFile.java.svn-base     |   65 -
 .../ccs/.svn/text-base/AdiosFlag.java.svn-base     |   18 -
 .../ccs/.svn/text-base/AdiosGroup.java.svn-base    |   71 -
 .../ccs/.svn/text-base/AdiosTest.java.svn-base     |   50 -
 .../ccs/.svn/text-base/AdiosVarinfo.java.svn-base  |  151 -
 wrappers/java/gov/ornl/ccs/Adios.java              |   12 +-
 wrappers/java/gov_ornl_ccs_Adios.cxx               |   12 +-
 wrappers/java/test/.svn/all-wcprops                |   29 -
 wrappers/java/test/.svn/entries                    |  171 -
 wrappers/java/test/.svn/format                     |    1 -
 .../java/test/.svn/prop-base/test1.sh.svn-base     |    5 -
 .../java/test/.svn/prop-base/test2.sh.svn-base     |    5 -
 .../.svn/text-base/AdiosNoxmlTest.java.svn-base    |   57 -
 .../test/.svn/text-base/AdiosTest.java.svn-base    |  106 -
 .../java/test/.svn/text-base/test1.sh.svn-base     |   40 -
 .../java/test/.svn/text-base/test2.sh.svn-base     |   19 -
 wrappers/java/test/AdiosNoxmlTest.java             |    2 +-
 wrappers/java/test/AdiosTest.java                  |    2 +-
 wrappers/matlab/.gitignore                         |    1 +
 wrappers/matlab/.svn/all-wcprops                   |   11 -
 wrappers/matlab/.svn/entries                       |  307 --
 wrappers/matlab/.svn/format                        |    1 -
 wrappers/matlab/.svn/text-base/Makefile.svn-base   |   30 -
 wrappers/matlab/.svn/text-base/adios.m.svn-base    |   54 -
 .../matlab/.svn/text-base/adiosclose.m.svn-base    |  151 -
 .../matlab/.svn/text-base/adiosclosec.c.svn-base   |  114 -
 .../matlab/.svn/text-base/adiosopen.m.svn-base     |  188 -
 .../matlab/.svn/text-base/adiosopenc.c.svn-base    |  427 --
 .../matlab/.svn/text-base/adiosread.m.svn-base     |  268 -
 .../matlab/.svn/text-base/adiosreadc.c.svn-base    |  458 --
 wrappers/numpy/.svn/all-wcprops                    |   17 -
 wrappers/numpy/.svn/entries                        |  146 -
 wrappers/numpy/.svn/format                         |    1 -
 .../numpy/.svn/text-base/CMakeLists.txt.svn-base   |   60 -
 wrappers/numpy/.svn/text-base/README.svn-base      |   37 -
 wrappers/numpy/.svn/text-base/adios.pyx.svn-base   |  607 ---
 wrappers/numpy/CMakeLists.txt                      |    5 +-
 wrappers/numpy/Modules/.svn/entries                |  205 -
 wrappers/numpy/Modules/.svn/format                 |    1 -
 .../text-base/CMakeUtilityFunctions.cmake.svn-base |   19 -
 .../.svn/text-base/FindADIOS.cmake.svn-base        |  136 -
 .../.svn/text-base/FindMPI4Py.cmake.svn-base       |   65 -
 .../.svn/text-base/FindNumpy.cmake.svn-base        |   57 -
 .../FindPackageHandleStandardArgs.cmake.svn-base   |  260 -
 wrappers/numpy/adios.pyx                           |   20 +-
 wrappers/numpy/example/.svn/all-wcprops            |   11 -
 wrappers/numpy/example/.svn/entries                |   62 -
 wrappers/numpy/example/.svn/format                 |    1 -
 .../example/.svn/prop-base/ncdf2bp.py.svn-base     |    5 -
 .../example/.svn/text-base/ncdf2bp.py.svn-base     |  126 -
 wrappers/numpy/test/.svn/all-wcprops               |   17 -
 wrappers/numpy/test/.svn/entries                   |  239 -
 wrappers/numpy/test/.svn/format                    |    1 -
 .../.svn/prop-base/test_adios_noxml.sh.svn-base    |    5 -
 .../.svn/prop-base/test_adios_read.sh.svn-base     |    5 -
 .../.svn/prop-base/test_adios_write.sh.svn-base    |    5 -
 .../.svn/text-base/adios_noxml_test.py.svn-base    |   29 -
 .../.svn/text-base/adios_read_test.py.svn-base     |   14 -
 .../.svn/text-base/adios_write_test.py.svn-base    |   21 -
 .../.svn/text-base/test_adios_noxml.sh.svn-base    |   15 -
 .../.svn/text-base/test_adios_read.sh.svn-base     |   35 -
 .../.svn/text-base/test_adios_write.sh.svn-base    |   35 -
 431 files changed, 23473 insertions(+), 17733 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..cd66d6c
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,1181 @@
+cmake_minimum_required(VERSION 2.8.0)
+project(ADIOS_PROJECT)
+
+#set(LANGUAGE "" CACHE FILEPATH "")  #C/CXX/Fortran
+
+#enable_language(${LANGUAGE})
+#message(STATUS "CMAKE_${LANGUAGE}_COMPILER_WORKS = ${CMAKE_${LANGUAGE}_COMPILER_WORKS}")
+
+include_directories(${PROJECT_SOURCE_DIR})
+link_directories(${PROJECT_BINARY_DIR})
+#message("${PROJECT_SOURCE_DIR}")
+
+#set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})
+
+set(CMAKE_INSTALL_PREFIX $ENV{INSTALL_PREFIX} CACHE PATH "Prefix prepended to install directories" FORCE)
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(exec_prefix ${prefix})
+set(bindir ${exec_prefix}/bin)
+#set(datadir ${prefix}/share)
+set(libdir ${exec_prefix}/lib)
+set(includedir ${prefix}/include)
+
+if(DEFINED ENV{MACRODEFFLAG})
+  set(MACRODEFFLAG $ENV{MACRODEFFLAG})
+else()
+  set(MACRODEFFLAG "-D")
+endif()
+message(STATUS "MACRODEFFLAG = ${MACRODEFFLAG}")
+
+set(LIBS "")
+set(CPPFLAGS "$ENV{CPPFLAGS}")
+set(CFLAGS "$ENV{CFLAGS}")
+set(EXTRA_CFLAGS "$ENV{EXTRA_CFLAGS}")
+set(EXTRA_LIBS "$ENV{EXTRA_LIBS}")
+######## file moved from initial_cache.cmake to indicate external library is used(ON) or not (OFF)######
+if(DEFINED ENV{BUILD_WRITE})
+  if("$ENV{BUILD_WRITE}" STREQUAL "") 
+    set(BUILD_WRITE ON CACHE BOOL "")
+  else()
+    set(BUILD_WRITE $ENV{BUILD_WRITE})
+  endif()
+  if(BUILD_WRITE)
+    set(BUILD_WRITE ON CACHE BOOL "")
+  else()
+    set(BUILD_WRITE OFF CACHE BOOL "")
+  endif()
+else()
+  set(BUILD_WRITE ON CACHE BOOL "")
+endif()
+
+if(DEFINED ENV{BUILD_FORTRAN})
+  if("$ENV{BUILD_FORTRAN}" STREQUAL "")
+    set(BUILD_FORTRAN ON CACHE BOOL "")
+  else()
+    set(BUILD_FORTRAN $ENV{BUILD_FORTRAN})
+  endif()
+  if(BUILD_FORTRAN)
+    set(BUILD_FORTRAN ON CACHE BOOL "")
+  else()
+    set(BUILD_FORTRAN OFF CACHE BOOL "")
+  endif()
+else()
+  set(BUILD_FORTRAN ON CACHE BOOL "")
+endif()
+
+if(DEFINED ENV{skel_timing})
+  if("$ENV{skel_timing}" STREQUAL "")
+    message("SKEL is not enabled")
+  else()
+    set(SKEL_TIMING 1)
+  endif()
+  if(SKEL_TIMING)
+    set(SKEL_HAVE_ADIOS_TIMING True)
+  else()
+    set(SKEL_HAVE_ADIOS_TIMING False)
+  endif()
+else()
+  set(SKEL_HAVE_ADIOS_TIMING False)
+  message("SKEL is not enabled")
+endif()
+message("SKEL_HAVE_ADIOS_TIMING is ${SKEL_HAVE_ADIOS_TIMING}")
+
+set(MXML_DIR $ENV{MXML_DIR}  CACHE FILEPATH "path to mxml dir")
+
+set(DATATAP OFF CACHE BOOL "")
+
+set(DIMES OFF CACHE BOOL "")
+
+set(NSSI OFF CACHE BOOL "")
+
+if(DEFINED ENV{SEQ_NC_DIR})
+  if("$ENV{SEQ_NC_DIR}" STREQUAL "")
+    set(NETCDF OFF CACHE BOOL "")
+  else()
+    set(NETCDF ON CACHE BOOL "")
+    set(NETCDF_DIR "$ENV{SEQ_NC_DIR}" CACHE FILEPATH "path to suquential NETCDF dir")
+  endif()
+else()
+  set(NETCDF OFF CACHE BOOL "")
+endif()
+
+if(DEFINED ENV{PAR_NC_DIR})
+  if($ENV{PAR_NC_DIR} STREQUAL "")
+    set(NC4PAR OFF CACHE BOOL "")
+  else()
+    set(NC4PAR ON CACHE BOOL "")
+    set(NC4PAR_DIR "$ENV{PAR_NC_DIR}" CACHE FILEPATH "path to parallel NETCDFdir")
+  endif()
+else()
+  set(NC4PAR OFF CACHE BOOL "")
+endif()
+
+#if(DEFINED ENV{PAR_NC_DIR} AND DEFINED ENV{PAR_NC_CLIB})
+#  set(NC4PAR ON CACHE BOOL "")
+#  set(NC4PAR_DIR $ENV{PAR_NC_DIR} CACHE FILEPATH "")
+#  set(NC4PAR_CPPFLAGS "-I${NC4PAR_DIR}/include")
+#  set(NC4PAR_LIBS $ENV{PAR_NC_CLIB} CACHE STRING "parallel netcdf")
+#else()
+#  set(NC4PAR OFF CACHE BOOL "")
+#endif()
+
+#if(DEFINED ENV{SEQ_NC_DIR} AND DEFINED ENV{SEQ_NC_CLIB})
+#  set(NETCDF ON CACHE BOOL "")
+#  set(NETCDF_DIR $ENV{SEQ_NC_DIR} CACHE FILEPATH "")
+#  set(NETCDF_CPPFLAGS "-I${NETCDF_DIR}/include")
+#  set(NETCDF_LIBS $ENV{SEQ_NC_CLIB} CACHE STRING "")
+#else()
+#  set(NETCDF OFF CACHE BOOL "")
+#endif()
+
+#if(DEFINED ENV{PAR_HDF5_DIR} AND DEFINED ENV{PAR_HDF5_CLIB})
+#  set(PHDF5 ON CACHE BOOL "")
+#  set(PHDF5_DIR $ENV{PAR_HDF5_DIR} CACHE FILEPATH "path to parallel hdf5 dir")
+#  set(PHDF5_FLAGS "-I${PHDF5_DIR}/include")
+#  set(PHDF5_LIBS $ENV{PAR_HDF5_CLIB} CACHE STRING "parallel hdf5")
+#else()
+#  set(PHDF5 OFF CACHE BOOL "")
+#endif()
+
+if(DEFINED ENV{PAR_HDF5_DIR})
+  if("$ENV{PAR_HDF5_DIR}" STREQUAL "")
+    set(PHDF5 OFF CACHE BOOL "")
+  else()
+    set(PHDF5 ON CACHE BOOL "")
+    set(PHDF5_DIR $ENV{PAR_HDF5_DIR} CACHE FILEPATH "path to parallel hdf5 dir")
+    set(PHDF5_FLAGS "-I${PHDF5_DIR}/include")
+#   set(PHDF5_LIBS $ENV{PAR_HDF5_CLIB} CACHE STRING "parallel hdf5")
+  endif()
+else()
+  set(PHDF5 OFF CACHE BOOL "")
+endif()
+
+if(DEFINED ENV{PORTALS_DIR})
+  if("$ENV{PORTALS_DIR}" STREQUAL "")
+    set(PORTALS OFF CACHE BOOL "")
+  else()
+    set(PORTALS_DIR "$ENV{PROTALS_DIR}" CACHE STRING "path to protals")
+    set(PORTALS ON CACHE BOOL "")
+  endif()
+elseif(DEFINED ENV{PORTALS})
+  if("$ENV{PORTALS}" STREQUAL "")
+    set(PORTALS OFF CACHE BOOL "")
+  else()
+    set(PORTALS_DIR "$ENV{PROTALS}" CACHE STRING "path to protals")
+    set(PORTALS ON CACHE BOOL "")
+  endif()
+else()
+  set(PORTALS OFF CACHE BOOL "")
+endif()
+
+if(DEFINED ENV{DATASPACES_INCDIR})
+  if("${DATASPACES_INCDIR}" STREQUAL "")
+    set(DATASPACES OFF CACHE BOOL "")
+  else()
+    set(DATASPACES_INCDIR "$ENV{DATASPACES_INCDIR}" CACHE INTERNAL "Internal variable")
+  endif()
+else()
+  set(DATASPACES OFF CACHE BOOL "")
+endif()
+if(DEFINED ENV{DATASPACES_LIBDIR})
+  if("${DATASPACES_LIBDIR}" STREQUAL "")
+    set(DATASPACES OFF CACHE BOOL "")
+  else()
+    set(DATASPACES_LIBDIR $ENV{DATASPACES_LIBDIR} CACHE INTERNAL "Internal variable")
+  endif()
+else()
+  set(DATASPACES OFF CACHE BOOL "")
+endif()
+if(DEFINED DATASPACES_INCDIR)
+  if(DEFINED DATASPACES_LIBDIR)
+    set(DATASPACES ON CACHE BOOL "" FORCE)
+    set(DATASPACES_INCDIR "$ENV{DATASPACES_INCDIR}" CACHE STRING "" FORCE)
+    set(DATASPACES_LIBDIR $ENV{DATASPACES_LIBDIR} CACHE STRING "" FORCE)
+  endif()
+endif()
+if("${DATASPACES}" STREQUAL "OFF")
+  if(DEFINED ENV{DATASPACES_DIR})
+    set(DATASPACES ON CACHE BOOL "" FORCE)
+    set(DATASPACES_DIR $ENV{DATASPACES_DIR} CACHE FILEPATH "path to dataspaces dir")
+#  set(DATASPACES_LIBS "-L$ENV{DATASPACES_DIR}/libs -ldspaces -ldscommon
+#  -ldar" CACHE STRING "dataspace libs")
+  elseif(DEFINED ENV{DATASPACES})
+    set(DATASPACES_DIR $ENV{DATASPACES} CACHE FILEPATH "path to dataspaces dir")
+    set(DATASPACES ON CACHE BOOL "" FORCE)
+  endif()
+endif()
+
+if(DEFINED ENV{CRAY_PMI_DIR})
+  set(CRAY_PMI_DIR $ENV{CRAY_PMI_DIR})
+  if(CRAY_PMI_DIR)
+    set(CRAY_PMI ON CACHE BOOL "")
+    set(CRAY_PMI_LIBS_PATH "${CRAY_PMI_DIR}/lib64" CACHE STRING "")
+    set(CRAY_PMI_CPPFLAGS "-I${CRAY_PMI_DIR}/include" CACHE STRING "")
+  else()
+    set(CRAY_PMI OFF CACHE BOOL "")
+  endif()
+else()
+  set(CRAY_PMI OFF CACHE BOOL "")
+endif()
+
+if(DEFINED ENV{CRAY_UGNI_DIR})
+  set(CRAY_UGNI_DIR $ENV{CRAY_UGNI_DIR})
+  if(CRAY_UGNI_DIR)
+    set(CRAY_UGNI ON CACHE BOOL "")
+    set(CRAY_UGNI_LIBS_PATH "${CRAY_UGNI_DIR}/lib64" CACHE STRING "")
+    set(CRAY_UGNI_CPPFLAGS "-I${CRAY_UGNI_DIR}/include")
+  else()
+    set(CRAY_UGNI OFF CACHE BOOL "")
+  endif()
+else()
+  set(CRAY_UGNI OFF CACHE BOOL "")
+endif()
+
+#if(DEFINED ENV{SEQ_HDF5_DIR} AND DEFINED ENV{SEQ_HDF5_CLIB})
+#  set(HDF5 ON CACHE BOOL "")
+#  set(HDF5_DIR "$ENV{SEQ_HDF5_DIR}" CACHE FILEPATH "path to hdf5 dir")
+#  set(HDF5_FLAGS "-I${HDF5_DIR}/include")
+#  set(HDF5_LIBS "$ENV{SEQ_HDF5_CLIB}" CACHE FILEPATH "sequential hdf5")
+#else()
+#  set(HDF5 OFF CACHE BOOL "")
+#endif()
+
+if(DEFINED ENV{SEQ_HDF5_DIR})
+  if("$ENV{SEQ_HDF5_DIR}" STREQUAL "")
+    set(HDF5 OFF CACHE BOOL "")
+  else()
+    set(HDF5 ON CACHE BOOL "" FORCE)
+    set(HDF5_DIR "$ENV{SEQ_HDF5_DIR}" CACHE FILEPATH "path to hdf5 dir")
+    set(HDF5_FLAGS "-I${HDF5_DIR}/include")
+#  set(HDF5_LIBS "$ENV{SEQ_HDF5_CLIB}" CACHE FILEPATH "sequential hdf5")
+  endif()
+else()
+  set(HDF5 OFF CACHE BOOL "")
+endif()
+
+set(DMALLOC OFF CACHE BOOL "")
+
+if(DEFINED ENV{LUSTRE_DIR})
+  set(LUSTRE_DIR "$ENV{LUSTRE_DIR}" CACHE FILEPATH "path to lustre dir")
+  set(LUSTRE ON CACHE BOOL "")
+else()
+  set(LUSTRE OFF CACHE BOOL "")
+endif()
+###################### end of external library is used(ON) or not (OFF) ##############################
+
+
+#################################### start generating config.h #######################################
+set(BUILD_WITH_CMAKE 1)
+
+INCLUDE (CheckIncludeFiles)
+INCLUDE (CheckFunctionExists)
+
+# Define to dummy `main' function (if any) required to link to the Fortran
+# libraries.
+
+# Define if F77 and FC dummy `main' functions are identical.
+
+# Define to a macro mangling the given C identifier (in lower and upper case),
+# which must not contain underscores, for linking with Fortran.
+set(FC_FUNC FC_GLOBAL)
+
+# As FC_FUNC, but for C identifiers containing underscores.
+set(FC_FUNC_ FC_GLOBAL_)
+# Define to 1 if your Fortran compiler doesn't accept -c and -o together.
+
+# Define to 1 if you have the <Attributes.h> header file.
+CHECK_INCLUDE_FILES(Attributes.h HAVE_ATTRIBUTES_H)
+
+# Define to 1 if you have the `clock_gettime' function.
+CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
+
+# Define if you have CRAY_PMI.
+set(HAVE_CRAY_PMI 0)
+if(CRAY_PMI)
+  find_library(CRAY_PMI_LIBS NAMES pmi PATHS ${CRAY_PMI_LIBS_PATH})
+  if(CRAY_PMI_LIBS)
+    set(HAVE_CRAY_PMI 1)
+#  set(LIBS "${LIBS} ${CRAY_PMI_LIBS}")
+    set(CPPFLAGS "${CPPFLAGS} ${CRAY_PMI_CPPFLAGS}")
+  endif()
+endif()
+
+# Define if you have CRAY_UGNI.
+set(HAVE_CRAY_UGNI 0)
+if(CRAY_UGNI)
+  find_library(CRAY_UGNI_LIBS NAMES ugni PATHS ${CRAY_UGNI_LIBS_PATH})
+  if(CRAY_UGNI_LIBS)
+    set(HAVE_CRAY_UGNI 1)
+#   set(LIBS "${LIBS} ${CRAY_UGNI_LIBS}")
+    set(CPPFLAGS "${CPPFLAGS} ${CRAY_UGNI_CPPFLAGS}")
+  endif()
+endif()
+
+# Define to 1 if you have <infiniband/verbs.h>.
+CHECK_INCLUDE_FILES(infiniband/verbs.h HAVE_IBVERBS_H)
+
+CHECK_FUNCTION_EXISTS(ibv_alloc_pd HAVE_IBVERBS)
+
+# Define if you have the Infiniband.
+set(HAVE_INFINIBAND 0)
+if(HAVE_IBVERBS_H AND HAVE_IBVERBS)
+  set(HAVE_INFINIBAND 1)
+  set(INFINIBAND ON CACHE BOOL "") 
+  set(INFINIBAND_LIBS "-libverbs")
+#  set(LIBS "${LIBS} ${INFINIBAND_LIBS}")
+endif()
+
+CHECK_FUNCTION_EXISTS(PtlInit HAVE_PTLINIT)
+
+# Define to 1 if you have <portals3.h>.
+#set(HAVE_PORTALS3_H 0)
+CHECK_INCLUDE_FILES(portals3.h HAVE_PORTALS3_H)
+
+# Define to 1 if you have <portals/portals3.h>.
+#set(HAVE_PORTALS_PORTALS3_H 0)
+CHECK_INCLUDE_FILES(portals/portals3.h HAVE_PORTALS_PORTALS3_H)
+
+# Define to 1 if you have the <p3nal_utcp.h> header file.
+CHECK_INCLUDE_FILES(p3nal_utcp.h HAVE_P3NAL_UTCP_H)
+
+# Define to 1 if you have the <p3rt/p3rt.h> header file.
+CHECK_INCLUDE_FILES(p3rt/p3rt.h HAVE_P3RT_P3RT_H)
+
+# Define if you have the Portals.
+if(PORTALS)
+  set(PORTALS_LIBS "-L${PORTALS_DIR}/lib")
+#  set(LIBS "${LIBS} ${PORTALS_LIBS}")
+  set(PORTALS_CPPFLAGS "-I${PORTALS_DIR}/include")
+  if(HAVE_PORTALS3_H)
+    set(HAVE_PORTALS 1)
+    set(PORTALS_CFLAGS "${PORTALS_CFLAGS} ${EXTRA_CFLAGS}")
+    set(CFLAGS "${CFLAGS} ${PORTALS_CFLAGS}")
+    set(PORTALS_CPPFLAGS "${PORTALS_CPPFLAGS} ${EXTRA_CPPFLAGS}")
+    set(CPPFLAGS "${CPPFLAGS} ${PORTALS_CPPFLAGS}")
+  elseif(HAVE_PORTALS_PORTALS3_H)
+    set(HAVE_PORTALS 1)
+    set(PORTALS_CFLAGS "${PORTALS_CFLAGS} ${EXTRA_CFLAGS}")
+    set(CFLAGS "${CFLAGS} ${PORTALS_CFLAGS}")
+    set(PORTALS_CPPFLAGS "${PORTALS_CPPFLAGS} ${EXTRA_CPPFLAGS}")
+    set(CPPFLAGS "${CPPFLAGS} ${PORTALS_CPPFLAGS}") 
+ endif()
+#else()
+#  find_package(TPLPortals) 
+#  if(TPLPortals_FOUND)
+#    set(PORTALS ON CACHE BOOL "" FORCE)
+#    set(HAVE_PORTALS 1)
+#    set(PORTALS_CPPFLAGS "${TPLPortals_INCLUDE_DIRS}")
+#    set(CPPFLAGS "${CPPFLAGS} ${PORTALS_CPPFLAGS}")
+#    set(PORTALS_LIBS "${TPLPortals_LIBRARIES}")
+#    set(LIBS "${LIBS} ${PORTALS_LIBS}")
+#  else()
+#    set(HAVE_PORTALS 0)
+#  endif()
+endif()
+
+
+# Define to 1 if you have the <dataspaces.h> header file.
+set(HAVE_DATASPACES_H 0)
+if(DATASPACES)
+  if(DEFINED DATASPACES_INCDIR)  
+    if("${DATASPACES_INCDIR}" STREQUAL "")
+      set(DATASPACES_INCDIR "$ENV{DATASPACES_DIR}/include")
+    endif()
+  else()
+    set(DATASPACES_INCDIR "$ENV{DATASPACES_DIR}/include")
+  endif()
+#  message(STATUS "DATASPACES_INCDIR is: ${DATASPACES_INCDIR}")
+  find_path(DATASPACES_INCLUDE_DIR NAMES dataspaces.h PATHS ${DATASPACES_INCDIR})
+  if(DATASPACES_INCLUDE_DIR)
+    set(HAVE_DATASPACES_H 1)
+    set(DATASPACES_CPPFLAGS "-I${DATASPACES_INCLUDE_DIR}")
+    include_directories(${DATASPACES_INCLUDE_DIR})
+  endif()
+endif()
+
+# Define if you have the DATASPACES.
+set(HAVE_DATASPACES 0)
+if(HAVE_DATASPACES_H)
+  set(CPPFLAGS "${CPPFLAGS} ${DATASPACES_CPPFLAGS}")
+  if(DEFINED DATASPACES_LIBDIR)
+    if("${DATASPACES_LIBDIR}" STREQUAL "")
+#      set(HAVE_DATASPACES 0)
+#    else()
+      set(DATASPACES_LIBDIR "${DATASPACES_DIR}/lib")
+    endif()
+  else()
+    set(DATASPACES_LIBDIR "${DATASPACES_DIR}/lib")
+  endif()
+  
+  if(HAVE_INFINIBAND)
+    find_library(DATASPACES_LIBS1 NAMES dspaces PATHS ${DATASPACES_LIBDIR}) 
+    set(DATASPACES_LIBS1 "${DATASPACES_LIBS1}" CACHE INTERNAL "Internal variable")
+    find_library(DATASPACES_LIBS2 NAMES dscommon PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS2 "${DATASPACES_LIBS2}" CACHE INTERNAL "Internal variable")
+    find_library(DATASPACES_LIBS3 NAMES dart  PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS3 "${DATASPACES_LIBS3}" CACHE INTERNAL "Internal variable")
+    find_library(DATASPACES_LIBS4 NAMES rdmacm  PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS4 "${DATASPACES_LIBS4}" CACHE INTERNAL "Internal variable")
+    if(DATASPACES_LIBS1 AND DATASPACES_LIBS2 AND DATASPACES_LIBS3 AND DATASPACES_LIBS4)
+      set(DATASPACES_LIBS "${DATASPACES_LIBS1} ${DATASPACES_LIBS2} ${DATASPACES_LIBS3} ${DATASPACES_LIBS4}")
+      set(DATASPACES_LIBS "${DATASPACES_LIBS}" CACHE STRING "")
+      set(HAVE_DATASPACES 1)
+#      set(LIBS "${LIBS} ${DATASPACES_LIBS}")
+    else()
+      set(DATASPACES OFF CACHE BOOL "do not find supporting library" FORCE)
+    endif()
+  elseif(HAVE_PORTALS)
+    find_library(DATASPACES_LIBS1 NAMES dart2 PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS1 "${DATASPACES_LIBS1}" CACHE INTERNAL "Internal variable")
+    find_library(DATASPACES_LIBS2 NAMES spaces PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS2 "${DATASPACES_LIBS2}" CACHE INTERNAL "Internal variable")
+    if(DATASPACES_LIBS1 AND DATASPACES_LIBS2)
+      set(DATASPACES_LIBS "${DATASPACES_LIBS1} ${DATASPACES_LIBS2}")
+      set(DATASPACES_LIBS "${DATASPACES_LIBS}" CACHE STRING "")
+      set(HAVE_DATASPACES 1)
+#      set(LIBS "${LIBS} ${DATASPACES_LIBS}")
+    else()
+      set(DATASPACES OFF CACHE BOOL "do not find supporting library" FORCE)
+    endif()
+  elseif(HAVE_CRAY_PMI AND HAVE_CRAY_UGNI)
+    find_library(DATASPACES_LIBS1 NAMES dspaces PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS1 "${DATASPACES_LIBS1}" CACHE INTERNAL "Internal variable")
+    find_library(DATASPACES_LIBS2 NAMES dscommon PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS2 "${DATASPACES_LIBS2}" CACHE INTERNAL "Internal variable")
+    find_library(DATASPACES_LIBS3 NAMES dart PATHS ${DATASPACES_LIBDIR})
+    set(DATASPACES_LIBS3 "${DATASPACES_LIBS3}" CACHE INTERNAL "Internal variable")
+    if(DATASPACES_LIBS1 AND DATASPACES_LIBS2 AND DATASPACES_LIBS3)
+      set(DATASPACES_LIBS "${DATASPACES_LIBS1} ${DATASPACES_LIBS2} ${DATASPACES_LIBS3}")
+      set(DATASPACES_LIBS "${DATASPACES_LIBS}" CACHE STRING "")
+      set(HAVE_DATASPACES 1)
+#      set(LIBS "${LIBS} ${DATASPACES_LIBS}")
+     else()
+      set(DATASPACES OFF CACHE BOOL "do not find supporting library" FORCE)
+    endif()
+  else()
+    set(HAVE_DATASPACES 0)
+    set(DATASPACES OFF CACHE BOOL "do not find supporting library" FORCE)
+  endif()
+endif()
+
+# Define if you have the DIMES.
+set(HAVE_DIMES 0)
+
+# Define to 1 if you have the <dimes.h> header file.
+set(HAVE_DIMES_H 0)
+
+# Define to 1 if you have the <dlfcn.h> header file.
+CHECK_INCLUDE_FILES(dlfcn.h HAVE_DLFCN_H)
+
+# Define if you have DMALLOC.
+set(HAVE_DMALLOC 0)
+
+# Define to 1 if you have the <dmalloc.h> header file.
+CHECK_INCLUDE_FILES(dmalloc.h HAVE_DMALLOC_H)
+
+# Define to 1 if you have the `fdatasync' function.
+CHECK_FUNCTION_EXISTS(fdatasync HAVE_FDATASYNC)
+
+# Define to 1 if you have the `gettimeofday' function.
+CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
+
+set(HAVE_MPI 0)
+
+# Define if you have the MPI library.
+if(BUILD_FORTRAN)
+  find_package(MPI COMPONENTS Fortran)
+  if(MPI_FOUND)
+#    if(MPI_LIBRARIES AND MPI_INCLUDE_PATH)
+      message(STATUS "find MPI")
+      set (HAVE_MPI 1)
+#      set(MPILIBS ${MPI_LIBRARIES})
+      include_directories(${MPI_INCLUDE_PATH})
+#      set(LIBS ${MPILIBS})
+  endif(MPI_FOUND)
+else()
+  find_package(MPI)
+  if(MPI_FOUND)
+#    if(MPI_LIBRARIES AND MPI_INCLUDE_PATH) 
+      message(STATUS "find MPI")
+      set (HAVE_MPI 1)
+#      set(MPILIBS ${MPI_LIBRARIES})
+#    set(MPILIBS "-lmpi")
+      include_directories(${MPI_INCLUDE_PATH})
+#      set(LIBS ${MPILIBS})
+  endif(MPI_FOUND)
+endif(BUILD_FORTRAN)
+
+# Define to 1 if you have the <hdf5.h> header file.
+if(HDF5)
+  find_library(HDF5_LIB1 NAMES hdf5_hl PATHS "${HDF5_DIR}/lib")
+  set(HDF5_LIB1 "${HDF5_LIB1}" CACHE INTERNAL "Internal variable")
+  find_library(HDF5_LIB2 NAMES hdf5 PATHS "${HDF5_DIR}/lib")
+  set(HDF5_LIB2 "${HDF5_LIB2}" CACHE INTERNAL "Internal variable")
+  find_library(HDF5_LIB3 NAMES sz PATHS "$ENV{SZIP_DIR}/lib")
+  set(HDF5_LIB3 "${HDF5_LIB3}" CACHE INTERNAL "Internal variable")
+  if(HDF5_LIB1 AND HDF5_LIB2 AND HDF5_LIB3)
+    set(HAVE_HDF5 1)
+#    link_directories(${HDF5_DIR}/lib)
+#    link_directories($ENV{SZIP_DIR}/lib)
+    set(HDF5_LIBS ${HDF5_LIB1} ${HDF5_LIB2} ${HDF5_LIB3} -lz -lm CACHE STRING "")
+  else()
+    set(HAVE_HDF5 0)
+  endif()
+  find_path(HDF5_INCLUDE_DIR hdf5.h ${HDF5_DIR}/include)
+  if(HDF5_INCLUDE_DIR)
+    set(HAVE_HDF5_H 1)
+    include_directories(${HDF5_INCLUDE_DIR})
+    set(CPPFLAGS "${CPPFLAGS} ${HDF5_FLAGS}")
+#      set(LIBS "${LIBS} ${HDF5_LIBS}")
+  else()
+    set(HAVE_HDF5_H 0)
+  endif()
+else()
+  set(HAVE_HDF5 0)
+  set(HAVE_HDF5_H 0)
+endif(HDF5)
+
+# Define to 1 if you have the <inttypes.h> header file.
+CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
+
+# Define to 1 if you have the `rt' library (-lrt). 
+set(HAVE_LIBRT 0)
+
+# Define if you have LUSTRE.
+#if(LUSTRE)
+#  set(LUSTRE_DIR "" CACHE FILEPATH "")
+#  if(LUSTRE_DIR)
+#    find_library(LUSTRE_LIB_DIR NAMES lustre PATHS "${LUSTRE_DIR}/lib")
+#    if(LUSTRE_LIB_DIR AND ${LUSTRE_DIR}/include)
+#      message(STATUS "find LUSTRE library")
+#      set(HAVE_LUSTRE 1)
+#      set(LIBS "${LIBS} -llustreapi")
+#      set(LUSTRE_CPPFLAGS "-I${LUSTRE_DIR}/include")
+#      set(CPPFLAGS "${CPPFLAGS} ${LUSTRE_CPPFLAGS}")
+#    endif()
+#  else()
+#    set(HAVE_LUSTRE 0)
+#  endif(LUSTRE_DIR)
+#else()
+#  set(HAVE_LUSTRE 0)
+#endif(LUSTRE)
+
+# Define to 1 if you have the <memory.h> header file.
+CHECK_INCLUDE_FILES(memory.h HAVE_MEMORY_H)
+
+# Define to 1 if you have the <mxml.h> header file.
+find_path(MXML_INCLUDE_DIR NAMES mxml.h PATHS ${MXML_DIR}/include)
+if(NOT MXML_INCLUDE_DIR-NOTFOUND)
+  message(STATUS "find mxml header")
+  set(HAVE_MXML_H 1)
+  include_directories(${MXML_INCLUDE_DIR})
+  set(MXML_CPPFLAGS "-I${MXML_INCLUDE_DIR}")
+  set(CPPFLAGS "${CPPFLAGS} ${MXML_CPPFLAGS}")
+endif(NOT MXML_INCLUDE_DIR-NOTFOUND)
+
+# Define if you have the MXML.
+# MXML: /sw/analysis-x64/mxml/2.6/centos5.5_pgi10./9
+set(HAVE_MXML 0)
+find_library(MXML_LIBS NAMES mxml PATHS ${MXML_DIR}/lib)
+if(MXML_LIBS)
+  message(STATUS "find mxml library")
+endif()
+if(MXML_LIBS AND HAVE_MXML_H)
+  set(HAVE_MXML 1)
+#  set(LIBS "${LIBS} -lmxml")
+  set(CPPFLAGS "${CPPFLAGS} ${MXML_CPPFLAGS}")
+endif()
+
+# Define to 1 if you have the `nanosleep' function.
+CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
+
+# Define if you have NETCDF.
+if(NETCDF)
+  find_path(NETCDF_INCLUDE_DIR NAMES netcdf.h PATHS ${NETCDF_DIR}/include)
+  if(NETCDF_INCLUDE_DIR)
+# Define to 1 if you have the <netcdf.h> header file.
+    set(HAVE_NETCDF_H 1)
+    include_directories(${NETCDF_INCLUDE_DIR})
+    set(NETCDF_CPPFLAGS "-I${NETCDF_INCLUDE_DIR}")
+    set(CPPFLAGS "${CPPFLAGS} ${NETCDF_CPPFLAGS}")
+  else()
+    set(HAVE_NETCDF_H 0)
+  endif()
+else()
+  set(HAVE_NETCDF_H 0)
+endif()
+
+if(HAVE_NETCDF_H)
+  find_library(NETCDF_LIB1 NAMES netcdf PATHS ${NETCDF_DIR}/lib)
+  find_library(NETCDF_LIB2 NAMES hdf5_hl PATHS $ENV{SEQ_HDF5_DIR}/lib)
+  find_library(NETCDF_LIB3 NAMES hdf5 PATHS $ENV{SEQ_HDF5_DIR}/lib)
+  find_library(NETCDF_LIB4 NAMES sz PATHS $ENV{SZIP_DIR}/lib)
+  set(NETCDF_LIB1 "${NETCDF_LIB1}" CACHE INTERNAL "Internal variable")
+  set(NETCDF_LIB2 "${NETCDF_LIB2}" CACHE INTERNAL "Internal variable")
+  set(NETCDF_LIB3 "${NETCDF_LIB3}" CACHE INTERNAL "Internal variable")
+  set(NETCDF_LIB4 "${NETCDF_LIB4}" CACHE INTERNAL "Internal variable")
+  if(NETCDF_LIB1 AND NETCDF_LIB2 AND NETCDF_LIB3 AND NETCDF_LIB4)
+#    set(LIBS "${LIBS} ${NETCDF_LIBS}")
+    set(NETCDF_LIBS "${NETCDF_LIB1} ${NETCDF_LIB2} ${NETCDF_LIB3} ${NETCDF_LIB4}" CACHE STRING "")
+    set(NETCDF_LIBS "${NETCDF_LIBS} -lcurl")
+    set(HAVE_NETCDF 1)
+  else()
+    set(HAVE_NETCDF 0)
+  endif()
+else()
+  set(HAVE_NETCDF 0)
+endif()
+
+#if(NETCDF)
+#  if(NETCDF_LIBS AND NETCDF_CPPFLAGS)
+#    set(HAVE_NETCDF 1)
+#    find_path(NETCDF_INCLUDE_DIR netcdf.h ${NETCDF_DIR}/include)
+#    if(NETCDF_INCLUDE_DIR)
+#      set(HAVE_NETCDF_H 1)
+#      include_directories(${NETCDF_INCLUDE_DIR})
+#      set(CPPFLAGS "${CPPFLAGS} ${NETCDF_CPPFLAGS}")
+##      set(LIBS "${LIBS} ${NETCDF_LIBS}")
+#    else()
+#      set(HAVE_NETCDF_H 0)
+#      set(HAVE_NETCDF 0)
+#    endif()
+#  else()
+#    set(HAVE_NETCDF 0)
+#  endif()
+#else()
+#  set(HAVE_NETCDF 0)
+#  set(HAVE_NETCDF_H 0)
+#endif(NETCDF)
+
+# Define if you have NC4PAR.
+if(NC4PAR)
+  find_path(NC4PAR_INCLUDE_DIR NAMES netcdf.h PATHS ${NC4PAR_DIR}/include)
+  if(NC4PAR_INCLUDE_DIR)
+    set(HAVE_NC4PAR_H 1)
+    include_directories(${NC4PAR_INCLUDE_DIR})
+    set(NC4PAR_CPPFLAGS "-I${NC4PAR_INCLUDE_DIR}")
+    set(CPPFLAGS "${CPPFLAGS} ${NC4PAR_CPPFLAGS}")
+  else()
+    set(HAVE_NC4PAR_H 0)
+  endif()
+else()
+  set(HAVE_NC4PAR_H 0)
+endif()
+
+if(HAVE_NC4PAR_H)
+  find_library(NC4PAR_LIB1 NAMES netcdf PATHS ${NC4PAR_DIR}/lib)
+  find_library(NC4PAR_LIB2 NAMES hdf5_hl PATHS $ENV{PAR_HDF5_DIR}/lib)
+  find_library(NC4PAR_LIB3 NAMES hdf5 PATHS $ENV{PAR_HDF5_DIR}/lib)
+  find_library(NC4PAR_LIB4 NAMES sz PATHS $ENV{SZIP_DIR}/lib)
+  set(NC4PAR_LIB1 "${NETCDF_LIB1}" CACHE INTERNAL "Internal variable")
+  set(NC4PAR_LIB2 "${NETCDF_LIB2}" CACHE INTERNAL "Internal variable")
+  set(NC4PAR_LIB3 "${NETCDF_LIB3}" CACHE INTERNAL "Internal variable")
+  set(NC4PAR_LIB4 "${NETCDF_LIB4}" CACHE INTERNAL "Internal variable")
+  if(NC4PAR_LIB1 AND NC4PAR_LIB2 AND NC4PAR_LIB3 AND NC4PAR_LIB4)
+    set(NC4PAR_LIBS "${NC4PAR_LIB1} ${NC4PAR_LIB2} ${NC4PAR_LIB3} ${NC4PAR_LIB4}" CACHE STRING "")
+#    set(LIBS "${LIBS} ${NC4PAR_LIBS}")
+    set(NC4PAR_LIBS "${NC4PAR_LIBS} -lcurl") 
+    set(HAVE_NC4PAR 1)
+  else()
+    set(HAVE_NC4PAR 0)
+  endif()
+else()
+  set(HAVE_NC4PAR 0)
+endif()
+
+#if(NC4PAR)
+#  if(NC4PAR_LIBS AND NC4PAR_CPPFLAGS)
+#    set(HAVE_NC4PAR 1)
+#    find_path(NC4PAR_INCLUDE_DIR netcdf.h ${NC4PAR_DIR}/include)
+#    if(NC4PAR_INCLUDE_DIR)
+#      set(HAVE_NC4PAR_H 1)
+#      include_directories(${NC4PAR_INCLUDE_DIR})
+#      set(CPPFLAGS "${CPPFLAGS} ${NC4PAR_CPPFLAGS}")
+#      set(LIBS "${LIBS} ${NC4PAR_LIBS}")
+#    else()
+#      set(HAVE_NC4PAR_H 0)
+#      set(HAVE_NC4PAR 0)
+#    endif()
+#  else()
+#    set(HAVE_NC4PAR 0)
+#  endif()
+#else()
+#  set(HAVE_NC4PAR 0)
+#  set(HAVE_NC4PAR_H 0)
+#endif(NC4PAR)
+
+
+# Use NC4PAR for bp2ncd if no sequential NETCDF was found
+if(HAVE_NC4PAR)
+  if(NOT HAVE_NETCDF)
+    set(NETCDF_CPPFLAGS "${NC4PAR_CPPFLAGS}")
+    set(NETCDF_CFLAGS "${NC4PAR_CFLAGS}")
+    set(NETCDF_LIBS "${NC4PAR_LIBS}")
+    set(HAVE_NETCDF 1)
+    set(USE_PARALLEL_COMPILER 1)
+    message(STATUS "Use NC4PAR for sequential NETCDF tools")
+  endif()
+endif()
+
+# Define if you have NSSI.
+set(HAVE_NSSI 0)
+
+
+# Define if you have the Pablo.
+set(HAVE_PABLO 0)
+
+# Define if you have PHDF5.
+if(PHDF5)
+  find_library(PHDF5_LIB1 NAMES hdf5_hl PATHS "${PHDF5_DIR}/lib")
+  find_library(PHDF5_LIB2 NAMES hdf5 PATHS "${PHDF5_DIR}/lib")
+  find_library(PHDF5_LIB3 NAMES sz PATHS "$ENV{SZIP_DIR}/lib") 
+  set(PHDF5_LIB1 "${PHDF5_LIB1}" CACHE INTERNAL "Internal variable")
+  set(PHDF5_LIB2 "${PHDF5_LIB2}" CACHE INTERNAL "Internal variable")
+  set(PHDF5_LIB3 "${PHDF5_LIB3}" CACHE INTERNAL "Internal variable")
+  if(PHDF5_LIB1 AND PHDF5_LIB2 AND PHDF5_LIB3)
+    set(PHDF5_LIBS ${PHDF5_LIB1} ${PHDF5_LIB2} ${PHDF5_LIB3} -lz -lm CACHE STRING "")
+    set(HAVE_PHDF5 1)
+  else()
+    set(HAVE_PHDF5 0)
+  endif()
+  find_path(PHDF5_INCLUDE_DIR hdf5.h ${PHDF5_DIR}/include)
+  if(PHDF5_INCLUDE_DIR)
+    set(HAVE_PHDF5_H 1)
+    include_directories(${PHDF5_INCLUDE_DIR})
+    set(CPPFLAGS "${CPPFLAGS} ${PHDF5_FLAGS}")
+#      set(LIBS "${LIBS} ${PHDF5_LIBS}")
+  else()
+    set(HAVE_PHDF5_H 0)
+  endif()
+else()
+  set(HAVE_PHDF5_H 0)
+  set(HAVE_PHDF5 0)
+endif(PHDF5)
+
+# Use PHDF5 for bp2h5 if no sequential HDF5 was found
+if(HAVE_PHDF5)
+  if(NOT HAVE_HDF5)
+    set(HDF5_FLAGS "${PHDF5_FLAGS}")
+    set(HDF5_LIBS "${PHDF5_LIBS}")
+    set(HAVE_HDF5 1)
+#    include_directories(${PHDF5_INCLUDE_DIR})
+    set(USE_PARALLEL_COMPILER 1)
+    set(CPPFLAGS "${CPPFLAGS} ${PHDF5_FLAGS}")
+#    set(LIBS "${LIBS} ${PHDF5_LIBS}")
+    message(STATUS "Use PHDF5 for sequential HDF5 tools")
+  endif()
+endif()
+
+
+# Define if you have POSIX threads libraries and header files.
+set(HAVE_PTHREAD 0)
+find_package(Threads)
+if(Threads_FOUND)
+  set(HAVE_PTHREAD 1)
+  #INCLUDE_DIRECTORIES(${Threads_INCLUDE_PATH}) 
+endif(Threads_FOUND)
+
+# Define to 1 if you have the `pthread_yield' function.
+CHECK_FUNCTION_EXISTS(pthread_yield HAVE_PTHREAD_YIELD)
+
+# Define to 1 if you have the `PtlACEntry' function.
+CHECK_FUNCTION_EXISTS(PtlACEntry HAVE_PTLACENTRY)
+#set(HAVE_PTLACENTRY 0)
+
+# Define to 1 if you have the `PtlErrorStr' function.
+CHECK_FUNCTION_EXISTS(PtlErrorStr HAVE_PTLERRORSTR)
+
+# Define to 1 if you have the `PtlEventKindStr' function.
+CHECK_FUNCTION_EXISTS(PtlEventKindStr HAVE_PTLEVENTKINDSTR)
+
+# Define to 1 if you have the `PtlGetJid' function.
+CHECK_FUNCTION_EXISTS(PtlGetJid HAVE_PTLGETJID)
+
+# Define to 1 if you have the `PtlNIFailStr' function.
+CHECK_FUNCTION_EXISTS(PtlNIFailStr HAVE_PTLNIFAILSTR)
+
+# Define to 1 if the system has the type `ptl_eq_handler_t'.
+set(HAVE_PTL_EQ_HANDLER_T 0)
+
+# Define if you have PTL_NOACK_REQ.
+set(HAVE_PTL_NOACK_REQ 0)
+
+# Define if you have PTL_NO_ACK_REQ.
+set(HAVE_PTL_NO_ACK_REQ 0)
+
+# Define to 1 if the system has the type `ptl_time_t'.
+set(HAVE_PTL_TIME_T 0)
+
+# Define to 1 if you have the `sched_yield' function.
+CHECK_FUNCTION_EXISTS(sched_yield HAVE_SCHED_YIELD)
+
+# Define to 1 if you have the <stdint.h> header file.
+CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
+
+# Define to 1 if you have the <stdlib.h> header file.
+CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
+
+# Define to 1 if you have the `strerror' function.
+CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR)
+
+# Define to 1 if cpp supports the ANSI  stringizing operator.
+set(HAVE_STRINGIZE 0)
+
+# Define to 1 if you have the <strings.h> header file.
+CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H)
+
+# Define to 1 if you have the <string.h> header file.
+CHECK_INCLUDE_FILES(string.h HAVE_STRING_H)
+
+# Define to 1 if you have the `strncpy' function.
+CHECK_FUNCTION_EXISTS(strncpy HAVE_STRNCPY)
+
+# Define to 1 if you have the <sys/stat.h> header file.
+CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H)
+
+# Define to 1 if you have the <sys/types.h> header file.
+CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)
+
+# Define to 1 if you have the <unistd.h> header file.
+CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
+
+# Datatap is disabled
+set(NO_DATATAP 1)
+
+# Define to 1 if your C compiler doesn't accept -c and -o together.
+
+# Name of package
+set(PACKAGE adios)
+
+# Define to the address where bug reports for this package should be sent.
+
+# Define to the full name of this package.
+
+# Define to the full name and version of this package.
+
+# Define to the one symbol short name of this package.
+
+# Define to the version of this package.
+
+# Define to the necessary symbol if this constant uses a non-standard name on
+# your system.
+
+# Skel timing is enable
+
+# Define to 1 if you have the ANSI C header files.
+
+# Need to use MPI compiler for sequential utils
+
+# Major version number
+set(VERSION_MAJOR 1)
+
+# Minor version number
+set(VERSION_MINOR 5)
+
+# Micro version number
+set(VERSION_MICRO 0)
+
+# Version number of package
+set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO})
+
+# svn revision number
+set(VERSION_SVNREV 2007)
+
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${PROJECT_BINARY_DIR}/config.h)
+################################ end of generating config.h ###############################
+
+################################ start of Fortran processing ##############################
+if(BUILD_FORTRAN)
+enable_language(Fortran)
+message(STATUS "CMAKE_Fortran_COMPILER_WORKS =${CMAKE_Fortran_COMPILER_WORKS}")
+
+include(FortranCInterface)
+FortranCInterface_HEADER(${CMAKE_CURRENT_BINARY_DIR}/FC.h MACRO_NAMESPACE "FC_")
+#FortranCInterface_VERIFY(CXX)
+endif()
+################################ end of Fortran processing ##############################
+
+
+# Generate flags for adios lib creation which depends on the packages we found
+# ADIOSLIB_* for compiling libadios.a and libadiosf.a, and linking codes with those
+# ADIOSLIB_SEQ_* for compiling libadios_nompi.a and libadiosf_nompi.a with dummy MPI
+# ADIOSLIB_INT_* for codes using libadios_internal_nompi.a (like bp2ncd, bp2h5, bpdump etc)
+# ADIOSREADLIB_* for codes using libadiosread.a, libadiosreadf.a
+# ADIOSREADLIB_SEQ_* for codes using libadiosread_nompi.a
+# adios_config will contain flags for users' code linking based on these flags
+# EXTRA flags are used for compiling adios stuff, which need not go into adios_config for user codes
+set(ADIOSLIB_EXTRA_CPPFLAGS "${MACRODEFFLAG}_FILE_OFFSET_BITS=64 ${MACRODEFFLAG}_LARGEFILE_SOURCE ${MACRODEFFLAG}_LARGEFILE64_SOURCE ${MACRODEFFLAG}_GNU_SOURCE")
+#message("${ADIOSLIB_EXTRA_CPPFLAGS}")
+set(ADIOSLIB_LDADD "-lm ${MXML_LIBS}")
+set(ADIOSLIB_CFLAGS "")
+set(ADIOSLIB_CPPFLAGS "${MXML_CPPFLAGS}")
+#message("ADIOSLIB_CPPFLAGS is ${ADIOSLIB_CPPFLAGS}")
+set(ADIOSLIB_SEQ_CPPFLAGS "${MACRODEFFLAG}_NOMPI ${MXML_CPPFLAGS}")
+set(ADIOSLIB_SEQ_CFLAGS "")
+set(ADIOSLIB_SEQ_LDADD "-lm ${MXML_LIBS}")
+set(ADIOSLIB_INT_CPPFLAGS "${MACRODEFFLAG}_NOMPI ${MXML_CPPFLAGS}")
+set(ADIOSLIB_INT_CFLAGS "")
+set(ADIOSLIB_INT_LDADD "-lm ${MXML_LIBS}")
+set(ADIOSREADLIB_CPPFLAGS "")
+set(ADIOSREADLIB_CFLAGS "")
+set(ADIOSREADLIB_LDADD "-lm")
+set(ADIOSREADLIB_SEQ_CPPFLAGS "${MACRODEFFLAG}_NOMPI")
+set(ADIOSREADLIB_SEQ_CFLAGS "")
+set(ADIOSREADLIB_SEQ_LDADD "-lm")
+
+if(NOT NO_DATATAP)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${DT_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${DT_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${DT_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${DT_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${DT_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${DT_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${DT_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${DT_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${DT_LIBS}")
+endif()
+
+if(HAVE_DATASPACES)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${DATASPACES_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${DATASPACES_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${DATASPACES_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${DATASPACES_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${DATASPACES_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${DATASPACES_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${DATASPACES_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${DATASPACES_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${DATASPACES_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${DATASPACES_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${DATASPACES_LIBS}")
+endif()
+
+if(HAVE_DIMES)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${DIMES_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${DIMES_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${DIMES_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${DIMES_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${DIMES_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${DIMES_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${DIMES_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${DIMES_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${DIMES_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${DIMES_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${DIMES_LIBS}")
+endif()
+
+if(HAVE_FLEXPATH)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${FP_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${FP_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${FP_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${FP_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${FP_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${FP_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${FP_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${FP_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${FP_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${FP_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${FP_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${FP_LIBS}")
+endif(HAVE_FLEXPATH)
+
+if(HAVE_NSSI)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${NSSI_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${NSSI_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${NSSI_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${NSSI_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${NSSI_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${NSSI_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${MXML_CPPFLAGS} ${NSSI_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${MXML_CPPFLAGS} ${NSSI_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${MXML_LIBS} ${NSSI_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${MXML_CPPFLAGS} ${NSSI_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${MXML_CPPFLAGS} ${NSSI_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${MXML_LIBS} ${NSSI_LIBS}")
+endif()
+
+if(HAVE_NC4PAR)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${NC4PAR_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${NC4PAR_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${NC4PAR_LIBS}")
+endif()
+
+if(HAVE_PHDF5)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${PHDF5_FLAGS}")
+#  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${PHDF5_FLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${PHDF5_LIBS}")
+endif()
+
+if(HAVE_PORTALS)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${PORTALS_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${PORTALS_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${PORTALS_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${PORTALS_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${PORTALS_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${PORTALS_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${PORTALS_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${PORTALS_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${PORTALS_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${PORTALS_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${PORTALS_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${PORTALS_LIBS}")
+endif()
+
+if(HAVE_INFINIBAND)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${INFINIBAND_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${INFINIBAND_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${INFINIBAND_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${INFINIBAND_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${INFINIBAND_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${INFINIBAND_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${INFINIBAND_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${INFINIBAND_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${INFINIBAND_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${INFINIBAND_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${INFINIBAND_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${INFINIBAND_LIBS}")
+endif()
+
+if(HAVE_CRAY_PMI)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${CRAY_PMI_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${CRAY_PMI_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${CRAY_PMI_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${CRAY_PMI_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${CRAY_PMI_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${CRAY_PMI_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${CRAY_PMI_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${CRAY_PMI_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${CRAY_PMI_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${CRAY_PMI_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${CRAY_PMI_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${CRAY_PMI_LIBS}")
+endif()
+
+if(HAVE_CRAY_UGNI)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${CRAY_UGNI_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${CRAY_UGNI_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${CRAY_UGNI_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${CRAY_UGNI_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${CRAY_UGNI_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${CRAY_UGNI_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${CRAY_UGNI_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${CRAY_UGNI_CFLAGS}")
+  set(ADIOSREADLIB_LDADD="${ADIOSREADLIB_LDADD} ${CRAY_UGNI_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${CRAY_UGNI_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${CRAY_UGNI_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${CRAY_UGNI_LIBS}")
+endif()
+
+if(HAVE_NETCDF)
+  set(ADIOSLIB_INT_CPPFLAGS "${ADIOSLIB_INT_CPPFLAGS} ${NETCDF_CPPFLAGS}")
+  set(ADIOSLIB_INT_CFLAGS "${ADIOSLIB_INT_CFLAGS} ${NETCDF_CFLAGS}")
+  set(ADIOSLIB_INT_LDADD "${ADIOSLIB_INT_LDADD} ${NETCDF_LIBS}")
+endif()
+
+if(HAVE_HDF5)
+  set(ADIOSLIB_INT_CPPFLAGS "${ADIOSLIB_INT_CPPFLAGS} ${HDF5_FLAGS}")
+#  set(ADIOSLIB_INT_CFLAGS "${ADIOSLIB_INT_CFLAGS} ${HDF5_FLAGS}")
+  set(ADIOSLIB_INT_LDADD "${ADIOSLIB_INT_LDADD} ${HDF5_LIBS}")
+endif()
+
+if(HAVE_DMALLOC)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${MACRODEFFLAG}DMALLOC ${DMALLOC_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${DMALLOC_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${DMALLOC_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${DMALLOC_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${DMALLOC_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${DMALLOC_LIBS}")
+  set(ADIOSLIB_INT_CPPFLAGS "${ADIOSLIB_INT_CPPFLAGS} ${DMALLOC_CPPFLAGS}")
+  set(ADIOSLIB_INT_CFLAGS "${ADIOSLIB_INT_CFLAGS} ${DMALLOC_CFLAGS}")
+  set(ADIOSLIB_INT_LDADD "${ADIOSLIB_INT_LDADD} ${DMALLOC_LIBS}")
+  set(ADIOSREADLIB_CPPFLAGS "${ADIOSREADLIB_CPPFLAGS} ${DMALLOC_CPPFLAGS}")
+  set(ADIOSREADLIB_CFLAGS "${ADIOSREADLIB_CFLAGS} ${DMALLOC_CFLAGS}")
+  set(ADIOSREADLIB_LDADD "${ADIOSREADLIB_LDADD} ${DMALLOC_LIBS}")
+  set(ADIOSREADLIB_SEQ_CPPFLAGS "${ADIOSREADLIB_SEQ_CPPFLAGS} ${DMALLOC_CPPFLAGS}")
+  set(ADIOSREADLIB_SEQ_CFLAGS "${ADIOSREADLIB_SEQ_CFLAGS} ${DMALLOC_CFLAGS}")
+  set(ADIOSREADLIB_SEQ_LDADD "${ADIOSREADLIB_SEQ_LDADD} ${DMALLOC_LIBS}")
+endif()
+
+if(HAVE_LUSTRE)
+  set(ADIOSLIB_CPPFLAGS "${ADIOSLIB_CPPFLAGS} ${LUSTRE_CPPFLAGS}")
+  set(ADIOSLIB_CFLAGS "${ADIOSLIB_CFLAGS} ${LUSTRE_CFLAGS}")
+  set(ADIOSLIB_LDADD "${ADIOSLIB_LDADD} ${LUSTRE_LIBS}")
+  set(ADIOSLIB_SEQ_CPPFLAGS "${ADIOSLIB_SEQ_CPPFLAGS} ${LUSTRE_CPPFLAGS}")
+  set(ADIOSLIB_SEQ_CFLAGS "${ADIOSLIB_SEQ_CFLAGS} ${LUSTRE_CFLAGS}")
+  set(ADIOSLIB_SEQ_LDADD "${ADIOSLIB_SEQ_LDADD} ${LUSTRE_LIBS}")
+endif()
+
+#set(NSSI_SERVER_LIBS "")
+############################### srart of top CMakeLists.txt ###############################
+#install(PROGRAMS adios_config DESTINATION ${bindir})
+
+#if(HAVE_NSSI)
+#install(PROGRAMS scripts/create.nssi.config.sh DESTINATION ${bindir}) 
+#install(PROGRAMS scripts/kill.nssi.staging.sh DESTINATION ${bindir})
+#install(PROGRAMS scripts/start.nssi.staging.sh DESTINATION  ${bindir})
+#endif(HAVE_NSSI)
+
+
+
+#add_definitions(-DO_LARGEFILE=0)
+
+add_subdirectory(src)
+#set(ADIOS_LIB ${PROJECT_BINARY_DIR}/src/libadios.a)
+#set(ADIOS_LIB adios)
+#set(ADIOS_INTERNAL_NOMPI_LIB ${PROJECT_BINARY_DIR}/src/libadios_internal_nompi.a)
+#set(ADIOS_INTERNAL_NOMPI_LIB adios_internal_nompi)
+#set(ADIOSREAD_NOMPI_LIB ${PROJECT_BINARY_DIR}/src/libadiosread_nompi.a)
+#set(ADIOSREAD_NOMPI_LIB adiosread_nompi)
+#if(BUILD_FORTRAN)
+#  set(ADIOSREAD_LIB ${PROJECT_BINARY_DIR}/src/libadiosreadf.a)
+#  set(ADIOSREAD_LIB adiosreadf)
+#  set(ADIOSREAD_V1_LIB ${PROJECT_BINARY_DIR}/src/libadiosreadf_v1.a)
+#  set(ADIOSREAD_V1_LIB adiosreadf_v1)
+#else()
+#  set(ADIOSREAD_LIB ${PROJECT_BINARY_DIR}/src/libadiosread.a)
+#  set(ADIOSREAD_LIB adiosread)
+#endif()
+
+get_property(_LANGUAGES_ GLOBAL PROPERTY ENABLED_LANGUAGES)
+message(STATUS "${_LANGUAGES_}")
+
+#message("ADIOSLIB_CPPFLAGS is ${ADIOSLIB_CPPFLAGS}")
+#message("ADIOSLIB_CFLAGS is ${ADIOSLIB_CFLAGS}")
+#message("ADIOSLIB_LDADD is ${ADIOSLIB_LDADD}")
+#####################start processing adios_config.flags.in #####################
+set(ADIOS_DIR "${CMAKE_INSTALL_PREFIX}")
+
+set(ADIOS_INC "-I${ADIOS_DIR}/include ${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS}")
+set(ADIOS_CLIB "-L${ADIOS_DIR}/lib -ladios ${ADIOSLIB_LDADD} ${LIBS}")
+set(ADIOS_FLIB "-L${ADIOS_DIR}/lib -ladiosf ${ADIOSLIB_LDADD} ${LIBS}")
+
+# Flags to build code using ADIOS read API only
+set(ADIOSREAD_INC "-I${ADIOS_DIR}/include ${ADIOSREADLIB_CPPFLAGS} ${ADIOSREADLIB_CFLAGS}")
+set(ADIOSREAD_CLIB "-L${ADIOS_DIR}/lib -ladiosread  ${ADIOSREADLIB_LDADD}")
+set(ADIOSREAD_FLIB "-L${ADIOS_DIR}/lib -ladiosreadf ${ADIOSREADLIB_LDADD}")
+
+# Flags to build code using ADIOS read API only in a sequential code (no MPI)
+set(ADIOSREAD_SEQ_INC "-I${ADIOS_DIR}/include ${ADIOSREADLIB_SEQ_CPPFLAGS} ${ADIOSREADLIB_SEQ_CFLAGS}")
+set(ADIOSREAD_SEQ_CLIB "-L${ADIOS_DIR}/lib -ladiosread_nompi ${ADIOSREADLIB_SEQ_LDADD}")
+set(ADIOSREAD_SEQ_FLIB "-L${ADIOS_DIR}/lib -ladiosreadf_nompi ${ADIOSREADLIB_SEQ_LDADD}")
+
+#Flags to build code using ADIOS write API in a sequential code (no MPI)
+set(ADIOS_SEQ_INC "-I${ADIOS_DIR}/include ${ADIOSLIB_SEQ_CPPFLAGS} ${ADIOSLIB_SEQ_CFLAGS}")
+set(ADIOS_SEQ_CLIB "-L${ADIOS_DIR}/lib -ladios_nompi ${ADIOSLIB_SEQ_LDADD} ${LIBS}")
+
+#The following flags are not used. It is only for internal utilities of ADIOS,using libadios_internal_nompi.a
+set(ADIOS_INT_INC "-I${ADIOS_DIR}/include ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+set(ADIOS_INT_CLIB "-L${ADIOS_DIR}/lib -ladios_internal_nompi ${ADIOSLIB_INT_LDADD} ${LIBS}")
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/adios_config.flags.in ${CMAKE_CURRENT_BINARY_DIR}/adios_config.flags)
+#####################end of processing adios_config.flags.in #####################
+install(FILES ${CMAKE_BINARY_DIR}/adios_config.flags DESTINATION ${bindir})
+install(PROGRAMS adios_config DESTINATION ${bindir})
+
+add_subdirectory(utils)
+add_subdirectory(tests)
+add_subdirectory(examples)
+#set_source_files_properties
+############################### end of top CMakeLists.txt ###############################
diff --git a/Makefile.am b/Makefile.am
index 1b523ba..c1cf83f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,5 @@
+ACLOCAL_AMFLAGS=-I config
+
 SUBDIRS=src utils tests examples
 
 EXTRA_DIST = runconf \
@@ -24,13 +26,28 @@ if HAVE_NSSI
                    scripts/start.nssi.staging.sh
 endif
 
+#install-data-hook:
+#	echo -n "VERSIONSTRING=\"$(PACKAGE) version $(VERSION) svn revision " >> adios_config.flags
+#	if type svnversion &>/dev/null; then \
+#	    echo `svnversion`\" >> adios_config.flags; \
+#	else \
+#	    echo "unknown\"" >> adios_config.flags; \
+#	    echo "Error: svnversion command not found"; \
+#	fi 
+#	cp adios_config.flags $(DESTDIR)$(bindir)
+        
 install-data-hook:
-	echo -n "VERSIONSTRING=\"$(PACKAGE) version $(VERSION) svn revision " >> adios_config.flags
-	if type svnversion &>/dev/null; then \
-	    echo `svnversion`\" >> adios_config.flags; \
+	echo "SRCDIR=\"$(PWD)\"" >> adios_config.flags; \
+	if git rev-parse --git-dir &>/dev/null; then \
+	    echo "GITLOG=\"`git log -n 1 --format=\"Last commit on %ad hash %h\"`\"" > git.status; \
+	    echo "read -d '' GITSTAT <<'_EOF_'" >> git.status; \
+	    git status -uno >> git.status; \
+	    echo "_EOF_" >> git.status; \
 	else \
-	    echo "unknown\"" >> adios_config.flags; \
-	    echo "Error: svnversion command not found"; \
+	    echo "GITLOG=\"git log not available\"" >> git.status; \
+	    echo "GITSTAT=\"git status not available\"" >> git.status; \
+	    echo "Note: git command not found or $(PWD) is not a git repository."; \
 	fi 
 	cp adios_config.flags $(DESTDIR)$(bindir)
+	cp git.status $(DESTDIR)$(bindir)
         
diff --git a/Makefile.in b/Makefile.in
index f34a4f2..c96e994 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -41,17 +41,20 @@ host_triplet = @host@
 subdir = .
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/adios_config.flags.in \
-	$(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \
-	ChangeLog INSTALL NEWS TODO config/compile config/config.guess \
-	config/config.sub config/depcomp config/install-sh \
-	config/ltmain.sh config/missing
+	$(srcdir)/config.h.in $(top_srcdir)/configure \
+	$(top_srcdir)/utils/skel/lib/skel_have_adios_timing.py.in \
+	AUTHORS COPYING ChangeLog INSTALL NEWS TODO config/compile \
+	config/config.guess config/config.sub config/depcomp \
+	config/install-sh config/ltmain.sh config/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -71,7 +74,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = adios_config.flags
+CONFIG_CLEAN_FILES = utils/skel/lib/skel_have_adios_timing.py \
+	adios_config.flags
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -197,6 +201,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -219,6 +227,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -244,6 +255,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -300,6 +312,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -356,6 +370,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I config
 SUBDIRS = src utils tests examples
 EXTRA_DIST = runconf \
              KNOWN_BUGS \
@@ -380,7 +395,7 @@ all: config.h
 .SUFFIXES:
 am--refresh:
 	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -407,9 +422,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 $(am__aclocal_m4_deps):
 
@@ -422,13 +437,15 @@ config.h: stamp-h1
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
 	cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in:  $(am__configure_deps) 
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
 	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
 	rm -f stamp-h1
 	touch $@
 
 distclean-hdr:
 	-rm -f config.h stamp-h1
+utils/skel/lib/skel_have_adios_timing.py: $(top_builddir)/config.status $(top_srcdir)/utils/skel/lib/skel_have_adios_timing.py.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
 adios_config.flags: $(top_builddir)/config.status $(srcdir)/adios_config.flags.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 install-binSCRIPTS: $(bin_SCRIPTS)
@@ -730,7 +747,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)
@@ -912,15 +929,30 @@ uninstall-am: uninstall-binSCRIPTS
 	uninstall-binSCRIPTS
 
 
+#install-data-hook:
+#	echo -n "VERSIONSTRING=\"$(PACKAGE) version $(VERSION) svn revision " >> adios_config.flags
+#	if type svnversion &>/dev/null; then \
+#	    echo `svnversion`\" >> adios_config.flags; \
+#	else \
+#	    echo "unknown\"" >> adios_config.flags; \
+#	    echo "Error: svnversion command not found"; \
+#	fi 
+#	cp adios_config.flags $(DESTDIR)$(bindir)
+
 install-data-hook:
-	echo -n "VERSIONSTRING=\"$(PACKAGE) version $(VERSION) svn revision " >> adios_config.flags
-	if type svnversion &>/dev/null; then \
-	    echo `svnversion`\" >> adios_config.flags; \
+	echo "SRCDIR=\"$(PWD)\"" >> adios_config.flags; \
+	if git rev-parse --git-dir &>/dev/null; then \
+	    echo "GITLOG=\"`git log -n 1 --format=\"Last commit on %ad hash %h\"`\"" > git.status; \
+	    echo "read -d '' GITSTAT <<'_EOF_'" >> git.status; \
+	    git status -uno >> git.status; \
+	    echo "_EOF_" >> git.status; \
 	else \
-	    echo "unknown\"" >> adios_config.flags; \
-	    echo "Error: svnversion command not found"; \
+	    echo "GITLOG=\"git log not available\"" >> git.status; \
+	    echo "GITSTAT=\"git status not available\"" >> git.status; \
+	    echo "Note: git command not found or $(PWD) is not a git repository."; \
 	fi 
 	cp adios_config.flags $(DESTDIR)$(bindir)
+	cp git.status $(DESTDIR)$(bindir)
 
 # 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/NEWS b/NEWS
index 69ad792..b4a81a6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,24 @@
+1.5.0 Release June 2013
+    - Changes to Write API: 
+      - adios_init() and adios_init_noxml() has MPI_Comm argument
+      - adios_open() has MPI_comm argument instead of void * argument
+    - Changes to Read API:
+      - adios_read_open_stream() obsolete and now it's called
+        adios_read_open() indicating that it's used for both
+        files and staged data.
+    - New staging methods:
+      - DIMES
+      - FLEXPATH
+    - CMAKE build files (besides Automake files)
+    - New write method VAR_MERGE for spatial aggregation of 
+      small per-process-output into larger chunks. It improves both
+      write and read performance for such applications. 
+    - fix: segfault in adios_inq_var_blockinfo()
+    - fix: endianness independence (
+    - fix: in adios_inq_var_stat() for getting statistics (avg, std.dev)
+    - fix: backward compatibility in reading old BP files containing 
+           scalars over time (a 1D array)
+
 1.4.1 Release Dec 2012
     - aggregated file reader method (from 1.3.1): 
       use ADIOS_READ_METHOD_BP_AGGREGATE
diff --git a/aclocal.m4 b/aclocal.m4
index dc3f143..066344e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -8536,6 +8536,46 @@ fi
 rmdir .tst 2>/dev/null
 AC_SUBST([am__leading_dot])])
 
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer],
+      [USE_MAINTAINER_MODE=$enableval],
+      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
 # Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
@@ -8937,8 +8977,10 @@ m4_include([config/ac_cray_pmi.m4])
 m4_include([config/ac_cray_ugni.m4])
 m4_include([config/ac_dataspaces.m4])
 m4_include([config/ac_datatap.m4])
+m4_include([config/ac_dcmf.m4])
 m4_include([config/ac_dimes.m4])
 m4_include([config/ac_dmalloc.m4])
+m4_include([config/ac_flexpath.m4])
 m4_include([config/ac_hdf5.m4])
 m4_include([config/ac_infiniband.m4])
 m4_include([config/ac_lustre.m4])
diff --git a/adios_config b/adios_config
index 6e814e2..fc5bab2 100755
--- a/adios_config
+++ b/adios_config
@@ -13,16 +13,26 @@ if [ ! -f ${FLAGSFILE} ]; then
 fi
 . ${FLAGSFILE}
 
+GITSTATFILE=`dirname $0`/git.status
+if [ -f ${GITSTATFILE} ]; then
+    . ${GITSTATFILE}
+fi
+
 function Usage () {
-    echo "`basename $0` [-d | -c | -l] [-f] [-r] [-s] [-v]
+    echo "`basename $0` [-d | -c | -l] [-f] [-r] [-s] [-1] [-v] [-i]
 Arguments
-   -d   Print base directory for ADIOS install
-   -c   Print compiler flags for C/C++, using ADIOS write/read methods
-   -l   Print linker flags for C/C++, using ADIOS write/read methods
+   -d   Base directory for ADIOS install
+   -c   Compiler flags for C/C++, using ADIOS write/read methods
+   -l   Linker flags for C/C++, using ADIOS write/read methods
+
    -f   Print above flags for Fortran90
    -r   Print above flags for using ADIOS read library only.
    -s   Print above flags for using ADIOS in a sequential code (no MPI). 
-   -v   Print version of the installed package
+   -1   Print above flags for using old Read API of ADIOS.
+
+   -v   Version of the installed package
+   -i   More installation information about the package
+
 Notes
    - Multiple options of d,c,l are enabled. In such a case, the output is
      a list of FLAG=flags, where FLAG is one of (DIR, CFLAGS, LDFLAGS)
@@ -41,7 +51,7 @@ OPT_READ=no
 OPT_SEQ=no
 NFLAGS_ASKED=0
 
-while getopts ":dclfrsvh" Option
+while getopts ":dclfrs1vih" Option
 do          
   case $Option in               
         d) PRINT_DIR=yes; let "NFLAGS_ASKED=NFLAGS_ASKED+1";;
@@ -50,7 +60,14 @@ do
         f) OPT_FORTRAN=yes;;
         r) OPT_READ=yes;;
         s) OPT_SEQ=yes;;
-        v) echo "$VERSIONSTRING"; exit 0;;
+        1) OPT_V1=yes;;
+        v) echo "$VERSIONSTRING"; 
+           exit 0;;
+        i) echo "ADIOS $VERSIONSTRING"; 
+           echo "Installed from source directory: $SRCDIR"; 
+           if [ ! -z "$GITLOG" ]; then echo "$GITLOG"; fi 
+           if [ ! -z "$GITSTAT" ]; then echo "Git status of source directory:"; echo "$GITSTAT"; fi 
+           exit 0;;
         h) Usage; exit 0;;
         *) echo "Invalid option -$Option."; Usage; exit 255;;   # DEFAULT
   esac
@@ -79,9 +96,17 @@ fi
 if [ "$PRINT_CFLAGS" == "yes" ]; then
     if [ "$OPT_READ" == "yes" ]; then
         if [ "$OPT_SEQ" == "yes" ]; then
-            CFLAGS="$ADIOSREAD_SEQ_INC"
+            if [ "$OPT_V1" == "yes" ]; then
+                CFLAGS="$ADIOSREAD_SEQ_V1_INC"
+            else
+                CFLAGS="$ADIOSREAD_SEQ_INC"
+            fi
         else
-            CFLAGS="$ADIOSREAD_INC"
+            if [ "$OPT_V1" == "yes" ]; then
+                CFLAGS="$ADIOSREAD_V1_INC"
+            else
+                CFLAGS="$ADIOSREAD_INC"
+            fi
         fi 
     else
         if [ "$OPT_SEQ" == "yes" ]; then
@@ -101,14 +126,21 @@ if [ "$PRINT_LDFLAGS" == "yes" ]; then
         if [ "$OPT_READ" == "yes" ]; then
             # ADIOSREAD + SEQ
             if [ "$OPT_FORTRAN" == "yes" ]; then
-                LDFLAGS="$ADIOSREAD_SEQ_FLIB"
+                if [ "$OPT_V1" == "yes" ]; then
+                    LDFLAGS="$ADIOSREAD_SEQ_V1_FLIB"
+                else
+                    LDFLAGS="$ADIOSREAD_SEQ_FLIB"
+                fi
             else
                 LDFLAGS="$ADIOSREAD_SEQ_CLIB"
             fi
         else  # ADIOS + SEQ
             if [ "$OPT_FORTRAN" == "yes" ]; then
-                #LDFLAGS="$ADIOS_SEQ_FLIB"
-                LDFLAGS="There is no Fortran library of ADIOS for sequential codes"
+                if [ "$OPT_V1" == "yes" ]; then
+                    LDFLAGS="$ADIOS_SEQ_V1_FLIB"
+                else
+                    LDFLAGS="$ADIOS_SEQ_FLIB"
+                fi
             else
                 LDFLAGS="$ADIOS_SEQ_CLIB"
             fi
@@ -116,14 +148,22 @@ if [ "$PRINT_LDFLAGS" == "yes" ]; then
     elif [ "$OPT_READ" == "yes" ]; then
         # ADIOSREAD + parallel code
         if [ "$OPT_FORTRAN" == "yes" ]; then
-            LDFLAGS="$ADIOSREAD_FLIB"
+            if [ "$OPT_V1" == "yes" ]; then
+                LDFLAGS="$ADIOSREAD_V1_FLIB"
+            else
+                LDFLAGS="$ADIOSREAD_FLIB"
+            fi
         else
             LDFLAGS="$ADIOSREAD_CLIB"
         fi
     else 
         # ADIOS + parallel code
         if [ "$OPT_FORTRAN" == "yes" ]; then
-            LDFLAGS="$ADIOS_FLIB"
+            if [ "$OPT_V1" == "yes" ]; then
+                LDFLAGS="$ADIOS_V1_FLIB"
+            else
+                LDFLAGS="$ADIOS_FLIB"
+            fi
         else
             LDFLAGS="$ADIOS_CLIB"
         fi
diff --git a/adios_config.flags.in b/adios_config.flags.in
index 2e1c883..a3d5f88 100755
--- a/adios_config.flags.in
+++ b/adios_config.flags.in
@@ -9,22 +9,31 @@ ADIOS_DIR="@prefix@"
 ADIOS_INC="-I${ADIOS_DIR}/include @ADIOSLIB_CPPFLAGS@ @ADIOSLIB_CFLAGS@"
 ADIOS_CLIB="-L${ADIOS_DIR}/lib -ladios @ADIOSLIB_LDFLAGS@ @ADIOSLIB_LDADD@ @LDFLAGS@ @LIBS@"
 ADIOS_FLIB="-L${ADIOS_DIR}/lib -ladiosf @ADIOSLIB_LDFLAGS@ @ADIOSLIB_LDADD@ @LDFLAGS@ @LIBS@"
+ADIOS_V1_FLIB="-L${ADIOS_DIR}/lib -ladiosf_v1 @ADIOSLIB_LDFLAGS@ @ADIOSLIB_LDADD@ @LDFLAGS@ @LIBS@"
 
 # Flags to build code using ADIOS read API only
 ADIOSREAD_INC="-I${ADIOS_DIR}/include @ADIOSREADLIB_CPPFLAGS@ @ADIOSREADLIB_CFLAGS@"
+ADIOSREAD_V1_INC="-I${ADIOS_DIR}/include @MACRODEFFLAG at ADIOS_USE_READ_API_1 @ADIOSREADLIB_CPPFLAGS@ @ADIOSREADLIB_CFLAGS@"
 ADIOSREAD_CLIB="-L${ADIOS_DIR}/lib -ladiosread @ADIOSREADLIB_LDFLAGS@ @ADIOSREADLIB_LDADD@"
 ADIOSREAD_FLIB="-L${ADIOS_DIR}/lib -ladiosreadf @ADIOSREADLIB_LDFLAGS@ @ADIOSREADLIB_LDADD@"
+ADIOSREAD_V1_FLIB="-L${ADIOS_DIR}/lib -ladiosreadf_v1 @ADIOSREADLIB_LDFLAGS@ @ADIOSREADLIB_LDADD@"
 
 # Flags to build code using ADIOS read API only in a sequential code (no MPI)
 ADIOSREAD_SEQ_INC="-I${ADIOS_DIR}/include @ADIOSREADLIB_SEQ_CPPFLAGS@ @ADIOSREADLIB_SEQ_CFLAGS@"
+ADIOSREAD_SEQ_V1_INC="-I${ADIOS_DIR}/include @MACRODEFFLAG at ADIOS_USE_READ_API_1 @ADIOSREADLIB_SEQ_CPPFLAGS@ @ADIOSREADLIB_SEQ_CFLAGS@"
 ADIOSREAD_SEQ_CLIB="-L${ADIOS_DIR}/lib -ladiosread_nompi @ADIOSREADLIB_SEQ_LDFLAGS@ @ADIOSREADLIB_SEQ_LDADD@"
 ADIOSREAD_SEQ_FLIB="-L${ADIOS_DIR}/lib -ladiosreadf_nompi @ADIOSREADLIB_SEQ_LDFLAGS@ @ADIOSREADLIB_SEQ_LDADD@"
+ADIOSREAD_SEQ_V1_FLIB="-L${ADIOS_DIR}/lib -ladiosreadf_nompi_v1 @ADIOSREADLIB_SEQ_LDFLAGS@ @ADIOSREADLIB_SEQ_LDADD@"
 
 #Flags to build code using ADIOS write API in a sequential code (no MPI)
 ADIOS_SEQ_INC="-I${ADIOS_DIR}/include @ADIOSLIB_SEQ_CPPFLAGS@ @ADIOSLIB_SEQ_CFLAGS@"
 ADIOS_SEQ_CLIB="-L${ADIOS_DIR}/lib -ladios_nompi @ADIOSLIB_SEQ_LDFLAGS@ @ADIOSLIB_SEQ_LDADD@ @LDFLAGS@ @LIBS@"
+ADIOS_SEQ_FLIB="-L${ADIOS_DIR}/lib -ladiosf_nompi @ADIOSLIB_SEQ_LDFLAGS@ @ADIOSLIB_SEQ_LDADD@ @LDFLAGS@ @LIBS@"
+ADIOS_SEQ_V1_FLIB="-L${ADIOS_DIR}/lib -ladiosf_nompi_v1 @ADIOSLIB_SEQ_LDFLAGS@ @ADIOSLIB_SEQ_LDADD@ @LDFLAGS@ @LIBS@"
 
 #The following flags are not used. It is only for internal utilities of ADIOS, using libadios_internal_nompi.a
 ADIOS_INT_INC="-I${ADIOS_DIR}/include @ADIOSLIB_INT_CPPFLAGS@ @ADIOSLIB_INT_CFLAGS@"
 ADIOS_INT_CLIB="-L${ADIOS_DIR}/lib -ladios_internal_nompi @ADIOSLIB_INT_LDFLAGS@ @ADIOSLIB_INT_LDADD@ @LDFLAGS@ @LIBS@"
 
+VERSIONSTRING="@VERSION@"
+
diff --git a/runconf b/cmake_init
similarity index 61%
copy from runconf
copy to cmake_init
index ae84bee..2cf8956 100755
--- a/runconf
+++ b/cmake_init
@@ -32,40 +32,53 @@ if [ `hostname | cut -c 1-4` == "sith" ]; then
     # Use both seq hdf5 (for utils) and 
     #   parallel hdf5 (for PHDF5 method)
     module load hdf5/1.8.10
-    SEQ_HDF5_DIR=$HDF5_DIR
-    SEQ_HDF5_CLIB=$HDF5_CLIB
+    export SEQ_HDF5_DIR=$HDF5_DIR
     module unload hdf5
+    module load szip
     module load hdf5/1.8.10_par
-    PAR_HDF5_DIR=$HDF5_DIR
-    PAR_HDF5_CLIB=$HDF5_CLIB
+    export PAR_HDF5_DIR=$HDF5_DIR
     module unload hdf5
-    # Seq. and Parallel NetCDF 4 
-    #module load netcdf/4.1.1
-    #SEQ_NC_DIR=$NETCDF_DIR
-    #SEQ_NC_CLIB=$NETCDF_CLIB
-    #module unload netcdf
-    #module load netcdf/4.1.1_par
-    #PAR_NC_DIR=$NETCDF_DIR
-    #PAR_NC_CLIB=$NETCDF_CLIB
-    #module unload netcdf
-    export MPICC=mpicc
-    export MPICXX=mpiCC
-    export MPIFC=mpif90
+# start of  Seq. NetCDF 4 
+#    module load netcdf/4.1.3
+#    export SEQ_NC_DIR=$NETCDF_DIR
+#    module load hdf5/1.8.10
+#    export SEQ_HDF5_DIR=$HDF5_DIR
+#    module unload hdf5/1.8.10
+#    module load szip/2.1
+#    export SZIP_DIR=$SZIP_DIR
+#    module unload netcdf
+# end of  Seq. NetCDF 4
+# start of Parallel NetCDF 4
+#    module load netcdf/4.1.3_par
+#    export PAR_NC_DIR=$NETCDF_DIR
+#    module load hdf5/1.8.10_par
+#    export PAR_HDF5_DIR=$HDF5_DIR
+#    module unload hdf5/1.8.10_par
+#    export SZIP_DIR="/sw/sith/szip/2.1/rhel6_pgi12.8"
+#    module unload netcdf
+# end of Parallel NetCDF 4 
+    export BUILD_WRITE=ON
+    export BUILD_FORTRAN=ON
+    export skel_timing=ON
+    export CC=mpicc
+    export CXX=mpiCC
+    export FC=mpif90
+    export INSTALL_PREFIX="/ccs/home/jya/ADIOS/sith.$TARGET"
     if [ "$TARGET" == "pgi" ]; then
-        export CC=pgcc
-        export CXX=pgCC
-        export FC=pgf90
-        WITHDART="--with-dataspaces=/ccs/proj/e2e/dataspaces/sith/$TARGET"
+#        export CC=pgcc
+#        export CXX=pgCC
+#        export FC=pgf90
+        export DATASPACES_DIR="/ccs/proj/e2e/dataspaces/sith/$TARGET"
     elif [ "$TARGET" == "gnu" ]; then
-        export CC=gcc
-        export CXX=g++
-        export FC=gfortran
-        WITHDART="--with-dataspaces=/ccs/proj/e2e/dataspaces/sith/$TARGET"
+#        export CC=gcc
+#        export CXX=g++
+#        export FC=gfortran
+        export DATASPACES_DIR="/ccs/proj/e2e/dataspaces/sith/$TARGET"
     elif [ "$TARGET" == "intel" ]; then
-        export CC=icc
-        export CXX=icpc
-        export FC=ifort
-        WITHDART=""
+#        export CC=icc
+#        export CXX=icpc
+#        export FC=ifort
+        export DATASPACES_DIR="/ccs/proj/e2e/dataspaces/sith/$TARGET"
     else
         echo "TARGET must be pgi or gnu or intel"
         exit 1
@@ -73,11 +86,11 @@ if [ `hostname | cut -c 1-4` == "sith" ]; then
         
     export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK" 
     export CFLAGS="-g -fPIC" 
-    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/sith.$TARGET \
-        --enable-dependency-tracking \
-        --enable-research-transports \
-        --with-lustre=/usr/lib64 \
-        $WITHDART 
+#    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/sith.$TARGET \
+#        --enable-dependency-tracking \
+#        --enable-research-transports \
+#        --with-lustre=/usr/lib64 \
+#        $WITHDART 
         #--with-hdf5=${SEQ_HDF5_DIR} \
         #--with-hdf5-libs="${SEQ_HDF5_CLIB}" \
         #--with-dmalloc=/ccs/proj/e2e/qliu/dmalloc.sith.$TARGET 
@@ -132,9 +145,9 @@ elif [ `hostname | cut -c 1-4` == "yona" ]; then
     #PAR_NC_DIR=$NETCDF_DIR
     #PAR_NC_CLIB=$NETCDF_CLIB
     #module unload netcdf
-    export MPICC=mpicc
-    export MPICXX=mpiCC
-    export MPIFC=mpif90
+    export CC=mpicc
+    export CXX=mpiCC
+    export FC=mpif90
     if [ "$TARGET" == "pgi" ]; then
         export CC=pgcc
         export CXX=pgCC
@@ -147,10 +160,6 @@ elif [ `hostname | cut -c 1-4` == "yona" ]; then
         export CC=pgcc
         export CXX=pgCC
         export FC=pgf90
-    elif [ "$TARGET" == "gnu" ]; then
-        export CC=gcc
-        export CXX=g++
-        export FC=gfortran
     elif [ "$TARGET" == "intel" ]; then
         export CC=icc
         export CXX=icpc
@@ -161,15 +170,15 @@ elif [ `hostname | cut -c 1-4` == "yona" ]; then
     fi
         
     export CFLAGS="-g -fPIC" 
-    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/yona.$TARGET \
-        --enable-dependency-tracking \
-        --enable-research-transports  \
-        --with-hdf5=${SEQ_HDF5_DIR} \
-        --with-hdf5-libs="${SEQ_HDF5_CLIB}" \
-        --with-netcdf=${SEQ_NC_DIR} \
-        --with-netcdf-libs="${SEQ_NC_CLIB}" \
-        --with-lustre=/usr \
-        --without-datatap --without-infiniband
+#    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/yona.$TARGET \
+#        --enable-dependency-tracking \
+#        --enable-research-transports  \
+#        --with-hdf5=${SEQ_HDF5_DIR} \
+#        --with-hdf5-libs="${SEQ_HDF5_CLIB}" \
+#        --with-netcdf=${SEQ_NC_DIR} \
+#        --with-netcdf-libs="${SEQ_NC_CLIB}" \
+#        --with-lustre=/usr \
+#        --without-datatap --without-infiniband
         #--with-phdf5=${PAR_HDF5_DIR} \
         #--with-phdf5-libs="${PAR_HDF5_CLIB}" \
         #--with-nc4par=${PAR_NC_DIR} \
@@ -199,57 +208,67 @@ elif [ `hostname | cut -c 1-4` == "lens" ]; then
     module load mxml
     # Use both seq hdf5 (for utils) and 
     #   parallel hdf5 (for PHDF5 method)
-    module load hdf5/1.8.6
-    SEQ_HDF5_DIR=$HDF5_DIR
-    SEQ_HDF5_CLIB=$HDF5_CLIB
-    module unload hdf5
-    #module load hdf5/1.8.6_ompi1.4.2
-    #PAR_HDF5_DIR=$HDF5_DIR
-    #PAR_HDF5_CLIB=$HDF5_CLIB
-    #module unload hdf5
+#    module load hdf5/1.8.6
+#    export SEQ_HDF5_DIR=$HDF5_DIR
+#    export SEQ_HDF5_CLIB=$HDF5_CLIB
+#    module unload hdf5
+#    module load hdf5/1.8.6_ompi1.4.2
+#    export PAR_HDF5_DIR=$HDF5_DIR
+#    export PAR_HDF5_CLIB=$HDF5_CLIB
+#    module unload hdf5
     # Seq NetCDF 3 for bp2ncd
-    #module load netcdf/3.6.2
-    export MPICC=mpicc
-    export MPICXX=mpiCC
-    export MPIFC=mpif90
+    module unload netcdf
+    module load netcdf/4.1.3
+    export SEQ_NC_DIR=$NETCDF_DIR
+    module unload netcdf
+#    module load netcdf/4.1.1_ompi1.3.1
+#    export PAR_NC_DIR=$NETCDF_DIR
+#    module unload netcdf
+
+    export BUILD_WRITE=ON
+    export BUILD_FORTRAN=ON
+    export skel_timing=ON
+    export INSTALL_PREFIX="/ccs/home/jya/ADIOS/lens.$TARGET"
+    export CC=mpicc
+    export CXX=mpiCC
+    export FC=mpif90
     if [ "$TARGET" == "pgi" ]; then
-        export CC=pgcc
-        export CXX=pgCC
-        export FC=pgf90
+#        export CC=pgcc
+#        export CXX=pgCC
+#        export FC=pgf90
         module switch pgi pgi/10.5
     elif [ "$TARGET" == "gnu" ]; then
-        export CC=gcc
-        export CXX=g++
-        export FC=gfortran
+#        export CC=gcc
+#        export CXX=g++
+#        export FC=gfortran
+	module unload PE-pgi
+	module load PE-gnu
     else
         echo "TARGET must be pgi or gnu"
         exit 1
     fi
 
     export CFLAGS="-g -fPIC"
-    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/lens.$TARGET \
-        --enable-dependency-tracking \
-        --enable-research-transports  \
-        --with-hdf5=${SEQ_HDF5_DIR} \
-        --with-hdf5-libs="${SEQ_HDF5_CLIB}" \
-        --without-datatap
+#    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/lens.$TARGET \
+#        --enable-dependency-tracking \
+#        --enable-research-transports  \
+#        --with-hdf5=${SEQ_HDF5_DIR} \
+#        --with-hdf5-libs="${SEQ_HDF5_CLIB}" \
+#        --without-datatap
         #--with-mxml=/ccs/proj/e2e/pnorbert/mxml \
 
 
-elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
+elif [ `hostname | cut -c 1-5` == "titan" ]; then
 
     BUILD_STAGING=true
     if [ $BUILD_STAGING == "false" ]; then
     
         ################
-        # Jaguar/Titan #
+        # Titan #
         ################
         TARGET=pgi
-        echo "Configure on JAGUAR (XK6) for $TARGET env."
-        export CC=cc
+        echo "Configure on TITAN (XK7) for $TARGET env."
         #export CFLAGS="-Wall -g" 
-        export FC=ftn
-        export CXX=CC
         source /opt/modules/default/etc/modules.sh
         module unload szip
         module unload hdf5
@@ -267,12 +286,47 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
         #module load szip
         #module load xt-papi
         module load mxml
-        # use the two lines below for openmpi
-        #export CC=mpicc
-        #export FC=mpif90
-        CFLAGS="-g -fPIC" ./configure --prefix=/ccs/proj/e2e/qliu/ADIOS/test.$TARGET \
-            --host=jaguar --host_alias=jaguar  \
-            --enable-dependency-tracking \
+	module load hdf5/1.8.8
+	export SEQ_HDF5_DIR=$HDF5_DIR
+	module unload hdf5/1.8.8
+	module load hdf5-parallel/1.8.8
+	export PAR_HDF5_DIR=$HDF5_DIR
+	module unload hdf5-parallel/1.8.8
+# start of Seq. NetCDF 4 
+	module load netcdf/4.2.0
+	export SEQ_NC_DIR=$NETCDF_DIR
+        module load hdf5/1.8.8
+        export SEQ_HDF5_DIR=$HDF5_DIR
+        module unload hdf5/1.8.8
+        module load szip/2.1
+        export SZIP_DIR=$SZIP_DIR
+	module unload netcdf
+#end of Seq. NetCDF 4 
+#start of Parallel NetCDF 4
+	module load netcdf-hdf5parallel/4.2.0
+	export PAR_NC_DIR=$NETCDF_DIR
+	module unload netcdf
+        module load hdf5-parallel/1.8.8
+        export PAR_HDF5_DIR=$HDF5_DIR
+        module unload hdf5-parallel/1.8.8
+#        module load szip/2.1
+#        export SZIP_DIR=$SZIP_DIR
+#endof Parallel NetCDF 4 
+	# use the two lines below for openmpi
+        export CRAY_UGNI_DIR="/opt/cray/ugni/4.0-1.0401.5928.9.5.gem"
+        export CRAY_PMI_DIR="/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem"
+	export BUILD_WRITE=ON
+	export BUILD_FORTRAN=ON
+	export CC=cc
+        export FC=ftn
+        export CXX=CC
+        export CFLAGS="-g -fPIC" 
+	export DATASPACES_DIR="/ccs/proj/e2e/dataspaces/titan/$TARGET"
+	export skel_timing=ON
+	export INSTALL_PREFIX="/ccs/home/jya/ADIOS/titan.$TARGET"
+#          ./configure --prefix=/ccs/proj/e2e/qliu/ADIOS/test.$TARGET \
+#            --host=titan --host_alias=titan  \
+#            --enable-dependency-tracking \
             #--with-hdf5=/opt/cray/hdf5/1.8.7/pgi/109 \
             #--with-phdf5=/opt/cray/hdf5-parallel/1.8.7/pgi/109 \
 #            --with-lustre=/opt/xt-lustre-ss/2.2_1.6.5/usr
@@ -288,10 +342,10 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
     else 
     
         ##########################
-        # Jaguar/Titan + staging #
+        # Titan + staging #
         ##########################
         TARGET=pgi
-        echo "Configure on JAGUAR including staging methods for $TARGET env."
+        echo "Configure on TITAN (XK7) including staging methods for $TARGET env."
         export CC=cc
         export FC=ftn
         export CXX=CC
@@ -310,41 +364,71 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
         #module unload xtpe-quadcore
         module load PrgEnv-$TARGET
         module swap xtpe-interlagos xtpe-istanbul
-        #module load dataspaces/1.0.0
+	#module load xtpe-istanbul
+	#module load dataspaces/1.0.0
         unset EXTRA_LIBS
         unset LDFLAGS
+	export skel_timing=ON
+        export INSTALL_PREFIX="/ccs/home/jya/ADIOS/titan.$TARGET"
         if [ "$TARGET" == "pgi" ]; then
             #module swap pgi pgi/11.8.0
             # NSSI needs -pgcpplibs flag 
             export LDFLAGS="-pgcpplibs" 
-            DATASPACES_DIR="/ccs/proj/e2e/dataspaces/xk6/$TARGET"
+            export DATASPACES_DIR="/ccs/proj/e2e/dataspaces/titan/$TARGET"
         elif [ "$TARGET" == "gnu" ]; then
             # NSSI needs libstdc++
-            export EXTRA_LIBS="/opt/gcc/4.4.4/snos/lib64/libstdc++.a"
-            module swap gcc gcc/4.4.4
-            DATASPACES_DIR="/ccs/proj/e2e/dataspaces/xk6/$TARGET"
+            export EXTRA_LIBS="/opt/gcc/4.7.2/snos/lib64/libstdc++.a"
+            #module swap gcc gcc/4.4.4
+            export DATASPACES_DIR="/ccs/proj/e2e/dataspaces/titan/$TARGET"
         else
             unset DATASPACES_DIR
         fi
      
         # NOTE hdf5-parallel module does not work with C++ compiler
-        #module load hdf5-parallel
-        #module load netcdf-hdf5parallel
+#start of seq and parallel hdf5
+        module load hdf5/1.8.8
+        export SEQ_HDF5_DIR=$HDF5_DIR
+        module unload hdf5/1.8.8
         module load szip
+        module load hdf5-parallel/1.8.8
+        export PAR_HDF5_DIR=$HDF5_DIR
+        module unload hdf5-paralle/1.8.8
+#end of hdf5
         #module load papi
         module load mxml
+# start of Seq. NetCDF 4 
+#        module load netcdf/4.2.0
+#        export SEQ_NC_DIR=$NETCDF_DIR
+#        module load hdf5/1.8.8
+#        export SEQ_HDF5_DIR=$HDF5_DIR
+#        module unload hdf5/1.8.8
+#        module load szip/2.1
+#        export SZIP_DIR=$SZIP_DIR
+#        module unload netcdf
+#end of Seq. NetCDF 4 
+#start of Parallel NetCDF 4
+#        module load netcdf-hdf5parallel/4.2.0
+#        export PAR_NC_DIR=$NETCDF_DIR
+#        module unload netcdf-hdf5parallel/4.2.0
+#        module load hdf5-parallel/1.8.8
+#        export PAR_HDF5_DIR=$HDF5_DIR
+#        module unload hdf5-parallel/1.8.8
+#        module load szip/2.1
+#        export SZIP_DIR=$SZIP_DIR
+#endof Parallel NetCDF 4 
+
         # use the two lines below for openmpi
         #export CC=mpicc
         #export FC=mpif90
         export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK -DDART_DO_VERSIONING" 
         export CFLAGS="-fPIC -g -O0" 
         #./configure --prefix=/ccs/proj/fus022/norbert/RMP/adios.xt5.$TARGET \
-        ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/xk6.$TARGET \
-        --enable-dependency-tracking \
-        --with-cray-pmi=/opt/cray/pmi/default \
-        --with-cray-ugni-incdir=/opt/cray/gni-headers/default/include \
-        --with-cray-ugni-libdir=/opt/cray/ugni/default/lib \
-        --with-dataspaces=$DATASPACES_DIR 
+#        ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/titan.$TARGET \
+#        --enable-dependency-tracking \
+#        --with-cray-pmi=/opt/cray/pmi/default \
+#        --with-cray-ugni-incdir=/opt/cray/gni-headers/default/include \
+#        --with-cray-ugni-libdir=/opt/cray/ugni/default/lib \
+#        --with-dataspaces=$DATASPACES_DIR 
         #--with-netcdf=/opt/cray/netcdf/3.6.2/netcdf-${TARGET} \
         #--with-hdf5=/sw/xt5/hdf5/1.8.2/cnl2.1_gnu4.2.0 \
         #--with-nc4par=/opt/cray/netcdf-hdf5parallel/4.0.1.3/netcdf-hdf5parallel-$TARGET \
@@ -383,22 +467,24 @@ elif [ `hostname | cut -c 1-7` == "chester" ]; then
       module unload pmi
       module load PrgEnv-$TARGET
       module load dataspaces/1.0.0
+      export CRAY_UGNI_DIR="/opt/cray/ugni/4.0-1.0401.5928.9.5.gem"
+      export CRAY_PMI_DIR="/opt/cray/pmi/4.0.1-1.0000.9421.73.3.gem"
       if [ "$TARGET" == "pgi" ]; then
           module swap pgi pgi/11.8.0
           # NSSI needs -pgcpplibs flag 
           export LDFLAGS="-pgcpplibs" 
           unset EXTRA_LIBS 
-          WITHDART="--with-dataspaces=$DATASPACES_DIR"
+#          WITHDART="--with-dataspaces=$DATASPACES_DIR"
       elif [ "$TARGET" == "gnu" ]; then
           # NSSI needs libstdc++
           unset LDFLAGS 
           export EXTRA_LIBS="/opt/gcc/4.7.1/snos/lib64/libstdc++.a"
           #module swap gcc gcc/4.4.4
-          WITHDART="--with-dataspaces=$DATASPACES_DIR"
+#          WITHDART="--with-dataspaces=$DATASPACES_DIR"
       else
           unset LDFLAGS 
           unset EXTRA_LIBS 
-          WITHDART=""
+#          WITHDART=""
       fi
       #module load szip
       #module load xt-papi
@@ -407,8 +493,9 @@ elif [ `hostname | cut -c 1-7` == "chester" ]; then
       # use the two lines below for openmpi
       #export CC=mpicc
       #export FC=mpif90
-      CFLAGS="-g -fPIC" ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/chester.$TARGET \
-          --enable-dependency-tracking 
+      CFLAGS="-g -fPIC" 
+#      ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/chester.$TARGET \
+#          --enable-dependency-tracking 
 #          --with-cray-pmi=/opt/cray/pmi/default \
 #          --with-cray-ugni-incdir=/opt/cray/gni-headers/2.1-1.0400.4351.3.1.gem/include \
 #          --with-cray-ugni-libdir=/opt/cray/ugni/default/lib \
@@ -451,35 +538,35 @@ elif [ `hostname | cut -c 1-5` == "smoky" ]; then
     #PAR_HDF5_DIR=$HDF5_DIR
     #PAR_HDF5_DIR=/sw/smoky/hdf5/1.8.5/centos5.5_pgi10.4_ompi1.4.2
     #PAR_HDF5_CLIB=$HDF5_CLIB
-    export MPICC=mpicc
-    export MPICXX=mpiCC
-    export MPIFC=mpif90
-    if [ "$TARGET" == "pgi" ]; then
-        export CC=pgcc
-        export CXX=pgCC
-        export FC=pgf90
-    elif [ "$TARGET" == "gnu" ]; then
-        export CC=gcc
-        export CXX=g++
-        export FC=gfortran
-    elif [ "$TARGET" == "intel" ]; then
-        export CC=icc
-        export CXX=icpc
-        export FC=ifort
-    else
-        echo "TARGET must be pgi or gnu"
-        exit 1
-    fi
+    export CC=mpicc
+    export CXX=mpiCC
+    export FC=mpif90
+#    if [ "$TARGET" == "pgi" ]; then
+#        export CC=pgcc
+#        export CXX=pgCC
+#        export FC=pgf90
+#    elif [ "$TARGET" == "gnu" ]; then
+#        export CC=gcc
+#        export CXX=g++
+#        export FC=gfortran
+#    elif [ "$TARGET" == "intel" ]; then
+#        export CC=icc
+#        export CXX=icpc
+#        export FC=ifort
+#    else
+#        echo "TARGET must be pgi or gnu"
+#        exit 1
+#    fi
         
     export CFLAGS="-g -fPIC" 
-    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/smoky.$TARGET \
-        --enable-dependency-tracking \
-        --enable-research-transports  \
-        --with-mxml=/ccs/proj/e2e/pnorbert/mxml.smoky.$TARGET \
-        --without-hdf5 --without-phdf5 \
-        --without-netcdf --without-nc4par \
-        --with-lustre=/usr \
-        --without-datatap --without-infiniband \
+#    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/smoky.$TARGET \
+#        --enable-dependency-tracking \
+#        --enable-research-transports  \
+#        --with-mxml=/ccs/proj/e2e/pnorbert/mxml.smoky.$TARGET \
+#        --without-hdf5 --without-phdf5 \
+#        --without-netcdf --without-nc4par \
+#        --with-lustre=/usr \
+#        --without-datatap --without-infiniband \
         #--with-phdf5=${PAR_HDF5_DIR} \
         #--with-phdf5-libs="${PAR_HDF5_CLIB}" \
         #--with-hdf5=${SEQ_HDF5_DIR} \
@@ -523,12 +610,13 @@ elif [ `hostname | cut -c 1-6` == "jaguar" ]; then
         # use the two lines below for openmpi
         #export CC=mpicc
         #export FC=mpif90
-        CFLAGS="-g -fPIC" ./configure --prefix=/ccs/proj/e2e/qliu/ADIOS/test.$TARGET \
-            --enable-dependency-tracking \
-            --with-mxml=/ccs/proj/e2e/pnorbert/mxml.xt5.pgi \
-            --with-hdf5=/opt/cray/hdf5/1.8.7/pgi/109 \
-            --with-phdf5=/opt/cray/hdf5-parallel/1.8.7/pgi/109 \
-            --without-portals
+        CFLAGS="-g -fPIC" 
+#        ./configure --prefix=/ccs/proj/e2e/qliu/ADIOS/test.$TARGET \
+#            --enable-dependency-tracking \
+#            --with-mxml=/ccs/proj/e2e/pnorbert/mxml.xt5.pgi \
+#            --with-hdf5=/opt/cray/hdf5/1.8.7/pgi/109 \
+#            --with-phdf5=/opt/cray/hdf5-parallel/1.8.7/pgi/109 \
+#            --without-portals
 #            --with-lustre=/opt/xt-lustre-ss/2.2_1.6.5/usr
 #            --with-dmalloc=/ccs/proj/e2e/qliu/dmalloc.$TARGET
 #            --enable-research-transports \
@@ -566,14 +654,12 @@ elif [ `hostname | cut -c 1-6` == "jaguar" ]; then
             module swap pgi pgi/10.4.0
             # NSSI needs -pgcpplibs flag 
             export LDFLAGS="-pgcpplibs" 
-            WITHDART="--with-dart=/sw/xt5/adios/1.2.1/cnl2.2_pgi10.4/spaces"
+#            WITHDART="--with-dart=/sw/xt5/adios/1.2.1/cnl2.2_pgi10.4/spaces"
         elif [ "$TARGET" == "gnu" ]; then
             # NSSI needs libstdc++
             export EXTRA_LIBS="/opt/gcc/4.4.4/snos/lib64/libstdc++.a"
             module swap gcc gcc/4.4.4
-            WITHDART="--with-dart=/sw/xt5/adios/1.2.1/cnl2.2_gnu4.4.4/spaces"
-        else
-            WITHDART=""
+#            WITHDART="--with-dart=/sw/xt5/adios/1.2.1/cnl2.2_gnu4.4.4/spaces"
         fi
      
         # NOTE hdf5-parallel module does not work with C++ compiler
@@ -588,47 +674,47 @@ elif [ `hostname | cut -c 1-6` == "jaguar" ]; then
         export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK -DDART_DO_VERSIONING" 
         export CFLAGS="-fPIC -g -O0" 
         #./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/xt5.$TARGET \
-        ./configure --prefix=/ccs/proj/fus022/norbert/RMP/adios.xt5.$TARGET \
-        --enable-dependency-tracking \
-        --with-portals=/opt/xt-pe/2.2.41A \
-        --with-netcdf=/opt/cray/netcdf/3.6.2/netcdf-${TARGET} \
-        --with-hdf5=/sw/xt5/hdf5/1.8.2/cnl2.1_gnu4.2.0 \
-        --with-nc4par=/opt/cray/netcdf-hdf5parallel/4.0.1.3/netcdf-hdf5parallel-$TARGET \
-        --with-phdf5=/opt/cray/hdf5-parallel/1.8.4.1/hdf5-parallel-$TARGET \
-        $WITHDART \
-        --with-dimes=/ccs/proj/e2e/pnorbert/spaces/$TARGET
+#        ./configure --prefix=/ccs/proj/fus022/norbert/RMP/adios.xt5.$TARGET \
+#        --enable-dependency-tracking \
+#        --with-portals=/opt/xt-pe/2.2.41A \
+#        --with-netcdf=/opt/cray/netcdf/3.6.2/netcdf-${TARGET} \
+#        --with-hdf5=/sw/xt5/hdf5/1.8.2/cnl2.1_gnu4.2.0 \
+#        --with-nc4par=/opt/cray/netcdf-hdf5parallel/4.0.1.3/netcdf-hdf5parallel-$TARGET \
+#        --with-phdf5=/opt/cray/hdf5-parallel/1.8.4.1/hdf5-parallel-$TARGET \
+#        $WITHDART \
+#        --with-dimes=/ccs/proj/e2e/pnorbert/spaces/$TARGET
         #--with-nssi=/ccs/proj/e2e/pnorbert/nssi/xt5/$TARGET \
         #--with-datatap=/ccs/home/zf2/work/pe.$TARGET \
         #--with-datatap=/ccs/proj/e2e/pnorbert/datatap/xt5/$TARGET \
     
     fi
     
-elif [ `hostname -f | cut -c 8-15` == "intrepid" ]; then
+elif [ "x"`hostname -f | cut -c 8-15` == "xintrepid" ]; then
     #####################
     # Intrepid BlueGene #
     #####################
     echo "Configure on Intrepid (BlueGene)"
-    export MPICC=mpixlc_r
-    export MPIFC=mpixlf90
+    export CC=mpixlc_r
+    export FC=mpixlf90
     export CFLAGS=""
-    export FC=xlf90
-    export CC=xlc_r
-
-    ./configure --prefix=/home/qliu/ADIOS \
-            --enable-dependency-tracking \
-            --with-mxml=/home/qliu/mxml
+#    export FC=xlf90
+#    export CC=xlc_r
+    export MXML_DIR = /home/jya/mxml
+#    ./configure --prefix=/home/qliu/ADIOS \
+#            --enable-dependency-tracking \
+#            --with-mxml=/home/qliu/mxml
 
 elif [ `hostname | cut -c 1-4` == "euge" ]; then
     ###################
     # Eugene BlueGene #
     ###################
     echo "Configure on Eugene (BlueGene)"
-    export MPICC=mpixlc_r
-    export MPIFC=mpixlf90
+    export CC=mpixlc_r
+    export FC=mpixlf90
     #export CFLAGS="-g -O0"
     export CFLAGS=""
-    export FC=xlf90
-    export CC=xlc_r
+#    export FC=xlf90
+#    export CC=xlc_r
     export MACRODEFFLAG="-WL,-D"
 
     source /etc/profile.d/modules.sh
@@ -641,11 +727,11 @@ elif [ `hostname | cut -c 1-4` == "euge" ]; then
     export HDF5_CLIB="-I/sw/bgp/hdf5/1.8.5/sles10.2_xlc9.0xlf11.1/install/include -L/sw/bgp/hdf5/1.8.5/sles10.2_xlc9.0xlf11.1/install/lib -lhdf5_hl -lhdf5 -L/sw/bgp/szip/2.1/sles10.1_xlc9.0/lib -lsz /usr/lib/libz.a"
     module load mxml
 
-    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/eugene \
-            --enable-dependency-tracking \
-            --with-hdf5=$HDF5_DIR \
-            --with-hdf5-libs="$HDF5_CLIB" \
-            --without-phdf5
+#    ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/eugene \
+#            --enable-dependency-tracking \
+#            --with-hdf5=$HDF5_DIR \
+#            --with-hdf5-libs="$HDF5_CLIB" \
+#            --without-phdf5
 
     
 elif [ `hostname | cut -c 1-4` == "nid0" ]; then
@@ -673,14 +759,14 @@ elif [ `hostname | cut -c 1-4` == "nid0" ]; then
     export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK"
     export CFLAGS="-fPIC"
     #./configure --prefix=/project/projectdirs/m499/adios \
-    ./configure --prefix=/global/homes/p/pnorbert/adios \
-        --enable-dependency-tracking \
-        --with-mxml=$HOME/mxml \
-        --with-hdf5=/opt/cray/hdf5/1.8.5.0/hdf5-${TARGET} \
-        --with-netcdf=/opt/cray/netcdf/3.6.2/netcdf-${TARGET} \
-        --with-phdf5=/opt/cray/hdf5-parallel/1.8.5.0/hdf5-parallel-${TARGET} \
-        --with-nc4par=/opt/cray/netcdf-hdf5parallel/4.1.1.0/netcdf-hdf5parallel-${TARGET} \
-        --with-dart=/global/homes/p/pnorbert/dart.0628.pgi
+#    ./configure --prefix=/global/homes/p/pnorbert/adios \
+#        --enable-dependency-tracking \
+#        --with-mxml=$HOME/mxml \
+#        --with-hdf5=/opt/cray/hdf5/1.8.5.0/hdf5-${TARGET} \
+#        --with-netcdf=/opt/cray/netcdf/3.6.2/netcdf-${TARGET} \
+#        --with-phdf5=/opt/cray/hdf5-parallel/1.8.5.0/hdf5-parallel-${TARGET} \
+#        --with-nc4par=/opt/cray/netcdf-hdf5parallel/4.1.1.0/netcdf-hdf5parallel-${TARGET} \
+#        --with-dart=/global/homes/p/pnorbert/dart.0628.pgi
     
 
 elif [ `hostname | cut -c 1-6` == "hopper" ]; then
@@ -689,9 +775,9 @@ elif [ `hostname | cut -c 1-6` == "hopper" ]; then
     ##########
     TARGET=pgi
     echo "Configure on HOPPER for $TARGET env."
-    export MPICC=cc
-    export MPICXX=CC
-    export MPIFC=ftn
+    export CC=cc
+    export CXX=CC
+    export FC=ftn
     module unload hdf5
     module unload netcdf
     module unload hdf5-parallel
@@ -704,39 +790,39 @@ elif [ `hostname | cut -c 1-6` == "hopper" ]; then
     module load PrgEnv-$TARGET
     module load python
     if [ "$TARGET" == "pgi" ]; then
-        export CC=pgcc
-        export CXX=pgCC
-        export FC=pgf90
+#        export CC=pgcc
+#        export CXX=pgCC
+#        export FC=pgf90
         export LDFLAGS="-pgcpplibs"
-        WITHDART="--with-dataspaces=/global/homes/p/pnorbert/dataspaces/1.1.0/$TARGET"
+#        WITHDART="--with-dataspaces=/global/homes/p/pnorbert/dataspaces/1.1.0/$TARGET"
     elif [ "$TARGET" == "gnu" ]; then
-        export CC=gcc
-        export CXX=g++
-        export FC=gfortran
+#        export CC=gcc
+#        export CXX=g++
+#        export FC=gfortran
         export LDFLAGS=""
-        WITHDART="--with-dataspaces=/global/homes/p/pnorbert/dataspaces/1.1.0/$TARGET"
+#        WITHDART="--with-dataspaces=/global/homes/p/pnorbert/dataspaces/1.1.0/$TARGET"
     elif [ "$TARGET" == "intel" ]; then
-        export CC=icc
-        export CXX=icpc
-        export FC=ifort
+#        export CC=icc
+#        export CXX=icpc
+#        export FC=ifort
         export LDFLAGS=""
-        WITHDART=""
+#        WITHDART=""
     else
         echo "TARGET must be pgi or gnu or intel"
         exit 1
     fi
     export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK"
     export CFLAGS="-fPIC"
-    ./configure --prefix=/global/homes/p/pnorbert/adios/1.4.1/hopper/$TARGET \
-        --enable-dependency-tracking \
-        --with-mxml=$HOME/mxml/mxml.hopper \
-        --with-lustre=/usr \
-        $WITHDART \
-        --with-cray-pmi-incdir=/opt/cray/pmi/default/include \
-        --with-cray-pmi-libdir=/opt/cray/pmi/default/lib64 \
-        --with-cray-ugni-incdir=/opt/cray/gni-headers/default/include \
-        --with-cray-ugni-libdir=/opt/cray/ugni/default/lib64 \
-        --without-hdf5 --without-netcdf
+#    ./configure --prefix=/global/homes/p/pnorbert/adios/1.4.1/hopper/$TARGET \
+#        --enable-dependency-tracking \
+#        --with-mxml=$HOME/mxml/mxml.hopper \
+#        --with-lustre=/usr \
+#        $WITHDART \
+#        --with-cray-pmi-incdir=/opt/cray/pmi/default/include \
+#        --with-cray-pmi-libdir=/opt/cray/pmi/default/lib64 \
+#        --with-cray-ugni-incdir=/opt/cray/gni-headers/default/include \
+#        --with-cray-ugni-libdir=/opt/cray/ugni/default/lib64 \
+#        --without-hdf5 --without-netcdf
 
 
 elif [ `hostname | cut -c 1-6` == "kraken" ]; then
@@ -780,11 +866,11 @@ elif [ `hostname | cut -c 1-6` == "kraken" ]; then
     module load subversion
     export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK" 
     export CFLAGS="-fPIC -g -O0" 
-    ./configure --prefix=/${HOME}/adios/$TARGET \
-        --enable-dependency-tracking \
-        --with-portals=yes \
-        --without-netcdf --without-nc4par --without-hdf5 --without-phdf5 \
-        --with-dataspaces=${HOME}/dataspaces/1.0.0/$TARGET
+#    ./configure --prefix=/${HOME}/adios/$TARGET \
+#        --enable-dependency-tracking \
+#        --with-portals=yes \
+#        --without-netcdf --without-nc4par --without-hdf5 --without-phdf5 \
+#        --with-dataspaces=${HOME}/dataspaces/1.0.0/$TARGET
 
 
 elif [ `hostname | cut -c 1-4` == "dyn9" -o `hostname | cut -c 1-3` == "pnb" ]; then
@@ -795,17 +881,22 @@ elif [ `hostname | cut -c 1-4` == "dyn9" -o `hostname | cut -c 1-3` == "pnb" ];
     echo "Configure on Mac"
     # Installed MacPorts and GCC4.4 and OpenMPI 1.4.2 ports 
     # But should work with default mpicc and gcc, using --disable-fortran
-    export CC=/opt/local/bin/gcc-mp-4.4
-    export FC=/opt/local/bin/gfortran-mp-4.4
-    export CXX=/opt/local/bin/g++-mp-4.4
-    export MPICC=/opt/local/bin/openmpicc
-    export MPIFC=/opt/local/bin/openmpif90
-    export MPICXX=/opt/local/bin/openmpicxx
-    CFLAGS="-g -DO_LARGEFILE=0 -fno-common" ./configure --prefix=/opt/adios \
-        --with-mxml=/opt/mxml \
-        --with-netcdf=/opt/netcdf \
-        --with-phdf5=/opt/hdf5 \
-        --with-hdf5=/opt/hdf5.seq
+#    export CC=/opt/local/bin/gcc-mp-4.4
+#    export FC=/opt/local/bin/gfortran-mp-4.4
+#    export CXX=/opt/local/bin/g++-mp-4.4
+    export CC=/opt/local/bin/openmpicc
+    export FC=/opt/local/bin/openmpif90
+    export CXX=/opt/local/bin/openmpicxx
+    CFLAGS="-g -DO_LARGEFILE=0 -fno-common" 
+    export BUILD_WRITE=ON
+    export BUILD_FORTRAN=ON
+    export skel_timing=ON
+    export INSTALL_PREFIX="/opt/adios"
+#    ./configure --prefix=/opt/adios \
+#        --with-mxml=/opt/mxml \
+#        --with-netcdf=/opt/netcdf \
+#        --with-phdf5=/opt/hdf5 \
+#        --with-hdf5=/opt/hdf5.seq
 
 
 elif [ `hostname | cut -c 1-7` == "ubuntu" ]; then
@@ -815,9 +906,9 @@ elif [ `hostname | cut -c 1-7` == "ubuntu" ]; then
     #########################
     echo "Configure on UBUNTU"
     export CC=mpicc
-    ./configure --prefix=/usr/local/adios \
-        --enable-dependency-tracking \
-        --with-mxml=/usr/local/adios 
+#    ./configure --prefix=/usr/local/adios \
+#        --enable-dependency-tracking \
+#        --with-mxml=/usr/local/adios 
         #--with-hdf5=/usr/local/hdf5-serial\
         #--with-phdf5=/usr/local \
         #--with-netcdf=/usr 
@@ -830,12 +921,12 @@ elif [ `hostname | cut -c 1-6` == "tomato" ]; then
     #########################
     echo "Configure on UBUNTU"
     export CC=mpicc
-    ./configure --prefix=/home/thkorde/local \
-        --enable-dependency-tracking \
-        --with-mxml=/home/thkorde/local \
-        --with-phdf5=/home/thkorde/local \
-        --with-hdf5=/home/thkorde/local \
-        --with-netcdf=/home/thkorde/local
+#    ./configure --prefix=/home/thkorde/local \
+#        --enable-dependency-tracking \
+#        --with-mxml=/home/thkorde/local \
+#        --with-phdf5=/home/thkorde/local \
+#        --with-hdf5=/home/thkorde/local \
+#        --with-netcdf=/home/thkorde/local
 
 
 elif [ `hostname | cut -c 1-4` == "qliu" ]; then
@@ -846,13 +937,33 @@ elif [ `hostname | cut -c 1-4` == "qliu" ]; then
     echo "Configure on UBUNTU"
     export CC=mpicc
     export CFLAGS="-g -O0 -fPIC"
-    ./configure --prefix=/home/qliu/ADIOS \
-        --enable-dependency-tracking \
-        --with-mxml=/home/qliu/mxml \
+#    ./configure --prefix=/home/qliu/ADIOS \
+#        --enable-dependency-tracking \
+#        --with-mxml=/home/qliu/mxml \
         #--with-phdf5=/home/thkorde/local \
         #--with-hdf5=/home/thkorde/local \
         #--with-netcdf=/home/thkorde/local
 
+elif [ `hostname | cut -c 1-7` == "esimmon" ]; then
+
+    #######################
+    # Esimmon Virtual Box #
+    #######################
+    echo "Configure on ESIMMON VirtualBox ."
+    export BUILD_WRITE=ON
+    export BUILD_FORTRAN=ON
+    export skel_timing=ON
+    export CC=mpicc
+    export CXX=mpicxx
+    export FC=mpif90
+    export INSTALL_PREFIX="/opt/adios/1.5.0"
+    export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK"
+    export CFLAGS="-g -fPIC"
+    export MXML_DIR=/opt/mxml
+    export SEQ_HDF5_DIR=/opt/hdf5
+    export PAR_HDF5_DIR=/opt/phdf5
+    export SEQ_NC_DIR=/opt/netcdf3
+    export PAR_NC_DIR=/opt/nc4par
 
 else
     echo "Could not determine what machine is this."
diff --git a/config.h.in b/config.h.cmake
similarity index 56%
copy from config.h.in
copy to config.h.cmake
index 488b232..f6f7a95 100644
--- a/config.h.in
+++ b/config.h.cmake
@@ -1,251 +1,269 @@
-/* config.h.in.  Generated from configure.ac by autoheader.  */
+/* config.h Generated by cmake with CMakelists.txt. from config.h.cmake  */
+
+#cmakedefine BUILD_WITH_CMAKE ${BUILD_WITH_CMAKE}
 
 /* Define to dummy `main' function (if any) required to link to the Fortran
    libraries. */
-#undef FC_DUMMY_MAIN
+#cmakedefine FC_DUMMY_MAIN 1
 
 /* Define if F77 and FC dummy `main' functions are identical. */
-#undef FC_DUMMY_MAIN_EQ_F77
+#cmakedefine FC_DUMMY_MAIN_EQ_F77 1
 
 /* Define to a macro mangling the given C identifier (in lower and upper
    case), which must not contain underscores, for linking with Fortran. */
-#undef FC_FUNC
+#cmakedefine FC_FUNC ${FC_FUNC} 
 
 /* As FC_FUNC, but for C identifiers containing underscores. */
-#undef FC_FUNC_
+#cmakedefine FC_FUNC_ ${FC_FUNC_}
 
 /* Define to 1 if your Fortran compiler doesn't accept -c and -o together. */
-#undef FC_NO_MINUS_C_MINUS_O
+#cmakedefine FC_NO_MINUS_C_MINUS_O 1
 
 /* Define to 1 if you have the <Attributes.h> header file. */
-#undef HAVE_ATTRIBUTES_H
+#cmakedefine HAVE_ATTRIBUTES_H 1
 
 /* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
+#cmakedefine HAVE_CLOCK_GETTIME 1
 
 /* Define if you have CRAY_PMI. */
-#undef HAVE_CRAY_PMI
+#cmakedefine HAVE_CRAY_PMI 1
 
 /* Define if you have Cray Portals. */
-#undef HAVE_CRAY_PORTALS
+#cmakedefine HAVE_CRAY_PORTALS 1
 
 /* Define if you have CRAY_UGNI. */
-#undef HAVE_CRAY_UGNI
+#cmakedefine HAVE_CRAY_UGNI 1
 
 /* Define if you have the DATASPACES. */
-#undef HAVE_DATASPACES
+#cmakedefine HAVE_DATASPACES 1
 
 /* Define to 1 if you have the <dataspaces.h> header file. */
-#undef HAVE_DATASPACES_H
+#cmakedefine HAVE_DATASPACES_H 1
+
+/* Define if you have the DCMF. */
+#undef HAVE_DCMF
+
+/* Define to 1 if you have the <dcmf.h> header file. */
+#undef HAVE_DCMF_H
 
 /* Define if you have the DIMES. */
-#undef HAVE_DIMES
+#cmakedefine HAVE_DIMES 1
 
-/* Define to 1 if you have the <dimes.h> header file. */
-#undef HAVE_DIMES_H
+/* Define to 1 if you have the <dimes_interface.h> header file. */
+#undef HAVE_DIMES_INTERFACE_H
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
+#cmakedefine HAVE_DLFCN_H 1
 
 /* Define if you have DMALLOC. */
-#undef HAVE_DMALLOC
+#cmakedefine HAVE_DMALLOC 1
 
 /* Define to 1 if you have the <dmalloc.h> header file. */
-#undef HAVE_DMALLOC_H
+#cmakedefine  HAVE_DMALLOC_H 1
 
 /* Define to 1 if you have the `fdatasync' function. */
-#undef HAVE_FDATASYNC
+#cmakedefine HAVE_FDATASYNC 1
 
 /* Define to 1 if you have the `gettimeofday' function. */
-#undef HAVE_GETTIMEOFDAY
+#cmakedefine HAVE_GETTIMEOFDAY 1
 
 /* Define if you have HDF5. */
-#undef HAVE_HDF5
+#cmakedefine HAVE_HDF5 1
 
 /* Define to 1 if you have the <hdf5.h> header file. */
-#undef HAVE_HDF5_H
+#cmakedefine HAVE_HDF5_H 1
 
 /* Define to 1 if you have <infiniband/verbs.h>. */
-#undef HAVE_IBVERBS_H
+#cmakedefine HAVE_IBVERBS_H 1
+
+#cmakedefine HAVE_IBVERBS 1
 
 /* Define if you have the Infiniband. */
-#undef HAVE_INFINIBAND
+#cmakedefine HAVE_INFINIBAND 1
 
 /* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
+#cmakedefine HAVE_INTTYPES_H 1
 
 /* Define to 1 if you have the `rt' library (-lrt). */
-#undef HAVE_LIBRT
+#cmakedefine HAVE_LIBRT 1
 
 /* Define if you have LUSTRE. */
-#undef HAVE_LUSTRE
+#cmakedefine HAVE_LUSTRE 1
 
 /* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
+#cmakedefine HAVE_MEMORY_H 1
 
 /* Define if you have the MPI library. */
-#undef HAVE_MPI
+#cmakedefine HAVE_MPI 1
 
 /* Define if you have the MXML. */
-#undef HAVE_MXML
+#cmakedefine HAVE_MXML 1
 
 /* Define to 1 if you have the <mxml.h> header file. */
-#undef HAVE_MXML_H
+#cmakedefine HAVE_MXML_H 1
 
 /* Define to 1 if you have the `nanosleep' function. */
-#undef HAVE_NANOSLEEP
+#cmakedefine HAVE_NANOSLEEP 1
+
+/* Define to 1 if you have the <netcdf.h> header file. */
+#cmakedefine HAVE_NC4PAR_H 1
 
 /* Define if you have NC4PAR. */
-#undef HAVE_NC4PAR
+#cmakedefine HAVE_NC4PAR 1
 
 /* Define if you have NETCDF. */
-#undef HAVE_NETCDF
+#cmakedefine HAVE_NETCDF 1
 
 /* Define to 1 if you have the <netcdf.h> header file. */
-#undef HAVE_NETCDF_H
+#cmakedefine HAVE_NETCDF_H 1
 
 /* Define if you have NSSI. */
-#undef HAVE_NSSI
+#cmakedefine HAVE_NSSI 1
 
 /* Define to 1 if you have the <p3nal_utcp.h> header file. */
-#undef HAVE_P3NAL_UTCP_H
+#cmakedefine HAVE_P3NAL_UTCP_H 1
 
 /* Define to 1 if you have the <p3rt/p3rt.h> header file. */
-#undef HAVE_P3RT_P3RT_H
+#cmakedefine HAVE_P3RT_P3RT_H 1
 
 /* Define if you have the Pablo. */
-#undef HAVE_PABLO
+#cmakedefine HAVE_PABLO 1
 
 /* Define if you have PHDF5. */
-#undef HAVE_PHDF5
+#cmakedefine HAVE_PHDF5 1
+
+/* Define to 1 if you have the <hdf5.h> header file. */
+#cmakedefine HAVE_PHDF5_H 1
 
 /* Define if you have the Portals. */
-#undef HAVE_PORTALS
+#cmakedefine HAVE_PORTALS 1
+
+#cmakedefine HAVE_PTLINIT 1
 
 /* Define to 1 if you have <portals3.h>. */
-#undef HAVE_PORTALS3_H
+#cmakedefine HAVE_PORTALS3_H 1
 
 /* Define to 1 if you have <portals/portals3.h>. */
-#undef HAVE_PORTALS_PORTALS3_H
+#cmakedefine HAVE_PORTALS_PORTALS3_H 1
 
 /* Define if you have POSIX threads libraries and header files. */
-#undef HAVE_PTHREAD
+#cmakedefine HAVE_PTHREAD 1
 
 /* Define to 1 if you have the `pthread_yield' function. */
-#undef HAVE_PTHREAD_YIELD
+#cmakedefine HAVE_PTHREAD_YIELD 1
 
 /* Define to 1 if you have the `PtlACEntry' function. */
-#undef HAVE_PTLACENTRY
+#cmakedefine HAVE_PTLACENTRY 1
 
 /* Define to 1 if you have the `PtlErrorStr' function. */
-#undef HAVE_PTLERRORSTR
+#cmakedefine HAVE_PTLERRORSTR 1
 
 /* Define to 1 if you have the `PtlEventKindStr' function. */
-#undef HAVE_PTLEVENTKINDSTR
+#cmakedefine HAVE_PTLEVENTKINDSTR 1 
 
 /* Define to 1 if you have the `PtlGetJid' function. */
-#undef HAVE_PTLGETJID
+#cmakedefine HAVE_PTLGETJID 1
 
 /* Define to 1 if you have the `PtlNIFailStr' function. */
-#undef HAVE_PTLNIFAILSTR
+#cmakedefine HAVE_PTLNIFAILSTR 1
 
 /* Define to 1 if the system has the type `ptl_eq_handler_t'. */
-#undef HAVE_PTL_EQ_HANDLER_T
+#cmakedefine HAVE_PTL_EQ_HANDLER_T 1
 
 /* Define if you have PTL_NOACK_REQ. */
-#undef HAVE_PTL_NOACK_REQ
+#cmakedefine HAVE_PTL_NOACK_REQ 1
 
 /* Define if you have PTL_NO_ACK_REQ. */
-#undef HAVE_PTL_NO_ACK_REQ
+#cmakedefine HAVE_PTL_NO_ACK_REQ 1
 
 /* Define to 1 if the system has the type `ptl_time_t'. */
-#undef HAVE_PTL_TIME_T
+#cmakedefine HAVE_PTL_TIME_T 1
 
 /* Define to 1 if you have the `sched_yield' function. */
-#undef HAVE_SCHED_YIELD
+#cmakedefine HAVE_SCHED_YIELD 1
 
 /* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
+#cmakedefine HAVE_STDINT_H 1
 
 /* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
+#cmakedefine HAVE_STDLIB_H 1
 
 /* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
+#cmakedefine HAVE_STRERROR 1
 
-/* Define to 1 if cpp supports the ANSI # stringizing operator. */
-#undef HAVE_STRINGIZE
+/* Define to 1 if cpp supports the ANSI  stringizing operator. */
+#cmakedefine HAVE_STRINGIZE 1
 
 /* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
+#cmakedefine HAVE_STRINGS_H 1
 
 /* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
+#cmakedefine HAVE_STRING_H 1
 
-/* Define to 1 if you have the `strncpy' function. */
-#undef HAVE_STRNCPY
+/*  to 1 if you have the `strncpy' function. */
+#cmakedefine HAVE_STRNCPY 1
 
 /* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
+#cmakedefine HAVE_SYS_STAT_H 1
 
 /* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
+#cmakedefine HAVE_SYS_TYPES_H 1
 
 /* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
+#cmakedefine HAVE_UNISTD_H 1
 
 /* Define to the sub-directory in which libtool stores uninstalled libraries.
    */
 #undef LT_OBJDIR
 
 /* Datatap is disabled */
-#undef NO_DATATAP
+#cmakedefine NO_DATATAP 1
 
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
+#cmakedefine NO_MINUS_C_MINUS_O 1
 
 /* Name of package */
-#undef PACKAGE
+#cmakedefine PACKAGE ${PACKAGE}
 
 /* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
+#cmakedefine PACKAGE_BUGREPORT ${PACKAGE_BUGREPORT}
 
 /* Define to the full name of this package. */
-#undef PACKAGE_NAME
+#cmakedefine PACKAGE_NAME ${PACKAGE_NAME}
 
 /* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
+#cmakedefine PACKAGE_STRING ${PACKAGE_STRING}
 
 /* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
+#cmakedefine PACKAGE_TARNAME ${PACKAGE_TARNAME}
 
 /* Define to the version of this package. */
-#undef PACKAGE_VERSION
+#cmakedefine PACKAGE_VERSION ${PACKAGE_VERSION}
 
 /* Define to the necessary symbol if this constant uses a non-standard name on
    your system. */
-#undef PTHREAD_CREATE_JOINABLE
+#cmakedefine PTHREAD_CREATE_JOINABLE ${PTHREAD_CREATE_JOINABLE}
 
 /* Skel timing is enabled */
-#undef SKEL_TIMING
+#cmakedefine SKEL_TIMING 1
 
 /* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
+#cmakedefine STDC_HEADERS 1
 
 /* Need to use MPI compiler for sequential utils */
-#undef USE_PARALLEL_COMPILER
+#cmakedefine USE_PARALLEL_COMPILER 1
 
 /* Version number of package */
-#undef VERSION
+#cmakedefine VERSION "${VERSION}"
 
 /* Major version number */
-#undef VERSION_MAJOR
+#define VERSION_MAJOR ${VERSION_MAJOR}
 
-/* Micro version number */
-#undef VERSION_MICRO
+/* Micro version number */ 
+#define VERSION_MICRO ${VERSION_MICRO}
 
 /* Minor version number */
-#undef VERSION_MINOR
+#define VERSION_MINOR ${VERSION_MINOR}
 
 /* svn revision number */
-#undef VERSION_SVNREV
+#cmakedefine VERSION_SVNREV ${VERSION_SVNREV}
diff --git a/config.h.in b/config.h.in
index 488b232..09079a7 100644
--- a/config.h.in
+++ b/config.h.in
@@ -38,11 +38,17 @@
 /* Define to 1 if you have the <dataspaces.h> header file. */
 #undef HAVE_DATASPACES_H
 
+/* Define if you have the DCMF. */
+#undef HAVE_DCMF
+
+/* Define to 1 if you have the <dcmf.h> header file. */
+#undef HAVE_DCMF_H
+
 /* Define if you have the DIMES. */
 #undef HAVE_DIMES
 
-/* Define to 1 if you have the <dimes.h> header file. */
-#undef HAVE_DIMES_H
+/* Define to 1 if you have the <dimes_interface.h> header file. */
+#undef HAVE_DIMES_INTERFACE_H
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
@@ -56,6 +62,9 @@
 /* Define to 1 if you have the `fdatasync' function. */
 #undef HAVE_FDATASYNC
 
+/* Flexpath is enabled */
+#undef HAVE_FLEXPATH
+
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
@@ -201,6 +210,9 @@
 /* Datatap is disabled */
 #undef NO_DATATAP
 
+/* Flexpath is disabled */
+#undef NO_FLEXPATH
+
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
 #undef NO_MINUS_C_MINUS_O
 
diff --git a/config/ac_cray_pmi.m4 b/config/ac_cray_pmi.m4
index d5725fb..fdcf179 100644
--- a/config/ac_cray_pmi.m4
+++ b/config/ac_cray_pmi.m4
@@ -54,7 +54,11 @@ else
     dnl We don't overwrite CRAY_PMI_LIBDIR.
     if test -z "${CRAY_PMI_LIBDIR}"; then
         if test -n "${CRAY_PMI_DIR}"; then
-            CRAY_PMI_LIBDIR="${CRAY_PMI_DIR}/lib";
+            if test -d "${CRAY_PMI_DIR}/lib64"; then
+                CRAY_PMI_LIBDIR="${CRAY_PMI_DIR}/lib64";
+            else
+                CRAY_PMI_LIBDIR="${CRAY_PMI_DIR}/lib";
+            fi
         fi
     fi
 
diff --git a/config/ac_cray_ugni.m4 b/config/ac_cray_ugni.m4
index 9e10200..3064c79 100644
--- a/config/ac_cray_ugni.m4
+++ b/config/ac_cray_ugni.m4
@@ -54,7 +54,11 @@ else
     dnl We don't overwrite CRAY_UGNI_LIBDIR.
     if test -z "${CRAY_UGNI_LIBDIR}"; then
         if test -n "${CRAY_UGNI_DIR}"; then
-            CRAY_UGNI_LIBDIR="${CRAY_UGNI_DIR}/lib";
+            if test -d "${CRAY_UGNI_DIR}/lib64"; then
+                CRAY_UGNI_LIBDIR="${CRAY_UGNI_DIR}/lib64";
+            else
+                CRAY_UGNI_LIBDIR="${CRAY_UGNI_DIR}/lib";
+            fi
         fi
     fi
 
diff --git a/config/ac_dataspaces.m4 b/config/ac_dataspaces.m4
index 46f250b..ec6dd3d 100644
--- a/config/ac_dataspaces.m4
+++ b/config/ac_dataspaces.m4
@@ -89,6 +89,8 @@ else
         LIBS="$LIBS -ldspaces -ldscommon -ldart"
     elif test "x${ac_portals_lib_ok}" == "xyes"; then 
         LIBS="$LIBS -ldart2 -lspaces"
+    elif test "x${ac_dmcf_lib_ok}" == "xyes"; then
+        LIBS="$LIBS -ldspaces -ldscommon -ldart"
     else
         LIBS="$LIBS -ldspaces -ldscommon -ldart"
     fi
@@ -119,6 +121,11 @@ else
                     [int err; err = dspaces_init(1,1);],
                     [DATASPACES_LIBS="-ldspaces -ldscommon -ldart"],
                     [AM_CONDITIONAL(HAVE_DATASPACES,false)])
+	elif test "x${ac_dcmf_lib_ok}" == "xyes"; then
+            AC_TRY_COMPILE([#include "dataspaces.h"],
+                    [int err; err = dspaces_init(1,1);],
+                    [DATASPACES_LIBS="-ldspaces -ldscommon -ldart"],
+                    [AM_CONDITIONAL(HAVE_DATASPACES,false)])
         else
             AM_CONDITIONAL(HAVE_DATASPACES,false)
         fi
diff --git a/config/ac_dcmf.m4 b/config/ac_dcmf.m4
new file mode 100644
index 0000000..aaff09d
--- /dev/null
+++ b/config/ac_dcmf.m4
@@ -0,0 +1,70 @@
+dnl ######################################################################
+dnl
+dnl Finds IBM_DCMF 
+dnl
+dnl ######################################################################
+
+AC_DEFUN([AC_DCMF],[
+ac_dcmf_lib_ok=no
+
+DCMF_CFLAGS=""
+DCMF_CPPFLAGS=""
+DCMF_LDFLAGS=""
+DCMF_LIBS=""
+
+AC_MSG_NOTICE([=== checking for IBM DCMF ===])
+
+AM_CONDITIONAL(HAVE_DCMF,true)
+
+AC_ARG_WITH(dcmf,
+            [  --with-dcmf=DIR      Location of IBM DCMF],
+    	    [ DCMF_CPPFLAGS="-I$withval/arch/include -I$withval/comm/include";
+              DCMF_LDFLAGS="-L$withval/comm/lib -L$withval/runtime/SPI";
+	      DCMF_LIBS="-ldcmf.cnk -ldcmfcoll.cnk -lpthread -lrt -lSPI.cna";])
+
+save_CPPFLAGS="$CPPFLAGS"
+save_LDFLAGS="$LDFLAGS"
+save_LIBS="$LIBS"
+CPPFLAGS="$CPPFLAGS $DCMF_CPPFLAGS"
+LDFLAGS="$LDFLAGS $DCMF_LDFLAGS"
+LIBS="$LIBS $DCMF_LIBS"
+
+dnl Check for the header file.
+if test -z "${HAVE_DCMF_TRUE}"; then
+	  AC_CHECK_HEADERS(dcmf.h,
+		  ,
+		  [AM_CONDITIONAL(HAVE_DCMF,false)])
+fi
+
+dnl Check for the library.
+if test -z "${HAVE_DCMF_TRUE}"; then
+	AC_MSG_CHECKING([if dcmf code can be linked])
+	AC_TRY_LINK([#include "dcmf.h"],
+		[unsigned ret;
+		 ret = DCMF_Messager_initialize();
+		 ret = DCMF_Messager_finalize();],
+		[DCMF_LIBS="-ldcmf.cnk -ldcmfcoll.cnk -lpthread -lrt -lSPI.cna"
+		 AC_MSG_RESULT(yes)],
+		[AM_CONDITIONAL(HAVE_DCMF, false)
+		 AC_MSG_RESULT(no)])
+fi
+
+LIBS="$save_LIBS"
+LDFLAGS="$save_LDFLAGS"
+CPPFLAGS="$save_CPPFLAGS"
+
+AC_SUBST(DCMF_CFLAGS)
+AC_SUBST(DCMF_CPPFLAGS)
+AC_SUBST(DCMF_LDFLAGS)
+AC_SUBST(DCMF_LIBS)
+
+dnl Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test -z "${HAVE_DCMF_TRUE}"; then
+	ac_dcmf_lib_ok=yes
+ 	ifelse([$1],,[AC_DEFINE(HAVE_DCMF,1,[Define if you have the DCMF.])],[$1])
+	:
+else
+	$2
+	:
+fi
+])dnl AC_DCMF
diff --git a/config/ac_dimes.m4 b/config/ac_dimes.m4
index df51b10..57a940c 100644
--- a/config/ac_dimes.m4
+++ b/config/ac_dimes.m4
@@ -81,22 +81,45 @@ else
     save_CPPFLAGS="$CPPFLAGS"
     save_LIBS="$LIBS"
     save_LDFLAGS="$LDFLAGS"
-    LIBS="$LIBS -ldimes_portals -lspaces"
+    if test "x${ac_infiniband_lib_ok}" == "xyes"; then 
+        dnl LIBS="$LIBS -ldspaces -ldscommon -ldart"
+	echo "DIMES currently NOT supported for Infiniband!"
+	AM_CONDITIONAL(HAVE_DIMES, false)
+    elif test "x${ac_portals_lib_ok}" == "xyes"; then 
+        dnl LIBS="$LIBS -ldart2 -lspaces"
+	echo "DIMES currently NOT supported for Cray Portals!"
+	AM_CONDITIONAL(HAVE_DIMES, false)
+    elif test "x${ac_dcmf_lib_ok}" == "xyes"; then
+        LIBS="$LIBS -ldspaces -ldscommon -ldart"
+    else
+        LIBS="$LIBS -ldspaces -ldscommon -ldart"
+    fi
     LDFLAGS="$LDFLAGS $DIMES_LDFLAGS"
     CPPFLAGS="$CPPFLAGS $DIMES_CPPFLAGS"
     
     if test -z "${HAVE_DIMES_TRUE}"; then
-            AC_CHECK_HEADERS(dimes.h,
+            AC_CHECK_HEADERS(dimes_interface.h,
                     ,
                     [AM_CONDITIONAL(HAVE_DIMES,false)])
     fi
     
-    # Check for the Mini-XML library and headers
-    AC_TRY_COMPILE([#include "dimes.h"],
-            [int err; err = dimes_init(1,1,1);],
-            [DIMES_LIBS="-ldimes_portals -lspaces"],
-            [AM_CONDITIONAL(HAVE_DIMES,false)])
-    
+    if test -z "${HAVE_DIMES_TRUE}"; then
+        # Check for the DataSpaces/DIMES library and headers
+        if test -z "${HAVE_CRAY_PMI_TRUE}" -a -z "${HAVE_CRAY_UGNI_TRUE}"; then 
+            AC_TRY_LINK([#include "dimes_interface.h"],
+                    [int err; dimes_set_storage_type(1);],
+                    [DIMES_LIBS="-ldspaces -ldscommon -ldart"],
+                    [AM_CONDITIONAL(HAVE_DIMES,false)])
+	elif test "x${ac_dcmf_lib_ok}" == "xyes"; then
+            AC_TRY_COMPILE([#include "dimes_interface.h"],
+                    [int err; dimes_set_storage_type(1);],
+                    [DIMES_LIBS="-ldspaces -ldscommon -ldart"],
+                    [AM_CONDITIONAL(HAVE_DIMES,false)])
+        else
+            AM_CONDITIONAL(HAVE_DIMES,false)
+        fi
+    fi
+ 
     LIBS="$save_LIBS"
     LDFLAGS="$save_LDFLAGS"
     CPPFLAGS="$save_CPPFLAGS"
@@ -116,4 +139,3 @@ else
 
 fi
 ])dnl AC_DIMES
-
diff --git a/config/ac_flexpath.m4 b/config/ac_flexpath.m4
new file mode 100644
index 0000000..f3c72d7
--- /dev/null
+++ b/config/ac_flexpath.m4
@@ -0,0 +1,120 @@
+
+AC_DEFUN([AC_FLEXPATH], [
+
+
+AC_MSG_NOTICE([=== checking for FLEXPATH ===])
+
+FP_SRCDIR=""
+FP_CPPFLAGS=""
+FP_LDFLAGS=""
+FP_LIBS=""
+
+ac_flexpath_ok=yes
+
+temptest=enable
+
+flexpath_dir=""
+
+
+AC_ARG_WITH(flexpath, 
+	[  --with-flexpath=DIR 	Location of FlexPath], 
+	[ ac_with_flexpath=$withval], [with_flexpath=no])
+
+if test "x$with_flexpath" = "xno"; then
+	ac_flexpath_ok=no
+	temptest=disable
+
+elif test x"$with_flexpath" != xyes -a x"$with_flexpath" != xcheck; then
+		
+AC_MSG_CHECKING(got with flexpath argument $with_flexpath)
+#	with_evpath=$with_flexpath
+
+fi
+
+if test "x$ac_flexpath_ok" != "xno"; then
+
+    flexpath_dir=$withval
+    datatap_dir=$withval
+
+    CERCS_REQUIRE_PACKAGE(evpath, evpath.h, libevpath.a)
+    CERCS_REQUIRE_PACKAGE(ffs, ffs.h,libffs.a)
+    CERCS_REQUIRE_PACKAGE(atl, atl.h,libatl.a)
+    CERCS_REQUIRE_PACKAGE(gen_thread, gen_thread.h,libgen_thread.a)
+    CERCS_REQUIRE_PACKAGE(dill, dill.h, libdill.a)
+    CERCS_REQUIRE_PACKAGE(cercs_env, cercs_env.h, libcercs_env.a)
+
+
+    if test -n "$cercs_cv_evpath_link_dir" -a -n "$cercs_cv_evpath_include_arg";then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_evpath_link_dir"
+	FP_LIBS="$FP_LIBS -levpath"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_evpath_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_evpath_include_arg"
+    else
+	echo "FLEXPATH couldn't find evpath -  Not building flexpath"
+	ac_flexpath_ok=no
+    fi
+    if test -n "$cercs_cv_ffs_link_dir" -a -n "$cercs_cv_ffs_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_ffs_link_dir"
+	FP_LIBS="$FP_LIBS -lffs"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_ffs_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_ffs_include_arg"
+    else 
+	echo "FLEXPATH couldn't find ffs -  Not building flexpath"
+	ac_flexpath_ok=no
+    fi
+    if test -n "$cercs_cv_atl_link_dir" -a -n "$cercs_cv_atl_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_atl_link_dir"
+	FP_LIBS="$FP_LIBS -latl"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_atl_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_atl_include_arg"
+    else 
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find atl -  Not building flexpath"
+    fi
+    if test -n "$cercs_cv_dill_link_dir" -a -n "$cercs_cv_dill_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_dill_link_dir"
+	FP_LIBS="$FP_LIBS -ldill"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_dill_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_dill_include_arg"
+    else 
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find dill -  Not building flexpath"
+    fi
+    if test -n "$cercs_cv_gen_thread_link_dir" -a -n "$cercs_cv_gen_thread_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_gen_thread_link_dir"
+	FP_LIBS="$FP_LIBS -lgen_thread"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_gen_thread_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_gen_thread_include_arg"
+    else 
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find gen_thread -  Not building flexpath"
+    fi
+    if test -n "$cercs_cv_cercs_env_link_dir" -a -n "$cercs_cv_cercs_env_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_cercs_env_link_dir"
+	FP_LIBS="$FP_LIBS -lcercs_env"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_cercs_env_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_cercs_env_include_arg"
+    else 
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find cercs_env -  Not building flexpath"
+    fi
+
+fi
+
+AC_SUBST(FP_LIBS)
+AC_SUBST(FP_CPPFLAGS)
+AC_SUBST(FP_LDFLAGS)
+
+
+if test "x$ac_flexpath_ok" = "xyes"; then
+   HAVE_FLEXPATH=1
+   NO_FLEXPATH=0
+else
+   HAVE_FLEXPATH=0
+   NO_FLEXPATH=1
+fi
+AM_CONDITIONAL(HAVE_FLEXPATH, test "x$ac_flexpath_ok" = "xyes")
+AC_DEFINE_UNQUOTED(NO_FLEXPATH, $NO_FLEXPATH, [Flexpath is disabled])
+AC_DEFINE_UNQUOTED(HAVE_FLEXPATH, $HAVE_FLEXPATH, [Flexpath is enabled])
+
+]) dnl AC_FLEXPATH
diff --git a/config/compile b/config/compile
index 80b645b..c0096a7 100755
--- a/config/compile
+++ b/config/compile
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand `-c -o'.
 
-scriptversion=2004-09-10.20
+scriptversion=2009-10-06.20; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
+# Foundation, Inc.
 # Written by Tom Tromey <tromey at cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,8 +18,7 @@ scriptversion=2004-09-10.20
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -47,11 +47,11 @@ right script to run: please start by reading the file `INSTALL'.
 
 Report bugs to <bug-automake at gnu.org>.
 EOF
-    exit 0
+    exit $?
     ;;
   -v | --v*)
     echo "compile $scriptversion"
-    exit 0
+    exit $?
     ;;
 esac
 
@@ -103,13 +103,13 @@ if test -z "$ofile" || test -z "$cfile"; then
 fi
 
 # Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
 while true; do
   if mkdir "$lockdir" >/dev/null 2>&1; then
     break
@@ -124,7 +124,9 @@ trap "rmdir '$lockdir'; exit 1" 1 2 15
 ret=$?
 
 if test -f "$cofile"; then
-  mv "$cofile" "$ofile"
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
 fi
 
 rmdir "$lockdir"
@@ -136,5 +138,6 @@ exit $ret
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/config/config.guess b/config/config.guess
index 2fc3acc..e3ef63f 100755
--- a/config/config.guess
+++ b/config/config.guess
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2003-06-17'
+timestamp='2005-12-13'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -17,13 +17,15 @@ timestamp='2003-06-17'
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+
 # Originally written by Per Bothner <per at bothner.com>.
 # Please send patches to <config-patches at gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
@@ -53,7 +55,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -66,11 +68,11 @@ Try \`$me --help' for more information."
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit 0 ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )	# Use stdin as input.
@@ -123,7 +125,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
 	;;
  ,,*)   CC_FOR_BUILD=$CC ;;
  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi at noc.rutgers.edu 1994-08-24)
@@ -136,13 +138,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-## for Red Hat Linux
-if test -f /etc/redhat-release ; then
-    VENDOR=redhat ;
-else
-    VENDOR= ;
-fi
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -203,50 +198,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mipseb-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
     alpha:OSF1:*:*)
-	if test $UNAME_RELEASE = "V4.0"; then
+	case $UNAME_RELEASE in
+	*4.0)
 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-	fi
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
 	# According to Compaq, /usr/sbin/psrinfo has been available on
 	# OSF/1 and Tru64 systems produced since 1995.  I hope that
 	# covers most systems running today.  This code pipes the CPU
@@ -284,42 +258,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    "EV7.9 (21364A)")
 		UNAME_MACHINE="alphaev79" ;;
 	esac
+	# A Pn.n version is a patched version.
 	# A Vn.n version is a released version.
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    Alpha*:OpenVMS:*:*)
-	echo alpha-hp-vms
-	exit 0 ;;
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
     Alpha\ *:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# Should we change UNAME_MACHINE based on the output of uname instead
 	# of the specific Alpha model?
 	echo alpha-pc-interix
-	exit 0 ;;
+	exit ;;
     21064:Windows_NT:50:3)
 	echo alpha-dec-winnt3.5
-	exit 0 ;;
+	exit ;;
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
-	exit 0;;
+	exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
+	exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
+	exit ;;
     *:OS/390:*:*)
 	echo i370-ibm-openedition
-	exit 0 ;;
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
 	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
+	exit ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
 	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -327,32 +308,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	else
 		echo pyramid-pyramid-bsd
 	fi
-	exit 0 ;;
+	exit ;;
     NILE*:*:*:dcosx)
 	echo pyramid-pyramid-svr4
-	exit 0 ;;
+	exit ;;
     DRS?6000:unix:4.0:6*)
 	echo sparc-icl-nx6
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
 	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
+	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     i86pc:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 	# it's likely to be more like Solaris than SunOS4.
 	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:*:*)
 	case "`/usr/bin/arch -k`" in
 	    Series*|S4*)
@@ -361,10 +342,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	esac
 	# Japanese Language versions have a version number like `4.1.3-JL'.
 	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
+	exit ;;
     sun3*:SunOS:*:*)
 	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -376,10 +357,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 		echo sparc-sun-sunos${UNAME_RELEASE}
 		;;
 	esac
-	exit 0 ;;
+	exit ;;
     aushp:SunOS:*:*)
 	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -390,37 +371,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
         echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
         echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
     powerpc:machten:*:*)
 	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     RISC*:Mach:*:*)
 	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
+	exit ;;
     RISC*:ULTRIX:*:*)
 	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     VAX*:ULTRIX*:*:*)
 	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
 	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -444,32 +428,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	  exit (-1);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
 	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     Motorola:PowerMAX_OS:*:*)
 	echo powerpc-motorola-powermax
-	exit 0 ;;
+	exit ;;
     Motorola:*:4.3:PL8-*)
 	echo powerpc-harris-powermax
-	exit 0 ;;
+	exit ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
 	echo powerpc-harris-powermax
-	exit 0 ;;
+	exit ;;
     Night_Hawk:Power_UNIX:*:*)
 	echo powerpc-harris-powerunix
-	exit 0 ;;
+	exit ;;
     m88k:CX/UX:7*:*)
 	echo m88k-harris-cxux7
-	exit 0 ;;
+	exit ;;
     m88k:*:4*:R4*)
 	echo m88k-motorola-sysv4
-	exit 0 ;;
+	exit ;;
     m88k:*:3*:R3*)
 	echo m88k-motorola-sysv3
-	exit 0 ;;
+	exit ;;
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -485,29 +470,29 @@ EOF
 	else
 	    echo i586-dg-dgux${UNAME_RELEASE}
 	fi
- 	exit 0 ;;
+ 	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
-	exit 0 ;;
+	exit ;;
     M88*:*:R3*:*)
 	# Delta 88k system running SVR3
 	echo m88k-motorola-sysv3
-	exit 0 ;;
+	exit ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
 	echo m88k-tektronix-sysv3
-	exit 0 ;;
+	exit ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
 	echo m68k-tektronix-bsd
-	exit 0 ;;
+	exit ;;
     *:IRIX*:*:*)
 	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
+	exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
 	echo i386-ibm-aix
-	exit 0 ;;
+	exit ;;
     ia64:AIX:*:*)
 	if [ -x /usr/bin/oslevel ] ; then
 		IBM_REV=`/usr/bin/oslevel`
@@ -515,7 +500,7 @@ EOF
 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 	fi
 	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit 0 ;;
+	exit ;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
 		eval $set_cc_for_build
@@ -530,14 +515,18 @@ EOF
 			exit(0);
 			}
 EOF
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
 		echo rs6000-ibm-aix3.2.4
 	else
 		echo rs6000-ibm-aix3.2
 	fi
-	exit 0 ;;
+	exit ;;
     *:AIX:*:[45])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
@@ -551,28 +540,28 @@ EOF
 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 	fi
 	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
+	exit ;;
     *:AIX:*:*)
 	echo rs6000-ibm-aix
-	exit 0 ;;
+	exit ;;
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
 	echo romp-ibm-bsd4.4
-	exit 0 ;;
+	exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
 	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
+	exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
 	echo rs6000-bull-bosx
-	exit 0 ;;
+	exit ;;
     DPX/2?00:B.O.S.:*:*)
 	echo m68k-bull-sysv3
-	exit 0 ;;
+	exit ;;
     9000/[34]??:4.3bsd:1.*:*)
 	echo m68k-hp-bsd
-	exit 0 ;;
+	exit ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
 	echo m68k-hp-bsd4.4
-	exit 0 ;;
+	exit ;;
     9000/[34678]??:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	case "${UNAME_MACHINE}" in
@@ -634,9 +623,19 @@ EOF
 	esac
 	if [ ${HP_ARCH} = "hppa2.0w" ]
 	then
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -644,11 +643,11 @@ EOF
 	    fi
 	fi
 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
+	exit ;;
     ia64:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
+	exit ;;
     3050*:HI-UX:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -676,150 +675,166 @@ EOF
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
 	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
+	exit ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
 	echo hppa1.1-hp-bsd
-	exit 0 ;;
+	exit ;;
     9000/8??:4.3bsd:*:*)
 	echo hppa1.0-hp-bsd
-	exit 0 ;;
+	exit ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 	echo hppa1.0-hp-mpeix
-	exit 0 ;;
+	exit ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
 	echo hppa1.1-hp-osf
-	exit 0 ;;
+	exit ;;
     hp8??:OSF1:*:*)
 	echo hppa1.0-hp-osf
-	exit 0 ;;
+	exit ;;
     i*86:OSF1:*:*)
 	if [ -x /usr/sbin/sysversion ] ; then
 	    echo ${UNAME_MACHINE}-unknown-osf1mk
 	else
 	    echo ${UNAME_MACHINE}-unknown-osf1
 	fi
-	exit 0 ;;
+	exit ;;
     parisc*:Lites*:*:*)
 	echo hppa1.1-hp-lites
-	exit 0 ;;
+	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit 0 ;;
+        exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit 0 ;;
+        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit 0 ;;
+        exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit 0 ;;
+        exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit 0 ;;
+        exit ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*[A-Z]90:*:*:*)
 	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 	      -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*TS:*:*:*)
 	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*T3E:*:*:*)
 	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*SV1:*:*:*)
 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     *:UNICOS/mp:*:*)
-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-	exit 0 ;;
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     sparc*:BSD/OS:*:*)
 	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:BSD/OS:*:*)
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
-	# Determine whether the default compiler uses glibc.
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#if __GLIBC__ >= 2
-	LIBC=gnu
-	#else
-	LIBC=
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-	exit 0 ;;
+	exit ;;
+    *:FreeBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
+	exit ;;
     i*:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:[34]*)
+	exit ;;
+    x86:Interix*:[345]*)
 	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit 0 ;;
+	exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
 	# UNAME_MACHINE based on the output of uname instead of i386?
 	echo i586-pc-interix
-	exit 0 ;;
+	exit ;;
     i*:UWIN*:*)
 	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
     p*:CYGWIN*:*)
 	echo powerpcle-unknown-cygwin
-	exit 0 ;;
+	exit ;;
     prep*:SunOS:5.*:*)
 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     *:GNU:*:*)
+	# the GNU system
 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
+	exit ;;
     arm*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
-	exit 0 ;;
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
-	exit 0 ;;
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     mips:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -836,8 +851,8 @@ EOF
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -855,15 +870,18 @@ EOF
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-${VENDOR:-unknown}-linux-gnu
-	exit 0 ;;
+	echo powerpc-unknown-linux-gnu
+	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-${VENDOR:-unknown}-linux-gnu
-	exit 0 ;;
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
 	  EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -877,7 +895,7 @@ EOF
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -885,25 +903,28 @@ EOF
 	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
-	exit 0 ;;
+	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
 	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
-	exit 0 ;;
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
     sh64*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     sh*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-${VENDOR:-unknown}-linux-gnu
-	exit 0 ;;
+	echo x86_64-unknown-linux-gnu
+	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
@@ -921,15 +942,15 @@ EOF
 		;;
 	  a.out-i386-linux)
 		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
+		exit ;;
 	  coff-i386)
 		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
+		exit ;;
 	  "")
 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 		# one that does not give us useful --help.
 		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
+		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
 	eval $set_cc_for_build
@@ -946,23 +967,29 @@ EOF
 	LIBC=gnulibc1
 	# endif
 	#else
-	#ifdef __INTEL_COMPILER
+	#if defined(__INTEL_COMPILER) || defined(__PGI)
 	LIBC=gnu
 	#else
 	LIBC=gnuaout
 	#endif
 	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^LIBC/{s: ::g;p;}'`"
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
 	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
 	# sysname and nodename.
 	echo i386-sequent-sysv4
-	exit 0 ;;
+	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
@@ -970,24 +997,27 @@ EOF
 	# I just have to hope.  -- rms.
         # Use sysv4.2uw... so that sysv4* matches it.
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
+	exit ;;
     i*86:OS/2:*:*)
 	# If we were able to find `uname', then EMX Unix compatibility
 	# is probably installed.
 	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit 0 ;;
+	exit ;;
     i*86:XTS-300:*:STOP)
 	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
+	exit ;;
     i*86:atheos:*:*)
 	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     i*86:*DOS:*:*)
 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
+	exit ;;
     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -995,15 +1025,16 @@ EOF
 	else
 		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
 	fi
-	exit 0 ;;
-    i*86:*:5:[78]*)
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
 	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
 	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit 0 ;;
+	exit ;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1021,73 +1052,73 @@ EOF
 	else
 		echo ${UNAME_MACHINE}-pc-sysv32
 	fi
-	exit 0 ;;
+	exit ;;
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
 	echo i386-pc-msdosdjgpp
-        exit 0 ;;
+        exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
-	exit 0 ;;
+	exit ;;
     paragon:*:*:*)
 	echo i860-intel-osf1
-	exit 0 ;;
+	exit ;;
     i860:*:4.*:*) # i860-SVR4
 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
 	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
 	else # Add other i860-SVR4 vendors below as they are discovered.
 	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
 	fi
-	exit 0 ;;
+	exit ;;
     mini*:CTIX:SYS*5:*)
 	# "miniframe"
 	echo m68010-convergent-sysv
-	exit 0 ;;
+	exit ;;
     mc68k:UNIX:SYSTEM5:3.51m)
 	echo m68k-convergent-sysv
-	exit 0 ;;
+	exit ;;
     M680?0:D-NIX:5.3:*)
 	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
 	OS_REL=''
 	test -r /etc/.relid \
 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
+          && { echo i486-ncr-sysv4; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     mc68030:UNIX_System_V:4.*:*)
 	echo m68k-atari-sysv4
-	exit 0 ;;
+	exit ;;
     TSUNAMI:LynxOS:2.*:*)
 	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SM[BE]S:UNIX_SV:*:*)
 	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     RM*:ReliantUNIX-*:*:*)
 	echo mips-sni-sysv4
-	exit 0 ;;
+	exit ;;
     RM*:SINIX-*:*:*)
 	echo mips-sni-sysv4
-	exit 0 ;;
+	exit ;;
     *:SINIX-*:*:*)
 	if uname -p 2>/dev/null >/dev/null ; then
 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1095,68 +1126,72 @@ EOF
 	else
 		echo ns32k-sni-sysv
 	fi
-	exit 0 ;;
+	exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                       # says <Richard.M.Bartel at ccMail.Census.GOV>
         echo i586-unisys-sysv4
-        exit 0 ;;
+        exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes at openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
 	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
+	exit ;;
     *:*:*:FTX*)
 	# From seanf at swdc.stratus.com.
 	echo i860-stratus-sysv4
-	exit 0 ;;
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green at stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
     *:VOS:*:*)
 	# From Paul.Green at stratus.com.
 	echo hppa1.1-stratus-vos
-	exit 0 ;;
+	exit ;;
     mc68*:A/UX:*:*)
 	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     news*:NEWS-OS:6*:*)
 	echo mips-sony-newsos6
-	exit 0 ;;
+	exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if [ -d /usr/nec ]; then
 	        echo mips-nec-sysv${UNAME_RELEASE}
 	else
 	        echo mips-unknown-sysv${UNAME_RELEASE}
 	fi
-        exit 0 ;;
+        exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
-	exit 0 ;;
+	exit ;;
     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
 	echo powerpc-apple-beos
-	exit 0 ;;
+	exit ;;
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
-	exit 0 ;;
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SX-5:SUPER-UX:*:*)
 	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Rhapsody:*:*)
 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Darwin:*:*)
-	case `uname -p` in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    powerpc) UNAME_PROCESSOR=powerpc ;;
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
 	if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1164,22 +1199,25 @@ EOF
 		UNAME_MACHINE=pc
 	fi
 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:QNX:*:4*)
 	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
-	exit 0 ;;
+	exit ;;
     BS2000:POSIX*:*:*)
 	echo bs2000-siemens-sysv
-	exit 0 ;;
+	exit ;;
     DS/*:UNIX_System_V:*:*)
 	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Plan9:*:*)
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
@@ -1190,28 +1228,47 @@ EOF
 	    UNAME_MACHINE="$cputype"
 	fi
 	echo ${UNAME_MACHINE}-unknown-plan9
-	exit 0 ;;
+	exit ;;
     *:TOPS-10:*:*)
 	echo pdp10-unknown-tops10
-	exit 0 ;;
+	exit ;;
     *:TENEX:*:*)
 	echo pdp10-unknown-tenex
-	exit 0 ;;
+	exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
 	echo pdp10-dec-tops20
-	exit 0 ;;
+	exit ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
 	echo pdp10-xkl-tops20
-	exit 0 ;;
+	exit ;;
     *:TOPS-20:*:*)
 	echo pdp10-unknown-tops20
-	exit 0 ;;
+	exit ;;
     *:ITS:*:*)
 	echo pdp10-unknown-its
-	exit 0 ;;
+	exit ;;
     SEI:*:*:SEIUX)
         echo mips-sei-seiux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1243,7 +1300,7 @@ main ()
 #endif
 
 #if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
+  printf ("arm-acorn-riscix\n"); exit (0);
 #endif
 
 #if defined (hp300) && !defined (hpux)
@@ -1332,11 +1389,12 @@ main ()
 }
 EOF
 
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
 
 # Apollos put the system type in the environment.
 
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
 
 # Convex versions that predate uname can use getsysinfo(1)
 
@@ -1345,22 +1403,22 @@ then
     case `getsysinfo -f cpu_type` in
     c1*)
 	echo c1-convex-bsd
-	exit 0 ;;
+	exit ;;
     c2*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-	exit 0 ;;
+	exit ;;
     c34*)
 	echo c34-convex-bsd
-	exit 0 ;;
+	exit ;;
     c38*)
 	echo c38-convex-bsd
-	exit 0 ;;
+	exit ;;
     c4*)
 	echo c4-convex-bsd
-	exit 0 ;;
+	exit ;;
     esac
 fi
 
@@ -1371,7 +1429,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-    ftp://ftp.gnu.org/pub/gnu/config/
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/config/config.sub b/config/config.sub
index 6b2ff9f..2851647 100755
--- a/config/config.sub
+++ b/config/config.sub
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2003-06-18'
+timestamp='2005-12-11'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,14 +21,15 @@ timestamp='2003-06-18'
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+
 # Please send patches to <config-patches at gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
 #
@@ -70,7 +71,7 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -83,11 +84,11 @@ Try \`$me --help' for more information."
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit 0 ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )	# Use stdin as input.
@@ -99,7 +100,7 @@ while test $# -gt 0 ; do
     *local*)
        # First pass through any local machine types.
        echo $1
-       exit 0;;
+       exit ;;
 
     * )
        break ;;
@@ -118,7 +119,9 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -144,7 +147,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis)
+	-apple | -axis | -knuth | -cray)
 		os=
 		basic_machine=$1
 		;;
@@ -169,6 +172,10 @@ case $os in
 	-hiux*)
 		os=-hiuxwe2
 		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco5)
 		os=-sco3.2v5
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -185,6 +192,10 @@ case $os in
 		# Don't forget version if it is 3.2v4 or newer.
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco*)
 		os=-sco3.2v2
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -228,14 +239,16 @@ case $basic_machine in
 	| a29k \
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
 	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
 	| fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
-	| ip2k \
-	| m32r | m68000 | m68k | m88k | mcore \
+	| ip2k | iq2000 \
+	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -244,31 +257,37 @@ case $basic_machine in
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
 	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| mt \
 	| msp430 \
 	| ns16k | ns32k \
-	| openrisc | or32 \
+	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| s390 | s390x \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
+	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b \
 	| strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
+	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
 	| z8k)
 		basic_machine=$basic_machine-unknown
 		;;
+	m32c)
+		basic_machine=$basic_machine-unknown
+		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
@@ -276,6 +295,9 @@ case $basic_machine in
 		;;
 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
 		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
 
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
@@ -296,19 +318,19 @@ case $basic_machine in
 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* \
-	| bs2000-* \
+	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | cydra-* \
+	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* \
-	| m32r-* \
+	| ip2k-* | iq2000-* \
+	| m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -317,34 +339,40 @@ case $basic_machine in
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
 	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
 	| msp430-* \
-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| s390-* | s390x-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
+	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa-* \
 	| ymp-* \
 	| z8k-*)
 		;;
+	m32c-*)
+		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -361,6 +389,9 @@ case $basic_machine in
 		basic_machine=a29k-amd
 		os=-udi
 		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
 	adobe68k)
 		basic_machine=m68010-adobe
 		os=-scout
@@ -378,6 +409,9 @@ case $basic_machine in
 	amd64)
 		basic_machine=x86_64-pc
 		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	amdahl)
 		basic_machine=580-amdahl
 		os=-sysv
@@ -437,12 +471,27 @@ case $basic_machine in
 		basic_machine=j90-cray
 		os=-unicos
 		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16c)
+		basic_machine=cr16c-unknown
+		os=-elf
+		;;
 	crds | unos)
 		basic_machine=m68k-crds
 		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
 	cris | cris-* | etrax*)
 		basic_machine=cris-axis
 		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
 	da30 | da30-*)
 		basic_machine=m68k-da30
 		;;
@@ -465,6 +514,10 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
 	dpx20 | dpx20-*)
 		basic_machine=rs6000-bull
 		os=-bosx
@@ -643,10 +696,6 @@ case $basic_machine in
 	mips3*)
 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
 		;;
-	mmix*)
-		basic_machine=mmix-knuth
-		os=-mmixware
-		;;
 	monitor)
 		basic_machine=m68k-rom68k
 		os=-coff
@@ -659,6 +708,9 @@ case $basic_machine in
 		basic_machine=i386-pc
 		os=-msdos
 		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
 	mvs)
 		basic_machine=i370-ibm
 		os=-mvs
@@ -727,10 +779,6 @@ case $basic_machine in
 	np1)
 		basic_machine=np1-gould
 		;;
-	nv1)
-		basic_machine=nv1-cray
-		os=-unicosmp
-		;;
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
@@ -738,9 +786,12 @@ case $basic_machine in
 		basic_machine=hppa1.1-oki
 		os=-proelf
 		;;
-	or32 | or32-*)
+	openrisc | openrisc-*)
 		basic_machine=or32-unknown
-		os=-coff
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
 		;;
 	OSE68000 | ose68000)
 		basic_machine=m68000-ericsson
@@ -823,6 +874,10 @@ case $basic_machine in
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
 	rom68k)
 		basic_machine=m68k-rom68k
 		os=-coff
@@ -833,6 +888,12 @@ case $basic_machine in
 	rtpc | rtpc-*)
 		basic_machine=romp-ibm
 		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
 	sa29200)
 		basic_machine=a29k-amd
 		os=-udi
@@ -956,6 +1017,10 @@ case $basic_machine in
 	tower | tower-32)
 		basic_machine=m68k-ncr
 		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
 	udi29k)
 		basic_machine=a29k-amd
 		os=-udi
@@ -999,6 +1064,10 @@ case $basic_machine in
 		basic_machine=hppa1.1-winbond
 		os=-proelf
 		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
 	xps | xps100)
 		basic_machine=xps100-honeywell
 		;;
@@ -1029,6 +1098,9 @@ case $basic_machine in
 	romp)
 		basic_machine=romp-ibm
 		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
 	rs6000)
 		basic_machine=rs6000-ibm
 		;;
@@ -1045,12 +1117,9 @@ case $basic_machine in
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b)
 		basic_machine=sparc-sun
 		;;
@@ -1124,19 +1193,22 @@ case $os in
 	      | -aos* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1154,12 +1226,15 @@ case $os in
 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
 	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 		;;
 	-mac*)
 		os=`echo $os | sed -e 's|mac|macos|'`
 		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
 	-linux*)
 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 		;;
@@ -1172,6 +1247,9 @@ case $os in
 	-opened*)
 		os=-openedition
 		;;
+        -os400*)
+		os=-os400
+		;;
 	-wince*)
 		os=-wince
 		;;
@@ -1193,6 +1271,9 @@ case $os in
 	-atheos*)
 		os=-atheos
 		;;
+	-syllable*)
+		os=-syllable
+		;;
 	-386bsd)
 		os=-bsd
 		;;
@@ -1215,6 +1296,9 @@ case $os in
 	-sinix*)
 		os=-sysv4
 		;;
+        -tpf*)
+		os=-tpf
+		;;
 	-triton*)
 		os=-sysv3
 		;;
@@ -1251,6 +1335,9 @@ case $os in
 	-kaos*)
 		os=-kaos
 		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
 	-none)
 		;;
 	*)
@@ -1282,9 +1369,9 @@ case $basic_machine in
 	arm*-semi)
 		os=-aout
 		;;
-	c4x-* | tic4x-*)
-		os=-coff
-		;;
+    c4x-* | tic4x-*)
+        os=-coff
+        ;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
@@ -1328,9 +1415,15 @@ case $basic_machine in
 	*-be)
 		os=-beos
 		;;
+	*-haiku)
+		os=-haiku
+		;;
 	*-ibm)
 		os=-aix
 		;;
+    	*-knuth)
+		os=-mmixware
+		;;
 	*-wec)
 		os=-proelf
 		;;
@@ -1463,9 +1556,15 @@ case $basic_machine in
 			-mvs* | -opened*)
 				vendor=ibm
 				;;
+			-os400*)
+				vendor=ibm
+				;;
 			-ptx*)
 				vendor=sequent
 				;;
+			-tpf*)
+				vendor=ibm
+				;;
 			-vxsim* | -vxworks* | -windiss*)
 				vendor=wrs
 				;;
@@ -1490,7 +1589,7 @@ case $basic_machine in
 esac
 
 echo $basic_machine$os
-exit 0
+exit
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/config/depcomp b/config/depcomp
index 04701da..df8eea7 100755
--- a/config/depcomp
+++ b/config/depcomp
@@ -1,9 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2005-07-09.11
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -16,9 +17,7 @@ scriptversion=2005-07-09.11
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -86,12 +85,34 @@ if test "$depmode" = dashXmstdout; then
    depmode=dashmstdout
 fi
 
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+   # This is just like msvisualcpp but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u="sed s,\\\\\\\\,/,g"
+   depmode=msvisualcpp
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
 ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
 ## it if -MD -MP comes after the -MF stuff.  Hmm.
-  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
   stat=$?
   if test $stat -eq 0; then :
   else
@@ -178,14 +199,14 @@ sgi)
 ' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
     tr '
-' ' ' >> $depfile
-    echo >> $depfile
+' ' ' >> "$depfile"
+    echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
     tr ' ' '
 ' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> $depfile
+   >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -201,34 +222,39 @@ aix)
   # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
-  tmpdepfile="$stripped.u"
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
     "$@" -Wc,-M
   else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
     "$@" -M
   fi
   stat=$?
 
-  if test -f "$tmpdepfile"; then :
-  else
-    stripped=`echo "$stripped" | sed 's,^.*/,,'`
-    tmpdepfile="$stripped.u"
-  fi
-
   if test $stat -eq 0; then :
   else
-    rm -f "$tmpdepfile"
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
 
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
   if test -f "$tmpdepfile"; then
-    outname="$stripped.o"
     # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
     # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
-    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -276,6 +302,51 @@ icc)
   rm -f "$tmpdepfile"
   ;;
 
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${
+	       s/^ *//
+	       s/ \\*$//
+	       s/$/:/
+	       p
+	     }' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
@@ -288,13 +359,13 @@ tru64)
 
    if test "$libtool" = yes; then
       # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mecanism is used in libtool 1.4 series to
+      # static library.  This mechanism is used in libtool 1.4 series to
       # handle both shared and static libraries in a single compilation.
       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
       #
       # With libtool 1.5 this exception was removed, and libtool now
       # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in in $dir.libs/$base.o.d and
+      # compilations output dependencies in $dir.libs/$base.o.d and
       # in $dir$base.o.d.  We have to check for both files, because
       # one of the two compilations can be disabled.  We should prefer
       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
@@ -345,7 +416,7 @@ dashmstdout)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
@@ -396,32 +467,39 @@ makedepend)
   "$@" || exit $?
   # Remove any Libtool call
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
   fi
   # X makedepend
   shift
-  cleared=no
-  for arg in "$@"; do
+  cleared=no eat=no
+  for arg
+  do
     case $cleared in
     no)
       set ""; shift
       cleared=yes ;;
     esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
     case "$arg" in
     -D*|-I*)
       set fnord "$@" "$arg"; shift ;;
     # Strip any option that makedepend may not understand.  Remove
     # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
     -*|$object)
       ;;
     *)
       set fnord "$@" "$arg"; shift ;;
     esac
   done
-  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
@@ -441,7 +519,7 @@ cpp)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
@@ -479,13 +557,27 @@ cpp)
 
 msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
+  # always write the preprocessed file to stdout.
   "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
   IFS=" "
   for arg
   do
     case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
 	set fnord "$@"
 	shift
@@ -498,16 +590,23 @@ msvisualcpp)
 	;;
     esac
   done
-  "$@" -E |
-  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
   echo "	" >> "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 none)
   exec "$@"
   ;;
@@ -526,5 +625,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/config/install-sh b/config/install-sh
index dd97db7..6781b98 100755
--- a/config/install-sh
+++ b/config/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2004-09-10.20
+scriptversion=2009-04-28.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2004-09-10.20
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
 
-# put in absolute paths if you don't have them in your path; or use env. vars.
+posix_mkdir=
 
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+# Desired mode of installed file.
+mode=0755
 
-chmodcmd="$chmodprog 0755"
-chowncmd=
 chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
 rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
 src=
 dst=
 dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
 no_target_directory=
 
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
 In the 4th, create DIRECTORIES.
 
 Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
 "
 
-while test -n "$1"; do
+while test $# -ne 0; do
   case $1 in
-    -c) shift
-        continue;;
+    -c) ;;
 
-    -d) dir_arg=true
-        shift
-        continue;;
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
+	shift;;
 
-    --help) echo "$usage"; exit 0;;
+    --help) echo "$usage"; exit $?;;
 
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
 
     -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
-
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
-
-    -t) dstarg=$2
-	shift
-	shift
-	continue;;
-
-    -T) no_target_directory=true
-	shift
-	continue;;
-
-    --version) echo "$0 $scriptversion"; exit 0;;
-
-    *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
+	shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+	shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)	shift
 	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
   esac
+  shift
 done
 
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
 for src
 do
   # Protect names starting with `-'.
   case $src in
-    -*) src=./$src ;;
+    -*) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
     dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
   else
+
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
@@ -190,70 +248,199 @@ do
       exit 1
     fi
 
-    if test -z "$dstarg"; then
+    if test -z "$dst_arg"; then
       echo "$0: no destination specified." >&2
       exit 1
     fi
 
-    dst=$dstarg
+    dst=$dst_arg
     # Protect names starting with `-'.
     case $dst in
-      -*) dst=./$dst ;;
+      -*) dst=./$dst;;
     esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
       if test -n "$no_target_directory"; then
-	echo "$0: $dstarg: Is a directory" >&2
+	echo "$0: $dst_arg: Is a directory" >&2
 	exit 1
       fi
-      dst=$dst/`basename "$src"`
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
     fi
   fi
 
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
 
-  # Make sure that the destination directory exists.
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
 
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
 
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    IFS=$oIFS
+      case $dstdir in
+	/*) prefix='/';;
+	-*) prefix='./';;
+	*)  prefix='';;
+      esac
 
-    pathcomp=
+      eval "$initialize_posix_glob"
 
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
       shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test -d "$pathcomp" || exit
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
       fi
-      pathcomp=$pathcomp/
-    done
+    fi
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
   else
-    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -261,10 +448,9 @@ do
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
 
     # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -272,51 +458,63 @@ do
     # ignore errors from any of these, just make sure not to ignore
     # errors from the above "$doit $cpprog $src $dsttmp" command.
     #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-	   # The rename failed, perhaps because mv can't rename something else
-	   # to itself, or perhaps because mv is so ancient that it does not
-	   # support -f.
-
-	   # Now remove or move aside any old file at destination location.
-	   # We try this two ways since rm can't unlink itself on some
-	   # systems and the destination file might be busy for other
-	   # reasons.  In this case, the final cleanup might fail but the new
-	   # file should still install successfully.
-	   {
-	     if test -f "$dstdir/$dstfile"; then
-	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-	       || {
-		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		 (exit 1); exit
-	       }
-	     else
-	       :
-	     fi
-	   } &&
-
-	   # Now rename the file to the real destination.
-	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-	 }
-    }
-  fi || { (exit 1); exit; }
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
 done
 
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit
-}
-
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/config/missing b/config/missing
index 64b5f90..28055d2 100755
--- a/config/missing
+++ b/config/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2004-09-07.08
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
-#   Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@ scriptversion=2004-09-07.08
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -33,6 +31,8 @@ if test $# -eq 0; then
 fi
 
 run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
 # In the cases where this matters, `missing' is being run in the
 # srcdir already.
@@ -44,7 +44,7 @@ fi
 
 msg="missing on your system"
 
-case "$1" in
+case $1 in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
@@ -77,6 +77,7 @@ Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
   autoconf     touch file \`configure'
   autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
@@ -86,13 +87,16 @@ Supported PROGRAM values:
   tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
 Send bug reports to <bug-automake at gnu.org>."
-    exit 0
+    exit $?
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
     echo "missing $scriptversion (GNU Automake)"
-    exit 0
+    exit $?
     ;;
 
   -*)
@@ -103,15 +107,22 @@ Send bug reports to <bug-automake at gnu.org>."
 
 esac
 
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
-# the program).
-case "$1" in
-  lex|yacc)
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+  lex*|yacc*)
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar)
+  tar*)
     if test -n "$run"; then
        echo 1>&2 "ERROR: \`tar' requires --run"
        exit 1
@@ -135,7 +146,7 @@ esac
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case "$1" in
+case $program in
   aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
@@ -145,7 +156,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch aclocal.m4
     ;;
 
-  autoconf)
+  autoconf*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`${configure_ac}'.  You might want to install the
@@ -154,7 +165,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch configure
     ;;
 
-  autoheader)
+  autoheader*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
@@ -164,7 +175,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
-      case "$f" in
+      case $f in
       *:*) touch_files="$touch_files "`echo "$f" |
 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
       *) touch_files="$touch_files $f.in";;
@@ -184,7 +195,7 @@ WARNING: \`$1' is $msg.  You should only need it if
 	   while read f; do touch "$f"; done
     ;;
 
-  autom4te)
+  autom4te*)
     echo 1>&2 "\
 WARNING: \`$1' is needed, but is $msg.
          You might have modified some files without having the
@@ -192,8 +203,8 @@ WARNING: \`$1' is needed, but is $msg.
          You can get \`$1' as part of \`Autoconf' from any GNU
          archive site."
 
-    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
-    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -f "$file"; then
 	touch $file
     else
@@ -207,80 +218,78 @@ WARNING: \`$1' is needed, but is $msg.
     fi
     ;;
 
-  bison|yacc)
+  bison*|yacc*)
     echo 1>&2 "\
 WARNING: \`$1' $msg.  You should only need it if
          you modified a \`.y' file.  You may need the \`Bison' package
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-	case "$LASTARG" in
+	case $LASTARG in
 	*.y)
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" y.tab.c
 	    fi
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" y.tab.h
 	    fi
 	  ;;
 	esac
     fi
-    if [ ! -f y.tab.h ]; then
+    if test ! -f y.tab.h; then
 	echo >y.tab.h
     fi
-    if [ ! -f y.tab.c ]; then
+    if test ! -f y.tab.c; then
 	echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
 
-  lex|flex)
+  lex*|flex*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.l' file.  You may need the \`Flex' package
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-	case "$LASTARG" in
+	case $LASTARG in
 	*.l)
 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" lex.yy.c
 	    fi
 	  ;;
 	esac
     fi
-    if [ ! -f lex.yy.c ]; then
+    if test ! -f lex.yy.c; then
 	echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
 
-  help2man)
+  help2man*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
 	 you modified a dependency of a manual page.  You may need the
 	 \`Help2man' package in order for those modifications to take
 	 effect.  You can get \`Help2man' from any GNU archive site."
 
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
-    fi
-    if [ -f "$file" ]; then
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
 	touch $file
     else
 	test -z "$file" || exec >$file
 	echo ".ab help2man is required to generate this page"
-	exit 1
+	exit $?
     fi
     ;;
 
-  makeinfo)
+  makeinfo*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -288,15 +297,28 @@ WARNING: \`$1' is $msg.  You should only need it if
          call might also be the consequence of using a buggy \`make' (AIX,
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    # The file to touch is that specified with -o ...
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
     touch $file
     ;;
 
-  tar)
+  tar*)
     shift
 
     # We have already tried tar in the generic part.
@@ -310,13 +332,13 @@ WARNING: \`$1' is $msg.  You should only need it if
     fi
     firstarg="$1"
     if shift; then
-	case "$firstarg" in
+	case $firstarg in
 	*o*)
 	    firstarg=`echo "$firstarg" | sed s/o//`
 	    tar "$firstarg" "$@" && exit 0
 	    ;;
 	esac
-	case "$firstarg" in
+	case $firstarg in
 	*h*)
 	    firstarg=`echo "$firstarg" | sed s/h//`
 	    tar "$firstarg" "$@" && exit 0
@@ -349,5 +371,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/configure b/configure
index 42ea33e..1efd45f 100755
--- a/configure
+++ b/configure
@@ -817,10 +817,17 @@ BUILD_WRITE_FALSE
 BUILD_WRITE_TRUE
 HAVE_DATATAP_FALSE
 HAVE_DATATAP_TRUE
+SKEL_TIMING
+SKEL_HAVE_ADIOS_TIMING
 SKEL_TIMING_FALSE
 SKEL_TIMING_TRUE
 RESEARCH_TRANSPORTS_FALSE
 RESEARCH_TRANSPORTS_TRUE
+HAVE_FLEXPATH_FALSE
+HAVE_FLEXPATH_TRUE
+FP_LDFLAGS
+FP_CPPFLAGS
+FP_LIBS
 DT_LDFLAGS
 DT_CPPFLAGS
 DT_LIBS
@@ -907,6 +914,12 @@ INFINIBAND_CFLAGS
 INFINIBAND_CPPFLAGS
 HAVE_INFINIBAND_FALSE
 HAVE_INFINIBAND_TRUE
+DCMF_LIBS
+DCMF_LDFLAGS
+DCMF_CPPFLAGS
+DCMF_CFLAGS
+HAVE_DCMF_FALSE
+HAVE_DCMF_TRUE
 MXML_CPPFLAGS
 MXML_LDFLAGS
 MXML_LIBS
@@ -978,6 +991,9 @@ CPPFLAGS
 LDFLAGS
 CFLAGS
 CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
 am__untar
 am__tar
 AMTAR
@@ -1041,6 +1057,7 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+enable_maintainer_mode
 enable_dependency_tracking
 with_mpi
 enable_fortran
@@ -1051,6 +1068,7 @@ enable_fast_install
 with_gnu_ld
 enable_libtool_lock
 with_mxml
+with_dcmf
 with_infiniband
 with_portals
 with_cray_pmi
@@ -1094,6 +1112,11 @@ with_ibpbio
 with_ffs
 with_gen_thread
 with_ptlpbio
+with_flexpath
+with_evpath
+with_atl
+with_dill
+with_cercs_env
 enable_research_transports
 enable_skel_timing
 enable_write
@@ -1744,6 +1767,8 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-maintainer-mode  disable make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
   --disable-fortran       disable Fortran test programs in ADIOS.
@@ -1768,6 +1793,7 @@ Optional Packages:
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-mxml=DIR      Location of Mini-XML library
+  --with-dcmf=DIR      Location of IBM DCMF
   --with-infiniband=DIR      Location of Infiniband
   --with-portals=DIR      Location of Portals (yes/no/path_to_portals)
   --with-cray-pmi=<location of CRAY_PMI installation>
@@ -1813,6 +1839,11 @@ Optional Packages:
   --with-ffs=DIR	Where to find ffs package
   --with-gen_thread=DIR	Where to find gen_thread package
   --with-ptlpbio=DIR	Where to find ptlpbio package
+  --with-flexpath=DIR 	Location of FlexPath
+  --with-evpath=DIR	Where to find evpath package
+  --with-atl=DIR	Where to find atl package
+  --with-dill=DIR	Where to find dill package
+  --with-cercs_env=DIR	Where to find cercs_env package
 
 Some influential environment variables:
   CC          C compiler command
@@ -2304,6 +2335,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
+
 ac_config_headers="$ac_config_headers config.h"
 
 am__api_version='1.11'
@@ -2756,7 +2788,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=adios
- VERSION=1.4.1
+ VERSION=1.5.0
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2797,6 +2829,30 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 
 
+
+{ $as_echo "$as_me:$LINENO: checking whether to disable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to disable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=yes
+fi
+
+  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8701,13 +8757,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:8704: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:8760: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:8707: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:8763: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:8710: output\"" >&5)
+  (eval echo "\"\$as_me:8766: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -9912,7 +9968,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 9915 "configure"' > conftest.$ac_ext
+  echo '#line 9971 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -12589,11 +12645,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12592: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12648: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12596: \$? = $ac_status" >&5
+   echo "$as_me:12652: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -12928,11 +12984,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12931: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12987: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12935: \$? = $ac_status" >&5
+   echo "$as_me:12991: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13033,11 +13089,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13036: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13092: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13040: \$? = $ac_status" >&5
+   echo "$as_me:13096: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13088,11 +13144,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13091: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13147: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13095: \$? = $ac_status" >&5
+   echo "$as_me:13151: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15971,7 +16027,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 15974 "configure"
+#line 16030 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16067,7 +16123,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 16070 "configure"
+#line 16126 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18103,11 +18159,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18106: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18162: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:18110: \$? = $ac_status" >&5
+   echo "$as_me:18166: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -18202,11 +18258,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18205: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18261: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:18209: \$? = $ac_status" >&5
+   echo "$as_me:18265: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -18254,11 +18310,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18257: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18313: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:18261: \$? = $ac_status" >&5
+   echo "$as_me:18317: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -19806,11 +19862,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19809: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19865: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19813: \$? = $ac_status" >&5
+   echo "$as_me:19869: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -19905,11 +19961,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19908: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19964: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19912: \$? = $ac_status" >&5
+   echo "$as_me:19968: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -19957,11 +20013,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19960: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:20016: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19964: \$? = $ac_status" >&5
+   echo "$as_me:20020: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -23035,6 +23091,295 @@ else
 fi
 
 
+ac_dcmf_lib_ok=no
+
+DCMF_CFLAGS=""
+DCMF_CPPFLAGS=""
+DCMF_LDFLAGS=""
+DCMF_LIBS=""
+
+{ $as_echo "$as_me:$LINENO: === checking for IBM DCMF ===" >&5
+$as_echo "$as_me: === checking for IBM DCMF ===" >&6;}
+
+ if true; then
+  HAVE_DCMF_TRUE=
+  HAVE_DCMF_FALSE='#'
+else
+  HAVE_DCMF_TRUE='#'
+  HAVE_DCMF_FALSE=
+fi
+
+
+
+# Check whether --with-dcmf was given.
+if test "${with_dcmf+set}" = set; then
+  withval=$with_dcmf;  DCMF_CPPFLAGS="-I$withval/arch/include -I$withval/comm/include";
+              DCMF_LDFLAGS="-L$withval/comm/lib -L$withval/runtime/SPI";
+	      DCMF_LIBS="-ldcmf.cnk -ldcmfcoll.cnk -lpthread -lrt -lSPI.cna";
+fi
+
+
+save_CPPFLAGS="$CPPFLAGS"
+save_LDFLAGS="$LDFLAGS"
+save_LIBS="$LIBS"
+CPPFLAGS="$CPPFLAGS $DCMF_CPPFLAGS"
+LDFLAGS="$LDFLAGS $DCMF_LDFLAGS"
+LIBS="$LIBS $DCMF_LIBS"
+
+if test -z "${HAVE_DCMF_TRUE}"; then
+
+for ac_header in dcmf.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+   if false; then
+  HAVE_DCMF_TRUE=
+  HAVE_DCMF_FALSE='#'
+else
+  HAVE_DCMF_TRUE='#'
+  HAVE_DCMF_FALSE=
+fi
+
+fi
+
+done
+
+fi
+
+if test -z "${HAVE_DCMF_TRUE}"; then
+	{ $as_echo "$as_me:$LINENO: checking if dcmf code can be linked" >&5
+$as_echo_n "checking if dcmf code can be linked... " >&6; }
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include "dcmf.h"
+#ifdef FC_DUMMY_MAIN
+#ifndef FC_DUMMY_MAIN_EQ_F77
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int FC_DUMMY_MAIN() { return 1; }
+#endif
+#endif
+int
+main ()
+{
+unsigned ret;
+		 ret = DCMF_Messager_initialize();
+		 ret = DCMF_Messager_finalize();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  DCMF_LIBS="-ldcmf.cnk -ldcmfcoll.cnk -lpthread -lrt -lSPI.cna"
+		 { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	 if false; then
+  HAVE_DCMF_TRUE=
+  HAVE_DCMF_FALSE='#'
+else
+  HAVE_DCMF_TRUE='#'
+  HAVE_DCMF_FALSE=
+fi
+
+		 { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+
+LIBS="$save_LIBS"
+LDFLAGS="$save_LDFLAGS"
+CPPFLAGS="$save_CPPFLAGS"
+
+
+
+
+
+
+if test -z "${HAVE_DCMF_TRUE}"; then
+	ac_dcmf_lib_ok=yes
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DCMF 1
+_ACEOF
+
+	:
+else
+
+	:
+fi
+
+
 
 
 
@@ -24869,7 +25214,11 @@ else
 
             if test -z "${CRAY_PMI_LIBDIR}"; then
         if test -n "${CRAY_PMI_DIR}"; then
-            CRAY_PMI_LIBDIR="${CRAY_PMI_DIR}/lib";
+            if test -d "${CRAY_PMI_DIR}/lib64"; then
+                CRAY_PMI_LIBDIR="${CRAY_PMI_DIR}/lib64";
+            else
+                CRAY_PMI_LIBDIR="${CRAY_PMI_DIR}/lib";
+            fi
         fi
     fi
 
@@ -25093,7 +25442,11 @@ else
 
             if test -z "${CRAY_UGNI_LIBDIR}"; then
         if test -n "${CRAY_UGNI_DIR}"; then
-            CRAY_UGNI_LIBDIR="${CRAY_UGNI_DIR}/lib";
+            if test -d "${CRAY_UGNI_DIR}/lib64"; then
+                CRAY_UGNI_LIBDIR="${CRAY_UGNI_DIR}/lib64";
+            else
+                CRAY_UGNI_LIBDIR="${CRAY_UGNI_DIR}/lib";
+            fi
         fi
     fi
 
@@ -27526,6 +27879,8 @@ fi
                 LIBS="$LIBS -ldspaces -ldscommon -ldart"
     elif test "x${ac_portals_lib_ok}" == "xyes"; then
         LIBS="$LIBS -ldart2 -lspaces"
+    elif test "x${ac_dmcf_lib_ok}" == "xyes"; then
+        LIBS="$LIBS -ldspaces -ldscommon -ldart"
     else
         LIBS="$LIBS -ldspaces -ldscommon -ldart"
     fi
@@ -27866,289 +28221,14 @@ fi
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        else
-             if false; then
-  HAVE_DATASPACES_TRUE=
-  HAVE_DATASPACES_FALSE='#'
-else
-  HAVE_DATASPACES_TRUE='#'
-  HAVE_DATASPACES_FALSE=
-fi
-
-        fi
-    fi
-
-    LIBS="$save_LIBS"
-    LDFLAGS="$save_LDFLAGS"
-    CPPFLAGS="$save_CPPFLAGS"
-
-
-
-
-
-    # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-    if test -z "${HAVE_DATASPACES_TRUE}"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DATASPACES 1
-_ACEOF
-
-            :
-    else
-
-            :
-    fi
-
-fi
-
-
-
- if true; then
-  HAVE_DIMES_TRUE=
-  HAVE_DIMES_FALSE='#'
-else
-  HAVE_DIMES_TRUE='#'
-  HAVE_DIMES_FALSE=
-fi
-
-
-
-# Check whether --with-dimes was given.
-if test "${with_dimes+set}" = set; then
-  withval=$with_dimes; DIMES_LDFLAGS="-L$withval/lib";
-         DIMES_CPPFLAGS="-I$withval/include";
-else
-  with_dimes=check
-fi
-
-
-if test "x$with_dimes" == "xno"; then
-
-    if false; then
-  HAVE_DIMES_TRUE=
-  HAVE_DIMES_FALSE='#'
-else
-  HAVE_DIMES_TRUE='#'
-  HAVE_DIMES_FALSE=
-fi
-
-
-else
-
-
-# Check whether --with-dimes-incdir was given.
-if test "${with_dimes_incdir+set}" = set; then
-  withval=$with_dimes_incdir; DIMES_INCDIR=$withval
-                 with_dimes=detailed
-fi
-
-
-
-# Check whether --with-dimes-libdir was given.
-if test "${with_dimes_libdir+set}" = set; then
-  withval=$with_dimes_libdir; DIMES_LIBDIR=$withval
-                 with_dimes=detailed
-fi
-
-
-
-            if test -n "${DIMES_DIR}" -a -z "${DIMES_INCDIR}"; then
-            DIMES_INCDIR="${DIMES_DIR}/include";
-        elif test -n "${DIMES}" -a -d "${DIMES}"; then
-            DIMES_INCDIR="${DIMES}/include"
-    fi
-
-            if test -n "${DIMES_DIR}" -a -z "${DIMES_LIBDIR}"; then
-            DIMES_LIBDIR="${DIMES_DIR}/lib";
-        elif test -n "${DIMES}" -a -d "${DIMES}"; then
-            DIMES_LIBDIR="${DIMES}/lib"
-    fi
-
-        if test -n "${DIMES_INCDIR}"; then
-            DIMES_CPPFLAGS="-I${DIMES_INCDIR}"
-    else
-            ac_dimes_ok=no
-    fi
-
-        if test -n "${DIMES_LIBDIR}"; then
-            DIMES_LDFLAGS="-L${DIMES_LIBDIR}"
-    else
-            ac_dimes_ok=no
-    fi
-
-    save_CPPFLAGS="$CPPFLAGS"
-    save_LIBS="$LIBS"
-    save_LDFLAGS="$LDFLAGS"
-    LIBS="$LIBS -ldimes_portals -lspaces"
-    LDFLAGS="$LDFLAGS $DIMES_LDFLAGS"
-    CPPFLAGS="$CPPFLAGS $DIMES_CPPFLAGS"
-
-    if test -z "${HAVE_DIMES_TRUE}"; then
-
-for ac_header in dimes.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-else
-   if false; then
-  HAVE_DIMES_TRUE=
-  HAVE_DIMES_FALSE='#'
-else
-  HAVE_DIMES_TRUE='#'
-  HAVE_DIMES_FALSE=
-fi
-
-fi
-
-done
-
-    fi
-
-    # Check for the Mini-XML library and headers
-    cat >conftest.$ac_ext <<_ACEOF
+	elif test "x${ac_dcmf_lib_ok}" == "xyes"; then
+            cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include "dimes.h"
+#include "dataspaces.h"
 #ifdef FC_DUMMY_MAIN
 #ifndef FC_DUMMY_MAIN_EQ_F77
 #  ifdef __cplusplus
@@ -28160,7 +28240,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 int
 main ()
 {
-int err; err = dimes_init(1,1,1);
+int err; err = dspaces_init(1,1);
   ;
   return 0;
 }
@@ -28183,12 +28263,81 @@ $as_echo "$ac_try_echo") >&5
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  DIMES_LIBS="-ldimes_portals -lspaces"
+  DATASPACES_LIBS="-ldspaces -ldscommon -ldart"
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	 if false; then
+  HAVE_DATASPACES_TRUE=
+  HAVE_DATASPACES_FALSE='#'
+else
+  HAVE_DATASPACES_TRUE='#'
+  HAVE_DATASPACES_FALSE=
+fi
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        else
+             if false; then
+  HAVE_DATASPACES_TRUE=
+  HAVE_DATASPACES_FALSE='#'
+else
+  HAVE_DATASPACES_TRUE='#'
+  HAVE_DATASPACES_FALSE=
+fi
+
+        fi
+    fi
+
+    LIBS="$save_LIBS"
+    LDFLAGS="$save_LDFLAGS"
+    CPPFLAGS="$save_CPPFLAGS"
+
+
+
+
+
+    # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+    if test -z "${HAVE_DATASPACES_TRUE}"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DATASPACES 1
+_ACEOF
+
+            :
+    else
+
+            :
+    fi
+
+fi
+
+
+
+ if true; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+
+
+# Check whether --with-dimes was given.
+if test "${with_dimes+set}" = set; then
+  withval=$with_dimes; DIMES_LDFLAGS="-L$withval/lib";
+         DIMES_CPPFLAGS="-I$withval/include";
+else
+  with_dimes=check
+fi
+
+
+if test "x$with_dimes" == "xno"; then
+
+    if false; then
   HAVE_DIMES_TRUE=
   HAVE_DIMES_FALSE='#'
 else
@@ -28196,9 +28345,373 @@ else
   HAVE_DIMES_FALSE=
 fi
 
+
+else
+
+
+# Check whether --with-dimes-incdir was given.
+if test "${with_dimes_incdir+set}" = set; then
+  withval=$with_dimes_incdir; DIMES_INCDIR=$withval
+                 with_dimes=detailed
+fi
+
+
+
+# Check whether --with-dimes-libdir was given.
+if test "${with_dimes_libdir+set}" = set; then
+  withval=$with_dimes_libdir; DIMES_LIBDIR=$withval
+                 with_dimes=detailed
+fi
+
+
+
+            if test -n "${DIMES_DIR}" -a -z "${DIMES_INCDIR}"; then
+            DIMES_INCDIR="${DIMES_DIR}/include";
+        elif test -n "${DIMES}" -a -d "${DIMES}"; then
+            DIMES_INCDIR="${DIMES}/include"
+    fi
+
+            if test -n "${DIMES_DIR}" -a -z "${DIMES_LIBDIR}"; then
+            DIMES_LIBDIR="${DIMES_DIR}/lib";
+        elif test -n "${DIMES}" -a -d "${DIMES}"; then
+            DIMES_LIBDIR="${DIMES}/lib"
+    fi
+
+        if test -n "${DIMES_INCDIR}"; then
+            DIMES_CPPFLAGS="-I${DIMES_INCDIR}"
+    else
+            ac_dimes_ok=no
+    fi
+
+        if test -n "${DIMES_LIBDIR}"; then
+            DIMES_LDFLAGS="-L${DIMES_LIBDIR}"
+    else
+            ac_dimes_ok=no
+    fi
+
+    save_CPPFLAGS="$CPPFLAGS"
+    save_LIBS="$LIBS"
+    save_LDFLAGS="$LDFLAGS"
+    if test "x${ac_infiniband_lib_ok}" == "xyes"; then
+        	echo "DIMES currently NOT supported for Infiniband!"
+	 if false; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+    elif test "x${ac_portals_lib_ok}" == "xyes"; then
+        	echo "DIMES currently NOT supported for Cray Portals!"
+	 if false; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+    elif test "x${ac_dcmf_lib_ok}" == "xyes"; then
+        LIBS="$LIBS -ldspaces -ldscommon -ldart"
+    else
+        LIBS="$LIBS -ldspaces -ldscommon -ldart"
+    fi
+    LDFLAGS="$LDFLAGS $DIMES_LDFLAGS"
+    CPPFLAGS="$CPPFLAGS $DIMES_CPPFLAGS"
+
+    if test -z "${HAVE_DIMES_TRUE}"; then
+
+for ac_header in dimes_interface.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+   if false; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+fi
+
+done
+
+    fi
+
+    if test -z "${HAVE_DIMES_TRUE}"; then
+        # Check for the DataSpaces/DIMES library and headers
+        if test -z "${HAVE_CRAY_PMI_TRUE}" -a -z "${HAVE_CRAY_UGNI_TRUE}"; then
+            cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include "dimes_interface.h"
+#ifdef FC_DUMMY_MAIN
+#ifndef FC_DUMMY_MAIN_EQ_F77
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int FC_DUMMY_MAIN() { return 1; }
+#endif
+#endif
+int
+main ()
+{
+int err; dimes_set_storage_type(1);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  DIMES_LIBS="-ldspaces -ldscommon -ldart"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	 if false; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+	elif test "x${ac_dcmf_lib_ok}" == "xyes"; then
+            cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include "dimes_interface.h"
+#ifdef FC_DUMMY_MAIN
+#ifndef FC_DUMMY_MAIN_EQ_F77
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int FC_DUMMY_MAIN() { return 1; }
+#endif
+#endif
+int
+main ()
+{
+int err; dimes_set_storage_type(1);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  DIMES_LIBS="-ldspaces -ldscommon -ldart"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	 if false; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        else
+             if false; then
+  HAVE_DIMES_TRUE=
+  HAVE_DIMES_FALSE='#'
+else
+  HAVE_DIMES_TRUE='#'
+  HAVE_DIMES_FALSE=
+fi
+
+        fi
+    fi
 
     LIBS="$save_LIBS"
     LDFLAGS="$save_LDFLAGS"
@@ -28811,11 +29324,11 @@ fi
 
 search_list="$datatap_dir/thin_ib.h $datatap_dir/lib/thin_ib.h $datatap_dir/include/thin_ib.h $search_list /usr/include/thin_ib.h /usr/local/include/thin_ib.h /opt/ibpbio/include/thin_ib.h /opt/misc/include/thin_ib.h /opt/misc/include/$cercs_cv_archive/thin_ib.h"
 tmp_search_results=""
-echo "configure:28814: searching for $search_list " >&5
+echo "configure:29327: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:28818: first found $tmp_search_results " >&5
+	echo "configure:29331: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -28903,11 +29416,11 @@ fi
 
 search_list="$datatap_dir/libibclient.la $datatap_dir/lib/libibclient.la $datatap_dir/include/libibclient.la $search_list /usr/lib/libibclient.la /usr/local/lib/libibclient.la /opt/ibpbio/lib/libibclient.la /opt/misc/lib/libibclient.la /opt/misc/lib/$cercs_cv_archive/libibclient.la"
 tmp_search_results=""
-echo "configure:28906: searching for $search_list " >&5
+echo "configure:29419: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:28910: first found $tmp_search_results " >&5
+	echo "configure:29423: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -28976,11 +29489,11 @@ else
 
 search_list="$PWD/../ibpbio $PWD/../../ibpbio $PWD/../../../ibpbio"
 tmp_search_results=""
-echo "configure:28979: searching for $search_list " >&5
+echo "configure:29492: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:28983: first found $tmp_search_results " >&5
+	echo "configure:29496: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29018,11 +29531,11 @@ else
 
 search_list="$PWD/../ibpbio $PWD/../../ibpbio $PWD/../../../ibpbio"
 tmp_search_results=""
-echo "configure:29021: searching for $search_list " >&5
+echo "configure:29534: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29025: first found $tmp_search_results " >&5
+	echo "configure:29538: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29146,11 +29659,11 @@ fi
 
 search_list="$datatap_dir/ffs.h $datatap_dir/lib/ffs.h $datatap_dir/include/ffs.h $search_list /usr/include/ffs.h /usr/local/include/ffs.h /opt/ffs/include/ffs.h /opt/misc/include/ffs.h /opt/misc/include/$cercs_cv_archive/ffs.h"
 tmp_search_results=""
-echo "configure:29149: searching for $search_list " >&5
+echo "configure:29662: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29153: first found $tmp_search_results " >&5
+	echo "configure:29666: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29238,11 +29751,11 @@ fi
 
 search_list="$datatap_dir/libffs.la $datatap_dir/lib/libffs.la $datatap_dir/include/libffs.la $search_list /usr/lib/libffs.la /usr/local/lib/libffs.la /opt/ffs/lib/libffs.la /opt/misc/lib/libffs.la /opt/misc/lib/$cercs_cv_archive/libffs.la"
 tmp_search_results=""
-echo "configure:29241: searching for $search_list " >&5
+echo "configure:29754: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29245: first found $tmp_search_results " >&5
+	echo "configure:29758: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29311,11 +29824,11 @@ else
 
 search_list="$PWD/../ffs $PWD/../../ffs $PWD/../../../ffs"
 tmp_search_results=""
-echo "configure:29314: searching for $search_list " >&5
+echo "configure:29827: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29318: first found $tmp_search_results " >&5
+	echo "configure:29831: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29353,11 +29866,11 @@ else
 
 search_list="$PWD/../ffs $PWD/../../ffs $PWD/../../../ffs"
 tmp_search_results=""
-echo "configure:29356: searching for $search_list " >&5
+echo "configure:29869: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29360: first found $tmp_search_results " >&5
+	echo "configure:29873: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29481,11 +29994,11 @@ fi
 
 search_list="$datatap_dir/gen_thread.h $datatap_dir/lib/gen_thread.h $datatap_dir/include/gen_thread.h $search_list /usr/include/gen_thread.h /usr/local/include/gen_thread.h /opt/gen_thread/include/gen_thread.h /opt/misc/include/gen_thread.h /opt/misc/include/$cercs_cv_archive/gen_thread.h"
 tmp_search_results=""
-echo "configure:29484: searching for $search_list " >&5
+echo "configure:29997: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29488: first found $tmp_search_results " >&5
+	echo "configure:30001: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29573,11 +30086,11 @@ fi
 
 search_list="$datatap_dir/libgen_thread.la $datatap_dir/lib/libgen_thread.la $datatap_dir/include/libgen_thread.la $search_list /usr/lib/libgen_thread.la /usr/local/lib/libgen_thread.la /opt/gen_thread/lib/libgen_thread.la /opt/misc/lib/libgen_thread.la /opt/misc/lib/$cercs_cv_archive/libgen_thread.la"
 tmp_search_results=""
-echo "configure:29576: searching for $search_list " >&5
+echo "configure:30089: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29580: first found $tmp_search_results " >&5
+	echo "configure:30093: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29646,11 +30159,11 @@ else
 
 search_list="$PWD/../gen_thread $PWD/../../gen_thread $PWD/../../../gen_thread"
 tmp_search_results=""
-echo "configure:29649: searching for $search_list " >&5
+echo "configure:30162: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29653: first found $tmp_search_results " >&5
+	echo "configure:30166: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29688,11 +30201,11 @@ else
 
 search_list="$PWD/../gen_thread $PWD/../../gen_thread $PWD/../../../gen_thread"
 tmp_search_results=""
-echo "configure:29691: searching for $search_list " >&5
+echo "configure:30204: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29695: first found $tmp_search_results " >&5
+	echo "configure:30208: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29839,11 +30352,11 @@ fi
 
 search_list="$datatap_dir/thin_portal.h $datatap_dir/lib/thin_portal.h $datatap_dir/include/thin_portal.h $search_list /usr/include/thin_portal.h /usr/local/include/thin_portal.h /opt/ptlpbio/include/thin_portal.h /opt/misc/include/thin_portal.h /opt/misc/include/$cercs_cv_archive/thin_portal.h"
 tmp_search_results=""
-echo "configure:29842: searching for $search_list " >&5
+echo "configure:30355: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29846: first found $tmp_search_results " >&5
+	echo "configure:30359: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -29931,11 +30444,11 @@ fi
 
 search_list="$datatap_dir/libptlclient.a $datatap_dir/lib/libptlclient.a $datatap_dir/include/libptlclient.a $search_list /usr/lib/libptlclient.a /usr/local/lib/libptlclient.a /opt/ptlpbio/lib/libptlclient.a /opt/misc/lib/libptlclient.a /opt/misc/lib/$cercs_cv_archive/libptlclient.a"
 tmp_search_results=""
-echo "configure:29934: searching for $search_list " >&5
+echo "configure:30447: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:29938: first found $tmp_search_results " >&5
+	echo "configure:30451: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30004,11 +30517,11 @@ else
 
 search_list="$PWD/../ptlpbio $PWD/../../ptlpbio $PWD/../../../ptlpbio"
 tmp_search_results=""
-echo "configure:30007: searching for $search_list " >&5
+echo "configure:30520: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30011: first found $tmp_search_results " >&5
+	echo "configure:30524: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30046,11 +30559,11 @@ else
 
 search_list="$PWD/../ptlpbio $PWD/../../ptlpbio $PWD/../../../ptlpbio"
 tmp_search_results=""
-echo "configure:30049: searching for $search_list " >&5
+echo "configure:30562: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30053: first found $tmp_search_results " >&5
+	echo "configure:30566: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30206,11 +30719,11 @@ fi
 
 search_list="$datatap_dir/thin_ib.h $datatap_dir/lib/thin_ib.h $datatap_dir/include/thin_ib.h $search_list /usr/include/thin_ib.h /usr/local/include/thin_ib.h /opt/ibpbio/include/thin_ib.h /opt/misc/include/thin_ib.h /opt/misc/include/$cercs_cv_archive/thin_ib.h"
 tmp_search_results=""
-echo "configure:30209: searching for $search_list " >&5
+echo "configure:30722: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30213: first found $tmp_search_results " >&5
+	echo "configure:30726: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30298,11 +30811,11 @@ fi
 
 search_list="$datatap_dir/libibclient.la $datatap_dir/lib/libibclient.la $datatap_dir/include/libibclient.la $search_list /usr/lib/libibclient.la /usr/local/lib/libibclient.la /opt/ibpbio/lib/libibclient.la /opt/misc/lib/libibclient.la /opt/misc/lib/$cercs_cv_archive/libibclient.la"
 tmp_search_results=""
-echo "configure:30301: searching for $search_list " >&5
+echo "configure:30814: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30305: first found $tmp_search_results " >&5
+	echo "configure:30818: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30371,11 +30884,11 @@ else
 
 search_list="$PWD/../ibpbio $PWD/../../ibpbio $PWD/../../../ibpbio"
 tmp_search_results=""
-echo "configure:30374: searching for $search_list " >&5
+echo "configure:30887: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30378: first found $tmp_search_results " >&5
+	echo "configure:30891: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30413,11 +30926,11 @@ else
 
 search_list="$PWD/../ibpbio $PWD/../../ibpbio $PWD/../../../ibpbio"
 tmp_search_results=""
-echo "configure:30416: searching for $search_list " >&5
+echo "configure:30929: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30420: first found $tmp_search_results " >&5
+	echo "configure:30933: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30541,11 +31054,11 @@ fi
 
 search_list="$datatap_dir/ffs.h $datatap_dir/lib/ffs.h $datatap_dir/include/ffs.h $search_list /usr/include/ffs.h /usr/local/include/ffs.h /opt/ffs/include/ffs.h /opt/misc/include/ffs.h /opt/misc/include/$cercs_cv_archive/ffs.h"
 tmp_search_results=""
-echo "configure:30544: searching for $search_list " >&5
+echo "configure:31057: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30548: first found $tmp_search_results " >&5
+	echo "configure:31061: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30633,11 +31146,11 @@ fi
 
 search_list="$datatap_dir/libffs.la $datatap_dir/lib/libffs.la $datatap_dir/include/libffs.la $search_list /usr/lib/libffs.la /usr/local/lib/libffs.la /opt/ffs/lib/libffs.la /opt/misc/lib/libffs.la /opt/misc/lib/$cercs_cv_archive/libffs.la"
 tmp_search_results=""
-echo "configure:30636: searching for $search_list " >&5
+echo "configure:31149: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30640: first found $tmp_search_results " >&5
+	echo "configure:31153: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30706,11 +31219,11 @@ else
 
 search_list="$PWD/../ffs $PWD/../../ffs $PWD/../../../ffs"
 tmp_search_results=""
-echo "configure:30709: searching for $search_list " >&5
+echo "configure:31222: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30713: first found $tmp_search_results " >&5
+	echo "configure:31226: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30748,11 +31261,11 @@ else
 
 search_list="$PWD/../ffs $PWD/../../ffs $PWD/../../../ffs"
 tmp_search_results=""
-echo "configure:30751: searching for $search_list " >&5
+echo "configure:31264: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30755: first found $tmp_search_results " >&5
+	echo "configure:31268: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30876,11 +31389,11 @@ fi
 
 search_list="$datatap_dir/gen_thread.h $datatap_dir/lib/gen_thread.h $datatap_dir/include/gen_thread.h $search_list /usr/include/gen_thread.h /usr/local/include/gen_thread.h /opt/gen_thread/include/gen_thread.h /opt/misc/include/gen_thread.h /opt/misc/include/$cercs_cv_archive/gen_thread.h"
 tmp_search_results=""
-echo "configure:30879: searching for $search_list " >&5
+echo "configure:31392: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30883: first found $tmp_search_results " >&5
+	echo "configure:31396: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -30968,11 +31481,11 @@ fi
 
 search_list="$datatap_dir/libgen_thread.la $datatap_dir/lib/libgen_thread.la $datatap_dir/include/libgen_thread.la $search_list /usr/lib/libgen_thread.la /usr/local/lib/libgen_thread.la /opt/gen_thread/lib/libgen_thread.la /opt/misc/lib/libgen_thread.la /opt/misc/lib/$cercs_cv_archive/libgen_thread.la"
 tmp_search_results=""
-echo "configure:30971: searching for $search_list " >&5
+echo "configure:31484: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:30975: first found $tmp_search_results " >&5
+	echo "configure:31488: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31041,11 +31554,11 @@ else
 
 search_list="$PWD/../gen_thread $PWD/../../gen_thread $PWD/../../../gen_thread"
 tmp_search_results=""
-echo "configure:31044: searching for $search_list " >&5
+echo "configure:31557: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:31048: first found $tmp_search_results " >&5
+	echo "configure:31561: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31083,11 +31596,11 @@ else
 
 search_list="$PWD/../gen_thread $PWD/../../gen_thread $PWD/../../../gen_thread"
 tmp_search_results=""
-echo "configure:31086: searching for $search_list " >&5
+echo "configure:31599: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:31090: first found $tmp_search_results " >&5
+	echo "configure:31603: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31234,11 +31747,11 @@ fi
 
 search_list="$datatap_dir/thin_portal.h $datatap_dir/lib/thin_portal.h $datatap_dir/include/thin_portal.h $search_list /usr/include/thin_portal.h /usr/local/include/thin_portal.h /opt/ptlpbio/include/thin_portal.h /opt/misc/include/thin_portal.h /opt/misc/include/$cercs_cv_archive/thin_portal.h"
 tmp_search_results=""
-echo "configure:31237: searching for $search_list " >&5
+echo "configure:31750: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:31241: first found $tmp_search_results " >&5
+	echo "configure:31754: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31326,11 +31839,11 @@ fi
 
 search_list="$datatap_dir/libptlclient.a $datatap_dir/lib/libptlclient.a $datatap_dir/include/libptlclient.a $search_list /usr/lib/libptlclient.a /usr/local/lib/libptlclient.a /opt/ptlpbio/lib/libptlclient.a /opt/misc/lib/libptlclient.a /opt/misc/lib/$cercs_cv_archive/libptlclient.a"
 tmp_search_results=""
-echo "configure:31329: searching for $search_list " >&5
+echo "configure:31842: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:31333: first found $tmp_search_results " >&5
+	echo "configure:31846: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31399,11 +31912,11 @@ else
 
 search_list="$PWD/../ptlpbio $PWD/../../ptlpbio $PWD/../../../ptlpbio"
 tmp_search_results=""
-echo "configure:31402: searching for $search_list " >&5
+echo "configure:31915: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:31406: first found $tmp_search_results " >&5
+	echo "configure:31919: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31441,11 +31954,11 @@ else
 
 search_list="$PWD/../ptlpbio $PWD/../../ptlpbio $PWD/../../../ptlpbio"
 tmp_search_results=""
-echo "configure:31444: searching for $search_list " >&5
+echo "configure:31957: searching for $search_list " >&5
 for tmp_search_value in $search_list; do
    if test -r $tmp_search_value; then
 	tmp_search_results=$tmp_search_value
-	echo "configure:31448: first found $tmp_search_results " >&5
+	echo "configure:31961: first found $tmp_search_results " >&5
 	break
    fi
 done
@@ -31527,6 +32040,2151 @@ fi
 
 
 
+
+
+{ $as_echo "$as_me:$LINENO: === checking for FLEXPATH ===" >&5
+$as_echo "$as_me: === checking for FLEXPATH ===" >&6;}
+
+FP_SRCDIR=""
+FP_CPPFLAGS=""
+FP_LDFLAGS=""
+FP_LIBS=""
+
+ac_flexpath_ok=yes
+
+temptest=enable
+
+flexpath_dir=""
+
+
+
+# Check whether --with-flexpath was given.
+if test "${with_flexpath+set}" = set; then
+  withval=$with_flexpath;  ac_with_flexpath=$withval
+else
+  with_flexpath=no
+fi
+
+
+if test "x$with_flexpath" = "xno"; then
+	ac_flexpath_ok=no
+	temptest=disable
+
+elif test x"$with_flexpath" != xyes -a x"$with_flexpath" != xcheck; then
+
+{ $as_echo "$as_me:$LINENO: checking got with flexpath argument $with_flexpath" >&5
+$as_echo_n "checking got with flexpath argument $with_flexpath... " >&6; }
+#	with_evpath=$with_flexpath
+
+fi
+
+if test "x$ac_flexpath_ok" != "xno"; then
+
+    flexpath_dir=$withval
+    datatap_dir=$withval
+
+
+
+
+if test -z "$with_local_specified"; then
+
+
+
+
+# Check whether --with-evpath was given.
+if test "${with_evpath+set}" = set; then
+  withval=$with_evpath;
+fi
+
+
+if test -n "$with_evpath"; then
+unset cercs_cv_evpath_include_arg
+unset cercs_cv_evpath_link_arg
+if test `echo $with_evpath | sed 's/\(.\).*/\1/g'` != "/"; then
+with_evpath=`pwd`/$with_evpath
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for evpath package" >&5
+$as_echo_n "checking needed include args for evpath package... " >&6; }
+if test "${cercs_cv_evpath_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./evpath.h"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_evpath"; then
+if test `echo $with_evpath | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_evpath" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_evpath
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/evpath.h $datatap_dir/lib/evpath.h $datatap_dir/include/evpath.h $search_list $EXPANDED/evpath.h $EXPANDED/include/evpath.h $EXPANDED/share/evpath.h $EXPANDED/$cercs_cv_archive/evpath.h $EXPANDED/$cercs_cv_archive/include/evpath.h $EXPANDED/evpath/evpath.h $EXPANDED/evpath/$cercs_cv_archive/evpath.h $EXPANDED/evpath/include/evpath.h $EXPANDED/evpath/include/$cercs_cv_archive/evpath.h"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../evpath/evpath.h `pwd`/../include/evpath.h `pwd`/../share/evpath.h"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/evpath/evpath.h $HOME/$cercs_cv_archive/include/evpath.h $HOME/include/evpath.h"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/evpath/include/evpath.h $CHAOS_HOMEDIR/$cercs_cv_archive/include/evpath.h $CHAOS_HOMEDIR/evpath/$cercs_cv_archive/include/evpath.h $CHAOS_HOMEDIR/evpath/include/evpath.h $CHAOS_HOMEDIR/include/evpath.h"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/evpath.h $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/evpath.h $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/evpath.h $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/include/evpath.h $search_list"
+fi
+if test "include" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/evpath.h"
+  done
+fi
+
+search_list="$datatap_dir/evpath.h $datatap_dir/lib/evpath.h $datatap_dir/include/evpath.h $search_list /usr/include/evpath.h /usr/local/include/evpath.h /opt/evpath/include/evpath.h /opt/misc/include/evpath.h /opt/misc/include/$cercs_cv_archive/evpath.h"
+tmp_search_results=""
+echo "configure:32166: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32170: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/evpath.h"; then
+cercs_cv_evpath_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.evpath.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_evpath_include_arg" >&5
+$as_echo "$cercs_cv_evpath_include_arg" >&6; }
+if test -n "$cercs_cv_evpath_include_arg"; then
+arg="$cercs_cv_evpath_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "evpath"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for evpath package" >&5
+$as_echo_n "checking needed link args for evpath package... " >&6; }
+if test "${cercs_cv_evpath_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./libevpath.a"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_evpath"; then
+if test `echo $with_evpath | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_evpath" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_evpath
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/libevpath.a $datatap_dir/lib/libevpath.a $datatap_dir/include/libevpath.a $search_list $EXPANDED/libevpath.a $EXPANDED/lib/libevpath.a $EXPANDED/share/libevpath.a $EXPANDED/$cercs_cv_archive/libevpath.a $EXPANDED/$cercs_cv_archive/lib/libevpath.a $EXPANDED/evpath/libevpath.a $EXPANDED/evpath/$cercs_cv_archive/libevpath.a $EXPANDED/evpath/lib/libevpath.a $EXPANDED/evpath/lib/$cercs_cv_archive/libevpath.a"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../evpath/libevpath.a `pwd`/../lib/libevpath.a `pwd`/../share/libevpath.a"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/evpath/libevpath.a $HOME/$cercs_cv_archive/lib/libevpath.a $HOME/lib/libevpath.a"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/evpath/lib/libevpath.a $CHAOS_HOMEDIR/$cercs_cv_archive/lib/libevpath.a $CHAOS_HOMEDIR/evpath/$cercs_cv_archive/lib/libevpath.a $CHAOS_HOMEDIR/evpath/lib/libevpath.a $CHAOS_HOMEDIR/lib/libevpath.a"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/libevpath.a $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libevpath.a $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/libevpath.a $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libevpath.a $search_list"
+fi
+if test "lib" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/libevpath.a"
+  done
+fi
+
+search_list="$datatap_dir/libevpath.a $datatap_dir/lib/libevpath.a $datatap_dir/include/libevpath.a $search_list /usr/lib/libevpath.a /usr/local/lib/libevpath.a /opt/evpath/lib/libevpath.a /opt/misc/lib/libevpath.a /opt/misc/lib/$cercs_cv_archive/libevpath.a"
+tmp_search_results=""
+echo "configure:32258: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32262: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libevpath.a"; then
+cercs_cv_evpath_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libevpath.a//g"`
+else
+cercs_cv_evpath_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_evpath_link_dir" >&5
+$as_echo "$cercs_cv_evpath_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_evpath_link_arg=`echo $cercs_cv_evpath_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_evpath_link_arg"; then
+arg=$cercs_cv_evpath_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libevpath.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_evpath_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_evpath_link_arg "`echo $cercs_cv_evpath_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "evpath"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+else
+
+
+
+
+# Check whether --with-evpath was given.
+if test "${with_evpath+set}" = set; then
+  withval=$with_evpath;
+fi
+
+
+if test -n "$with_evpath"; then
+unset cercs_cv_evpath_include_arg
+unset cercs_cv_evpath_link_arg
+if test `echo $with_evpath | sed 's/\(.\).*/\1/g'` != "/"; then
+with_evpath=`pwd`/$with_evpath
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for evpath package" >&5
+$as_echo_n "checking needed include args for evpath package... " >&6; }
+if test "${cercs_cv_evpath_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../evpath $PWD/../../evpath $PWD/../../../evpath"
+tmp_search_results=""
+echo "configure:32331: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32335: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/evpath.h"; then
+cercs_cv_evpath_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.evpath.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_evpath_include_arg" >&5
+$as_echo "$cercs_cv_evpath_include_arg" >&6; }
+if test -n "$cercs_cv_evpath_include_arg"; then
+arg="$cercs_cv_evpath_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "evpath"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for evpath package" >&5
+$as_echo_n "checking needed link args for evpath package... " >&6; }
+if test "${cercs_cv_evpath_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../evpath $PWD/../../evpath $PWD/../../../evpath"
+tmp_search_results=""
+echo "configure:32373: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32377: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libevpath.a"; then
+cercs_cv_evpath_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libevpath.a//g"`
+else
+cercs_cv_evpath_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_evpath_link_dir" >&5
+$as_echo "$cercs_cv_evpath_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_evpath_link_arg=`echo $cercs_cv_evpath_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_evpath_link_arg"; then
+arg=$cercs_cv_evpath_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libevpath.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_evpath_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_evpath_link_arg "`echo $cercs_cv_evpath_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "evpath"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+fi
+
+
+
+
+if test -z "$with_local_specified"; then
+
+
+
+
+# Check whether --with-ffs was given.
+if test "${with_ffs+set}" = set; then
+  withval=$with_ffs;
+fi
+
+
+if test -n "$with_ffs"; then
+unset cercs_cv_ffs_include_arg
+unset cercs_cv_ffs_link_arg
+if test `echo $with_ffs | sed 's/\(.\).*/\1/g'` != "/"; then
+with_ffs=`pwd`/$with_ffs
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for ffs package" >&5
+$as_echo_n "checking needed include args for ffs package... " >&6; }
+if test "${cercs_cv_ffs_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./ffs.h"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_ffs"; then
+if test `echo $with_ffs | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_ffs" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_ffs
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/ffs.h $datatap_dir/lib/ffs.h $datatap_dir/include/ffs.h $search_list $EXPANDED/ffs.h $EXPANDED/include/ffs.h $EXPANDED/share/ffs.h $EXPANDED/$cercs_cv_archive/ffs.h $EXPANDED/$cercs_cv_archive/include/ffs.h $EXPANDED/ffs/ffs.h $EXPANDED/ffs/$cercs_cv_archive/ffs.h $EXPANDED/ffs/include/ffs.h $EXPANDED/ffs/include/$cercs_cv_archive/ffs.h"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../ffs/ffs.h `pwd`/../include/ffs.h `pwd`/../share/ffs.h"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/ffs/ffs.h $HOME/$cercs_cv_archive/include/ffs.h $HOME/include/ffs.h"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/ffs/include/ffs.h $CHAOS_HOMEDIR/$cercs_cv_archive/include/ffs.h $CHAOS_HOMEDIR/ffs/$cercs_cv_archive/include/ffs.h $CHAOS_HOMEDIR/ffs/include/ffs.h $CHAOS_HOMEDIR/include/ffs.h"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/ffs.h $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/ffs.h $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/ffs.h $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/include/ffs.h $search_list"
+fi
+if test "include" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/ffs.h"
+  done
+fi
+
+search_list="$datatap_dir/ffs.h $datatap_dir/lib/ffs.h $datatap_dir/include/ffs.h $search_list /usr/include/ffs.h /usr/local/include/ffs.h /opt/ffs/include/ffs.h /opt/misc/include/ffs.h /opt/misc/include/$cercs_cv_archive/ffs.h"
+tmp_search_results=""
+echo "configure:32501: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32505: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/ffs.h"; then
+cercs_cv_ffs_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.ffs.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_ffs_include_arg" >&5
+$as_echo "$cercs_cv_ffs_include_arg" >&6; }
+if test -n "$cercs_cv_ffs_include_arg"; then
+arg="$cercs_cv_ffs_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "ffs"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for ffs package" >&5
+$as_echo_n "checking needed link args for ffs package... " >&6; }
+if test "${cercs_cv_ffs_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./libffs.a"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_ffs"; then
+if test `echo $with_ffs | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_ffs" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_ffs
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/libffs.a $datatap_dir/lib/libffs.a $datatap_dir/include/libffs.a $search_list $EXPANDED/libffs.a $EXPANDED/lib/libffs.a $EXPANDED/share/libffs.a $EXPANDED/$cercs_cv_archive/libffs.a $EXPANDED/$cercs_cv_archive/lib/libffs.a $EXPANDED/ffs/libffs.a $EXPANDED/ffs/$cercs_cv_archive/libffs.a $EXPANDED/ffs/lib/libffs.a $EXPANDED/ffs/lib/$cercs_cv_archive/libffs.a"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../ffs/libffs.a `pwd`/../lib/libffs.a `pwd`/../share/libffs.a"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/ffs/libffs.a $HOME/$cercs_cv_archive/lib/libffs.a $HOME/lib/libffs.a"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/ffs/lib/libffs.a $CHAOS_HOMEDIR/$cercs_cv_archive/lib/libffs.a $CHAOS_HOMEDIR/ffs/$cercs_cv_archive/lib/libffs.a $CHAOS_HOMEDIR/ffs/lib/libffs.a $CHAOS_HOMEDIR/lib/libffs.a"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/libffs.a $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libffs.a $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/libffs.a $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libffs.a $search_list"
+fi
+if test "lib" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/libffs.a"
+  done
+fi
+
+search_list="$datatap_dir/libffs.a $datatap_dir/lib/libffs.a $datatap_dir/include/libffs.a $search_list /usr/lib/libffs.a /usr/local/lib/libffs.a /opt/ffs/lib/libffs.a /opt/misc/lib/libffs.a /opt/misc/lib/$cercs_cv_archive/libffs.a"
+tmp_search_results=""
+echo "configure:32593: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32597: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libffs.a"; then
+cercs_cv_ffs_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libffs.a//g"`
+else
+cercs_cv_ffs_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_ffs_link_dir" >&5
+$as_echo "$cercs_cv_ffs_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_ffs_link_arg=`echo $cercs_cv_ffs_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_ffs_link_arg"; then
+arg=$cercs_cv_ffs_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libffs.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_ffs_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_ffs_link_arg "`echo $cercs_cv_ffs_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "ffs"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+else
+
+
+
+
+# Check whether --with-ffs was given.
+if test "${with_ffs+set}" = set; then
+  withval=$with_ffs;
+fi
+
+
+if test -n "$with_ffs"; then
+unset cercs_cv_ffs_include_arg
+unset cercs_cv_ffs_link_arg
+if test `echo $with_ffs | sed 's/\(.\).*/\1/g'` != "/"; then
+with_ffs=`pwd`/$with_ffs
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for ffs package" >&5
+$as_echo_n "checking needed include args for ffs package... " >&6; }
+if test "${cercs_cv_ffs_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../ffs $PWD/../../ffs $PWD/../../../ffs"
+tmp_search_results=""
+echo "configure:32666: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32670: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/ffs.h"; then
+cercs_cv_ffs_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.ffs.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_ffs_include_arg" >&5
+$as_echo "$cercs_cv_ffs_include_arg" >&6; }
+if test -n "$cercs_cv_ffs_include_arg"; then
+arg="$cercs_cv_ffs_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "ffs"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for ffs package" >&5
+$as_echo_n "checking needed link args for ffs package... " >&6; }
+if test "${cercs_cv_ffs_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../ffs $PWD/../../ffs $PWD/../../../ffs"
+tmp_search_results=""
+echo "configure:32708: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32712: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libffs.a"; then
+cercs_cv_ffs_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libffs.a//g"`
+else
+cercs_cv_ffs_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_ffs_link_dir" >&5
+$as_echo "$cercs_cv_ffs_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_ffs_link_arg=`echo $cercs_cv_ffs_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_ffs_link_arg"; then
+arg=$cercs_cv_ffs_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libffs.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_ffs_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_ffs_link_arg "`echo $cercs_cv_ffs_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "ffs"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+fi
+
+
+
+
+if test -z "$with_local_specified"; then
+
+
+
+
+# Check whether --with-atl was given.
+if test "${with_atl+set}" = set; then
+  withval=$with_atl;
+fi
+
+
+if test -n "$with_atl"; then
+unset cercs_cv_atl_include_arg
+unset cercs_cv_atl_link_arg
+if test `echo $with_atl | sed 's/\(.\).*/\1/g'` != "/"; then
+with_atl=`pwd`/$with_atl
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for atl package" >&5
+$as_echo_n "checking needed include args for atl package... " >&6; }
+if test "${cercs_cv_atl_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./atl.h"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_atl"; then
+if test `echo $with_atl | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_atl" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_atl
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/atl.h $datatap_dir/lib/atl.h $datatap_dir/include/atl.h $search_list $EXPANDED/atl.h $EXPANDED/include/atl.h $EXPANDED/share/atl.h $EXPANDED/$cercs_cv_archive/atl.h $EXPANDED/$cercs_cv_archive/include/atl.h $EXPANDED/atl/atl.h $EXPANDED/atl/$cercs_cv_archive/atl.h $EXPANDED/atl/include/atl.h $EXPANDED/atl/include/$cercs_cv_archive/atl.h"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../atl/atl.h `pwd`/../include/atl.h `pwd`/../share/atl.h"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/atl/atl.h $HOME/$cercs_cv_archive/include/atl.h $HOME/include/atl.h"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/atl/include/atl.h $CHAOS_HOMEDIR/$cercs_cv_archive/include/atl.h $CHAOS_HOMEDIR/atl/$cercs_cv_archive/include/atl.h $CHAOS_HOMEDIR/atl/include/atl.h $CHAOS_HOMEDIR/include/atl.h"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/atl.h $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/atl.h $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/atl.h $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/include/atl.h $search_list"
+fi
+if test "include" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/atl.h"
+  done
+fi
+
+search_list="$datatap_dir/atl.h $datatap_dir/lib/atl.h $datatap_dir/include/atl.h $search_list /usr/include/atl.h /usr/local/include/atl.h /opt/atl/include/atl.h /opt/misc/include/atl.h /opt/misc/include/$cercs_cv_archive/atl.h"
+tmp_search_results=""
+echo "configure:32836: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32840: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/atl.h"; then
+cercs_cv_atl_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.atl.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_atl_include_arg" >&5
+$as_echo "$cercs_cv_atl_include_arg" >&6; }
+if test -n "$cercs_cv_atl_include_arg"; then
+arg="$cercs_cv_atl_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "atl"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for atl package" >&5
+$as_echo_n "checking needed link args for atl package... " >&6; }
+if test "${cercs_cv_atl_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./libatl.a"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_atl"; then
+if test `echo $with_atl | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_atl" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_atl
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/libatl.a $datatap_dir/lib/libatl.a $datatap_dir/include/libatl.a $search_list $EXPANDED/libatl.a $EXPANDED/lib/libatl.a $EXPANDED/share/libatl.a $EXPANDED/$cercs_cv_archive/libatl.a $EXPANDED/$cercs_cv_archive/lib/libatl.a $EXPANDED/atl/libatl.a $EXPANDED/atl/$cercs_cv_archive/libatl.a $EXPANDED/atl/lib/libatl.a $EXPANDED/atl/lib/$cercs_cv_archive/libatl.a"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../atl/libatl.a `pwd`/../lib/libatl.a `pwd`/../share/libatl.a"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/atl/libatl.a $HOME/$cercs_cv_archive/lib/libatl.a $HOME/lib/libatl.a"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/atl/lib/libatl.a $CHAOS_HOMEDIR/$cercs_cv_archive/lib/libatl.a $CHAOS_HOMEDIR/atl/$cercs_cv_archive/lib/libatl.a $CHAOS_HOMEDIR/atl/lib/libatl.a $CHAOS_HOMEDIR/lib/libatl.a"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/libatl.a $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libatl.a $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/libatl.a $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libatl.a $search_list"
+fi
+if test "lib" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/libatl.a"
+  done
+fi
+
+search_list="$datatap_dir/libatl.a $datatap_dir/lib/libatl.a $datatap_dir/include/libatl.a $search_list /usr/lib/libatl.a /usr/local/lib/libatl.a /opt/atl/lib/libatl.a /opt/misc/lib/libatl.a /opt/misc/lib/$cercs_cv_archive/libatl.a"
+tmp_search_results=""
+echo "configure:32928: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:32932: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libatl.a"; then
+cercs_cv_atl_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libatl.a//g"`
+else
+cercs_cv_atl_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_atl_link_dir" >&5
+$as_echo "$cercs_cv_atl_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_atl_link_arg=`echo $cercs_cv_atl_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_atl_link_arg"; then
+arg=$cercs_cv_atl_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libatl.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_atl_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_atl_link_arg "`echo $cercs_cv_atl_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "atl"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+else
+
+
+
+
+# Check whether --with-atl was given.
+if test "${with_atl+set}" = set; then
+  withval=$with_atl;
+fi
+
+
+if test -n "$with_atl"; then
+unset cercs_cv_atl_include_arg
+unset cercs_cv_atl_link_arg
+if test `echo $with_atl | sed 's/\(.\).*/\1/g'` != "/"; then
+with_atl=`pwd`/$with_atl
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for atl package" >&5
+$as_echo_n "checking needed include args for atl package... " >&6; }
+if test "${cercs_cv_atl_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../atl $PWD/../../atl $PWD/../../../atl"
+tmp_search_results=""
+echo "configure:33001: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33005: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/atl.h"; then
+cercs_cv_atl_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.atl.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_atl_include_arg" >&5
+$as_echo "$cercs_cv_atl_include_arg" >&6; }
+if test -n "$cercs_cv_atl_include_arg"; then
+arg="$cercs_cv_atl_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "atl"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for atl package" >&5
+$as_echo_n "checking needed link args for atl package... " >&6; }
+if test "${cercs_cv_atl_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../atl $PWD/../../atl $PWD/../../../atl"
+tmp_search_results=""
+echo "configure:33043: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33047: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libatl.a"; then
+cercs_cv_atl_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libatl.a//g"`
+else
+cercs_cv_atl_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_atl_link_dir" >&5
+$as_echo "$cercs_cv_atl_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_atl_link_arg=`echo $cercs_cv_atl_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_atl_link_arg"; then
+arg=$cercs_cv_atl_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libatl.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_atl_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_atl_link_arg "`echo $cercs_cv_atl_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "atl"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+fi
+
+
+
+
+if test -z "$with_local_specified"; then
+
+
+
+
+# Check whether --with-gen_thread was given.
+if test "${with_gen_thread+set}" = set; then
+  withval=$with_gen_thread;
+fi
+
+
+if test -n "$with_gen_thread"; then
+unset cercs_cv_gen_thread_include_arg
+unset cercs_cv_gen_thread_link_arg
+if test `echo $with_gen_thread | sed 's/\(.\).*/\1/g'` != "/"; then
+with_gen_thread=`pwd`/$with_gen_thread
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for gen_thread package" >&5
+$as_echo_n "checking needed include args for gen_thread package... " >&6; }
+if test "${cercs_cv_gen_thread_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./gen_thread.h"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_gen_thread"; then
+if test `echo $with_gen_thread | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_gen_thread" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_gen_thread
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/gen_thread.h $datatap_dir/lib/gen_thread.h $datatap_dir/include/gen_thread.h $search_list $EXPANDED/gen_thread.h $EXPANDED/include/gen_thread.h $EXPANDED/share/gen_thread.h $EXPANDED/$cercs_cv_archive/gen_thread.h $EXPANDED/$cercs_cv_archive/include/gen_thread.h $EXPANDED/gen_thread/gen_thread.h $EXPANDED/gen_thread/$cercs_cv_archive/gen_thread.h $EXPANDED/gen_thread/include/gen_thread.h $EXPANDED/gen_thread/include/$cercs_cv_archive/gen_thread.h"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../gen_thread/gen_thread.h `pwd`/../include/gen_thread.h `pwd`/../share/gen_thread.h"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/gen_thread/gen_thread.h $HOME/$cercs_cv_archive/include/gen_thread.h $HOME/include/gen_thread.h"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/gen_thread/include/gen_thread.h $CHAOS_HOMEDIR/$cercs_cv_archive/include/gen_thread.h $CHAOS_HOMEDIR/gen_thread/$cercs_cv_archive/include/gen_thread.h $CHAOS_HOMEDIR/gen_thread/include/gen_thread.h $CHAOS_HOMEDIR/include/gen_thread.h"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/gen_thread.h $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/gen_thread.h $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/gen_thread.h $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/include/gen_thread.h $search_list"
+fi
+if test "include" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/gen_thread.h"
+  done
+fi
+
+search_list="$datatap_dir/gen_thread.h $datatap_dir/lib/gen_thread.h $datatap_dir/include/gen_thread.h $search_list /usr/include/gen_thread.h /usr/local/include/gen_thread.h /opt/gen_thread/include/gen_thread.h /opt/misc/include/gen_thread.h /opt/misc/include/$cercs_cv_archive/gen_thread.h"
+tmp_search_results=""
+echo "configure:33171: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33175: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/gen_thread.h"; then
+cercs_cv_gen_thread_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.gen_thread.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_gen_thread_include_arg" >&5
+$as_echo "$cercs_cv_gen_thread_include_arg" >&6; }
+if test -n "$cercs_cv_gen_thread_include_arg"; then
+arg="$cercs_cv_gen_thread_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "gen_thread"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for gen_thread package" >&5
+$as_echo_n "checking needed link args for gen_thread package... " >&6; }
+if test "${cercs_cv_gen_thread_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./libgen_thread.a"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_gen_thread"; then
+if test `echo $with_gen_thread | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_gen_thread" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_gen_thread
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/libgen_thread.a $datatap_dir/lib/libgen_thread.a $datatap_dir/include/libgen_thread.a $search_list $EXPANDED/libgen_thread.a $EXPANDED/lib/libgen_thread.a $EXPANDED/share/libgen_thread.a $EXPANDED/$cercs_cv_archive/libgen_thread.a $EXPANDED/$cercs_cv_archive/lib/libgen_thread.a $EXPANDED/gen_thread/libgen_thread.a $EXPANDED/gen_thread/$cercs_cv_archive/libgen_thread.a $EXPANDED/gen_thread/lib/libgen_thread.a $EXPANDED/gen_thread/lib/$cercs_cv_archive/libgen_thread.a"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../gen_thread/libgen_thread.a `pwd`/../lib/libgen_thread.a `pwd`/../share/libgen_thread.a"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/gen_thread/libgen_thread.a $HOME/$cercs_cv_archive/lib/libgen_thread.a $HOME/lib/libgen_thread.a"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/gen_thread/lib/libgen_thread.a $CHAOS_HOMEDIR/$cercs_cv_archive/lib/libgen_thread.a $CHAOS_HOMEDIR/gen_thread/$cercs_cv_archive/lib/libgen_thread.a $CHAOS_HOMEDIR/gen_thread/lib/libgen_thread.a $CHAOS_HOMEDIR/lib/libgen_thread.a"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/libgen_thread.a $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libgen_thread.a $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/libgen_thread.a $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libgen_thread.a $search_list"
+fi
+if test "lib" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/libgen_thread.a"
+  done
+fi
+
+search_list="$datatap_dir/libgen_thread.a $datatap_dir/lib/libgen_thread.a $datatap_dir/include/libgen_thread.a $search_list /usr/lib/libgen_thread.a /usr/local/lib/libgen_thread.a /opt/gen_thread/lib/libgen_thread.a /opt/misc/lib/libgen_thread.a /opt/misc/lib/$cercs_cv_archive/libgen_thread.a"
+tmp_search_results=""
+echo "configure:33263: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33267: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libgen_thread.a"; then
+cercs_cv_gen_thread_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libgen_thread.a//g"`
+else
+cercs_cv_gen_thread_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_gen_thread_link_dir" >&5
+$as_echo "$cercs_cv_gen_thread_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_gen_thread_link_arg=`echo $cercs_cv_gen_thread_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_gen_thread_link_arg"; then
+arg=$cercs_cv_gen_thread_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libgen_thread.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_gen_thread_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_gen_thread_link_arg "`echo $cercs_cv_gen_thread_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "gen_thread"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+else
+
+
+
+
+# Check whether --with-gen_thread was given.
+if test "${with_gen_thread+set}" = set; then
+  withval=$with_gen_thread;
+fi
+
+
+if test -n "$with_gen_thread"; then
+unset cercs_cv_gen_thread_include_arg
+unset cercs_cv_gen_thread_link_arg
+if test `echo $with_gen_thread | sed 's/\(.\).*/\1/g'` != "/"; then
+with_gen_thread=`pwd`/$with_gen_thread
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for gen_thread package" >&5
+$as_echo_n "checking needed include args for gen_thread package... " >&6; }
+if test "${cercs_cv_gen_thread_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../gen_thread $PWD/../../gen_thread $PWD/../../../gen_thread"
+tmp_search_results=""
+echo "configure:33336: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33340: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/gen_thread.h"; then
+cercs_cv_gen_thread_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.gen_thread.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_gen_thread_include_arg" >&5
+$as_echo "$cercs_cv_gen_thread_include_arg" >&6; }
+if test -n "$cercs_cv_gen_thread_include_arg"; then
+arg="$cercs_cv_gen_thread_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "gen_thread"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for gen_thread package" >&5
+$as_echo_n "checking needed link args for gen_thread package... " >&6; }
+if test "${cercs_cv_gen_thread_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../gen_thread $PWD/../../gen_thread $PWD/../../../gen_thread"
+tmp_search_results=""
+echo "configure:33378: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33382: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libgen_thread.a"; then
+cercs_cv_gen_thread_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libgen_thread.a//g"`
+else
+cercs_cv_gen_thread_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_gen_thread_link_dir" >&5
+$as_echo "$cercs_cv_gen_thread_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_gen_thread_link_arg=`echo $cercs_cv_gen_thread_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_gen_thread_link_arg"; then
+arg=$cercs_cv_gen_thread_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libgen_thread.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_gen_thread_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_gen_thread_link_arg "`echo $cercs_cv_gen_thread_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "gen_thread"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+fi
+
+
+
+
+if test -z "$with_local_specified"; then
+
+
+
+
+# Check whether --with-dill was given.
+if test "${with_dill+set}" = set; then
+  withval=$with_dill;
+fi
+
+
+if test -n "$with_dill"; then
+unset cercs_cv_dill_include_arg
+unset cercs_cv_dill_link_arg
+if test `echo $with_dill | sed 's/\(.\).*/\1/g'` != "/"; then
+with_dill=`pwd`/$with_dill
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for dill package" >&5
+$as_echo_n "checking needed include args for dill package... " >&6; }
+if test "${cercs_cv_dill_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./dill.h"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_dill"; then
+if test `echo $with_dill | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_dill" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_dill
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/dill.h $datatap_dir/lib/dill.h $datatap_dir/include/dill.h $search_list $EXPANDED/dill.h $EXPANDED/include/dill.h $EXPANDED/share/dill.h $EXPANDED/$cercs_cv_archive/dill.h $EXPANDED/$cercs_cv_archive/include/dill.h $EXPANDED/dill/dill.h $EXPANDED/dill/$cercs_cv_archive/dill.h $EXPANDED/dill/include/dill.h $EXPANDED/dill/include/$cercs_cv_archive/dill.h"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../dill/dill.h `pwd`/../include/dill.h `pwd`/../share/dill.h"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/dill/dill.h $HOME/$cercs_cv_archive/include/dill.h $HOME/include/dill.h"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/dill/include/dill.h $CHAOS_HOMEDIR/$cercs_cv_archive/include/dill.h $CHAOS_HOMEDIR/dill/$cercs_cv_archive/include/dill.h $CHAOS_HOMEDIR/dill/include/dill.h $CHAOS_HOMEDIR/include/dill.h"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/dill.h $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/dill.h $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/dill.h $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/include/dill.h $search_list"
+fi
+if test "include" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/dill.h"
+  done
+fi
+
+search_list="$datatap_dir/dill.h $datatap_dir/lib/dill.h $datatap_dir/include/dill.h $search_list /usr/include/dill.h /usr/local/include/dill.h /opt/dill/include/dill.h /opt/misc/include/dill.h /opt/misc/include/$cercs_cv_archive/dill.h"
+tmp_search_results=""
+echo "configure:33506: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33510: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/dill.h"; then
+cercs_cv_dill_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.dill.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_dill_include_arg" >&5
+$as_echo "$cercs_cv_dill_include_arg" >&6; }
+if test -n "$cercs_cv_dill_include_arg"; then
+arg="$cercs_cv_dill_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "dill"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for dill package" >&5
+$as_echo_n "checking needed link args for dill package... " >&6; }
+if test "${cercs_cv_dill_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./libdill.a"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_dill"; then
+if test `echo $with_dill | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_dill" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_dill
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/libdill.a $datatap_dir/lib/libdill.a $datatap_dir/include/libdill.a $search_list $EXPANDED/libdill.a $EXPANDED/lib/libdill.a $EXPANDED/share/libdill.a $EXPANDED/$cercs_cv_archive/libdill.a $EXPANDED/$cercs_cv_archive/lib/libdill.a $EXPANDED/dill/libdill.a $EXPANDED/dill/$cercs_cv_archive/libdill.a $EXPANDED/dill/lib/libdill.a $EXPANDED/dill/lib/$cercs_cv_archive/libdill.a"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../dill/libdill.a `pwd`/../lib/libdill.a `pwd`/../share/libdill.a"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/dill/libdill.a $HOME/$cercs_cv_archive/lib/libdill.a $HOME/lib/libdill.a"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/dill/lib/libdill.a $CHAOS_HOMEDIR/$cercs_cv_archive/lib/libdill.a $CHAOS_HOMEDIR/dill/$cercs_cv_archive/lib/libdill.a $CHAOS_HOMEDIR/dill/lib/libdill.a $CHAOS_HOMEDIR/lib/libdill.a"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/libdill.a $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libdill.a $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/libdill.a $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libdill.a $search_list"
+fi
+if test "lib" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/libdill.a"
+  done
+fi
+
+search_list="$datatap_dir/libdill.a $datatap_dir/lib/libdill.a $datatap_dir/include/libdill.a $search_list /usr/lib/libdill.a /usr/local/lib/libdill.a /opt/dill/lib/libdill.a /opt/misc/lib/libdill.a /opt/misc/lib/$cercs_cv_archive/libdill.a"
+tmp_search_results=""
+echo "configure:33598: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33602: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libdill.a"; then
+cercs_cv_dill_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libdill.a//g"`
+else
+cercs_cv_dill_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_dill_link_dir" >&5
+$as_echo "$cercs_cv_dill_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_dill_link_arg=`echo $cercs_cv_dill_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_dill_link_arg"; then
+arg=$cercs_cv_dill_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libdill.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_dill_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_dill_link_arg "`echo $cercs_cv_dill_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "dill"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+else
+
+
+
+
+# Check whether --with-dill was given.
+if test "${with_dill+set}" = set; then
+  withval=$with_dill;
+fi
+
+
+if test -n "$with_dill"; then
+unset cercs_cv_dill_include_arg
+unset cercs_cv_dill_link_arg
+if test `echo $with_dill | sed 's/\(.\).*/\1/g'` != "/"; then
+with_dill=`pwd`/$with_dill
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for dill package" >&5
+$as_echo_n "checking needed include args for dill package... " >&6; }
+if test "${cercs_cv_dill_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../dill $PWD/../../dill $PWD/../../../dill"
+tmp_search_results=""
+echo "configure:33671: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33675: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/dill.h"; then
+cercs_cv_dill_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.dill.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_dill_include_arg" >&5
+$as_echo "$cercs_cv_dill_include_arg" >&6; }
+if test -n "$cercs_cv_dill_include_arg"; then
+arg="$cercs_cv_dill_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "dill"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for dill package" >&5
+$as_echo_n "checking needed link args for dill package... " >&6; }
+if test "${cercs_cv_dill_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../dill $PWD/../../dill $PWD/../../../dill"
+tmp_search_results=""
+echo "configure:33713: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33717: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libdill.a"; then
+cercs_cv_dill_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libdill.a//g"`
+else
+cercs_cv_dill_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_dill_link_dir" >&5
+$as_echo "$cercs_cv_dill_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_dill_link_arg=`echo $cercs_cv_dill_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_dill_link_arg"; then
+arg=$cercs_cv_dill_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libdill.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_dill_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_dill_link_arg "`echo $cercs_cv_dill_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "dill"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+fi
+
+
+
+
+if test -z "$with_local_specified"; then
+
+
+
+
+# Check whether --with-cercs_env was given.
+if test "${with_cercs_env+set}" = set; then
+  withval=$with_cercs_env;
+fi
+
+
+if test -n "$with_cercs_env"; then
+unset cercs_cv_cercs_env_include_arg
+unset cercs_cv_cercs_env_link_arg
+if test `echo $with_cercs_env | sed 's/\(.\).*/\1/g'` != "/"; then
+with_cercs_env=`pwd`/$with_cercs_env
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for cercs_env package" >&5
+$as_echo_n "checking needed include args for cercs_env package... " >&6; }
+if test "${cercs_cv_cercs_env_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./cercs_env.h"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_cercs_env"; then
+if test `echo $with_cercs_env | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_cercs_env" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_cercs_env
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/cercs_env.h $datatap_dir/lib/cercs_env.h $datatap_dir/include/cercs_env.h $search_list $EXPANDED/cercs_env.h $EXPANDED/include/cercs_env.h $EXPANDED/share/cercs_env.h $EXPANDED/$cercs_cv_archive/cercs_env.h $EXPANDED/$cercs_cv_archive/include/cercs_env.h $EXPANDED/cercs_env/cercs_env.h $EXPANDED/cercs_env/$cercs_cv_archive/cercs_env.h $EXPANDED/cercs_env/include/cercs_env.h $EXPANDED/cercs_env/include/$cercs_cv_archive/cercs_env.h"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../cercs_env/cercs_env.h `pwd`/../include/cercs_env.h `pwd`/../share/cercs_env.h"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/cercs_env/cercs_env.h $HOME/$cercs_cv_archive/include/cercs_env.h $HOME/include/cercs_env.h"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/cercs_env/include/cercs_env.h $CHAOS_HOMEDIR/$cercs_cv_archive/include/cercs_env.h $CHAOS_HOMEDIR/cercs_env/$cercs_cv_archive/include/cercs_env.h $CHAOS_HOMEDIR/cercs_env/include/cercs_env.h $CHAOS_HOMEDIR/include/cercs_env.h"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/cercs_env.h $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/cercs_env.h $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/cercs_env.h $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/include/cercs_env.h $search_list"
+fi
+if test "include" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/cercs_env.h"
+  done
+fi
+
+search_list="$datatap_dir/cercs_env.h $datatap_dir/lib/cercs_env.h $datatap_dir/include/cercs_env.h $search_list /usr/include/cercs_env.h /usr/local/include/cercs_env.h /opt/cercs_env/include/cercs_env.h /opt/misc/include/cercs_env.h /opt/misc/include/$cercs_cv_archive/cercs_env.h"
+tmp_search_results=""
+echo "configure:33841: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33845: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/cercs_env.h"; then
+cercs_cv_cercs_env_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.cercs_env.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_cercs_env_include_arg" >&5
+$as_echo "$cercs_cv_cercs_env_include_arg" >&6; }
+if test -n "$cercs_cv_cercs_env_include_arg"; then
+arg="$cercs_cv_cercs_env_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "cercs_env"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for cercs_env package" >&5
+$as_echo_n "checking needed link args for cercs_env package... " >&6; }
+if test "${cercs_cv_cercs_env_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+
+cercs_tmp=""
+search_list="./libcercs_env.a"
+CHAOS_HOMEDIR=""
+if test -n "$CSH"; then
+CHAOS_HOMEDIR=`echo "echo ~chaos" | csh -sf  2>/dev/null | sed 's%/$%%'` || CHAOS_HOMEDIR=""
+fi
+if test -n "$with_cercs_env"; then
+if test `echo $with_cercs_env | cut -c1` = "~"; then
+EXPANDED=`echo "echo $with_cercs_env" | csh -sf 2>/dev/null` || EXPANDED=""
+else
+EXPANDED=$with_cercs_env
+fi
+
+echo "Datatap = $datatap_dir"
+
+search_list="$datatap_dir/libcercs_env.a $datatap_dir/lib/libcercs_env.a $datatap_dir/include/libcercs_env.a $search_list $EXPANDED/libcercs_env.a $EXPANDED/lib/libcercs_env.a $EXPANDED/share/libcercs_env.a $EXPANDED/$cercs_cv_archive/libcercs_env.a $EXPANDED/$cercs_cv_archive/lib/libcercs_env.a $EXPANDED/cercs_env/libcercs_env.a $EXPANDED/cercs_env/$cercs_cv_archive/libcercs_env.a $EXPANDED/cercs_env/lib/libcercs_env.a $EXPANDED/cercs_env/lib/$cercs_cv_archive/libcercs_env.a"
+fi
+if test -z "$with_installed_specified"; then
+search_list="$search_list `pwd`/../cercs_env/libcercs_env.a `pwd`/../lib/libcercs_env.a `pwd`/../share/libcercs_env.a"
+if test "$CHAOS_HOMEDIR" != "$HOME"; then
+search_list="$search_list $HOME/cercs_env/libcercs_env.a $HOME/$cercs_cv_archive/lib/libcercs_env.a $HOME/lib/libcercs_env.a"
+fi
+fi
+if test -n "$CHAOS_HOMEDIR" -a -n "$cercs_cv_archive"; then
+search_list="$search_list $CHAOS_HOMEDIR/$cercs_cv_archive/cercs_env/lib/libcercs_env.a $CHAOS_HOMEDIR/$cercs_cv_archive/lib/libcercs_env.a $CHAOS_HOMEDIR/cercs_env/$cercs_cv_archive/lib/libcercs_env.a $CHAOS_HOMEDIR/cercs_env/lib/libcercs_env.a $CHAOS_HOMEDIR/lib/libcercs_env.a"
+fi
+if test "$libdir" != '${exec_prefix}/lib'; then
+tmpdir=`echo ${libdir} |  sed 's%/$%%'`
+search_list="$tmpdir/libcercs_env.a $search_list"
+fi
+if test "$exec_prefix" != "NONE"; then
+tmpdir=`echo ${exec_prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libcercs_env.a $search_list"
+fi
+if test "$includedir" != '${prefix}/include'; then
+tmpdir=`echo ${includedir} |  sed 's%/$%%'`
+search_list="$tmpdir/libcercs_env.a $search_list"
+fi
+if test "$prefix" != "NONE"; then
+tmpdir=`echo ${prefix} |  sed 's%/$%%'`
+search_list="$tmpdir/lib/libcercs_env.a $search_list"
+fi
+if test "lib" == "lib"; then
+  for tmp_lib_value in $sys_lib_search_path_spec; do
+     search_list="$search_list $tmp_lib_value/libcercs_env.a"
+  done
+fi
+
+search_list="$datatap_dir/libcercs_env.a $datatap_dir/lib/libcercs_env.a $datatap_dir/include/libcercs_env.a $search_list /usr/lib/libcercs_env.a /usr/local/lib/libcercs_env.a /opt/cercs_env/lib/libcercs_env.a /opt/misc/lib/libcercs_env.a /opt/misc/lib/$cercs_cv_archive/libcercs_env.a"
+tmp_search_results=""
+echo "configure:33933: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:33937: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libcercs_env.a"; then
+cercs_cv_cercs_env_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libcercs_env.a//g"`
+else
+cercs_cv_cercs_env_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_cercs_env_link_dir" >&5
+$as_echo "$cercs_cv_cercs_env_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_cercs_env_link_arg=`echo $cercs_cv_cercs_env_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_cercs_env_link_arg"; then
+arg=$cercs_cv_cercs_env_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libcercs_env.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_cercs_env_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_cercs_env_link_arg "`echo $cercs_cv_cercs_env_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "cercs_env"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+else
+
+
+
+
+# Check whether --with-cercs_env was given.
+if test "${with_cercs_env+set}" = set; then
+  withval=$with_cercs_env;
+fi
+
+
+if test -n "$with_cercs_env"; then
+unset cercs_cv_cercs_env_include_arg
+unset cercs_cv_cercs_env_link_arg
+if test `echo $with_cercs_env | sed 's/\(.\).*/\1/g'` != "/"; then
+with_cercs_env=`pwd`/$with_cercs_env
+fi
+fi
+{ $as_echo "$as_me:$LINENO: checking needed include args for cercs_env package" >&5
+$as_echo_n "checking needed include args for cercs_env package... " >&6; }
+if test "${cercs_cv_cercs_env_include_arg+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../cercs_env $PWD/../../cercs_env $PWD/../../../cercs_env"
+tmp_search_results=""
+echo "configure:34006: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:34010: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "/usr/include/cercs_env.h"; then
+cercs_cv_cercs_env_include_arg=-I`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s#.cercs_env.h##g"`
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_cercs_env_include_arg" >&5
+$as_echo "$cercs_cv_cercs_env_include_arg" >&6; }
+if test -n "$cercs_cv_cercs_env_include_arg"; then
+arg="$cercs_cv_cercs_env_include_arg"
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $DT_CPPFLAGS | grep -c "$no_dash_arg"` -eq 0; then
+if test `echo $arg | grep -c "cercs_env"` -eq 0; then
+DT_CPPFLAGS="$DT_CPPFLAGS $arg";
+else
+DT_CPPFLAGS="$arg $DT_CPPFLAGS"
+fi
+fi
+fi
+
+{ $as_echo "$as_me:$LINENO: checking needed link args for cercs_env package" >&5
+$as_echo_n "checking needed link args for cercs_env package... " >&6; }
+if test "${cercs_cv_cercs_env_link_dir+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+
+search_list="$PWD/../cercs_env $PWD/../../cercs_env $PWD/../../../cercs_env"
+tmp_search_results=""
+echo "configure:34048: searching for $search_list " >&5
+for tmp_search_value in $search_list; do
+   if test -r $tmp_search_value; then
+	tmp_search_results=$tmp_search_value
+	echo "configure:34052: first found $tmp_search_results " >&5
+	break
+   fi
+done
+
+if test -n "$tmp_search_results"; then
+cercs_tmp=$tmp_search_results
+fi
+
+if test -n "$cercs_tmp" -a "$cercs_tmp" != "libcercs_env.a"; then
+cercs_cv_cercs_env_link_dir=`$PATHPROG $cercs_tmp | sed 's#\\\\#/#g' | sed "s/.libcercs_env.a//g"`
+else
+cercs_cv_cercs_env_link_dir=""
+fi
+
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $cercs_cv_cercs_env_link_dir" >&5
+$as_echo "$cercs_cv_cercs_env_link_dir" >&6; }
+ld_arg="-L"
+new_flags=$LDFLAGS
+cercs_cv_cercs_env_link_arg=`echo $cercs_cv_cercs_env_link_dir | sed "/./ s/^/$ld_arg/1"`
+if test -n "$cercs_cv_cercs_env_link_arg"; then
+arg=$cercs_cv_cercs_env_link_arg
+no_dash_arg=`echo $arg | sed 's/^-//g'`
+if test `echo $new_flags | grep -c "$no_dash_arg"` -eq 0; then
+root=`echo libcercs_env.a | sed 's/\..*//'`
+if test ! -r $cercs_cv_cercs_env_link_dir/$root.la; then
+if eval "test \"\${LIBTOOL+set}\" = set"; then
+arg="$cercs_cv_cercs_env_link_arg "`echo $cercs_cv_cercs_env_link_dir | sed "/./ s/^/-R/1"`
+fi
+fi
+if test `echo $arg | grep -c "cercs_env"` -eq 0; then
+new_flags="$new_flags $arg"
+else
+new_flags="$arg $new_flags"
+fi
+fi
+DT_LDFLAGS=$new_flags
+fi
+
+
+fi
+
+
+
+    if test -n "$cercs_cv_evpath_link_dir" -a -n "$cercs_cv_evpath_include_arg";then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_evpath_link_dir"
+	FP_LIBS="$FP_LIBS -levpath"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_evpath_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_evpath_include_arg"
+    else
+	echo "FLEXPATH couldn't find evpath -  Not building flexpath"
+	ac_flexpath_ok=no
+    fi
+    if test -n "$cercs_cv_ffs_link_dir" -a -n "$cercs_cv_ffs_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_ffs_link_dir"
+	FP_LIBS="$FP_LIBS -lffs"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_ffs_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_ffs_include_arg"
+    else
+	echo "FLEXPATH couldn't find ffs -  Not building flexpath"
+	ac_flexpath_ok=no
+    fi
+    if test -n "$cercs_cv_atl_link_dir" -a -n "$cercs_cv_atl_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_atl_link_dir"
+	FP_LIBS="$FP_LIBS -latl"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_atl_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_atl_include_arg"
+    else
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find atl -  Not building flexpath"
+    fi
+    if test -n "$cercs_cv_dill_link_dir" -a -n "$cercs_cv_dill_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_dill_link_dir"
+	FP_LIBS="$FP_LIBS -ldill"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_dill_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_dill_include_arg"
+    else
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find dill -  Not building flexpath"
+    fi
+    if test -n "$cercs_cv_gen_thread_link_dir" -a -n "$cercs_cv_gen_thread_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_gen_thread_link_dir"
+	FP_LIBS="$FP_LIBS -lgen_thread"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_gen_thread_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_gen_thread_include_arg"
+    else
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find gen_thread -  Not building flexpath"
+    fi
+    if test -n "$cercs_cv_cercs_env_link_dir" -a -n "$cercs_cv_cercs_env_include_arg"; then
+	FP_LDFLAGS="$FP_LDFLAGS -L$cercs_cv_cercs_env_link_dir"
+	FP_LIBS="$FP_LIBS -lcercs_env"
+	FP_CFLAGS="$FP_CFLAGS $cercs_cv_cercs_env_include_arg"
+	FP_CPPFLAGS="$FP_CPPFLAGS $cercs_cv_cercs_env_include_arg"
+    else
+	ac_flexpath_ok=no
+	echo "FLEXPATH couldn't find cercs_env -  Not building flexpath"
+    fi
+
+fi
+
+
+
+
+
+
+if test "x$ac_flexpath_ok" = "xyes"; then
+   HAVE_FLEXPATH=1
+   NO_FLEXPATH=0
+else
+   HAVE_FLEXPATH=0
+   NO_FLEXPATH=1
+fi
+ if test "x$ac_flexpath_ok" = "xyes"; then
+  HAVE_FLEXPATH_TRUE=
+  HAVE_FLEXPATH_FALSE='#'
+else
+  HAVE_FLEXPATH_TRUE='#'
+  HAVE_FLEXPATH_FALSE=
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define NO_FLEXPATH $NO_FLEXPATH
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_FLEXPATH $HAVE_FLEXPATH
+_ACEOF
+
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -31571,13 +34229,21 @@ else
 fi
 
 
+
 if test "x$enable_skel_timing" == "xyes"; then
 
 cat >>confdefs.h <<\_ACEOF
 #define SKEL_TIMING 1
 _ACEOF
 
-fi
+    SKEL_HAVE_ADIOS_TIMING=True
+
+        else
+    SKEL_HAVE_ADIOS_TIMING=False
+
+    fi
+
+
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -31777,6 +34443,24 @@ if test -z "${HAVE_NSSI_TRUE}"; then
     ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${MXML_LDFLAGS} ${NSSI_LDFLAGS}"
     ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${MXML_LIBS} ${NSSI_LIBS}"
 fi
+if test -z "${HAVE_FLEXPATH_TRUE}"; then
+    ADIOSLIB_CPPFLAGS="${ADIOSLIB_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSLIB_CFLAGS="${ADIOSLIB_CFLAGS} ${FP_CFLAGS}"
+    ADIOSLIB_LDFLAGS="${ADIOSLIB_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSLIB_LDADD="${ADIOSLIB_LDADD} ${FP_LIBS}"
+    ADIOSLIB_SEQ_CPPFLAGS="${ADIOSLIB_SEQ_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSLIB_SEQ_CFLAGS="${ADIOSLIB_SEQ_CFLAGS} ${FP_CFLAGS}"
+    ADIOSLIB_SEQ_LDFLAGS="${ADIOSLIB_SEQ_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSLIB_SEQ_LDADD="${ADIOSLIB_SEQ_LDADD} ${FP_LIBS}"
+    ADIOSREADLIB_CPPFLAGS="${ADIOSREADLIB_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSREADLIB_CFLAGS="${ADIOSREADLIB_CFLAGS} ${FP_CFLAGS}"
+    ADIOSREADLIB_LDFLAGS="${ADIOSREADLIB_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSREADLIB_LDADD="${ADIOSREADLIB_LDADD} ${FP_LIBS}"
+    ADIOSREADLIB_SEQ_CPPFLAGS="${ADIOSREADLIB_SEQ_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSREADLIB_SEQ_CFLAGS="${ADIOSREADLIB_SEQ_CFLAGS} ${FP_CFLAGS}"
+    ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${FP_LIBS}"
+fi
 if test -z "${HAVE_NC4PAR_TRUE}"; then
     ADIOSLIB_CPPFLAGS="${ADIOSLIB_CPPFLAGS} ${NC4PAR_CPPFLAGS}"
     ADIOSLIB_CFLAGS="${ADIOSLIB_CFLAGS} ${NC4PAR_CFLAGS}"
@@ -31861,6 +34545,24 @@ if test -z "${HAVE_CRAY_UGNI_TRUE}"; then
     ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${CRAY_UGNI_LDFLAGS}"
     ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${CRAY_UGNI_LIBS}"
 fi
+if test -z "${HAVE_DCMF_TRUE}"; then
+    ADIOSLIB_CPPFLAGS="${ADIOSLIB_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSLIB_CFLAGS="${ADIOSLIB_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSLIB_LDFLAGS="${ADIOSLIB_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSLIB_LDADD="${ADIOSLIB_LDADD} ${DCMF_LIBS}"
+    ADIOSLIB_SEQ_CPPFLAGS="${ADIOSLIB_SEQ_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSLIB_SEQ_CFLAGS="${ADIOSLIB_SEQ_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSLIB_SEQ_LDFLAGS="${ADIOSLIB_SEQ_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSLIB_SEQ_LDADD="${ADIOSLIB_SEQ_LDADD} ${DCMF_LIBS}"
+    ADIOSREADLIB_CPPFLAGS="${ADIOSREADLIB_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSREADLIB_CFLAGS="${ADIOSREADLIB_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSREADLIB_LDFLAGS="${ADIOSREADLIB_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSREADLIB_LDADD="${ADIOSREADLIB_LDADD} ${DCMF_LIBS}"
+    ADIOSREADLIB_SEQ_CPPFLAGS="${ADIOSREADLIB_SEQ_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSREADLIB_SEQ_CFLAGS="${ADIOSREADLIB_SEQ_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${DCMF_LIBS}"
+fi
 if test -z "${HAVE_NETCDF_TRUE}"; then
     ADIOSLIB_INT_CPPFLAGS="${ADIOSLIB_INT_CPPFLAGS} ${NETCDF_CPPFLAGS}"
     ADIOSLIB_INT_CFLAGS="${ADIOSLIB_INT_CFLAGS} ${NETCDF_CFLAGS}"
@@ -31976,7 +34678,7 @@ _ACEOF
 
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile tests/Makefile tests/C/Makefile tests/Fortran/Makefile tests/genarray/Makefile tests/bp_read/Makefile tests/suite/Makefile tests/suite/programs/Makefile utils/Makefile utils/skel/Makefile utils/skel/etc/Makefile utils/adios_lint/Makefile utils/gpp/Makefile utils/bpdump/Makefile utils/bp2h5/Makefile utils/bp2ncd/Makefile utils/bp2ascii/Makefile utils/bpsplit/Makefile utils/bpls/Makefile utils/bp2bp/Makefile examples/Makefile examples [...]
+ac_config_files="$ac_config_files Makefile src/Makefile tests/Makefile tests/C/Makefile tests/Fortran/Makefile tests/genarray/Makefile tests/bp_read/Makefile tests/suite/Makefile tests/suite/programs/Makefile utils/Makefile utils/skel/Makefile utils/skel/etc/Makefile utils/skel/src/Makefile utils/skel/lib/skel_have_adios_timing.py utils/adios_lint/Makefile utils/gpp/Makefile utils/bpdump/Makefile utils/bp2h5/Makefile utils/bp2ncd/Makefile utils/bp2ascii/Makefile utils/bpsplit/Makefile ut [...]
 
 
 cat >confcache <<\_ACEOF
@@ -32084,6 +34786,13 @@ else
   am__EXEEXT_FALSE=
 fi
 
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
   { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -32182,6 +34891,27 @@ $as_echo "$as_me: error: conditional \"HAVE_MXML\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${HAVE_DCMF_TRUE}" && test -z "${HAVE_DCMF_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DCMF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DCMF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_DCMF_TRUE}" && test -z "${HAVE_DCMF_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DCMF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DCMF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_DCMF_TRUE}" && test -z "${HAVE_DCMF_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DCMF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DCMF\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${HAVE_INFINIBAND_TRUE}" && test -z "${HAVE_INFINIBAND_FALSE}"; then
   { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_INFINIBAND\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -32497,6 +35227,41 @@ $as_echo "$as_me: error: conditional \"HAVE_DATASPACES\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${HAVE_DATASPACES_TRUE}" && test -z "${HAVE_DATASPACES_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DATASPACES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DATASPACES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_DIMES_TRUE}" && test -z "${HAVE_DIMES_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_DIMES_TRUE}" && test -z "${HAVE_DIMES_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_DIMES_TRUE}" && test -z "${HAVE_DIMES_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_DIMES_TRUE}" && test -z "${HAVE_DIMES_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_DIMES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${HAVE_DIMES_TRUE}" && test -z "${HAVE_DIMES_FALSE}"; then
   { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_DIMES\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -32567,6 +35332,13 @@ $as_echo "$as_me: error: conditional \"HAVE_LUSTRE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${HAVE_FLEXPATH_TRUE}" && test -z "${HAVE_FLEXPATH_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_FLEXPATH\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_FLEXPATH\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${RESEARCH_TRANSPORTS_TRUE}" && test -z "${RESEARCH_TRANSPORTS_FALSE}"; then
   { { $as_echo "$as_me:$LINENO: error: conditional \"RESEARCH_TRANSPORTS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -33588,6 +36360,8 @@ do
     "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
     "utils/skel/Makefile") CONFIG_FILES="$CONFIG_FILES utils/skel/Makefile" ;;
     "utils/skel/etc/Makefile") CONFIG_FILES="$CONFIG_FILES utils/skel/etc/Makefile" ;;
+    "utils/skel/src/Makefile") CONFIG_FILES="$CONFIG_FILES utils/skel/src/Makefile" ;;
+    "utils/skel/lib/skel_have_adios_timing.py") CONFIG_FILES="$CONFIG_FILES utils/skel/lib/skel_have_adios_timing.py" ;;
     "utils/adios_lint/Makefile") CONFIG_FILES="$CONFIG_FILES utils/adios_lint/Makefile" ;;
     "utils/gpp/Makefile") CONFIG_FILES="$CONFIG_FILES utils/gpp/Makefile" ;;
     "utils/bpdump/Makefile") CONFIG_FILES="$CONFIG_FILES utils/bpdump/Makefile" ;;
@@ -33601,6 +36375,9 @@ do
     "examples/C/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/Makefile" ;;
     "examples/C/scalars/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/scalars/Makefile" ;;
     "examples/C/arrays/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/arrays/Makefile" ;;
+    "examples/C/flexpath_arrays/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/flexpath_arrays/Makefile" ;;
+    "examples/C/flexpath_arrays/process_select/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/flexpath_arrays/process_select/Makefile" ;;
+    "examples/C/flexpath_arrays/global_range_select/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/flexpath_arrays/global_range_select/Makefile" ;;
     "examples/C/attributes/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/attributes/Makefile" ;;
     "examples/C/manual/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/manual/Makefile" ;;
     "examples/C/global-array/Makefile") CONFIG_FILES="$CONFIG_FILES examples/C/global-array/Makefile" ;;
@@ -35491,6 +38268,13 @@ elif test -z "${HAVE_CRAY_PMI_TRUE}" -a -z "${HAVE_CRAY_UGNI_TRUE}"; then
 #else
 #    echo "  - No Cray uGNI"
 
+elif test -z "${HAVE_DCMF_TRUE}"; then
+    echo "    - IBM DCMF";
+    echo "      - DCMF_CFLAGS = $DCMF_CFLAGS";
+    echo "      - DCMF_CPPFLAGS = $DCMF_CPPFLAGS";
+    echo "      - DCMF_LDFLAGS = $DCMF_LDFLAGS";
+    echo "      - DCMF_LIBS = $DCMF_LIBS";
+    echo
 else
     echo "    - No supported networking library found"
 fi
@@ -35584,5 +38368,16 @@ else
     echo "  - No NSSI to build NSSI transport method"
 fi
 
+if test -z "${HAVE_FLEXPATH_TRUE}"; then
+    echo "  - FLEXPATH";
+    echo "      - FP_CFLAGS = $FP_CFLAGS";
+    echo "      - FP_CPPFLAGS = $FP_CPPFLAGS";
+    echo "      - FP_LDFLAGS = $FP_LDFLAGS";
+    echo "      - FP_LIBS = $FP_LIBS";
+    echo
+else
+    echo "  - No FLEXPATH to build FLEXPATH transport method"
+fi
+
 echo "  - SVN version = ${SVNVERSION}"
 echo "  - Install path = ${prefix}"
diff --git a/configure.ac b/configure.ac
index ce4a32b..7e2cf6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,10 +1,13 @@
 
 AC_INIT(configure.ac)
 AC_CONFIG_AUX_DIR(config)
+AC_CONFIG_MACRO_DIR(config)
 AC_REVISION($Revision$)
 
 AC_CONFIG_HEADERS(config.h)
-AM_INIT_AUTOMAKE(adios,1.4.1)
+AM_INIT_AUTOMAKE(adios,1.5.0)
+
+AM_MAINTAINER_MODE([enable])
 
 AC_LANG(C)
 AC_C_STRINGIZE
@@ -58,6 +61,7 @@ AC_SEARCH_LIBS([nanosleep], [rt])
 AC_CHECK_FUNCS([nanosleep strncpy strerror gettimeofday])
 AC_PROG_MXML
 dnl AC_PROG_GENGETOPT
+AC_DCMF
 AC_INFINIBAND
 AC_PORTALS
 AC_CRAY_PMI
@@ -72,6 +76,7 @@ AC_PROG_DIMES
 AC_DMALLOC
 AC_LUSTRE
 AC_DATATAP
+AC_FLEXPATH
 
 AC_LANG(C)
 
@@ -89,9 +94,18 @@ AC_ARG_ENABLE(skel-timing,
         [Include the skel timing mechanism. By default this is not included])])
 AM_CONDITIONAL([SKEL_TIMING], [test "x$enable_skel_timing" == "xyes"])
 
+
 if test "x$enable_skel_timing" == "xyes"; then
     AC_DEFINE(SKEL_TIMING, 1, [Skel timing is enabled])
+    AC_SUBST(SKEL_HAVE_ADIOS_TIMING,True)
+    dnl The macro AM_SUBST_NOTMAKE does not work on Hopper with automake 10.1
+    dnl AM_SUBST_NOTMAKE(SKEL_HAVE_ADIOS_TIMING,true)
+else
+    AC_SUBST(SKEL_HAVE_ADIOS_TIMING,False)
+    dnl AM_SUBST_NOTMAKE(SKEL_HAVE_ADIOS_TIMING,false)
 fi
+AC_SUBST(SKEL_TIMING)
+
 
 AC_LANG(C)
 
@@ -237,6 +251,24 @@ if test -z "${HAVE_NSSI_TRUE}"; then
     ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${MXML_LDFLAGS} ${NSSI_LDFLAGS}"
     ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${MXML_LIBS} ${NSSI_LIBS}"
 fi
+if test -z "${HAVE_FLEXPATH_TRUE}"; then
+    ADIOSLIB_CPPFLAGS="${ADIOSLIB_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSLIB_CFLAGS="${ADIOSLIB_CFLAGS} ${FP_CFLAGS}"
+    ADIOSLIB_LDFLAGS="${ADIOSLIB_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSLIB_LDADD="${ADIOSLIB_LDADD} ${FP_LIBS}"
+    ADIOSLIB_SEQ_CPPFLAGS="${ADIOSLIB_SEQ_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSLIB_SEQ_CFLAGS="${ADIOSLIB_SEQ_CFLAGS} ${FP_CFLAGS}"
+    ADIOSLIB_SEQ_LDFLAGS="${ADIOSLIB_SEQ_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSLIB_SEQ_LDADD="${ADIOSLIB_SEQ_LDADD} ${FP_LIBS}"
+    ADIOSREADLIB_CPPFLAGS="${ADIOSREADLIB_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSREADLIB_CFLAGS="${ADIOSREADLIB_CFLAGS} ${FP_CFLAGS}"
+    ADIOSREADLIB_LDFLAGS="${ADIOSREADLIB_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSREADLIB_LDADD="${ADIOSREADLIB_LDADD} ${FP_LIBS}"
+    ADIOSREADLIB_SEQ_CPPFLAGS="${ADIOSREADLIB_SEQ_CPPFLAGS} ${FP_CPPFLAGS}"
+    ADIOSREADLIB_SEQ_CFLAGS="${ADIOSREADLIB_SEQ_CFLAGS} ${FP_CFLAGS}"
+    ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${FP_LDFLAGS}"
+    ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${FP_LIBS}"
+fi
 if test -z "${HAVE_NC4PAR_TRUE}"; then
     ADIOSLIB_CPPFLAGS="${ADIOSLIB_CPPFLAGS} ${NC4PAR_CPPFLAGS}"
     ADIOSLIB_CFLAGS="${ADIOSLIB_CFLAGS} ${NC4PAR_CFLAGS}"
@@ -321,6 +353,24 @@ if test -z "${HAVE_CRAY_UGNI_TRUE}"; then
     ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${CRAY_UGNI_LDFLAGS}"
     ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${CRAY_UGNI_LIBS}"
 fi
+if test -z "${HAVE_DCMF_TRUE}"; then
+    ADIOSLIB_CPPFLAGS="${ADIOSLIB_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSLIB_CFLAGS="${ADIOSLIB_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSLIB_LDFLAGS="${ADIOSLIB_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSLIB_LDADD="${ADIOSLIB_LDADD} ${DCMF_LIBS}"
+    ADIOSLIB_SEQ_CPPFLAGS="${ADIOSLIB_SEQ_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSLIB_SEQ_CFLAGS="${ADIOSLIB_SEQ_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSLIB_SEQ_LDFLAGS="${ADIOSLIB_SEQ_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSLIB_SEQ_LDADD="${ADIOSLIB_SEQ_LDADD} ${DCMF_LIBS}"
+    ADIOSREADLIB_CPPFLAGS="${ADIOSREADLIB_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSREADLIB_CFLAGS="${ADIOSREADLIB_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSREADLIB_LDFLAGS="${ADIOSREADLIB_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSREADLIB_LDADD="${ADIOSREADLIB_LDADD} ${DCMF_LIBS}"
+    ADIOSREADLIB_SEQ_CPPFLAGS="${ADIOSREADLIB_SEQ_CPPFLAGS} ${DCMF_CPPFLAGS}"
+    ADIOSREADLIB_SEQ_CFLAGS="${ADIOSREADLIB_SEQ_CFLAGS} ${DCMF_CFLAGS}"
+    ADIOSREADLIB_SEQ_LDFLAGS="${ADIOSREADLIB_SEQ_LDFLAGS} ${DCMF_LDFLAGS}"
+    ADIOSREADLIB_SEQ_LDADD="${ADIOSREADLIB_SEQ_LDADD} ${DCMF_LIBS}"
+fi
 if test -z "${HAVE_NETCDF_TRUE}"; then
     ADIOSLIB_INT_CPPFLAGS="${ADIOSLIB_INT_CPPFLAGS} ${NETCDF_CPPFLAGS}"
     ADIOSLIB_INT_CFLAGS="${ADIOSLIB_INT_CFLAGS} ${NETCDF_CFLAGS}"
@@ -430,6 +480,8 @@ AC_CONFIG_FILES([Makefile
                  utils/Makefile
                  utils/skel/Makefile
                  utils/skel/etc/Makefile
+                 utils/skel/src/Makefile
+                 utils/skel/lib/skel_have_adios_timing.py
                  utils/adios_lint/Makefile
                  utils/gpp/Makefile
                  utils/bpdump/Makefile
@@ -443,6 +495,9 @@ AC_CONFIG_FILES([Makefile
                  examples/C/Makefile
                  examples/C/scalars/Makefile
                  examples/C/arrays/Makefile
+                 examples/C/flexpath_arrays/Makefile
+                 examples/C/flexpath_arrays/process_select/Makefile
+                 examples/C/flexpath_arrays/global_range_select/Makefile
                  examples/C/attributes/Makefile
                  examples/C/manual/Makefile
                  examples/C/global-array/Makefile
@@ -551,6 +606,13 @@ elif test -z "${HAVE_CRAY_PMI_TRUE}" -a -z "${HAVE_CRAY_UGNI_TRUE}"; then
 #else
 #    echo "  - No Cray uGNI"
 
+elif test -z "${HAVE_DCMF_TRUE}"; then
+    echo "    - IBM DCMF";
+    echo "      - DCMF_CFLAGS = $DCMF_CFLAGS";
+    echo "      - DCMF_CPPFLAGS = $DCMF_CPPFLAGS";
+    echo "      - DCMF_LDFLAGS = $DCMF_LDFLAGS";
+    echo "      - DCMF_LIBS = $DCMF_LIBS";
+    echo
 else 
     echo "    - No supported networking library found"
 fi
@@ -654,5 +716,16 @@ else
     echo "  - No NSSI to build NSSI transport method"
 fi
 
+if test -z "${HAVE_FLEXPATH_TRUE}"; then
+    echo "  - FLEXPATH";
+    echo "      - FP_CFLAGS = $FP_CFLAGS";
+    echo "      - FP_CPPFLAGS = $FP_CPPFLAGS";
+    echo "      - FP_LDFLAGS = $FP_LDFLAGS";
+    echo "      - FP_LIBS = $FP_LIBS";
+    echo
+else
+    echo "  - No FLEXPATH to build FLEXPATH transport method"
+fi
+
 echo "  - SVN version = ${SVNVERSION}"
 echo "  - Install path = ${prefix}"
diff --git a/examples/C/CMakeLists.txt b/examples/C/CMakeLists.txt
new file mode 100644
index 0000000..ce8f760
--- /dev/null
+++ b/examples/C/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_subdirectory(scalars)
+add_subdirectory(arrays)
+add_subdirectory(attributes)
+add_subdirectory(manual)
+add_subdirectory(global-array)
+add_subdirectory(global-array-time)
+add_subdirectory(read_all)
+add_subdirectory(stat)
+add_subdirectory(schema)
+#SUBDIRS=scalars arrays attributes manual global-array global-array-time read_all stat schema
diff --git a/examples/C/Makefile.am b/examples/C/Makefile.am
index 70dd81d..fe193d0 100644
--- a/examples/C/Makefile.am
+++ b/examples/C/Makefile.am
@@ -1 +1 @@
-SUBDIRS=scalars arrays attributes manual global-array global-array-time read_all stat schema
+SUBDIRS=scalars arrays attributes manual global-array global-array-time read_all stat schema flexpath_arrays
diff --git a/examples/C/Makefile.in b/examples/C/Makefile.in
index e731631..0760d56 100644
--- a/examples/C/Makefile.in
+++ b/examples/C/Makefile.in
@@ -40,8 +40,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -152,6 +154,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -174,6 +180,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -199,6 +208,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -255,6 +265,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -311,11 +323,11 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = scalars arrays attributes manual global-array global-array-time read_all stat schema
+SUBDIRS = scalars arrays attributes manual global-array global-array-time read_all stat schema flexpath_arrays
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -340,9 +352,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/arrays/CMakeLists.txt b/examples/C/arrays/CMakeLists.txt
new file mode 100644
index 0000000..92e698d
--- /dev/null
+++ b/examples/C/arrays/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/arrays)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/arrays)
+
+add_executable(arrays_write arrays_write.c)
+target_link_libraries(arrays_write adios ${ADIOSLIB_LDADD})
+
+add_executable(arrays_read arrays_read.c)
+target_link_libraries(arrays_read adiosread ${ADIOSREADLIB_LDADD})
+
+#install(FILES arrays.xml gwrite_arrays.ch gread_arrays.ch job.pbs  DESTINATION ${PROJECT_BINARY_DIR}/examples/C/arrays)
+
diff --git a/examples/C/arrays/Makefile.am b/examples/C/arrays/Makefile.am
index 5040b64..a8ca3db 100644
--- a/examples/C/arrays/Makefile.am
+++ b/examples/C/arrays/Makefile.am
@@ -9,8 +9,8 @@ arrays_write_SOURCES = arrays_write.c
 arrays_write_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 arrays_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 arrays_read_SOURCES = arrays_read.c
-arrays_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
-arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+arrays_read_LDADD = $(top_builddir)/src/libadiosread.a $(ADIOSREADLIB_LDADD)
+arrays_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/C/arrays/Makefile.in b/examples/C/arrays/Makefile.in
index 1474f39..1f08fcf 100644
--- a/examples/C/arrays/Makefile.in
+++ b/examples/C/arrays/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -67,7 +69,7 @@ PROGRAMS = $(noinst_PROGRAMS)
 am_arrays_read_OBJECTS = arrays_read.$(OBJEXT)
 arrays_read_OBJECTS = $(am_arrays_read_OBJECTS)
 am__DEPENDENCIES_1 =
-arrays_read_DEPENDENCIES = $(top_builddir)/src/libadios.a \
+arrays_read_DEPENDENCIES = $(top_builddir)/src/libadiosread.a \
 	$(am__DEPENDENCIES_1)
 arrays_read_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -144,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -166,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -191,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -247,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -310,15 +322,15 @@ arrays_write_SOURCES = arrays_write.c
 arrays_write_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 arrays_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 arrays_read_SOURCES = arrays_read.c
-arrays_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
-arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+arrays_read_LDADD = $(top_builddir)/src/libadiosread.a $(ADIOSREADLIB_LDADD)
+arrays_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = arrays.xml gwrite_arrays.ch gread_arrays.ch job.pbs
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -343,9 +355,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/arrays/arrays_read.c b/examples/C/arrays/arrays_read.c
index 46c212f..a49dab4 100644
--- a/examples/C/arrays/arrays_read.c
+++ b/examples/C/arrays/arrays_read.c
@@ -16,7 +16,7 @@
 #include <stdint.h>
 #include <string.h>
 #include "mpi.h"
-#include "adios.h"
+#include "adios_read.h"
 
 int main (int argc, char ** argv) 
 {
@@ -26,27 +26,24 @@ int main (int argc, char ** argv)
     double      *t;
     int         *p;
     MPI_Comm    comm = MPI_COMM_WORLD;
-
-    int         adios_err;
-    uint64_t    adios_groupsize, adios_totalsize;
-    int64_t     adios_handle, adios_buf_size;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+    ADIOS_SELECTION * sel;
 
     MPI_Init (&argc, &argv);
     MPI_Comm_rank (comm, &rank);
 
+    adios_read_init_method (method, comm, "verbose=3");
 
     strcpy (filename, "arrays.bp");
-    adios_init ("arrays.xml");
+    ADIOS_FILE * f = adios_read_open (filename, method, comm, ADIOS_LOCKMODE_NONE, 0);
+
+    /* Specify a selection that points to a specific writer's block */
+    sel = adios_selection_writeblock (rank);
 
-    /* First read in the scalars to calculate the size of the arrays */
-    adios_open (&adios_handle, "arrays", filename, "r", &comm);
-    adios_groupsize = 0;
-    adios_group_size (adios_handle, adios_groupsize, &adios_totalsize);
-    adios_buf_size = 4;
-    adios_read (adios_handle, "NX", &NX, adios_buf_size);
-    adios_read (adios_handle, "NY", &NY, adios_buf_size);
-    adios_close (adios_handle);
-    /* Note that we have to close to perform the reading of the variables above */
+    /* First get the scalars to calculate the size of the arrays */
+    adios_schedule_read (f, sel, "NX", 0, 1, &NX);
+    adios_schedule_read (f, sel, "NY", 0, 1, &NY);
+    adios_perform_reads (f, 1);
 
     printf("rank=%d: NX=%d NY=%d\n", rank, NX, NY);
 
@@ -55,14 +52,11 @@ int main (int argc, char ** argv)
     p = (int *) malloc (NX*sizeof(int));
 
     /* Read the arrays */
-    adios_open (&adios_handle, "arrays", filename, "r", &comm);
-    adios_group_size (adios_handle, adios_groupsize, &adios_totalsize);
-    adios_buf_size = 8 * (NX) * (NY);
-    adios_read (adios_handle, "var_double_2Darray", t, adios_buf_size);
-    adios_buf_size = 4 * (NX);
-    adios_read (adios_handle, "var_int_1Darray", p, adios_buf_size);
-    adios_close (adios_handle);
+    adios_schedule_read (f, sel, "var_double_2Darray", 0, 1, t);
+    adios_schedule_read (f, sel, "var_int_1Darray", 0, 1, p);
+    adios_perform_reads (f, 1);
 
+    /* At this point, we have the data in memory */
     printf("rank=%d: p = [%d", rank, p[0]);
     for (i = 1; i < NX; i++)
         printf(", %d", p[i]);
@@ -73,10 +67,12 @@ int main (int argc, char ** argv)
         printf(", %6.2f", t[5*NY+j]);
     printf("]\n");
 
-    MPI_Barrier (comm);
-
-    adios_finalize (rank);
+    free (t);
+    free (p);
 
+    adios_read_close (f);
+    MPI_Barrier (comm);
+    adios_read_finalize_method (method);
     MPI_Finalize ();
 
     return 0;
diff --git a/examples/C/arrays/arrays_write.c b/examples/C/arrays/arrays_write.c
index 0b7681c..64d523c 100644
--- a/examples/C/arrays/arrays_write.c
+++ b/examples/C/arrays/arrays_write.c
@@ -39,8 +39,8 @@ int main (int argc, char ** argv)
         p[i] = rank * NX + i;
 
     strcpy (filename, "arrays.bp");
-    adios_init ("arrays.xml");
-    adios_open (&adios_handle, "arrays", filename, "w", &comm);
+    adios_init ("arrays.xml", comm);
+    adios_open (&adios_handle, "arrays", filename, "w", comm);
 #include "gwrite_arrays.ch"
     adios_close (adios_handle);
 
diff --git a/examples/C/attributes/CMakeLists.txt b/examples/C/attributes/CMakeLists.txt
new file mode 100644
index 0000000..0b5edfb
--- /dev/null
+++ b/examples/C/attributes/CMakeLists.txt
@@ -0,0 +1,14 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/attributes)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/attributes)
+
+add_executable(attributes_write attributes_write.c)
+target_link_libraries(attributes_write adios ${ADIOSLIB_LDADD})
+
+add_executable(attributes_read attributes_read.c)
+target_link_libraries(attributes_read adiosread ${ADIOSREADLIB_LDADD})
+#set_target_properties(attributes_read PROPERTIES COMPILE_FLAGS "-DADIOS_USE_READ_API_1")
+
+#install(FILES attributes.xml gwrite_temperature.ch gread_temperature.ch DESTINATION ${PROJECT_BINARY_DIR}/examples/C/attributes)
+
diff --git a/examples/C/attributes/Makefile.am b/examples/C/attributes/Makefile.am
index 69b5ebc..322fa0f 100644
--- a/examples/C/attributes/Makefile.am
+++ b/examples/C/attributes/Makefile.am
@@ -10,10 +10,9 @@ attributes_write_LDADD = $(top_builddir)/src/libadios.a
 attributes_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 attributes_write_LDADD += $(ADIOSLIB_LDADD)
 attributes_read_SOURCES = attributes_read.c
-attributes_read_CPPFLAGS = -DADIOS_USE_READ_API_1
 attributes_read_LDADD = $(top_builddir)/src/libadiosread.a
-attributes_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-attributes_read_LDADD += $(ADIOSLIB_LDADD)
+attributes_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+attributes_read_LDADD += $(ADIOSREADLIB_LDADD)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/C/attributes/Makefile.in b/examples/C/attributes/Makefile.in
index 5021b5c..709e850 100644
--- a/examples/C/attributes/Makefile.in
+++ b/examples/C/attributes/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -64,8 +66,7 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
-am_attributes_read_OBJECTS =  \
-	attributes_read-attributes_read.$(OBJEXT)
+am_attributes_read_OBJECTS = attributes_read.$(OBJEXT)
 attributes_read_OBJECTS = $(am_attributes_read_OBJECTS)
 am__DEPENDENCIES_1 =
 attributes_read_DEPENDENCIES = $(top_builddir)/src/libadiosread.a \
@@ -145,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -167,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -192,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -248,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -312,17 +323,16 @@ attributes_write_LDADD = $(top_builddir)/src/libadios.a \
 	$(ADIOSLIB_LDADD)
 attributes_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 attributes_read_SOURCES = attributes_read.c
-attributes_read_CPPFLAGS = -DADIOS_USE_READ_API_1
 attributes_read_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-attributes_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+attributes_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = attributes.xml gwrite_temperature.ch gread_temperature.ch
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -347,9 +357,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
@@ -383,12 +393,6 @@ distclean-compile:
 .c.lo:
 	$(LTCOMPILE) -c -o $@ $<
 
-attributes_read-attributes_read.o: attributes_read.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(attributes_read_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o attributes_read-attributes_read.o `test -f 'attributes_read.c' || echo '$(srcdir)/'`attributes_read.c
-
-attributes_read-attributes_read.obj: attributes_read.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(attributes_read_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o attributes_read-attributes_read.obj `if test -f 'attributes_read.c'; then $(CYGPATH_W) 'attributes_read.c'; else $(CYGPATH_W) '$(srcdir)/attributes_read.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/examples/C/attributes/attributes_read.c b/examples/C/attributes/attributes_read.c
index 38e0ebe..6d0c503 100644
--- a/examples/C/attributes/attributes_read.c
+++ b/examples/C/attributes/attributes_read.c
@@ -24,6 +24,7 @@ int main (int argc, char ** argv)
     double      t[NX], mean = 0;
     MPI_Comm    comm = MPI_COMM_WORLD;
     enum ADIOS_DATATYPES attr_type;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
     int attr_size;
     void * data = NULL;
 
@@ -31,26 +32,20 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    ADIOS_FILE * f = adios_fopen ("attributes.bp", comm);
+    adios_read_init_method (method, comm, "verbose=3");
+    ADIOS_FILE * f = adios_read_open ("attributes.bp", method, comm, ADIOS_LOCKMODE_NONE, 0.0);
     if (f == NULL)
     {
         printf ("%s\n", adios_errmsg());
         return -1;
     }
 
-    ADIOS_GROUP * g = adios_gopen (f, "temperature");
-    if (g == NULL)
+    for (i = 0; i < f->nattrs; i++)
     {
-        printf ("%s\n", adios_errmsg());
-        return -1;
-    }
 
-    for (i = 0; i < g->attrs_count; i++)
-    {
+        adios_get_attr (f, f->attr_namelist[i], &attr_type, &attr_size, &data);
 
-        adios_get_attr (g, g->attr_namelist[i], &attr_type, &attr_size, &data);
-
-        printf ("rank %d: attr: %s %s = ", rank, adios_type_to_string(attr_type), g->attr_namelist[i]);
+        printf ("rank %d: attr: %s %s = ", rank, adios_type_to_string(attr_type), f->attr_namelist[i]);
         switch (attr_type)  
         {
             case adios_integer:
@@ -69,11 +64,9 @@ int main (int argc, char ** argv)
         data = 0;
     }
 
-    adios_gclose (g);
-    adios_fclose (f);
-
+    adios_read_close (f);
     MPI_Barrier (comm);
-
+    adios_read_finalize_method (ADIOS_READ_METHOD_BP);
     MPI_Finalize ();
     return 0;
 }
diff --git a/examples/C/attributes/attributes_write.c b/examples/C/attributes/attributes_write.c
index 3cd69d3..1acd293 100644
--- a/examples/C/attributes/attributes_write.c
+++ b/examples/C/attributes/attributes_write.c
@@ -39,9 +39,9 @@ int main (int argc, char ** argv)
 
     strcpy (filename, "attributes.bp");
 
-    adios_init ("attributes.xml");
+    adios_init ("attributes.xml", comm);
 
-    adios_open (&adios_handle, "temperature", filename, "w", &comm);
+    adios_open (&adios_handle, "temperature", filename, "w", comm);
 #include "gwrite_temperature.ch"
     adios_close (adios_handle);
 
diff --git a/examples/C/flexpath_arrays/Makefile.am b/examples/C/flexpath_arrays/Makefile.am
new file mode 100644
index 0000000..488506a
--- /dev/null
+++ b/examples/C/flexpath_arrays/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS=process_select global_range_select
diff --git a/examples/Fortran/Makefile.in b/examples/C/flexpath_arrays/Makefile.in
similarity index 96%
copy from examples/Fortran/Makefile.in
copy to examples/C/flexpath_arrays/Makefile.in
index acca0a6..6133db8 100644
--- a/examples/Fortran/Makefile.in
+++ b/examples/C/flexpath_arrays/Makefile.in
@@ -33,15 +33,17 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-subdir = examples/Fortran
+subdir = examples/C/flexpath_arrays
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -152,6 +154,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -174,6 +180,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -199,6 +208,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -255,6 +265,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -311,11 +323,11 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = scalars arrays global-array global-array-time 
+SUBDIRS = process_select global_range_select
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -324,9 +336,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Fortran/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/C/flexpath_arrays/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples/Fortran/Makefile
+	  $(AUTOMAKE) --gnu examples/C/flexpath_arrays/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -340,9 +352,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
@@ -658,7 +670,6 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
-#time-index
 
 # 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/examples/C/arrays/Makefile.am b/examples/C/flexpath_arrays/global_range_select/Makefile.am
similarity index 88%
copy from examples/C/arrays/Makefile.am
copy to examples/C/flexpath_arrays/global_range_select/Makefile.am
index 5040b64..aacc040 100644
--- a/examples/C/arrays/Makefile.am
+++ b/examples/C/flexpath_arrays/global_range_select/Makefile.am
@@ -14,4 +14,4 @@ arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
-EXTRA_DIST = arrays.xml gwrite_arrays.ch gread_arrays.ch job.pbs
+EXTRA_DIST = arrays.xml 
diff --git a/examples/C/arrays/Makefile.in b/examples/C/flexpath_arrays/global_range_select/Makefile.in
similarity index 95%
copy from examples/C/arrays/Makefile.in
copy to examples/C/flexpath_arrays/global_range_select/Makefile.in
index 1474f39..a34322f 100644
--- a/examples/C/arrays/Makefile.in
+++ b/examples/C/flexpath_arrays/global_range_select/Makefile.in
@@ -35,15 +35,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 noinst_PROGRAMS = arrays_write$(EXEEXT) arrays_read$(EXEEXT)
-subdir = examples/C/arrays
+subdir = examples/C/flexpath_arrays/global_range_select
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -144,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -166,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -191,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -247,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -313,12 +325,12 @@ arrays_read_SOURCES = arrays_read.c
 arrays_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 CLEANFILES = *.bp
-EXTRA_DIST = arrays.xml gwrite_arrays.ch gread_arrays.ch job.pbs
+EXTRA_DIST = arrays.xml 
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -327,9 +339,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/C/arrays/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/C/flexpath_arrays/global_range_select/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples/C/arrays/Makefile
+	  $(AUTOMAKE) --gnu examples/C/flexpath_arrays/global_range_select/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -343,9 +355,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/flexpath_arrays/global_range_select/arrays.xml b/examples/C/flexpath_arrays/global_range_select/arrays.xml
new file mode 100644
index 0000000..33cec61
--- /dev/null
+++ b/examples/C/flexpath_arrays/global_range_select/arrays.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<adios-config host-language="C">
+<adios-group name="temperature" coordination-communicator="comm" stats="On">
+    <var name="NX" type="integer"/>
+    <var name="NY" type="integer"/>
+    <var name="size" type="integer"/>
+    <var name="rank" type="integer"/>
+    <var name="test_scalar" type="integer"/>
+    <global-bounds dimensions="size,NX" offsets="rank,0">
+        <var name="var_2d_array" gwrite="t" type="double" dimensions="NY,NX"/>
+    </global-bounds>
+</adios-group>
+
+<method group="temperature"  method="FLEXPATH">QUEUE_SIZE=4;</method>
+
+<buffer size-MB="20" allocate-time="now"/>
+
+</adios-config>
+
diff --git a/examples/C/flexpath_arrays/global_range_select/arrays_read.c b/examples/C/flexpath_arrays/global_range_select/arrays_read.c
new file mode 100644
index 0000000..f277190
--- /dev/null
+++ b/examples/C/flexpath_arrays/global_range_select/arrays_read.c
@@ -0,0 +1,117 @@
+/* 
+ * ADIOS is freely available under the terms of the BSD license described
+ * in the COPYING file in the top level directory of this source distribution.
+ *
+ * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
+ */
+
+/*************************************************************/
+/*          Example of reading arrays in ADIOS               */
+/*    which were written from the same number of processors  */
+/*                                                           */
+/*        Similar example is manual/2_adios_read.c           */
+/*************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include "mpi.h"
+#include "adios.h"
+#include "public/adios_read.h"
+
+int main (int argc, char ** argv) 
+{
+    char        filename [256];
+    int         rank, size, i, j;
+    int         NX, NY; 
+    double      *t;
+    MPI_Comm    comm = MPI_COMM_WORLD;
+
+    int         adios_err;
+    int64_t     adios_handle, adios_buf_size;
+
+    MPI_Init (&argc, &argv);
+    MPI_Comm_rank (comm, &rank);
+
+    adios_read_init_method(ADIOS_READ_METHOD_FLEXPATH, comm, "");
+
+    ADIOS_SELECTION global_range_select;
+    //if(rank == 0){
+    global_range_select.type=ADIOS_SELECTION_BOUNDINGBOX;
+    global_range_select.u.bb.start = malloc(sizeof(uint64_t)*2);
+    global_range_select.u.bb.count = malloc(sizeof(uint64_t)*2);
+    (global_range_select.u.bb.start)[0] = rank;
+    (global_range_select.u.bb.count)[0] = 1;
+    (global_range_select.u.bb.start)[1] = 0;
+    (global_range_select.u.bb.count)[1] = 40;
+    global_range_select.u.bb.ndim = 2;
+
+    ADIOS_SELECTION scalar_block_select;
+    scalar_block_select.type = ADIOS_SELECTION_WRITEBLOCK;
+    scalar_block_select.u.block.index = rank;
+    //fprintf(stderr, "app got here\n");
+    /* schedule_read of a scalar. */    
+    int test_scalar = -1;
+    ADIOS_FILE* afile = adios_read_open("arrays", 
+                                         ADIOS_READ_METHOD_FLEXPATH, 
+                                         comm,
+                                         ADIOS_LOCKMODE_NONE, 0.0);
+    
+    int ii = 0;
+    while(adios_errno != err_end_of_stream){
+        
+        /* get a bounding box - rank 0 for now*/
+        ADIOS_VARINFO* nx_info = adios_inq_var( afile, "NX");
+        ADIOS_VARINFO* ny_info = adios_inq_var( afile, "NY");
+
+        if(nx_info->value) {
+            NX = *((int *)nx_info->value);
+        }
+        if(ny_info->value){
+            NY= *((int*)ny_info->value);
+        }
+    
+        //printf("\trank=%d: NX=%d\n", rank, NX);
+        //printf("\trank=%d: NY=%d\n", rank, NY);
+    
+        /* Allocate space for the arrays */
+        int nelem = 40;
+        int arr_size = sizeof(double) * nelem;
+        t = (double *) malloc (arr_size);
+        memset(t, 0, arr_size);
+        //fprintf(stderr, "t %p\n", t);
+      
+        /* Read the arrays */        
+        adios_schedule_read (afile, 
+                             &global_range_select, 
+                             "var_2d_array", 
+                             0, 1, t);
+	adios_schedule_read (afile,
+			     &scalar_block_select,
+			     "test_scalar",
+			     0, 1, &test_scalar);
+
+        adios_perform_reads (afile, 1);                
+    
+        //sleep(20);
+    
+        printf("Rank=%d: test_scalar: %d step: %d, t[0,5+x] = [%6.2f", rank, test_scalar, ii, t[0]);
+        for(j=0; j<nelem; j++) {
+            printf(", %6.2f", t[j]);
+        }
+        printf("]\n");
+        adios_release_step(afile);
+        adios_advance_step(afile, 0, 30);
+        ii++;
+        //MPI_Barrier (comm);
+        //sleep(1);
+    }
+    //
+    adios_read_close(afile);
+
+    adios_read_finalize_method(ADIOS_READ_METHOD_FLEXPATH);
+
+    //MPI_Finalize ();
+
+    return 0;
+}
diff --git a/examples/C/flexpath_arrays/global_range_select/arrays_write.c b/examples/C/flexpath_arrays/global_range_select/arrays_write.c
new file mode 100644
index 0000000..f7455b4
--- /dev/null
+++ b/examples/C/flexpath_arrays/global_range_select/arrays_write.c
@@ -0,0 +1,58 @@
+/* 
+ * ADIOS is freely available under the terms of the BSD license described
+ * in the COPYING file in the top level directory of this source distribution.
+ *
+ * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "mpi.h"
+#include "adios.h"
+
+/*************************************************************/
+/*          Example of writing arrays in ADIOS               */
+/*                                                           */
+/*        Similar example is manual/2_adios_write.c          */
+/*************************************************************/
+int main (int argc, char ** argv) 
+{
+    char        filename [256];
+    int         rank, size, i;
+    int         NX = 10000; 
+    int         NY = 1;
+    double      t[NX];
+    MPI_Comm    comm = MPI_COMM_WORLD;
+
+    int64_t     adios_handle;
+
+    MPI_Init (&argc, &argv);
+    MPI_Comm_rank (comm, &rank);
+    MPI_Comm_size (comm, &size);
+    
+    strcpy (filename, "arrays");
+    adios_init ("arrays.xml", comm);
+    
+    int test_scalar = rank * 1000;
+    int ii;
+    for(ii = 0; ii<200; ii++){
+      for (i = 0; i < NX; i++)
+        t[i] = rank * NX + i*ii;
+    
+      adios_open (&adios_handle, "temperature", filename, "w", comm);
+    
+      adios_write (adios_handle, "NX", &NX);
+      adios_write (adios_handle, "NY", &NY);
+      adios_write (adios_handle, "test_scalar", &test_scalar);
+      adios_write (adios_handle, "size", &size);
+      adios_write (adios_handle, "rank", &rank);
+      adios_write (adios_handle, "var_2d_array", t);
+    
+      adios_close (adios_handle);
+      fprintf(stderr, "Rank=%d commited write %d\n", rank, ii);
+    }
+    adios_finalize (rank);
+
+    //MPI_Finalize ();
+    return 0;
+}
diff --git a/examples/C/arrays/Makefile.am b/examples/C/flexpath_arrays/process_select/Makefile.am
similarity index 85%
copy from examples/C/arrays/Makefile.am
copy to examples/C/flexpath_arrays/process_select/Makefile.am
index 5040b64..8c2c3f9 100644
--- a/examples/C/arrays/Makefile.am
+++ b/examples/C/flexpath_arrays/process_select/Makefile.am
@@ -12,6 +12,6 @@ arrays_read_SOURCES = arrays_read.c
 arrays_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 
-CLEANFILES = *.bp
+CLEANFILES = *.txt
 CC=$(MPICC)
-EXTRA_DIST = arrays.xml gwrite_arrays.ch gread_arrays.ch job.pbs
+EXTRA_DIST = arrays.xml job.pbs
diff --git a/examples/C/arrays/Makefile.in b/examples/C/flexpath_arrays/process_select/Makefile.in
similarity index 95%
copy from examples/C/arrays/Makefile.in
copy to examples/C/flexpath_arrays/process_select/Makefile.in
index 1474f39..eae4185 100644
--- a/examples/C/arrays/Makefile.in
+++ b/examples/C/flexpath_arrays/process_select/Makefile.in
@@ -35,15 +35,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 noinst_PROGRAMS = arrays_write$(EXEEXT) arrays_read$(EXEEXT)
-subdir = examples/C/arrays
+subdir = examples/C/flexpath_arrays/process_select
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -144,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -166,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -191,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -247,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -312,13 +324,13 @@ arrays_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 arrays_read_SOURCES = arrays_read.c
 arrays_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-CLEANFILES = *.bp
-EXTRA_DIST = arrays.xml gwrite_arrays.ch gread_arrays.ch job.pbs
+CLEANFILES = *.txt
+EXTRA_DIST = arrays.xml job.pbs
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -327,9 +339,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/C/arrays/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/C/flexpath_arrays/process_select/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples/C/arrays/Makefile
+	  $(AUTOMAKE) --gnu examples/C/flexpath_arrays/process_select/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -343,9 +355,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/flexpath_arrays/process_select/arrays.xml b/examples/C/flexpath_arrays/process_select/arrays.xml
new file mode 100644
index 0000000..ce25785
--- /dev/null
+++ b/examples/C/flexpath_arrays/process_select/arrays.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<adios-config host-language="C">
+
+    <adios-group name="arrays" coordination-communicator="comm">
+        <var name="NX" type="integer"/>
+        <var name="NY" type="integer"/>
+        <var name="var_double_2Darray"  gwrite="t"  type="double"  dimensions="NX,NY"/>
+        <var name="var_int_1Darray"     gwrite="p"  type="integer" dimensions="NX"/>
+    </adios-group>
+
+<method group="arrays"  method="FLEXPATH">QUEUE_SIZE=10;</method>
+
+<buffer size-MB="20" allocate-time="now"/>
+
+</adios-config>
+
diff --git a/examples/C/flexpath_arrays/process_select/arrays_read.c b/examples/C/flexpath_arrays/process_select/arrays_read.c
new file mode 100644
index 0000000..c8bf8bb
--- /dev/null
+++ b/examples/C/flexpath_arrays/process_select/arrays_read.c
@@ -0,0 +1,95 @@
+/* 
+ * ADIOS is freely available under the terms of the BSD license described
+ * in the COPYING file in the top level directory of this source distribution.
+ *
+ * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
+ */
+
+/*************************************************************/
+/*          Example of reading arrays in ADIOS               */
+/*    which were written from the same number of processors  */
+/*                                                           */
+/*        Similar example is manual/2_adios_read.c           */
+/*************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include "mpi.h"
+#include "adios.h"
+#include "public/adios_read.h"
+
+int main (int argc, char ** argv) 
+{
+    /* application data structures */
+    char        filename [256];
+    int         rank, size, i, j;
+    int         NX, NY; 
+    double      *t;
+    int         *p;
+
+    /* MPI and ADIOS data structures */
+    MPI_Comm    comm = MPI_COMM_WORLD;
+    int         adios_err;
+    int64_t     adios_handle, adios_buf_size;
+
+    /* MPI and ADIOS setup */
+    MPI_Init (&argc, &argv);
+    MPI_Comm_rank (comm, &rank);
+    adios_read_init_method(ADIOS_READ_METHOD_FLEXPATH, comm, "");
+
+    /* First read in the scalars to calculate the size of the arrays */
+
+    /* get everything from single process - rank 0 for now*/
+    ADIOS_SELECTION process_select;
+    process_select.type=ADIOS_SELECTION_WRITEBLOCK;
+    process_select.u.block.index = rank;
+
+    /* read the size of arrays using local inq_var */
+
+    /* Note: at this moment, timeout is not handled. It blocks until writer appears */
+    ADIOS_FILE* afile = adios_read_open("arrays", ADIOS_READ_METHOD_FLEXPATH, comm, 
+                                        ADIOS_LOCKMODE_NONE, 30.0);
+    /* Read arrays for each time step */
+    int ii=0;
+    while(adios_errno != err_end_of_stream){
+
+	ADIOS_VARINFO* nx_info = adios_inq_var( afile, "NX");
+	if(nx_info->value) {
+	    NX = *((int *)nx_info->value);
+	}
+
+	ADIOS_VARINFO* ny_info = adios_inq_var( afile, "NY");
+	if(ny_info->value) {
+	    NY = *((int *)ny_info->value);
+	}
+    
+	/* Allocate space for the arrays */
+	t = (double *) malloc (NX*NY*sizeof(double));    
+	p = (int *) malloc (NX*sizeof(int));
+	memset(t, 0, NX*NY*sizeof(double));
+	memset(p, 0, NX*sizeof(int));
+        /* schedule a read of the arrays */
+        adios_schedule_read (afile, &process_select, "var_double_2Darray", 0, 1, t);
+        adios_schedule_read (afile, &process_select, "var_int_1Darray", 0, 1, p);	
+        /* commit request and retrieve data */
+        adios_perform_reads (afile, 1);
+
+        /* print result */
+        printf("Results Rank=%d Step=%d p[] = [%d, %d,...] t[][] = [%.2f, %.2f]\n", 
+                rank, afile->current_step, p[0], p[1], t[0], t[1]);
+    
+	/* block until next step is available (30 sec timeout unsupported) */
+	adios_release_step(afile);
+        adios_advance_step(afile, 0, 30);
+	MPI_Barrier (comm);
+	
+	/* shutdown ADIOS and MPI */
+    }
+    adios_read_close(afile);	
+    /* wait until all readers finish */
+    adios_read_finalize_method(ADIOS_READ_METHOD_FLEXPATH);
+    MPI_Finalize ();
+
+    return 0;
+}
diff --git a/examples/C/flexpath_arrays/process_select/arrays_write.c b/examples/C/flexpath_arrays/process_select/arrays_write.c
new file mode 100644
index 0000000..2880590
--- /dev/null
+++ b/examples/C/flexpath_arrays/process_select/arrays_write.c
@@ -0,0 +1,80 @@
+/* 
+ * ADIOS is freely available under the terms of the BSD license described
+ * in the COPYING file in the top level directory of this source distribution.
+ *
+ * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "mpi.h"
+#include "adios.h"
+
+/*************************************************************/
+/*          Example of writing arrays in ADIOS               */
+/*                                                           */
+/*        Similar example is manual/2_adios_write.c          */
+/*************************************************************/
+int main (int argc, char ** argv) 
+{
+    /* application data structures */
+    char        filename [256];
+    int         rank, size, i, j;
+    int         NX = 10, NY = 100; 
+    double      t[NX][NY];
+    int         p[NX];
+
+    /* MPI and ADIOS data structures */
+    MPI_Comm    comm = MPI_COMM_WORLD;
+    int         adios_err;
+    uint64_t    adios_groupsize, adios_totalsize;
+    int64_t     adios_handle;
+
+    /* MPI and ADIOS setup */
+    MPI_Init (&argc, &argv);
+    MPI_Comm_rank (comm, &rank);
+    strcpy (filename, "arrays");
+    adios_init ("arrays.xml", comm);
+    
+    /* write data 200 times so that it forms a stream */
+    int ii=0;
+    for(ii=0; ii<30; ii++) {
+        
+        /* must open eveery time for stream api to work */
+        adios_open (&adios_handle, "arrays", filename, "w", comm);
+        
+        /* initialize 2d array to:
+            (rank*1000000) + (stream step * 1000) + offset */
+        for (i = 0; i < NX; i++)
+            for (j = 0; j< NY; j++)
+                t[i][j] = (rank * 1000000) + (ii * 1000) + (i*NY) + j;
+
+        /* initialize 1d array similarly */
+        for (i = 0; i < NX; i++)
+            p[i] = (rank*1000000) + (ii * 1000) + i;
+        
+        /* groupsize registration (necessary?) */
+        adios_groupsize = 4 + 4 + 8 * (NX) * (NY) + 4 * (NX);
+        adios_group_size (adios_handle, adios_groupsize, &adios_totalsize);
+
+        /* write a step */
+        adios_write (adios_handle, "NX", &NX);
+        adios_write (adios_handle, "NY", &NY);
+        adios_write (adios_handle, "var_double_2Darray", t);
+        adios_write (adios_handle, "var_int_1Darray", p);
+        //fprintf(stderr, "2d arr %p 1d arr %p\n", t, p);
+   
+        /* commit the write */
+        adios_close (adios_handle);
+        printf("Committed Rank=%d Step=%d\n\n", rank, ii);
+    }
+
+    /* insure all writers are done before shutdown */
+    MPI_Barrier (comm);
+
+    /* shutdown adios and mpi */
+    adios_finalize (rank);
+    MPI_Finalize ();
+
+    return 0;
+}
diff --git a/examples/C/flexpath_arrays/process_select/job.pbs b/examples/C/flexpath_arrays/process_select/job.pbs
new file mode 100644
index 0000000..869d703
--- /dev/null
+++ b/examples/C/flexpath_arrays/process_select/job.pbs
@@ -0,0 +1,7 @@
+#!/bin/sh
+#PBS -N test
+#PBS -j oe
+#PBS -l walltime=00:05:00,nodes=3:ppn=2
+
+cd $PBS_O_WORKDIR
+mpirun -np 6 ./adios_types >& result.dat
diff --git a/examples/C/global-array-time/CMakeLists.txt b/examples/C/global-array-time/CMakeLists.txt
new file mode 100644
index 0000000..c738d1e
--- /dev/null
+++ b/examples/C/global-array-time/CMakeLists.txt
@@ -0,0 +1,19 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/global-array-time)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/global-array-time)
+
+add_executable(adios_globaltime adios_globaltime.c)
+target_link_libraries(adios_globaltime adios ${ADIOSLIB_LDADD})
+
+add_executable(adios_globaltime_no_xml adios_globaltime_no_xml.c)
+target_link_libraries(adios_globaltime_no_xml adios ${ADIOSLIB_LDADD})
+
+add_executable(adios_read_globaltime adios_read_globaltime.c)
+target_link_libraries(adios_read_globaltime adiosread ${ADIOSREADLIB_LDADD})
+#set_target_properties(adios_read_globaltime PROPERTIES COMPILE_FLAGS "-DADIOS_USE_READ_API_1")
+
+add_executable(adios_read_globaltime_streaming adios_read_globaltime_streaming.c)
+target_link_libraries(adios_read_globaltime_streaming adiosread ${ADIOSREADLIB_LDADD})
+
+#install(FILES adios_globaltime.xml gread_restart.ch gwrite_restart.ch job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/C/global-array-time)
diff --git a/examples/C/global-array-time/Makefile.am b/examples/C/global-array-time/Makefile.am
index 3063261..834ee31 100644
--- a/examples/C/global-array-time/Makefile.am
+++ b/examples/C/global-array-time/Makefile.am
@@ -14,14 +14,13 @@ adios_globaltime_no_xml_LDADD = $(top_builddir)/src/libadios.a
 adios_globaltime_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_globaltime_no_xml_LDADD += $(ADIOSLIB_LDADD)
 adios_read_globaltime_SOURCES = adios_read_globaltime.c
-adios_read_globaltime_CPPFLAGS = -DADIOS_USE_READ_API_1
 adios_read_globaltime_LDADD = $(top_builddir)/src/libadiosread.a
-adios_read_globaltime_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_globaltime_LDADD += $(ADIOSLIB_LDADD)
+adios_read_globaltime_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+adios_read_globaltime_LDADD += $(ADIOSREADLIB_LDADD)
 adios_read_globaltime_streaming_SOURCES = adios_read_globaltime_streaming.c
 adios_read_globaltime_streaming_LDADD = $(top_builddir)/src/libadiosread.a
-adios_read_globaltime_streaming_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_globaltime_streaming_LDADD += $(ADIOSLIB_LDADD)
+adios_read_globaltime_streaming_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+adios_read_globaltime_streaming_LDADD += $(ADIOSREADLIB_LDADD)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/C/global-array-time/Makefile.in b/examples/C/global-array-time/Makefile.in
index 7436071..df02ff7 100644
--- a/examples/C/global-array-time/Makefile.in
+++ b/examples/C/global-array-time/Makefile.in
@@ -45,8 +45,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -84,8 +86,7 @@ adios_globaltime_no_xml_DEPENDENCIES = $(top_builddir)/src/libadios.a \
 adios_globaltime_no_xml_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(adios_globaltime_no_xml_LDFLAGS) $(LDFLAGS) -o $@
-am_adios_read_globaltime_OBJECTS =  \
-	adios_read_globaltime-adios_read_globaltime.$(OBJEXT)
+am_adios_read_globaltime_OBJECTS = adios_read_globaltime.$(OBJEXT)
 adios_read_globaltime_OBJECTS = $(am_adios_read_globaltime_OBJECTS)
 adios_read_globaltime_DEPENDENCIES =  \
 	$(top_builddir)/src/libadiosread.a $(am__DEPENDENCIES_1)
@@ -173,6 +174,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -195,6 +200,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -220,6 +228,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -276,6 +285,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -344,21 +355,20 @@ adios_globaltime_no_xml_LDADD = $(top_builddir)/src/libadios.a \
 	$(ADIOSLIB_LDADD)
 adios_globaltime_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_read_globaltime_SOURCES = adios_read_globaltime.c
-adios_read_globaltime_CPPFLAGS = -DADIOS_USE_READ_API_1
 adios_read_globaltime_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-adios_read_globaltime_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+adios_read_globaltime_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 adios_read_globaltime_streaming_SOURCES = adios_read_globaltime_streaming.c
 adios_read_globaltime_streaming_LDADD =  \
-	$(top_builddir)/src/libadiosread.a $(ADIOSLIB_LDADD)
-adios_read_globaltime_streaming_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(top_builddir)/src/libadiosread.a $(ADIOSREADLIB_LDADD)
+adios_read_globaltime_streaming_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = adios_globaltime.xml gread_restart.ch gwrite_restart.ch job.pbs
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -383,9 +393,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
@@ -425,12 +435,6 @@ distclean-compile:
 .c.lo:
 	$(LTCOMPILE) -c -o $@ $<
 
-adios_read_globaltime-adios_read_globaltime.o: adios_read_globaltime.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_globaltime_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_globaltime-adios_read_globaltime.o `test -f 'adios_read_globaltime.c' || echo '$(srcdir)/'`adios_read_globaltime.c
-
-adios_read_globaltime-adios_read_globaltime.obj: adios_read_globaltime.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_globaltime_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_globaltime-adios_read_globaltime.obj `if test -f 'adios_read_globaltime.c'; then $(CYGPATH_W) 'adios_read_globaltime.c'; else $(CYGPATH_W) '$(srcdir)/adios_read_globaltime.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/examples/C/global-array-time/adios_globaltime.c b/examples/C/global-array-time/adios_globaltime.c
index 750b96a..85dd00c 100644
--- a/examples/C/global-array-time/adios_globaltime.c
+++ b/examples/C/global-array-time/adios_globaltime.c
@@ -29,7 +29,7 @@ int main (int argc, char ** argv)
 	MPI_Comm_rank (MPI_COMM_WORLD, &rank);
 	MPI_Comm_size (comm, &size);
 
-	adios_init ("adios_globaltime.xml");
+	adios_init ("adios_globaltime.xml", comm);
     	strcpy (filename, "adios_globaltime.bp");
     	for (it =1; it <= 13; it++) {
 
@@ -40,9 +40,9 @@ int main (int argc, char ** argv)
             		p[i] = it*1000.0 + rank*NY + i;
 		
                 if (it==1)
-		    adios_open (&adios_handle, "restart", filename, "w", &comm);
+		    adios_open (&adios_handle, "restart", filename, "w", comm);
                 else
-		    adios_open (&adios_handle, "restart", filename, "a", &comm);
+		    adios_open (&adios_handle, "restart", filename, "a", comm);
 
         	#include "gwrite_restart.ch"
         	adios_close (adios_handle);
diff --git a/examples/C/global-array-time/adios_globaltime_no_xml.c b/examples/C/global-array-time/adios_globaltime_no_xml.c
index 380c6e7..adff271 100644
--- a/examples/C/global-array-time/adios_globaltime_no_xml.c
+++ b/examples/C/global-array-time/adios_globaltime_no_xml.c
@@ -42,7 +42,7 @@ int main (int argc, char ** argv)
 
 	strcpy (filename, "adios_globaltime.bp");
 
-	adios_init_noxml ();
+	adios_init_noxml (comm);
         adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, 10);
 
         int64_t       m_adios_group;
@@ -76,7 +76,7 @@ int main (int argc, char ** argv)
             for (i = 0; i < NX; i++)
                 t[i] = rank + it*0.1 + 0.01;
 
-        	adios_open (&m_adios_file, "restart", filename, "a", &comm);
+        	adios_open (&m_adios_file, "restart", filename, "a", comm);
         	adios_groupsize = 4 + 4 + 4 + NX * 8
                         	+ 4 + 4 + 4 + NX * 8;
         	adios_group_size (m_adios_file, adios_groupsize, &adios_totalsize);
diff --git a/examples/C/global-array-time/adios_read_globaltime.c b/examples/C/global-array-time/adios_read_globaltime.c
index f97f18c..e5e7bd6 100644
--- a/examples/C/global-array-time/adios_read_globaltime.c
+++ b/examples/C/global-array-time/adios_read_globaltime.c
@@ -17,73 +17,85 @@
 int main (int argc, char ** argv) 
 {
     char        filename [256];
-    int         rank, size, i, j, k;
+    int         rank, size, i, j, k, token;
     MPI_Comm    comm = MPI_COMM_WORLD;
+    MPI_Status  status;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+    ADIOS_SELECTION * sel;
     void * data = NULL;
-    uint64_t start[3], count[3], bytes_read = 0;
+    uint64_t start[3], count[3], step = 0;
 
     MPI_Init (&argc, &argv);
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    ADIOS_FILE * f = adios_fopen ("adios_globaltime.bp", comm);
-    if (f == NULL)
-    {
-        printf ("%s\n", adios_errmsg());
-        return -1;
-    }
+    adios_read_init_method (method, comm, "verbose=3");
 
-    ADIOS_GROUP * g = adios_gopen (f, "restart");
-    if (g == NULL)
+    /* adios_read_open_file() allows for seeing all timesteps in the file */
+    ADIOS_FILE * f = adios_read_open_file ("adios_globaltime.bp", method, comm);
+    if (f == NULL)
     {
         printf ("%s\n", adios_errmsg());
         return -1;
     }
 
-    ADIOS_VARINFO * v = adios_inq_var (g, "temperature");
+    ADIOS_VARINFO * v = adios_inq_var (f, "temperature");
 
     // read in two timesteps
-    data = malloc (2 * v->dims[1] * v->dims[2] * sizeof (double));
+    data = malloc (2 * v->dims[0] * v->dims[1] * sizeof (double));
     if (data == NULL)
     {
         fprintf (stderr, "malloc failed.\n");
         return -1;
     }
 
-    // read in timestep 'rank'
-    start[0] = rank % 13;
-    count[0] = 1;
+    // read in timestep 'rank' (up to 12)
+    step = rank % 13;
+
+    start[0] = 0;
+    count[0] = v->dims[0];
 
     start[1] = 0;
     count[1] = v->dims[1];
 
-    start[2] = 0;
-    count[2] = v->dims[2];
+    /* Read a subset of the temperature array */
+    sel = adios_selection_boundingbox (v->ndim, start, count);
+    /*    2 steps from 'step' */
+    adios_schedule_read (f, sel, "temperature", step, 2, data);
+    adios_perform_reads (f, 1);
 
-    bytes_read = adios_read_var (g, "temperature", start, count, data);
+    if (rank == 0) 
+        printf ("Array size of temperature [0:%lld,0:%lld]\n", v->dims[0], v->dims[1]);   
 
-    printf("rank=%d: ", rank);
-    for (i = 0; i < 1; i++) {
-        printf ("[%lld,0:%lld,0:%lld] = [", start[0]+i, v->dims[1], v->dims[2]);   
-        for (j = 0; j < v->dims[1]; j++) {
+    if (rank > 0) {
+        MPI_Recv (&token, 1, MPI_INT, rank-1, 0, comm, &status);
+    }
+
+    printf("------------------------------------------------\n", rank);
+    printf("rank=%d: \n", rank);
+    for (i = 0; i < 2; i++) {
+        printf ("step %lld = [\n", step+i);   
+        for (j = 0; j < v->dims[0]; j++) {
             printf (" [");
-            for (k = 0; k < v->dims[2]; k++) {
-                printf ("%g ", ((double *)data) [ i * v->dims[1] * v->dims[2] + j * v->dims[2] + k]);
+            for (k = 0; k < v->dims[1]; k++) {
+                printf ("%g ", ((double *)data) [ i * v->dims[0] * v->dims[1] + j * v->dims[1] + k]);
             }
-            printf ("]");
+            printf ("]\n");
         }
-        printf (" ]\t");
+        printf ("]\n");
     }
     printf ("\n");
 
+    if (rank < size-1) {
+        MPI_Send (&token, 1, MPI_INT, rank+1, 0, comm);
+    }
+
     free (data);
     adios_free_varinfo (v);
 
-    adios_gclose (g);
-    adios_fclose (f);
-
+    adios_read_close (f);
     MPI_Barrier (comm);
-
+    adios_read_finalize_method (method);
     MPI_Finalize ();
     return 0;
 }
diff --git a/examples/C/global-array-time/adios_read_globaltime_streaming.c b/examples/C/global-array-time/adios_read_globaltime_streaming.c
index 81b3873..57515da 100644
--- a/examples/C/global-array-time/adios_read_globaltime_streaming.c
+++ b/examples/C/global-array-time/adios_read_globaltime_streaming.c
@@ -6,6 +6,8 @@
  */
 
 /* ADIOS C Example: read global arrays from a BP file
+ * which has multiple timesteps,
+ * reading step by step
  *
 */
 #include <stdio.h>
@@ -13,15 +15,19 @@
 #include <string.h>
 #include "mpi.h"
 #include "adios_read.h"
+#include "adios_error.h"
 
 int main (int argc, char ** argv) 
 {
     char        filename [256];
     int         rank, size, i, j, NX = 16;
     MPI_Comm    comm = MPI_COMM_WORLD;
-    ADIOS_FILE * fp;
-    ADIOS_VARINFO * vi;
-    ADIOS_SELECTION sel;
+    ADIOS_FILE * f;
+    ADIOS_VARINFO * v;
+    ADIOS_SELECTION * sel;
+    int steps = 0;
+    int retval = 0;
+    float timeout_sec = 1.0; 
 
     void * data = NULL, * data1 = NULL, * data2 = NULL;
     uint64_t start[2], count[2], bytes_read = 0;
@@ -32,71 +38,90 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    adios_read_init_method (ADIOS_READ_METHOD_BP, comm, "verbose=4");
+    adios_read_init_method (ADIOS_READ_METHOD_BP, comm, "verbose=3");
 
-    fp = adios_read_open_stream ("adios_globaltime.bp", ADIOS_READ_METHOD_BP,
-                                 comm, ADIOS_LOCKMODE_NONE, 0);
-    vi = adios_inq_var (fp, "temperature");
-    adios_inq_var_blockinfo (fp, vi);
-
-printf ("ndim = %d\n",  vi->ndim);
-printf ("nsteps = %d\n",  vi->nsteps);
-printf ("dims[%lu][%lu]\n",  vi->dims[0], vi->dims[1]);
-
-    uint64_t slice_size = vi->dims[1]/size;
-    start[0] = 0;
-
-    if (rank == size-1)
-        slice_size = slice_size + vi->dims[1]%size;
-
-    count[0] = vi->dims[0];
-
-    start[1] = rank * slice_size;
-    count[1] = slice_size;
-
-    data = malloc (slice_size * vi->dims[0] * 8);
-    if (rank == 0)
+    f = adios_read_open ("adios_globaltime.bp", ADIOS_READ_METHOD_BP,
+                          comm, ADIOS_LOCKMODE_NONE, timeout_sec);
+    if (adios_errno == err_file_not_found)
     {
-        for (i = 0; i < vi->dims[0]; i++)
-        {
-            for (j = 0; j < slice_size; j++)
-                * ((double *)data + i * slice_size  + j) = 0;
-        }
+        printf ("rank %d: Stream not found after waiting %f seconds: %s\n",
+                rank, timeout_sec, adios_errmsg());
+        retval = adios_errno;
     }
-
-    sel.type = ADIOS_SELECTION_BOUNDINGBOX;
-    sel.u.bb.ndim = vi->ndim;
-    sel.u.bb.start = start;
-    sel.u.bb.count = count;
-
-    adios_schedule_read (fp, &sel, "temperature", 0, 1, data);
-
-    adios_perform_reads (fp, 1);
-
-    if (rank == 0)
+    else if (adios_errno == err_end_of_stream)
     {
-        for (i = 0; i < vi->dims[0]; i++)
-        {
-            for (j = 0; j < slice_size; j++)
-                printf (" %7.5g", * ((double *)data + i * slice_size  + j));
-            printf ("\n");
-        }
+        printf ("rank %d: Stream terminated before open. %s\n", rank, adios_errmsg());
+        retval = adios_errno;
+    }
+    else if (f == NULL) {
+        printf ("rank %d: Error at opening stream: %s\n", rank, adios_errmsg());
+        retval = adios_errno;
     }
+    else
+    {
+        /* process file here... */
+        v = adios_inq_var (f, "temperature");
+        adios_inq_var_blockinfo (f, v);
+
+        printf ("ndim = %d\n",  v->ndim);
+        //printf ("nsteps = %d\n",  v->nsteps);
+        printf ("dims[%lu][%lu]\n",  v->dims[0], v->dims[1]);
+
+        uint64_t slice_size = v->dims[0]/size;
+        if (rank == size-1)
+            slice_size = slice_size + v->dims[0]%size;
+
+        start[0] = rank * slice_size;
+        count[0] = slice_size;
+        start[1] = 0;
+        count[1] = v->dims[1];
+
+        data = malloc (slice_size * v->dims[1] * 8);
+
+        /* Processing loop over the steps (we are already in the first one) */
+        while (adios_errno != err_end_of_stream) {
+            steps++; // steps start counting from 1
+
+            sel = adios_selection_boundingbox (v->ndim, start, count);
+            adios_schedule_read (f, sel, "temperature", 0, 1, data);
+            adios_perform_reads (f, 1);
+
+            if (rank == 0)
+                printf ("--------- Step: %d --------------------------------\n", 
+                        f->current_step);
+
+            printf("rank=%d: [0:%lld,0:%lld] = [", rank, v->dims[0], v->dims[1]);
+            for (i = 0; i < slice_size; i++) {
+                printf (" [");
+                for (j = 0; j < v->dims[1]; j++) {
+                    printf ("%g ", *((double *)data + i * v->dims[1] + j));
+                }
+                printf ("]");
+            }
+            printf (" ]\n\n");
+
+            // advance to 1) next available step with 2) blocking wait
+            adios_advance_step (f, 0, timeout_sec);
+            if (adios_errno == err_step_notready)
+            {
+                printf ("rank %d: No new step arrived within the timeout. Quit. %s\n",
+                        rank, adios_errmsg());
+                break; // quit while loop
+            }
 
-    adios_advance_step (fp, 0, 30);
-    printf ("current,last = %d,%d\n", fp->current_step, fp->last_step);
+        }
 
-    adios_advance_step (fp, 0, 30);
-    printf ("current,last = %d,%d\n", fp->current_step, fp->last_step);
+        adios_read_close (f);
+    }
 
-    adios_read_close (fp);
+    if (rank==0) 
+        printf ("We have processed %d steps\n", steps);
 
     adios_read_finalize_method (ADIOS_READ_METHOD_BP);
-
     free (data);
     MPI_Finalize ();
 
-    return 0;
+    return retval;
 }
 
 
diff --git a/examples/C/global-array/CMakeLists.txt b/examples/C/global-array/CMakeLists.txt
new file mode 100644
index 0000000..e71fa88
--- /dev/null
+++ b/examples/C/global-array/CMakeLists.txt
@@ -0,0 +1,38 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/global-array)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/global-array)
+
+add_executable(adios_global adios_global.c)
+target_link_libraries(adios_global adios ${ADIOSLIB_LDADD})
+
+add_executable(adios_global_2files adios_global_2files.c)
+target_link_libraries(adios_global_2files adios ${ADIOSLIB_LDADD})
+
+add_executable(adios_read_global adios_read_global.c)
+target_link_libraries(adios_read_global adiosread ${ADIOSREADLIB_LDADD})
+#set_target_properties(adios_read_global PROPERTIES COMPILE_FLAGS "-DADIOS_USE_READ_API_1")
+
+add_executable(adios_read_writeblock adios_read_writeblock.c)
+target_link_libraries(adios_read_writeblock adiosread ${ADIOSLIB_LDADD})
+
+add_executable(adios_read_chunk adios_read_chunk.c)
+target_link_libraries(adios_read_chunk adiosread ${ADIOSREADLIB_LDADD})
+
+add_executable(adios_read_gpp adios_read_gpp.c)
+target_link_libraries(adios_read_gpp adiosread ${ADIOSREADLIB_LDADD})
+
+add_executable(adios_global_no_xml adios_global_no_xml.c)
+target_link_libraries(adios_global_no_xml adios ${ADIOSLIB_LDADD})
+
+add_executable(adios_read_global_no_xml adios_read_global_no_xml.c)
+target_link_libraries(adios_read_global_no_xml adiosread ${ADIOSREADLIB_LDADD})
+#set_target_properties(adios_read_global_no_xml PROPERTIES COMPILE_FLAGS "-DADIOS_USE_READ_API_1")
+
+add_executable(no_xml_write_byid no_xml_write_byid.c)
+target_link_libraries(no_xml_write_byid adios ${ADIOSLIB_LDADD})
+
+add_executable(read_no_xml_write_byid read_no_xml_write_byid.c)
+target_link_libraries(read_no_xml_write_byid adiosread ${ADIOSREADLIB_LDADD})
+
+#install(FILES adios_global.xml gread_temperature.ch gwrite_temperature.ch job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/C/global-array)
diff --git a/examples/C/global-array/Makefile.am b/examples/C/global-array/Makefile.am
index b55c5b6..1244fe7 100644
--- a/examples/C/global-array/Makefile.am
+++ b/examples/C/global-array/Makefile.am
@@ -14,40 +14,37 @@ adios_global_2files_LDADD = $(top_builddir)/src/libadios.a
 adios_global_2files_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_global_2files_LDADD += $(ADIOSLIB_LDADD)
 adios_read_global_SOURCES = adios_read_global.c
-adios_read_global_CPPFLAGS = -DADIOS_USE_READ_API_1
 adios_read_global_LDADD = $(top_builddir)/src/libadiosread.a 
-adios_read_global_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_global_LDADD += $(ADIOSLIB_LDADD)
+adios_read_global_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+adios_read_global_LDADD += $(ADIOSREADLIB_LDADD)
 adios_read_writeblock_SOURCES = adios_read_writeblock.c
 adios_read_writeblock_LDADD = $(top_builddir)/src/libadiosread.a
 adios_read_writeblock_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_read_writeblock_LDADD += $(ADIOSLIB_LDADD)
 adios_read_chunk_SOURCES = adios_read_chunk.c
 adios_read_chunk_LDADD = $(top_builddir)/src/libadiosread.a
-adios_read_chunk_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_chunk_LDADD += $(ADIOSLIB_LDADD)
+adios_read_chunk_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+adios_read_chunk_LDADD += $(ADIOSREADLIB_LDADD)
 adios_read_gpp_SOURCES = adios_read_gpp.c
 adios_read_gpp_LDADD = $(top_builddir)/src/libadiosread.a 
-adios_read_gpp_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_gpp_LDADD += $(ADIOSLIB_LDADD)
+adios_read_gpp_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+adios_read_gpp_LDADD += $(ADIOSREADLIB_LDADD)
 adios_global_no_xml_SOURCES = adios_global_no_xml.c
 adios_global_no_xml_LDADD = $(top_builddir)/src/libadios.a 
 adios_global_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_global_no_xml_LDADD += $(ADIOSLIB_LDADD)
 adios_read_global_no_xml_SOURCES = adios_read_global_no_xml.c
-adios_read_global_no_xml_CPPFLAGS = -DADIOS_USE_READ_API_1
 adios_read_global_no_xml_LDADD = $(top_builddir)/src/libadiosread.a
-adios_read_global_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_global_no_xml_LDADD += $(ADIOSLIB_LDADD)
+adios_read_global_no_xml_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+adios_read_global_no_xml_LDADD += $(ADIOSREADLIB_LDADD)
 no_xml_write_byid_SOURCES = no_xml_write_byid.c
 no_xml_write_byid_LDADD = $(top_builddir)/src/libadios.a
 no_xml_write_byid_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 no_xml_write_byid_LDADD += $(ADIOSLIB_LDADD)
 read_no_xml_write_byid_SOURCES = read_no_xml_write_byid.c
-read_no_xml_write_byid_CPPFLAGS = -DADIOS_USE_READ_API_1
 read_no_xml_write_byid_LDADD = $(top_builddir)/src/libadiosread.a
-read_no_xml_write_byid_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-read_no_xml_write_byid_LDADD += $(ADIOSLIB_LDADD)
+read_no_xml_write_byid_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+read_no_xml_write_byid_LDADD += $(ADIOSREADLIB_LDADD)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/C/global-array/Makefile.in b/examples/C/global-array/Makefile.in
index 17365e3..552be7d 100644
--- a/examples/C/global-array/Makefile.in
+++ b/examples/C/global-array/Makefile.in
@@ -46,8 +46,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -97,8 +99,7 @@ adios_read_chunk_DEPENDENCIES = $(top_builddir)/src/libadiosread.a \
 adios_read_chunk_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(adios_read_chunk_LDFLAGS) $(LDFLAGS) -o $@
-am_adios_read_global_OBJECTS =  \
-	adios_read_global-adios_read_global.$(OBJEXT)
+am_adios_read_global_OBJECTS = adios_read_global.$(OBJEXT)
 adios_read_global_OBJECTS = $(am_adios_read_global_OBJECTS)
 adios_read_global_DEPENDENCIES = $(top_builddir)/src/libadiosread.a \
 	$(am__DEPENDENCIES_1)
@@ -106,7 +107,7 @@ adios_read_global_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(adios_read_global_LDFLAGS) $(LDFLAGS) -o $@
 am_adios_read_global_no_xml_OBJECTS =  \
-	adios_read_global_no_xml-adios_read_global_no_xml.$(OBJEXT)
+	adios_read_global_no_xml.$(OBJEXT)
 adios_read_global_no_xml_OBJECTS =  \
 	$(am_adios_read_global_no_xml_OBJECTS)
 adios_read_global_no_xml_DEPENDENCIES =  \
@@ -135,8 +136,7 @@ no_xml_write_byid_DEPENDENCIES = $(top_builddir)/src/libadios.a \
 no_xml_write_byid_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(no_xml_write_byid_LDFLAGS) $(LDFLAGS) -o $@
-am_read_no_xml_write_byid_OBJECTS =  \
-	read_no_xml_write_byid-read_no_xml_write_byid.$(OBJEXT)
+am_read_no_xml_write_byid_OBJECTS = read_no_xml_write_byid.$(OBJEXT)
 read_no_xml_write_byid_OBJECTS = $(am_read_no_xml_write_byid_OBJECTS)
 read_no_xml_write_byid_DEPENDENCIES =  \
 	$(top_builddir)/src/libadiosread.a $(am__DEPENDENCIES_1)
@@ -218,6 +218,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -240,6 +244,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -265,6 +272,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -321,6 +329,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -388,47 +398,44 @@ adios_global_2files_LDADD = $(top_builddir)/src/libadios.a \
 	$(ADIOSLIB_LDADD)
 adios_global_2files_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_read_global_SOURCES = adios_read_global.c
-adios_read_global_CPPFLAGS = -DADIOS_USE_READ_API_1
 adios_read_global_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-adios_read_global_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+adios_read_global_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 adios_read_writeblock_SOURCES = adios_read_writeblock.c
 adios_read_writeblock_LDADD = $(top_builddir)/src/libadiosread.a \
 	$(ADIOSLIB_LDADD)
 adios_read_writeblock_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_read_chunk_SOURCES = adios_read_chunk.c
 adios_read_chunk_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-adios_read_chunk_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+adios_read_chunk_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 adios_read_gpp_SOURCES = adios_read_gpp.c
 adios_read_gpp_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-adios_read_gpp_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+adios_read_gpp_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 adios_global_no_xml_SOURCES = adios_global_no_xml.c
 adios_global_no_xml_LDADD = $(top_builddir)/src/libadios.a \
 	$(ADIOSLIB_LDADD)
 adios_global_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 adios_read_global_no_xml_SOURCES = adios_read_global_no_xml.c
-adios_read_global_no_xml_CPPFLAGS = -DADIOS_USE_READ_API_1
 adios_read_global_no_xml_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-adios_read_global_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+adios_read_global_no_xml_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 no_xml_write_byid_SOURCES = no_xml_write_byid.c
 no_xml_write_byid_LDADD = $(top_builddir)/src/libadios.a \
 	$(ADIOSLIB_LDADD)
 no_xml_write_byid_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 read_no_xml_write_byid_SOURCES = read_no_xml_write_byid.c
-read_no_xml_write_byid_CPPFLAGS = -DADIOS_USE_READ_API_1
 read_no_xml_write_byid_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-read_no_xml_write_byid_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+	$(ADIOSREADLIB_LDADD)
+read_no_xml_write_byid_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = adios_global.xml gread_temperature.ch gwrite_temperature.ch job.pbs
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -453,9 +460,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
@@ -513,24 +520,6 @@ distclean-compile:
 .c.lo:
 	$(LTCOMPILE) -c -o $@ $<
 
-adios_read_global-adios_read_global.o: adios_read_global.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_global_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_global-adios_read_global.o `test -f 'adios_read_global.c' || echo '$(srcdir)/'`adios_read_global.c
-
-adios_read_global-adios_read_global.obj: adios_read_global.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_global_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_global-adios_read_global.obj `if test -f 'adios_read_global.c'; then $(CYGPATH_W) 'adios_read_global.c'; else $(CYGPATH_W) '$(srcdir)/adios_read_global.c'; fi`
-
-adios_read_global_no_xml-adios_read_global_no_xml.o: adios_read_global_no_xml.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_global_no_xml_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_global_no_xml-adios_read_global_no_xml.o `test -f 'adios_read_global_no_xml.c' || echo '$(srcdir)/'`adios_read_global_no_xml.c
-
-adios_read_global_no_xml-adios_read_global_no_xml.obj: adios_read_global_no_xml.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_global_no_xml_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_global_no_xml-adios_read_global_no_xml.obj `if test -f 'adios_read_global_no_xml.c'; then $(CYGPATH_W) 'adios_read_global_no_xml.c'; else $(CYGPATH_W) '$(srcdir)/adios_read_global_no_xml.c'; fi`
-
-read_no_xml_write_byid-read_no_xml_write_byid.o: read_no_xml_write_byid.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(read_no_xml_write_byid_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o read_no_xml_write_byid-read_no_xml_write_byid.o `test -f 'read_no_xml_write_byid.c' || echo '$(srcdir)/'`read_no_xml_write_byid.c
-
-read_no_xml_write_byid-read_no_xml_write_byid.obj: read_no_xml_write_byid.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(read_no_xml_write_byid_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o read_no_xml_write_byid-read_no_xml_write_byid.obj `if test -f 'read_no_xml_write_byid.c'; then $(CYGPATH_W) 'read_no_xml_write_byid.c'; else $(CYGPATH_W) '$(srcdir)/read_no_xml_write_byid.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/examples/C/global-array/adios_global.c b/examples/C/global-array/adios_global.c
index 176889e..59232de 100644
--- a/examples/C/global-array/adios_global.c
+++ b/examples/C/global-array/adios_global.c
@@ -38,9 +38,9 @@ int main (int argc, char ** argv)
 
 	strcpy (filename, "adios_global.bp");
 
-	adios_init ("adios_global.xml");
+	adios_init ("adios_global.xml", comm);
 
-	adios_open (&adios_handle, "temperature", filename, "w", &comm);
+	adios_open (&adios_handle, "temperature", filename, "w", comm);
 	#include "gwrite_temperature.ch"
 	adios_close (adios_handle);
 
diff --git a/examples/C/global-array/adios_global.xml b/examples/C/global-array/adios_global.xml
index 6102f9a..dc2303a 100644
--- a/examples/C/global-array/adios_global.xml
+++ b/examples/C/global-array/adios_global.xml
@@ -11,6 +11,7 @@
 </adios-group>
 
 <method group="temperature" method="MPI_AGGREGATE">stripe_count=1;stripe_size=10485760;num_aggregators=2;merging_pgs=0;num_ost=2</method>
+<!--method group="temperature" method="PHDF5"/-->
 
 <buffer size-MB="2" allocate-time="now"/>
 
diff --git a/examples/C/global-array/adios_global_2files.c b/examples/C/global-array/adios_global_2files.c
index 2d9f285..8735973 100644
--- a/examples/C/global-array/adios_global_2files.c
+++ b/examples/C/global-array/adios_global_2files.c
@@ -42,8 +42,8 @@ int main (int argc, char ** argv)
 	 * there are 2 files generated. 
 	 */
 	sprintf (filename, "adios_global_%5.5d.bp", color);
-	adios_init ("adios_global.xml");
-	adios_open (&adios_handle, "temperature", filename, "w", &comm);
+	adios_init ("adios_global.xml", MPI_COMM_WORLD);
+	adios_open (&adios_handle, "temperature", filename, "w", comm);
 	#include "gwrite_temperature.ch"
 	adios_close (adios_handle);
 	adios_finalize (rank);
diff --git a/examples/C/global-array/adios_global_no_xml.c b/examples/C/global-array/adios_global_no_xml.c
index 763a657..2001460 100644
--- a/examples/C/global-array/adios_global_no_xml.c
+++ b/examples/C/global-array/adios_global_no_xml.c
@@ -51,7 +51,7 @@ int main (int argc, char ** argv)
 
 	strcpy (filename, "adios_global_no_xml.bp");
 
-	adios_init_noxml ();
+	adios_init_noxml (comm);
         adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, 10);
 
         int64_t       m_adios_group;
@@ -80,7 +80,7 @@ int main (int argc, char ** argv)
                         ,"NX", "Global_bounds", "Offsets");
         }
    
-        adios_open (&m_adios_file, "restart", filename, "w", &comm);
+        adios_open (&m_adios_file, "restart", filename, "w", comm);
 
         adios_groupsize = sub_blocks * (4 + 4 + 4 + NX * 8);
 
diff --git a/examples/C/global-array/adios_read_global.c b/examples/C/global-array/adios_read_global.c
index 5961227..31838ee 100644
--- a/examples/C/global-array/adios_read_global.c
+++ b/examples/C/global-array/adios_read_global.c
@@ -28,6 +28,8 @@ int main (int argc, char ** argv)
     char        filename [256];
     int         rank, size, i, j;
     MPI_Comm    comm = MPI_COMM_WORLD;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+    ADIOS_SELECTION * sel;
     void * data = NULL;
     uint64_t start[2], count[2], bytes_read = 0;
 
@@ -35,21 +37,16 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    ADIOS_FILE * f = adios_fopen ("adios_global.bp", comm);
-    if (f == NULL)
-    {
-        printf ("%s\n", adios_errmsg());
-        return -1;
-    }
+    adios_read_init_method (method, comm, "verbose=3");
 
-    ADIOS_GROUP * g = adios_gopen (f, "temperature");
-    if (g == NULL)
+    ADIOS_FILE * f = adios_read_open ("adios_global.bp", method, comm, ADIOS_LOCKMODE_NONE, 0);
+    if (f == NULL)
     {
         printf ("%s\n", adios_errmsg());
         return -1;
     }
 
-    ADIOS_VARINFO * v = adios_inq_var (g, "temperature");
+    ADIOS_VARINFO * v = adios_inq_var (f, "temperature");
 
     /* Using less readers to read the global array back, i.e., non-uniform */
     uint64_t slice_size = v->dims[0]/size;
@@ -69,7 +66,10 @@ int main (int argc, char ** argv)
         return -1;
     }
 
-    bytes_read = adios_read_var (g, "temperature", start, count, data);
+    /* Read a subset of the temperature array */
+    sel = adios_selection_boundingbox (v->ndim, start, count);
+    adios_schedule_read (f, sel, "temperature", 0, 1, data);
+    adios_perform_reads (f, 1);
 
     for (i = 0; i < slice_size; i++) {
         printf ("rank %d: [%lld,%d:%lld]", rank, start[0]+i, 0, slice_size);
@@ -80,11 +80,9 @@ int main (int argc, char ** argv)
 
     free (data);
 
-    adios_gclose (g);
-    adios_fclose (f);
-
+    adios_read_close (f);
     MPI_Barrier (comm);
-
+    adios_read_finalize_method (method);
     MPI_Finalize ();
     return 0;
 }
diff --git a/examples/C/global-array/adios_read_global_no_xml.c b/examples/C/global-array/adios_read_global_no_xml.c
index a1d485f..1c5acb0 100644
--- a/examples/C/global-array/adios_read_global_no_xml.c
+++ b/examples/C/global-array/adios_read_global_no_xml.c
@@ -30,6 +30,8 @@ int main (int argc, char ** argv)
     int         rank, size, i, j, npl, token;
     MPI_Comm    comm = MPI_COMM_WORLD;
     MPI_Status  status;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+    ADIOS_SELECTION * sel;
     void * data = NULL;
     uint64_t start[1], count[1], bytes_read = 0;
 
@@ -37,21 +39,17 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    ADIOS_FILE * f = adios_fopen ("adios_global_no_xml.bp", comm);
-    if (f == NULL)
-    {
-        printf ("%s\n", adios_errmsg());
-        return -1;
-    }
+    adios_read_init_method (method, comm, "verbose=3");
 
-    ADIOS_GROUP * g = adios_gopen (f, "restart");
-    if (g == NULL)
+    ADIOS_FILE * f = adios_read_open ("adios_global_no_xml.bp", method, 
+                                      comm, ADIOS_LOCKMODE_NONE, 0);
+    if (f == NULL)
     {
         printf ("%s\n", adios_errmsg());
         return -1;
     }
 
-    ADIOS_VARINFO * v = adios_inq_var (g, "temperature");
+    ADIOS_VARINFO * v = adios_inq_var (f, "temperature");
 
     /* Using less readers to read the global array back, i.e., non-uniform */
     uint64_t slice_size = v->dims[0]/size;
@@ -67,7 +65,10 @@ int main (int argc, char ** argv)
         return -1;
     }
 
-    bytes_read = adios_read_var (g, "temperature", start, count, data);
+    /* Read a subset of the temperature array */
+    sel = adios_selection_boundingbox (v->ndim, start, count);
+    adios_schedule_read (f, sel, "temperature", 0, 1, data);
+    adios_perform_reads (f, 1);
 
     if (rank > 0) {
         MPI_Recv (&token, 1, MPI_INT, rank-1, 0, comm, &status);
@@ -89,14 +90,11 @@ int main (int argc, char ** argv)
         MPI_Send (&token, 1, MPI_INT, rank+1, 0, comm);
     }
 
-    MPI_Barrier (comm);
-
     free (data);
 
-    adios_gclose (g);
-    adios_fclose (f);
-
-
+    adios_read_close (f);
+    MPI_Barrier (comm);
+    adios_read_finalize_method (method);
     MPI_Finalize ();
     return 0;
 }
diff --git a/examples/C/global-array/no_xml_write_byid.c b/examples/C/global-array/no_xml_write_byid.c
index ab97753..212123b 100644
--- a/examples/C/global-array/no_xml_write_byid.c
+++ b/examples/C/global-array/no_xml_write_byid.c
@@ -54,7 +54,7 @@ int main (int argc, char ** argv)
 
 	strcpy (filename, "no_xml_write_byid.bp");
 
-	adios_init_noxml ();
+	adios_init_noxml (comm);
         adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, 10);
 
         int64_t       m_adios_group;
@@ -74,7 +74,7 @@ int main (int argc, char ** argv)
                                           );
         }
    
-        adios_open (&m_adios_file, "restart", filename, "w", &comm);
+        adios_open (&m_adios_file, "restart", filename, "w", comm);
 
         adios_groupsize = nblocks * (4 + 4 + 4 + NX * 8);
 
diff --git a/examples/C/global-array/read_no_xml_write_byid.c b/examples/C/global-array/read_no_xml_write_byid.c
index 24b8a05..a1fd5d4 100644
--- a/examples/C/global-array/read_no_xml_write_byid.c
+++ b/examples/C/global-array/read_no_xml_write_byid.c
@@ -30,6 +30,8 @@ int main (int argc, char ** argv)
     int         rank, size, i, j, npl, token;
     MPI_Comm    comm = MPI_COMM_WORLD;
     MPI_Status  status;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+    ADIOS_SELECTION * sel;
     void * data = NULL;
     uint64_t start[1], count[1], bytes_read = 0;
 
@@ -37,21 +39,17 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    ADIOS_FILE * f = adios_fopen ("no_xml_write_byid.bp", comm);
-    if (f == NULL)
-    {
-        printf ("%s\n", adios_errmsg());
-        return -1;
-    }
+    adios_read_init_method (method, comm, "verbose=3");
 
-    ADIOS_GROUP * g = adios_gopen (f, "restart");
-    if (g == NULL)
+    ADIOS_FILE * f = adios_read_open ("no_xml_write_byid.bp", method, 
+                                      comm, ADIOS_LOCKMODE_NONE, 0);
+    if (f == NULL)
     {
         printf ("%s\n", adios_errmsg());
         return -1;
     }
 
-    ADIOS_VARINFO * v = adios_inq_var (g, "temperature");
+    ADIOS_VARINFO * v = adios_inq_var (f, "temperature");
 
     /* Using less readers to read the global array back, i.e., non-uniform */
     uint64_t slice_size = v->dims[0]/size;
@@ -67,7 +65,10 @@ int main (int argc, char ** argv)
         return -1;
     }
 
-    bytes_read = adios_read_var (g, "temperature", start, count, data);
+    /* Read a subset of the temperature array */
+    sel = adios_selection_boundingbox (v->ndim, start, count);
+    adios_schedule_read (f, sel, "temperature", 0, 1, data);
+    adios_perform_reads (f, 1);
 
     if (rank > 0) {
         MPI_Recv (&token, 1, MPI_INT, rank-1, 0, comm, &status);
@@ -89,14 +90,12 @@ int main (int argc, char ** argv)
         MPI_Send (&token, 1, MPI_INT, rank+1, 0, comm);
     }
 
-    MPI_Barrier (comm);
 
     free (data);
 
-    adios_gclose (g);
-    adios_fclose (f);
-
-
+    adios_read_close (f);
+    MPI_Barrier (comm);
+    adios_read_finalize_method (method);
     MPI_Finalize ();
     return 0;
 }
diff --git a/examples/C/manual/2_adios_write.c b/examples/C/manual/2_adios_write.c
index 5ede52b..e3f66d0 100644
--- a/examples/C/manual/2_adios_write.c
+++ b/examples/C/manual/2_adios_write.c
@@ -52,8 +52,8 @@ int main (int argc, char ** argv)
         t[i] = rank*NX + i;
 
     sprintf (filename, "restart.bp");
-    adios_init ("config.xml");
-    adios_open (&adios_handle, "temperature", filename, "w", &comm);
+    adios_init ("config.xml", comm);
+    adios_open (&adios_handle, "temperature", filename, "w", comm);
     #include "gwrite_temperature.ch"
     adios_close (adios_handle);
     adios_finalize (rank);
diff --git a/examples/C/manual/3_adios_read.c b/examples/C/manual/3_adios_read.c
index 436bc7c..bfafcc0 100644
--- a/examples/C/manual/3_adios_read.c
+++ b/examples/C/manual/3_adios_read.c
@@ -34,8 +34,8 @@ int main (int argc, char ** argv)
     MPI_Init (&argc, &argv);
     MPI_Comm_rank (MPI_COMM_WORLD, &rank);
     sprintf (filename, "restart.bp");
-    adios_init ("config.xml");
-    adios_open (&adios_handle, "temperature", filename, "r", &comm);
+    adios_init ("config.xml", comm);
+    adios_open (&adios_handle, "temperature", filename, "r", comm);
     #include "gread_temperature.ch"
     adios_close (adios_handle);
     adios_finalize (rank);
diff --git a/examples/C/manual/4_adios_nfiles.c b/examples/C/manual/4_adios_nfiles.c
index a6057be..ed9c297 100644
--- a/examples/C/manual/4_adios_nfiles.c
+++ b/examples/C/manual/4_adios_nfiles.c
@@ -50,8 +50,8 @@ int main (int argc, char ** argv)
      * there are N files generated. 
      */
     sprintf (filename, "restart_%5.5d.bp", color);
-    adios_init ("config.xml");
-    adios_open (&adios_handle, "temperature", filename, "w", &comm);
+    adios_init ("config.xml", MPI_COMM_WORLD);
+    adios_open (&adios_handle, "temperature", filename, "w", comm);
     #include "gwrite_temperature.ch"
     adios_close (adios_handle);
     adios_finalize (rank);
diff --git a/examples/C/manual/CMakeLists.txt b/examples/C/manual/CMakeLists.txt
new file mode 100644
index 0000000..e2e3350
--- /dev/null
+++ b/examples/C/manual/CMakeLists.txt
@@ -0,0 +1,19 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/manual)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/manual)
+
+add_executable(1_nonadios_example 1_nonadios_example.c)
+target_link_libraries(1_nonadios_example adios ${ADIOSLIB_LDADD})
+
+add_executable(2_adios_write 2_adios_write.c)
+target_link_libraries(2_adios_write adios ${ADIOSLIB_LDADD})
+
+add_executable(3_adios_read 3_adios_read.c)
+target_link_libraries(3_adios_read adios ${ADIOSLIB_LDADD})
+
+add_executable(4_adios_nfiles 4_adios_nfiles.c)
+target_link_libraries(4_adios_nfiles adios ${ADIOSLIB_LDADD})
+
+#install(FILES config.xml gread_temperature.ch gwrite_temperature.ch DESTINATION ${PROJECT_BINARY_DIR}/examples/C/manual)
+
diff --git a/examples/C/manual/Makefile.in b/examples/C/manual/Makefile.in
index ddc4769..088c3b4 100644
--- a/examples/C/manual/Makefile.in
+++ b/examples/C/manual/Makefile.in
@@ -43,8 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -161,6 +163,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -183,6 +189,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -208,6 +217,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -264,6 +274,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -343,7 +355,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -368,9 +380,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/read_all/CMakeLists.txt b/examples/C/read_all/CMakeLists.txt
new file mode 100644
index 0000000..bc581e9
--- /dev/null
+++ b/examples/C/read_all/CMakeLists.txt
@@ -0,0 +1,12 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/read_all)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/read_all)
+
+add_executable(read_all read_all.c)
+target_link_libraries(read_all adiosread_nompi ${ADIOSLIB_LDADD})
+set_target_properties(read_all PROPERTIES COMPILE_FLAGS "${MACRODEFFLAG}_NOMPI") 
+
+add_executable(read_all_v1 read_all_v1.c)
+target_link_libraries(read_all_v1 adiosread_nompi ${ADIOSREADLIB_LDADD})
+set_target_properties(read_all_v1 PROPERTIES COMPILE_FLAGS "${MACRODEFFLAG}_NOMPI ${MACRODEFFLAG}ADIOS_USE_READ_API_1")
diff --git a/examples/C/read_all/Makefile.am b/examples/C/read_all/Makefile.am
index ae7ec47..ed010fc 100644
--- a/examples/C/read_all/Makefile.am
+++ b/examples/C/read_all/Makefile.am
@@ -3,10 +3,16 @@ INCLUDES += -I$(top_builddir)/src -I$(top_builddir)/src/public
 
 AUTOMAKE_OPTIONS = no-dependencies
 
-noinst_PROGRAMS = read_all
+noinst_PROGRAMS = read_all read_all_v1
 
 read_all_SOURCES = read_all.c
-read_all_CPPFLAGS = -D_NOMPI -DADIOS_USE_READ_API_1
+read_all_CPPFLAGS = ${MACRODEFFLAG}_NOMPI 
 read_all_LDADD = $(top_builddir)/src/libadiosread_nompi.a 
 read_all_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 read_all_LDADD += $(ADIOSREADLIB_LDADD)
+
+read_all_v1_SOURCES = read_all_v1.c
+read_all_v1_CPPFLAGS = ${MACRODEFFLAG}_NOMPI ${MACRODEFFLAG}ADIOS_USE_READ_API_1
+read_all_v1_LDADD = $(top_builddir)/src/libadiosread_nompi.a 
+read_all_v1_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+read_all_v1_LDADD += $(ADIOSREADLIB_LDADD)
diff --git a/examples/C/read_all/Makefile.in b/examples/C/read_all/Makefile.in
index acf7012..8579d05 100644
--- a/examples/C/read_all/Makefile.in
+++ b/examples/C/read_all/Makefile.in
@@ -34,7 +34,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = read_all$(EXEEXT)
+noinst_PROGRAMS = read_all$(EXEEXT) read_all_v1$(EXEEXT)
 subdir = examples/C/read_all
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -72,6 +74,13 @@ read_all_DEPENDENCIES = $(top_builddir)/src/libadiosread_nompi.a \
 read_all_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(read_all_LDFLAGS) \
 	$(LDFLAGS) -o $@
+am_read_all_v1_OBJECTS = read_all_v1-read_all_v1.$(OBJEXT)
+read_all_v1_OBJECTS = $(am_read_all_v1_OBJECTS)
+read_all_v1_DEPENDENCIES = $(top_builddir)/src/libadiosread_nompi.a \
+	$(am__DEPENDENCIES_1)
+read_all_v1_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(read_all_v1_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp =
 am__depfiles_maybe =
@@ -84,8 +93,8 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(read_all_SOURCES)
-DIST_SOURCES = $(read_all_SOURCES)
+SOURCES = $(read_all_SOURCES) $(read_all_v1_SOURCES)
+DIST_SOURCES = $(read_all_SOURCES) $(read_all_v1_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -137,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -159,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -184,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -240,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -300,15 +319,20 @@ INCLUDES = $(all_includes) -I$(top_builddir)/src \
 	-I$(top_builddir)/src/public
 AUTOMAKE_OPTIONS = no-dependencies
 read_all_SOURCES = read_all.c
-read_all_CPPFLAGS = -D_NOMPI -DADIOS_USE_READ_API_1
+read_all_CPPFLAGS = ${MACRODEFFLAG}_NOMPI 
 read_all_LDADD = $(top_builddir)/src/libadiosread_nompi.a \
 	$(ADIOSREADLIB_LDADD)
 read_all_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+read_all_v1_SOURCES = read_all_v1.c
+read_all_v1_CPPFLAGS = ${MACRODEFFLAG}_NOMPI ${MACRODEFFLAG}ADIOS_USE_READ_API_1
+read_all_v1_LDADD = $(top_builddir)/src/libadiosread_nompi.a \
+	$(ADIOSREADLIB_LDADD)
+read_all_v1_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -333,9 +357,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
@@ -350,6 +374,9 @@ clean-noinstPROGRAMS:
 read_all$(EXEEXT): $(read_all_OBJECTS) $(read_all_DEPENDENCIES) 
 	@rm -f read_all$(EXEEXT)
 	$(read_all_LINK) $(read_all_OBJECTS) $(read_all_LDADD) $(LIBS)
+read_all_v1$(EXEEXT): $(read_all_v1_OBJECTS) $(read_all_v1_DEPENDENCIES) 
+	@rm -f read_all_v1$(EXEEXT)
+	$(read_all_v1_LINK) $(read_all_v1_OBJECTS) $(read_all_v1_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -372,6 +399,12 @@ read_all-read_all.o: read_all.c
 read_all-read_all.obj: read_all.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(read_all_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o read_all-read_all.obj `if test -f 'read_all.c'; then $(CYGPATH_W) 'read_all.c'; else $(CYGPATH_W) '$(srcdir)/read_all.c'; fi`
 
+read_all_v1-read_all_v1.o: read_all_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(read_all_v1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o read_all_v1-read_all_v1.o `test -f 'read_all_v1.c' || echo '$(srcdir)/'`read_all_v1.c
+
+read_all_v1-read_all_v1.obj: read_all_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(read_all_v1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o read_all_v1-read_all_v1.obj `if test -f 'read_all_v1.c'; then $(CYGPATH_W) 'read_all_v1.c'; else $(CYGPATH_W) '$(srcdir)/read_all_v1.c'; fi`
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/examples/C/read_all/read_all.c b/examples/C/read_all/read_all.c
index 13f7bf5..b38c26e 100644
--- a/examples/C/read_all/read_all.c
+++ b/examples/C/read_all/read_all.c
@@ -27,37 +27,33 @@ int main (int argc, char ** argv)
     void      * data = NULL;
     uint64_t    start[] = {0,0,0,0,0,0,0,0,0,0};
     uint64_t    count[10], bytes_read = 0;
+    ADIOS_SELECTION *sel;
 
     if (argc < 2) {
         printf("Usage: %s <BP-file>\n", argv[0]);
         return 1;
     }
 
-    ADIOS_FILE * f = adios_fopen (argv[1], comm_dummy);
-    if (f == NULL) {
-        printf ("%s\n", adios_errmsg());
-        return -1;
-    }
-
-    /* For all groups */
-    for (gidx = 0; gidx < f->groups_count; gidx++) {
-        printf("Group %s:\n", f->group_namelist[gidx]);
-        ADIOS_GROUP * g = adios_gopen (f, f->group_namelist[gidx]);
-        if (g == NULL) {
+    ADIOS_FILE * f;
+    //int step;
+    //for (step=0; step < 2; step++) {
+        f = adios_read_open_file (argv[1], ADIOS_READ_METHOD_BP, comm_dummy);
+        if (f == NULL) {
             printf ("%s\n", adios_errmsg());
             return -1;
         }
 
         /* For all variables */
-        printf("  Variables=%d:\n", g->vars_count);
-        for (i = 0; i < g->vars_count; i++) {
-            ADIOS_VARINFO * v = adios_inq_var_byid (g, i);
+        printf("  Variables=%d:\n", f->nvars);
+        for (i = 0; i < f->nvars; i++) {
+            ADIOS_VARINFO * v = adios_inq_var_byid (f, i);
+            adios_inq_var_stat (f, v, 0, 0);
 
             uint64_t total_size = adios_type_size (v->type, v->value);
             for (j = 0; j < v->ndim; j++)
                 total_size *= v->dims[j];
 
-            printf("    %-9s  %s", adios_type_to_string(v->type), g->var_namelist[i]);
+            printf("    %-9s  %s", adios_type_to_string(v->type), f->var_namelist[i]);
             if (v->ndim == 0) {
                 /* Scalars do not need to be read in, we get it from the metadata
                    when using adios_inq_var */
@@ -67,8 +63,13 @@ int main (int argc, char ** argv)
                 printf("[%d",v->dims[0]);
                 for (j = 1; j < v->ndim; j++)
                     printf(", %d",v->dims[j]);
-                printf("] = \n");
-
+                //printf("] = \n");
+                
+                if (v->type == adios_integer)
+                    printf("] = min=%d  max=%d\n", (*(int*)v->statistics->min), (*(int*)v->statistics->max));
+                else if (v->type == adios_double)
+                    printf("] = min=%lg  max=%lg\n", (*(double*)v->statistics->min), (*(double*)v->statistics->max));
+                
                 if (total_size > 1024*1024*1024) {
                     printf("        // too big, do not read in\n");
                 } else {
@@ -80,8 +81,10 @@ int main (int argc, char ** argv)
 
                     for (j = 0; j < v->ndim; j++) 
                         count[j] = v->dims[j];   
-                    
-                    bytes_read = adios_read_var_byid (g, i, start, count, data);
+
+                    sel = adios_selection_boundingbox (v->ndim, start, count);
+                    adios_schedule_read_byid (f, sel, i, 0, 1, data);
+                    adios_perform_reads (f, 1);
 
                     if (bytes_read < 0) {
                         printf ("%s\n", adios_errmsg());
@@ -96,7 +99,7 @@ int main (int argc, char ** argv)
                         for (j = 0; j < v->dims[0]; j++) {
                             printf ("        row %d: [", j);
                             for (k = 0; k < v->dims[1]; k++) 
-                               printf("%s ", value_to_string(v->type, data, j*v->dims[1] + k));
+                                printf("%s ", value_to_string(v->type, data, j*v->dims[1] + k));
                             printf ("]\n");
                         }
                     } else if (v->ndim == 3) {
@@ -122,22 +125,20 @@ int main (int argc, char ** argv)
         } /* variables */
 
         /* For all attributes */
-        printf("  Attributes=%d:\n", g->attrs_count);
-        for (i = 0; i < g->attrs_count; i++) {
+        printf("  Attributes=%d:\n", f->nattrs);
+        for (i = 0; i < f->nattrs; i++) {
             enum ADIOS_DATATYPES atype;
             int  asize;
             void *adata;
-            adios_get_attr_byid (g, i, &atype, &asize, &adata);
+            adios_get_attr_byid (f, i, &atype, &asize, &adata);
             printf("    %-9s  %s = %s\n", adios_type_to_string(atype), 
-                    g->attr_namelist[i], value_to_string(atype, adata, 0));
+                    f->attr_namelist[i], value_to_string(atype, adata, 0));
             free(adata);
         } /* attributes */
 
-        adios_gclose (g);
-    } /* groups */
-
-    adios_fclose (f);
+        adios_read_close (f);
 
+    //} /* loop 'step' */
     return 0;
 }
 
diff --git a/examples/C/read_all/read_all_v1.c b/examples/C/read_all/read_all_v1.c
new file mode 100644
index 0000000..3bcb19d
--- /dev/null
+++ b/examples/C/read_all/read_all_v1.c
@@ -0,0 +1,220 @@
+/* 
+ * ADIOS is freely available under the terms of the BSD license described
+ * in the COPYING file in the top level directory of this source distribution.
+ *
+ * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
+ */
+
+/* ADIOS C Example: 
+ *  read all variables and attributes from 
+ *    all groups in a BP file
+ *
+ * This is a sequential program.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "adios_read.h"
+
+const char * value_to_string (enum ADIOS_DATATYPES type, void * data, int idx);
+
+int main (int argc, char ** argv) 
+{
+    char        filename [256];
+    int         rank, size, gidx, i, j, k,l;
+    MPI_Comm    comm_dummy = 0;  /* MPI_Comm is defined through adios_read.h */
+    enum ADIOS_DATATYPES attr_type;
+    void      * data = NULL;
+    uint64_t    start[] = {0,0,0,0,0,0,0,0,0,0};
+    uint64_t    count[10], bytes_read = 0;
+
+    if (argc < 2) {
+        printf("Usage: %s <BP-file>\n", argv[0]);
+        return 1;
+    }
+
+    ADIOS_FILE * f;
+    //int step;
+    //for (step=0; step < 2; step++) {
+        f = adios_fopen (argv[1], comm_dummy);
+        if (f == NULL) {
+            printf ("%s\n", adios_errmsg());
+            return -1;
+        }
+
+        /* For all groups */
+        for (gidx = 0; gidx < f->groups_count; gidx++) {
+            printf("Group %s:\n", f->group_namelist[gidx]);
+            ADIOS_GROUP * g = adios_gopen (f, f->group_namelist[gidx]);
+            if (g == NULL) {
+                printf ("%s\n", adios_errmsg());
+                return -1;
+            }
+
+            /* For all variables */
+            printf("  Variables=%d:\n", g->vars_count);
+            for (i = 0; i < g->vars_count; i++) {
+                ADIOS_VARINFO * v = adios_inq_var_byid (g, i);
+
+                uint64_t total_size = adios_type_size (v->type, v->value);
+                for (j = 0; j < v->ndim; j++)
+                    total_size *= v->dims[j];
+
+                printf("    %-9s  %s", adios_type_to_string(v->type), g->var_namelist[i]);
+                if (v->ndim == 0) {
+                    /* Scalars do not need to be read in, we get it from the metadata
+                       when using adios_inq_var */
+                    printf(" = %s\n", value_to_string(v->type, v->value, 0));
+                } else {
+                    /* Arrays have to be read in from the file */
+                    printf("[%d",v->dims[0]);
+                    for (j = 1; j < v->ndim; j++)
+                        printf(", %d",v->dims[j]);
+                    //printf("] = \n");
+                    if (v->type == adios_integer)
+                        printf("] = min=%d  max=%d  timedim=%d\n", (*(int*)v->gmin), (*(int*)v->gmax), v->timedim);
+                    else if (v->type == adios_double)
+                        printf("] = min=%lg  max=%lg  timedim=%d\n", (*(double*)v->gmin), (*(double*)v->gmax), v->timedim);
+                    if (total_size > 1024*1024*1024) {
+                        printf("        // too big, do not read in\n");
+                    } else {
+                        data = malloc (total_size);
+                        if (data == NULL) {
+                            fprintf (stderr, "malloc failed.\n");
+                            return -1;
+                        }
+
+                        for (j = 0; j < v->ndim; j++) 
+                            count[j] = v->dims[j];   
+
+                        bytes_read = adios_read_var_byid (g, i, start, count, data);
+
+                        if (bytes_read < 0) {
+                            printf ("%s\n", adios_errmsg());
+                        } else if (bytes_read > 1024*1024) {
+                            printf ("Too big to print\n");
+                        } else if (v->ndim == 1) {
+                            printf ("        [");
+                            for (j = 0; j < v->dims[0]; j++) 
+                                printf("%s ", value_to_string(v->type, data, j));
+                            printf ("]\n");
+                        } else if (v->ndim == 2) {
+                            for (j = 0; j < v->dims[0]; j++) {
+                                printf ("        row %d: [", j);
+                                for (k = 0; k < v->dims[1]; k++) 
+                                    printf("%s ", value_to_string(v->type, data, j*v->dims[1] + k));
+                                printf ("]\n");
+                            }
+                        } else if (v->ndim == 3) {
+                            for (j = 0; j < v->dims[0]; j++) {
+                                printf ("      block %d: \n", j);
+                                for (k = 0; k < v->dims[1]; k++) {
+                                    printf ("        row %d: [", k);
+                                    for (l = 0; l < v->dims[2]; l++) {
+                                        printf("%s ", value_to_string(v->type, data, j*v->dims[1]*v->dims[2] + k*v->dims[1] + l));
+                                    }
+                                    printf ("]\n");
+                                }
+                                printf ("\n");
+                            }
+                        } else {
+                            printf ("    cannot print arrays with >3 dimensions\n");
+                        }
+                        free (data);
+                    }
+                }
+
+                adios_free_varinfo (v);
+            } /* variables */
+
+            /* For all attributes */
+            printf("  Attributes=%d:\n", g->attrs_count);
+            for (i = 0; i < g->attrs_count; i++) {
+                enum ADIOS_DATATYPES atype;
+                int  asize;
+                void *adata;
+                adios_get_attr_byid (g, i, &atype, &asize, &adata);
+                printf("    %-9s  %s = %s\n", adios_type_to_string(atype), 
+                        g->attr_namelist[i], value_to_string(atype, adata, 0));
+                free(adata);
+            } /* attributes */
+
+            adios_gclose (g);
+        } /* groups */
+
+        adios_fclose (f);
+
+    //} /* loop 'step' */
+    return 0;
+}
+
+
+const char * value_to_string (enum ADIOS_DATATYPES type, void * data, int idx)
+{
+    static char s [100];
+    s [0] = 0;
+
+
+    switch (type)
+    {
+        case adios_unsigned_byte:
+            sprintf (s, "%u", ((uint8_t *) data)[idx]);
+            break;
+
+        case adios_byte:
+            sprintf (s, "%d", ((int8_t *) data)[idx]);
+            break;
+
+        case adios_short:
+            sprintf (s, "%hd", ((int16_t *) data)[idx]);
+            break;
+
+        case adios_unsigned_short:
+            sprintf (s, "%hu", ((uint16_t *) data)[idx]);
+            break;
+
+        case adios_integer:
+            sprintf (s, "%d", ((int32_t *) data)[idx]);
+            break;
+
+        case adios_unsigned_integer:
+            sprintf (s, "%u", ((uint32_t *) data)[idx]);
+            break;
+
+        case adios_long:
+            sprintf (s, "%lld", ((int64_t *) data)[idx]);
+            break;
+
+        case adios_unsigned_long:
+            sprintf (s, "%llu", ((uint64_t *) data)[idx]);
+            break;
+
+        case adios_real:
+            sprintf (s, "%g", ((float *) data)[idx]);
+            break;
+
+        case adios_double:
+            sprintf (s, "%lg", ((double *) data)[idx]);
+            break;
+
+        case adios_long_double:
+            sprintf (s, "%Lg", ((long double *) data)[idx]);
+            break;
+
+        case adios_string:
+            return (char*) ((char *)data+idx);
+            break;
+
+        case adios_complex:
+            sprintf (s, "(%g, %g)", 
+                    ((float *) data)[2*idx], ((float *) data)[2*idx+1]);
+            break;
+
+        case adios_double_complex:
+            sprintf (s, "(%lg, %lg)", 
+                    ((double *) data)[2*idx], ((double *) data)[2*idx+1]);
+            break;
+    }
+
+    return s;
+}
diff --git a/examples/C/scalars/CMakeLists.txt b/examples/C/scalars/CMakeLists.txt
new file mode 100644
index 0000000..d9d4255
--- /dev/null
+++ b/examples/C/scalars/CMakeLists.txt
@@ -0,0 +1,15 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/scalars)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/scalars)
+
+add_executable(scalars_write scalars_write.c)
+target_link_libraries(scalars_write adios ${ADIOSLIB_LDADD})
+
+add_executable(scalars_read scalars_read.c)
+target_link_libraries(scalars_read adiosread ${ADIOSREADLIB_LDADD})
+
+add_executable(scalars_write_step scalars_write.c)
+target_link_libraries(scalars_write_step adios ${ADIOSLIB_LDADD})
+
+#install(FILES scalars.xml gwrite_scalars.ch gread_scalars.ch job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/C/scalars)
diff --git a/examples/C/scalars/Makefile.am b/examples/C/scalars/Makefile.am
index 3c70675..90a6124 100644
--- a/examples/C/scalars/Makefile.am
+++ b/examples/C/scalars/Makefile.am
@@ -10,9 +10,9 @@ scalars_write_LDADD = $(top_builddir)/src/libadios.a
 scalars_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 scalars_write_LDADD += $(ADIOSLIB_LDADD)
 scalars_read_SOURCES = scalars_read.c
-scalars_read_LDADD = $(top_builddir)/src/libadios.a 
-scalars_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-scalars_read_LDADD += $(ADIOSLIB_LDADD)
+scalars_read_LDADD = $(top_builddir)/src/libadiosread.a 
+scalars_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+scalars_read_LDADD += $(ADIOSREADLIB_LDADD)
 scalars_write_step_SOURCES = scalars_write.c
 scalars_write_step_LDADD = $(top_builddir)/src/libadios.a
 scalars_write_step_LDFLAGS = $(ADIOSLIB_LDFLAGS)
diff --git a/examples/C/scalars/Makefile.in b/examples/C/scalars/Makefile.in
index 7f7a1a3..b08ba8c 100644
--- a/examples/C/scalars/Makefile.in
+++ b/examples/C/scalars/Makefile.in
@@ -37,14 +37,16 @@ host_triplet = @host@
 noinst_PROGRAMS = scalars_write$(EXEEXT) scalars_read$(EXEEXT) \
 	scalars_write_step$(EXEEXT)
 subdir = examples/C/scalars
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -68,7 +70,7 @@ PROGRAMS = $(noinst_PROGRAMS)
 am_scalars_read_OBJECTS = scalars_read.$(OBJEXT)
 scalars_read_OBJECTS = $(am_scalars_read_OBJECTS)
 am__DEPENDENCIES_1 =
-scalars_read_DEPENDENCIES = $(top_builddir)/src/libadios.a \
+scalars_read_DEPENDENCIES = $(top_builddir)/src/libadiosread.a \
 	$(am__DEPENDENCIES_1)
 scalars_read_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -154,6 +156,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -176,6 +182,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -201,6 +210,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -257,6 +267,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -320,8 +332,9 @@ scalars_write_SOURCES = scalars_write.c
 scalars_write_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 scalars_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 scalars_read_SOURCES = scalars_read.c
-scalars_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
-scalars_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+scalars_read_LDADD = $(top_builddir)/src/libadiosread.a \
+	$(ADIOSREADLIB_LDADD)
+scalars_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 scalars_write_step_SOURCES = scalars_write.c
 scalars_write_step_LDADD = $(top_builddir)/src/libadios.a \
 	$(ADIOSLIB_LDADD)
@@ -332,7 +345,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -357,9 +370,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/scalars/README b/examples/C/scalars/README
deleted file mode 100644
index 2677693..0000000
--- a/examples/C/scalars/README
+++ /dev/null
@@ -1,33 +0,0 @@
-The scalars_write.F90 example shows how to write out scalar variables
-from a Fortran code. 
-
-Note that in ADIOS 1.0, a string is a scalar as seen in this example. 
-However, a character() array in Fortran can be written out as a byte
-array too.
-
-Note that each process writes an scalar with the same name into 
-the scalars.bp file if the MPI method is used. 
-Only one of them can be seen with the generic read API and tools based on 
-this API like bpls. 
-
-However, you can read each scalar from the separate processes with the 
-specific API on the same number of processors you write them out 
-(see scalars_read.F90)
-
-How to build the code on your own:
-
-1. Generate the gwrite/gread include files from the XML file
-    $ gpp.py scalars.xml
-    $ ls *.fh
-    gread_scalars.fh  gwrite_scalars.fh
-
-2. Compile and link the code, with environment variables ADIOS_DIR pointing
-   to the ADIOS installation directory and MXML_DIR pointing to the MXML
-   installation directory (substitute mpif90 with your F90 compiler):
-   $ mpif90 -o scalars_write scalars_write.F90 -I${ADIOS_DIR}/include \
-            -L${ADIOS_DIR}/lib -ladiosf -L${MXML_DIR}/lib -lmxml
-   $ mpif90 -o scalars_read scalars_read.F90 -I${ADIOS_DIR}/include \
-            -L${ADIOS_DIR}/lib -ladiosf -L${MXML_DIR}/lib -lmxml
- 
-
-
diff --git a/examples/C/scalars/scalars_read.c b/examples/C/scalars/scalars_read.c
index 7555c75..9596526 100644
--- a/examples/C/scalars/scalars_read.c
+++ b/examples/C/scalars/scalars_read.c
@@ -11,7 +11,7 @@
 #include <stdio.h>
 #include <string.h>
 #include "mpi.h"
-#include "adios.h"
+#include "adios_read.h"
 
 typedef struct complex
 {
@@ -33,10 +33,8 @@ int main (int argc, char ** argv)
     int         NX = 10; 
     double      t[NX];
     MPI_Comm    comm = MPI_COMM_WORLD;
-
-    int         adios_err;
-    uint64_t    adios_groupsize, adios_totalsize;
-    int64_t     adios_handle, adios_buf_size;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+    ADIOS_SELECTION * sel1=NULL;
 
     int8_t  v1 = 0;
     int16_t v2 = 0;
@@ -51,7 +49,7 @@ int main (int argc, char ** argv)
     float v9 = 0.0;
     double v10 = 0.0;
 
-    char v11[20];
+    char v11[256];
 
     complex v12;
     v12.r = 0.0;
@@ -66,16 +64,25 @@ int main (int argc, char ** argv)
 
     strcpy (filename, "scalars.bp");
 
-    adios_init ("scalars.xml");
-    adios_open (&adios_handle, "scalars", filename, "r", &comm);
-#include "gread_scalars.ch"
-    adios_close (adios_handle);
-
-    MPI_Barrier (comm);
-
-    adios_finalize (rank);
-
-    MPI_Finalize ();
+    adios_read_init_method (method, comm, "verbose=3");
+    ADIOS_FILE * f = adios_read_open (filename, method, comm, ADIOS_LOCKMODE_NONE, 0.0);
+
+    adios_schedule_read (f, sel1, "var_byte",           0, 1, &v1);
+    adios_schedule_read (f, sel1, "var_short",          0, 1, &v2);
+    adios_schedule_read (f, sel1, "var_int",            0, 1, &v3);
+    adios_schedule_read (f, sel1, "var_long",           0, 1, &v4);
+    adios_schedule_read (f, sel1, "var_ubyte",          0, 1, &v5);
+    adios_schedule_read (f, sel1, "var_ushort",         0, 1, &v6);
+    adios_schedule_read (f, sel1, "var_uint",           0, 1, &v7);
+    adios_schedule_read (f, sel1, "var_ulong",          0, 1, &v8);
+    adios_schedule_read (f, sel1, "var_real",           0, 1, &v9);
+    adios_schedule_read (f, sel1, "var_double",         0, 1, &v10);
+    /* note that a string is an array and thus v11 a pointer already, 
+       so we pass the v11 instead of &v11 here */
+    adios_schedule_read (f, sel1, "var_string",         0, 1, v11);
+    adios_schedule_read (f, sel1, "var_complex",        0, 1, &v12);
+    adios_schedule_read (f, sel1, "var_double_complex", 0, 1, &v13);
+    adios_perform_reads (f,1);
 
     if (rank == 0) {
         printf("byte        v1  = %d\n", v1);
@@ -97,5 +104,10 @@ int main (int argc, char ** argv)
         printf("dbl-complex v13 = (%g, i%g)\n", v13.r, v13.i);
     }
 
+    adios_read_close (f);
+    MPI_Barrier (comm);
+    adios_read_finalize_method (ADIOS_READ_METHOD_BP);
+    MPI_Finalize ();
+
     return 0;
 }
diff --git a/examples/C/scalars/scalars_write.c b/examples/C/scalars/scalars_write.c
index 9f5bca1..3ee25d2 100644
--- a/examples/C/scalars/scalars_write.c
+++ b/examples/C/scalars/scalars_write.c
@@ -70,8 +70,8 @@ int main (int argc, char ** argv)
        xml file but of course one can write the individual adios_write() 
        statements here too 
     */
-    adios_init ("scalars.xml");
-    adios_open (&adios_handle, "scalars", filename, "w", &comm);
+    adios_init ("scalars.xml", comm);
+    adios_open (&adios_handle, "scalars", filename, "w", comm);
 #include "gwrite_scalars.ch"
     adios_close (adios_handle);
 
diff --git a/examples/C/schema/CMakeLists.txt b/examples/C/schema/CMakeLists.txt
new file mode 100644
index 0000000..fa6beb6
--- /dev/null
+++ b/examples/C/schema/CMakeLists.txt
@@ -0,0 +1,18 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/schema)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/schema)
+
+add_executable(uniform uniform.c)
+target_link_libraries(uniform adios ${ADIOSLIB_LDADD})
+
+add_executable(rectilinear rectilinear.c)
+target_link_libraries(rectilinear adios ${ADIOSLIB_LDADD})
+
+add_executable(structured structured.c)
+target_link_libraries(structured adios ${ADIOSLIB_LDADD})
+
+add_executable(unstructured unstructured.c)
+target_link_libraries(unstructured adios ${ADIOSLIB_LDADD})
+
+#install(FILES structured.xml rectilinear.xml unstructured.xml uniform.xml DESTINATION ${PROJECT_BINARY_DIR}/examples/C/schema)
diff --git a/examples/C/schema/Makefile.in b/examples/C/schema/Makefile.in
index da57cef..62a72f5 100644
--- a/examples/C/schema/Makefile.in
+++ b/examples/C/schema/Makefile.in
@@ -43,8 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -161,6 +163,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -183,6 +189,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -208,6 +217,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -264,6 +274,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -341,7 +353,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -366,9 +378,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/C/schema/rectilinear.c b/examples/C/schema/rectilinear.c
index 978190d..befcf87 100644
--- a/examples/C/schema/rectilinear.c
+++ b/examples/C/schema/rectilinear.c
@@ -53,9 +53,9 @@ int main (int argc, char * argv[] )
 
     mean /= NX;
 
-    adios_init ("rectilinear.xml");
+    adios_init ("rectilinear.xml", comm);
 
-    adios_open (&adios_handle, "schema", filename, "w", &comm);
+    adios_open (&adios_handle, "schema", filename, "w", comm);
 
     adios_groupsize = 4 \
                       + 4 \
diff --git a/examples/C/schema/structured.c b/examples/C/schema/structured.c
index 4a1dde6..40201b6 100644
--- a/examples/C/schema/structured.c
+++ b/examples/C/schema/structured.c
@@ -52,32 +52,29 @@ int main (int argc, char * argv[] )
     }
     mean /= NX;
 
-    adios_init ("structured.xml");
+    adios_init ("structured.xml", comm);
 
-    adios_open (&adios_handle, "schema", filename, "w", &comm);
+    adios_open (&adios_handle, "schema", filename, "w", comm);
 
     adios_groupsize = 4 \
                       + 4 \
                 + 4 \
                 + 4 \
-                + 4 \
-                + 8 \
                 + strlen(str) \
                 + sizeof(float) * (size) * (NX) \
                 + sizeof(float) * (size) * (NX) \
-                + sizeof(float) * (2*NX*size) \
                 + sizeof(double) * (NX);
     adios_group_size (adios_handle, adios_groupsize, &adios_totalsize);
     adios_write (adios_handle, "NX", &NX);
     adios_write (adios_handle, "size", &size);
-    adios_write (adios_handle, "size2", &size2);
+    //adios_write (adios_handle, "size2", &size2);
     adios_write (adios_handle, "rank", &rank);
-    adios_write (adios_handle, "mean", &mean);
-    adios_write (adios_handle, "nspace", &nspace);
+    //adios_write (adios_handle, "mean", &mean);
+    //adios_write (adios_handle, "nspace", &nspace);
     adios_write (adios_handle, "X", X);
     adios_write (adios_handle, "Y", Y);
-    adios_write (adios_handle, "XY",  XY);
-    adios_write (adios_handle, "date", str);
+    //adios_write (adios_handle, "XY",  XY);
+    //adios_write (adios_handle, "date", str);
     adios_write (adios_handle, "temperature", t);
 
     adios_close (adios_handle);
diff --git a/examples/C/schema/structured.xml b/examples/C/schema/structured.xml
index 571fbf3..d3eac53 100644
--- a/examples/C/schema/structured.xml
+++ b/examples/C/schema/structured.xml
@@ -3,53 +3,16 @@
     <adios-group name="schema" coordination-communicator="comm">
     <var name="NX"   type="integer"/>
     <var name="size" type="integer"/>
-    <var name="size2" type="integer"/>
     <var name="rank" type="integer"/>
-    <var name="mean" type="double"/>
-    <var name="date" type="string" gwrite="str"/>
-    <var name="nspace" type="integer"/>
     <var name="X" dimensions="size,NX" type="float"/>
     <var name="Y" dimensions="size,NX" type="float"/>
-    <var name="XY" dimensions="size2" type="float"/>
     <global-bounds  dimensions="size,NX" offsets="rank,0">
-        <var name="temperature" mesh="mesh5" gwrite="t" gread="t" type="double" dimensions="1,NX"/>
+        <var name="temperature" mesh="mesh1" gwrite="t" gread="t" type="double" dimensions="1,NX"/>
     </global-bounds>
-    <!-- Mesh1: 
-         - dimensions
-         - points-multi-var
-         Note: nspace is not required for points-multi-var since 
-         the number of coordinates per node can be deducted from the number of 
-         variables provided to the points-multi-var tag
-    -->
     <mesh name="mesh1" type="structured" time-varying="no">
         <dimensions value="size,NX"/>
         <points-multi-var value="X,Y" />
     </mesh>
-    <!-- Mesh2:
-         - dimensions
-         - nspace 
-         - points-single-var
-    -->
-    <mesh name="mesh2" type="structured" time-varying="no">
-        <dimensions value="size,NX"/>
-        <nspace value="2" />
-        <points-single-var value="XY" />
-    </mesh>
-    <!-- Mesh3: 
-         - nspace
-         - dimensions
-         - points-single-var
-         nspace is the number of coordinates per point. By default nspace=ndim or
-         number of dimensions provided. However it is possible to have a 2D mesh in
-         3D space. In this case, if the points are provided in the form of a single 
-         1D array, nspace=3 is required in order to correctly extracts the X & Y 
-         coordinates. 
-    -->
-    <mesh name="mesh3" type="structured" time-varying="no">
-        <dimensions value="size,NX"/>
-        <nspace value="nspace" />
-        <points-single-var value="XY" />
-    </mesh>
 </adios-group>
 
 <method group="schema" method="MPI"/>
diff --git a/examples/C/schema/uniform.c b/examples/C/schema/uniform.c
index e2b1c2b..6420ea8 100644
--- a/examples/C/schema/uniform.c
+++ b/examples/C/schema/uniform.c
@@ -38,9 +38,9 @@ int main (int argc, char * argv[] )
 
     mean /= NX;
 
-    adios_init ("uniform.xml");
+    adios_init ("uniform.xml", comm);
 
-    adios_open (&adios_handle, "schema", filename, "w", &comm);
+    adios_open (&adios_handle, "schema", filename, "w", comm);
 
     adios_groupsize = 4 \
                       + 4 \
diff --git a/examples/C/schema/unstructured.c b/examples/C/schema/unstructured.c
index d072211..593adb9 100644
--- a/examples/C/schema/unstructured.c
+++ b/examples/C/schema/unstructured.c
@@ -402,9 +402,9 @@ int main (int argc, char ** argv )
 	cells[i] --;
     }
 
-    adios_init (xmlfilename);
+    adios_init (xmlfilename, comm);
 
-    adios_open (&adios_handle, "channel", filename, "w", &comm);
+    adios_open (&adios_handle, "channel", filename, "w", comm);
 
     adios_groupsize = 4 \
 	+ 4 \
diff --git a/examples/C/schema/unstructured.xml b/examples/C/schema/unstructured.xml
index d764363..591d2e3 100644
--- a/examples/C/schema/unstructured.xml
+++ b/examples/C/schema/unstructured.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<adios-config host-language="C">
+<adios-config host-language="C" schema-version="1.1">
     <adios-group name="channel" coordination-communicator="comm">
     <attribute name="Reference" path="/" value="http://people.sc.fsu.edu/~jburkardt/m_src/twod_to_vtk/twod_to_vtk.html"/>
 
@@ -8,9 +8,9 @@
 
     <var name="Nspace" type="integer"/>
   
-    <var name="U" mesh="mesh1" type="double" dimensions="npoints"/>
-    <var name="V" mesh="mesh1" type="double" dimensions="npoints"/>
-    <var name="T" mesh="mesh1" type="double" dimensions="npoints"/>
+    <var name="U" mesh="mesh1" center="point" time-steps="36,Nspace" type="double" time-series-format="xx" dimensions="npoints" hyperslab="0,32"/>
+    <var name="V" mesh="mesh1" center="point" time-scale="npoints,45,num_cells" type="double" dimensions="npoints" hyperslab="0,1,32"/>
+    <var name="T" mesh="mesh1" center="cell" type="double" dimensions="npoints"/>
 
     <var name="cells" type="integer" dimensions="num_cells,3"/>
     <var name="points" type="float" dimensions="npoints,2"/>
@@ -24,7 +24,7 @@
          - points-multi-var
          - uniform-cells
     -->
-    <mesh name="mesh1" type="unstructured" time-varying="no">
+    <mesh name="mesh1" type="unstructured" file="xgc-mesh.bp" time-varying="no" time-steps="npoints,32,Nspace" time-scale="Nspace,45.6,num_cells" time-series-format="xxxx">
         <nspace value="Nspace" /> 
         <points-multi-var value="points_X,points_Y" />
         <uniform-cells count="num_cells" data="cells" type="triangle" />
diff --git a/examples/C/stat/CMakeLists.txt b/examples/C/stat/CMakeLists.txt
new file mode 100644
index 0000000..4cc0c73
--- /dev/null
+++ b/examples/C/stat/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/C/stat)
+link_directories(${PROJECT_BINARY_DIR}/examples/C/stat)
+
+add_executable(stat_write stat_write.c)
+target_link_libraries(stat_write adios ${ADIOSLIB_LDADD})
+
+add_executable(stat_read stat_read.c)
+target_link_libraries(stat_read adios ${ADIOSREADLIB_LDADD})
+#set_target_properties(stat_read PROPERTIES COMPILE_FLAGS "-DADIOS_USE_READ_API_1")
+
+#install(FILES stat.xml gwrite_stat.ch gread_stat.ch job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/C/stat)
diff --git a/examples/C/stat/Makefile.am b/examples/C/stat/Makefile.am
index f29e5d4..d617545 100644
--- a/examples/C/stat/Makefile.am
+++ b/examples/C/stat/Makefile.am
@@ -10,10 +10,9 @@ stat_write_LDADD = $(top_builddir)/src/libadios.a
 stat_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 stat_write_LDADD += $(ADIOSLIB_LDADD)
 stat_read_SOURCES = stat_read.c
-stat_read_CPPFLAGS = -DADIOS_USE_READ_API_1
-stat_read_LDADD = $(top_builddir)/src/libadios.a 
-stat_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-stat_read_LDADD += $(ADIOSLIB_LDADD)
+stat_read_LDADD = $(top_builddir)/src/libadiosread.a 
+stat_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+stat_read_LDADD += $(ADIOSREADLIB_LDADD)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/C/stat/Makefile.in b/examples/C/stat/Makefile.in
index 6891675..2de815c 100644
--- a/examples/C/stat/Makefile.in
+++ b/examples/C/stat/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -64,10 +66,10 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
-am_stat_read_OBJECTS = stat_read-stat_read.$(OBJEXT)
+am_stat_read_OBJECTS = stat_read.$(OBJEXT)
 stat_read_OBJECTS = $(am_stat_read_OBJECTS)
 am__DEPENDENCIES_1 =
-stat_read_DEPENDENCIES = $(top_builddir)/src/libadios.a \
+stat_read_DEPENDENCIES = $(top_builddir)/src/libadiosread.a \
 	$(am__DEPENDENCIES_1)
 stat_read_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -144,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -166,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -191,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -247,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -310,16 +322,16 @@ stat_write_SOURCES = stat_write.c
 stat_write_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 stat_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 stat_read_SOURCES = stat_read.c
-stat_read_CPPFLAGS = -DADIOS_USE_READ_API_1
-stat_read_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
-stat_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+stat_read_LDADD = $(top_builddir)/src/libadiosread.a \
+	$(ADIOSREADLIB_LDADD)
+stat_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = stat.xml gwrite_stat.ch gread_stat.ch job.pbs
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -344,9 +356,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
@@ -380,12 +392,6 @@ distclean-compile:
 .c.lo:
 	$(LTCOMPILE) -c -o $@ $<
 
-stat_read-stat_read.o: stat_read.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat_read_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat_read-stat_read.o `test -f 'stat_read.c' || echo '$(srcdir)/'`stat_read.c
-
-stat_read-stat_read.obj: stat_read.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat_read_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat_read-stat_read.obj `if test -f 'stat_read.c'; then $(CYGPATH_W) 'stat_read.c'; else $(CYGPATH_W) '$(srcdir)/stat_read.c'; fi`
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/examples/C/stat/stat_read.c b/examples/C/stat/stat_read.c
index f2ca8d0..dd949e2 100644
--- a/examples/C/stat/stat_read.c
+++ b/examples/C/stat/stat_read.c
@@ -19,90 +19,123 @@ int main (int argc, char ** argv)
     char        filename [256];
     int         rank, size, i, j, k;
     MPI_Comm    comm = MPI_COMM_WORLD;
-    void * data = NULL;
+    enum ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP;
+
     uint64_t start[3], count[3], bytes_read = 0;
 
     MPI_Init (&argc, &argv);
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    ADIOS_FILE * f = adios_fopen ("adios_stat.bp", comm);
+    adios_read_init_method (method, comm, "verbose=3");
+    ADIOS_FILE * f = adios_read_open_file("adios_stat.bp", method, comm);
     if (f == NULL)
     {
-        printf ("%s\n", adios_errmsg());
+        fprintf (stderr, "%s\n", adios_errmsg());
         return -1;
     }
 
-    ADIOS_GROUP * g = adios_gopen (f, "temperature");
-    if (g == NULL)
-    {
-        printf ("%s\n", adios_errmsg());
-        return -1;
+    ADIOS_VARINFO * v = adios_inq_var (f, "temperature");
+    if (v) {
+        /* get statistics, for each individual time-step */ 
+        adios_inq_var_stat (f, v, 1, 0);
+
+
+        printf("Global MIN of temperature: %lf\n", * (double *) v->statistics->min);
+        printf("Global MAX of temperature: %lf\n", * (double *) v->statistics->max);
+        printf("Global AVG of temperature: %lf\n", * (double *) v->statistics->avg);
+        printf("Global STD DEV of temperature: %lf\n", * (double *) v->statistics->std_dev);
+
+        printf("\n");
+        printf("---------------------------------------------------------------------------\n");
+        if (v->statistics->steps) {
+            printf("MIN\t\tMAX\t\tAVG\t\tSTD_DEV\t\tHISTOGRAM\n");
+            for(i = 0; i < v->nsteps; i++)
+            {
+                if (v->statistics->steps->mins[i]) 
+                    printf("%lf\t", * (double *) v->statistics->steps->mins[i]);
+                else
+                    printf("--\t\t");
+                if (v->statistics->steps->maxs[i]) 
+                    printf("%lf\t", * (double *) v->statistics->steps->maxs[i]);
+                else
+                    printf("--\t\t");
+                if (v->statistics->steps->avgs[i]) 
+                    printf("%lf\t", * (double *) v->statistics->steps->avgs[i]);
+                else
+                    printf("--\t\t");
+                if (v->statistics->steps->std_devs[i]) 
+                    printf("%lf\t", * (double *) v->statistics->steps->std_devs[i]);
+                else
+                    printf("--\t\t");
+                if (v->statistics->histogram) {
+                    for(j = 0; j <= v->statistics->histogram->num_breaks; j++) {
+                        printf("%d ", v->statistics->histogram->frequencies[i][j]);
+                    }
+                    printf("\n");
+                } else {
+                    printf("--\t\t");
+                }
+                printf("\n");
+            }	
+        } else {
+            printf ("Per step statistics is missing\n"); 
+        }
+        printf("---------------------------------------------------------------------------\n");
+        printf("\n");
+
+        if (v->statistics->histogram) {
+            printf("Break points:\t\t\t");
+            for(j = 0; j < v->statistics->histogram->num_breaks; j++)
+                printf("%6.2lf\t", v->statistics->histogram->breaks[j]);
+
+            printf("\n");
+
+            printf("Frequencies:\t\t\t");
+            for(j = 0; j <= v->statistics->histogram->num_breaks; j++)
+                printf("%6d\t", v->statistics->histogram->gfrequencies[j]);
+        }
+
+        printf("\n\n");
+
+#if 0 
+        printf ("Auto covariance of MIN values of temperature over time: %lf\n", adios_stat_cov (v, v, "min", 0, 12, 0));
+        printf ("Auto correlation of MAX values of temperature over time, with lag 2 units: %lf\n", adios_stat_cor (v, v, "max", 0, 8, 2));
+        printf("\n\n");
+#endif 
+
+        adios_free_varinfo (v);
+
+    } else {
+        fprintf (stderr, "ERROR: Cannot inquire statistics of variable 'temperature': %s\n", adios_errmsg());
     }
 
-    ADIOS_VARINFO * v = adios_inq_var (g, "temperature");
-
-    printf("Global MIN of temperature: %lf\n", * (double *) v->gmin);
-    printf("Global MAX of temperature: %lf\n", * (double *) v->gmax);
-    printf("Global AVG of temperature: %lf\n", * (double *) v->gavg);
-    printf("Global STD DEV of temperature: %lf\n", * (double *) v->gstd_dev);
-
-	printf("\n");
-	printf("---------------------------------------------------------------------------\n");
-	printf("MIN\t\tMAX\t\tAVG\t\tSTD_DEV\t\tHISTOGRAM\n");
-	for(i = 0; v->ndim >= 0 && (i < v->dims[0]); i ++)
-	{
-		printf("%lf\t", * (double *) v->mins[i]);
-		printf("%lf\t", * (double *) v->maxs[i]);
-		printf("%lf\t", * (double *) v->avgs[i]);
-		printf("%lf\t", * (double *) v->std_devs[i]);
-		for(j = 0; j <= v->hist->num_breaks; j++)
-			printf("%d ", v->hist->frequenciess[i][j]);
-		printf("\n");
-		printf("\n");
-	}	
-	printf("---------------------------------------------------------------------------\n");
-	printf("\n");
-
-	printf("Break points:\t\t\t");
-	for(j = 0; j < v->hist->num_breaks; j++)
-		printf("%6.2lf\t", v->hist->breaks[j]);
-
-	printf("\n");
-
-	printf("Frequencies:\t\t\t");
-	for(j = 0; j <= v->hist->num_breaks; j++)
-		printf("%6d\t", v->hist->gfrequencies[j]);
-
-	printf("\n");
-	printf ("\nAuto covariance of MIN values of temperature over time: %lf\n", adios_stat_cov (v, v, "min", 0, 12, 0));
-	printf ("Auto correlationof MAX values of temperature over time, with lag 2 units: %lf\n", adios_stat_cor (v, v, "max", 0, 8, 2));
-
-	printf("\n\n");
-	v = adios_inq_var (g, "complex");
-    double *C = v->gmin;
-    printf("Global Minimum of variable complex - Magnitude: %lf\n", C[0]);
-    printf("Global Minimum of variable complex - Real part: %lf\n", C[1]);
-    printf("Global Minimum of variable complex - Imaginary part: %lfi\n", C[2]);
-
-	double ** Cmin;
-	Cmin = (double **) v->mins;
-
-	printf("\nMagnitude\t\tReal\t\t\tImaginary\n");
-	for (j = 0; v->ndim >= 0 &&  (j < v->dims[0]); j ++)
-	{
-		printf ("%lf\t\t%lf\t\t%lf\n", Cmin[j][0], Cmin[j][1], Cmin[j][2]);
-	}
-	printf("\n");
-
-    free (data);
-    adios_free_varinfo (v);
-
-    adios_gclose (g);
-    adios_fclose (f);
+    v = adios_inq_var (f, "complex");
+    if (v) {
+        adios_inq_var_stat (f, v, 1, 0);
+        double *C = v->statistics->min;
+        printf("Global Minimum of variable complex - Magnitude: %lf\n", C[0]);
+        printf("Global Minimum of variable complex - Real part: %lf\n", C[1]);
+        printf("Global Minimum of variable complex - Imaginary part: %lfi\n", C[2]);
+
+        double ** Cmin;
+        Cmin = (double **) v->statistics->steps->mins;
+
+        printf("\nMagnitude\t\tReal\t\t\tImaginary\n");
+        for (j = 0; j < v->nsteps; j++)
+        {
+            printf ("%lf\t\t%lf\t\t%lf\n", Cmin[j][0], Cmin[j][1], Cmin[j][2]);
+        }
+        printf("\n");
+        adios_free_varinfo (v);
+
+    } else {
+        fprintf (stderr, "ERROR: Cannot inquire statistics of variable 'complex': %s\n", adios_errmsg());
+    }
 
+    adios_read_close (f);
     MPI_Barrier (comm);
-
+    adios_read_finalize_method (method);
     MPI_Finalize ();
     return 0;
 }
diff --git a/examples/C/stat/stat_write.c b/examples/C/stat/stat_write.c
index a701eac..1ad2d8b 100644
--- a/examples/C/stat/stat_write.c
+++ b/examples/C/stat/stat_write.c
@@ -34,7 +34,7 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (MPI_COMM_WORLD, &rank);
     MPI_Comm_size (comm, &size);
 
-    adios_init ("stat.xml");
+    adios_init ("stat.xml", comm);
     strcpy (filename, "adios_stat.bp");
 
     for (it =0; it < 13; it++) {
@@ -47,9 +47,9 @@ int main (int argc, char ** argv)
         t[0] = 1 / 0.0;    
 
         if (it==0)
-            adios_open (&adios_handle, "temperature", filename, "w", &comm);
+            adios_open (&adios_handle, "temperature", filename, "w", comm);
         else
-            adios_open (&adios_handle, "temperature", filename, "a", &comm);
+            adios_open (&adios_handle, "temperature", filename, "a", comm);
 
 #include "gwrite_stat.ch"
         adios_close (adios_handle);
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..25dfae9
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,6 @@
+if(BUILD_WRITE)
+  add_subdirectory(C)
+  if(BUILD_FORTRAN)
+    add_subdirectory(Fortran)
+  endif(BUILD_FORTRAN)
+endif(BUILD_WRITE)
diff --git a/examples/Fortran/CMakeLists.txt b/examples/Fortran/CMakeLists.txt
new file mode 100644
index 0000000..5a00178
--- /dev/null
+++ b/examples/Fortran/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_subdirectory(scalars)
+add_subdirectory(arrays)
+add_subdirectory(global-array)
+add_subdirectory(global-array-time)
+
diff --git a/examples/Fortran/Makefile.in b/examples/Fortran/Makefile.in
index acca0a6..69950f5 100644
--- a/examples/Fortran/Makefile.in
+++ b/examples/Fortran/Makefile.in
@@ -40,8 +40,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -152,6 +154,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -174,6 +180,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -199,6 +208,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -255,6 +265,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -315,7 +327,7 @@ SUBDIRS = scalars arrays global-array global-array-time
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -340,9 +352,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/Fortran/arrays/CMakeLists.txt b/examples/Fortran/arrays/CMakeLists.txt
new file mode 100644
index 0000000..4a9164a
--- /dev/null
+++ b/examples/Fortran/arrays/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/Fortran/arrays)
+link_directories(${PROJECT_BINARY_DIR}/examples/Fortran/arrays)
+
+add_executable(arrays_write_f arrays_write.F90)
+target_link_libraries(arrays_write_f adiosf ${ADIOSLIB_LDADD})
+
+add_executable(arrays_read_f arrays_read.F90)
+target_link_libraries(arrays_read_f adiosreadf ${ADIOSREADLIB_LDADD})
+
+#install(FILES arrays.xml gwrite_arrays.fh gread_arrays.fh job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/Fortran/arrays)
diff --git a/examples/Fortran/arrays/Makefile.am b/examples/Fortran/arrays/Makefile.am
index 84d04e1..92fa8d3 100644
--- a/examples/Fortran/arrays/Makefile.am
+++ b/examples/Fortran/arrays/Makefile.am
@@ -11,9 +11,9 @@ arrays_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 arrays_write_LDADD += $(ADIOSLIB_LDADD)
 
 arrays_read_SOURCES = arrays_read.F90
-arrays_read_LDADD = $(top_builddir)/src/libadiosf.a 
-arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-arrays_read_LDADD += $(ADIOSLIB_LDADD)
+arrays_read_LDADD = $(top_builddir)/src/libadiosreadf.a 
+arrays_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+arrays_read_LDADD += $(ADIOSREADLIB_LDADD)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/Fortran/arrays/Makefile.in b/examples/Fortran/arrays/Makefile.in
index 1809722..5d3dea9 100644
--- a/examples/Fortran/arrays/Makefile.in
+++ b/examples/Fortran/arrays/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -67,7 +69,7 @@ PROGRAMS = $(noinst_PROGRAMS)
 am_arrays_read_OBJECTS = arrays_read.$(OBJEXT)
 arrays_read_OBJECTS = $(am_arrays_read_OBJECTS)
 am__DEPENDENCIES_1 =
-arrays_read_DEPENDENCIES = $(top_builddir)/src/libadiosf.a \
+arrays_read_DEPENDENCIES = $(top_builddir)/src/libadiosreadf.a \
 	$(am__DEPENDENCIES_1)
 arrays_read_LINK = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
@@ -141,6 +143,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -163,6 +169,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -188,6 +197,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -244,6 +254,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -306,8 +318,9 @@ arrays_write_SOURCES = arrays_write.F90
 arrays_write_LDADD = $(top_builddir)/src/libadiosf.a $(ADIOSLIB_LDADD)
 arrays_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 arrays_read_SOURCES = arrays_read.F90
-arrays_read_LDADD = $(top_builddir)/src/libadiosf.a $(ADIOSLIB_LDADD)
-arrays_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+arrays_read_LDADD = $(top_builddir)/src/libadiosreadf.a \
+	$(ADIOSREADLIB_LDADD)
+arrays_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = arrays.xml gwrite_arrays.fh gread_arrays.fh job.pbs
 FCLINK = \
@@ -318,7 +331,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -343,9 +356,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/Fortran/arrays/README b/examples/Fortran/arrays/README
index 964d5b4..828236d 100644
--- a/examples/Fortran/arrays/README
+++ b/examples/Fortran/arrays/README
@@ -6,8 +6,8 @@ into the arrays.bp file if the MPI method is used.
 Only one of them can be seen with the generic read API and tools based on 
 this API like bpls. 
 
-However, you can read each array in with the specific API on the same number
-of processors you write them out (see arrays_read.F90)
+However, you can read each array in using the selection for a specific writer
+(see arrays_read.F90).
 
 How to build the code on your own:
 
@@ -17,12 +17,12 @@ How to build the code on your own:
     gread_arrays.fh  gwrite_arrays.fh
 
 2. Compile and link the code, with environment variables ADIOS_DIR pointing
-   to the ADIOS installation directory and MXML_DIR pointing to the MXML
-   installation directory (substitute mpif90 with your F90 compiler):
-   $ mpif90 -o arrays_write arrays_write.F90 -I${ADIOS_DIR}/include \
-            -L${ADIOS_DIR}/lib -ladiosf -L${MXML_DIR}/lib -lmxml
-   $ mpif90 -o arrays_read arrays_read.F90 -I${ADIOS_DIR}/include \
-            -L${ADIOS_DIR}/lib -ladiosf -L${MXML_DIR}/lib -lmxml
+   to the ADIOS installation directory (substitute mpif90 with your F90 compiler):
+   $ ADIOS_INC=`$ADIOS_DIR/bin/adios_config -fc`
+   $ ADIOS_FLIB=`$ADIOS_DIR/bin/adios_config -fl`
+   $ ADIOS_FREADLIB=`$ADIOS_DIR/bin/adios_config -flr`
+   $ mpif90 -o arrays_write ${ADIOS_INC} arrays_write.F90 ${ADIOS_FLIB}
+   $ mpif90 -o arrays_read ${ADIOS_INC} arrays_read.F90 ${ADIOS_FREADLIB}
  
 
 
diff --git a/examples/Fortran/arrays/arrays_read.F90 b/examples/Fortran/arrays/arrays_read.F90
index 31f8d74..827885e 100644
--- a/examples/Fortran/arrays/arrays_read.F90
+++ b/examples/Fortran/arrays/arrays_read.F90
@@ -12,7 +12,7 @@
 !/*     Similar example is ../../C/manual/2_adios_read.c       */
 !/**************************************************************/
 program arrays
-    use adios_write_mod
+    use adios_read_mod
     implicit none
     include 'mpif.h'
 
@@ -21,9 +21,9 @@ program arrays
     integer             :: comm
 
     ! ADIOS variables declarations for matching gwrite_temperature.fh 
-    integer                 :: adios_err
-    integer*8               :: adios_groupsize, adios_totalsize
-    integer*8               :: adios_handle, adios_buf_size
+    integer*8               :: f
+    integer                 :: method = ADIOS_READ_METHOD_BP
+    integer*8               :: sel
 
     ! variables to read in 
     integer                 :: NX, NY
@@ -35,22 +35,20 @@ program arrays
     call MPI_Comm_rank (comm, rank, ierr)
     call MPI_Comm_size (comm, size, ierr)
 
-    call adios_init ("arrays.xml", adios_err);
-    call adios_open (adios_handle, "arrays", filename, "r", comm, adios_err);
+    call adios_read_init_method (method, comm, "verbose=3", ierr);
 
-    adios_groupsize = 0
-    adios_totalsize = 0
-    call adios_group_size (adios_handle, adios_groupsize, adios_totalsize, adios_err)
+    call adios_read_open (f, filename, method, comm, ADIOS_LOCKMODE_NONE, 1.0, ierr);
 
-    ! First read in the scalars to calculate the size of the arrays
-    adios_buf_size = 4
-    call adios_read (adios_handle, "NX", NX, adios_buf_size, adios_err)
-    adios_buf_size = 4
-    call adios_read (adios_handle, "NY", NY, adios_buf_size, adios_err)
-    
-    call adios_close (adios_handle, adios_err)
-    ! Note, we have to close to perform the reading of the variables above
+    ! select specific writer's data (using rank since each rank of the writer
+    ! wrote one block of the data)
+    call adios_selection_writeblock (sel, rank)
 
+    ! First get the scalars to calculate the size of the arrays.
+    ! Note that we cannot use adios_get_scalar here because that
+    !   retrieves the same NX for everyone (from writer rank 0).
+    call adios_schedule_read (f, sel, "NX", 1, 1, NX, ierr)
+    call adios_schedule_read (f, sel, "NY", 1, 1, NY, ierr)
+    call adios_perform_reads (f, ierr)
     write (*,'("rank=",i0," NX=",i0," NY=",i0)') rank, NX, NY
 
     ! Allocate space for the arrays
@@ -58,13 +56,9 @@ program arrays
     allocate (p(NX))
 
     ! Read the arrays
-    call adios_open (adios_handle, "arrays", filename, "r", comm, adios_err);
-    call adios_group_size (adios_handle, adios_groupsize, adios_totalsize, adios_err)
-    adios_buf_size = 8 * (NX) * (NY)
-    call adios_read (adios_handle, "var_double_2Darray", t, adios_buf_size, adios_err)
-    adios_buf_size = 4 * (NX)
-    call adios_read (adios_handle, "var_int_1Darray", p, adios_buf_size, adios_err)
-    call adios_close (adios_handle, adios_err)
+    call adios_schedule_read (f, sel, "var_double_2Darray", 1, 1, t, ierr)
+    call adios_schedule_read (f, sel, "var_int_1Darray", 1, 1, p, ierr)
+    call adios_perform_reads (f, ierr)
 
 
     ! Print the results
@@ -81,10 +75,9 @@ program arrays
     write (*,'(")")')
 
 
+    call adios_read_close (f, ierr)
     call MPI_Barrier (comm, ierr);
-
-    call adios_finalize (rank, adios_err);
-
+    call adios_read_finalize_method (method, ierr);
     call MPI_Finalize (ierr);
 
 end program
diff --git a/examples/Fortran/arrays/arrays_write.F90 b/examples/Fortran/arrays/arrays_write.F90
index a60cb25..7332168 100644
--- a/examples/Fortran/arrays/arrays_write.F90
+++ b/examples/Fortran/arrays/arrays_write.F90
@@ -44,7 +44,7 @@ program arrays
         p(i) = rank*NX + i
     enddo
 
-    call adios_init ("arrays.xml", adios_err);
+    call adios_init ("arrays.xml", comm, adios_err);
     call adios_open (adios_handle, "arrays", filename, "w", comm, adios_err);
 #include "gwrite_arrays.fh"
     call adios_close (adios_handle, adios_err)
diff --git a/examples/Fortran/global-array-time/CMakeLists.txt b/examples/Fortran/global-array-time/CMakeLists.txt
new file mode 100644
index 0000000..badcc2b
--- /dev/null
+++ b/examples/Fortran/global-array-time/CMakeLists.txt
@@ -0,0 +1,10 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/Fortran/global-array-time)
+link_directories(${PROJECT_BINARY_DIR}/examples/Fortran/global-array-time)
+
+add_executable(adios_globaltime_f adios_globaltime.F90)
+target_link_libraries(adios_globaltime_f adiosf ${ADIOSLIB_LDADD})
+
+#install(FILES adios_globaltime.xml gread_restart.fh gwrite_restart.fh job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/Fortran/global-array-time)
diff --git a/examples/Fortran/global-array-time/Makefile.in b/examples/Fortran/global-array-time/Makefile.in
index 4c2bd0f..61a5c2d 100644
--- a/examples/Fortran/global-array-time/Makefile.in
+++ b/examples/Fortran/global-array-time/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -134,6 +136,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -156,6 +162,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -181,6 +190,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -237,6 +247,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -309,7 +321,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -334,9 +346,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/Fortran/global-array-time/adios_globaltime.F90 b/examples/Fortran/global-array-time/adios_globaltime.F90
index 122bb26..714b808 100644
--- a/examples/Fortran/global-array-time/adios_globaltime.F90
+++ b/examples/Fortran/global-array-time/adios_globaltime.F90
@@ -36,7 +36,7 @@ program adios_global
     call MPI_Comm_rank (comm, rank, ierr)
     call MPI_Comm_size (comm, size, ierr)
 
-    call adios_init ("adios_globaltime.xml", adios_err)
+    call adios_init ("adios_globaltime.xml", comm, adios_err)
 
     do it = 1, 13
         do i = 1, NX
diff --git a/examples/Fortran/global-array/CMakeLists.txt b/examples/Fortran/global-array/CMakeLists.txt
new file mode 100644
index 0000000..87fc05a
--- /dev/null
+++ b/examples/Fortran/global-array/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/Fortran/global-array)
+link_directories(${PROJECT_BINARY_DIR}/examples/Fortran/global-array)
+
+add_executable(adios_global_f adios_global.F90)
+target_link_libraries(adios_global_f adiosf ${ADIOSLIB_LDADD})
+
+add_executable(adios_global_no_xml_f adios_global_no_xml.F90)
+target_link_libraries(adios_global_no_xml_f adiosf ${ADIOSLIB_LDADD})
+
+#install(FILES adios_global.xml gread_temperature.fh gwrite_temperature.fh job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/Fortran/global-array)
diff --git a/examples/Fortran/global-array/Makefile.in b/examples/Fortran/global-array/Makefile.in
index 82d7b6f..10c2c7d 100644
--- a/examples/Fortran/global-array/Makefile.in
+++ b/examples/Fortran/global-array/Makefile.in
@@ -43,8 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -151,6 +153,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -173,6 +179,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -198,6 +207,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -254,6 +264,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -333,7 +345,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -358,9 +370,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/Fortran/global-array/adios_global.F90 b/examples/Fortran/global-array/adios_global.F90
index 0b848d3..96801ec 100644
--- a/examples/Fortran/global-array/adios_global.F90
+++ b/examples/Fortran/global-array/adios_global.F90
@@ -36,7 +36,7 @@ program adios_global
         t(i)  = 10.0*rank+i-1
     enddo
 
-    call adios_init ("adios_global.xml", adios_err)
+    call adios_init ("adios_global.xml", comm, adios_err)
 
     call adios_open (adios_handle, "temperature", filename, "w", comm, adios_err)
 #include "gwrite_temperature.fh"
diff --git a/examples/Fortran/global-array/adios_global_no_xml.F90 b/examples/Fortran/global-array/adios_global_no_xml.F90
index d6c2c8d..5542210 100644
--- a/examples/Fortran/global-array/adios_global_no_xml.F90
+++ b/examples/Fortran/global-array/adios_global_no_xml.F90
@@ -34,7 +34,7 @@ program adios_global
     call MPI_Comm_rank (comm, rank, ierr)
     call MPI_Comm_size (comm, size, ierr)
 
-    call adios_init_noxml (adios_err)
+    call adios_init_noxml (comm, adios_err)
     call adios_allocate_buffer (10, adios_err)
 
     call adios_declare_group (m_adios_group, "restart", "iter", 1, adios_err)
diff --git a/examples/Fortran/global-array/no_xml_write_byid.F90 b/examples/Fortran/global-array/no_xml_write_byid.F90
index 0597731..9bfa9b6 100644
--- a/examples/Fortran/global-array/no_xml_write_byid.F90
+++ b/examples/Fortran/global-array/no_xml_write_byid.F90
@@ -35,7 +35,7 @@ program no_xml_write_byid
     call MPI_Comm_rank (comm, rank, ierr)
     call MPI_Comm_size (comm, size, ierr)
 
-    call adios_init_noxml (adios_err)
+    call adios_init_noxml (comm, adios_err)
     call adios_allocate_buffer (10, adios_err)
 
     call adios_declare_group (m_adios_group, "restart", "iter", 1, adios_err)
diff --git a/examples/Fortran/scalars/CMakeLists.txt b/examples/Fortran/scalars/CMakeLists.txt
new file mode 100644
index 0000000..644adbc
--- /dev/null
+++ b/examples/Fortran/scalars/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/examples/Fortran/scalars)
+link_directories(${PROJECT_BINARY_DIR}/examples/Fortran/scalars)
+
+add_executable(scalars_write_f scalars_write.F90)
+target_link_libraries(scalars_write_f adiosf ${ADIOSLIB_LDADD})
+
+add_executable(scalars_read_f scalars_read.F90)
+target_link_libraries(scalars_read_f adiosreadf ${ADIOSREADLIB_LDADD})
+
+#install(FILES scalars.xml gwrite_scalars.fh gread_scalars.fh job.pbs DESTINATION ${PROJECT_BINARY_DIR}/examples/Fortran/scalars)
diff --git a/examples/Fortran/scalars/Makefile.am b/examples/Fortran/scalars/Makefile.am
index 1569643..a75b440 100644
--- a/examples/Fortran/scalars/Makefile.am
+++ b/examples/Fortran/scalars/Makefile.am
@@ -11,9 +11,9 @@ scalars_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 scalars_write_LDADD += $(ADIOSLIB_LDADD)
 
 scalars_read_SOURCES = scalars_read.F90
-scalars_read_LDADD = $(top_builddir)/src/libadiosf.a 
-scalars_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-scalars_read_LDADD += $(ADIOSLIB_LDADD)
+scalars_read_LDADD = $(top_builddir)/src/libadiosreadf.a 
+scalars_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
+scalars_read_LDADD += $(ADIOSREADLIB_LDADD)
 
 CLEANFILES = *.bp
 CC=$(MPICC)
diff --git a/examples/Fortran/scalars/Makefile.in b/examples/Fortran/scalars/Makefile.in
index 3cb5dc5..ff03677 100644
--- a/examples/Fortran/scalars/Makefile.in
+++ b/examples/Fortran/scalars/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -67,7 +69,7 @@ PROGRAMS = $(noinst_PROGRAMS)
 am_scalars_read_OBJECTS = scalars_read.$(OBJEXT)
 scalars_read_OBJECTS = $(am_scalars_read_OBJECTS)
 am__DEPENDENCIES_1 =
-scalars_read_DEPENDENCIES = $(top_builddir)/src/libadiosf.a \
+scalars_read_DEPENDENCIES = $(top_builddir)/src/libadiosreadf.a \
 	$(am__DEPENDENCIES_1)
 scalars_read_LINK = $(LIBTOOL) --tag=FC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
@@ -141,6 +143,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -163,6 +169,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -188,6 +197,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -244,6 +254,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -307,8 +319,9 @@ scalars_write_LDADD = $(top_builddir)/src/libadiosf.a \
 	$(ADIOSLIB_LDADD)
 scalars_write_LDFLAGS = $(ADIOSLIB_LDFLAGS)
 scalars_read_SOURCES = scalars_read.F90
-scalars_read_LDADD = $(top_builddir)/src/libadiosf.a $(ADIOSLIB_LDADD)
-scalars_read_LDFLAGS = $(ADIOSLIB_LDFLAGS)
+scalars_read_LDADD = $(top_builddir)/src/libadiosreadf.a \
+	$(ADIOSREADLIB_LDADD)
+scalars_read_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)
 CLEANFILES = *.bp
 EXTRA_DIST = scalars.xml gwrite_scalars.fh gread_scalars.fh job.pbs
 FCLINK = \
@@ -319,7 +332,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -344,9 +357,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/Fortran/scalars/README b/examples/Fortran/scalars/README
index 2677693..347e591 100644
--- a/examples/Fortran/scalars/README
+++ b/examples/Fortran/scalars/README
@@ -10,9 +10,8 @@ the scalars.bp file if the MPI method is used.
 Only one of them can be seen with the generic read API and tools based on 
 this API like bpls. 
 
-However, you can read each scalar from the separate processes with the 
-specific API on the same number of processors you write them out 
-(see scalars_read.F90)
+However, you can read each scalar from the separate processes with the a selection 
+for a specific writer (see arrays/arrays_read.F90).
 
 How to build the code on your own:
 
@@ -22,6 +21,14 @@ How to build the code on your own:
     gread_scalars.fh  gwrite_scalars.fh
 
 2. Compile and link the code, with environment variables ADIOS_DIR pointing
+   to the ADIOS installation directory (substitute mpif90 with your F90 compiler):
+   $ ADIOS_INC=`$ADIOS_DIR/bin/adios_config -fc`
+   $ ADIOS_FLIB=`$ADIOS_DIR/bin/adios_config -fl`
+   $ ADIOS_FREADLIB=`$ADIOS_DIR/bin/adios_config -flr`
+   $ mpif90 -o arrays_write ${ADIOS_INC} scalars_write.F90 ${ADIOS_FLIB}
+   $ mpif90 -o arrays_read ${ADIOS_INC} scalars_read.F90 ${ADIOS_FREADLIB}
+
+2. Compile and link the code, with environment variables ADIOS_DIR pointing
    to the ADIOS installation directory and MXML_DIR pointing to the MXML
    installation directory (substitute mpif90 with your F90 compiler):
    $ mpif90 -o scalars_write scalars_write.F90 -I${ADIOS_DIR}/include \
diff --git a/examples/Fortran/scalars/scalars_read.F90 b/examples/Fortran/scalars/scalars_read.F90
index bc35470..c8c310d 100644
--- a/examples/Fortran/scalars/scalars_read.F90
+++ b/examples/Fortran/scalars/scalars_read.F90
@@ -9,7 +9,7 @@
 !/*   Example of reading various types of variable in ADIOS   */
 !/*************************************************************/
 program scalars_read
-    use adios_write_mod
+    use adios_read_mod
     implicit none
     include 'mpif.h'
 
@@ -17,10 +17,10 @@ program scalars_read
     integer             :: rank, size, i, ierr
     integer             :: comm
 
-    ! ADIOS variables declarations for matching gread_scalars.fh 
-    integer                 :: adios_err
-    integer*8               :: adios_groupsize, adios_totalsize
-    integer*8               :: adios_handle, adios_buf_size
+    ! ADIOS variables declarations 
+    integer*8               :: f
+    integer                 :: method = ADIOS_READ_METHOD_BP
+    integer*8               :: sel
 
     ! scalar variables to write out (including a string)
     integer*1           :: v1 = 0
@@ -46,16 +46,32 @@ program scalars_read
     call MPI_Comm_rank (comm, rank, ierr)
     call MPI_Comm_size (comm, size, ierr);
 
-    call adios_init ("scalars.xml", adios_err);
-    call adios_open (adios_handle, "scalars", filename, "r", comm, adios_err);
-#include "gread_scalars.fh"
-    call adios_close (adios_handle, adios_err)
-
-    call MPI_Barrier (comm, ierr);
-
-    call adios_finalize (rank, adios_err);
-
-    call MPI_Finalize (ierr);
+    call adios_read_init_method (method, comm, "verbose=3", ierr);
+
+    call adios_read_open (f, filename, method, comm, ADIOS_LOCKMODE_NONE, 1.0, ierr);
+
+    sel = 0  ! sel must be integer*8
+
+    ! option 1 for scalars: get it from the metadata read at open
+    call adios_get_scalar (f, "var_byte", v1, ierr)
+    call adios_get_scalar (f, "var_short", v2, ierr)
+    call adios_get_scalar (f, "var_int", v3, ierr)
+    call adios_get_scalar (f, "var_long", v4, ierr)
+    ! the above variables contain the value at this point
+
+    ! option 2 for scalars: read them from file
+    call adios_schedule_read (f, sel, "var_ubyte", 1, 1, v5, ierr)
+    call adios_schedule_read (f, sel, "var_ushort", 1, 1, v6, ierr)
+    call adios_schedule_read (f, sel, "var_uint", 1, 1, v7, ierr)
+    call adios_schedule_read (f, sel, "var_ulong", 1, 1, v8, ierr)
+    call adios_schedule_read (f, sel, "var_real", 1, 1, v9, ierr)
+    call adios_schedule_read (f, sel, "var_double", 1, 1, v10, ierr)
+    call adios_schedule_read (f, sel, "var_string", 1, 1, v11, ierr)
+    call adios_schedule_read (f, sel, "var_complex", 1, 1, v12, ierr)
+    call adios_schedule_read (f, sel, "var_double_complex", 1, 1, v13, ierr)
+    ! no read has been performed yet!
+    call adios_perform_reads (f, ierr)
+    ! the above variables contain the value only at this point
 
     if (rank == 0) then
         write (*, '("int*1      v1  = ",i3)') v1
@@ -77,5 +93,10 @@ program scalars_read
         write (*, '("complex*16 v13 = (",f6.2,", ", f6.2,")")') v13
     endif
 
+    call adios_read_close (f, ierr)
+    call MPI_Barrier (comm, ierr);
+    call adios_read_finalize_method (method, ierr);
+    call MPI_Finalize (ierr);
+
 end program
 
diff --git a/examples/Fortran/scalars/scalars_write.F90 b/examples/Fortran/scalars/scalars_write.F90
index 241bdf4..8071807 100644
--- a/examples/Fortran/scalars/scalars_write.F90
+++ b/examples/Fortran/scalars/scalars_write.F90
@@ -46,7 +46,7 @@ program scalars
     call MPI_Comm_rank (comm, rank, ierr)
     call MPI_Comm_size (comm, size, ierr);
 
-    call adios_init ("scalars.xml", adios_err);
+    call adios_init ("scalars.xml", comm, adios_err);
     ! adios_open() opens a 'group in a file', here the 'scalars' group
     call adios_open (adios_handle, "scalars", filename, "w", comm, adios_err);
 #include "gwrite_scalars.fh"
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 54f3cd6..6a6f84b 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -40,8 +40,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -152,6 +154,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -174,6 +180,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -199,6 +208,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -255,6 +265,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -317,7 +329,7 @@ SUBDIRS = $(CSUBDIRS) $(FSUBDIRS)
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -342,9 +354,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/examples/coupling/.svn/all-wcprops b/examples/coupling/.svn/all-wcprops
deleted file mode 100644
index 407bd9e..0000000
--- a/examples/coupling/.svn/all-wcprops
+++ /dev/null
@@ -1,47 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn-ewok/ADIOS/!svn/ver/2136/trunk/examples/coupling
-END
-coupling_writer_2D.xml
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn-ewok/ADIOS/!svn/ver/2110/trunk/examples/coupling/coupling_writer_2D.xml
-END
-coupling_reader_2D.F90
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn-ewok/ADIOS/!svn/ver/2132/trunk/examples/coupling/coupling_reader_2D.F90
-END
-coupling_reader_2D.xml
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn-ewok/ADIOS/!svn/ver/2110/trunk/examples/coupling/coupling_reader_2D.xml
-END
-job
-K 25
-svn:wc:ra_dav:version-url
-V 57
-/svn-ewok/ADIOS/!svn/ver/2119/trunk/examples/coupling/job
-END
-Makefile
-K 25
-svn:wc:ra_dav:version-url
-V 62
-/svn-ewok/ADIOS/!svn/ver/2215/trunk/examples/coupling/Makefile
-END
-README
-K 25
-svn:wc:ra_dav:version-url
-V 60
-/svn-ewok/ADIOS/!svn/ver/2110/trunk/examples/coupling/README
-END
-coupling_writer_2D.F90
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn-ewok/ADIOS/!svn/ver/2110/trunk/examples/coupling/coupling_writer_2D.F90
-END
diff --git a/examples/coupling/.svn/entries b/examples/coupling/.svn/entries
deleted file mode 100644
index 0da216a..0000000
--- a/examples/coupling/.svn/entries
+++ /dev/null
@@ -1,273 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/coupling
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-12-20T20:28:16.372383Z
-2136
-pnorbert
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-coupling_writer_2D.xml
-file
-
-
-
-
-2012-12-20T19:38:28.921697Z
-7900442e71772d843fb1736508d9470c
-2012-11-28T00:11:40.365798Z
-2110
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1745
-

-coupling_reader_2D.F90
-file
-
-
-
-
-2012-12-14T22:32:19.036088Z
-ea6aaf0522ebcdd958e056b66bd1dbe6
-2012-12-20T19:39:07.502574Z
-2132
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-9589
-

-coupling_reader_2D.xml
-file
-
-
-
-
-2011-09-09T20:38:42.000000Z
-3acbd1604434c6cbe275e9d06e2fde2c
-2012-11-28T00:11:40.365798Z
-2110
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1120
-

-job
-file
-
-
-
-
-2012-12-04T19:38:26.389920Z
-e5617139debb6b287b122c8426476a70
-2012-12-04T19:38:58.053190Z
-2119
-pnorbert
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2257
-

-Makefile
-file
-2215
-
-
-
-2013-01-08T17:28:32.561288Z
-b7779995059e6afe3245c481e0e38f2a
-2013-01-08T17:40:22.266814Z
-2215
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1233
-

-README
-file
-
-
-
-
-2012-08-25T00:57:12.921248Z
-641fb37c4cb5ba7dca10563059a491a4
-2012-11-28T00:11:40.365798Z
-2110
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4729
-

-coupling_writer_2D.F90
-file
-
-
-
-
-2012-11-27T23:32:10.954892Z
-ad58f51090eb5fa0b9b711c267d03b8e
-2012-11-28T00:11:40.365798Z
-2110
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6028
-

diff --git a/examples/coupling/.svn/format b/examples/coupling/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/coupling/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/coupling/.svn/prop-base/job.svn-base b/examples/coupling/.svn/prop-base/job.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/examples/coupling/.svn/prop-base/job.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/examples/coupling/.svn/text-base/Makefile.svn-base b/examples/coupling/.svn/text-base/Makefile.svn-base
deleted file mode 100644
index 2e1fdf8..0000000
--- a/examples/coupling/.svn/text-base/Makefile.svn-base
+++ /dev/null
@@ -1,45 +0,0 @@
-## MPIF90 SETTINGS
-FC=mpif90
-FFLAGS=-g
-
-## FTN SETTINGS
-#FC=ftn
-#FFLAGS = -O3
-
-#TARGET=gnu
-TARGET=pgi
-
-## Set ADIOS_DIR here or before doing make
-override ADIOS_DIR:=/ccs/proj/e2e/pnorbert/ADIOS/sith.${TARGET}
-override ADIOS_INC:=` ${ADIOS_DIR}/bin/adios_config -c -f`
-override ADIOS_FLIB:=`${ADIOS_DIR}/bin/adios_config -l -f`
-override GPP = ${ADIOS_DIR}/bin/gpp.py
-
-default: coupling_writer_2D coupling_reader_2D
-all: default
-
-coupling_writer_2D.o : coupling_writer_2D.F90 gwrite_writer2D.fh
-	${FC} -g -c ${ADIOS_INC} coupling_writer_2D.F90  $<
-
-coupling_writer_2D:  coupling_writer_2D.o gwrite_writer2D.fh
-	${FC} -g -o coupling_writer_2D coupling_writer_2D.o ${ADIOS_FLIB} 
-
-gwrite_writer2D.fh: coupling_writer_2D.xml
-	${GPP} coupling_writer_2D.xml
-
-coupling_reader_2D.o : coupling_reader_2D.F90 gwrite_reader2D.fh
-	${FC} -g -c ${ADIOS_INC} coupling_reader_2D.F90  $<
-
-coupling_reader_2D:  coupling_reader_2D.o gwrite_reader2D.fh
-	${FC} -g -o coupling_reader_2D coupling_reader_2D.o ${ADIOS_FLIB} 
-
-gwrite_reader2D.fh: coupling_reader_2D.xml
-	${GPP} coupling_reader_2D.xml
-
-
-clean:
-	rm -f *.o *.mod *.fh core.* 
-	rm -f coupling_writer_2D coupling_reader_2D
-        
-distclean: clean
-	rm -f log.* dataspaces.conf conf srv.lck *.bp
diff --git a/examples/coupling/.svn/text-base/README.svn-base b/examples/coupling/.svn/text-base/README.svn-base
deleted file mode 100644
index fdb54d4..0000000
--- a/examples/coupling/.svn/text-base/README.svn-base
+++ /dev/null
@@ -1,132 +0,0 @@
-REQUIREMENTS:
-    - ADIOS 1.4.1: http://www.olcf.ornl.gov/center-projects/adios
-    - Fortran 90 compiler
-    - MPI
-
-BUILD:
-    - Install ADIOS
-    - In Makefile, set ADIOS_DIR to the installation directory
-    - also set the MPI/F90 compiler name (e.g. mpif90 or ftn)
-    - run make
-
-
-1. Run the writer 
-=================
- 2x2 processes write 4x5 blocks (8x10 global array), 5 timesteps
-
-$ mpirun -np 4 ./coupling_writer_2D 2 2 4 5 5
- Process number        : 2 x 2
- Array size per process: 4 x 5
-rank=0: 2D array pos: 0,0 offset: 0,0
-rank=1: 2D array pos: 1,0 offset: 4,0
-rank=2: 2D array pos: 0,1 offset: 0,5
-rank=3: 2D array pos: 1,1 offset: 4,5
-rank=1 set matrix to   1.01
-rank=0 set matrix to   0.01
-  Output file: writer_001.bp
-rank=2 set matrix to   2.01
-rank=3 set matrix to   3.01
-rank=1: ----------------------  write completed ----------------------
-rank=2: ----------------------  write completed ----------------------
-rank=3: ----------------------  write completed ----------------------
-rank=0: ----------------------  write completed ----------------------
-...
-
-
-2. Check the output
-===================
-
-$ bpls -l writer.bp 
-  integer  /info/nproc  5*scalar = 4 / 4 
-  integer  /info/npx    5*scalar = 2 / 2 
-  integer  /info/npy    5*scalar = 2 / 2 
-  integer  /gdx         5*scalar = 8 / 8 
-  integer  /gdy         5*scalar = 10 / 10 
-  integer  /aux/ox      5*scalar = 0 / 0 
-  integer  /aux/oy      5*scalar = 0 / 0 
-  integer  /aux/ldx     5*scalar = 4 / 4 
-  integer  /aux/ldy     5*scalar = 5 / 5 
-  double   /xy          5*{10, 8} = 0.01 / 3.05 / 1.53 / 1.11812 
-
-Note that F90 app writes 8x10 arrays in Fortran column-order, 
-which is 10x8 in C row-order. bpls sees/shows the C ordering 
-because it is a C program.  The reader below sees 8x10 Fortran
-array because it is a Fortan program.
-
-
-3. Run the reader
-=================
-
-$ mpirun -np 3 ./coupling_reader_2D 1 3 MPI 1 1
- Process number        : 1 x 3
- Method for reading: 0
-  Input file: writer.bp
-rank=0: Read in gdx and gdy, step1 from writer.bp
-rank=2: Read in gdx and gdy, step1 from writer.bp
-rank=1: Read in gdx and gdy, step1 from writer.bp
-rank=0: Read in xy(1:2,1:10) from writer.bp
-rank=2: Read in xy(5:8,1:10) from writer.bp
-rank=1: Read in xy(3:4,1:10) from writer.bp
-rank=1: Collectively wrote xy and new xy2 to reader_001.bp
-rank=2: Collectively wrote xy and new xy2 to reader_001.bp
-rank=0: Collectively wrote xy and new xy2 to reader_001.bp
-rank=2: Read in gdx and gdy, step2 from writer.bp
-rank=0: Read in gdx and gdy, step2 from writer.bp
-rank=1: Read in gdx and gdy, step2 from writer.bp
-rank=0: Read in xy(1:2,1:10) from writer.bp
-rank=2: Read in xy(5:8,1:10) from writer.bp
-rank=1: Read in xy(3:4,1:10) from writer.bp
-rank=2: Collectively wrote xy and new xy2 to reader_002.bp
-rank=1: Collectively wrote xy and new xy2 to reader_002.bp
-rank=0: Collectively wrote xy and new xy2 to reader_002.bp
-...
-
-
-4. Check the output
-===================
-
-$ bpls -l reader_001.bp 
-  integer  /info/rank  scalar = 0 
-  integer  /gdx        scalar = 8 
-  integer  /gdy        scalar = 10 
-  integer  /aux/ldx    scalar = 2 
-  integer  /aux/ldy    scalar = 10 
-  integer  /aux/ox     scalar = 0 
-  integer  /aux/oy     scalar = 0 
-  double   /xy         {10, 8} = 0.01 / 3.01 / 1.51 / 1.11803 
-  double   /xy2        {10, 8} = 0.0001 / 2.0301 / 1.2651 / 0.833742 
-
-
-xy in the two files should match:
-
-
-$ bpls -l reader_001.bp -d xy -n 8
-  double     /xy         {10, 8} = 0.01 / 3.01 / 1.51 / 1.11803 
-    (0,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (1,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (2,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (3,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (4,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (5,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (6,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (7,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (8,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (9,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-
-$ bpls -l writer.bp -d xy -n 8 -c "1,-1,-1"
-  double   /xy          5*{10, 8} = 0.01 / 3.05 / 1.53 / 1.11812 
-    slice (0:0, 0:9, 0:7)
-    (0,0,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (0,1,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (0,2,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (0,3,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (0,4,0)    0.01 0.01 0.01 0.01 1.01 1.01 1.01 1.01 
-    (0,5,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (0,6,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (0,7,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (0,8,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-    (0,9,0)    2.01 2.01 2.01 2.01 3.01 3.01 3.01 3.01 
-
-
-
-
diff --git a/examples/coupling/.svn/text-base/coupling_reader_2D.xml.svn-base b/examples/coupling/.svn/text-base/coupling_reader_2D.xml.svn-base
deleted file mode 100644
index 29c1422..0000000
--- a/examples/coupling/.svn/text-base/coupling_reader_2D.xml.svn-base
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<adios-config host-language="Fortran">
-
-  <!-- Group to write the whole array from a single processor -->
-  <adios-group name="reader2D" coordination-communicator="group_comm">
-    <var name="rank" path="/info" type="integer"/>
-    <var name="gdx"  path="" type="integer"/>
-    <attribute name="description" path="/gdx" value="Global array size in x dimension"/>
-    <var name="gdy"  path="" type="integer"/>
-    <attribute name="description" path="/gdy" value="Global array size in y dimension"/>
-    <var name="ldx" path="/aux" type="integer"/>
-    <var name="ldy" path="/aux" type="integer"/>
-    <var name="ox" path="/aux" type="integer"/>
-    <var name="oy" path="/aux" type="integer"/>
-
-    <!-- 2D array to write with block,block decomposition -->
-    <global-bounds dimensions="gdx,gdy" offsets="ox,oy">
-        <var name="xy"  path="" type="double" dimensions="ldx,ldy"/>
-        <var name="xy2" path="" type="double" dimensions="ldx,ldy"/>
-    </global-bounds>
-  </adios-group>
-
-  <transport group="reader2D" method="MPI"/>
-
-  <buffer size-MB="400" allocate-time="now"/>
-
-</adios-config>
diff --git a/examples/coupling/.svn/text-base/coupling_writer_2D.F90.svn-base b/examples/coupling/.svn/text-base/coupling_writer_2D.F90.svn-base
deleted file mode 100644
index 7b6521e..0000000
--- a/examples/coupling/.svn/text-base/coupling_writer_2D.F90.svn-base
+++ /dev/null
@@ -1,214 +0,0 @@
-!  
-!  ADIOS is freely available under the terms of the BSD license described
-!  in the COPYING file in the top level directory of this source distribution.
-!
-!  Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
-!
-
-!
-!  Coupling writer/reader
-!
-!  Write a 2D array 
-!  to/from a file or from/to another coupling code using DataSpaces/ADIOS
-!
-!  npx * npy        processes write a 2D array, where each process writes an
-!  ldx * ldy        piece with filling with its rank as real*8 value
-!  
-!  Data written
-!    xy         2D array with block,block decomp
-!
-!    All data are real*8 type
-!
-! (c) Oak Ridge National Laboratory, 2009
-! Author: Norbert Podhorszki
-!
-module coupling_writer_2D_comm
-    ! arguments
-    integer :: npx, npy, npz  ! # of processors in x-y-z direction
-    integer :: ldx, ldy, ldz  ! size of array per processor
-    integer :: timesteps      ! number of timesteps to run
-
-    integer :: nproc          ! number of processors
-
-    real*8, dimension(:,:),   allocatable :: xy
-
-    ! Offsets and sizes
-    integer :: ox, oy
-    integer :: gdx, gdy
-
-    ! MPI variables
-    integer :: group_comm
-    integer :: rank
-    integer :: ierr
-
-    ! ADIOS variables
-    character (len=200) :: group
-    !character (len=6)   :: nprocstr
-    integer*8 :: adios_handle, adios_totalsize, adios_groupsize, adios_buf_size
-    integer   :: adios_err
-
-    ! actual timestep
-    integer   :: ts 
-
-end module coupling_writer_2D_comm
-
-
-program coupling
-    use coupling_writer_2D_comm
-    use adios_write_mod
-    implicit none
-    include 'mpif.h'
-    integer :: t
-
-    call MPI_Init (ierr)
-    call MPI_Comm_dup (MPI_COMM_WORLD, group_comm, ierr)
-    call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
-    call MPI_Comm_size (group_comm, nproc , ierr)
-
-    call adios_init ("coupling_writer_2D.xml", ierr)
-    !call MPI_Barrier (group_comm, ierr)
-
-    call processArgs()
-    if (rank == 0) then
-        print '(" Process number        : ",i0," x ",i0)',  npx,npy
-        print '(" Array size per process: ",i0," x ",i0)',  ldx,ldy
-
-        if (nproc .ne. npx*npy) then
-            print '(" Error: Number of processors ",i0,"does not match N*M=",i0)', nproc, npx*npy
-            call exit(1)
-        endif
-    endif
-
-    !write (*,*) 'rank ', rank, "init completed"
-    !write (nprocstr,'(i0)') nproc
-
-    ! Calculate global size
-    call allocateLocalArrays()
-    !call sleep(60)
-    do ts=1,timesteps
-        call generateLocalArrays()
-        call writeArrays()
-        call MPI_Barrier (MPI_COMM_WORLD, ierr)
-        !print '("rank=",i0," goes to sleep after step ",i0)', rank, ts
-        if (ts < timesteps) call sleep(2)
-        !print '("rank=",i0," woke up")', rank
-    enddo
-
-    ! Terminate
-    call MPI_Barrier (MPI_COMM_WORLD, ierr)
-    call adios_finalize (rank, adios_err)
-    call MPI_Finalize (ierr)
-end program coupling
-
-
-!!***************************
-subroutine allocateLocalArrays()
-    use coupling_writer_2D_comm
-    implicit none
-    integer :: posx, posy, posz ! position index in the array
-    integer :: i,j,k
-
-
-!!  2D array with block,block decomposition
-    posx = mod(rank, npx)     ! 1st dim easy: 0, npx, 2npx... are in the same X position
-    posy = rank/npx           ! 2nd dim: npx processes belong into one dim
-    ox = posx * ldx
-    oy = posy * ldy
-    gdx  = npx * ldx
-    gdy  = npy * ldy
-
-    print '("rank=",i0,": 2D array pos: ",i0,",",i0," offset: ",i0,",",i0)',  &
-             rank, posx, posy, ox, oy
-
-    allocate( xy(1:ldx, 1:ldy) )
-
-end subroutine allocateLocalArrays
-
-!!***************************
-subroutine generateLocalArrays()
-    use coupling_writer_2D_comm
-    implicit none
-
-    print '("rank=",i0," set matrix to ",f6.2)', rank, 1.0*rank+0.01*ts
-    xy = 1.0*rank + 0.01*ts
-    !xy = 1.0*rank + 1.0*ts
-
-end subroutine generateLocalArrays
-
-!!***************************
-subroutine writeArrays()
-    use coupling_writer_2D_comm
-    use adios_write_mod
-    implicit none
-    character(len=256) :: fn
-    ! Write out data using ADIOS
-
-    write (fn,'("writer.bp")')
-    if (rank == 0) print *, " Output file: "//trim(fn)
-    if (ts == 1) then
-        call adios_open (adios_handle, "writer2D", fn, "w", group_comm, adios_err)
-    else
-        call adios_open (adios_handle, "writer2D", fn, "a", group_comm, adios_err)
-    endif
-
-#include "gwrite_writer2D.fh"
-
-    ! start streaming from buffer to disk
-    call adios_close (adios_handle, adios_err)
-    print '("rank=",i0,": ----------------------  write completed ----------------------")', rank
-end subroutine writeArrays
-
-
-!!***************************
-subroutine usage()
-    print *, "Usage: coupling_writer_2D N M nx ny [timesteps]"
-    print *, "N:      number of processes in X dimension"
-    print *, "M:      number of processes in Y dimension"
-    print *, "nx:     local array size in X dimension per processor"
-    print *, "ny:     local array size in Y dimension per processor"
-    print *, "timesteps: how many times to write data"
-end subroutine usage
-
-!!***************************
-subroutine processArgs()
-    use coupling_writer_2D_comm
-
-#ifndef __GFORTRAN__
-#ifndef __GNUC__
-    interface
-         integer function iargc()
-         end function iargc
-    end interface
-#endif
-#endif
-
-    character(len=256) :: npx_str, npy_str, npz_str, ldx_str, ldy_str, ldz_str, ts_str
-    integer :: numargs
-
-    !! process arguments
-    numargs = iargc()
-    !print *,"Number of arguments:",numargs
-    if ( numargs < 4 ) then
-        call usage()
-        call exit(1)
-    endif
-    call getarg(1, npx_str)
-    call getarg(2, npy_str)
-    !call getarg(4, npz_str)
-    read (npx_str,'(i5)') npx
-    read (npy_str,'(i5)') npy
-    !read (npz_str,'(i5)') npz
-    call getarg(3, ldx_str)
-    call getarg(4, ldy_str)
-    !call getarg(7, ldz_str)
-    read (ldx_str,'(i6)') ldx
-    read (ldy_str,'(i6)') ldy
-    !read (ldz_str,'(i6)') ldz
-    if ( numargs == 5 ) then
-        call getarg(5, ts_str)
-        read (ts_str,'(i6)') timesteps
-    else
-        timesteps = 1
-    endif
-
-end subroutine processArgs
diff --git a/examples/coupling/.svn/text-base/coupling_writer_2D.xml.svn-base b/examples/coupling/.svn/text-base/coupling_writer_2D.xml.svn-base
deleted file mode 100644
index a46eda3..0000000
--- a/examples/coupling/.svn/text-base/coupling_writer_2D.xml.svn-base
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<adios-config host-language="Fortran">
-  <adios-group name="writer2D">
-
-    <var name="nproc" path="/info" type="integer"/>
-    <attribute name="description" path="/info/nproc" value="Number of writers"/>
-    <var name="npx"   path="/info" type="integer"/>
-    <attribute name="description" path="/info/npx" value="Number of processors in x dimension"/>
-    <var name="npy"   path="/info" type="integer"/>
-    <attribute name="description" path="/info/npy" value="Number of processors in y dimension"/>
-
-    <var name="gdx"  path="" type="integer"/>
-    <attribute name="description" path="/gdx" value="Global array size in x dimension"/>
-    <var name="gdy"  path="" type="integer"/>
-    <attribute name="description" path="/gdy" value="Global array size in y dimension"/>
-
-    <!-- Auxiliary variables for global array indexing written (overwritten) by each process -->
-    <var name="ox"   path="/aux" type="integer"/>
-    <var name="oy"   path="/aux" type="integer"/>
-    <var name="ldx"  path="/aux" type="integer"/>
-    <var name="ldy"  path="/aux" type="integer"/>
-
-    <!-- 2D array to write with block,block decomposition -->
-    <global-bounds dimensions="gdx,gdy" offsets="ox,oy">
-        <var name="xy" path="" type="double" dimensions="ldx,ldy"/>
-    </global-bounds>
-    <attribute name="description" path="/xy" 
-               value="2D array with 2D decomposition"/>
-
-  </adios-group>
-
-  <!-- Use transport method 
-       DART for memory-to-memory coupling or
-       MPI  for file-based coupling
-  -->
-  <transport group="writer2D" method="MPI">verbose=3</transport>
-  <!--transport group="writer2D" method="DATASPACES">verbose=3</transport-->
-
-  <buffer size-MB="40" allocate-time="now"/>
-
-</adios-config>
diff --git a/examples/coupling/.svn/text-base/job.svn-base b/examples/coupling/.svn/text-base/job.svn-base
deleted file mode 100644
index b69bd0d..0000000
--- a/examples/coupling/.svn/text-base/job.svn-base
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/bash
-#PBS -A STF006
-#PBS -N genarray
-#PBS -j oe
-#PBS -l walltime=1:00:00,size=20
-## On jaguarpf, you need size=48 (4 nodes * 12cores for 4 apruns)
-
-#cd $PBS_O_WORKDIR
-
-# Number of writers (WPX*WPY = WRITEPROC)
-WRITEPROC=16
-WPX=4
-WPY=4
-# Number of staging processes, if staging is used
-STAGINGPROC=4
-# Number of readers (RPX*RPY = READPROC)
-READPROC=9
-RPX=3
-RPY=3
-
-
-let "WP=WPX*WPY"
-if [ $WP -ne $WRITEPROC ]; then
-    echo "WPX*WPY != WRITEPROC: " $WP and $WRITEPROC
-    exit 1
-fi
-
-let "RP=RPX*RPY"
-if [ $RP -ne $READPROC ]; then
-    echo "RPX*RPY != READPROC: " $RP and $READPROC
-    exit 1
-fi
-
-
-# clean-up
-rm -f log.* draw* core* conf dataspaces.conf srv.lck
-rm -f writer.bp reader_0*.bp
-
-METHOD=`grep "<transport .*method=" coupling_writer_2D.xml | sed -e "s/^.*method=\"\([A-Z]*\).*/\1/"`
-echo "The selected coupling method in coupling_writer_2D.xml is: $METHOD"
-
-if [ "x$METHOD" == "xDATASPACES" ]; then
-    READMETHOD="DATASPACES"
-    let "PROCALL=WRITEPROC+READPROC"
-
-    # Prepare config file for DataSpaces
-    echo "## Config file for DataSpaces
-ndim = 3
-dimx = 1000
-dimy = 1000
-dimz = 1000
-max_versions = 10
-" > dataspaces.conf
-
-    # Run DataSpaces
-    SERVER=/ccs/proj/e2e/dataspaces/sith/pgi/bin/dataspaces_server
-    echo "-- Start DataSpaces server "$SERVER" on $STAGINGPROC PEs, -s$STAGINGPROC -c$PROCALL"
-    mpirun -np $STAGINGPROC $SERVER -s$STAGINGPROC -c$PROCALL &> log.server &
-
-    ## Give some time for the servers to load and startup
-    sleep 1s
-    while [ ! -f conf ]; do
-        echo "-- File conf is not yet available from server. Sleep more"
-        sleep 1s
-    done
-    sleep 10s  # wait server to fill up the conf file
-
-    ## Export the main server config to the environment
-    while read line; do
-        export set "${line}"
-    done < conf
-
-    echo "-- DataSpaces Portals IDs: P2TNID = $P2TNID   P2TPID = $P2TPID"
-else
-    READMETHOD="FILE"
-fi
-
-# Start WRITER
-echo "-- Start WRITER on $WRITEPROC PEs"
-mpirun -np $WRITEPROC ./coupling_writer_2D $WPX $WPY 10 10 5  >& log.writer &
-
-# Start READER
-echo "-- Start READER on $READPROC PEs."
-mpirun -np $READPROC ./coupling_reader_2D $RPX $RPY $READMETHOD 1 >& log.reader &
-
-echo "-- Wait until all applications exit. Run ./check.sh to see status"
-wait
-rm -f conf
-
diff --git a/examples/coupling/.svn/tmp/tempfile.2.tmp b/examples/coupling/.svn/tmp/tempfile.2.tmp
deleted file mode 100644
index b69bd0d..0000000
--- a/examples/coupling/.svn/tmp/tempfile.2.tmp
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/bash
-#PBS -A STF006
-#PBS -N genarray
-#PBS -j oe
-#PBS -l walltime=1:00:00,size=20
-## On jaguarpf, you need size=48 (4 nodes * 12cores for 4 apruns)
-
-#cd $PBS_O_WORKDIR
-
-# Number of writers (WPX*WPY = WRITEPROC)
-WRITEPROC=16
-WPX=4
-WPY=4
-# Number of staging processes, if staging is used
-STAGINGPROC=4
-# Number of readers (RPX*RPY = READPROC)
-READPROC=9
-RPX=3
-RPY=3
-
-
-let "WP=WPX*WPY"
-if [ $WP -ne $WRITEPROC ]; then
-    echo "WPX*WPY != WRITEPROC: " $WP and $WRITEPROC
-    exit 1
-fi
-
-let "RP=RPX*RPY"
-if [ $RP -ne $READPROC ]; then
-    echo "RPX*RPY != READPROC: " $RP and $READPROC
-    exit 1
-fi
-
-
-# clean-up
-rm -f log.* draw* core* conf dataspaces.conf srv.lck
-rm -f writer.bp reader_0*.bp
-
-METHOD=`grep "<transport .*method=" coupling_writer_2D.xml | sed -e "s/^.*method=\"\([A-Z]*\).*/\1/"`
-echo "The selected coupling method in coupling_writer_2D.xml is: $METHOD"
-
-if [ "x$METHOD" == "xDATASPACES" ]; then
-    READMETHOD="DATASPACES"
-    let "PROCALL=WRITEPROC+READPROC"
-
-    # Prepare config file for DataSpaces
-    echo "## Config file for DataSpaces
-ndim = 3
-dimx = 1000
-dimy = 1000
-dimz = 1000
-max_versions = 10
-" > dataspaces.conf
-
-    # Run DataSpaces
-    SERVER=/ccs/proj/e2e/dataspaces/sith/pgi/bin/dataspaces_server
-    echo "-- Start DataSpaces server "$SERVER" on $STAGINGPROC PEs, -s$STAGINGPROC -c$PROCALL"
-    mpirun -np $STAGINGPROC $SERVER -s$STAGINGPROC -c$PROCALL &> log.server &
-
-    ## Give some time for the servers to load and startup
-    sleep 1s
-    while [ ! -f conf ]; do
-        echo "-- File conf is not yet available from server. Sleep more"
-        sleep 1s
-    done
-    sleep 10s  # wait server to fill up the conf file
-
-    ## Export the main server config to the environment
-    while read line; do
-        export set "${line}"
-    done < conf
-
-    echo "-- DataSpaces Portals IDs: P2TNID = $P2TNID   P2TPID = $P2TPID"
-else
-    READMETHOD="FILE"
-fi
-
-# Start WRITER
-echo "-- Start WRITER on $WRITEPROC PEs"
-mpirun -np $WRITEPROC ./coupling_writer_2D $WPX $WPY 10 10 5  >& log.writer &
-
-# Start READER
-echo "-- Start READER on $READPROC PEs."
-mpirun -np $READPROC ./coupling_reader_2D $RPX $RPY $READMETHOD 1 >& log.reader &
-
-echo "-- Wait until all applications exit. Run ./check.sh to see status"
-wait
-rm -f conf
-
diff --git a/examples/coupling/.svn/tmp/tempfile.tmp b/examples/coupling/.svn/tmp/tempfile.tmp
deleted file mode 100644
index b69bd0d..0000000
--- a/examples/coupling/.svn/tmp/tempfile.tmp
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/bash
-#PBS -A STF006
-#PBS -N genarray
-#PBS -j oe
-#PBS -l walltime=1:00:00,size=20
-## On jaguarpf, you need size=48 (4 nodes * 12cores for 4 apruns)
-
-#cd $PBS_O_WORKDIR
-
-# Number of writers (WPX*WPY = WRITEPROC)
-WRITEPROC=16
-WPX=4
-WPY=4
-# Number of staging processes, if staging is used
-STAGINGPROC=4
-# Number of readers (RPX*RPY = READPROC)
-READPROC=9
-RPX=3
-RPY=3
-
-
-let "WP=WPX*WPY"
-if [ $WP -ne $WRITEPROC ]; then
-    echo "WPX*WPY != WRITEPROC: " $WP and $WRITEPROC
-    exit 1
-fi
-
-let "RP=RPX*RPY"
-if [ $RP -ne $READPROC ]; then
-    echo "RPX*RPY != READPROC: " $RP and $READPROC
-    exit 1
-fi
-
-
-# clean-up
-rm -f log.* draw* core* conf dataspaces.conf srv.lck
-rm -f writer.bp reader_0*.bp
-
-METHOD=`grep "<transport .*method=" coupling_writer_2D.xml | sed -e "s/^.*method=\"\([A-Z]*\).*/\1/"`
-echo "The selected coupling method in coupling_writer_2D.xml is: $METHOD"
-
-if [ "x$METHOD" == "xDATASPACES" ]; then
-    READMETHOD="DATASPACES"
-    let "PROCALL=WRITEPROC+READPROC"
-
-    # Prepare config file for DataSpaces
-    echo "## Config file for DataSpaces
-ndim = 3
-dimx = 1000
-dimy = 1000
-dimz = 1000
-max_versions = 10
-" > dataspaces.conf
-
-    # Run DataSpaces
-    SERVER=/ccs/proj/e2e/dataspaces/sith/pgi/bin/dataspaces_server
-    echo "-- Start DataSpaces server "$SERVER" on $STAGINGPROC PEs, -s$STAGINGPROC -c$PROCALL"
-    mpirun -np $STAGINGPROC $SERVER -s$STAGINGPROC -c$PROCALL &> log.server &
-
-    ## Give some time for the servers to load and startup
-    sleep 1s
-    while [ ! -f conf ]; do
-        echo "-- File conf is not yet available from server. Sleep more"
-        sleep 1s
-    done
-    sleep 10s  # wait server to fill up the conf file
-
-    ## Export the main server config to the environment
-    while read line; do
-        export set "${line}"
-    done < conf
-
-    echo "-- DataSpaces Portals IDs: P2TNID = $P2TNID   P2TPID = $P2TPID"
-else
-    READMETHOD="FILE"
-fi
-
-# Start WRITER
-echo "-- Start WRITER on $WRITEPROC PEs"
-mpirun -np $WRITEPROC ./coupling_writer_2D $WPX $WPY 10 10 5  >& log.writer &
-
-# Start READER
-echo "-- Start READER on $READPROC PEs."
-mpirun -np $READPROC ./coupling_reader_2D $RPX $RPY $READMETHOD 1 >& log.reader &
-
-echo "-- Wait until all applications exit. Run ./check.sh to see status"
-wait
-rm -f conf
-
diff --git a/examples/coupling/Makefile b/examples/coupling/Makefile
index 2e1fdf8..118f69d 100644
--- a/examples/coupling/Makefile
+++ b/examples/coupling/Makefile
@@ -6,16 +6,20 @@ FFLAGS=-g
 #FC=ftn
 #FFLAGS = -O3
 
+#BG/P IBM compiler
+#FC=mpixlf90
+#FFLAGS=-O0 -qarch=450 -qtune=450
+
 #TARGET=gnu
 TARGET=pgi
 
 ## Set ADIOS_DIR here or before doing make
-override ADIOS_DIR:=/ccs/proj/e2e/pnorbert/ADIOS/sith.${TARGET}
+override ADIOS_DIR:=/ccs/proj/e2e/pnorbert/ADIOS/sith.pgi
 override ADIOS_INC:=` ${ADIOS_DIR}/bin/adios_config -c -f`
 override ADIOS_FLIB:=`${ADIOS_DIR}/bin/adios_config -l -f`
 override GPP = ${ADIOS_DIR}/bin/gpp.py
 
-default: coupling_writer_2D coupling_reader_2D
+default: coupling_writer_2D coupling_reader_2D 
 all: default
 
 coupling_writer_2D.o : coupling_writer_2D.F90 gwrite_writer2D.fh
@@ -39,7 +43,7 @@ gwrite_reader2D.fh: coupling_reader_2D.xml
 
 clean:
 	rm -f *.o *.mod *.fh core.* 
-	rm -f coupling_writer_2D coupling_reader_2D
+	rm -f coupling_writer_2D coupling_reader_2D 
         
 distclean: clean
 	rm -f log.* dataspaces.conf conf srv.lck *.bp
diff --git a/examples/coupling/coupling_reader_2D.F90 b/examples/coupling/coupling_reader_2D.F90
index 3f546ac..67ca5be 100644
--- a/examples/coupling/coupling_reader_2D.F90
+++ b/examples/coupling/coupling_reader_2D.F90
@@ -63,11 +63,19 @@ program coupling
     use adios_read_mod
     implicit none
     include 'mpif.h'
+    integer :: key, color
+    real*8 :: t1,t2,io_time
+
 
     call MPI_Init (ierr)
-    call MPI_Comm_dup (MPI_COMM_WORLD, group_comm, ierr)
+    call MPI_Barrier(MPI_COMM_WORLD, ierr)
+    call MPI_Comm_rank(MPI_COMM_WORLD, key, ierr)
+
+    ! Split MPI_COMM_WORLD for MPMD execution
+    color = 2
+    call MPI_Comm_split(MPI_COMM_WORLD, color, key, group_comm, ierr)
     call MPI_Comm_dup (MPI_COMM_SELF, self_comm, ierr)
-    call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
+    call MPI_Comm_rank (group_comm, rank, ierr)
     call MPI_Comm_size (group_comm, nproc , ierr)
 
     call processArgs()
@@ -86,27 +94,33 @@ program coupling
 
 
     call adios_read_init_method (read_method, group_comm, "verbose=3; app_id=2; poll_interval=1000", ierr);
-    call adios_init("coupling_reader_2D.xml", ierr)
+    call adios_init("coupling_reader_2D.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     !write (*,*) 'rank ', rank, "init completed"
     !write (nprocstr,'(i0)') nproc
 
-    call adios_read_open_stream (inh, infn, read_method, group_comm, ADIOS_LOCKMODE_CURRENT, 30.0, ierr)
+    call adios_read_open (inh, infn, read_method, group_comm, ADIOS_LOCKMODE_CURRENT, 180.0, ierr)
     if (ierr .ne. 0) then
-        print '(" Failed to open stream: ",a0)', infn
-        print '(" open stream ierr=: ",i0)', ierr
+        print '(" Failed to open stream: ",a)', infn
+        print '(" open stream ierr=: ",i)', ierr
         call exit(1)
     endif
 
-    call MPI_Barrier (MPI_COMM_WORLD, ierr)
+    t1=0;
+    t2=0;
+    call MPI_Barrier (group_comm, ierr)
     wts = 1  ! start reading from writer's 1st step
     do while (ierr==0)
+        call MPI_Barrier (group_comm, ierr)
+        t1=MPI_Wtime();
         call readArrays()
+        call MPI_Barrier (group_comm, ierr)
+        t2=t2+(MPI_Wtime()-t1);
         call adios_release_step(inh, ierr)
         call printArrays()
         call advanceArrays()
-        call MPI_Barrier (MPI_COMM_WORLD, ierr)
+        call MPI_Barrier (group_comm, ierr)
         call adios_advance_step(inh, 0, 10.0, ierr)
         if (ierr==err_end_of_stream .and. rank==0) then
             print *, " Stream has terminated. Quit reader"
@@ -117,8 +131,13 @@ program coupling
     enddo
     call adios_read_close (inh, ierr)
 
+!    call mpi_allreduce(t2, io_time, 1, MPI_INTEGER, MPI_MAX,group_comm, ierr)
+    if(rank==0) then
+        print '("Total read time = ", d12.2)', t2 
+    endif
+
     ! Terminate
-    call MPI_Barrier (MPI_COMM_WORLD, ierr)
+    call MPI_Barrier (group_comm, ierr)
     call adios_read_finalize_method (read_method, ierr)
     call adios_finalize (rank, ierr)
     call MPI_Finalize (ierr)
@@ -136,16 +155,10 @@ subroutine readArrays()
     integer*8, dimension(3) :: offset, readsize
 
 
-    offset = 0
-    readsize = 1
-    call adios_selection_boundingbox (sel, 0, offset, readsize)
-
     ! read gdx and gdy
     print '("rank=",i0,": Read in gdx and gdy, step",i0," from ",a)', rank, wts, trim(infn)
-    call adios_schedule_read (inh, sel, "gdx", 1, 1, gdx, ierr)
-    call adios_schedule_read (inh, sel, "gdy", 1, 1, gdy, ierr)
-    call adios_perform_reads (inh, ierr)
-    call adios_selection_delete (sel)
+    call adios_get_scalar (inh,"gdx",gdx, ierr)
+    call adios_get_scalar (inh,"gdy",gdy, ierr)
 
     ! Calculate the local x,y offsets
     if (read_mode == 0) then
@@ -182,7 +195,7 @@ subroutine readArrays()
     print '("rank=",i0,": Read in xy(",i0,":",i0,",",i0,":",i0,") from ",a)', rank, &
             offset(1)+1, offset(1)+readsize(1), &
             offset(2)+1, offset(2)+readsize(2),trim(infn)
-    call adios_schedule_read (inh, sel, "xy", 1, 1, xy, ierr)
+    call adios_schedule_read (inh, sel, "xy", 0, 1, xy, ierr)
     call adios_perform_reads (inh, ierr)
     call adios_selection_delete (sel)
 
@@ -305,6 +318,8 @@ subroutine processArgs()
         read_method = ADIOS_READ_METHOD_DATASPACES 
     elseif (trim(method_str) .eq. "DIMES") then
         read_method = ADIOS_READ_METHOD_DIMES 
+    elseif (trim(method_str) .eq. "FLEXPATH") then
+        read_method = ADIOS_READ_METHOD_FLEXPATH 
     else
         read_method = ADIOS_READ_METHOD_BP
     endif
diff --git a/examples/coupling/coupling_writer_2D.F90 b/examples/coupling/coupling_writer_2D.F90
index 7b6521e..f47b8af 100644
--- a/examples/coupling/coupling_writer_2D.F90
+++ b/examples/coupling/coupling_writer_2D.F90
@@ -58,14 +58,20 @@ program coupling
     use adios_write_mod
     implicit none
     include 'mpif.h'
-    integer :: t
+    integer :: t, key, color
 
     call MPI_Init (ierr)
-    call MPI_Comm_dup (MPI_COMM_WORLD, group_comm, ierr)
-    call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
+    call MPI_Barrier(MPI_COMM_WORLD, ierr)
+    call MPI_Comm_rank(MPI_COMM_WORLD, key, ierr)
+   
+    ! Split MPI_COMM_WORLD for MPMD execution
+    color = 1
+    call MPI_Comm_split(MPI_COMM_WORLD, color, key, group_comm, ierr) 
+    call MPI_Comm_rank (group_comm, rank, ierr)
     call MPI_Comm_size (group_comm, nproc , ierr)
 
-    call adios_init ("coupling_writer_2D.xml", ierr)
+
+    call adios_init ("coupling_writer_2D.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     call processArgs()
@@ -88,14 +94,14 @@ program coupling
     do ts=1,timesteps
         call generateLocalArrays()
         call writeArrays()
-        call MPI_Barrier (MPI_COMM_WORLD, ierr)
+        call MPI_Barrier (group_comm, ierr)
         !print '("rank=",i0," goes to sleep after step ",i0)', rank, ts
         if (ts < timesteps) call sleep(2)
         !print '("rank=",i0," woke up")', rank
     enddo
 
     ! Terminate
-    call MPI_Barrier (MPI_COMM_WORLD, ierr)
+    call MPI_Barrier (group_comm, ierr)
     call adios_finalize (rank, adios_err)
     call MPI_Finalize (ierr)
 end program coupling
diff --git a/examples/coupling/coupling_writer_2D.xml b/examples/coupling/coupling_writer_2D.xml
index a46eda3..9882777 100644
--- a/examples/coupling/coupling_writer_2D.xml
+++ b/examples/coupling/coupling_writer_2D.xml
@@ -34,7 +34,9 @@
        MPI  for file-based coupling
   -->
   <transport group="writer2D" method="MPI">verbose=3</transport>
+  <!--transport group="writer2D" method="VAR_MERGE">io_method=MPI</transport-->
   <!--transport group="writer2D" method="DATASPACES">verbose=3</transport-->
+  <!--transport group="writer2D" method="FLEXPATH">QUEUE_SIZE=10;verbose=3</transport-->
 
   <buffer size-MB="40" allocate-time="now"/>
 
diff --git a/examples/coupling/.svn/text-base/coupling_reader_2D.F90.svn-base b/examples/coupling/read.F90
similarity index 92%
rename from examples/coupling/.svn/text-base/coupling_reader_2D.F90.svn-base
rename to examples/coupling/read.F90
index 3f546ac..de54b05 100644
--- a/examples/coupling/.svn/text-base/coupling_reader_2D.F90.svn-base
+++ b/examples/coupling/read.F90
@@ -61,6 +61,7 @@ end module coupling_reader_2D_comm
 program coupling
     use coupling_reader_2D_comm
     use adios_read_mod
+    use adios_write_mod
     implicit none
     include 'mpif.h'
 
@@ -85,8 +86,8 @@ program coupling
     if (rank==0)    print *, " Input file: "//trim(infn)
 
 
-    call adios_read_init_method (read_method, group_comm, "verbose=3; app_id=2; poll_interval=1000", ierr);
-    call adios_init("coupling_reader_2D.xml", ierr)
+    call adios_read_init_method (read_method, group_comm, "verbose=2; app_id=2; poll_interval=1377", ierr);
+    call adios_init("coupling_reader_2D.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     !write (*,*) 'rank ', rank, "init completed"
@@ -94,7 +95,7 @@ program coupling
 
     call adios_read_open_stream (inh, infn, read_method, group_comm, ADIOS_LOCKMODE_CURRENT, 30.0, ierr)
     if (ierr .ne. 0) then
-        print '(" Failed to open stream: ",a0)', infn
+        print '(" Failed to open stream: ",a)', infn
         print '(" open stream ierr=: ",i0)', ierr
         call exit(1)
     endif
@@ -106,6 +107,7 @@ program coupling
         call adios_release_step(inh, ierr)
         call printArrays()
         call advanceArrays()
+        call sleep(2)
         call MPI_Barrier (MPI_COMM_WORLD, ierr)
         call adios_advance_step(inh, 0, 10.0, ierr)
         if (ierr==err_end_of_stream .and. rank==0) then
@@ -136,16 +138,10 @@ subroutine readArrays()
     integer*8, dimension(3) :: offset, readsize
 
 
-    offset = 0
-    readsize = 1
-    call adios_selection_boundingbox (sel, 0, offset, readsize)
-
     ! read gdx and gdy
     print '("rank=",i0,": Read in gdx and gdy, step",i0," from ",a)', rank, wts, trim(infn)
-    call adios_schedule_read (inh, sel, "gdx", 1, 1, gdx, ierr)
-    call adios_schedule_read (inh, sel, "gdy", 1, 1, gdy, ierr)
-    call adios_perform_reads (inh, ierr)
-    call adios_selection_delete (sel)
+    call adios_get_scalar(inh, "gdx", gdx, ierr)
+    call adios_get_scalar(inh, "gdy", gdy, ierr)
 
     ! Calculate the local x,y offsets
     if (read_mode == 0) then
@@ -182,7 +178,7 @@ subroutine readArrays()
     print '("rank=",i0,": Read in xy(",i0,":",i0,",",i0,":",i0,") from ",a)', rank, &
             offset(1)+1, offset(1)+readsize(1), &
             offset(2)+1, offset(2)+readsize(2),trim(infn)
-    call adios_schedule_read (inh, sel, "xy", 1, 1, xy, ierr)
+    call adios_schedule_read (inh, sel, "xy", 0, 1, xy, ierr)
     call adios_perform_reads (inh, ierr)
     call adios_selection_delete (sel)
 
@@ -193,6 +189,7 @@ subroutine readArrays()
     enddo
     
 
+    print '("rank=",i0,": Read done")', rank
     call MPI_Barrier (group_comm, ierr)
 
 end subroutine readArrays
@@ -274,7 +271,6 @@ end subroutine usage
 !!***************************
 subroutine processArgs()
     use coupling_reader_2D_comm
-    use adios_read_mod
 
 #ifndef __GFORTRAN__
 #ifndef __GNUC__
@@ -301,12 +297,15 @@ subroutine processArgs()
     read (npy_str,'(i5)') npy
 
     call getarg(3, method_str)
+    !print '("Requested method: [",a,"]")', trim(method_str)
     if (trim(method_str) .eq. "DATASPACES") then
-        read_method = ADIOS_READ_METHOD_DATASPACES 
+        read_method = 3 ! ADIOS_READ_METHOD_DATASPACES
     elseif (trim(method_str) .eq. "DIMES") then
-        read_method = ADIOS_READ_METHOD_DIMES 
+        read_method = 4 ! ADIOS_READ_METHOD_DIMES
+    elseif (trim(method_str) .eq. "FLEXPATH") then
+        read_method = 5 ! ADIOS_READ_METHOD_FLEXPATH
     else
-        read_method = ADIOS_READ_METHOD_BP
+        read_method = 0
     endif
 
     call getarg(4, mode_str)
diff --git a/examples/skel/.svn/all-wcprops b/examples/skel/.svn/all-wcprops
deleted file mode 100644
index a6e2bc2..0000000
--- a/examples/skel/.svn/all-wcprops
+++ /dev/null
@@ -1,5 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel
-END
diff --git a/examples/skel/.svn/entries b/examples/skel/.svn/entries
deleted file mode 100644
index af9086a..0000000
--- a/examples/skel/.svn/entries
+++ /dev/null
@@ -1,43 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/skel
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-11T19:39:38.181232Z
-1865
-lot
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-genarray3d
-dir
-

-grapes
-dir
-

-geos5
-dir
-

-s3d
-dir
-

-gts
-dir
-

diff --git a/examples/skel/.svn/format b/examples/skel/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/skel/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/skel/genarray3d/.svn/all-wcprops b/examples/skel/genarray3d/.svn/all-wcprops
deleted file mode 100644
index 532c818..0000000
--- a/examples/skel/genarray3d/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 60
-/svn-ewok/ADIOS/!svn/ver/1833/trunk/examples/skel/genarray3d
-END
-genarray3d.xml
-K 25
-svn:wc:ra_dav:version-url
-V 75
-/svn-ewok/ADIOS/!svn/ver/1833/trunk/examples/skel/genarray3d/genarray3d.xml
-END
diff --git a/examples/skel/genarray3d/.svn/entries b/examples/skel/genarray3d/.svn/entries
deleted file mode 100644
index 0a69c88..0000000
--- a/examples/skel/genarray3d/.svn/entries
+++ /dev/null
@@ -1,62 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/skel/genarray3d
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-10T17:34:49.573110Z
-1833
-lot
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-genarray3d.xml
-file
-
-
-
-
-2012-07-10T18:43:37.821481Z
-cf48d2e26d4b669a3c0aeed85afed1e9
-2012-07-10T17:34:49.573110Z
-1833
-lot
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2751
-

diff --git a/examples/skel/genarray3d/.svn/format b/examples/skel/genarray3d/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/skel/genarray3d/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/skel/genarray3d/.svn/text-base/genarray3d.xml.svn-base b/examples/skel/genarray3d/.svn/text-base/genarray3d.xml.svn-base
deleted file mode 100644
index a1eac8b..0000000
--- a/examples/skel/genarray3d/.svn/text-base/genarray3d.xml.svn-base
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-<adios-config host-language="C">
-  <adios-group name="genarray" coordination-communicator="group_comm" time-index="steps">
-    <var name="gndx" path="/dimensions" type="integer"/>
-    <var name="gndy" path="/dimensions" type="integer"/>
-    <var name="gndz" path="/dimensions" type="integer"/>
-
-    <var name="nproc" path="/info" type="integer"/>
-    <attribute name="description" path="/info/nproc" value="Number of writers"/>
-    <var name="npx" path="/info" type="integer"/>
-    <attribute name="description" path="/info/npx" value="Number of processors in x dimension"/>
-    <var name="npy" path="/info" type="integer"/>
-    <attribute name="description" path="/info/npy" value="Number of processors in y dimension"/>
-    <var name="npz" path="/info" type="integer"/>
-    <attribute name="description" path="/info/npz" value="Number of processors in z dimension"/>
-
-
-    <!-- Auxiliary variables for global array indexing -->
-    <var name="offx" path="/aux" type="integer"/>
-    <var name="offy" path="/aux" type="integer"/>
-    <var name="offz" path="/aux" type="integer"/>
-    <var name="ndx" path="/aux" type="integer"/>
-    <var name="ndy" path="/aux" type="integer"/>
-    <var name="ndz" path="/aux" type="integer"/>
-
-    <!-- 3D array written by genarray with 1 timesteps -->
-    <global-bounds dimensions="gndx,gndy,gndz" offsets="offx,offy,offz">
-        <var name="var1" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var2" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var3" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var4" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var5" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var6" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var7" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var8" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var9" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-    </global-bounds>
-    <attribute name="description" path="/var/double_xyz"
-               value="3D array with 3D decomposition"/>
-
-
-  </adios-group>
-
-  <method group="genarray" method="POSIX"/>
-
-  <buffer size-MB="256" allocate-time="now"/>
-
-</adios-config>
diff --git a/examples/skel/geos5/.svn/all-wcprops b/examples/skel/geos5/.svn/all-wcprops
deleted file mode 100644
index 758c51b..0000000
--- a/examples/skel/geos5/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 55
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel/geos5
-END
-geos5.xml
-K 25
-svn:wc:ra_dav:version-url
-V 65
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel/geos5/geos5.xml
-END
diff --git a/examples/skel/geos5/.svn/entries b/examples/skel/geos5/.svn/entries
deleted file mode 100644
index 2ae24f9..0000000
--- a/examples/skel/geos5/.svn/entries
+++ /dev/null
@@ -1,62 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/skel/geos5
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-11T19:39:38.181232Z
-1865
-lot
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-geos5.xml
-file
-
-
-
-
-2012-07-11T21:22:26.596637Z
-ad7db474b4bf49a96dc2aa3f21808ad9
-2012-07-11T19:39:38.181232Z
-1865
-lot
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-23203
-

diff --git a/examples/skel/geos5/.svn/format b/examples/skel/geos5/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/skel/geos5/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/skel/geos5/.svn/prop-base/geos5.xml.svn-base b/examples/skel/geos5/.svn/prop-base/geos5.xml.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/examples/skel/geos5/.svn/prop-base/geos5.xml.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/examples/skel/geos5/.svn/text-base/geos5.xml.svn-base b/examples/skel/geos5/.svn/text-base/geos5.xml.svn-base
deleted file mode 100644
index 2fe83c8..0000000
--- a/examples/skel/geos5/.svn/text-base/geos5.xml.svn-base
+++ /dev/null
@@ -1,301 +0,0 @@
-<?xml version="1.0"?>
-<adios-config host-language="Fortran">
-  <adios-group name="geosgcm" coordination-communicator="agcm_comm">
-    <var name="nsteps" path="/info" type="integer"/>
-    <var name="gndx" path="/dimensions" type="integer"/>
-    <var name="gndy" path="/dimensions" type="integer"/>
-    <var name="gndz" path="/dimensions" type="integer"/>
-
-    <!-- Auxiliary variables for global array indexing -->
-    <var name="offx" path="/aux" type="integer"/>
-    <var name="offy" path="/aux" type="integer"/>
-    <var name="offz" path="/aux" type="integer"/>
-    <var name="ndx" path="/aux" type="integer"/>
-    <var name="ndy" path="/aux" type="integer"/>
-    <var name="ndz" path="/aux" type="integer"/>
-    <var name="npx" path="/aux" type="integer"/>
-    <var name="npy" path="/aux" type="integer"/>
-    <var name="npz" path="/aux" type="integer"/>
-
-    <global-bounds dimensions="gndx,gndy" offsets="offx,offy">
-        <var name="geosgcm_prog/PHIS" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_prog/SLP" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_prog/PS" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_gwd/TAUOROX" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_gwd/TAUOROY" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_gwd/TAUBKGX" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_gwd/TAUBKGY" path="" type="real" dimensions="ndx,ndy"/>
-        <var name="geosgcm_moist/PHIS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PHIS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEDYN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PEDYN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/TEDYN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEPHY" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PEPHY" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/TEPHY" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEANA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PEANA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/TEANA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEGEN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEGWD" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KERAY" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEBKG" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEORO" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KETRB" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KESRF" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEINT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KETOP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEMST" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KECDCOR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PECDCOR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/TECDCOR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEREMAP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/PEREMAP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/TEREMAP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/CONVKE" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/CONVCPT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/CONVPHI" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/CONVTHV" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEADV" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEPG" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEDP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/KEHOT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/DKERESIN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/DKERESPG" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/QFIXER" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/DTHVDTREMAP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_bud/DTHVDTCONSV" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/PHIS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SGH" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/VARFLT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TROPPV" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TROPPT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TROPPB" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TROPT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TROPQ" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/QVFILL" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/OXFILL" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/QA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/US" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/VS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SPEED" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/PBLH" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/QS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/THAT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/QHAT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RASTIME" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RASPBLQ" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TPW" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CNPRCP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LSPRCP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ANPRCP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SNO" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/PLS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/PCU" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LWP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CCWP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TAUTT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TAULO" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TAUMD" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TAUHI" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TTAUDU" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TTAUSS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TTAUSO" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TTAUBC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TTAUOC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TDUST" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TSALT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TSO4" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TBC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TOC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CLDTT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CLDLO" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CLDMD" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CLDHI" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SPLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SPWATR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RUNOFF" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/BASEFLOW" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/EMIS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CQ" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/CM" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RISFC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LAI" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/GRN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SNOMAS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/WET1" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TSOIL1" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FRLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FRLANDICE" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FRLAKE" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FRSEAICE" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FROCEAN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/USTAR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/Z0" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/Z0H" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LHFX" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SHFX" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/EVAP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TAUX" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TAUY" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RHOS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/U2M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/V2M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/T2M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/Q2M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/U10N" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/V10N" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/U10M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/V10M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/T10M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/Q10M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/U50M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/V50M" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/GUST" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/VENT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ASNOW" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RADSRF" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FLNS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FLNSC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/FLNSCNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/OLR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/OLRC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/OLRCNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LWS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LWSC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LWSCNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SFCEM" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWCLDTMP" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWCLDPRS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/OSR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/OSRCLR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWTNET" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWTNETC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWTNETCNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWTNETNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/RADSWT" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SLRSF" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWGDWN" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWGDWNC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWGNET" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWGNETC" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWGNETNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWGNETCNA" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ALBEDO" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ALBVR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ALBVF" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ALBNR" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/ALBNF" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/EVLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LHLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SHLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SWLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/LWLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/GHLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/SMLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TWLAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_surf/TELAND" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_turb/SRFDIS" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_turb/DBUOY" path="" type="real" dimensions="ndx,ndy"/>
-       <var name="geosgcm_turb/WERAD" path="" type="real" dimensions="ndx,ndy"/>
-    </global-bounds>
-
-    <!-- 3D array written by genarray with 1 timesteps -->
-    <global-bounds dimensions="gndx,gndy,gndz" offsets="offx,offy,offz">
-        <var name="geosgcm_prog/U" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/V" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/T" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/H" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/OMEGA" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/QV" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/QI" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/QL" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/RH" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_prog/O3" path="" type="real" dimensions="ndx,ndy,ndz"/>
-
-        <var name="geosgcm_gwd/DUDTORO" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DVDTORO" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DTDTORO" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DUDTBKG" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DVDTBKG" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DTDTBKG" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DUDTRAY" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DVDTRAY" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_gwd/DTDTRAY" path="" type="real" dimensions="ndx,ndy,ndz"/>
-
-        <var name="geosgcm_moist/QL" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/QI" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/QR" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/RICE" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/RLIQ" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/RH1" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/CNVMF0" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/CNVMFD" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/CNVMFC" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/REVCN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/REVAN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/REVLS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/RSUCN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/RSUAN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/RSULS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/THIM" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/EVAPC" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/SUBLC" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/FCLD" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/CLCN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/CLLS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/QICN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/QILS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/QLCN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_moist/QLLS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/INTDIS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/TOPDIS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/KH" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/KM" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/KHLS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/KMLS" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/EKH" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/EKM" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/KHSFC" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/KHRAD" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/RI" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_turb/DU" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DUDTDYN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DUDTTRB" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DUDTMST" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DUDTGWD" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DVDTDYN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DVDTTRB" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DVDTMST" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DVDTGWD" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTDYN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTMST" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTTRB" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTGWD" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTLW" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTLWC" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTLWCNA" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTSW" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTSWC" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTSWNA" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTSWCNA" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DTDTFRI" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DQVDTDYN" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DQVDTMST" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DQVDTTRB" path="" type="real" dimensions="ndx,ndy,ndz"/>
-        <var name="geosgcm_tend/DQVDTCHM" path="" type="real" dimensions="ndx,ndy,ndz"/>
-    </global-bounds>
-
-    </adios-group>
-
-    <method group="geosgcm" method="MPI"/>
-    <!--method group="geosgcm" method="TIME_AGG">time_steps=10,step_break=10,io_method=MPI</method-->
-
- <buffer size-MB="512" allocate-time="now"/>
-</adios-config>
-
diff --git a/examples/skel/grapes/.svn/all-wcprops b/examples/skel/grapes/.svn/all-wcprops
deleted file mode 100644
index 9e8d667..0000000
--- a/examples/skel/grapes/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 56
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel/grapes
-END
-grapes.xml
-K 25
-svn:wc:ra_dav:version-url
-V 67
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel/grapes/grapes.xml
-END
diff --git a/examples/skel/grapes/.svn/entries b/examples/skel/grapes/.svn/entries
deleted file mode 100644
index 89d74b0..0000000
--- a/examples/skel/grapes/.svn/entries
+++ /dev/null
@@ -1,62 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/skel/grapes
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-11T19:39:38.181232Z
-1865
-lot
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-grapes.xml
-file
-
-
-
-
-2012-07-11T21:22:26.527702Z
-2d1c9bdbbe7b6c2895d61d0ad9e25da1
-2012-07-11T19:39:38.181232Z
-1865
-lot
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2953
-

diff --git a/examples/skel/grapes/.svn/format b/examples/skel/grapes/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/skel/grapes/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/skel/grapes/.svn/text-base/grapes.xml.svn-base b/examples/skel/grapes/.svn/text-base/grapes.xml.svn-base
deleted file mode 100644
index 09651f8..0000000
--- a/examples/skel/grapes/.svn/text-base/grapes.xml.svn-base
+++ /dev/null
@@ -1,50 +0,0 @@
-<adios-config host-language="Fortran">
-<adios-group name="post_process" coordination-communicator="group_comm" time-index="steps">
- <var name="gndx" path="/dimensions" type="integer" />
- <var name="gndy" path="/dimensions" type="integer" />
- <var name="gndz" path="/dimensions" type="integer" />
- <var name="nproc" path="/info" type="integer" />
- <attribute name="description" path="/info/nproc" value="Number of writers" />
- <var name="npx" path="/info" type="integer" />
- <attribute name="description" path="/info/npx" value="Number of processors in x dimension" />
- <var name="npy" path="/info" type="integer" />
- <attribute name="description" path="/info/npy" value="Number of processors in y dimension" />
- <var name="npz" path="/info" type="integer" />
- <attribute name="description" path="/info/npz" value="Number of processors in z dimension" />
- <!-- Auxiliary variables for global array indexing  -->
- <var name="offx" path="/aux" type="integer" />
- <var name="offy" path="/aux" type="integer" />
- <var name="offz" path="/aux" type="integer" />
- <var name="ndx" path="/aux" type="integer" />
- <var name="ndy" path="/aux" type="integer" />
- <var name="ndz" path="/aux" type="integer" />
-<!-- 3D|2D array written by genarray with 1 timesteps  -->
-<global-bounds dimensions="gndx,gndz,gndy" offsets="offx,offz,offy">
- <var name="up" path="/var" type="real" dimensions="ndx,ndz,ndy,steps" />
- <var name="vp" path="/var" type="real" dimensions="ndx,ndz,ndy,steps" />
- <var name="tp" path="/var" type="real" dimensions="ndx,ndz,ndy,steps" />
- <var name="zp" path="/var" type="real" dimensions="ndx,ndz,ndy,steps" />
- <var name="wp" path="/var" type="real" dimensions="ndx,ndz,ndy,steps" />
- </global-bounds>
-<global-bounds dimensions="gndx,gndy" offsets="offx,offy">
- <var name="rainc" path="/var" type="real" dimensions="ndx,ndy,steps" />
- <var name="rainnc" path="/var" type="real" dimensions="ndx,ndy,steps" />
- </global-bounds>
- <attribute name="description" path="/var/uvtzwp" value="3D array with 3D decomposition" />
- </adios-group>
- <method group="post_process" method="MPI_LUSTRE">
-stripe_count=32;stripe_size=1048576;block_size=1048576</method>
- <buffer size-MB="500" allocate-time="now" />
-<!--
-Estimation about the size of output data by a process at a time
-The adios_group for every process has such descriptive variables like gndx, gndy, gndz, nproc, ndx, ndy, ndz,offx, offy and offz.
-     size for one output of 3-D variable=type_size*ndx*ndy*ndz;
- For instance, 100 km H-resolution (gndx=1440, gndy=720, gndz=17),
- if choosing npx=1440, npy=720, npz=0, assuming type_size for real=4B
-  var_num:number of descriptive variables,   assuming type_size for integer=4B                 
- then for every process
-                            ndx=1440/32=45; ndy=720/32=23; ndz=gndz=17;
-                            adios_groupsize=4*10+4*45*23*17
-                                                             =70420B=68.8MB
--->
-</adios-config>
diff --git a/examples/skel/gts/.svn/all-wcprops b/examples/skel/gts/.svn/all-wcprops
deleted file mode 100644
index 369e3d9..0000000
--- a/examples/skel/gts/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn-ewok/ADIOS/!svn/ver/1833/trunk/examples/skel/gts
-END
-gts.xml
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn-ewok/ADIOS/!svn/ver/1833/trunk/examples/skel/gts/gts.xml
-END
diff --git a/examples/skel/gts/.svn/entries b/examples/skel/gts/.svn/entries
deleted file mode 100644
index d61483b..0000000
--- a/examples/skel/gts/.svn/entries
+++ /dev/null
@@ -1,62 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/skel/gts
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-10T17:34:49.573110Z
-1833
-lot
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-gts.xml
-file
-
-
-
-
-2012-07-10T18:43:37.899484Z
-c3dcfb01ab5d26789b72bce1791a0122
-2012-07-10T17:34:49.573110Z
-1833
-lot
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3917
-

diff --git a/examples/skel/gts/.svn/format b/examples/skel/gts/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/skel/gts/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/skel/gts/.svn/text-base/gts.xml.svn-base b/examples/skel/gts/.svn/text-base/gts.xml.svn-base
deleted file mode 100644
index 21d77cc..0000000
--- a/examples/skel/gts/.svn/text-base/gts.xml.svn-base
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0"?>
-<adios-config host-language="Fortran">
-<adios-group name="restart" coordination-communicator="comm">
-  <var name="mype" type="integer" read="no"/>
-  <var name="numberpe" type="integer" read="no"/>
-  <var name="istep" gread="istart" type="integer"/>
-  <var name="mgrid" type="integer" read="no"/>
-  <var name="mpsi" type="integer"  read="no"/>
-  <var name="nprobe" type="integer" read="no"/>
-  <var name="nrbin" type="integer" read="no"/>
-  <var name="nbin_a" type="integer" read="no"/>
-  <var name="mimax" type="integer" read="no"/>
-  <var name="mpsi+1" type="integer" read="no"/>
-  <var name="sprng_buffer_len" type="integer" read="no"/>
-  <global-bounds dimensions="numberpe" offsets="mype">
-     <var name="mi" type="integer" dimensions="1"/>
-     <var name="ntracer" type="integer" dimensions="1"/>
-     <var name="etracer_i0" type="double" dimensions="1"/>
-     <var name="misum" type="double" dimensions="1"/>
-     <var name="cloud_i" type="double" dimensions="1"/>
-     <var name="isize" type="integer"  dimensions="1"/>
-  </global-bounds>
-  <global-bounds dimensions="sprng_buffer_len,numberpe" offsets="0,mype">
-     <var name="buffer1" type="byte" dimensions="sprng_buffer_len,1"/>
-  </global-bounds>
-  <global-bounds dimensions="nprobe,numberpe" offsets="0,mype">
-     <var name="sn_box" type="double" dimensions="nprobe,1"/>
-  </global-bounds>
-  <global-bounds dimensions="nbin_a,numberpe" offsets="0,mype">
-     <var name="sn0" type="double" dimensions="nbin_a,1"/>
-  </global-bounds>
-  <global-bounds dimensions="nrbin,numberpe" offsets="0,mype">
-     <var name="rdtem0" type="double" dimensions="nrbin,1"/>
-     <var name="rtden" type="double" dimensions="nrbin,1"/>
-  </global-bounds>
-  <global-bounds dimensions="mpsi+1,numberpe" offsets="0,mype">
-     <var name="sn0_g" type="double" dimensions="mpsi+1,1"/>
-     <var name="pmarki" type="double" dimensions="mpsi+1,1"/>
-     <var name="ddT_da" type="double" dimensions="mpsi+1,1"/>
-  </global-bounds>
-  <global-bounds dimensions="mgrid,numberpe" offsets="0,mype">
-     <var name="markeri" type="double" dimensions="mgrid,1"/>
-  </global-bounds>
-  <global-bounds dimensions="2,mgrid,numberpe" offsets="0,0,mype">
-     <var name="phi" type="double" dimensions="2,mgrid,1"/>
-  </global-bounds>
-  <global-bounds dimensions="mimax,numberpe" offsets="0,mype">
-    <var name="zion0" gwrite="zion0(6,1:mimax)" gread="zion0_read" type="double" dimensions="mimax,1"/>
-  </global-bounds>
-  <global-bounds dimensions="7,mimax,numberpe" offsets="0,0,mype">
-    <var name="zion" type="double" dimensions="7,mimax,1"/>
-  </global-bounds>
-
-  <gwrite src="if(ifelectron==1) then"/>
-  <var name="memax" type="integer" read="no"/>
-  <global-bounds dimensions="numberpe" offsets="mype">
-     <var name="me" type="integer"  dimensions="1"/>
-     <var name="ntracer_e" type="integer"  dimensions="1"/>
-     <var name="etracer_e0" type="double" dimensions="1"/>
-     <var name="mesum" type="double"  dimensions="1"/>
-     <var name="cloud_e" type="double"  dimensions="1"/>
-  </global-bounds>
-  <global-bounds dimensions="mpsi+1,numberpe" offsets="0,mype">
-     <var name="pmarke" type="double" dimensions="mpsi+1,1"/>
-  </global-bounds>
-  <global-bounds dimensions="mgrid,numberpe" offsets="0,mype">
-     <var name="markere" type="double" dimensions="mgrid,1"/>
-  </global-bounds>
-  <global-bounds dimensions="memax,numberpe" offsets="0,mype">
-    <var name="zeon0" gwrite="zeon0(6,1:memax)" gread="zeon0_read" type="double" dimensions="memax,1"/>
-  </global-bounds>
-  <global-bounds dimensions="7,memax,numberpe" offsets="0,0,mype">
-    <var name="zeon" type="double" dimensions="7,memax,1"/>
-  </global-bounds>
-  <gwrite src="endif"/>
-</adios-group>
-
-
-<!-- method priority="3" method="MPI_AMR" iterations="100" group="restart"/ -->
-<method priority="3" method="POSIX" group="restart"/>
-<buffer size-MB="256" allocate-time="now" />
-</adios-config>
diff --git a/examples/skel/s3d/.svn/all-wcprops b/examples/skel/s3d/.svn/all-wcprops
deleted file mode 100644
index 8945a16..0000000
--- a/examples/skel/s3d/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel/s3d
-END
-s3d.xml
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn-ewok/ADIOS/!svn/ver/1865/trunk/examples/skel/s3d/s3d.xml
-END
diff --git a/examples/skel/s3d/.svn/entries b/examples/skel/s3d/.svn/entries
deleted file mode 100644
index 43be7c4..0000000
--- a/examples/skel/s3d/.svn/entries
+++ /dev/null
@@ -1,62 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/skel/s3d
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-11T19:39:38.181232Z
-1865
-lot
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-s3d.xml
-file
-
-
-
-
-2012-07-11T21:22:26.744621Z
-5407661621a620f37a34c25105d9276f
-2012-07-11T19:39:38.181232Z
-1865
-lot
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1737
-

diff --git a/examples/skel/s3d/.svn/format b/examples/skel/s3d/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/skel/s3d/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/skel/s3d/.svn/text-base/s3d.xml.svn-base b/examples/skel/s3d/.svn/text-base/s3d.xml.svn-base
deleted file mode 100644
index e9fa3de..0000000
--- a/examples/skel/s3d/.svn/text-base/s3d.xml.svn-base
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?> <adios-config host-language="Fortran"> <adios-group
-name="restart" coordination-communicator="gcomm" stats="Off"> <var
-name="gx" type="integer" /> <var name="gy" type="integer" /> <var
-name="gz" type="integer" /> <var name="lx" type="integer" /> <var
-name="ly" type="integer" /> <var name="lz" type="integer" /> <var
-name="nx" type="integer" /> <var name="ny" type="integer" /> <var
-name="nz" type="integer" /> <var name="time" type="double" /> <var
-name="tstep" type="double" /> <var name="time_save" type="double" /> <var
-name="pout" type="double" /> <global-bounds dimensions="gx,gy,gz"
-offsets="lx,ly,lz"> <var name="temp" type="double" dimensions="nx,ny,nz" />
-<var name="pressure" type="double" dimensions="nx,ny,nz" /> <var
-name="uvel" type="double" dimensions="nx,ny,nz" /> <var name="vvel"
-type="double" dimensions="nx,ny,nz" /> <var name="wvel" type="double"
-dimensions="nx,ny,nz" /> <var name="H2" type="double"
-dimensions="nx,ny,nz" /><var name="O2" type="double"
-dimensions="nx,ny,nz" /><var name="O" type="double" dimensions="nx,ny,nz" /><var
-name="OH" type="double" dimensions="nx,ny,nz" /><var name="H2O"
-type="double" dimensions="nx,ny,nz" /><var name="H" type="double"
-dimensions="nx,ny,nz" /><var name="HO2" type="double"
-dimensions="nx,ny,nz" /><var name="CO" type="double"
-dimensions="nx,ny,nz" /><var name="CO2" type="double"
-dimensions="nx,ny,nz" /><var name="HCO" type="double"
-dimensions="nx,ny,nz" /><var name="N2" type="double"
-dimensions="nx,ny,nz" /></global-bounds> </adios-group> <method
-group="restart" method="MPI_AMR"> stripe_count=1,stripe_size=25600000,block_size=25600000,num_aggregators=1920,merging_pgs=0
-</method> <buffer size-MB="200" allocate-time="now" /> </adios-config>
diff --git a/examples/staging/.svn/all-wcprops b/examples/staging/.svn/all-wcprops
deleted file mode 100644
index 0294f03..0000000
--- a/examples/staging/.svn/all-wcprops
+++ /dev/null
@@ -1,5 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 52
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging
-END
diff --git a/examples/staging/.svn/entries b/examples/staging/.svn/entries
deleted file mode 100644
index de91ca4..0000000
--- a/examples/staging/.svn/entries
+++ /dev/null
@@ -1,38 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/staging
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-stage_write
-dir
-

diff --git a/examples/staging/.svn/format b/examples/staging/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/staging/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/staging/stage_write/.svn/all-wcprops b/examples/staging/stage_write/.svn/all-wcprops
deleted file mode 100644
index 4f686a9..0000000
--- a/examples/staging/stage_write/.svn/all-wcprops
+++ /dev/null
@@ -1,83 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write
-END
-Makefile.genarray_stream
-K 25
-svn:wc:ra_dav:version-url
-V 89
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write/Makefile.genarray_stream
-END
-decompose_single.c
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn-ewok/ADIOS/!svn/ver/2106/trunk/examples/staging/stage_write/decompose_single.c
-END
-genarray_stream.F90
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write/genarray_stream.F90
-END
-utils.c
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn-ewok/ADIOS/!svn/ver/2106/trunk/examples/staging/stage_write/utils.c
-END
-genarray_stream.xml
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write/genarray_stream.xml
-END
-decompose.h
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn-ewok/ADIOS/!svn/ver/2106/trunk/examples/staging/stage_write/decompose.h
-END
-utils.h
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn-ewok/ADIOS/!svn/ver/2106/trunk/examples/staging/stage_write/utils.h
-END
-decompose_block.c
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn-ewok/ADIOS/!svn/ver/2106/trunk/examples/staging/stage_write/decompose_block.c
-END
-job
-K 25
-svn:wc:ra_dav:version-url
-V 68
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write/job
-END
-Makefile
-K 25
-svn:wc:ra_dav:version-url
-V 73
-/svn-ewok/ADIOS/!svn/ver/2215/trunk/examples/staging/stage_write/Makefile
-END
-README
-K 25
-svn:wc:ra_dav:version-url
-V 71
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write/README
-END
-stage_write.c
-K 25
-svn:wc:ra_dav:version-url
-V 78
-/svn-ewok/ADIOS/!svn/ver/2108/trunk/examples/staging/stage_write/stage_write.c
-END
-test_decompose.c
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn-ewok/ADIOS/!svn/ver/2106/trunk/examples/staging/stage_write/test_decompose.c
-END
diff --git a/examples/staging/stage_write/.svn/entries b/examples/staging/stage_write/.svn/entries
deleted file mode 100644
index 4ededff..0000000
--- a/examples/staging/stage_write/.svn/entries
+++ /dev/null
@@ -1,477 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/examples/staging/stage_write
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-Makefile.genarray_stream
-file
-
-
-
-
-2013-01-08T17:28:10.968070Z
-7a6c035e1d4e61c2bc654142a4036fa8
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-624
-

-decompose_single.c
-file
-
-
-
-
-2012-11-26T22:20:04.433137Z
-0882d00eb7d8cbd71a49bb89bb8e74d7
-2012-11-26T22:25:21.934313Z
-2106
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-589
-

-genarray_stream.F90
-file
-
-
-
-
-2012-11-27T18:57:43.521014Z
-17a705054c52b8a795d2162268ab6999
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10709
-

-utils.c
-file
-
-
-
-
-2012-08-01T22:28:03.953365Z
-cbe54d7aaf79ee46e618a3e2ab040f4e
-2012-11-26T22:25:21.934313Z
-2106
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4884
-

-genarray_stream.xml
-file
-
-
-
-
-2012-11-27T19:37:12.089286Z
-6efe7ee904c7f5df2144f24718f8d4af
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2778
-

-decompose.h
-file
-
-
-
-
-2012-08-01T22:08:34.281966Z
-81dedcf9e93aa71142759728f9d66c1b
-2012-11-26T22:25:21.934313Z
-2106
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-428
-

-utils.h
-file
-
-
-
-
-2012-08-01T22:31:11.680213Z
-fcd23062d629ebc5c2862062f143c1d5
-2012-11-26T22:25:21.934313Z
-2106
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1590
-

-decompose_block.c
-file
-
-
-
-
-2012-11-26T22:21:24.972664Z
-4f4e5675dd5639e18c44acd8ddb6ea88
-2012-11-26T22:25:21.934313Z
-2106
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2708
-

-job
-file
-
-
-
-
-2013-01-08T17:39:49.955529Z
-181836832800054da55bca8ef9c83ea2
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1604
-

-README
-file
-
-
-
-
-2012-11-27T19:00:22.646136Z
-99c4faef9fc5fd77f214c94d6a07a4c7
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2792
-

-Makefile
-file
-2215
-
-
-
-2013-01-08T17:27:36.810840Z
-2e6687927e76a0e85ef06a4ced1002da
-2013-01-08T17:40:22.266814Z
-2215
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-801
-

-test_decompose.c
-file
-
-
-
-
-2012-08-02T18:09:37.905612Z
-80ec4d118929bc8311a8d361707c0d44
-2012-11-26T22:25:21.934313Z
-2106
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3665
-

-stage_write.c
-file
-
-
-
-
-2012-11-27T19:37:34.727503Z
-335ed6d704667aea0dab7cd041703ea9
-2012-11-27T19:39:19.645877Z
-2108
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-13802
-

diff --git a/examples/staging/stage_write/.svn/format b/examples/staging/stage_write/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/examples/staging/stage_write/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/examples/staging/stage_write/.svn/prop-base/job.svn-base b/examples/staging/stage_write/.svn/prop-base/job.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/examples/staging/stage_write/.svn/prop-base/job.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/examples/staging/stage_write/.svn/text-base/Makefile.genarray_stream.svn-base b/examples/staging/stage_write/.svn/text-base/Makefile.genarray_stream.svn-base
deleted file mode 100644
index c1b45de..0000000
--- a/examples/staging/stage_write/.svn/text-base/Makefile.genarray_stream.svn-base
+++ /dev/null
@@ -1,30 +0,0 @@
-## MPIF90 SETTINGS
-FC=mpif90
-FFLAGS=-g
-
-## FTN SETTINGS
-#FC=ftn
-#FFLAGS = -O3
-
-#TARGET=gnu
-TARGET=pgi
-
-## Set ADIOS_DIR here or before doing make
-override ADIOS_DIR=/ccs/proj/e2e/pnorbert/ADIOS/sith.${TARGET}
-override ADIOS_INC=`${ADIOS_DIR}/bin/adios_config -c -f`
-override ADIOS_FLIB=`${ADIOS_DIR}/bin/adios_config -l -f`
-
-default: genarray_stream
-all: default
-
-genarray_stream.o : genarray_stream.F90 
-	${FC} -g -c ${ADIOS_INC} genarray_stream.F90  $<
-
-genarray_stream:  genarray_stream.o
-	${FC} -g -o genarray_stream genarray_stream.o ${ADIOS_FLIB} 
-
-
-clean:
-	rm -f *.o *.mod *.fh core.*
-	rm -f genarray_stream
-        
diff --git a/examples/staging/stage_write/.svn/text-base/Makefile.svn-base b/examples/staging/stage_write/.svn/text-base/Makefile.svn-base
deleted file mode 100644
index 398c102..0000000
--- a/examples/staging/stage_write/.svn/text-base/Makefile.svn-base
+++ /dev/null
@@ -1,41 +0,0 @@
-## mpicc SETTINGS
-CC=mpicc
-CFLAGS=-g 
-LDFLAGS=-g
-
-## cc SETTINGS
-#CC=cc
-#CFLAGS = -O3
-#LDFLAGS =
-
-#TARGET=gnu
-TARGET=pgi
-
-## Set ADIOS_DIR here or before doing make
-override ADIOS_DIR=/ccs/proj/e2e/pnorbert/ADIOS/sith.${TARGET}
-override ADIOS_INC=`${ADIOS_DIR}/bin/adios_config -c`
-override ADIOS_CLIB=`${ADIOS_DIR}/bin/adios_config -l`
-
-
-default: stage_write 
-all: default
-
-OBJS = utils.o decompose_block.o 
-
-%.o: %.c
-	${CC} ${CFLAGS} -c ${ADIOS_INC} $<
-
-stage_write: ${OBJS} stage_write.o
-	${CC} ${LDFLAGS} -o stage_write ${OBJS} stage_write.o ${ADIOS_CLIB}
-
-test_decompose: ${OBJS} test_decompose.o 
-	${CC} ${LDFLAGS} -o test_decompose ${OBJS} test_decompose.o ${ADIOS_CLIB}
-
-clean:
-	rm -f *.o *.mod *.fh core.*
-	rm -f stage_write
-
-
-distclean: clean
-	rm -f log.* dataspaces.conf conf srv.lck *.bp
-
diff --git a/examples/staging/stage_write/.svn/text-base/README.svn-base b/examples/staging/stage_write/.svn/text-base/README.svn-base
deleted file mode 100644
index 041b65a..0000000
--- a/examples/staging/stage_write/.svn/text-base/README.svn-base
+++ /dev/null
@@ -1,47 +0,0 @@
-STAGE WRITE CODE
-
-This code can be used to perform your disk I/O after sending the data to a staging area. 
-It can also be used to read in your file with a certain number of processors with a new decomposition and write out the data with the new layout.
-
-BUILD
-=====
-Edit the Makefile for your needs. This example is not built automatically with ADIOS. You need to install ADIOS first, then use the installation to build this code. 
-
-The read method in this code is not set by argument but is in the source. Set it for your target usage. See variable "read_method", set around line 32. 
-
-USAGE
-=====
-The 'job' file provides an example how to launch 3 applications within one job. Besides your own app, first you have to prepare and start the staging server (DataSpaces in the job script). Then you can run both your app and this stage writer code.
-
-Parameters to stage write:
-    E.g. genarray.bp staged.bp MPI \"\" $READPROC 1 1 
-
-    input   Input stream path
-    output  Output file path
-    method  ADIOS method to write with
-    params  Write method parameters (in quotes; comma-separated list)
-    <decomposition>    list of numbers e.g. 32 8 4
-            Decomposition values in each dimension of an array
-            The product of these number must be less then the number
-            of processes. Processes whose rank is higher than the
-            product, will not read/write anything.
-               Arrays with less dimensions than the number of values,
-            will be decomposed with using the numbers from the beginning.
-
-NOTES
-=====
-1. The job example is set for the ./genarray_stream.F90 writing application, which is not built automatically. Use the Makefile.genarray_stream to build it. 
-WARNING: the method used in the genarray_stream.xml should match the reading method in stage_write.c. That is, if you use a file method (e.g. MPI) to write to a file, the stage_write should use the BP reading method to be able to process it. Then you don't need to run the dataspaces server in the job either. Modify both places to use DataSpaces for staging. 
-
-2. The writing application must append new steps into the same file (name). A stream in ADIOS staging cannot consist of multiple file names but of a single "file" with multiple steps in it. E.g. we had to modify the tests/genarray/genarray.F90 to append to a file named "genarray.bp". See ./genarray_stream.F90, which is not built automatically.
-
-3. You probably end up modifying this code. For instance, you might find that the desired decomposition cannot be expressed (e.g. you have arrays with various dimensions and you want decomposition different from them), or you want to pass the output file name within the stream dataset itself, or you want to do something with the data before writing it out.
-
-
-
-
-
-
-
-
-
diff --git a/examples/staging/stage_write/.svn/text-base/decompose.h.svn-base b/examples/staging/stage_write/.svn/text-base/decompose.h.svn-base
deleted file mode 100644
index 0d133ff..0000000
--- a/examples/staging/stage_write/.svn/text-base/decompose.h.svn-base
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __DECOMPOSE_H_
-#define __DECOMPOSE_H_
-
-#include <stdint.h>
-
-/* Decompose a variable among several processors 
-
-   count/start: array of size/offset in each dimension 
-   writesize:   sum (count)
-
-*/
-void decompose (int numproc, int rank, int ndim, uint64_t *dims, int *decomp_values,
-                /*OUT*/ uint64_t *count,
-                /*OUT*/ uint64_t *start,
-                /*OUT*/ uint64_t *writesize);
-
-#endif
diff --git a/examples/staging/stage_write/.svn/text-base/decompose_block.c.svn-base b/examples/staging/stage_write/.svn/text-base/decompose_block.c.svn-base
deleted file mode 100644
index 8f49267..0000000
--- a/examples/staging/stage_write/.svn/text-base/decompose_block.c.svn-base
+++ /dev/null
@@ -1,91 +0,0 @@
-/* 
-Decompose arrays in all dimensions (block), evenly among 
-the processes. 
-
-Does not care how small the blocks become, so small arrays
-with many writers may suffer with this approach.
-
-*/
-
-#include "decompose.h"
-#include "utils.h"
-
-void decompose (int numproc, int rank, int ndim, uint64_t *dims, 
-                int *np, // number of processes in each dimension
-                /*OUT*/ uint64_t *count,
-                /*OUT*/ uint64_t *start,
-                /*OUT*/ uint64_t *writesize)
-{
-    int i;
-    int pos[10]; // rank's position in each dimensions
-
-    if (ndim == 0) {
-        // scalars -> rank 0 writes them
-        if (rank == 0) 
-            *writesize = 1;
-        else 
-            *writesize = 0;
-        return;
-    }
-
-    /* calculate this process' position in the n-dim space
-        0 1 2
-        3 4 5
-        6 7 8
-
-        for 1D: 
-        posx = rank/1             ! 1st dim: 0, 1, 2...,rank-1 are in the same X position
-    
-        for 2D: 
-        posx = mod(rank, npx)     ! 1st dim: 0, npx, 2npx... are in the same X position
-        posy = rank/(npx)         ! 2nd dim: npx processes belong into one dim
-
-        for 3D: 
-        posx = mod(rank, npx)     ! 1st dim: 0, npx, 2npx... are in the same X position
-        posy = mod(rank/npx, npy) ! 2nd dim: (0, npx-1) have the same dim (so divide with npx first)
-        posz = rank/(npx*npy)     ! 3rd dim: npx*npy processes belong into one dim
-    */
-    int nps = 1;
-    for (i=0; i<ndim-1; i++)
-    {
-        pos[i] = (rank / nps) % np[i];
-        nps *= np[i];
-    }
-    pos[i] = rank / nps;
-
-    char ints[256];
-    ints_to_str(ndim, pos, ints);
-    if (pos[ndim-1] >= np[ndim-1]) {
-        print("rank %d: position in %d-D space = %s ---> Out of bound process\n", rank, ndim, ints);
-    } else {
-        print("rank %d: position in %d-D space = %s\n", rank, ndim, ints);
-    }
-
-    /* Decompose each dimension according to the position */
-    *writesize = 1;
-    for (i=0; i<ndim; i++)
-    {
-        if (pos[ndim-1] >= np[ndim-1]) 
-        {
-            // this process gets nothing to read
-            count[i] = 0;
-            start[i] = 0;
-        } 
-        else 
-        {
-            count[i] = dims[i] / np[i];
-            start[i] = count[i] * pos[i];
-            if (pos[i] == np[i]-1) {
-                // last one in the dimension may need to read more than the rest
-                count[i] = dims[i] - count[i]*(np[i]-1);
-            }
-        }
-        *writesize *= count[i];
-    }
-    int64s_to_str(ndim, count, ints);
-    print("rank %d: ldims   in %d-D space = %s\n", rank, ndim, ints);
-    int64s_to_str(ndim, start, ints);
-    print("rank %d: offsets in %d-D space = %s\n", rank, ndim, ints);
-}
-
-
diff --git a/examples/staging/stage_write/.svn/text-base/decompose_single.c.svn-base b/examples/staging/stage_write/.svn/text-base/decompose_single.c.svn-base
deleted file mode 100644
index 522f9b4..0000000
--- a/examples/staging/stage_write/.svn/text-base/decompose_single.c.svn-base
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "decompose.h"
-
-/* Silly decompose: let process 0 do everything */
-void decompose (int numproc, int rank, int ndim, uint64_t *dims, int *decomp_values,
-                /*OUT*/ uint64_t *count,
-                /*OUT*/ uint64_t *start,
-                /*OUT*/ uint64_t *writesize)
-{
-    int i;
-    if (rank == 0) 
-        *writesize = 1;
-    else 
-        *writesize = 0;
-
-    for (i=0; i<ndim; i++)
-    {
-        if (rank == 0) {
-            count[i] = dims[i];
-            *writesize *= dims[i];
-        } else {
-            count[i] = 0;
-        }
-        start[i] = 0;
-    }
-}
-
-
diff --git a/examples/staging/stage_write/.svn/text-base/genarray_stream.F90.svn-base b/examples/staging/stage_write/.svn/text-base/genarray_stream.F90.svn-base
deleted file mode 100644
index 34b467c..0000000
--- a/examples/staging/stage_write/.svn/text-base/genarray_stream.F90.svn-base
+++ /dev/null
@@ -1,309 +0,0 @@
-
-!  ADIOS is freely available under the terms of the BSD license described
-!  in the COPYING file in the top level directory of this source distribution.
-!
-!  Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
-!
-
-!
-!  GENARRAY for staging: same as genarray but appends steps into a single file
-!
-!  Write an ADIOS BP file from many processor for test purposes.
-!
-!  nx * ny * nz     processes write a 3D array, where each process writes an
-!  ndx * ndy * ndz  piece with filling with its rank as integer (4 bytes) value
-!
-!
-! (c) Oak Ridge National Laboratory, 2009
-! Author: Norbert Podhorszki
-!
-module genarray_stream_comm
-    ! arguments
-    character(len=256) :: outputfile, inputfile
-    integer :: npx, npy, npz  ! # of processors in x-y-z direction
-    integer :: ndx, ndy, ndz  ! size of array per processor
-    integer :: timesteps      ! number of timesteps to write
-    integer :: sleeptime      ! time to sleep between time steps
-    logical :: common_size    ! .true.  if common local sizes are given as argument
-                              ! .false. if we have to read sizes from a file
-
-    integer :: gndx, gndy, gndz  ! size of the global array
-    integer :: offx,offy,offz    ! offsets of local array in the global array
-
-    real*8, dimension(:,:,:), allocatable :: double_xyz
-
-    ! MPI COMM_WORLD is for all codes started up at once on Cray XK6 
-    integer :: wrank, wnproc
-
-    ! MPI 'world' for this app variables
-    integer :: app_comm, color
-    integer :: rank, nproc
-    integer :: ierr
-
-    ! ADIOS variables
-    character (len=200) :: group
-    character (len=200) :: filename
-    !character (len=6)   :: nprocstr
-    integer*8 :: handle, total_size, group_size, adios_totalsize
-    integer   :: err
-
-    real*8 :: start_time, end_time, total_time,gbs,sz
-    real*8 :: io_start_time, io_end_time, io_total_time
-
-
-end module genarray_stream_comm
-
-
-program genarray
-    use genarray_stream_comm
-    implicit none
-    include 'mpif.h'
-
-    !print *,"call MPI_Init "
-    call MPI_Init (ierr)
-    ! World comm spans all applications started with the same aprun command 
-    ! on a Cray XK6
-    !print *,"call MPI_rank (world) "
-    call MPI_Comm_rank (MPI_COMM_WORLD, wrank, ierr)
-    !print *,"call MPI_size (world) "
-    call MPI_Comm_size (MPI_COMM_WORLD, wnproc , ierr)
-    ! Have to split and create a 'world' communicator for genarray only
-    color = 1
-    !print *,"call MPI_split "
-    !call MPI_Comm_split (MPI_COMM_WORLD, color, wrank, app_comm, ierr)
-    call MPI_Comm_dup (MPI_COMM_WORLD, app_comm, ierr)
-    !print *,"call MPI_rank (app) "
-    call MPI_Comm_rank (app_comm, rank, ierr)
-    !print *,"call MPI_size (app) "
-    call MPI_Comm_size (app_comm, nproc , ierr)
-
-    !print *,"call adios_init "
-    call adios_init ("genarray_stream.xml", ierr)
-    !print *,"MPI_Barrier "
-    call MPI_Barrier (app_comm, ierr)
-
-    call processArgs()
-    if (rank == 0) then
-        print *,"Output file(s): "//trim(outputfile)//".<step>.bp"
-        print '(" Process number        : ",i0," x ",i0," x ",i0)', npx,npy,npz
-        if (common_size) then
-            print '(" Array size per process: ",i0," x ",i0," x ",i0)', ndx,ndy,ndz
-        else
-            print *," Array sizes per processes taken from file: "//trim(inputfile)
-        endif
-
-        if (nproc .ne. npx*npy*npz) then
-            print '(" Error: Number of processors ",i0,"does not match ndx*ndy*ndz=",i0)', nproc, npx*npy*npz
-            call exit(1)
-        endif
-    endif
-
-    !write (*,*) 'rank ', rank, "init completed"
-    !write (nprocstr,'(i0)') nproc
-
-    call determineLocalSize()
-    call determineGlobalSize()
-    call determineOffsets()
-    call generateLocalArray()
-
-    call writeArray()
-    ! Terminate
-    call MPI_Barrier (app_comm, ierr)
-    call adios_finalize (rank, ierr)
-    call MPI_Barrier (MPI_COMM_WORLD, ierr)
-    print *,"Writer calls MPI_Finalize"
-    call MPI_Finalize (ierr)
-    print *,"Exit writer code "
-end program genarray
-
-
-!!***************************
-subroutine determineLocalSize()
-    use genarray_stream_comm
-    implicit none
-    if (common_size) then
-       ! we are done since we know them from argument
-    else
-       ! have to read from file
-       print *, "To be implemented: read sizes from file 1"
-       call exit(2)
-    endif
-end subroutine determineLocalSize
-
-!!***************************
-subroutine determineGlobalSize()
-    use genarray_stream_comm
-    implicit none
-    if (common_size) then
-        gndx = npx * ndx
-        gndy = npy * ndy
-        gndz = npz * ndz
-    else
-       ! have to read from file
-       print *, "To be implemented: read sizes from file 2"
-       call exit(2)
-    endif
-end subroutine determineGlobalSize
-
-!!***************************
-subroutine determineOffsets()
-    use genarray_stream_comm
-    implicit none
-    integer :: posx, posy, posz ! position index in the array
-    if (common_size) then
-        posx = mod(rank, npx)     ! 1st dim easy: 0, npx, 2npx... are in the same X position
-        posy = mod(rank/npx, npy) ! 2nd dim: (0, npx-1) have the same dim (so divide with npx first)
-        posz = rank/(npx*npy)     ! 3rd dim: npx*npy processes belong into one dim
-        offx = posx * ndx
-        offy = posy * ndy
-        offz = posz * ndz
-    else
-       ! have to read from file
-       print *, "To be implemented: read sizes from file 3"
-       call exit(2)
-    endif
-end subroutine determineOffsets
-
-
-!!***************************
-subroutine generateLocalArray()
-    use genarray_stream_comm
-    implicit none
-    integer :: i,j,k
-    allocate( double_xyz(1:ndx, 1:ndy, 1:ndz) )
-    do k=1,ndz
-        do j=1,ndy
-            do i=1,ndx
-                double_xyz(i,j,k) = 1.0d0*rank
-            enddo
-        enddo
-    enddo
-end subroutine generateLocalArray
-
-
-!!***************************
-subroutine writeArray()
-    use genarray_stream_comm
-    implicit none
-    integer*8 adios_handle, adios_groupsize
-    integer adios_err
-    integer :: tstep
-    character(2) :: mode = "w"
-    include 'mpif.h'
-
-
-    if (rank==0) print '("Writing: "," filename ",14x,"size(GB)",4x,"io_time(sec)",6x,"GB/s")'
-    do tstep=1,timesteps
-        if (tstep > 1) mode = "a"
-        double_xyz = tstep + double_xyz
-        call MPI_BARRIER(app_comm, adios_err)
-        io_start_time = MPI_WTIME()
-        group = "genarray"
-        call adios_open (adios_handle, group, outputfile, mode, app_comm, adios_err)
-        adios_groupsize = 13*4 + 9*8*ndx*ndy*ndz
-        call adios_group_size (adios_handle, adios_groupsize, adios_totalsize, adios_err)
-        call adios_write (adios_handle, "gndx", gndx, adios_err)
-        call adios_write (adios_handle, "gndy", gndy, adios_err)
-        call adios_write (adios_handle, "gndz", gndz, adios_err)
-        call adios_write (adios_handle, "nproc", nproc, adios_err)
-        call adios_write (adios_handle, "npx", npx, adios_err)
-        call adios_write (adios_handle, "npy", npy, adios_err)
-        call adios_write (adios_handle, "npz", npz, adios_err)
-        call adios_write (adios_handle, "offx", offx, adios_err)
-        call adios_write (adios_handle, "offy", offy, adios_err)
-        call adios_write (adios_handle, "offz", offz, adios_err)
-        call adios_write (adios_handle, "ndx", ndx, adios_err)
-        call adios_write (adios_handle, "ndy", ndy, adios_err)
-        call adios_write (adios_handle, "ndz", ndz, adios_err)
-        call adios_write (adios_handle, "var1", double_xyz, adios_err)
-        call adios_write (adios_handle, "var2", double_xyz, adios_err)
-        call adios_write (adios_handle, "var3", double_xyz, adios_err)
-        call adios_write (adios_handle, "var4", double_xyz, adios_err)
-        call adios_write (adios_handle, "var5", double_xyz, adios_err)
-        call adios_write (adios_handle, "var6", double_xyz, adios_err)
-        call adios_write (adios_handle, "var7", double_xyz, adios_err)
-        call adios_write (adios_handle, "var8", double_xyz, adios_err)
-        call adios_write (adios_handle, "var9", double_xyz, adios_err)
-        call adios_close (adios_handle, adios_err)
-        call MPI_BARRIER(app_comm ,adios_err)
-        io_end_time = MPI_WTIME()
-        io_total_time = io_end_time - io_start_time
-        sz = adios_totalsize * nproc/1024.d0/1024.d0/1024.d0 !size in GB
-        gbs = sz/io_total_time
-        if (rank==0) print '("Writing: ",a20,d12.2,2x,d12.2,2x,d12.3)', outputfile,sz,io_total_time,gbs
-        if (tstep<timesteps) call sleep(sleeptime)
-     end do
-end subroutine writeArray
-
-
-!!***************************
-subroutine usage()
-    print *, "Usage: genarray  output N  M  K  [infile|nx  ny  nz timesteps sleeptime]"
-    print *, "output: name of output file"
-    print *, "N:      number of processes in X dimension"
-    print *, "M:      number of processes in Y dimension"
-    print *, "K:      number of processes in Z dimension"
-    print *, "nx:     local array size in X dimension per processor"
-    print *, "ny:     local array size in Y dimension per processor"
-    print *, "nz:     local array size in Z dimension per processor"
-    print *, "infile: file that describes nx ny nz for each processor"
-    print *, "timesteps: the total number of timesteps to output" 
-    print *, "sleeptime: the time to sleep (s)"
-end subroutine usage
-
-!!***************************
-subroutine processArgs()
-    use genarray_stream_comm
-
-#ifndef __GFORTRAN__
-#ifndef __GNUC__
-    interface
-         integer function iargc()
-         end function iargc
-    end interface
-#endif
-#endif
-
-    character(len=256) :: npx_str, npy_str, npz_str, ndx_str, ndy_str, ndz_str
-    character(len=256) :: time_str,sleep_str
-    integer :: numargs
-
-    !! process arguments
-    numargs = iargc()
-    !print *,"Number of arguments:",numargs
-    if ( numargs < 5 ) then
-        call usage()
-        call exit(1)
-    endif
-    call getarg(1, outputfile)
-    call getarg(2, npx_str)
-    call getarg(3, npy_str)
-    call getarg(4, npz_str)
-    read (npx_str,'(i5)') npx
-    read (npy_str,'(i5)') npy
-    read (npz_str,'(i5)') npz
-    if ( numargs == 5 ) then
-        call getarg(5, inputfile)
-        ndx = 0
-        ndy = 0
-        ndz = 0
-        common_size = .false.
-    else if (numargs == 9) then
-        call getarg(5, ndx_str)
-        call getarg(6, ndy_str)
-        call getarg(7, ndz_str)
-        read (ndx_str,'(i6)') ndx
-        read (ndy_str,'(i6)') ndy
-        read (ndz_str,'(i6)') ndz
-        inputfile=char(0)
-        common_size = .true.
-        call getarg(8, time_str)
-        call getarg(9, sleep_str)
-        read (time_str,'(i6)') timesteps
-        read (sleep_str,'(i6)') sleeptime
-    else
-        call usage()
-        call exit(1)
-    endif
-
-end subroutine processArgs
diff --git a/examples/staging/stage_write/.svn/text-base/genarray_stream.xml.svn-base b/examples/staging/stage_write/.svn/text-base/genarray_stream.xml.svn-base
deleted file mode 100644
index 9f5c8f7..0000000
--- a/examples/staging/stage_write/.svn/text-base/genarray_stream.xml.svn-base
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-<adios-config host-language="Fortran">
-  <adios-group name="genarray" coordination-communicator="group_comm" time-index="steps">
-    <var name="gndx" path="/dimensions" type="integer"/>
-    <var name="gndy" path="/dimensions" type="integer"/>
-    <var name="gndz" path="/dimensions" type="integer"/>
-
-    <var name="nproc" path="/info" type="integer"/>
-    <attribute name="description" path="/info/nproc" value="Number of writers"/>
-    <var name="npx" path="/info" type="integer"/>
-    <attribute name="description" path="/info/npx" value="Number of processors in x dimension"/>
-    <var name="npy" path="/info" type="integer"/>
-    <attribute name="description" path="/info/npy" value="Number of processors in y dimension"/>
-    <var name="npz" path="/info" type="integer"/>
-    <attribute name="description" path="/info/npz" value="Number of processors in z dimension"/>
-
-
-    <!-- Auxiliary variables for global array indexing -->
-    <var name="offx" path="/aux" type="integer"/>
-    <var name="offy" path="/aux" type="integer"/>
-    <var name="offz" path="/aux" type="integer"/>
-    <var name="ndx" path="/aux" type="integer"/>
-    <var name="ndy" path="/aux" type="integer"/>
-    <var name="ndz" path="/aux" type="integer"/>
-
-    <!-- 3D array written by genarray with 1 timesteps -->
-    <global-bounds dimensions="gndx,gndy,gndz" offsets="offx,offy,offz">
-        <var name="var1" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var2" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var3" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var4" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var5" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var6" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var7" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var8" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-        <var name="var9" gwrite="double_xyz" gread="double_xyz" path="/var" type="real*8" dimensions="ndx,ndy,ndz,steps"/>
-    </global-bounds>
-    <attribute name="description" path="/var/double_xyz"
-               value="3D array with 3D decomposition"/>
-
-
-  </adios-group>
-
-  <method group="genarray" method="DATASPACES">verbose=2</method>
-
-  <buffer size-MB="20" allocate-time="now"/>
-
-</adios-config>
diff --git a/examples/staging/stage_write/.svn/text-base/job.svn-base b/examples/staging/stage_write/.svn/text-base/job.svn-base
deleted file mode 100644
index e3820cc..0000000
--- a/examples/staging/stage_write/.svn/text-base/job.svn-base
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-#PBS -A STF006
-#PBS -N genarray
-#PBS -j oe
-#PBS -l walltime=1:00:00,size=20
-## On the Cray, you need at least 3 nodes for 3 separate application runs
-
-cd $PBS_O_WORKDIR
-
-SERVER=/ccs/proj/e2e/dataspaces/sith/pgi/bin/dataspaces_server
-
-WRITEPROC=1
-STAGINGPROC=1
-READPROC=1
-let "PROCALL=WRITEPROC+READPROC"
-
-# clean-up previous run
-rm -f log.* core* conf dataspaces.conf 
-rm staged.bp genarray.bp
-
-# Prepare config file for DataSpaces
-echo "## Config file for DataSpaces
-ndim = 3
-dimx = 128
-dimy = 32768
-dimz = 128
-max_versions = 10
-#max_readers =" $READPROC " 
-#lock_type = 2
-" > dataspaces.conf
-
-# Run DataSpaces
-echo "-- Start DataSpaces server "$SERVER" on $STAGINGPROC PEs, -s$STAGINGPROC -c$PROCALL"
-mpirun -np $STAGINGPROC $SERVER -s$STAGINGPROC -c$PROCALL &> log.server &
-
-## Give some time for the servers to load and startup
-sleep 1s
-while [ ! -f conf ]; do
-    echo "-- File conf is not yet available from server. Sleep more"
-    sleep 1s
-done
-sleep 3s  # wait server to fill up the conf file
-
-## Export the main server config to the environment
-while read line; do
-    export set "${line}"
-done < conf
-
-echo "-- DataSpaces IDs: P2TNID = $P2TNID   P2TPID = $P2TPID"
-
-# Start GENARRAY
-echo "-- Start GENARRAY on $WRITEPROC PEs"
-mpirun -np $WRITEPROC ./genarray_stream genarray.bp $WRITEPROC 1 1 16 32 64 5 10 >& log.genarray &
-
-# Start STAGE_WRITE
-echo "-- Start STAGE_WRITE on $READPROC PEs"
-mpirun -np $READPROC ./stage_write genarray.bp staged.bp MPI \"\" $READPROC 1 1 >& log.stage_write &
-
-echo "-- Wait until all applications exit. Run ./check.sh to see status"
-wait
-rm -f conf
-
diff --git a/examples/staging/stage_write/.svn/text-base/stage_write.c.svn-base b/examples/staging/stage_write/.svn/text-base/stage_write.c.svn-base
deleted file mode 100644
index 57f0b2d..0000000
--- a/examples/staging/stage_write/.svn/text-base/stage_write.c.svn-base
+++ /dev/null
@@ -1,430 +0,0 @@
-/* 
- * Staged write of ADIOS files using a staging method
- *
- * Copyright (c) 2008 - 2012.  UT-BATTELLE, LLC. All rights reserved.
- */
-
-
-/* Staged write example code.
-   Assumptions:
-     - one output step fits into the memory of the staged writer.
-       Actually, this means, even more memory is needed than the size of output.
-       We need to read each variable while also buffering all of them for output.
-     - output steps contain the same variable set (no changes in variables)
-     - attributes are the same for all steps (will write only once here)
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-#include "mpi.h"
-#include "utils.h"
-#include "adios.h"
-#include "adios_read.h"
-#include "adios_error.h"
-
-//static enum ADIOS_READ_METHOD read_method = ADIOS_READ_METHOD_BP;
-static enum ADIOS_READ_METHOD read_method = ADIOS_READ_METHOD_DATASPACES;
-
-// Input arguments
-char   infilename[256];    // File/stream to read 
-char   outfilename[256];   // File to write
-char   methodname[16];     // ADIOS write method
-char   methodparams[256];  // ADIOS write method
-
-static const int max_read_buffer_size  = 1024*1024*1024;
-static const int max_write_buffer_size = 1024*1024*1024;
-
-static int timeout_sec = 600; // will stop if no data found for this time (-1: never stop)
-
-
-// Global variables
-int         rank, numproc;
-MPI_Comm    comm; 
-ADIOS_FILE *f;      // stream for reading
-int64_t    fh;     // ADIOS output file handle
-int64_t     gh;     // ADIOS group for output definitions
-uint64_t    write_total; // data size written by one processor
-uint64_t    largest_block; // the largest variable block one process reads
-char     ** group_namelist; // name of ADIOS group
-char       *readbuf; // read buffer
-int         decomp_values[10];
-
-
-int process_metadata(int step);
-int read_write(int step);
-
-void printUsage(char *prgname)
-{
-    print0("Usage: %s input output method \"params\" <decomposition>\n"
-           "    input   Input stream path\n"
-           "    output  Output file path\n"
-           "    method  ADIOS method to write with\n"
-           "    params  Write method parameters (in quotes; comma-separated list)\n"
-           "    <decomposition>    list of numbers e.g. 32 8 4\n"
-           "            Decomposition values in each dimension of an array\n"
-           "            The product of these number must be less then the number\n"
-           "            of processes. Processes whose rank is higher than the\n"
-           "            product, will not write anything.\n"
-           "               Arrays with less dimensions than the number of values,\n"
-           "            will be decomposed with using the appropriate number of\n"
-           "            values.\n"
-        ,prgname);
-}
-
-
-int processArgs(int argc, char ** argv)
-{
-    int i, j, nd, prod;
-    char *end;
-    if (argc < 5) {
-        printUsage (argv[0]);
-        return 1;
-    }
-    strncpy(infilename,     argv[1], sizeof(infilename));
-    strncpy(outfilename,    argv[2], sizeof(outfilename));
-    strncpy(methodname,     argv[3], sizeof(methodname));
-    strncpy(methodparams,   argv[4], sizeof(methodparams));
-    
-    nd = 0;
-    j = 5;
-    while (argc > j && j<11) { // get max 6 dimensions
-        errno = 0; 
-        decomp_values[nd] = strtol(argv[j], &end, 10); 
-        if (errno || (end != 0 && *end != '\0')) { 
-            print0 ("ERROR: Invalid decomposition number in argument %d: '%s'\n",
-                    j, argv[j]); 
-            printUsage(argv[0]);
-            return 1; 
-        } 
-        nd++; 
-        j++;
-    }
-
-    if (argc > j) { 
-        print0 ("ERROR: Only 6 decompositon arguments are supported\n");
-        return 1; 
-    } 
-
-    for (i=nd; i<10; i++) {
-        decomp_values[i] = 1;
-    }
-
-    prod = 1;
-    for (i=0; i<nd; i++) {
-        prod *= decomp_values[i];
-    }
-
-    if (prod > numproc) {
-        print0 ("ERROR: Product of decomposition numbers %d > number of processes %d\n", 
-                prod, numproc);
-        printUsage(argv[0]);
-        return 1; 
-    }
-
-    return 0;
-}
-
-
-int main (int argc, char ** argv) 
-{
-    int         err;
-    int         steps = 0, curr_step;
-    int         retval = 0;
-
-    MPI_Init (&argc, &argv);
-    comm = MPI_COMM_WORLD;
-    MPI_Comm_rank (comm, &rank);
-    MPI_Comm_size (comm, &numproc);
-
-    if (processArgs(argc, argv)) {
-        return 1;
-    }
-    
-    print0("Input stream      = %s\n", infilename);
-    print0("Output stream     = %s\n", outfilename);
-    print0("Method            = %s\n", methodname);
-    print0("Method parameters = %s\n", methodparams);
-    
-
-    err = adios_read_init_method(read_method, comm, 
-                                 "max_chunk_size=100; "
-                                 "app_id =32767; \n"
-                                 "verbose= 3;"
-                                 "poll_interval  =  100;"
-                                );
-
-    if (!err) {
-        print0 ("%s\n", adios_errmsg());
-    }
-
-    adios_init_noxml();
-
-    print0 ("Waiting to open stream %s...\n", infilename);
-    f = adios_read_open_stream (infilename, read_method, comm, 
-                                             ADIOS_LOCKMODE_ALL, timeout_sec);
-    if (adios_errno == err_file_not_found) 
-    {
-        print ("rank %d: Stream not found after waiting %d seconds: %s\n", 
-               rank, timeout_sec, adios_errmsg());
-        retval = adios_errno;
-    } 
-    else if (adios_errno == err_end_of_stream) 
-    {
-        print ("rank %d: Stream terminated before open. %s\n", rank, adios_errmsg());
-        retval = adios_errno;
-    } 
-    else if (f == NULL) {
-        print ("rank %d: Error at opening stream: %s\n", rank, adios_errmsg());
-        retval = adios_errno;
-    } 
-    else 
-    {
-        // process steps here... 
-        if (f->current_step != 0) {
-            print ("rank %d: WARNING: First %d steps were missed by open.\n", 
-                   rank, f->current_step);
-        }
-
-        while (adios_errno != err_end_of_stream) {
-            steps++; // start counting from 1
-
-            print0 ("File info:\n");
-            print0 ("  current step:   %d\n", f->current_step);
-            print0 ("  last step:      %d\n", f->last_step);
-            print0 ("  # of variables: %d:\n", f->nvars);
-
-            retval = process_metadata(steps);
-            if (retval) break;
-
-            retval = read_write(steps);
-            if (retval) break;
-
-            // advance to 1) next available step with 2) blocking wait 
-            curr_step = f->current_step; // save for final bye print
-            adios_advance_step (f, 0, timeout_sec);
-
-            if (adios_errno == err_step_notready) 
-            {
-                print ("rank %d: No new step arrived within the timeout. Quit. %s\n", 
-                       rank, adios_errmsg());
-                break; // quit while loop
-            } 
-            else if (f->current_step != curr_step+1) 
-            {
-                print ("rank %d: WARNING: steps %d..%d were missed when advancing.\n", 
-                        rank, curr_step+1, f->current_step-1);
-            }
-
-        }
-
-        adios_read_close (f);
-    } 
-    print0 ("Bye after processing %d steps\n", steps);
-
-    adios_read_finalize_method (read_method);
-    adios_finalize (rank);
-    MPI_Finalize ();
-
-    return retval;
-}
-
-
-typedef struct {
-    ADIOS_VARINFO * v;
-    uint64_t        start[10];
-    uint64_t        count[10];
-    uint64_t        writesize; // size of subset this process writes, 0: do not write
-} VarInfo;
-
-VarInfo * varinfo;
-
-int process_metadata(int step)
-{
-    int retval = 0;
-    int i, j;
-    char gdims[256], ldims[256], offs[256];
-    uint64_t sum_count;
-    ADIOS_VARINFO *v; // shortcut pointer
-
-    if (step > 1)
-    {
-        // right now, nothing to prepare in later steps
-        print("Step %d. return immediately\n",step);
-        return 0;
-    }
-
-    /* First step processing */
-
-    // get groupname of stream, then declare for output
-    adios_get_grouplist(f, &group_namelist);
-    print0("Group name is %s\n", group_namelist[0]);
-    adios_declare_group(&gh,group_namelist[0],"",adios_flag_yes);
-
-
-    varinfo = (VarInfo *) malloc (sizeof(VarInfo) * f->nvars);
-    if (!varinfo) {
-        print("ERROR: rank %d cannot allocate %lu bytes\n", rank, sizeof(VarInfo)*f->nvars);
-        return 1;
-    }
-
-    write_total = 0;
-    largest_block = 0;
-
-    // Decompose each variable and calculate output buffer size
-    for (i=0; i<f->nvars; i++) 
-    {
-        print0 ("Get info on variable %d: %s\n", i, f->var_namelist[i]); 
-        varinfo[i].v = adios_inq_var_byid (f, i);
-        v = varinfo[i].v; // just a shortcut
-        if (v == NULL) {
-            print ("rank %d: ERROR: Variable %s inquiry failed: %s\n", 
-                   rank, f->var_namelist[i], adios_errmsg());
-            return 1;
-        }
-
-        // print variable type and dimensions
-        print0("    %-9s  %s", adios_type_to_string(v->type), f->var_namelist[i]);
-        if (v->ndim > 0) {
-            print0("[%llu", v->dims[0]);
-            for (j = 1; j < v->ndim; j++)
-                print0(", %llu", v->dims[j]);
-            print0("] :\n");
-        } else {
-            print0("\tscalar\n");
-        }
-
-        // determine subset we will write
-        decompose (numproc, rank, v->ndim, v->dims, decomp_values,
-                   varinfo[i].count, varinfo[i].start, &sum_count);
-        varinfo[i].writesize = sum_count * adios_type_size(v->type, v->value);
-
-        if (varinfo[i].writesize != 0) {
-            write_total += varinfo[i].writesize;
-            if (largest_block < varinfo[i].writesize)
-                largest_block = varinfo[i].writesize; 
-        }
-
-    }
-
-    // determine output buffer size and allocate it
-    uint64_t bufsize = write_total + f->nvars*128 + f->nattrs*32 + 1024; 
-    if (bufsize > max_write_buffer_size) {
-        print ("ERROR: rank %d: write buffer size needs to hold about %llu bytes, "
-                "but max is set to %d\n", rank, bufsize, max_write_buffer_size);
-        return 1;
-    }
-    print0 ("Rank %d: allocate %llu MB for output buffer\n", rank, bufsize/1048576+1);
-    adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, bufsize/1048576+1); 
-
-    // allocate read buffer
-    bufsize = largest_block + 128;
-    if (bufsize > max_read_buffer_size) {
-        print ("ERROR: rank %d: read buffer size needs to hold at least %llu bytes, "
-                "but max is set to %d\n", rank, bufsize, max_read_buffer_size);
-        return 1;
-    }
-    print0 ("Rank %d: allocate %g MB for input buffer\n", rank, (double)bufsize/1048576.0);
-    readbuf = (char *) malloc ((size_t)bufsize);
-    if (!readbuf) {
-        print ("ERROR: rank %d: cannot allocate %llu bytes for read buffer\n",
-               rank, bufsize);
-        return 1;
-    }
-
-    // Select output method
-    adios_select_method (gh, methodname, methodparams, "");
-
-    // Define variables for output based on decomposition
-    char *vpath, *vname;
-    for (i=0; i<f->nvars; i++) 
-    {
-        v = varinfo[i].v;
-        if (varinfo[i].writesize != 0) {
-            // define variable for ADIOS writes
-            getbasename (f->var_namelist[i], &vpath, &vname);
-
-            if (v->ndim > 0) 
-            {
-                int64s_to_str (v->ndim, v->dims, gdims);
-                int64s_to_str (v->ndim, varinfo[i].count, ldims);
-                int64s_to_str (v->ndim, varinfo[i].start, offs);
-
-                print ("rank %d: Define variable path=\"%s\" name=\"%s\"  "
-                       "gdims=%s  ldims=%s  offs=%s\n", 
-                       rank, vpath, vname, gdims, ldims, offs);
-
-                adios_define_var (gh, vname, vpath, v->type, ldims, gdims, offs);
-            }
-            else 
-            {
-                print ("rank %d: Define scalar path=\"%s\" name=\"%s\"\n",
-                       rank, vpath, vname);
-
-                adios_define_var (gh, vname, vpath, v->type, "", "", "");
-            }
-            free(vpath);
-            free(vname);
-        }
-    }
-
-    if (rank == 0)
-    {
-        // get and define attributes
-        enum ADIOS_DATATYPES attr_type;
-        void * attr_value;
-        char * attr_value_str;
-        int  attr_size;
-        for (i=0; i<f->nattrs; i++) 
-        {
-            adios_get_attr_byid (f, i, &attr_type, &attr_size, &attr_value);
-            attr_value_str = (char *)value_to_string (attr_type, attr_value, 0);
-            adios_define_attribute (gh, f->attr_namelist[i], "",
-                                    attr_type, attr_value_str, "");
-            free (attr_value);
-        }
-    }
-
-    return retval;
-}
-
-int read_write(int step)
-{
-    int retval = 0;
-    int i;
-    uint64_t total_size;
-
-    // open output file
-    adios_open (&fh, group_namelist[0], outfilename, (step==1 ? "w" : "a"), &comm);
-    adios_group_size (fh, write_total, &total_size);
-    
-    for (i=0; i<f->nvars; i++) 
-    {
-        if (varinfo[i].writesize != 0) {
-            // read variable subset
-            print ("rank %d: Read variable %d: %s\n", rank, i, f->var_namelist[i]); 
-            ADIOS_SELECTION *sel = adios_selection_boundingbox (varinfo[i].v->ndim,
-                    varinfo[i].start, 
-                    varinfo[i].count);
-            adios_schedule_read_byid (f, sel, i, 1, 1, readbuf);
-            adios_perform_reads (f, 1);   
-
-
-            // write (buffer) variable
-            print ("rank %d: Write variable %d: %s\n", rank, i, f->var_namelist[i]); 
-            adios_write(fh, f->var_namelist[i], readbuf);
-        }
-    }
-
-    adios_release_step (f); // this step is no longer needed to be locked in staging area
-    adios_close (fh); // write out output buffer to file
-    return retval;
-}
-
-
-
diff --git a/examples/staging/stage_write/.svn/text-base/test_decompose.c.svn-base b/examples/staging/stage_write/.svn/text-base/test_decompose.c.svn-base
deleted file mode 100644
index 26146ff..0000000
--- a/examples/staging/stage_write/.svn/text-base/test_decompose.c.svn-base
+++ /dev/null
@@ -1,134 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "decompose.h"
-#include "utils.h"
-
-int ndim, nproc;
-uint64_t *dims;
-int *np;
-int rank; // unused, required by print0 in utils.h
-
-void printUsage(char *prgname)
-{
-    print0("Usage: %s N M dim1 ... dimN np1 ... npN\n"
-           "    N           Number of dimensions\n"
-           "    M           Number of processes\n"
-           "    dim1..dimN  Dimensions\n"
-           "    np1..npN    list of decomposition numbers e.g. 32 8 4\n"
-           "            Decomposition values in each dimension of an array\n"
-           "            The product of these number must be less then the number\n"
-           "            of processes. Processes whose rank is higher than the\n"
-           "            product, will not write anything.\n"
-           "               Arrays with less dimensions than the number of values,\n"
-           "            will be decomposed with using the appropriate number of\n"
-           "            values.\n"
-        ,prgname);
-}
-
-int processArgs(int argc, char ** argv)
-{   
-    int i, j, nd, prod; 
-    char *end;
-
-    if (argc < 3) {
-        printUsage (argv[0]);
-        return 1;
-    }
-
-    errno = 0;
-    ndim = strtol(argv[1], &end, 10);
-    if (errno || (end != 0 && *end != '\0')) {
-        print0 ("ERROR: Invalid decomposition number in argument 1: '%s'\n", argv[j]);
-        printUsage(argv[0]);
-        return 1;
-    }
-
-    errno = 0;
-    nproc = strtol(argv[2], &end, 10);
-    if (errno || (end != 0 && *end != '\0')) {
-        print0 ("ERROR: Invalid decomposition number in argument 2: '%s'\n", argv[j]);
-        printUsage(argv[0]);
-        return 1;
-    }
-
-    if (argc != 3+2*ndim) {
-        print0 ("ERROR: Expected number of arguments is %d\n", 2*ndim+2);
-        printUsage (argv[0]);
-        return 1;
-    }
-    
-    dims = (uint64_t*) malloc (sizeof(uint64_t) * ndim);
-    np   = (int*) malloc (sizeof(int) * ndim);
-
-    nd = 0;
-    j = 3;
-    for (nd=0; nd < ndim; nd++) { // get ndim dimensions
-        errno = 0;
-        dims[nd] = strtoll(argv[j], &end, 10);
-        if (errno || (end != 0 && *end != '\0')) {
-            print0 ("ERROR: Invalid decomposition number in argument %d: '%s'\n",
-                    j, argv[j]);
-            printUsage(argv[0]);
-            return 1;
-        }
-        j++;
-    }
-
-    for (nd=0; nd < ndim; nd++) { // get ndim decomposition values
-        errno = 0;
-        np[nd] = strtoll(argv[j], &end, 10);
-        if (errno || (end != 0 && *end != '\0')) {
-            print0 ("ERROR: Invalid decomposition number in argument %d: '%s'\n",
-                    j, argv[j]);
-            printUsage(argv[0]);
-            return 1;
-        }
-        j++;
-    }
-
-    prod = 1;
-    for (i=0; i<ndim; i++) {
-        prod *= np[i];
-    }
-
-    if (prod > nproc) {
-        print0 ("ERROR: Product of decomposition numbers %d > number of processes %d\n",
-                prod, nproc);
-        printUsage(argv[0]);
-        return 1;
-    }
-
-    return 0;
-}
-
-int main (int argc, char ** argv)
-{
-    char ints[256];
-    uint64_t count[10], start[10], totalsize;
-    int i, nd;
-
-    if (processArgs(argc, argv)) 
-        return 1;
-
-    print("# of proc: %d\n", nproc);
-    ints_to_str(ndim, np, ints);
-    print("decomposition: %s\n", ints);
-
-    for (nd = ndim; nd > 0; nd--)
-    {
-        int64s_to_str(nd, dims, ints);
-        print("--------------------------------------------\n");
-        print("%d  dimensions: %s\n", nd, ints);
-        for (i=0; i<nproc; i++) {
-            decompose (nproc, i, nd, dims, np, count, start, &totalsize);
-        }
-    }
-
-    return 0;
-}
-
-
diff --git a/examples/staging/stage_write/.svn/text-base/utils.c.svn-base b/examples/staging/stage_write/.svn/text-base/utils.c.svn-base
deleted file mode 100644
index c03583c..0000000
--- a/examples/staging/stage_write/.svn/text-base/utils.c.svn-base
+++ /dev/null
@@ -1,211 +0,0 @@
-/* 
- * Staged write of ADIOS files using a staging method
- *
- * Copyright (c) 2008 - 2012.  UT-BATTELLE, LLC. All rights reserved.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-#include "utils.h"
-
-void ints_to_str (int n, int *values, char *s)
-{
-    int i;
-    char v[32];
-    if (!n) {
-        s[0] = '\0';
-        return;
-    }
-    sprintf(s,"%d", values[0]);
-    for (i=1; i<n; i++)
-    {
-        sprintf (v,",%d", values[i]);
-        strcat (s,v);
-    }
-}
-
-void int64s_to_str (int n, uint64_t *values, char *s)
-{
-    int i;
-    char v[32];
-    if (!n) {
-        s[0] = '\0';
-        return;
-    }
-    sprintf(s,"%llu", values[0]);
-    for (i=1; i<n; i++)
-    {
-        sprintf (v,",%llu", values[i]);
-        strcat (s,v);
-    }
-}
-
-
-const char * value_to_string (enum ADIOS_DATATYPES type, void * data, int idx)
-{
-    static char s [100];
-    s [0] = 0;
-
-
-    switch (type)
-    {
-        case adios_unsigned_byte:
-            sprintf (s, "%u", ((uint8_t *) data)[idx]);
-            break;
-
-        case adios_byte:
-            sprintf (s, "%d", ((int8_t *) data)[idx]);
-            break;
-
-        case adios_short:
-            sprintf (s, "%hd", ((int16_t *) data)[idx]);
-            break;
-
-        case adios_unsigned_short:
-            sprintf (s, "%hu", ((uint16_t *) data)[idx]);
-            break;
-
-        case adios_integer:
-            sprintf (s, "%d", ((int32_t *) data)[idx]);
-            break;
-
-        case adios_unsigned_integer:
-            sprintf (s, "%u", ((uint32_t *) data)[idx]);
-            break;
-
-        case adios_long:
-            sprintf (s, "%lld", ((int64_t *) data)[idx]);
-            break;
-
-        case adios_unsigned_long:
-            sprintf (s, "%llu", ((uint64_t *) data)[idx]);
-            break;
-
-        case adios_real:
-            sprintf (s, "%g", ((float *) data)[idx]);
-            break;
-
-        case adios_double:
-            sprintf (s, "%lg", ((double *) data)[idx]);
-            break;
-
-        case adios_long_double:
-            sprintf (s, "%Lg", ((long double *) data)[idx]);
-            break;
-
-        case adios_string:
-            return (char*) ((char *)data+idx);
-            break;
-
-        case adios_complex:
-            sprintf (s, "(%g, %g)", 
-                    ((float *) data)[2*idx], ((float *) data)[2*idx+1]);
-            break;
-
-        case adios_double_complex:
-            sprintf (s, "(%lg, %lg)", 
-                    ((double *) data)[2*idx], ((double *) data)[2*idx+1]);
-            break;
-        
-        default:
-            sprintf (s, "unknown");
-            break;
-    }
-
-    return s;
-}
-
-
-
-
-void getbasename (char *path, char **dirname, char **basename)
-{
-    char *work, *ptr;
-
-    work = strdup(path);
-    if (work[strlen(work)-1] == '/' && strlen(work)>1)
-        work[strlen(work)-1] = '\0';
-
-    ptr = rindex(work, '/');
-    if (ptr && ptr != work) {
-        // found a / and but not the beginning / of a full path
-        ptr[0] = 0;
-        *dirname = strdup(work);
-        ptr[0] = '/';
-        *basename = strdup(ptr+1);
-    } else if (ptr == work) {
-        // found / as the first character 
-        *dirname = strdup("");
-        *basename = strdup(ptr+1);
-    } else {
-        *dirname = NULL; //strdup(".");
-        *basename = strdup(work);
-    }
-    free(work);
-}
-
-
-bool file_exists (char * path)
-{
-    struct stat sb;
-    int i = stat ( path, &sb );
-    if ( i == 0 )
-	/* File found */
-	return true;
-    return false;
-}
-
-bool is_dir(char *path) {
-     struct stat sb;
-     if ( !stat( path, &sb) ) {
-         if ( sb.st_mode & S_IFDIR ) {
-             //if (verbose) printf("isDir( %s ) = true\n", path);
-             return  true;
-         }
-     } /* else {
-         // for whatever reason, stat cannot be retrieved
-         // so just say here, it is not a directory 
-        retval = false;
-     }*/
-     return false;
-}
-
-int createdir_recursive( char* path)
-{
-    int res;
-    char *dirs, *base;
-    /*printf(" called mkdir %s\n", path);*/
-    getbasename(path, &dirs, &base);
-    if ( dirs != NULL)  {
-        if ( !is_dir(dirs) ) {
-	    /*printf(" dirs=%s  base=%s\n", dirs, base);*/
-            res = createdir_recursive(dirs);
-	} else res = 0;
-        free(dirs);
-        if (res) return res;
-    }
-    if (file_exists(path))
-        res = 0;
-    else
-        res = mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
-    if (res) {
-        if (errno == EEXIST) {
-            print("Concurrency error: createdir %s failed: %s\n", path, strerror(errno));
-            print("Some other process created this dir already during this function call\n");
-            res = 0;
-        } else {
-            print("createdir %s failed: %s\n", path, strerror(errno));
-        }
-    }
-    //else
-    //   print("createdir %s succeeded\n", path);
-
-    free(base);
-    return (res);
-}
-
diff --git a/examples/staging/stage_write/.svn/text-base/utils.h.svn-base b/examples/staging/stage_write/.svn/text-base/utils.h.svn-base
deleted file mode 100644
index 21196aa..0000000
--- a/examples/staging/stage_write/.svn/text-base/utils.h.svn-base
+++ /dev/null
@@ -1,50 +0,0 @@
-/* 
- * Staged write of ADIOS files using a staging method
- *
- * Copyright (c) 2008 - 2012.  UT-BATTELLE, LLC. All rights reserved.
- */
-
-#ifndef __UTILS_H_
-#define __UTILS_H_
-
-#include <stdio.h>
-#include <stdint.h>
-#include "adios_types.h"
-
-#define MAX3(a,b,c) (a > b ? (a > c ? a : c) : (b > c ? b : c))
-#define print(...) fprintf (stderr, __VA_ARGS__); 
-#define print0(...) if (!rank) fprintf (stderr, __VA_ARGS__); 
-
-#define bool int
-#define false 0
-#define true 1
-
-void ints_to_str (int n, int *values, char *s);
-void int64s_to_str (int n, uint64_t *values, char *s);
-const char * value_to_string (enum ADIOS_DATATYPES type, void * data, int idx);
-
-/* Get basename and dirname from path.
-   Allocates memory for both strings, they should be freed after use.
-   May return NULL for dirname. "" for dirname means path is like /file.
-
-   dir1/dir2/file   dir=dir1/dir2   base=file
-   dir1/file        dir=dir1        base=file
-   file             dir=null        base=file
-   /file            dir=""          base=file
-   dir1/            dir=null        base=dir1
-   /                dir=""          base=""
-   ""               dir=null        base=""
-*/
-void getbasename (char *path, char **dirname, char **basename);
-
-bool file_exists (char *path);  // true if stat(path) succeeds, 
-                                // i.e. it is an accessible item on file system
-bool is_dir (char *path);       // true if path is a directory (and stat() succeeds on it)
-
-/** mkdir -r
-  * return: 0 on success, otherwise mkdir() syscall's return value
-  */
-int createdir_recursive( char* path);
-
-#endif
-
diff --git a/examples/staging/stage_write/genarray_stream.F90 b/examples/staging/stage_write/genarray_stream.F90
index 34b467c..351e1e8 100644
--- a/examples/staging/stage_write/genarray_stream.F90
+++ b/examples/staging/stage_write/genarray_stream.F90
@@ -78,7 +78,7 @@ program genarray
     call MPI_Comm_size (app_comm, nproc , ierr)
 
     !print *,"call adios_init "
-    call adios_init ("genarray_stream.xml", ierr)
+    call adios_init ("genarray_stream.xml", app_comm, ierr)
     !print *,"MPI_Barrier "
     call MPI_Barrier (app_comm, ierr)
 
diff --git a/examples/staging/stage_write/stage_write.c b/examples/staging/stage_write/stage_write.c
index 57f0b2d..af6f1e9 100644
--- a/examples/staging/stage_write/stage_write.c
+++ b/examples/staging/stage_write/stage_write.c
@@ -163,7 +163,7 @@ int main (int argc, char ** argv)
         print0 ("%s\n", adios_errmsg());
     }
 
-    adios_init_noxml();
+    adios_init_noxml(comm);
 
     print0 ("Waiting to open stream %s...\n", infilename);
     f = adios_read_open_stream (infilename, read_method, comm, 
@@ -400,7 +400,7 @@ int read_write(int step)
     uint64_t total_size;
 
     // open output file
-    adios_open (&fh, group_namelist[0], outfilename, (step==1 ? "w" : "a"), &comm);
+    adios_open (&fh, group_namelist[0], outfilename, (step==1 ? "w" : "a"), comm);
     adios_group_size (fh, write_total, &total_size);
     
     for (i=0; i<f->nvars; i++) 
diff --git a/examples/staging/stage_write/x.bp.dir/x.bp.0 b/examples/staging/stage_write/x.bp.dir/x.bp.0
new file mode 100644
index 0000000..3e0fbc3
Binary files /dev/null and b/examples/staging/stage_write/x.bp.dir/x.bp.0 differ
diff --git a/runconf b/runconf
index ae84bee..8df501a 100755
--- a/runconf
+++ b/runconf
@@ -40,14 +40,14 @@ if [ `hostname | cut -c 1-4` == "sith" ]; then
     PAR_HDF5_CLIB=$HDF5_CLIB
     module unload hdf5
     # Seq. and Parallel NetCDF 4 
-    #module load netcdf/4.1.1
-    #SEQ_NC_DIR=$NETCDF_DIR
-    #SEQ_NC_CLIB=$NETCDF_CLIB
-    #module unload netcdf
-    #module load netcdf/4.1.1_par
-    #PAR_NC_DIR=$NETCDF_DIR
-    #PAR_NC_CLIB=$NETCDF_CLIB
-    #module unload netcdf
+    module load netcdf/4.1.3
+    SEQ_NC_DIR=$NETCDF_DIR
+    SEQ_NC_CLIB=$NETCDF_CLIB
+    module unload netcdf
+    module load netcdf/4.1.3_par
+    PAR_NC_DIR=$NETCDF_DIR
+    PAR_NC_CLIB=$NETCDF_CLIB
+    module unload netcdf
     export MPICC=mpicc
     export MPICXX=mpiCC
     export MPIFC=mpif90
@@ -56,16 +56,19 @@ if [ `hostname | cut -c 1-4` == "sith" ]; then
         export CXX=pgCC
         export FC=pgf90
         WITHDART="--with-dataspaces=/ccs/proj/e2e/dataspaces/sith/$TARGET"
+        WITHFLEX="--with-flexpath=/ccs/proj/e2e/chaos/sith/$TARGET"
     elif [ "$TARGET" == "gnu" ]; then
         export CC=gcc
         export CXX=g++
         export FC=gfortran
         WITHDART="--with-dataspaces=/ccs/proj/e2e/dataspaces/sith/$TARGET"
+        WITHFLEX="--with-flexpath=/ccs/proj/e2e/chaos/sith/$TARGET"
     elif [ "$TARGET" == "intel" ]; then
         export CC=icc
         export CXX=icpc
         export FC=ifort
         WITHDART=""
+        WITHFLEX=""
     else
         echo "TARGET must be pgi or gnu or intel"
         exit 1
@@ -77,19 +80,20 @@ if [ `hostname | cut -c 1-4` == "sith" ]; then
         --enable-dependency-tracking \
         --enable-research-transports \
         --with-lustre=/usr/lib64 \
-        $WITHDART 
-        #--with-hdf5=${SEQ_HDF5_DIR} \
-        #--with-hdf5-libs="${SEQ_HDF5_CLIB}" \
+        $WITHDART \
+        $WITHFLEX \
+        --with-hdf5=${SEQ_HDF5_DIR} \
+        --with-hdf5-libs="${SEQ_HDF5_CLIB}" \
+        --with-phdf5=${PAR_HDF5_DIR} \
+        --with-phdf5-libs="${PAR_HDF5_CLIB}" \
+        --with-netcdf=${SEQ_NC_DIR} \
+        --with-netcdf-libs="${SEQ_NC_CLIB}" \
+        --with-nc4par=${PAR_NC_DIR} \
+        --with-nc4par-libs="${PAR_NC_CLIB}" 
         #--with-dmalloc=/ccs/proj/e2e/qliu/dmalloc.sith.$TARGET 
         #--with-dmalloc=/ccs/proj/e2e/pnorbert/dmalloc.$TARGET 
         #--enable-shared --disable-static
         #--without-datatap #--without-infiniband
-        #--with-phdf5=${PAR_HDF5_DIR} \
-        #--with-phdf5-libs="${PAR_HDF5_CLIB}" \
-        #--with-netcdf=${SEQ_NC_DIR} \
-        #--with-netcdf-libs="${SEQ_NC_CLIB}" \
-        #--with-nc4par=${PAR_NC_DIR} \
-        #--with-nc4par-libs="${PAR_NC_CLIB}" \
         #--with-dmalloc=/ccs/proj/e2e/pnorbert/dmalloc.$TARGET 
         #--with-datatap=/ccs/home/habbasi/work/ewok/
         #--enable-datatap=ib
@@ -236,16 +240,16 @@ elif [ `hostname | cut -c 1-4` == "lens" ]; then
         #--with-mxml=/ccs/proj/e2e/pnorbert/mxml \
 
 
-elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
+elif [ `hostname | cut -c 1-5` == "titan" ]; then
 
     BUILD_STAGING=true
     if [ $BUILD_STAGING == "false" ]; then
     
         ################
-        # Jaguar/Titan #
+        # Titan #
         ################
         TARGET=pgi
-        echo "Configure on JAGUAR (XK6) for $TARGET env."
+        echo "Configure on TITAN (XK7) for $TARGET env."
         export CC=cc
         #export CFLAGS="-Wall -g" 
         export FC=ftn
@@ -271,7 +275,7 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
         #export CC=mpicc
         #export FC=mpif90
         CFLAGS="-g -fPIC" ./configure --prefix=/ccs/proj/e2e/qliu/ADIOS/test.$TARGET \
-            --host=jaguar --host_alias=jaguar  \
+            --host=titan --host_alias=titan  \
             --enable-dependency-tracking \
             #--with-hdf5=/opt/cray/hdf5/1.8.7/pgi/109 \
             #--with-phdf5=/opt/cray/hdf5-parallel/1.8.7/pgi/109 \
@@ -288,10 +292,10 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
     else 
     
         ##########################
-        # Jaguar/Titan + staging #
+        # Titan + staging #
         ##########################
         TARGET=pgi
-        echo "Configure on JAGUAR including staging methods for $TARGET env."
+        echo "Configure on TITAN (XK7) including staging methods for $TARGET env."
         export CC=cc
         export FC=ftn
         export CXX=CC
@@ -317,12 +321,12 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
             #module swap pgi pgi/11.8.0
             # NSSI needs -pgcpplibs flag 
             export LDFLAGS="-pgcpplibs" 
-            DATASPACES_DIR="/ccs/proj/e2e/dataspaces/xk6/$TARGET"
+            DATASPACES_DIR="/ccs/proj/e2e/dataspaces/titan/$TARGET"
         elif [ "$TARGET" == "gnu" ]; then
             # NSSI needs libstdc++
-            export EXTRA_LIBS="/opt/gcc/4.4.4/snos/lib64/libstdc++.a"
-            module swap gcc gcc/4.4.4
-            DATASPACES_DIR="/ccs/proj/e2e/dataspaces/xk6/$TARGET"
+            export EXTRA_LIBS="/opt/gcc/4.7.2/snos/lib64/libstdc++.a"
+            #module swap gcc gcc/4.4.4
+            DATASPACES_DIR="/ccs/proj/e2e/dataspaces/titan/$TARGET"
         else
             unset DATASPACES_DIR
         fi
@@ -339,7 +343,7 @@ elif [ `hostname | cut -c 1-8` == "jaguarpf" ]; then
         export CPPFLAGS="-DMPICH_IGNORE_CXX_SEEK -DDART_DO_VERSIONING" 
         export CFLAGS="-fPIC -g -O0" 
         #./configure --prefix=/ccs/proj/fus022/norbert/RMP/adios.xt5.$TARGET \
-        ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/xk6.$TARGET \
+        ./configure --prefix=/ccs/proj/e2e/pnorbert/ADIOS/titan.$TARGET \
         --enable-dependency-tracking \
         --with-cray-pmi=/opt/cray/pmi/default \
         --with-cray-ugni-incdir=/opt/cray/gni-headers/default/include \
@@ -603,7 +607,7 @@ elif [ `hostname | cut -c 1-6` == "jaguar" ]; then
     
     fi
     
-elif [ `hostname -f | cut -c 8-15` == "intrepid" ]; then
+elif [ "x"`hostname -f | cut -c 8-15` == "xintrepid" ]; then
     #####################
     # Intrepid BlueGene #
     #####################
@@ -853,6 +857,28 @@ elif [ `hostname | cut -c 1-4` == "qliu" ]; then
         #--with-hdf5=/home/thkorde/local \
         #--with-netcdf=/home/thkorde/local
 
+elif [ `hostname | cut -c 1-7` == "esimmon" ]; then
+
+    #######################
+    # Esimmon Virtual Box #
+    #######################
+    echo "Configure on ESIMMON VirtualBox."
+    export MPICC=mpicc
+    export MPICXX=mpicxx
+    export MPIFC=mpif90
+    export CC=gcc
+    export CXX=g++
+    export FC=gfortran
+
+    #export CFLAGS="-g -fPIC" 
+    ./configure --prefix=/opt/adios/1.5.0 \
+        --enable-dependency-tracking \
+        --with-mxml=/opt/mxml \
+        --with-hdf5=/opt/hdf5 \
+        --with-phdf5=/opt/phdf5 \
+        --with-netcdf=/opt/netcdf3 \
+        --with-nc4par=/opt/nc4par \
+        --with-flexpath=/opt/chaos
 
 else
     echo "Could not determine what machine is this."
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..9828bc2
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,628 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR})
+link_directories(${PROJECT_BINARY_DIR}/src)
+
+if(HAVE_NSSI)
+  add_executable(nssi-staging-server nssi/nssi_staging_server.cpp nssi/aggregation.cpp)
+  set_target_properties(nssi-staging-server PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CFLAGS} ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL") 
+  target_link_libraries(nssi-staging-server adios.a ${ADIOSLIB_LDADD} ${NSSI_SERVER_LIBS})
+
+  add_executable(nssi-coupling-server nssi/nssi_coupling_server.cpp)
+  set_target_properties(nssi-coupling-server PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CFLAGS} ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL") 
+  target_link_libraries(nssi-coupling-server adios.a ${ADIOSLIB_LDADD} ${NSSI_SERVER_LIBS})
+endif(HAVE_NSSI)
+
+set(CLEANFILES "")
+set(include_HEADERS "")
+set(nodist_include_HEADERS "")
+set(lib_LIBRARIES "")
+
+set(libadiosread_a_CPPFLAGS "")
+set(libadiosreadf_a_CPPFLAGS "")
+set(libadiosread_nompi_a_CPPFLAGS "")
+set(libadiosreadf_nompi_a_CPPFLAGS "")
+
+set(libadiosread_a_CFLAGS "")
+set(libadiosreadf_a_CFLAGS "")
+set(libadiosread_nompi_a_CFLAGS "")
+set(libadiosreadf_nompi_a_CFLAGS "")
+
+#start adios.a and adios_nompi.a
+if(BUILD_WRITE)
+  set(libadios_a_SOURCES core/adios.c 
+                     core/common_adios.c
+                     core/adios_internals.c
+                     core/adios_internals_mxml.c 
+                     core/buffer.c 
+                     core/adios_bp_v1.c  
+                     core/adios_endianness.c 
+                     core/bp_utils.c 
+                     core/futils.c 
+                     core/adios_error.c 
+                     core/adios_read.c 
+                     core/adios_read_v1.c 
+                     core/common_read.c 
+                     core/globals.c 
+                     core/adios_timing.c 
+                     core/adios_read_hooks.c 
+                     core/adios_transport_hooks.c 
+                     core/adios_socket.c 
+                     core/adios_logger.c 
+                     core/util.c 
+                     read/read_bp.c 
+                     read/read_bp_staged.c 
+                     read/read_bp_staged1.c
+                     write/adios_mpi.c
+                     write/adios_mpi_lustre.c
+                     write/adios_mpi_amr.c
+                     write/adios_posix.c
+                     write/adios_posix1.c
+                     write/adios_var_merge.c)
+
+set(libadios_nompi_a_SOURCES core/adios.c 
+                     core/common_adios.c 
+                     core/adios_internals.c 
+                     core/adios_internals_mxml.c 
+                     core/buffer.c 
+                     core/adios_bp_v1.c  
+                     core/adios_endianness.c 
+                     core/bp_utils.c 
+                     core/futils.c 
+                     core/adios_error.c 
+                     core/adios_read.c 
+                     core/adios_read_v1.c 
+                     core/common_read.c 
+                     core/globals.c 
+                     core/mpidummy.c 
+                     core/adios_timing.c 
+                     core/adios_read_hooks.c 
+                     core/adios_transport_hooks.c 
+                     core/adios_socket.c 
+                     core/adios_logger.c 
+                     core/util.c 
+                     read/read_bp.c 
+                     read/read_bp_staged.c 
+                     read/read_bp_staged1.c 
+                     write/adios_posix.c 
+                     write/adios_posix1.c)
+
+#start adiosf.a and adiosf_v1.a
+  if(BUILD_FORTRAN)
+    set(FortranLibSources core/adiosf.c 
+                       core/common_adios.c 
+                       core/adios_internals.c 
+                       core/adios_internals_mxml.c
+                       core/buffer.c 
+                       core/adios_bp_v1.c  
+                       core/adios_endianness.c
+                       core/futils.c 
+                       core/adios_error.c 
+                       core/bp_utils.c                
+                       core/common_read.c 
+                       core/globals.c 
+                       core/adios_timing.c 
+                       core/adios_read_hooks.c 
+                       core/adios_transport_hooks.c 
+                       core/adios_socket.c 
+                       core/adios_logger.c 
+                       core/util.c 
+                       read/read_bp.c 
+                       read/read_bp_staged.c 
+                       read/read_bp_staged1.c 
+                       write/adios_posix.c 
+                       write/adios_posix1.c)
+
+    set(FortranLibMPISources write/adios_mpi.c
+                         write/adios_mpi_lustre.c
+	                 write/adios_mpi_amr.c
+                         write/adios_var_merge.c)
+
+    set(FortranLibSEQSources core/mpidummy.c)
+  endif(BUILD_FORTRAN)
+
+  set(libadios_a_CPPFLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_CPPFLAGS}")
+  set(libadios_a_CFLAGS "${ADIOSLIB_CFLAGS}")
+  set(libadios_nompi_a_CPPFLAGS "${MACRODEFFLAG}_NOMPI ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_SEQ_CPPFLAGS}") 
+  set(libadios_nompi_a_CFLAGS "${MACRODEFFLAG}_NOMPI ${ADIOSLIB_SEQ_CFLAGS}")
+  set(libadiosf_a_CPPFLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_CPPFLAGS}")
+  set(libadiosf_a_CFLAGS "${ADIOSLIB_CFLAGS}")
+  set(libadiosf_nompi_a_CPPFLAGS "${MACRODEFFLAG}_NOMPI ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_SEQ_CPPFLAGS}")
+  set(libadiosf_nompi_a_CFLAGS "${MACRODEFFLAG}_NOMPI ${ADIOSLIB_SEQ_CFLAGS}")
+
+  if(HAVE_DATASPACES)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} write/adios_dataspaces.c read/read_dataspaces.c)
+    set(libadios_nompi_a_SOURCES ${libadios_nompi_a_SOURCES} write/adios_dataspaces.c read/read_dataspaces.c)
+    if(BUILD_FORTRAN)  
+      set(FortranLibSources ${FortranLibSources} write/adios_dataspaces.c read/read_dataspaces.c)
+    endif(BUILD_FORTRAN) 
+  endif(HAVE_DATASPACES)
+
+  if(HAVE_DIMES)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} write/adios_dimes.c read/read_dimes.c)
+    set(libadios_nompi_a_SOURCES ${libadios_nompi_a_SOURCES} write/adios_dimes.c read/read_dimes.c)
+    if(BUILD_FORTRAN)  
+      set(FortranLibSources ${FortranLibSources} write/adios_dimes.c read/read_dimes.c)
+    endif(BUILD_FORTRAN)
+  endif(HAVE_DIMES)
+
+  if(HAVE_DATATAP)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} write/adios_datatap.c read/read_datatap.c)
+    set(libadios_nompi_a_SOURCES ${libadios_nompi_a_SOURCES} write/adios_datatap.c read/read_datatap.c)
+    if(BUILD_FORTRAN)
+      set(FortranLibSources ${FortranLibSources} write/adios_datatap.c read/read_datatap.c)
+    endif(BUILD_FORTRAN)
+  endif(HAVE_DATATAP)
+
+  if(HAVE_PHDF5)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} write/adios_phdf5.c)
+    set(PHDF5_FLAGS "${PHDF5_FLAGS} ${MACRODEFFLAG}PHDF5 ${MACRODEFFLAG}H5_USE_16_API")
+    set(libadios_a_CPPFLAGS "${libadios_a_CPPFLAGS} ${PHDF5_FLAGS}")
+    if(BUILD_FORTRAN)
+      set(FortranLibMPISources ${FortranLibMPISources} write/adios_phdf5.c)
+      set(libadiosf_a_CPPFLAGS "${libadiosf_a_CPPFLAGS} ${PHDF5_FLAGS}")
+    endif(BUILD_FORTRAN) 
+  endif(HAVE_PHDF5)
+
+  if(HAVE_NC4PAR)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} write/adios_nc4.c)
+    if(BUILD_FORTRAN)
+      set(FortranLibMPISources ${FortranLibMPISources} write/adios_nc4.c)
+    endif(BUILD_FORTRAN)
+  endif(HAVE_NC4PAR)
+
+  if(HAVE_FLEXPATH)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} write/adios_flexpath.c read/read_flexpath.c)
+    if(BUILD_FORTRAN)
+      set(FortranLibSources ${FortranLibSources} write/adios_flexpath.c read/read_flexpath.c)
+    endif(BUILD_FORTRAN)
+  endif(HAVE_FLEXPATH)
+
+  if(HAVE_NSSI)
+    set(dist_libadios_a_SOURCES  nssi/adios_nssi_args.x)
+    set(nodist_libadios_a_SOURCES adios_nssi_args.c adios_nssi_args.h)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} ${dist_libadios_a_SOURCES} ${nodist_libadios_a_SOURCES})
+    set(libadios_a_SOURCES ${libadios_a_SOURCES} nssi/adios_nssi_config.c write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c)
+    set(libadios_a_CPPFLAGS "${libadios_a_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL")
+    if(BUILD_FORTRAN)
+      set(nodist_libadiosf_a_SOURCES adios_nssi_args.c adios_nssi_args.h)
+      set(dist_libadiosf_a_SOURCES nssi/adios_nssi_args.x)
+      set(libadiosf_a_SOURCES ${libadiosf_a_SOURCES} ${nodist_libadiosf_a_SOURCES} ${dist_libadiosf_a_SOURCES})
+      set(FortranLibSources ${FortranLibSources} nssi/adios_nssi_config.c write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c)
+      set(libadiosf_a_CPPFLAGS "${libadiosf_a_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL")
+    endif(BUILD_FORTRAN)
+
+#adios_nssi_config.c: adios_nssi_args.c
+#use include_directories(${PROJECT_BINARY_DIR}/src) to let adios_nssi_config.c
+#find the header needed
+
+    add_custom_command (
+	OUTPUT adios_nssi_args.h
+	COMMAND rm -f $@
+	COMMAND rpcgen -h ${PROJECT_SOURCE_DIR}/src/nssi/adios_nssi_args.x >> $@
+        DEPENDS ${PROJECT_SOURCE_DIR}/src/nssi/adios_nssi_args.x ${PROJECT_SOURCE_DIR}/src/CMakeLists.txt
+        )
+
+    add_custom_command (
+        OUTPUT adios_nssi_args.c
+        COMMAND rm -f adios_nssi_args.c
+	COMMAND rpcgen -c ${PROJECT_SOURCE_DIR}/src/nssi/adios_nssi_args.x | grep -v "include \"\.\." > adios_nssi_args.c
+        DEPENDS ${PROJECT_SOURCE_DIR}/src/nssi/adios_nssi_args.h
+        )
+    
+  set(CLEANFILES ${CLEANFILES} adios_nssi_args.c adios_nssi_args.h)
+
+  endif(HAVE_NSSI)
+
+
+  if(RESEARCH_TRANSPORTS)
+    set(libadios_a_SOURCES ${libadios_a_SOURCES}
+                      write/adios_mpi_stagger.c 
+                      write/adios_mpi_aggregate.c 
+                      write/adios_provenance.c 
+                      write/adios_mpi_cio.c 
+                      write/adios_mpi_stripe.c 
+                      write/adios_mpi_amr1.c 
+                      write/adios_adaptive.ci)
+    if(BUILD_FORTRAN)
+      set(FortranLibMPISources ${FortranLibMPISources}
+                          write/adios_mpi_stagger.c
+                          write/adios_mpi_aggregate.c
+                          write/adios_provenance.c
+                          write/adios_mpi_cio.c
+                          write/adios_mpi_stripe.c 
+                          write/adios_mpi_amr1.c 
+                          write/adios_adaptive.c)
+    endif(BUILD_FORTRAN)
+  else(RESEARCH_TRANSPORTS)
+    set(libadios_a_CPPFLAGS "${libadios_a_CPPFLAGS} ${MACRODEFFLAG}NO_RESEARCH_TRANSPORTS")
+    set(libadios_nompi_a_CPPFLAGS "${libadios_nompi_a_CPPFLAGS} ${MACRODEFFLAG}NO_RESEARCH_TRANSPORTS")
+    set(libadiosf_a_CPPFLAGS "${libadiosf_a_CPPFLAGS} ${MACRODEFFLAG}NO_RESEARCH_TRANSPORTS")
+    set(libadiosf_nompi_a_CPPFLAGS "${libadiosf_nompi_a_CPPFLAGS} ${MACRODEFFLAG}NO_RESEARCH_TRANSPORTS")
+  endif(RESEARCH_TRANSPORTS)
+
+# add library adios and adios_nompi
+  add_library(adios STATIC ${libadios_a_SOURCES})
+  add_library(adios_nompi STATIC ${libadios_nompi_a_SOURCES})
+  set_target_properties(adios PROPERTIES COMPILE_FLAGS "${libadios_a_CPPFLAGS} ${libadios_a_CFLAGS}")
+  set_target_properties(adios_nompi PROPERTIES COMPILE_FLAGS "${libadios_nompi_a_CPPFLAGS} ${libadios_nompi_a_CFLAGS}")
+#  message(STATUS "${libadios_a_CPPFLAGS}")
+#  message(STATUS "${libadios_a_CFLAGS}")
+
+# Build four different Fortran libraries, for the two read APIs
+# and their sequential versions
+  if(BUILD_FORTRAN)
+    set(libadiosf_a_SOURCES ${libadiosf_a_SOURCES} ${FortranLibSources} ${FortranLibMPISources} core/adiosf_read.c)
+    set(libadiosf_v1_a_SOURCES ${FortranLibSources} ${FortranLibMPISources} core/adiosf_read_v1.c)
+    set(libadiosf_nompi_a_SOURCES ${FortranLibSources} ${FortranLibSEQSources} core/adiosf_read.c)
+    set(libadiosf_nompi_v1_a_SOURCES ${FortranLibSources} ${FortranLibSEQSources} core/adiosf_read_v1.c)
+    set(libadiosf_v1_a_CPPFLAGS "${libadiosf_a_CPPFLAGS}")
+    set(libadiosf_v1_a_CFLAGS "${libadiosf_a_CFLAGS}")
+    set(libadiosf_nompi_v1_a_CPPFLAGS "${libadiosf_nompi_a_CPPFLAGS}")
+    set(libadiosf_nompi_v1_a_CFLAGS "${libadiosf_nompi_a_CFLAGS}")
+
+    set(libadiosf_a_SOURCES ${libadiosf_a_SOURCES}
+                         core/adiosf_defs_mod.f90
+                         core/adiosf_write_mod.f90 
+                         core/adiosf_read_mod.f90)
+   
+    set(libadiosf_nompi_a_SOURCES ${libadiosf_nompi_a_SOURCES}
+                              core/adiosf_defs_mod.f90
+                              core/adiosf_write_mod.f90
+                              core/adiosf_read_mod.f90)
+
+    set(libadiosf_v1_a_SOURCES ${libadiosf_v1_a_SOURCES} 
+                         core/adiosf_defs_mod.f90
+                         core/adiosf_write_mod.f90)
+
+    set(libadiosf_nompi_v1_a_SOURCES ${libadiosf_nompi_v1_a_SOURCES}
+                                  core/adiosf_defs_mod.f90
+                                  core/adiosf_write_mod.f90)
+
+    set(nodist_include_HEADERS ${nodist_include_HEADERS} adios_write_mod.mod)
+    set(CLEANFILES ${CLEANFILES} adios_write_mod.mod)
+
+#    add_custom_command(
+#	OUTPUT adios_write_mod.mod
+#	COMMAND $(FC) -c core/adiosf_write_mod.f90
+#	DEPENDS core/adiosf_write_mod.f90 adios_defs_mod.mod
+#	)
+#    add_custom_command(
+#	OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/adios_write_mod.mod
+#	COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/adios_write_mod.mod ${CMAKE_CURRENT_SOURCE_DIR}
+#	DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/adios_write_mod.mod
+#	)
+
+add_custom_command(
+OUTPUT adios_write_mod.mod
+COMMAND  $(FC) -c core/adiosf_write_mod.f90
+DEPENDS core/adiosf_write_mod.f90 adios_defs_mod.mod
+)
+
+add_custom_command(
+OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/adios_write_mod.mod
+COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/adios_write_mod.mod ${CMAKE_CURRENT_SOURCE_DIR}
+DEPENDS adios_write_mod.mod
+)
+#    file(COPY ${CMAKE_CURRENT_BINARY_DIR}/adios_write_mod.mod DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
+
+    #include_directories(${nodist_include_HEADERS})
+#    install(FILES ${nodist_include_HEADERS} DESTINATION ${includedir})
+    install(FILES ${PROJECT_BINARY_DIR}/src/adios_write_mod.mod ${PROJECT_BINARY_DIR}/src/adios_defs_mod.mod DESTINATION ${includedir})
+#add library adiosf and adiosf_v1
+    add_library(adiosf STATIC ${libadiosf_a_SOURCES})
+    add_library(adiosf_v1 STATIC ${libadiosf_v1_a_SOURCES}) 
+    add_library(adiosf_nompi STATIC ${libadiosf_nompi_a_SOURCES})
+    add_library(adiosf_nompi_v1 STATIC ${libadiosf_nompi_v1_a_SOURCES})
+    set_target_properties(adiosf PROPERTIES COMPILE_FLAGS "${libadiosf_a_CPPFLAGS} ${libadiosf_a_CFLAGS}")
+    set_target_properties(adiosf_v1 PROPERTIES COMPILE_FLAGS "${libadiosf_v1_a_CPPFLAGS} ${libadiosf_v1_a_CFLAGS}")
+    set_target_properties(adiosf_nompi PROPERTIES COMPILE_FLAGS "${libadiosf_nompi_a_CPPFLAGS} ${libadiosf_nompi_a_CFLAGS}")
+    set_target_properties(adiosf_nompi_v1 PROPERTIES COMPILE_FLAGS "${libadiosf_nompi_v1_a_CPPFLAGS} ${libadiosf_nompi_v1_a_CFLAGS}")
+#    message(STATUS "${libadiosf_a_CPPFLAGS}")
+#    message(STATUS "${libadiosf_a_CFLAGS}")
+  endif(BUILD_FORTRAN)
+
+endif(BUILD_WRITE)
+ 
+
+#start libadiosread.a
+set(include_HEADERS ${include_HEADERS} public/adios.h 
+                   public/adios_types.h 
+                   public/adios_read.h 
+                   public/adios_error.h
+                   public/adios_mpi.h 
+                   public/mpidummy.h 
+                   public/adios_read_v1.h 
+                   public/adios_read_v1_defs.h 
+                   public/adios_read_v2.h 
+                   public/adios_selection.h) 
+
+set(libadiosread_a_SOURCES core/adios_bp_v1.c
+                      core/adios_endianness.c 
+                      core/bp_utils.c 
+                      core/futils.c 
+                      core/adios_error.c 
+                      core/adios_read.c 
+                      core/adios_read_v1.c 
+                      core/common_read.c 
+                      core/globals.c 
+                      core/adios_read_hooks.c 
+                      core/adios_logger.c 
+                      core/util.c 
+                      read/read_bp.c 
+                      read/read_bp_staged.c 
+                      read/read_bp_staged1.c)
+
+if(HAVE_DMALLOC)
+  set(libadiosread_a_CPPFLAGS "${libadiosread_a_CPPFLAGS} ${MACRODEFFLAG}DMALLOC")
+endif(HAVE_DMALLOC)
+
+
+if(HAVE_DATASPACES)
+  set(libadiosread_a_SOURCES ${libadiosread_a_SOURCES} read/read_dataspaces.c)
+endif(HAVE_DATASPACES)
+
+if(HAVE_DIMES)
+  set(libadiosread_a_SOURCES ${libadiosread_a_SOURCES} read/read_dimes.c)
+endif(HAVE_DIMES)
+
+if(HAVE_DATATAP)
+  set(libadiosread_a_SOURCES ${libadiosread_a_SOURCES} read/read_datatap.c)
+endif(HAVE_DATATAP)
+
+if(HAVE_FLEXPATH)
+  set(libadiosread_a_SOURCES ${libadiosread_a_SOURCES} read/read_flexpath.c)
+endif(HAVE_FLEXPATH)
+
+if(HAVE_NSSI)
+  set(dist_libadiosread_a_SOURCES nssi/adios_nssi_args.x)
+  set(nodist_libadiosread_a_SOURCES adios_nssi_args.c adios_nssi_args.h)
+  set(libadiosread_a_SOURCES ${libadiosread_a_SOURCES} ${dist_libadiosread_a_SOURCES} ${nodist_libadiosread_a_SOURCES})
+  set(libadiosread_a_SOURCES ${libadiosread_a_SOURCES} nssi/adios_nssi_config.c read/read_nssi.c)
+  set(libadiosread_a_CPPFLAGS "${libadiosread_a_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL")
+  set(libadiosread_a_CFLAGS "${libadiosread_a_CFLAGS} ${ADIOSLIB_CFLAGS}")
+endif(HAVE_NSSI)
+
+set(libadiosread_a_CPPFLAGS "${libadiosread_a_CPPFLAGS} ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_CPPFLAGS}")
+
+#add library adiosread
+#include_directories(${include_HEADERS})
+install(FILES ${include_HEADERS} DESTINATION ${includedir})
+add_library(adiosread STATIC ${libadiosread_a_SOURCES})
+set_target_properties(adiosread PROPERTIES COMPILE_FLAGS "${libadiosread_a_CPPFLAGS} ${libadiosread_a_CFLAGS}")
+
+#start libadiosreadf.a libadiosreadf_v1.a
+if(BUILD_FORTRAN)
+  set(FortranReadLibSource core/adios_bp_v1.c 
+                      core/adios_endianness.c 
+                      core/bp_utils.c 
+                      core/futils.c 
+                      core/adios_error.c 
+                      core/common_read.c 
+                      core/globals.c 
+                      core/adios_read_hooks.c 
+                      core/adios_logger.c 
+                      core/util.c 
+                      read/read_bp.c 
+                      read/read_bp_staged.c 
+                      read/read_bp_staged1.c)
+  if(HAVE_DATASPACES)
+    set(FortranReadLibSource ${FortranReadLibSource} read/read_dataspaces.c)
+  endif(HAVE_DATASPACES)
+
+  if(HAVE_DIMES)
+    set(FortranReadLibSource ${FortranReadLibSource} read/read_dimes.c)
+  endif(HAVE_DIMES)
+
+  if(HAVE_DATATAP)
+    set(FortranReadLibSource ${FortranReadLibSource} read/read_datatap.c)
+  endif(HAVE_DATATAP)
+
+  if(HAVE_FLEXPATH)
+    set(FortranReadLibSource ${FortranReadLibSource} read/read_flexpath.c)
+  endif(HAVE_FLEXPATH)
+  
+  if(HAVE_NSSI)
+    set(dist_libadiosreadf_a_SOURCES nssi/adios_nssi_args.x)
+    set(nodist_libadiosreadf_a_SOURCES adios_nssi_args.c adios_nssi_args.h)
+    set(libadiosreadf_a_SOURCES ${libadiosreadf_a_SOURCES} ${dist_libadiosreadf_a_SOURCES} ${nodist_libadiosreadf_a_SOURCES})
+    set(FortranReadLibSource ${FortranReadLibSource} nssi/adios_nssi_config.c read/read_nssi.c)
+    set(libadiosreadf_a_CPPFLAGS "${libadiosreadf_a_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL")
+    set(libadiosreadf_a_CFLAGS "${libadiosreadf_a_CFLAGS} ${ADIOSLIB_CFLAGS}")
+  endif(HAVE_NSSI)
+
+  set(libadiosreadf_a_CPPFLAGS "${libadiosreadf_a_CPPFLAGS} ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_CPPFLAGS}")
+  set(libadiosreadf_a_SOURCES ${libadiosreadf_a_SOURCES} ${FortranReadLibSource} core/adiosf_read.c)
+  set(libadiosreadf_v1_a_SOURCES ${FortranReadLibSource} core/adiosf_read_v1.c)
+  set(libadiosreadf_v1_a_CPPFLAGS "${libadiosreadf_a_CPPFLAGS}")
+  set(libadiosreadf_v1_a_CFLAGS "${libadiosreadf_a_CFLAGS}")
+  set(libadiosreadf_a_SOURCES ${libadiosreadf_a_SOURCES} core/adiosf_defs_mod.f90 core/adiosf_read_mod.f90)
+  set(nodist_include_HEADERS ${nodist_include_HEADERS} adios_read_mod.mod adios_defs_mod.mod)
+  set(CLEANFILES ${CLEANFILES} adios_read_mod.mod adios_defs_mod.mod)
+  
+  ADD_CUSTOM_COMMAND(
+        OUTPUT adios_read_mod.mod
+        COMMAND $(FC) -c core/adiosf_read_mod.f90
+        DEPENDS core/adiosf_read_mod.f90 adios_defs_mod.mod
+        )  
+  add_custom_command(
+        OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/adios_read_mod.mod
+        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/adios_read_mod.mod ${CMAKE_CURRENT_SOURCE_DIR}
+        DEPENDS adios_read_mod.mod
+        )
+
+  ADD_CUSTOM_COMMAND(
+        OUTPUT adios_defs_mod.mod
+        COMMAND $(FC) -c core/adiosf_defs_mod.f90
+        DEPENDS core/adios_defs_mod.f90
+	)
+  add_custom_command(
+        OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/adios_defs_mod.mod
+        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/adios_defs_mod.mod ${CMAKE_CURRENT_SOURCE_DIR}
+        DEPENDS adios_defs_mod.mod
+        )
+#  file(COPY ${CMAKE_CURRENT_BINARY_DIR}/adios_defs_mod.mod DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
+#add library adiosreadf and adiosreadf_v1
+  #include_directories(${nodist_include_HEADERS})
+#  install(FILES ${nodist_include_HEADERS} DESTINATION ${includedir})
+  install(FILES ${PROJECT_BINARY_DIR}/src/adios_read_mod.mod DESTINATION ${includedir})
+  add_library(adiosreadf ${libadiosreadf_a_SOURCES})
+  set_target_properties(adiosreadf PROPERTIES COMPILE_FLAGS "${libadiosreadf_a_CPPFLAGS} ${libadiosreadf_a_CFLAGS}")
+  
+#  message(STATUS "${nodist_include_HEADERS}")
+#  message(STATUS "${libadiosreadf_v1_a_SOURCES}")
+  add_library(adiosreadf_v1 ${libadiosreadf_v1_a_SOURCES})
+  set_target_properties(adiosreadf_v1 PROPERTIES COMPILE_FLAGS "${libadiosreadf_v1_a_CPPFLAGS} ${libadiosreadf_v1_a_CFLAGS}")
+
+endif(BUILD_FORTRAN)
+
+
+#start libadiosread_nompi.a
+set(libadiosread_nompi_a_SOURCES core/mpidummy.c
+                      core/adios_bp_v1.c 
+                      core/adios_endianness.c 
+                      core/bp_utils.c 
+                      core/futils.c 
+                      core/adios_error.c 
+                      core/adios_read.c 
+                      core/adios_read_v1.c 
+                      core/common_read.c 
+#                      core/adios_internals.c 
+                      core/adios_logger.c 
+                      core/buffer.c 
+                      core/globals.c 
+                      core/adios_read_hooks.c 
+#                      core/adios_transport_hooks.c 
+                      core/util.c 
+                      read/read_bp.c)
+
+if(HAVE_DMALLOC)
+  set(libadiosread_nompi_a_CPPFLAGS "${libadiosread_nompi_a_CPPFLAGS} ${MACRODEFFLAG}DMALLOC")
+endif(HAVE_DMALLOC)
+
+if(HAVE_DATASPACES)
+  set(libadiosread_nompi_a_SOURCES ${libadiosread_nompi_a_SOURCES} read/read_dataspaces.c)
+endif(HAVE_DATASPACES)
+
+if(HAVE_DIMES)
+  set(libadiosread_nompi_a_SOURCES ${libadiosread_nompi_a_SOURCES} read/read_dimes.c)
+endif(HAVE_DIMES)
+
+if(HAVE_DATATAP)
+  set(libadiosread_nompi_a_SOURCES ${libadiosread_nompi_a_SOURCES} read/read_datatap.c)
+endif(HAVE_DATATAP)
+
+if(HAVE_FLEXPATH)
+  set(libadiosread_nompi_a_SOURCES ${libadiosread_nompi_a_SOURCES} read/read_flexpath.c)
+endif(HAVE_FLEXPATH)
+
+if(HAVE_NSSI)
+  set(dist_libadiosread_nompi_a_SOURCES nssi/adios_nssi_args.x)
+  set(nodist_libadiosread_nompi_a_SOURCES adios_nssi_args.c adios_nssi_args.h)
+  set(libadiosread_nompi_a_SOURCES ${libadiosread_nompi_a_SOURCES} ${dist_libadiosread_nompi_a_SOURCES} ${nodist_libadiosread_nompi_a_SOURCES})
+  set(libadiosread_nompi_a_SOURCES ${libadiosread_nompi_a_SOURCES} nssi/adios_nssi_config.c read/read_nssi.c)
+  set(libadiosread_nompi_a_CPPFLAGS "${libadiosread_nompi_a_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NA")
+endif(HAVE_NSSI)
+
+set(libadiosread_nompi_a_CPPFLAGS "${libadiosread_nompi_a_CPPFLAGS} ${MACRODEFFLAG}_NOMPI ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_CPPFLAGS}")
+
+#add library adiosread_nompi
+add_library(adiosread_nompi ${libadiosread_nompi_a_SOURCES})
+set_target_properties(adiosread_nompi PROPERTIES COMPILE_FLAGS "${libadiosread_nompi_a_CPPFLAGS} ${libadiosread_nompi_a_CFLAGS}")
+
+
+#start libadiosreadf_nompi.a libadiosreadf_nompi_v1.a
+if(BUILD_FORTRAN)
+  set(FortranReadSeqLibSource core/mpidummy.c
+                          core/adios_bp_v1.c 
+                          core/adios_endianness.c 
+                          core/bp_utils.c 
+                          core/futils.c 
+                          core/adios_error.c 
+                          core/adios_logger.c 
+                          core/common_read.c 
+                          core/globals.c 
+                          core/adios_read_hooks.c 
+                          core/util.c 
+                          read/read_bp.c)
+  if(HAVE_DATASPACES)
+    set(FortranReadSeqLibSource ${FortranReadSeqLibSource} read/read_dataspaces.c)
+  endif(HAVE_DATASPACES)
+
+  if(HAVE_DIMES)
+    set(FortranReadSeqLibSource ${FortranReadSeqLibSource} read/read_dimes.c)
+  endif(HAVE_DIMES)
+
+  if(HAVE_DATATAP)
+    set(FortranReadSeqLibSource ${FortranReadSeqLibSource} read/read_datatap.c)
+  endif(HAVE_DATATAP)
+
+  if(HAVE_FLEXPATH)
+    set(FortranReadSeqLibSource ${FortranReadSeqLibSource} read/read_flexpath.c)
+  endif(HAVE_FLEXPATH)
+
+  if(HAVE_NSSI)
+    set(dist_libadiosreadf_nompi_a_SOURCES nssi/adios_nssi_args.x)
+    set(nodist_libadiosreadf_nompi_a_SOURCES adios_nssi_args.c adios_nssi_args.h)
+    set(libadiosreadf_nompi_a_SOURCES ${libadiosreadf_nompi_a_SOURCES} ${dist_libadiosreadf_nompi_a_SOURCES} ${nodist_libadiosreadf_nompi_a_SOURCES})
+    set(FortranReadSeqLibSource ${FortranReadSeqLibSource} nssi/adios_nssi_config.c read/read_nssi.c)
+    set(libadiosreadf_nompi_a_CPPFLAGS "${libadiosreadf_nompi_a_CPPFLAGS} ${MACRODEFFLAG}PTL_IFACE_CLIENT=CRAY_USER_NAL ${MACRODEFFLAG}PTL_IFACE_SERVER=CRAY_USER_NAL")
+    set(libadiosreadf_nompi_a_CPPFLAGS "${libadiosreadf_nompi_a_CPPFLAGS} ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_CPPFLAGS}")
+    set(libadiosreadf_nompi_a_CFLAGS "${ADIOSLIB_CFLAGS}")
+  endif(HAVE_NSSI)
+
+  set(libadiosreadf_nompi_a_CPPFLAGS "${libadiosreadf_nompi_a_CPPFLAGS} ${MACRODEFFLAG}_NOMPI ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_CPPFLAGS}")
+  set(libadiosreadf_nompi_a_SOURCES ${libadiosreadf_nompi_a_SOURCES} ${FortranReadSeqLibSource} core/adiosf_read.c)
+  set(libadiosreadf_nompi_v1_a_SOURCES ${FortranReadSeqLibSource} core/adiosf_read_v1.c)
+  set(libadiosreadf_nompi_v1_a_CPPFLAGS "${libadiosreadf_nompi_a_CPPFLAGS}")
+  set(libadiosreadf_nompi_v1_a_CFLAGS "${libadiosreadf_nompi_a_CFLAGS}")
+
+#add library adiosreadf_nompi and adiosreadf_nompi_v1
+  add_library(adiosreadf_nompi ${libadiosreadf_nompi_a_SOURCES})
+  set_target_properties(adiosreadf_nompi  PROPERTIES COMPILE_FLAGS "${libadiosreadf_nompi_a_CPPFLAGS} ${libadiosreadf_nompi_a_CFLAGS}")
+
+  add_library(adiosreadf_nompi_v1 ${libadiosreadf_nompi_v1_a_SOURCES})
+  set_target_properties(adiosreadf_nompi_v1 PROPERTIES COMPILE_FLAGS "${libadiosreadf_nompi_v1_a_CPPFLAGS} ${libadiosreadf_nompi_v1_a_CFLAGS}")
+
+endif(BUILD_FORTRAN)
+
+
+#start libadios_internal_nompi.a
+set(libadios_internal_nompi_a_SOURCES core/mpidummy.c 
+                                    core/adios_bp_v1.c 
+                                    core/adios_endianness.c 
+                                    core/bp_utils.c 
+                                    core/adios_internals.c 
+                                    core/buffer.c 
+                                    core/adios_error.c 
+                                    core/adios_logger.c 
+                                    core/adios_internals_mxml.c 
+                                    core/adios_timing.c 
+                                    core/util.c 
+                                    core/futils.c 
+                                    core/adios_transport_hooks.c)
+
+set(libadios_internal_nompi_a_CPPFLAGS "${MACRODEFFLAG}_INTERNAL ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_CPPFLAGS}")
+
+add_library(adios_internal_nompi ${libadios_internal_nompi_a_SOURCES})
+set_target_properties(adios_internal_nompi PROPERTIES COMPILE_FLAGS "${libadios_internal_nompi_a_CPPFLAGS}")
+
+add_subdirectory(core)
+add_subdirectory(write)
+
+install(FILES ${PROJECT_BINARY_DIR}/src/libadios.a
+	${PROJECT_BINARY_DIR}/src/libadios_nompi.a
+	${PROJECT_BINARY_DIR}/src/libadiosf.a
+	${PROJECT_BINARY_DIR}/src/libadiosf_v1.a
+	${PROJECT_BINARY_DIR}/src/libadiosread.a
+	${PROJECT_BINARY_DIR}/src/libadiosread_nompi.a
+	${PROJECT_BINARY_DIR}/src/libadiosreadf.a
+	${PROJECT_BINARY_DIR}/src/libadiosreadf_nompi.a
+	${PROJECT_BINARY_DIR}/src/libadiosreadf_nompi_v1.a
+	${PROJECT_BINARY_DIR}/src/libadiosreadf_v1.a
+        ${PROJECT_BINARY_DIR}/src/libadiosf_nompi.a
+        ${PROJECT_BINARY_DIR}/src/libadiosf_nompi_v1.a
+	DESTINATION ${libdir})
+
+
+#Note: ${MACRODEFFLAG}NOMPI chokes IBM's bgxlf compiler but it can pass ${MACRODEFFLAG}_NOMPI.
diff --git a/src/Makefile.am b/src/Makefile.am
index 4516974..32325b9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -70,7 +70,8 @@ libadios_a_SOURCES = core/adios.c \
                      write/adios_mpi_lustre.c \
                      write/adios_mpi_amr.c \
                      write/adios_posix.c \
-                     write/adios_posix1.c 
+                     write/adios_posix1.c \
+                     write/adios_var_merge.c 
 
 
 libadios_nompi_a_SOURCES = core/adios.c \
@@ -103,7 +104,7 @@ libadios_nompi_a_SOURCES = core/adios.c \
 
 
 if BUILD_FORTRAN
-lib_LIBRARIES += libadiosf.a libadiosf_v1.a
+lib_LIBRARIES += libadiosf.a libadiosf_v1.a libadiosf_nompi.a libadiosf_nompi_v1.a
 FortranLibSources = core/adiosf.c \
                      core/common_adios.c \
                      core/adios_internals.c \
@@ -125,12 +126,15 @@ FortranLibSources = core/adiosf.c \
                      read/read_bp.c \
                      read/read_bp_staged.c \
                      read/read_bp_staged1.c \
-                     write/adios_mpi.c \
-                     write/adios_mpi_lustre.c \
-                     write/adios_mpi_amr.c \
                      write/adios_posix.c \
                      write/adios_posix1.c 
 
+FortranLibMPISources =  write/adios_mpi.c \
+                     write/adios_mpi_lustre.c \
+                     write/adios_mpi_amr.c \
+                     write/adios_var_merge.c
+
+FortranLibSEQSources = core/mpidummy.c
 
 endif # BUILD_FORTRAN
 
@@ -140,6 +144,8 @@ libadios_nompi_a_CPPFLAGS = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_EXTRA_CPPFLAGS) $(A
 libadios_nompi_a_CFLAGS = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_SEQ_CFLAGS) 
 libadiosf_a_CPPFLAGS = $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSLIB_CPPFLAGS) # $(MACRODEFFLAG)USE_TIMERS
 libadiosf_a_CFLAGS = $(ADIOSLIB_CFLAGS) 
+libadiosf_nompi_a_CPPFLAGS = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSLIB_SEQ_CPPFLAGS) # $(MACRODEFFLAG)USE_TIMERS
+libadiosf_nompi_a_CFLAGS = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_SEQ_CFLAGS) 
 
 if HAVE_DATASPACES
 libadios_a_SOURCES += write/adios_dataspaces.c read/read_dataspaces.c
@@ -171,7 +177,7 @@ libadios_a_SOURCES += write/adios_phdf5.c
 PHDF5_CPPFLAGS += $(MACRODEFFLAG)PHDF5 $(MACRODEFFLAG)H5_USE_16_API 
 libadios_a_CPPFLAGS += $(PHDF5_CPPFLAGS)
 if BUILD_FORTRAN
-FortranLibSources += write/adios_phdf5.c 
+FortranLibMPISources += write/adios_phdf5.c 
 libadiosf_a_CPPFLAGS += $(PHDF5_CPPFLAGS)
 endif
 endif
@@ -179,7 +185,14 @@ endif
 if HAVE_NC4PAR
 libadios_a_SOURCES += write/adios_nc4.c 
 if BUILD_FORTRAN
-FortranLibSources += write/adios_nc4.c 
+FortranLibMPISources += write/adios_nc4.c 
+endif
+endif
+
+if HAVE_FLEXPATH
+libadios_a_SOURCES += write/adios_flexpath.c  read/read_flexpath.c
+if BUILD_FORTRAN
+FortranLibSources += write/adios_flexpath.c read/read_flexpath.c
 endif
 endif
 
@@ -229,7 +242,7 @@ libadios_a_SOURCES += write/adios_mpi_stagger.c \
                       write/adios_mpi_amr1.c \
                       write/adios_adaptive.c 
 if BUILD_FORTRAN
-FortranLibSources += write/adios_mpi_stagger.c \
+FortranLibMPISources += write/adios_mpi_stagger.c \
                        write/adios_mpi_aggregate.c \
                        write/adios_provenance.c \
                        write/adios_mpi_cio.c \
@@ -241,22 +254,35 @@ else
 libadios_a_CPPFLAGS += $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
 libadios_nompi_a_CPPFLAGS += $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
 libadiosf_a_CPPFLAGS += $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
+libadiosf_nompi_a_CPPFLAGS += $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
 endif  # RESEARCH_TRANSPORTS
 
-# Build two different Fortran library, for the two read APIs
+# Build four different Fortran libraries, for the two read APIs
+# and their sequential versions
 if BUILD_FORTRAN
-libadiosf_a_SOURCES = $(FortranLibSources) core/adiosf_read.c
-libadiosf_v1_a_SOURCES = $(FortranLibSources) core/adiosf_read_v1.c
+libadiosf_a_SOURCES = $(FortranLibSources) $(FortranLibMPISources) core/adiosf_read.c
+libadiosf_v1_a_SOURCES = $(FortranLibSources) $(FortranLibMPISources) core/adiosf_read_v1.c
+libadiosf_nompi_a_SOURCES = $(FortranLibSources) $(FortranLibSEQSources) core/adiosf_read.c
+libadiosf_nompi_v1_a_SOURCES = $(FortranLibSources) $(FortranLibSEQSources) core/adiosf_read_v1.c
 libadiosf_v1_a_CPPFLAGS = $(libadiosf_a_CPPFLAGS) 
 libadiosf_v1_a_CFLAGS = $(libadiosf_a_CFLAGS) 
+libadiosf_nompi_v1_a_CPPFLAGS = $(libadiosf_nompi_a_CPPFLAGS) 
+libadiosf_nompi_v1_a_CFLAGS = $(libadiosf_nompi_a_CFLAGS) 
 
 libadiosf_a_SOURCES += core/adiosf_defs_mod.f90 \
                        core/adiosf_write_mod.f90 \
                        core/adiosf_read_mod.f90 
 
+libadiosf_nompi_a_SOURCES += core/adiosf_defs_mod.f90 \
+                             core/adiosf_write_mod.f90 \
+                             core/adiosf_read_mod.f90 
+
 libadiosf_v1_a_SOURCES += core/adiosf_defs_mod.f90 \
                           core/adiosf_write_mod.f90 
 
+libadiosf_nompi_v1_a_SOURCES += core/adiosf_defs_mod.f90 \
+                                core/adiosf_write_mod.f90 
+
 #nodist_libadiosreadf_a_SOURCES += adios_write.mod
 nodist_include_HEADERS += adios_write_mod.mod 
 CLEANFILES += adios_write_mod.mod
@@ -273,6 +299,7 @@ include_HEADERS += public/adios.h \
                    public/adios_types.h \
                    public/adios_read.h \
                    public/adios_error.h \
+                   public/adios_mpi.h \
                    public/mpidummy.h \
                    public/adios_read_v1.h \
                    public/adios_read_v1_defs.h \
@@ -305,6 +332,9 @@ endif
 if HAVE_DATATAP
 libadiosread_a_SOURCES += read/read_datatap.c
 endif
+if HAVE_FLEXPATH
+libadiosread_a_SOURCES += read/read_flexpath.c
+endif
 if HAVE_NSSI
 dist_libadiosread_a_SOURCES = nssi/adios_nssi_args.x
 nodist_libadiosread_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
@@ -331,7 +361,6 @@ FortranReadLibSource = core/adios_bp_v1.c \
                       read/read_bp.c \
                       read/read_bp_staged.c \
                       read/read_bp_staged1.c 
-                      
 if HAVE_DATASPACES
 FortranReadLibSource += read/read_dataspaces.c
 endif
@@ -341,6 +370,9 @@ endif
 if HAVE_DATATAP
 FortranReadLibSource += read/read_datatap.c
 endif
+if HAVE_FLEXPATH 
+FortranReadLibSource += read/read_flexpath.c
+endif
 if HAVE_NSSI
 dist_libadiosreadf_a_SOURCES = nssi/adios_nssi_args.x
 nodist_libadiosreadf_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
@@ -397,6 +429,9 @@ endif
 if HAVE_DATATAP
 libadiosread_nompi_a_SOURCES += read/read_datatap.c
 endif
+if HAVE_FLEXPATH
+libadiosread_nompi_a_SOURCES += read/read_flexpath.c
+endif
 if HAVE_NSSI
 dist_libadiosread_nompi_a_SOURCES = nssi/adios_nssi_args.x
 nodist_libadiosread_nompi_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
@@ -433,6 +468,9 @@ endif
 if HAVE_DATATAP
 FortranReadSeqLibSource += read/read_datatap.c
 endif
+if HAVE_FLEXPATH
+FortranReadSeqLibSource += read/read_flexpath.c
+endif
 if HAVE_NSSI
 dist_libadiosreadf_nompi_a_SOURCES = nssi/adios_nssi_args.x
 nodist_libadiosreadf_nompi_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
@@ -508,6 +546,6 @@ EXTRA_DIST = core/adios_bp_v1.h core/adios_endianness.h \
              core/adios_transport_hooks.h \
              core/bp_types.h core/bp_utils.h core/buffer.h core/common_adios.h \
              core/common_read.h core/futils.h core/globals.h core/ds_metadata.h \
-             core/util.h \
+             core/util.h core/flexpath.h \
              nssi/adios_nssi_config.h nssi/aggregation.h nssi/io_timer.h
 
diff --git a/src/Makefile.in b/src/Makefile.in
index 7666c52..3bd65bc 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -40,7 +40,7 @@ bin_PROGRAMS = $(am__EXEEXT_1)
 @HAVE_NSSI_TRUE at am__append_1 = nssi-staging-server \
 @HAVE_NSSI_TRUE@	nssi-coupling-server
 @BUILD_WRITE_TRUE at am__append_2 = libadios.a libadios_nompi.a
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__append_3 = libadiosf.a libadiosf_v1.a
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__append_3 = libadiosf.a libadiosf_v1.a libadiosf_nompi.a libadiosf_nompi_v1.a
 @BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__append_4 = write/adios_dataspaces.c read/read_dataspaces.c
 @BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__append_5 = write/adios_dataspaces.c read/read_dataspaces.c
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__append_6 = write/adios_dataspaces.c read/read_dataspaces.c
@@ -57,12 +57,14 @@ bin_PROGRAMS = $(am__EXEEXT_1)
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_PHDF5_TRUE at am__append_17 = $(PHDF5_CPPFLAGS)
 @BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__append_18 = write/adios_nc4.c 
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__append_19 = write/adios_nc4.c 
- at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_20 = nssi/adios_nssi_config.c write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c
- at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_21 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_22 = nssi/adios_nssi_config.c write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_23 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
- at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_24 = adios_nssi_args.c adios_nssi_args.h
- at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__append_25 = write/adios_mpi_stagger.c \
+ at BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__append_20 = write/adios_flexpath.c  read/read_flexpath.c
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__append_21 = write/adios_flexpath.c read/read_flexpath.c
+ at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_22 = nssi/adios_nssi_config.c write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c
+ at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_23 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_24 = nssi/adios_nssi_config.c write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_25 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
+ at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__append_26 = adios_nssi_args.c adios_nssi_args.h
+ at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__append_27 = write/adios_mpi_stagger.c \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                      write/adios_mpi_aggregate.c \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                      write/adios_provenance.c \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                      write/adios_mpi_cio.c \
@@ -70,7 +72,7 @@ bin_PROGRAMS = $(am__EXEEXT_1)
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                      write/adios_mpi_amr1.c \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                      write/adios_adaptive.c 
 
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__append_26 = write/adios_mpi_stagger.c \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__append_28 = write/adios_mpi_stagger.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                       write/adios_mpi_aggregate.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                       write/adios_provenance.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                       write/adios_mpi_cio.c \
@@ -78,58 +80,63 @@ bin_PROGRAMS = $(am__EXEEXT_1)
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                       write/adios_mpi_amr1.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@                       write/adios_adaptive.c 
 
- at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_FALSE at am__append_27 = $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
- at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_FALSE at am__append_28 = $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_FALSE at am__append_29 = $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
+ at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_FALSE at am__append_30 = $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
+ at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_FALSE at am__append_31 = $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
+ at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_FALSE at am__append_32 = $(MACRODEFFLAG)NO_RESEARCH_TRANSPORTS
 
 #nodist_libadiosreadf_a_SOURCES += adios_write.mod
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__append_30 = adios_write_mod.mod 
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__append_31 = adios_write_mod.mod
- at HAVE_DATASPACES_TRUE@am__append_32 = read/read_dataspaces.c
- at HAVE_DIMES_TRUE@am__append_33 = read/read_dimes.c
- at HAVE_DATATAP_TRUE@am__append_34 = read/read_datatap.c
- at HAVE_NSSI_TRUE@am__append_35 = nssi/adios_nssi_config.c read/read_nssi.c
- at HAVE_NSSI_TRUE@am__append_36 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__append_33 = adios_write_mod.mod 
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__append_34 = adios_write_mod.mod
+ at HAVE_DATASPACES_TRUE@am__append_35 = read/read_dataspaces.c
+ at HAVE_DIMES_TRUE@am__append_36 = read/read_dimes.c
+ at HAVE_DATATAP_TRUE@am__append_37 = read/read_datatap.c
+ at HAVE_FLEXPATH_TRUE@am__append_38 = read/read_flexpath.c
+ at HAVE_NSSI_TRUE@am__append_39 = nssi/adios_nssi_config.c read/read_nssi.c
+ at HAVE_NSSI_TRUE@am__append_40 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
 #libadiosread_a_CPPFLAGS += $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSLIB_CPPFLAGS) # $(MACRODEFFLAG)USE_TIMERS
- at HAVE_NSSI_TRUE@am__append_37 = $(ADIOSLIB_CFLAGS) 
- at BUILD_FORTRAN_TRUE@am__append_38 = libadiosreadf.a libadiosreadf_v1.a
- at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__append_39 = read/read_dataspaces.c
- at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__append_40 = read/read_dimes.c
- at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__append_41 = read/read_datatap.c
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_42 = nssi/adios_nssi_config.c read/read_nssi.c
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_43 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_44 = $(ADIOSLIB_CFLAGS) 
- at BUILD_FORTRAN_TRUE@am__append_45 = $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS)
+ at HAVE_NSSI_TRUE@am__append_41 = $(ADIOSLIB_CFLAGS) 
+ at BUILD_FORTRAN_TRUE@am__append_42 = libadiosreadf.a libadiosreadf_v1.a
+ at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__append_43 = read/read_dataspaces.c
+ at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__append_44 = read/read_dimes.c
+ at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__append_45 = read/read_datatap.c
+ at BUILD_FORTRAN_TRUE@@HAVE_FLEXPATH_TRUE at am__append_46 = read/read_flexpath.c
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_47 = nssi/adios_nssi_config.c read/read_nssi.c
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_48 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_49 = $(ADIOSLIB_CFLAGS) 
+ at BUILD_FORTRAN_TRUE@am__append_50 = $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS)
 
 #nodist_libadiosreadf_a_SOURCES += adios_read_mod.mod
- at BUILD_FORTRAN_TRUE@am__append_46 = adios_read_mod.mod adios_defs_mod.mod
- at BUILD_FORTRAN_TRUE@am__append_47 = adios_read_mod.mod adios_defs_mod.mod
- at HAVE_DATASPACES_TRUE@am__append_48 = read/read_dataspaces.c
- at HAVE_DIMES_TRUE@am__append_49 = read/read_dimes.c
- at HAVE_DATATAP_TRUE@am__append_50 = read/read_datatap.c
- at HAVE_NSSI_TRUE@am__append_51 = nssi/adios_nssi_config.c read/read_nssi.c
- at HAVE_NSSI_TRUE@am__append_52 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
- at HAVE_NSSI_TRUE@am__append_53 = $(ADIOSLIB_CFLAGS) 
+ at BUILD_FORTRAN_TRUE@am__append_51 = adios_read_mod.mod adios_defs_mod.mod
+ at BUILD_FORTRAN_TRUE@am__append_52 = adios_read_mod.mod adios_defs_mod.mod
+ at HAVE_DATASPACES_TRUE@am__append_53 = read/read_dataspaces.c
+ at HAVE_DIMES_TRUE@am__append_54 = read/read_dimes.c
+ at HAVE_DATATAP_TRUE@am__append_55 = read/read_datatap.c
+ at HAVE_FLEXPATH_TRUE@am__append_56 = read/read_flexpath.c
+ at HAVE_NSSI_TRUE@am__append_57 = nssi/adios_nssi_config.c read/read_nssi.c
+ at HAVE_NSSI_TRUE@am__append_58 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL $(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL
+ at HAVE_NSSI_TRUE@am__append_59 = $(ADIOSLIB_CFLAGS) 
 
 # Note: utils/adios_lint needs to link with adios_internals_mxml.o which depends
 #       on adios_internals.c, buffer.c and adios_transport_hooks.c. 
 #       We put these objects in libadiosread_nompi
 #       so we do not need to make another _nompi lib just for adios_lint
- at BUILD_FORTRAN_TRUE@am__append_54 = libadiosreadf_nompi.a libadiosreadf_nompi_v1.a
- at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__append_55 = read/read_dataspaces.c
- at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__append_56 = read/read_dimes.c
- at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__append_57 = read/read_datatap.c
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_58 = nssi/adios_nssi_config.c read/read_nssi.c
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_59 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL \
+ at BUILD_FORTRAN_TRUE@am__append_60 = libadiosreadf_nompi.a libadiosreadf_nompi_v1.a
+ at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__append_61 = read/read_dataspaces.c
+ at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__append_62 = read/read_dimes.c
+ at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__append_63 = read/read_datatap.c
+ at BUILD_FORTRAN_TRUE@@HAVE_FLEXPATH_TRUE at am__append_64 = read/read_flexpath.c
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_65 = nssi/adios_nssi_config.c read/read_nssi.c
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_66 = $(MACRODEFFLAG)PTL_IFACE_CLIENT=CRAY_USER_NAL \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	$(MACRODEFFLAG)PTL_IFACE_SERVER=CRAY_USER_NAL \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	$(ADIOSLIB_EXTRA_CPPFLAGS) \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	$(ADIOSLIB_CPPFLAGS) # \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	$(MACRODEFFLAG)USE_TIMERS
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_60 = $(ADIOSLIB_CFLAGS) 
- at BUILD_FORTRAN_TRUE@am__append_61 = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS)
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__append_67 = $(ADIOSLIB_CFLAGS) 
+ at BUILD_FORTRAN_TRUE@am__append_68 = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS)
 #Note: $(MACRODEFFLAG)NOMPI chokes IBM's bgxlf compiler but it can pass $(MACRODEFFLAG)_NOMPI. 
- at HAVE_DMALLOC_TRUE@am__append_62 = $(MACRODEFFLAG)DMALLOC 
- at HAVE_DMALLOC_TRUE@am__append_63 = $(MACRODEFFLAG)DMALLOC 
+ at HAVE_DMALLOC_TRUE@am__append_69 = $(MACRODEFFLAG)DMALLOC 
+ at HAVE_DMALLOC_TRUE@am__append_70 = $(MACRODEFFLAG)DMALLOC 
 subdir = src
 DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -138,8 +145,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -197,9 +206,10 @@ am__libadios_a_SOURCES_DIST = core/adios.c core/common_adios.c \
 	read/read_bp_staged.c read/read_bp_staged1.c write/adios_mpi.c \
 	write/adios_mpi_lustre.c write/adios_mpi_amr.c \
 	write/adios_posix.c write/adios_posix1.c \
-	write/adios_dataspaces.c read/read_dataspaces.c \
-	write/adios_dimes.c read/read_dimes.c write/adios_datatap.c \
-	read/read_datatap.c write/adios_phdf5.c write/adios_nc4.c \
+	write/adios_var_merge.c write/adios_dataspaces.c \
+	read/read_dataspaces.c write/adios_dimes.c read/read_dimes.c \
+	write/adios_datatap.c read/read_datatap.c write/adios_phdf5.c \
+	write/adios_nc4.c write/adios_flexpath.c read/read_flexpath.c \
 	nssi/adios_nssi_config.c write/adios_nssi.c \
 	nssi/adios_nssi_filter.c read/read_nssi.c \
 	write/adios_mpi_stagger.c write/adios_mpi_aggregate.c \
@@ -214,11 +224,13 @@ am__libadios_a_SOURCES_DIST = core/adios.c core/common_adios.c \
 @BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE@	libadios_a-read_datatap.$(OBJEXT)
 @BUILD_WRITE_TRUE@@HAVE_PHDF5_TRUE at am__objects_4 = libadios_a-adios_phdf5.$(OBJEXT)
 @BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__objects_5 = libadios_a-adios_nc4.$(OBJEXT)
- at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_6 = libadios_a-adios_nssi_config.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_6 = libadios_a-adios_flexpath.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE@	libadios_a-read_flexpath.$(OBJEXT)
+ at BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_7 = libadios_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadios_a-adios_nssi.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadios_a-adios_nssi_filter.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadios_a-read_nssi.$(OBJEXT)
- at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__objects_7 = libadios_a-adios_mpi_stagger.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__objects_8 = libadios_a-adios_mpi_stagger.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadios_a-adios_mpi_aggregate.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadios_a-adios_provenance.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadios_a-adios_mpi_cio.$(OBJEXT) \
@@ -253,10 +265,11 @@ am__libadios_a_SOURCES_DIST = core/adios.c core/common_adios.c \
 @BUILD_WRITE_TRUE@	libadios_a-adios_mpi_amr.$(OBJEXT) \
 @BUILD_WRITE_TRUE@	libadios_a-adios_posix.$(OBJEXT) \
 @BUILD_WRITE_TRUE@	libadios_a-adios_posix1.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@	libadios_a-adios_var_merge.$(OBJEXT) \
 @BUILD_WRITE_TRUE@	$(am__objects_1) $(am__objects_2) \
 @BUILD_WRITE_TRUE@	$(am__objects_3) $(am__objects_4) \
 @BUILD_WRITE_TRUE@	$(am__objects_5) $(am__objects_6) \
- at BUILD_WRITE_TRUE@	$(am__objects_7)
+ at BUILD_WRITE_TRUE@	$(am__objects_7) $(am__objects_8)
 am__dist_libadios_a_SOURCES_DIST = nssi/adios_nssi_args.x
 dist_libadios_a_OBJECTS =
 @BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at nodist_libadios_a_OBJECTS = libadios_a-adios_nssi_args.$(OBJEXT)
@@ -295,11 +308,11 @@ am__libadios_nompi_a_SOURCES_DIST = core/adios.c core/common_adios.c \
 	write/adios_dataspaces.c read/read_dataspaces.c \
 	write/adios_dimes.c read/read_dimes.c write/adios_datatap.c \
 	read/read_datatap.c
- at BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_8 = libadios_nompi_a-adios_dataspaces.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_9 = libadios_nompi_a-adios_dataspaces.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE@	libadios_nompi_a-read_dataspaces.$(OBJEXT)
- at BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_9 = libadios_nompi_a-adios_dimes.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_10 = libadios_nompi_a-adios_dimes.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE@	libadios_nompi_a-read_dimes.$(OBJEXT)
- at BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_10 = libadios_nompi_a-adios_datatap.$(OBJEXT) \
+ at BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_11 = libadios_nompi_a-adios_datatap.$(OBJEXT) \
 @BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE@	libadios_nompi_a-read_datatap.$(OBJEXT)
 @BUILD_WRITE_TRUE at am_libadios_nompi_a_OBJECTS =  \
 @BUILD_WRITE_TRUE@	libadios_nompi_a-adios.$(OBJEXT) \
@@ -328,8 +341,8 @@ am__libadios_nompi_a_SOURCES_DIST = core/adios.c core/common_adios.c \
 @BUILD_WRITE_TRUE@	libadios_nompi_a-read_bp_staged1.$(OBJEXT) \
 @BUILD_WRITE_TRUE@	libadios_nompi_a-adios_posix.$(OBJEXT) \
 @BUILD_WRITE_TRUE@	libadios_nompi_a-adios_posix1.$(OBJEXT) \
- at BUILD_WRITE_TRUE@	$(am__objects_8) $(am__objects_9) \
- at BUILD_WRITE_TRUE@	$(am__objects_10)
+ at BUILD_WRITE_TRUE@	$(am__objects_9) $(am__objects_10) \
+ at BUILD_WRITE_TRUE@	$(am__objects_11)
 libadios_nompi_a_OBJECTS = $(am_libadios_nompi_a_OBJECTS)
 libadiosf_a_AR = $(AR) $(ARFLAGS)
 libadiosf_a_LIBADD =
@@ -341,39 +354,34 @@ am__libadiosf_a_SOURCES_DIST = core/adiosf.c core/common_adios.c \
 	core/adios_read_hooks.c core/adios_transport_hooks.c \
 	core/adios_socket.c core/adios_logger.c core/util.c \
 	read/read_bp.c read/read_bp_staged.c read/read_bp_staged1.c \
-	write/adios_mpi.c write/adios_mpi_lustre.c \
-	write/adios_mpi_amr.c write/adios_posix.c write/adios_posix1.c \
+	write/adios_posix.c write/adios_posix1.c \
 	write/adios_dataspaces.c read/read_dataspaces.c \
 	write/adios_dimes.c read/read_dimes.c write/adios_datatap.c \
-	read/read_datatap.c write/adios_phdf5.c write/adios_nc4.c \
-	nssi/adios_nssi_config.c write/adios_nssi.c \
-	nssi/adios_nssi_filter.c read/read_nssi.c \
+	read/read_datatap.c write/adios_flexpath.c \
+	read/read_flexpath.c nssi/adios_nssi_config.c \
+	write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c \
+	write/adios_mpi.c write/adios_mpi_lustre.c \
+	write/adios_mpi_amr.c write/adios_var_merge.c \
+	write/adios_phdf5.c write/adios_nc4.c \
 	write/adios_mpi_stagger.c write/adios_mpi_aggregate.c \
 	write/adios_provenance.c write/adios_mpi_cio.c \
 	write/adios_mpi_stripe.c write/adios_mpi_amr1.c \
 	write/adios_adaptive.c core/adiosf_read.c \
 	core/adiosf_defs_mod.f90 core/adiosf_write_mod.f90 \
 	core/adiosf_read_mod.f90
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_11 = libadiosf_a-adios_dataspaces.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_12 = libadiosf_a-adios_dataspaces.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE@	libadiosf_a-read_dataspaces.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_12 = libadiosf_a-adios_dimes.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_13 = libadiosf_a-adios_dimes.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE@	libadiosf_a-read_dimes.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_13 = libadiosf_a-adios_datatap.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_14 = libadiosf_a-adios_datatap.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE@	libadiosf_a-read_datatap.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_PHDF5_TRUE at am__objects_14 = libadiosf_a-adios_phdf5.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__objects_15 = libadiosf_a-adios_nc4.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_15 = libadiosf_a-adios_flexpath.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE@	libadiosf_a-read_flexpath.$(OBJEXT)
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_16 = libadiosf_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_a-adios_nssi.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_a-adios_nssi_filter.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_a-read_nssi.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__objects_17 = libadiosf_a-adios_mpi_stagger.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_aggregate.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_provenance.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_cio.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_stripe.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_amr1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_adaptive.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_18 = libadiosf_a-adiosf.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_17 = libadiosf_a-adiosf.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-common_adios.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_internals.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_internals_mxml.$(OBJEXT) \
@@ -394,20 +402,32 @@ am__libadiosf_a_SOURCES_DIST = core/adiosf.c core/common_adios.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-read_bp.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-read_bp_staged.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-read_bp_staged1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_mpi.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_mpi_lustre.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_mpi_amr.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_posix.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_posix1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_11) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_12) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_13) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_14) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_15) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_16) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_17)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am_libadiosf_a_OBJECTS =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_16)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_PHDF5_TRUE at am__objects_18 = libadiosf_a-adios_phdf5.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__objects_19 = libadiosf_a-adios_nc4.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__objects_20 = libadiosf_a-adios_mpi_stagger.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_aggregate.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_provenance.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_cio.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_stripe.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_mpi_amr1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_a-adios_adaptive.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_21 = libadiosf_a-adios_mpi.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_mpi_lustre.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_mpi_amr.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adios_var_merge.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_18) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_19) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_20)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am_libadiosf_a_OBJECTS =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_17) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_21) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_a-adiosf_read.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_defs_mod.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_write_mod.$(OBJEXT) \
@@ -417,6 +437,140 @@ dist_libadiosf_a_OBJECTS =
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at nodist_libadiosf_a_OBJECTS = libadiosf_a-adios_nssi_args.$(OBJEXT)
 libadiosf_a_OBJECTS = $(am_libadiosf_a_OBJECTS) \
 	$(dist_libadiosf_a_OBJECTS) $(nodist_libadiosf_a_OBJECTS)
+libadiosf_nompi_a_AR = $(AR) $(ARFLAGS)
+libadiosf_nompi_a_LIBADD =
+am__libadiosf_nompi_a_SOURCES_DIST = core/adiosf.c core/common_adios.c \
+	core/adios_internals.c core/adios_internals_mxml.c \
+	core/buffer.c core/adios_bp_v1.c core/adios_endianness.c \
+	core/futils.c core/adios_error.c core/bp_utils.c \
+	core/common_read.c core/globals.c core/adios_timing.c \
+	core/adios_read_hooks.c core/adios_transport_hooks.c \
+	core/adios_socket.c core/adios_logger.c core/util.c \
+	read/read_bp.c read/read_bp_staged.c read/read_bp_staged1.c \
+	write/adios_posix.c write/adios_posix1.c \
+	write/adios_dataspaces.c read/read_dataspaces.c \
+	write/adios_dimes.c read/read_dimes.c write/adios_datatap.c \
+	read/read_datatap.c write/adios_flexpath.c \
+	read/read_flexpath.c nssi/adios_nssi_config.c \
+	write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c \
+	core/mpidummy.c core/adiosf_read.c core/adiosf_defs_mod.f90 \
+	core/adiosf_write_mod.f90 core/adiosf_read_mod.f90
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_22 = libadiosf_nompi_a-adios_dataspaces.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE@	libadiosf_nompi_a-read_dataspaces.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_23 = libadiosf_nompi_a-adios_dimes.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE@	libadiosf_nompi_a-read_dimes.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_24 = libadiosf_nompi_a-adios_datatap.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE@	libadiosf_nompi_a-read_datatap.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_25 = libadiosf_nompi_a-adios_flexpath.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE@	libadiosf_nompi_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_26 = libadiosf_nompi_a-adios_nssi_config.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_nompi_a-adios_nssi.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_nompi_a-adios_nssi_filter.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_nompi_a-read_nssi.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_27 = libadiosf_nompi_a-adiosf.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-common_adios.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_internals.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_internals_mxml.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-buffer.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_bp_v1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_endianness.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-futils.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_error.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-bp_utils.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-common_read.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-globals.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_timing.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_read_hooks.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_transport_hooks.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_socket.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_logger.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-util.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-read_bp.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-read_bp_staged.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-read_bp_staged1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_posix.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adios_posix1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_22) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_23) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_24) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_25) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_26)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_28 = libadiosf_nompi_a-mpidummy.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am_libadiosf_nompi_a_OBJECTS =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_27) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_28) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_a-adiosf_read.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_defs_mod.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_write_mod.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_read_mod.$(OBJEXT)
+libadiosf_nompi_a_OBJECTS = $(am_libadiosf_nompi_a_OBJECTS)
+libadiosf_nompi_v1_a_AR = $(AR) $(ARFLAGS)
+libadiosf_nompi_v1_a_LIBADD =
+am__libadiosf_nompi_v1_a_SOURCES_DIST = core/adiosf.c \
+	core/common_adios.c core/adios_internals.c \
+	core/adios_internals_mxml.c core/buffer.c core/adios_bp_v1.c \
+	core/adios_endianness.c core/futils.c core/adios_error.c \
+	core/bp_utils.c core/common_read.c core/globals.c \
+	core/adios_timing.c core/adios_read_hooks.c \
+	core/adios_transport_hooks.c core/adios_socket.c \
+	core/adios_logger.c core/util.c read/read_bp.c \
+	read/read_bp_staged.c read/read_bp_staged1.c \
+	write/adios_posix.c write/adios_posix1.c \
+	write/adios_dataspaces.c read/read_dataspaces.c \
+	write/adios_dimes.c read/read_dimes.c write/adios_datatap.c \
+	read/read_datatap.c write/adios_flexpath.c \
+	read/read_flexpath.c nssi/adios_nssi_config.c \
+	write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c \
+	core/mpidummy.c core/adiosf_read_v1.c core/adiosf_defs_mod.f90 \
+	core/adiosf_write_mod.f90
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_29 = libadiosf_nompi_v1_a-adios_dataspaces.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE@	libadiosf_nompi_v1_a-read_dataspaces.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_30 = libadiosf_nompi_v1_a-adios_dimes.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE@	libadiosf_nompi_v1_a-read_dimes.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_31 = libadiosf_nompi_v1_a-adios_datatap.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE@	libadiosf_nompi_v1_a-read_datatap.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_32 = libadiosf_nompi_v1_a-adios_flexpath.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE@	libadiosf_nompi_v1_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_33 = libadiosf_nompi_v1_a-adios_nssi_config.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_nompi_v1_a-adios_nssi.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_nompi_v1_a-adios_nssi_filter.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_nompi_v1_a-read_nssi.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_34 = libadiosf_nompi_v1_a-adiosf.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-common_adios.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_internals.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_internals_mxml.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-buffer.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_bp_v1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_endianness.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-futils.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_error.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-bp_utils.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-common_read.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-globals.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_timing.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_read_hooks.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_transport_hooks.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_socket.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_logger.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-util.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-read_bp.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-read_bp_staged.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-read_bp_staged1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_posix.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adios_posix1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_29) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_30) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_31) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_32) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_33)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_35 = libadiosf_nompi_v1_a-mpidummy.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am_libadiosf_nompi_v1_a_OBJECTS =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_34) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_35) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_nompi_v1_a-adiosf_read_v1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_defs_mod.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_write_mod.$(OBJEXT)
+libadiosf_nompi_v1_a_OBJECTS = $(am_libadiosf_nompi_v1_a_OBJECTS)
 libadiosf_v1_a_AR = $(AR) $(ARFLAGS)
 libadiosf_v1_a_LIBADD =
 am__libadiosf_v1_a_SOURCES_DIST = core/adiosf.c core/common_adios.c \
@@ -427,38 +581,33 @@ am__libadiosf_v1_a_SOURCES_DIST = core/adiosf.c core/common_adios.c \
 	core/adios_read_hooks.c core/adios_transport_hooks.c \
 	core/adios_socket.c core/adios_logger.c core/util.c \
 	read/read_bp.c read/read_bp_staged.c read/read_bp_staged1.c \
-	write/adios_mpi.c write/adios_mpi_lustre.c \
-	write/adios_mpi_amr.c write/adios_posix.c write/adios_posix1.c \
+	write/adios_posix.c write/adios_posix1.c \
 	write/adios_dataspaces.c read/read_dataspaces.c \
 	write/adios_dimes.c read/read_dimes.c write/adios_datatap.c \
-	read/read_datatap.c write/adios_phdf5.c write/adios_nc4.c \
-	nssi/adios_nssi_config.c write/adios_nssi.c \
-	nssi/adios_nssi_filter.c read/read_nssi.c \
+	read/read_datatap.c write/adios_flexpath.c \
+	read/read_flexpath.c nssi/adios_nssi_config.c \
+	write/adios_nssi.c nssi/adios_nssi_filter.c read/read_nssi.c \
+	write/adios_mpi.c write/adios_mpi_lustre.c \
+	write/adios_mpi_amr.c write/adios_var_merge.c \
+	write/adios_phdf5.c write/adios_nc4.c \
 	write/adios_mpi_stagger.c write/adios_mpi_aggregate.c \
 	write/adios_provenance.c write/adios_mpi_cio.c \
 	write/adios_mpi_stripe.c write/adios_mpi_amr1.c \
 	write/adios_adaptive.c core/adiosf_read_v1.c \
 	core/adiosf_defs_mod.f90 core/adiosf_write_mod.f90
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_19 = libadiosf_v1_a-adios_dataspaces.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE at am__objects_36 = libadiosf_v1_a-adios_dataspaces.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATASPACES_TRUE@	libadiosf_v1_a-read_dataspaces.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_20 = libadiosf_v1_a-adios_dimes.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE at am__objects_37 = libadiosf_v1_a-adios_dimes.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DIMES_TRUE@	libadiosf_v1_a-read_dimes.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_21 = libadiosf_v1_a-adios_datatap.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE at am__objects_38 = libadiosf_v1_a-adios_datatap.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_DATATAP_TRUE@	libadiosf_v1_a-read_datatap.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_PHDF5_TRUE at am__objects_22 = libadiosf_v1_a-adios_phdf5.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__objects_23 = libadiosf_v1_a-adios_nc4.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_24 = libadiosf_v1_a-adios_nssi_config.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_39 = libadiosf_v1_a-adios_flexpath.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_FLEXPATH_TRUE@	libadiosf_v1_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at am__objects_40 = libadiosf_v1_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_v1_a-adios_nssi.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_v1_a-adios_nssi_filter.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE@	libadiosf_v1_a-read_nssi.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__objects_25 = libadiosf_v1_a-adios_mpi_stagger.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_aggregate.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_provenance.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_cio.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_stripe.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_amr1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_adaptive.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_26 = libadiosf_v1_a-adiosf.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_41 = libadiosf_v1_a-adiosf.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-common_adios.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_internals.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_internals_mxml.$(OBJEXT) \
@@ -479,20 +628,32 @@ am__libadiosf_v1_a_SOURCES_DIST = core/adiosf.c core/common_adios.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-read_bp.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-read_bp_staged.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-read_bp_staged1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_mpi.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_mpi_lustre.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_mpi_amr.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_posix.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_posix1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_19) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_20) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_21) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_22) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_23) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_24) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_25)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_36) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_37) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_38) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_39) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_40)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_PHDF5_TRUE at am__objects_42 = libadiosf_v1_a-adios_phdf5.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NC4PAR_TRUE at am__objects_43 = libadiosf_v1_a-adios_nc4.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE at am__objects_44 = libadiosf_v1_a-adios_mpi_stagger.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_aggregate.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_provenance.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_cio.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_stripe.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_mpi_amr1.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@RESEARCH_TRANSPORTS_TRUE@	libadiosf_v1_a-adios_adaptive.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am__objects_45 = libadiosf_v1_a-adios_mpi.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_mpi_lustre.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_mpi_amr.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adios_var_merge.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_42) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_43) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_44)
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at am_libadiosf_v1_a_OBJECTS =  \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_26) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_41) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__objects_45) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	libadiosf_v1_a-adiosf_read_v1.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_defs_mod.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	adiosf_write_mod.$(OBJEXT)
@@ -506,12 +667,14 @@ am__libadiosread_a_SOURCES_DIST = core/adios_bp_v1.c \
 	core/adios_logger.c core/util.c read/read_bp.c \
 	read/read_bp_staged.c read/read_bp_staged1.c \
 	read/read_dataspaces.c read/read_dimes.c read/read_datatap.c \
-	nssi/adios_nssi_config.c read/read_nssi.c
- at HAVE_DATASPACES_TRUE@am__objects_27 = libadiosread_a-read_dataspaces.$(OBJEXT)
- at HAVE_DIMES_TRUE@am__objects_28 = libadiosread_a-read_dimes.$(OBJEXT)
- at HAVE_DATATAP_TRUE@am__objects_29 =  \
+	read/read_flexpath.c nssi/adios_nssi_config.c read/read_nssi.c
+ at HAVE_DATASPACES_TRUE@am__objects_46 = libadiosread_a-read_dataspaces.$(OBJEXT)
+ at HAVE_DIMES_TRUE@am__objects_47 = libadiosread_a-read_dimes.$(OBJEXT)
+ at HAVE_DATATAP_TRUE@am__objects_48 =  \
 @HAVE_DATATAP_TRUE@	libadiosread_a-read_datatap.$(OBJEXT)
- at HAVE_NSSI_TRUE@am__objects_30 =  \
+ at HAVE_FLEXPATH_TRUE@am__objects_49 =  \
+ at HAVE_FLEXPATH_TRUE@	libadiosread_a-read_flexpath.$(OBJEXT)
+ at HAVE_NSSI_TRUE@am__objects_50 =  \
 @HAVE_NSSI_TRUE@	libadiosread_a-adios_nssi_config.$(OBJEXT) \
 @HAVE_NSSI_TRUE@	libadiosread_a-read_nssi.$(OBJEXT)
 am_libadiosread_a_OBJECTS = libadiosread_a-adios_bp_v1.$(OBJEXT) \
@@ -527,8 +690,9 @@ am_libadiosread_a_OBJECTS = libadiosread_a-adios_bp_v1.$(OBJEXT) \
 	libadiosread_a-adios_logger.$(OBJEXT) \
 	libadiosread_a-util.$(OBJEXT) libadiosread_a-read_bp.$(OBJEXT) \
 	libadiosread_a-read_bp_staged.$(OBJEXT) \
-	libadiosread_a-read_bp_staged1.$(OBJEXT) $(am__objects_27) \
-	$(am__objects_28) $(am__objects_29) $(am__objects_30)
+	libadiosread_a-read_bp_staged1.$(OBJEXT) $(am__objects_46) \
+	$(am__objects_47) $(am__objects_48) $(am__objects_49) \
+	$(am__objects_50)
 am__dist_libadiosread_a_SOURCES_DIST = nssi/adios_nssi_args.x
 dist_libadiosread_a_OBJECTS =
 @HAVE_NSSI_TRUE at nodist_libadiosread_a_OBJECTS =  \
@@ -544,13 +708,14 @@ am__libadiosread_nompi_a_SOURCES_DIST = core/mpidummy.c \
 	core/adios_read_v1.c core/common_read.c core/adios_logger.c \
 	core/buffer.c core/globals.c core/adios_read_hooks.c \
 	core/util.c read/read_bp.c read/read_dataspaces.c \
-	read/read_dimes.c read/read_datatap.c nssi/adios_nssi_config.c \
-	read/read_nssi.c
- at HAVE_DATASPACES_TRUE@am__objects_31 = libadiosread_nompi_a-read_dataspaces.$(OBJEXT)
- at HAVE_DIMES_TRUE@am__objects_32 =  \
+	read/read_dimes.c read/read_datatap.c read/read_flexpath.c \
+	nssi/adios_nssi_config.c read/read_nssi.c
+ at HAVE_DATASPACES_TRUE@am__objects_51 = libadiosread_nompi_a-read_dataspaces.$(OBJEXT)
+ at HAVE_DIMES_TRUE@am__objects_52 =  \
 @HAVE_DIMES_TRUE@	libadiosread_nompi_a-read_dimes.$(OBJEXT)
- at HAVE_DATATAP_TRUE@am__objects_33 = libadiosread_nompi_a-read_datatap.$(OBJEXT)
- at HAVE_NSSI_TRUE@am__objects_34 = libadiosread_nompi_a-adios_nssi_config.$(OBJEXT) \
+ at HAVE_DATATAP_TRUE@am__objects_53 = libadiosread_nompi_a-read_datatap.$(OBJEXT)
+ at HAVE_FLEXPATH_TRUE@am__objects_54 = libadiosread_nompi_a-read_flexpath.$(OBJEXT)
+ at HAVE_NSSI_TRUE@am__objects_55 = libadiosread_nompi_a-adios_nssi_config.$(OBJEXT) \
 @HAVE_NSSI_TRUE@	libadiosread_nompi_a-read_nssi.$(OBJEXT)
 am_libadiosread_nompi_a_OBJECTS =  \
 	libadiosread_nompi_a-mpidummy.$(OBJEXT) \
@@ -567,8 +732,9 @@ am_libadiosread_nompi_a_OBJECTS =  \
 	libadiosread_nompi_a-globals.$(OBJEXT) \
 	libadiosread_nompi_a-adios_read_hooks.$(OBJEXT) \
 	libadiosread_nompi_a-util.$(OBJEXT) \
-	libadiosread_nompi_a-read_bp.$(OBJEXT) $(am__objects_31) \
-	$(am__objects_32) $(am__objects_33) $(am__objects_34)
+	libadiosread_nompi_a-read_bp.$(OBJEXT) $(am__objects_51) \
+	$(am__objects_52) $(am__objects_53) $(am__objects_54) \
+	$(am__objects_55)
 am__dist_libadiosread_nompi_a_SOURCES_DIST = nssi/adios_nssi_args.x
 dist_libadiosread_nompi_a_OBJECTS =
 @HAVE_NSSI_TRUE at nodist_libadiosread_nompi_a_OBJECTS = libadiosread_nompi_a-adios_nssi_args.$(OBJEXT)
@@ -583,14 +749,16 @@ am__libadiosreadf_a_SOURCES_DIST = core/adios_bp_v1.c \
 	core/adios_read_hooks.c core/adios_logger.c core/util.c \
 	read/read_bp.c read/read_bp_staged.c read/read_bp_staged1.c \
 	read/read_dataspaces.c read/read_dimes.c read/read_datatap.c \
-	nssi/adios_nssi_config.c read/read_nssi.c core/adiosf_read.c \
-	core/adiosf_defs_mod.f90 core/adiosf_read_mod.f90
- at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_35 = libadiosreadf_a-read_dataspaces.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_36 = libadiosreadf_a-read_dimes.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_37 = libadiosreadf_a-read_datatap.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_38 = libadiosreadf_a-adios_nssi_config.$(OBJEXT) \
+	read/read_flexpath.c nssi/adios_nssi_config.c read/read_nssi.c \
+	core/adiosf_read.c core/adiosf_defs_mod.f90 \
+	core/adiosf_read_mod.f90
+ at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_56 = libadiosreadf_a-read_dataspaces.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_57 = libadiosreadf_a-read_dimes.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_58 = libadiosreadf_a-read_datatap.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_59 = libadiosreadf_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_60 = libadiosreadf_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	libadiosreadf_a-read_nssi.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@am__objects_39 =  \
+ at BUILD_FORTRAN_TRUE@am__objects_61 =  \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-adios_bp_v1.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-adios_endianness.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-bp_utils.$(OBJEXT) \
@@ -604,9 +772,10 @@ am__libadiosreadf_a_SOURCES_DIST = core/adios_bp_v1.c \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-read_bp.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-read_bp_staged.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-read_bp_staged1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_35) $(am__objects_36) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_37) $(am__objects_38)
- at BUILD_FORTRAN_TRUE@am_libadiosreadf_a_OBJECTS = $(am__objects_39) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_56) $(am__objects_57) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_58) $(am__objects_59) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_60)
+ at BUILD_FORTRAN_TRUE@am_libadiosreadf_a_OBJECTS = $(am__objects_61) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_a-adiosf_read.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	adiosf_defs_mod.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	adiosf_read_mod.$(OBJEXT)
@@ -623,14 +792,15 @@ am__libadiosreadf_nompi_a_SOURCES_DIST = core/mpidummy.c \
 	core/futils.c core/adios_error.c core/adios_logger.c \
 	core/common_read.c core/globals.c core/adios_read_hooks.c \
 	core/util.c read/read_bp.c read/read_dataspaces.c \
-	read/read_dimes.c read/read_datatap.c nssi/adios_nssi_config.c \
-	read/read_nssi.c core/adiosf_read.c
- at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_40 = libadiosreadf_nompi_a-read_dataspaces.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_41 = libadiosreadf_nompi_a-read_dimes.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_42 = libadiosreadf_nompi_a-read_datatap.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_43 = libadiosreadf_nompi_a-adios_nssi_config.$(OBJEXT) \
+	read/read_dimes.c read/read_datatap.c read/read_flexpath.c \
+	nssi/adios_nssi_config.c read/read_nssi.c core/adiosf_read.c
+ at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_62 = libadiosreadf_nompi_a-read_dataspaces.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_63 = libadiosreadf_nompi_a-read_dimes.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_64 = libadiosreadf_nompi_a-read_datatap.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_65 = libadiosreadf_nompi_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_66 = libadiosreadf_nompi_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	libadiosreadf_nompi_a-read_nssi.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@am__objects_44 =  \
+ at BUILD_FORTRAN_TRUE@am__objects_67 =  \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-mpidummy.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-adios_bp_v1.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-adios_endianness.$(OBJEXT) \
@@ -643,10 +813,11 @@ am__libadiosreadf_nompi_a_SOURCES_DIST = core/mpidummy.c \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-adios_read_hooks.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-util.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-read_bp.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_40) $(am__objects_41) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_42) $(am__objects_43)
+ at BUILD_FORTRAN_TRUE@	$(am__objects_62) $(am__objects_63) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_64) $(am__objects_65) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_66)
 @BUILD_FORTRAN_TRUE at am_libadiosreadf_nompi_a_OBJECTS =  \
- at BUILD_FORTRAN_TRUE@	$(am__objects_44) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_67) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_a-adiosf_read.$(OBJEXT)
 am__dist_libadiosreadf_nompi_a_SOURCES_DIST = nssi/adios_nssi_args.x
 dist_libadiosreadf_nompi_a_OBJECTS =
@@ -661,14 +832,16 @@ am__libadiosreadf_nompi_v1_a_SOURCES_DIST = core/mpidummy.c \
 	core/futils.c core/adios_error.c core/adios_logger.c \
 	core/common_read.c core/globals.c core/adios_read_hooks.c \
 	core/util.c read/read_bp.c read/read_dataspaces.c \
-	read/read_dimes.c read/read_datatap.c nssi/adios_nssi_config.c \
-	read/read_nssi.c core/adiosf_read_v1.c
- at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_45 = libadiosreadf_nompi_v1_a-read_dataspaces.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_46 = libadiosreadf_nompi_v1_a-read_dimes.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_47 = libadiosreadf_nompi_v1_a-read_datatap.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_48 = libadiosreadf_nompi_v1_a-adios_nssi_config.$(OBJEXT) \
+	read/read_dimes.c read/read_datatap.c read/read_flexpath.c \
+	nssi/adios_nssi_config.c read/read_nssi.c \
+	core/adiosf_read_v1.c
+ at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_68 = libadiosreadf_nompi_v1_a-read_dataspaces.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_69 = libadiosreadf_nompi_v1_a-read_dimes.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_70 = libadiosreadf_nompi_v1_a-read_datatap.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_71 = libadiosreadf_nompi_v1_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_72 = libadiosreadf_nompi_v1_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	libadiosreadf_nompi_v1_a-read_nssi.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@am__objects_49 = libadiosreadf_nompi_v1_a-mpidummy.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@am__objects_73 = libadiosreadf_nompi_v1_a-mpidummy.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-adios_bp_v1.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-adios_endianness.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-bp_utils.$(OBJEXT) \
@@ -680,10 +853,11 @@ am__libadiosreadf_nompi_v1_a_SOURCES_DIST = core/mpidummy.c \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-adios_read_hooks.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-util.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-read_bp.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_45) $(am__objects_46) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_47) $(am__objects_48)
+ at BUILD_FORTRAN_TRUE@	$(am__objects_68) $(am__objects_69) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_70) $(am__objects_71) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_72)
 @BUILD_FORTRAN_TRUE at am_libadiosreadf_nompi_v1_a_OBJECTS =  \
- at BUILD_FORTRAN_TRUE@	$(am__objects_49) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_73) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_nompi_v1_a-adiosf_read_v1.$(OBJEXT)
 libadiosreadf_nompi_v1_a_OBJECTS =  \
 	$(am_libadiosreadf_nompi_v1_a_OBJECTS)
@@ -695,14 +869,15 @@ am__libadiosreadf_v1_a_SOURCES_DIST = core/adios_bp_v1.c \
 	core/adios_read_hooks.c core/adios_logger.c core/util.c \
 	read/read_bp.c read/read_bp_staged.c read/read_bp_staged1.c \
 	read/read_dataspaces.c read/read_dimes.c read/read_datatap.c \
-	nssi/adios_nssi_config.c read/read_nssi.c \
+	read/read_flexpath.c nssi/adios_nssi_config.c read/read_nssi.c \
 	core/adiosf_read_v1.c
- at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_50 = libadiosreadf_v1_a-read_dataspaces.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_51 = libadiosreadf_v1_a-read_dimes.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_52 = libadiosreadf_v1_a-read_datatap.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_53 = libadiosreadf_v1_a-adios_nssi_config.$(OBJEXT) \
+ at BUILD_FORTRAN_TRUE@@HAVE_DATASPACES_TRUE at am__objects_74 = libadiosreadf_v1_a-read_dataspaces.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DIMES_TRUE at am__objects_75 = libadiosreadf_v1_a-read_dimes.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_DATATAP_TRUE at am__objects_76 = libadiosreadf_v1_a-read_datatap.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_FLEXPATH_TRUE at am__objects_77 = libadiosreadf_v1_a-read_flexpath.$(OBJEXT)
+ at BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at am__objects_78 = libadiosreadf_v1_a-adios_nssi_config.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE@	libadiosreadf_v1_a-read_nssi.$(OBJEXT)
- at BUILD_FORTRAN_TRUE@am__objects_54 =  \
+ at BUILD_FORTRAN_TRUE@am__objects_79 =  \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-adios_bp_v1.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-adios_endianness.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-bp_utils.$(OBJEXT) \
@@ -716,9 +891,10 @@ am__libadiosreadf_v1_a_SOURCES_DIST = core/adios_bp_v1.c \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-read_bp.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-read_bp_staged.$(OBJEXT) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-read_bp_staged1.$(OBJEXT) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_50) $(am__objects_51) \
- at BUILD_FORTRAN_TRUE@	$(am__objects_52) $(am__objects_53)
- at BUILD_FORTRAN_TRUE@am_libadiosreadf_v1_a_OBJECTS = $(am__objects_54) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_74) $(am__objects_75) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_76) $(am__objects_77) \
+ at BUILD_FORTRAN_TRUE@	$(am__objects_78)
+ at BUILD_FORTRAN_TRUE@am_libadiosreadf_v1_a_OBJECTS = $(am__objects_79) \
 @BUILD_FORTRAN_TRUE@	libadiosreadf_v1_a-adiosf_read_v1.$(OBJEXT)
 libadiosreadf_v1_a_OBJECTS = $(am_libadiosreadf_v1_a_OBJECTS)
 @HAVE_NSSI_TRUE at am__EXEEXT_1 = nssi-staging-server$(EXEEXT) \
@@ -778,6 +954,7 @@ SOURCES = $(libadios_a_SOURCES) $(dist_libadios_a_SOURCES) \
 	$(libadios_internal_nompi_a_SOURCES) \
 	$(libadios_nompi_a_SOURCES) $(libadiosf_a_SOURCES) \
 	$(dist_libadiosf_a_SOURCES) $(nodist_libadiosf_a_SOURCES) \
+	$(libadiosf_nompi_a_SOURCES) $(libadiosf_nompi_v1_a_SOURCES) \
 	$(libadiosf_v1_a_SOURCES) $(libadiosread_a_SOURCES) \
 	$(dist_libadiosread_a_SOURCES) \
 	$(nodist_libadiosread_a_SOURCES) \
@@ -798,6 +975,8 @@ DIST_SOURCES = $(am__libadios_a_SOURCES_DIST) \
 	$(am__libadios_nompi_a_SOURCES_DIST) \
 	$(am__libadiosf_a_SOURCES_DIST) \
 	$(am__dist_libadiosf_a_SOURCES_DIST) \
+	$(am__libadiosf_nompi_a_SOURCES_DIST) \
+	$(am__libadiosf_nompi_v1_a_SOURCES_DIST) \
 	$(am__libadiosf_v1_a_SOURCES_DIST) \
 	$(am__libadiosread_a_SOURCES_DIST) \
 	$(am__dist_libadiosread_a_SOURCES_DIST) \
@@ -867,6 +1046,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -889,6 +1072,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -914,6 +1100,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -970,6 +1157,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -1043,25 +1232,26 @@ METASOURCES = AUTO
 @HAVE_NSSI_TRUE at nssi_coupling_server_LDADD =  \
 @HAVE_NSSI_TRUE@	$(top_builddir)/src/libadios.a \
 @HAVE_NSSI_TRUE@	$(ADIOSLIB_LDADD) $(NSSI_SERVER_LIBS)
-CLEANFILES = $(am__append_24) $(am__append_31) $(am__append_47)
+CLEANFILES = $(am__append_26) $(am__append_34) $(am__append_52)
 include_HEADERS = public/adios.h public/adios_types.h \
-	public/adios_read.h public/adios_error.h public/mpidummy.h \
-	public/adios_read_v1.h public/adios_read_v1_defs.h \
-	public/adios_read_v2.h public/adios_selection.h
-nodist_include_HEADERS = $(am__append_30) $(am__append_46)
+	public/adios_read.h public/adios_error.h public/adios_mpi.h \
+	public/mpidummy.h public/adios_read_v1.h \
+	public/adios_read_v1_defs.h public/adios_read_v2.h \
+	public/adios_selection.h
+nodist_include_HEADERS = $(am__append_33) $(am__append_51)
 lib_LIBRARIES = $(am__append_2) $(am__append_3) libadiosread.a \
-	$(am__append_38) libadiosread_nompi.a $(am__append_54)
-libadiosread_a_CPPFLAGS = $(am__append_36) $(ADIOSLIB_EXTRA_CPPFLAGS) \
-	$(ADIOSREADLIB_CPPFLAGS) $(am__append_62)
-libadiosreadf_a_CPPFLAGS = $(am__append_43) $(am__append_45)
-libadiosread_nompi_a_CPPFLAGS = $(am__append_52) $(MACRODEFFLAG)_NOMPI \
+	$(am__append_42) libadiosread_nompi.a $(am__append_60)
+libadiosread_a_CPPFLAGS = $(am__append_40) $(ADIOSLIB_EXTRA_CPPFLAGS) \
+	$(ADIOSREADLIB_CPPFLAGS) $(am__append_69)
+libadiosreadf_a_CPPFLAGS = $(am__append_48) $(am__append_50)
+libadiosread_nompi_a_CPPFLAGS = $(am__append_58) $(MACRODEFFLAG)_NOMPI \
 	$(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS) \
-	$(am__append_63)
-libadiosreadf_nompi_a_CPPFLAGS = $(am__append_59) $(am__append_61)
-libadiosread_a_CFLAGS = $(am__append_37)
-libadiosreadf_a_CFLAGS = $(am__append_44)
-libadiosread_nompi_a_CFLAGS = $(am__append_53)
-libadiosreadf_nompi_a_CFLAGS = $(am__append_60)
+	$(am__append_70)
+libadiosreadf_nompi_a_CPPFLAGS = $(am__append_66) $(am__append_68)
+libadiosread_a_CFLAGS = $(am__append_41)
+libadiosreadf_a_CFLAGS = $(am__append_49)
+libadiosread_nompi_a_CFLAGS = $(am__append_59)
+libadiosreadf_nompi_a_CFLAGS = $(am__append_67)
 @BUILD_WRITE_TRUE at libadios_a_SOURCES = core/adios.c \
 @BUILD_WRITE_TRUE@	core/common_adios.c core/adios_internals.c \
 @BUILD_WRITE_TRUE@	core/adios_internals_mxml.c core/buffer.c \
@@ -1077,10 +1267,11 @@ libadiosreadf_nompi_a_CFLAGS = $(am__append_60)
 @BUILD_WRITE_TRUE@	read/read_bp_staged.c read/read_bp_staged1.c \
 @BUILD_WRITE_TRUE@	write/adios_mpi.c write/adios_mpi_lustre.c \
 @BUILD_WRITE_TRUE@	write/adios_mpi_amr.c write/adios_posix.c \
- at BUILD_WRITE_TRUE@	write/adios_posix1.c $(am__append_4) \
- at BUILD_WRITE_TRUE@	$(am__append_7) $(am__append_10) \
- at BUILD_WRITE_TRUE@	$(am__append_13) $(am__append_18) \
- at BUILD_WRITE_TRUE@	$(am__append_20) $(am__append_25)
+ at BUILD_WRITE_TRUE@	write/adios_posix1.c write/adios_var_merge.c \
+ at BUILD_WRITE_TRUE@	$(am__append_4) $(am__append_7) \
+ at BUILD_WRITE_TRUE@	$(am__append_10) $(am__append_13) \
+ at BUILD_WRITE_TRUE@	$(am__append_18) $(am__append_20) \
+ at BUILD_WRITE_TRUE@	$(am__append_22) $(am__append_27)
 @BUILD_WRITE_TRUE at libadios_nompi_a_SOURCES = core/adios.c \
 @BUILD_WRITE_TRUE@	core/common_adios.c core/adios_internals.c \
 @BUILD_WRITE_TRUE@	core/adios_internals_mxml.c core/buffer.c \
@@ -1119,56 +1310,82 @@ libadiosreadf_nompi_a_CFLAGS = $(am__append_60)
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	read/read_bp.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	read/read_bp_staged.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	read/read_bp_staged1.c \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_mpi.c \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_mpi_lustre.c \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_mpi_amr.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_posix.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_posix1.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_6) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_9) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_12) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_21) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_24)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at FortranLibMPISources =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_mpi.c \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_mpi_lustre.c \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_mpi_amr.c \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	write/adios_var_merge.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_16) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_19) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_22) \
- at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_26)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(am__append_28)
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at FortranLibSEQSources = core/mpidummy.c
 @BUILD_WRITE_TRUE at libadios_a_CPPFLAGS = $(ADIOSLIB_EXTRA_CPPFLAGS) \
 @BUILD_WRITE_TRUE@	$(ADIOSLIB_CPPFLAGS) $(am__append_15) \
- at BUILD_WRITE_TRUE@	$(am__append_21) $(am__append_27)
+ at BUILD_WRITE_TRUE@	$(am__append_23) $(am__append_29)
 @BUILD_WRITE_TRUE at libadios_a_CFLAGS = $(ADIOSLIB_CFLAGS) 
 @BUILD_WRITE_TRUE at libadios_nompi_a_CPPFLAGS = $(MACRODEFFLAG)_NOMPI \
 @BUILD_WRITE_TRUE@	$(ADIOSLIB_EXTRA_CPPFLAGS) \
- at BUILD_WRITE_TRUE@	$(ADIOSLIB_SEQ_CPPFLAGS) $(am__append_28)
+ at BUILD_WRITE_TRUE@	$(ADIOSLIB_SEQ_CPPFLAGS) $(am__append_30)
 @BUILD_WRITE_TRUE at libadios_nompi_a_CFLAGS = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_SEQ_CFLAGS) 
 @BUILD_WRITE_TRUE at libadiosf_a_CPPFLAGS = $(ADIOSLIB_EXTRA_CPPFLAGS) \
 @BUILD_WRITE_TRUE@	$(ADIOSLIB_CPPFLAGS) $(am__append_17) \
- at BUILD_WRITE_TRUE@	$(am__append_23) $(am__append_29)
+ at BUILD_WRITE_TRUE@	$(am__append_25) $(am__append_31)
 @BUILD_WRITE_TRUE at libadiosf_a_CFLAGS = $(ADIOSLIB_CFLAGS) 
+ at BUILD_WRITE_TRUE@libadiosf_nompi_a_CPPFLAGS = $(MACRODEFFLAG)_NOMPI \
+ at BUILD_WRITE_TRUE@	$(ADIOSLIB_EXTRA_CPPFLAGS) \
+ at BUILD_WRITE_TRUE@	$(ADIOSLIB_SEQ_CPPFLAGS) $(am__append_32)
+ at BUILD_WRITE_TRUE@libadiosf_nompi_a_CFLAGS = $(MACRODEFFLAG)_NOMPI $(ADIOSLIB_SEQ_CFLAGS) 
 @BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at dist_libadios_a_SOURCES = nssi/adios_nssi_args.x
 @BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at nodist_libadios_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at nodist_libadiosf_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@@HAVE_NSSI_TRUE at dist_libadiosf_a_SOURCES = nssi/adios_nssi_args.x
 
-# Build two different Fortran library, for the two read APIs
+# Build four different Fortran libraries, for the two read APIs
+# and their sequential versions
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_a_SOURCES =  \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibSources) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibMPISources) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_read.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_defs_mod.f90 \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_write_mod.f90 \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_read_mod.f90
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_v1_a_SOURCES =  \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibSources) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibMPISources) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_read_v1.c \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_defs_mod.f90 \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_write_mod.f90
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_nompi_a_SOURCES =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibSources) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibSEQSources) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_read.c \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_defs_mod.f90 \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_write_mod.f90 \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_read_mod.f90
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_nompi_v1_a_SOURCES =  \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibSources) \
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	$(FortranLibSEQSources) \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_read_v1.c \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_defs_mod.f90 \
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE@	core/adiosf_write_mod.f90
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_v1_a_CPPFLAGS = $(libadiosf_a_CPPFLAGS) 
 @BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_v1_a_CFLAGS = $(libadiosf_a_CFLAGS) 
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_nompi_v1_a_CPPFLAGS = $(libadiosf_nompi_a_CPPFLAGS) 
+ at BUILD_FORTRAN_TRUE@@BUILD_WRITE_TRUE at libadiosf_nompi_v1_a_CFLAGS = $(libadiosf_nompi_a_CFLAGS) 
 libadiosread_a_SOURCES = core/adios_bp_v1.c core/adios_endianness.c \
 	core/bp_utils.c core/futils.c core/adios_error.c \
 	core/adios_read.c core/adios_read_v1.c core/common_read.c \
 	core/globals.c core/adios_read_hooks.c core/adios_logger.c \
 	core/util.c read/read_bp.c read/read_bp_staged.c \
-	read/read_bp_staged1.c $(am__append_32) $(am__append_33) \
-	$(am__append_34) $(am__append_35)
+	read/read_bp_staged1.c $(am__append_35) $(am__append_36) \
+	$(am__append_37) $(am__append_38) $(am__append_39)
 @HAVE_NSSI_TRUE at dist_libadiosread_a_SOURCES = nssi/adios_nssi_args.x
 @HAVE_NSSI_TRUE at nodist_libadiosread_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
 @BUILD_FORTRAN_TRUE at FortranReadLibSource = core/adios_bp_v1.c \
@@ -1178,9 +1395,9 @@ libadiosread_a_SOURCES = core/adios_bp_v1.c core/adios_endianness.c \
 @BUILD_FORTRAN_TRUE@	core/adios_read_hooks.c \
 @BUILD_FORTRAN_TRUE@	core/adios_logger.c core/util.c \
 @BUILD_FORTRAN_TRUE@	read/read_bp.c read/read_bp_staged.c \
- at BUILD_FORTRAN_TRUE@	read/read_bp_staged1.c $(am__append_39) \
- at BUILD_FORTRAN_TRUE@	$(am__append_40) $(am__append_41) \
- at BUILD_FORTRAN_TRUE@	$(am__append_42)
+ at BUILD_FORTRAN_TRUE@	read/read_bp_staged1.c $(am__append_43) \
+ at BUILD_FORTRAN_TRUE@	$(am__append_44) $(am__append_45) \
+ at BUILD_FORTRAN_TRUE@	$(am__append_46) $(am__append_47)
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at dist_libadiosreadf_a_SOURCES = nssi/adios_nssi_args.x
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at nodist_libadiosreadf_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
 @BUILD_FORTRAN_TRUE at libadiosreadf_a_SOURCES = $(FortranReadLibSource) \
@@ -1195,8 +1412,8 @@ libadiosread_nompi_a_SOURCES = core/mpidummy.c core/adios_bp_v1.c \
 	core/adios_error.c core/adios_read.c core/adios_read_v1.c \
 	core/common_read.c core/adios_logger.c core/buffer.c \
 	core/globals.c core/adios_read_hooks.c core/util.c \
-	read/read_bp.c $(am__append_48) $(am__append_49) \
-	$(am__append_50) $(am__append_51)
+	read/read_bp.c $(am__append_53) $(am__append_54) \
+	$(am__append_55) $(am__append_56) $(am__append_57)
 @HAVE_NSSI_TRUE at dist_libadiosread_nompi_a_SOURCES = nssi/adios_nssi_args.x
 @HAVE_NSSI_TRUE at nodist_libadiosread_nompi_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
 @BUILD_FORTRAN_TRUE at FortranReadSeqLibSource = core/mpidummy.c \
@@ -1205,9 +1422,9 @@ libadiosread_nompi_a_SOURCES = core/mpidummy.c core/adios_bp_v1.c \
 @BUILD_FORTRAN_TRUE@	core/adios_error.c core/adios_logger.c \
 @BUILD_FORTRAN_TRUE@	core/common_read.c core/globals.c \
 @BUILD_FORTRAN_TRUE@	core/adios_read_hooks.c core/util.c \
- at BUILD_FORTRAN_TRUE@	read/read_bp.c $(am__append_55) \
- at BUILD_FORTRAN_TRUE@	$(am__append_56) $(am__append_57) \
- at BUILD_FORTRAN_TRUE@	$(am__append_58)
+ at BUILD_FORTRAN_TRUE@	read/read_bp.c $(am__append_61) \
+ at BUILD_FORTRAN_TRUE@	$(am__append_62) $(am__append_63) \
+ at BUILD_FORTRAN_TRUE@	$(am__append_64) $(am__append_65)
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at dist_libadiosreadf_nompi_a_SOURCES = nssi/adios_nssi_args.x
 @BUILD_FORTRAN_TRUE@@HAVE_NSSI_TRUE at nodist_libadiosreadf_nompi_a_SOURCES = adios_nssi_args.c adios_nssi_args.h
 @BUILD_FORTRAN_TRUE at libadiosreadf_nompi_a_SOURCES = $(FortranReadSeqLibSource) core/adiosf_read.c
@@ -1255,14 +1472,14 @@ EXTRA_DIST = core/adios_bp_v1.h core/adios_endianness.h \
              core/adios_transport_hooks.h \
              core/bp_types.h core/bp_utils.h core/buffer.h core/common_adios.h \
              core/common_read.h core/futils.h core/globals.h core/ds_metadata.h \
-             core/util.h \
+             core/util.h core/flexpath.h \
              nssi/adios_nssi_config.h nssi/aggregation.h nssi/io_timer.h
 
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .cpp .f90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -1287,9 +1504,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-libLIBRARIES: $(lib_LIBRARIES)
@@ -1343,6 +1560,14 @@ libadiosf.a: $(libadiosf_a_OBJECTS) $(libadiosf_a_DEPENDENCIES)
 	-rm -f libadiosf.a
 	$(libadiosf_a_AR) libadiosf.a $(libadiosf_a_OBJECTS) $(libadiosf_a_LIBADD)
 	$(RANLIB) libadiosf.a
+libadiosf_nompi.a: $(libadiosf_nompi_a_OBJECTS) $(libadiosf_nompi_a_DEPENDENCIES) 
+	-rm -f libadiosf_nompi.a
+	$(libadiosf_nompi_a_AR) libadiosf_nompi.a $(libadiosf_nompi_a_OBJECTS) $(libadiosf_nompi_a_LIBADD)
+	$(RANLIB) libadiosf_nompi.a
+libadiosf_nompi_v1.a: $(libadiosf_nompi_v1_a_OBJECTS) $(libadiosf_nompi_v1_a_DEPENDENCIES) 
+	-rm -f libadiosf_nompi_v1.a
+	$(libadiosf_nompi_v1_a_AR) libadiosf_nompi_v1.a $(libadiosf_nompi_v1_a_OBJECTS) $(libadiosf_nompi_v1_a_LIBADD)
+	$(RANLIB) libadiosf_nompi_v1.a
 libadiosf_v1.a: $(libadiosf_v1_a_OBJECTS) $(libadiosf_v1_a_DEPENDENCIES) 
 	-rm -f libadiosf_v1.a
 	$(libadiosf_v1_a_AR) libadiosf_v1.a $(libadiosf_v1_a_OBJECTS) $(libadiosf_v1_a_LIBADD)
@@ -1604,6 +1829,12 @@ libadios_a-adios_posix1.o: write/adios_posix1.c
 libadios_a-adios_posix1.obj: write/adios_posix1.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_posix1.obj `if test -f 'write/adios_posix1.c'; then $(CYGPATH_W) 'write/adios_posix1.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_posix1.c'; fi`
 
+libadios_a-adios_var_merge.o: write/adios_var_merge.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_var_merge.o `test -f 'write/adios_var_merge.c' || echo '$(srcdir)/'`write/adios_var_merge.c
+
+libadios_a-adios_var_merge.obj: write/adios_var_merge.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_var_merge.obj `if test -f 'write/adios_var_merge.c'; then $(CYGPATH_W) 'write/adios_var_merge.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_var_merge.c'; fi`
+
 libadios_a-adios_dataspaces.o: write/adios_dataspaces.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_dataspaces.o `test -f 'write/adios_dataspaces.c' || echo '$(srcdir)/'`write/adios_dataspaces.c
 
@@ -1652,6 +1883,18 @@ libadios_a-adios_nc4.o: write/adios_nc4.c
 libadios_a-adios_nc4.obj: write/adios_nc4.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_nc4.obj `if test -f 'write/adios_nc4.c'; then $(CYGPATH_W) 'write/adios_nc4.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nc4.c'; fi`
 
+libadios_a-adios_flexpath.o: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_flexpath.o `test -f 'write/adios_flexpath.c' || echo '$(srcdir)/'`write/adios_flexpath.c
+
+libadios_a-adios_flexpath.obj: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_flexpath.obj `if test -f 'write/adios_flexpath.c'; then $(CYGPATH_W) 'write/adios_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_flexpath.c'; fi`
+
+libadios_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadios_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadios_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadios_a_CPPFLAGS) $(CPPFLAGS) $(libadios_a_CFLAGS) $(CFLAGS) -c -o libadios_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
@@ -2120,24 +2363,6 @@ libadiosf_a-read_bp_staged1.o: read/read_bp_staged1.c
 libadiosf_a-read_bp_staged1.obj: read/read_bp_staged1.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-read_bp_staged1.obj `if test -f 'read/read_bp_staged1.c'; then $(CYGPATH_W) 'read/read_bp_staged1.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp_staged1.c'; fi`
 
-libadiosf_a-adios_mpi.o: write/adios_mpi.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi.o `test -f 'write/adios_mpi.c' || echo '$(srcdir)/'`write/adios_mpi.c
-
-libadiosf_a-adios_mpi.obj: write/adios_mpi.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi.obj `if test -f 'write/adios_mpi.c'; then $(CYGPATH_W) 'write/adios_mpi.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi.c'; fi`
-
-libadiosf_a-adios_mpi_lustre.o: write/adios_mpi_lustre.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_lustre.o `test -f 'write/adios_mpi_lustre.c' || echo '$(srcdir)/'`write/adios_mpi_lustre.c
-
-libadiosf_a-adios_mpi_lustre.obj: write/adios_mpi_lustre.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_lustre.obj `if test -f 'write/adios_mpi_lustre.c'; then $(CYGPATH_W) 'write/adios_mpi_lustre.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_lustre.c'; fi`
-
-libadiosf_a-adios_mpi_amr.o: write/adios_mpi_amr.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_amr.o `test -f 'write/adios_mpi_amr.c' || echo '$(srcdir)/'`write/adios_mpi_amr.c
-
-libadiosf_a-adios_mpi_amr.obj: write/adios_mpi_amr.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_amr.obj `if test -f 'write/adios_mpi_amr.c'; then $(CYGPATH_W) 'write/adios_mpi_amr.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_amr.c'; fi`
-
 libadiosf_a-adios_posix.o: write/adios_posix.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_posix.o `test -f 'write/adios_posix.c' || echo '$(srcdir)/'`write/adios_posix.c
 
@@ -2186,17 +2411,17 @@ libadiosf_a-read_datatap.o: read/read_datatap.c
 libadiosf_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
-libadiosf_a-adios_phdf5.o: write/adios_phdf5.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_phdf5.o `test -f 'write/adios_phdf5.c' || echo '$(srcdir)/'`write/adios_phdf5.c
+libadiosf_a-adios_flexpath.o: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_flexpath.o `test -f 'write/adios_flexpath.c' || echo '$(srcdir)/'`write/adios_flexpath.c
 
-libadiosf_a-adios_phdf5.obj: write/adios_phdf5.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_phdf5.obj `if test -f 'write/adios_phdf5.c'; then $(CYGPATH_W) 'write/adios_phdf5.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_phdf5.c'; fi`
+libadiosf_a-adios_flexpath.obj: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_flexpath.obj `if test -f 'write/adios_flexpath.c'; then $(CYGPATH_W) 'write/adios_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_flexpath.c'; fi`
 
-libadiosf_a-adios_nc4.o: write/adios_nc4.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_nc4.o `test -f 'write/adios_nc4.c' || echo '$(srcdir)/'`write/adios_nc4.c
+libadiosf_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
 
-libadiosf_a-adios_nc4.obj: write/adios_nc4.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_nc4.obj `if test -f 'write/adios_nc4.c'; then $(CYGPATH_W) 'write/adios_nc4.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nc4.c'; fi`
+libadiosf_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
 
 libadiosf_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
@@ -2222,6 +2447,42 @@ libadiosf_a-read_nssi.o: read/read_nssi.c
 libadiosf_a-read_nssi.obj: read/read_nssi.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-read_nssi.obj `if test -f 'read/read_nssi.c'; then $(CYGPATH_W) 'read/read_nssi.c'; else $(CYGPATH_W) '$(srcdir)/read/read_nssi.c'; fi`
 
+libadiosf_a-adios_mpi.o: write/adios_mpi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi.o `test -f 'write/adios_mpi.c' || echo '$(srcdir)/'`write/adios_mpi.c
+
+libadiosf_a-adios_mpi.obj: write/adios_mpi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi.obj `if test -f 'write/adios_mpi.c'; then $(CYGPATH_W) 'write/adios_mpi.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi.c'; fi`
+
+libadiosf_a-adios_mpi_lustre.o: write/adios_mpi_lustre.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_lustre.o `test -f 'write/adios_mpi_lustre.c' || echo '$(srcdir)/'`write/adios_mpi_lustre.c
+
+libadiosf_a-adios_mpi_lustre.obj: write/adios_mpi_lustre.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_lustre.obj `if test -f 'write/adios_mpi_lustre.c'; then $(CYGPATH_W) 'write/adios_mpi_lustre.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_lustre.c'; fi`
+
+libadiosf_a-adios_mpi_amr.o: write/adios_mpi_amr.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_amr.o `test -f 'write/adios_mpi_amr.c' || echo '$(srcdir)/'`write/adios_mpi_amr.c
+
+libadiosf_a-adios_mpi_amr.obj: write/adios_mpi_amr.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_amr.obj `if test -f 'write/adios_mpi_amr.c'; then $(CYGPATH_W) 'write/adios_mpi_amr.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_amr.c'; fi`
+
+libadiosf_a-adios_var_merge.o: write/adios_var_merge.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_var_merge.o `test -f 'write/adios_var_merge.c' || echo '$(srcdir)/'`write/adios_var_merge.c
+
+libadiosf_a-adios_var_merge.obj: write/adios_var_merge.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_var_merge.obj `if test -f 'write/adios_var_merge.c'; then $(CYGPATH_W) 'write/adios_var_merge.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_var_merge.c'; fi`
+
+libadiosf_a-adios_phdf5.o: write/adios_phdf5.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_phdf5.o `test -f 'write/adios_phdf5.c' || echo '$(srcdir)/'`write/adios_phdf5.c
+
+libadiosf_a-adios_phdf5.obj: write/adios_phdf5.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_phdf5.obj `if test -f 'write/adios_phdf5.c'; then $(CYGPATH_W) 'write/adios_phdf5.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_phdf5.c'; fi`
+
+libadiosf_a-adios_nc4.o: write/adios_nc4.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_nc4.o `test -f 'write/adios_nc4.c' || echo '$(srcdir)/'`write/adios_nc4.c
+
+libadiosf_a-adios_nc4.obj: write/adios_nc4.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_nc4.obj `if test -f 'write/adios_nc4.c'; then $(CYGPATH_W) 'write/adios_nc4.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nc4.c'; fi`
+
 libadiosf_a-adios_mpi_stagger.o: write/adios_mpi_stagger.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_mpi_stagger.o `test -f 'write/adios_mpi_stagger.c' || echo '$(srcdir)/'`write/adios_mpi_stagger.c
 
@@ -2276,6 +2537,450 @@ libadiosf_a-adios_nssi_args.o: adios_nssi_args.c
 libadiosf_a-adios_nssi_args.obj: adios_nssi_args.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_a_CFLAGS) $(CFLAGS) -c -o libadiosf_a-adios_nssi_args.obj `if test -f 'adios_nssi_args.c'; then $(CYGPATH_W) 'adios_nssi_args.c'; else $(CYGPATH_W) '$(srcdir)/adios_nssi_args.c'; fi`
 
+libadiosf_nompi_a-adiosf.o: core/adiosf.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adiosf.o `test -f 'core/adiosf.c' || echo '$(srcdir)/'`core/adiosf.c
+
+libadiosf_nompi_a-adiosf.obj: core/adiosf.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adiosf.obj `if test -f 'core/adiosf.c'; then $(CYGPATH_W) 'core/adiosf.c'; else $(CYGPATH_W) '$(srcdir)/core/adiosf.c'; fi`
+
+libadiosf_nompi_a-common_adios.o: core/common_adios.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-common_adios.o `test -f 'core/common_adios.c' || echo '$(srcdir)/'`core/common_adios.c
+
+libadiosf_nompi_a-common_adios.obj: core/common_adios.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-common_adios.obj `if test -f 'core/common_adios.c'; then $(CYGPATH_W) 'core/common_adios.c'; else $(CYGPATH_W) '$(srcdir)/core/common_adios.c'; fi`
+
+libadiosf_nompi_a-adios_internals.o: core/adios_internals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_internals.o `test -f 'core/adios_internals.c' || echo '$(srcdir)/'`core/adios_internals.c
+
+libadiosf_nompi_a-adios_internals.obj: core/adios_internals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_internals.obj `if test -f 'core/adios_internals.c'; then $(CYGPATH_W) 'core/adios_internals.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_internals.c'; fi`
+
+libadiosf_nompi_a-adios_internals_mxml.o: core/adios_internals_mxml.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_internals_mxml.o `test -f 'core/adios_internals_mxml.c' || echo '$(srcdir)/'`core/adios_internals_mxml.c
+
+libadiosf_nompi_a-adios_internals_mxml.obj: core/adios_internals_mxml.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_internals_mxml.obj `if test -f 'core/adios_internals_mxml.c'; then $(CYGPATH_W) 'core/adios_internals_mxml.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_internals_mxml.c'; fi`
+
+libadiosf_nompi_a-buffer.o: core/buffer.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-buffer.o `test -f 'core/buffer.c' || echo '$(srcdir)/'`core/buffer.c
+
+libadiosf_nompi_a-buffer.obj: core/buffer.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-buffer.obj `if test -f 'core/buffer.c'; then $(CYGPATH_W) 'core/buffer.c'; else $(CYGPATH_W) '$(srcdir)/core/buffer.c'; fi`
+
+libadiosf_nompi_a-adios_bp_v1.o: core/adios_bp_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_bp_v1.o `test -f 'core/adios_bp_v1.c' || echo '$(srcdir)/'`core/adios_bp_v1.c
+
+libadiosf_nompi_a-adios_bp_v1.obj: core/adios_bp_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_bp_v1.obj `if test -f 'core/adios_bp_v1.c'; then $(CYGPATH_W) 'core/adios_bp_v1.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_bp_v1.c'; fi`
+
+libadiosf_nompi_a-adios_endianness.o: core/adios_endianness.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_endianness.o `test -f 'core/adios_endianness.c' || echo '$(srcdir)/'`core/adios_endianness.c
+
+libadiosf_nompi_a-adios_endianness.obj: core/adios_endianness.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_endianness.obj `if test -f 'core/adios_endianness.c'; then $(CYGPATH_W) 'core/adios_endianness.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_endianness.c'; fi`
+
+libadiosf_nompi_a-futils.o: core/futils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-futils.o `test -f 'core/futils.c' || echo '$(srcdir)/'`core/futils.c
+
+libadiosf_nompi_a-futils.obj: core/futils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-futils.obj `if test -f 'core/futils.c'; then $(CYGPATH_W) 'core/futils.c'; else $(CYGPATH_W) '$(srcdir)/core/futils.c'; fi`
+
+libadiosf_nompi_a-adios_error.o: core/adios_error.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_error.o `test -f 'core/adios_error.c' || echo '$(srcdir)/'`core/adios_error.c
+
+libadiosf_nompi_a-adios_error.obj: core/adios_error.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_error.obj `if test -f 'core/adios_error.c'; then $(CYGPATH_W) 'core/adios_error.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_error.c'; fi`
+
+libadiosf_nompi_a-bp_utils.o: core/bp_utils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-bp_utils.o `test -f 'core/bp_utils.c' || echo '$(srcdir)/'`core/bp_utils.c
+
+libadiosf_nompi_a-bp_utils.obj: core/bp_utils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-bp_utils.obj `if test -f 'core/bp_utils.c'; then $(CYGPATH_W) 'core/bp_utils.c'; else $(CYGPATH_W) '$(srcdir)/core/bp_utils.c'; fi`
+
+libadiosf_nompi_a-common_read.o: core/common_read.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-common_read.o `test -f 'core/common_read.c' || echo '$(srcdir)/'`core/common_read.c
+
+libadiosf_nompi_a-common_read.obj: core/common_read.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-common_read.obj `if test -f 'core/common_read.c'; then $(CYGPATH_W) 'core/common_read.c'; else $(CYGPATH_W) '$(srcdir)/core/common_read.c'; fi`
+
+libadiosf_nompi_a-globals.o: core/globals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-globals.o `test -f 'core/globals.c' || echo '$(srcdir)/'`core/globals.c
+
+libadiosf_nompi_a-globals.obj: core/globals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-globals.obj `if test -f 'core/globals.c'; then $(CYGPATH_W) 'core/globals.c'; else $(CYGPATH_W) '$(srcdir)/core/globals.c'; fi`
+
+libadiosf_nompi_a-adios_timing.o: core/adios_timing.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_timing.o `test -f 'core/adios_timing.c' || echo '$(srcdir)/'`core/adios_timing.c
+
+libadiosf_nompi_a-adios_timing.obj: core/adios_timing.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_timing.obj `if test -f 'core/adios_timing.c'; then $(CYGPATH_W) 'core/adios_timing.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_timing.c'; fi`
+
+libadiosf_nompi_a-adios_read_hooks.o: core/adios_read_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_read_hooks.o `test -f 'core/adios_read_hooks.c' || echo '$(srcdir)/'`core/adios_read_hooks.c
+
+libadiosf_nompi_a-adios_read_hooks.obj: core/adios_read_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_read_hooks.obj `if test -f 'core/adios_read_hooks.c'; then $(CYGPATH_W) 'core/adios_read_hooks.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_read_hooks.c'; fi`
+
+libadiosf_nompi_a-adios_transport_hooks.o: core/adios_transport_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_transport_hooks.o `test -f 'core/adios_transport_hooks.c' || echo '$(srcdir)/'`core/adios_transport_hooks.c
+
+libadiosf_nompi_a-adios_transport_hooks.obj: core/adios_transport_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_transport_hooks.obj `if test -f 'core/adios_transport_hooks.c'; then $(CYGPATH_W) 'core/adios_transport_hooks.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_transport_hooks.c'; fi`
+
+libadiosf_nompi_a-adios_socket.o: core/adios_socket.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_socket.o `test -f 'core/adios_socket.c' || echo '$(srcdir)/'`core/adios_socket.c
+
+libadiosf_nompi_a-adios_socket.obj: core/adios_socket.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_socket.obj `if test -f 'core/adios_socket.c'; then $(CYGPATH_W) 'core/adios_socket.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_socket.c'; fi`
+
+libadiosf_nompi_a-adios_logger.o: core/adios_logger.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_logger.o `test -f 'core/adios_logger.c' || echo '$(srcdir)/'`core/adios_logger.c
+
+libadiosf_nompi_a-adios_logger.obj: core/adios_logger.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_logger.obj `if test -f 'core/adios_logger.c'; then $(CYGPATH_W) 'core/adios_logger.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_logger.c'; fi`
+
+libadiosf_nompi_a-util.o: core/util.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-util.o `test -f 'core/util.c' || echo '$(srcdir)/'`core/util.c
+
+libadiosf_nompi_a-util.obj: core/util.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-util.obj `if test -f 'core/util.c'; then $(CYGPATH_W) 'core/util.c'; else $(CYGPATH_W) '$(srcdir)/core/util.c'; fi`
+
+libadiosf_nompi_a-read_bp.o: read/read_bp.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_bp.o `test -f 'read/read_bp.c' || echo '$(srcdir)/'`read/read_bp.c
+
+libadiosf_nompi_a-read_bp.obj: read/read_bp.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_bp.obj `if test -f 'read/read_bp.c'; then $(CYGPATH_W) 'read/read_bp.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp.c'; fi`
+
+libadiosf_nompi_a-read_bp_staged.o: read/read_bp_staged.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_bp_staged.o `test -f 'read/read_bp_staged.c' || echo '$(srcdir)/'`read/read_bp_staged.c
+
+libadiosf_nompi_a-read_bp_staged.obj: read/read_bp_staged.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_bp_staged.obj `if test -f 'read/read_bp_staged.c'; then $(CYGPATH_W) 'read/read_bp_staged.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp_staged.c'; fi`
+
+libadiosf_nompi_a-read_bp_staged1.o: read/read_bp_staged1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_bp_staged1.o `test -f 'read/read_bp_staged1.c' || echo '$(srcdir)/'`read/read_bp_staged1.c
+
+libadiosf_nompi_a-read_bp_staged1.obj: read/read_bp_staged1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_bp_staged1.obj `if test -f 'read/read_bp_staged1.c'; then $(CYGPATH_W) 'read/read_bp_staged1.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp_staged1.c'; fi`
+
+libadiosf_nompi_a-adios_posix.o: write/adios_posix.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_posix.o `test -f 'write/adios_posix.c' || echo '$(srcdir)/'`write/adios_posix.c
+
+libadiosf_nompi_a-adios_posix.obj: write/adios_posix.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_posix.obj `if test -f 'write/adios_posix.c'; then $(CYGPATH_W) 'write/adios_posix.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_posix.c'; fi`
+
+libadiosf_nompi_a-adios_posix1.o: write/adios_posix1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_posix1.o `test -f 'write/adios_posix1.c' || echo '$(srcdir)/'`write/adios_posix1.c
+
+libadiosf_nompi_a-adios_posix1.obj: write/adios_posix1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_posix1.obj `if test -f 'write/adios_posix1.c'; then $(CYGPATH_W) 'write/adios_posix1.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_posix1.c'; fi`
+
+libadiosf_nompi_a-adios_dataspaces.o: write/adios_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_dataspaces.o `test -f 'write/adios_dataspaces.c' || echo '$(srcdir)/'`write/adios_dataspaces.c
+
+libadiosf_nompi_a-adios_dataspaces.obj: write/adios_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_dataspaces.obj `if test -f 'write/adios_dataspaces.c'; then $(CYGPATH_W) 'write/adios_dataspaces.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_dataspaces.c'; fi`
+
+libadiosf_nompi_a-read_dataspaces.o: read/read_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_dataspaces.o `test -f 'read/read_dataspaces.c' || echo '$(srcdir)/'`read/read_dataspaces.c
+
+libadiosf_nompi_a-read_dataspaces.obj: read/read_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_dataspaces.obj `if test -f 'read/read_dataspaces.c'; then $(CYGPATH_W) 'read/read_dataspaces.c'; else $(CYGPATH_W) '$(srcdir)/read/read_dataspaces.c'; fi`
+
+libadiosf_nompi_a-adios_dimes.o: write/adios_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_dimes.o `test -f 'write/adios_dimes.c' || echo '$(srcdir)/'`write/adios_dimes.c
+
+libadiosf_nompi_a-adios_dimes.obj: write/adios_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_dimes.obj `if test -f 'write/adios_dimes.c'; then $(CYGPATH_W) 'write/adios_dimes.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_dimes.c'; fi`
+
+libadiosf_nompi_a-read_dimes.o: read/read_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_dimes.o `test -f 'read/read_dimes.c' || echo '$(srcdir)/'`read/read_dimes.c
+
+libadiosf_nompi_a-read_dimes.obj: read/read_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_dimes.obj `if test -f 'read/read_dimes.c'; then $(CYGPATH_W) 'read/read_dimes.c'; else $(CYGPATH_W) '$(srcdir)/read/read_dimes.c'; fi`
+
+libadiosf_nompi_a-adios_datatap.o: write/adios_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_datatap.o `test -f 'write/adios_datatap.c' || echo '$(srcdir)/'`write/adios_datatap.c
+
+libadiosf_nompi_a-adios_datatap.obj: write/adios_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_datatap.obj `if test -f 'write/adios_datatap.c'; then $(CYGPATH_W) 'write/adios_datatap.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_datatap.c'; fi`
+
+libadiosf_nompi_a-read_datatap.o: read/read_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_datatap.o `test -f 'read/read_datatap.c' || echo '$(srcdir)/'`read/read_datatap.c
+
+libadiosf_nompi_a-read_datatap.obj: read/read_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
+
+libadiosf_nompi_a-adios_flexpath.o: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_flexpath.o `test -f 'write/adios_flexpath.c' || echo '$(srcdir)/'`write/adios_flexpath.c
+
+libadiosf_nompi_a-adios_flexpath.obj: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_flexpath.obj `if test -f 'write/adios_flexpath.c'; then $(CYGPATH_W) 'write/adios_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_flexpath.c'; fi`
+
+libadiosf_nompi_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosf_nompi_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
+libadiosf_nompi_a-adios_nssi_config.o: nssi/adios_nssi_config.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
+
+libadiosf_nompi_a-adios_nssi_config.obj: nssi/adios_nssi_config.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_nssi_config.obj `if test -f 'nssi/adios_nssi_config.c'; then $(CYGPATH_W) 'nssi/adios_nssi_config.c'; else $(CYGPATH_W) '$(srcdir)/nssi/adios_nssi_config.c'; fi`
+
+libadiosf_nompi_a-adios_nssi.o: write/adios_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_nssi.o `test -f 'write/adios_nssi.c' || echo '$(srcdir)/'`write/adios_nssi.c
+
+libadiosf_nompi_a-adios_nssi.obj: write/adios_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_nssi.obj `if test -f 'write/adios_nssi.c'; then $(CYGPATH_W) 'write/adios_nssi.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nssi.c'; fi`
+
+libadiosf_nompi_a-adios_nssi_filter.o: nssi/adios_nssi_filter.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_nssi_filter.o `test -f 'nssi/adios_nssi_filter.c' || echo '$(srcdir)/'`nssi/adios_nssi_filter.c
+
+libadiosf_nompi_a-adios_nssi_filter.obj: nssi/adios_nssi_filter.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adios_nssi_filter.obj `if test -f 'nssi/adios_nssi_filter.c'; then $(CYGPATH_W) 'nssi/adios_nssi_filter.c'; else $(CYGPATH_W) '$(srcdir)/nssi/adios_nssi_filter.c'; fi`
+
+libadiosf_nompi_a-read_nssi.o: read/read_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_nssi.o `test -f 'read/read_nssi.c' || echo '$(srcdir)/'`read/read_nssi.c
+
+libadiosf_nompi_a-read_nssi.obj: read/read_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-read_nssi.obj `if test -f 'read/read_nssi.c'; then $(CYGPATH_W) 'read/read_nssi.c'; else $(CYGPATH_W) '$(srcdir)/read/read_nssi.c'; fi`
+
+libadiosf_nompi_a-mpidummy.o: core/mpidummy.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-mpidummy.o `test -f 'core/mpidummy.c' || echo '$(srcdir)/'`core/mpidummy.c
+
+libadiosf_nompi_a-mpidummy.obj: core/mpidummy.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-mpidummy.obj `if test -f 'core/mpidummy.c'; then $(CYGPATH_W) 'core/mpidummy.c'; else $(CYGPATH_W) '$(srcdir)/core/mpidummy.c'; fi`
+
+libadiosf_nompi_a-adiosf_read.o: core/adiosf_read.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adiosf_read.o `test -f 'core/adiosf_read.c' || echo '$(srcdir)/'`core/adiosf_read.c
+
+libadiosf_nompi_a-adiosf_read.obj: core/adiosf_read.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_a-adiosf_read.obj `if test -f 'core/adiosf_read.c'; then $(CYGPATH_W) 'core/adiosf_read.c'; else $(CYGPATH_W) '$(srcdir)/core/adiosf_read.c'; fi`
+
+libadiosf_nompi_v1_a-adiosf.o: core/adiosf.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adiosf.o `test -f 'core/adiosf.c' || echo '$(srcdir)/'`core/adiosf.c
+
+libadiosf_nompi_v1_a-adiosf.obj: core/adiosf.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adiosf.obj `if test -f 'core/adiosf.c'; then $(CYGPATH_W) 'core/adiosf.c'; else $(CYGPATH_W) '$(srcdir)/core/adiosf.c'; fi`
+
+libadiosf_nompi_v1_a-common_adios.o: core/common_adios.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-common_adios.o `test -f 'core/common_adios.c' || echo '$(srcdir)/'`core/common_adios.c
+
+libadiosf_nompi_v1_a-common_adios.obj: core/common_adios.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-common_adios.obj `if test -f 'core/common_adios.c'; then $(CYGPATH_W) 'core/common_adios.c'; else $(CYGPATH_W) '$(srcdir)/core/common_adios.c'; fi`
+
+libadiosf_nompi_v1_a-adios_internals.o: core/adios_internals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_internals.o `test -f 'core/adios_internals.c' || echo '$(srcdir)/'`core/adios_internals.c
+
+libadiosf_nompi_v1_a-adios_internals.obj: core/adios_internals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_internals.obj `if test -f 'core/adios_internals.c'; then $(CYGPATH_W) 'core/adios_internals.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_internals.c'; fi`
+
+libadiosf_nompi_v1_a-adios_internals_mxml.o: core/adios_internals_mxml.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_internals_mxml.o `test -f 'core/adios_internals_mxml.c' || echo '$(srcdir)/'`core/adios_internals_mxml.c
+
+libadiosf_nompi_v1_a-adios_internals_mxml.obj: core/adios_internals_mxml.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_internals_mxml.obj `if test -f 'core/adios_internals_mxml.c'; then $(CYGPATH_W) 'core/adios_internals_mxml.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_internals_mxml.c'; fi`
+
+libadiosf_nompi_v1_a-buffer.o: core/buffer.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-buffer.o `test -f 'core/buffer.c' || echo '$(srcdir)/'`core/buffer.c
+
+libadiosf_nompi_v1_a-buffer.obj: core/buffer.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-buffer.obj `if test -f 'core/buffer.c'; then $(CYGPATH_W) 'core/buffer.c'; else $(CYGPATH_W) '$(srcdir)/core/buffer.c'; fi`
+
+libadiosf_nompi_v1_a-adios_bp_v1.o: core/adios_bp_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_bp_v1.o `test -f 'core/adios_bp_v1.c' || echo '$(srcdir)/'`core/adios_bp_v1.c
+
+libadiosf_nompi_v1_a-adios_bp_v1.obj: core/adios_bp_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_bp_v1.obj `if test -f 'core/adios_bp_v1.c'; then $(CYGPATH_W) 'core/adios_bp_v1.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_bp_v1.c'; fi`
+
+libadiosf_nompi_v1_a-adios_endianness.o: core/adios_endianness.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_endianness.o `test -f 'core/adios_endianness.c' || echo '$(srcdir)/'`core/adios_endianness.c
+
+libadiosf_nompi_v1_a-adios_endianness.obj: core/adios_endianness.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_endianness.obj `if test -f 'core/adios_endianness.c'; then $(CYGPATH_W) 'core/adios_endianness.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_endianness.c'; fi`
+
+libadiosf_nompi_v1_a-futils.o: core/futils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-futils.o `test -f 'core/futils.c' || echo '$(srcdir)/'`core/futils.c
+
+libadiosf_nompi_v1_a-futils.obj: core/futils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-futils.obj `if test -f 'core/futils.c'; then $(CYGPATH_W) 'core/futils.c'; else $(CYGPATH_W) '$(srcdir)/core/futils.c'; fi`
+
+libadiosf_nompi_v1_a-adios_error.o: core/adios_error.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_error.o `test -f 'core/adios_error.c' || echo '$(srcdir)/'`core/adios_error.c
+
+libadiosf_nompi_v1_a-adios_error.obj: core/adios_error.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_error.obj `if test -f 'core/adios_error.c'; then $(CYGPATH_W) 'core/adios_error.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_error.c'; fi`
+
+libadiosf_nompi_v1_a-bp_utils.o: core/bp_utils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-bp_utils.o `test -f 'core/bp_utils.c' || echo '$(srcdir)/'`core/bp_utils.c
+
+libadiosf_nompi_v1_a-bp_utils.obj: core/bp_utils.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-bp_utils.obj `if test -f 'core/bp_utils.c'; then $(CYGPATH_W) 'core/bp_utils.c'; else $(CYGPATH_W) '$(srcdir)/core/bp_utils.c'; fi`
+
+libadiosf_nompi_v1_a-common_read.o: core/common_read.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-common_read.o `test -f 'core/common_read.c' || echo '$(srcdir)/'`core/common_read.c
+
+libadiosf_nompi_v1_a-common_read.obj: core/common_read.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-common_read.obj `if test -f 'core/common_read.c'; then $(CYGPATH_W) 'core/common_read.c'; else $(CYGPATH_W) '$(srcdir)/core/common_read.c'; fi`
+
+libadiosf_nompi_v1_a-globals.o: core/globals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-globals.o `test -f 'core/globals.c' || echo '$(srcdir)/'`core/globals.c
+
+libadiosf_nompi_v1_a-globals.obj: core/globals.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-globals.obj `if test -f 'core/globals.c'; then $(CYGPATH_W) 'core/globals.c'; else $(CYGPATH_W) '$(srcdir)/core/globals.c'; fi`
+
+libadiosf_nompi_v1_a-adios_timing.o: core/adios_timing.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_timing.o `test -f 'core/adios_timing.c' || echo '$(srcdir)/'`core/adios_timing.c
+
+libadiosf_nompi_v1_a-adios_timing.obj: core/adios_timing.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_timing.obj `if test -f 'core/adios_timing.c'; then $(CYGPATH_W) 'core/adios_timing.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_timing.c'; fi`
+
+libadiosf_nompi_v1_a-adios_read_hooks.o: core/adios_read_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_read_hooks.o `test -f 'core/adios_read_hooks.c' || echo '$(srcdir)/'`core/adios_read_hooks.c
+
+libadiosf_nompi_v1_a-adios_read_hooks.obj: core/adios_read_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_read_hooks.obj `if test -f 'core/adios_read_hooks.c'; then $(CYGPATH_W) 'core/adios_read_hooks.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_read_hooks.c'; fi`
+
+libadiosf_nompi_v1_a-adios_transport_hooks.o: core/adios_transport_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_transport_hooks.o `test -f 'core/adios_transport_hooks.c' || echo '$(srcdir)/'`core/adios_transport_hooks.c
+
+libadiosf_nompi_v1_a-adios_transport_hooks.obj: core/adios_transport_hooks.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_transport_hooks.obj `if test -f 'core/adios_transport_hooks.c'; then $(CYGPATH_W) 'core/adios_transport_hooks.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_transport_hooks.c'; fi`
+
+libadiosf_nompi_v1_a-adios_socket.o: core/adios_socket.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_socket.o `test -f 'core/adios_socket.c' || echo '$(srcdir)/'`core/adios_socket.c
+
+libadiosf_nompi_v1_a-adios_socket.obj: core/adios_socket.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_socket.obj `if test -f 'core/adios_socket.c'; then $(CYGPATH_W) 'core/adios_socket.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_socket.c'; fi`
+
+libadiosf_nompi_v1_a-adios_logger.o: core/adios_logger.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_logger.o `test -f 'core/adios_logger.c' || echo '$(srcdir)/'`core/adios_logger.c
+
+libadiosf_nompi_v1_a-adios_logger.obj: core/adios_logger.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_logger.obj `if test -f 'core/adios_logger.c'; then $(CYGPATH_W) 'core/adios_logger.c'; else $(CYGPATH_W) '$(srcdir)/core/adios_logger.c'; fi`
+
+libadiosf_nompi_v1_a-util.o: core/util.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-util.o `test -f 'core/util.c' || echo '$(srcdir)/'`core/util.c
+
+libadiosf_nompi_v1_a-util.obj: core/util.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-util.obj `if test -f 'core/util.c'; then $(CYGPATH_W) 'core/util.c'; else $(CYGPATH_W) '$(srcdir)/core/util.c'; fi`
+
+libadiosf_nompi_v1_a-read_bp.o: read/read_bp.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_bp.o `test -f 'read/read_bp.c' || echo '$(srcdir)/'`read/read_bp.c
+
+libadiosf_nompi_v1_a-read_bp.obj: read/read_bp.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_bp.obj `if test -f 'read/read_bp.c'; then $(CYGPATH_W) 'read/read_bp.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp.c'; fi`
+
+libadiosf_nompi_v1_a-read_bp_staged.o: read/read_bp_staged.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_bp_staged.o `test -f 'read/read_bp_staged.c' || echo '$(srcdir)/'`read/read_bp_staged.c
+
+libadiosf_nompi_v1_a-read_bp_staged.obj: read/read_bp_staged.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_bp_staged.obj `if test -f 'read/read_bp_staged.c'; then $(CYGPATH_W) 'read/read_bp_staged.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp_staged.c'; fi`
+
+libadiosf_nompi_v1_a-read_bp_staged1.o: read/read_bp_staged1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_bp_staged1.o `test -f 'read/read_bp_staged1.c' || echo '$(srcdir)/'`read/read_bp_staged1.c
+
+libadiosf_nompi_v1_a-read_bp_staged1.obj: read/read_bp_staged1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_bp_staged1.obj `if test -f 'read/read_bp_staged1.c'; then $(CYGPATH_W) 'read/read_bp_staged1.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp_staged1.c'; fi`
+
+libadiosf_nompi_v1_a-adios_posix.o: write/adios_posix.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_posix.o `test -f 'write/adios_posix.c' || echo '$(srcdir)/'`write/adios_posix.c
+
+libadiosf_nompi_v1_a-adios_posix.obj: write/adios_posix.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_posix.obj `if test -f 'write/adios_posix.c'; then $(CYGPATH_W) 'write/adios_posix.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_posix.c'; fi`
+
+libadiosf_nompi_v1_a-adios_posix1.o: write/adios_posix1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_posix1.o `test -f 'write/adios_posix1.c' || echo '$(srcdir)/'`write/adios_posix1.c
+
+libadiosf_nompi_v1_a-adios_posix1.obj: write/adios_posix1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_posix1.obj `if test -f 'write/adios_posix1.c'; then $(CYGPATH_W) 'write/adios_posix1.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_posix1.c'; fi`
+
+libadiosf_nompi_v1_a-adios_dataspaces.o: write/adios_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_dataspaces.o `test -f 'write/adios_dataspaces.c' || echo '$(srcdir)/'`write/adios_dataspaces.c
+
+libadiosf_nompi_v1_a-adios_dataspaces.obj: write/adios_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_dataspaces.obj `if test -f 'write/adios_dataspaces.c'; then $(CYGPATH_W) 'write/adios_dataspaces.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_dataspaces.c'; fi`
+
+libadiosf_nompi_v1_a-read_dataspaces.o: read/read_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_dataspaces.o `test -f 'read/read_dataspaces.c' || echo '$(srcdir)/'`read/read_dataspaces.c
+
+libadiosf_nompi_v1_a-read_dataspaces.obj: read/read_dataspaces.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_dataspaces.obj `if test -f 'read/read_dataspaces.c'; then $(CYGPATH_W) 'read/read_dataspaces.c'; else $(CYGPATH_W) '$(srcdir)/read/read_dataspaces.c'; fi`
+
+libadiosf_nompi_v1_a-adios_dimes.o: write/adios_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_dimes.o `test -f 'write/adios_dimes.c' || echo '$(srcdir)/'`write/adios_dimes.c
+
+libadiosf_nompi_v1_a-adios_dimes.obj: write/adios_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_dimes.obj `if test -f 'write/adios_dimes.c'; then $(CYGPATH_W) 'write/adios_dimes.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_dimes.c'; fi`
+
+libadiosf_nompi_v1_a-read_dimes.o: read/read_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_dimes.o `test -f 'read/read_dimes.c' || echo '$(srcdir)/'`read/read_dimes.c
+
+libadiosf_nompi_v1_a-read_dimes.obj: read/read_dimes.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_dimes.obj `if test -f 'read/read_dimes.c'; then $(CYGPATH_W) 'read/read_dimes.c'; else $(CYGPATH_W) '$(srcdir)/read/read_dimes.c'; fi`
+
+libadiosf_nompi_v1_a-adios_datatap.o: write/adios_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_datatap.o `test -f 'write/adios_datatap.c' || echo '$(srcdir)/'`write/adios_datatap.c
+
+libadiosf_nompi_v1_a-adios_datatap.obj: write/adios_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_datatap.obj `if test -f 'write/adios_datatap.c'; then $(CYGPATH_W) 'write/adios_datatap.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_datatap.c'; fi`
+
+libadiosf_nompi_v1_a-read_datatap.o: read/read_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_datatap.o `test -f 'read/read_datatap.c' || echo '$(srcdir)/'`read/read_datatap.c
+
+libadiosf_nompi_v1_a-read_datatap.obj: read/read_datatap.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
+
+libadiosf_nompi_v1_a-adios_flexpath.o: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_flexpath.o `test -f 'write/adios_flexpath.c' || echo '$(srcdir)/'`write/adios_flexpath.c
+
+libadiosf_nompi_v1_a-adios_flexpath.obj: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_flexpath.obj `if test -f 'write/adios_flexpath.c'; then $(CYGPATH_W) 'write/adios_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_flexpath.c'; fi`
+
+libadiosf_nompi_v1_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosf_nompi_v1_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
+libadiosf_nompi_v1_a-adios_nssi_config.o: nssi/adios_nssi_config.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
+
+libadiosf_nompi_v1_a-adios_nssi_config.obj: nssi/adios_nssi_config.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_nssi_config.obj `if test -f 'nssi/adios_nssi_config.c'; then $(CYGPATH_W) 'nssi/adios_nssi_config.c'; else $(CYGPATH_W) '$(srcdir)/nssi/adios_nssi_config.c'; fi`
+
+libadiosf_nompi_v1_a-adios_nssi.o: write/adios_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_nssi.o `test -f 'write/adios_nssi.c' || echo '$(srcdir)/'`write/adios_nssi.c
+
+libadiosf_nompi_v1_a-adios_nssi.obj: write/adios_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_nssi.obj `if test -f 'write/adios_nssi.c'; then $(CYGPATH_W) 'write/adios_nssi.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nssi.c'; fi`
+
+libadiosf_nompi_v1_a-adios_nssi_filter.o: nssi/adios_nssi_filter.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_nssi_filter.o `test -f 'nssi/adios_nssi_filter.c' || echo '$(srcdir)/'`nssi/adios_nssi_filter.c
+
+libadiosf_nompi_v1_a-adios_nssi_filter.obj: nssi/adios_nssi_filter.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adios_nssi_filter.obj `if test -f 'nssi/adios_nssi_filter.c'; then $(CYGPATH_W) 'nssi/adios_nssi_filter.c'; else $(CYGPATH_W) '$(srcdir)/nssi/adios_nssi_filter.c'; fi`
+
+libadiosf_nompi_v1_a-read_nssi.o: read/read_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_nssi.o `test -f 'read/read_nssi.c' || echo '$(srcdir)/'`read/read_nssi.c
+
+libadiosf_nompi_v1_a-read_nssi.obj: read/read_nssi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-read_nssi.obj `if test -f 'read/read_nssi.c'; then $(CYGPATH_W) 'read/read_nssi.c'; else $(CYGPATH_W) '$(srcdir)/read/read_nssi.c'; fi`
+
+libadiosf_nompi_v1_a-mpidummy.o: core/mpidummy.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-mpidummy.o `test -f 'core/mpidummy.c' || echo '$(srcdir)/'`core/mpidummy.c
+
+libadiosf_nompi_v1_a-mpidummy.obj: core/mpidummy.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-mpidummy.obj `if test -f 'core/mpidummy.c'; then $(CYGPATH_W) 'core/mpidummy.c'; else $(CYGPATH_W) '$(srcdir)/core/mpidummy.c'; fi`
+
+libadiosf_nompi_v1_a-adiosf_read_v1.o: core/adiosf_read_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adiosf_read_v1.o `test -f 'core/adiosf_read_v1.c' || echo '$(srcdir)/'`core/adiosf_read_v1.c
+
+libadiosf_nompi_v1_a-adiosf_read_v1.obj: core/adiosf_read_v1.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_nompi_v1_a-adiosf_read_v1.obj `if test -f 'core/adiosf_read_v1.c'; then $(CYGPATH_W) 'core/adiosf_read_v1.c'; else $(CYGPATH_W) '$(srcdir)/core/adiosf_read_v1.c'; fi`
+
 libadiosf_v1_a-adiosf.o: core/adiosf.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adiosf.o `test -f 'core/adiosf.c' || echo '$(srcdir)/'`core/adiosf.c
 
@@ -2402,24 +3107,6 @@ libadiosf_v1_a-read_bp_staged1.o: read/read_bp_staged1.c
 libadiosf_v1_a-read_bp_staged1.obj: read/read_bp_staged1.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-read_bp_staged1.obj `if test -f 'read/read_bp_staged1.c'; then $(CYGPATH_W) 'read/read_bp_staged1.c'; else $(CYGPATH_W) '$(srcdir)/read/read_bp_staged1.c'; fi`
 
-libadiosf_v1_a-adios_mpi.o: write/adios_mpi.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi.o `test -f 'write/adios_mpi.c' || echo '$(srcdir)/'`write/adios_mpi.c
-
-libadiosf_v1_a-adios_mpi.obj: write/adios_mpi.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi.obj `if test -f 'write/adios_mpi.c'; then $(CYGPATH_W) 'write/adios_mpi.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi.c'; fi`
-
-libadiosf_v1_a-adios_mpi_lustre.o: write/adios_mpi_lustre.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_lustre.o `test -f 'write/adios_mpi_lustre.c' || echo '$(srcdir)/'`write/adios_mpi_lustre.c
-
-libadiosf_v1_a-adios_mpi_lustre.obj: write/adios_mpi_lustre.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_lustre.obj `if test -f 'write/adios_mpi_lustre.c'; then $(CYGPATH_W) 'write/adios_mpi_lustre.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_lustre.c'; fi`
-
-libadiosf_v1_a-adios_mpi_amr.o: write/adios_mpi_amr.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_amr.o `test -f 'write/adios_mpi_amr.c' || echo '$(srcdir)/'`write/adios_mpi_amr.c
-
-libadiosf_v1_a-adios_mpi_amr.obj: write/adios_mpi_amr.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_amr.obj `if test -f 'write/adios_mpi_amr.c'; then $(CYGPATH_W) 'write/adios_mpi_amr.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_amr.c'; fi`
-
 libadiosf_v1_a-adios_posix.o: write/adios_posix.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_posix.o `test -f 'write/adios_posix.c' || echo '$(srcdir)/'`write/adios_posix.c
 
@@ -2468,17 +3155,17 @@ libadiosf_v1_a-read_datatap.o: read/read_datatap.c
 libadiosf_v1_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
-libadiosf_v1_a-adios_phdf5.o: write/adios_phdf5.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_phdf5.o `test -f 'write/adios_phdf5.c' || echo '$(srcdir)/'`write/adios_phdf5.c
+libadiosf_v1_a-adios_flexpath.o: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_flexpath.o `test -f 'write/adios_flexpath.c' || echo '$(srcdir)/'`write/adios_flexpath.c
 
-libadiosf_v1_a-adios_phdf5.obj: write/adios_phdf5.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_phdf5.obj `if test -f 'write/adios_phdf5.c'; then $(CYGPATH_W) 'write/adios_phdf5.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_phdf5.c'; fi`
+libadiosf_v1_a-adios_flexpath.obj: write/adios_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_flexpath.obj `if test -f 'write/adios_flexpath.c'; then $(CYGPATH_W) 'write/adios_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_flexpath.c'; fi`
 
-libadiosf_v1_a-adios_nc4.o: write/adios_nc4.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_nc4.o `test -f 'write/adios_nc4.c' || echo '$(srcdir)/'`write/adios_nc4.c
+libadiosf_v1_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
 
-libadiosf_v1_a-adios_nc4.obj: write/adios_nc4.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_nc4.obj `if test -f 'write/adios_nc4.c'; then $(CYGPATH_W) 'write/adios_nc4.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nc4.c'; fi`
+libadiosf_v1_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
 
 libadiosf_v1_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
@@ -2504,6 +3191,42 @@ libadiosf_v1_a-read_nssi.o: read/read_nssi.c
 libadiosf_v1_a-read_nssi.obj: read/read_nssi.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-read_nssi.obj `if test -f 'read/read_nssi.c'; then $(CYGPATH_W) 'read/read_nssi.c'; else $(CYGPATH_W) '$(srcdir)/read/read_nssi.c'; fi`
 
+libadiosf_v1_a-adios_mpi.o: write/adios_mpi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi.o `test -f 'write/adios_mpi.c' || echo '$(srcdir)/'`write/adios_mpi.c
+
+libadiosf_v1_a-adios_mpi.obj: write/adios_mpi.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi.obj `if test -f 'write/adios_mpi.c'; then $(CYGPATH_W) 'write/adios_mpi.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi.c'; fi`
+
+libadiosf_v1_a-adios_mpi_lustre.o: write/adios_mpi_lustre.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_lustre.o `test -f 'write/adios_mpi_lustre.c' || echo '$(srcdir)/'`write/adios_mpi_lustre.c
+
+libadiosf_v1_a-adios_mpi_lustre.obj: write/adios_mpi_lustre.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_lustre.obj `if test -f 'write/adios_mpi_lustre.c'; then $(CYGPATH_W) 'write/adios_mpi_lustre.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_lustre.c'; fi`
+
+libadiosf_v1_a-adios_mpi_amr.o: write/adios_mpi_amr.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_amr.o `test -f 'write/adios_mpi_amr.c' || echo '$(srcdir)/'`write/adios_mpi_amr.c
+
+libadiosf_v1_a-adios_mpi_amr.obj: write/adios_mpi_amr.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_amr.obj `if test -f 'write/adios_mpi_amr.c'; then $(CYGPATH_W) 'write/adios_mpi_amr.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_mpi_amr.c'; fi`
+
+libadiosf_v1_a-adios_var_merge.o: write/adios_var_merge.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_var_merge.o `test -f 'write/adios_var_merge.c' || echo '$(srcdir)/'`write/adios_var_merge.c
+
+libadiosf_v1_a-adios_var_merge.obj: write/adios_var_merge.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_var_merge.obj `if test -f 'write/adios_var_merge.c'; then $(CYGPATH_W) 'write/adios_var_merge.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_var_merge.c'; fi`
+
+libadiosf_v1_a-adios_phdf5.o: write/adios_phdf5.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_phdf5.o `test -f 'write/adios_phdf5.c' || echo '$(srcdir)/'`write/adios_phdf5.c
+
+libadiosf_v1_a-adios_phdf5.obj: write/adios_phdf5.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_phdf5.obj `if test -f 'write/adios_phdf5.c'; then $(CYGPATH_W) 'write/adios_phdf5.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_phdf5.c'; fi`
+
+libadiosf_v1_a-adios_nc4.o: write/adios_nc4.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_nc4.o `test -f 'write/adios_nc4.c' || echo '$(srcdir)/'`write/adios_nc4.c
+
+libadiosf_v1_a-adios_nc4.obj: write/adios_nc4.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_nc4.obj `if test -f 'write/adios_nc4.c'; then $(CYGPATH_W) 'write/adios_nc4.c'; else $(CYGPATH_W) '$(srcdir)/write/adios_nc4.c'; fi`
+
 libadiosf_v1_a-adios_mpi_stagger.o: write/adios_mpi_stagger.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosf_v1_a-adios_mpi_stagger.o `test -f 'write/adios_mpi_stagger.c' || echo '$(srcdir)/'`write/adios_mpi_stagger.c
 
@@ -2660,6 +3383,12 @@ libadiosread_a-read_datatap.o: read/read_datatap.c
 libadiosread_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_a_CFLAGS) $(CFLAGS) -c -o libadiosread_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
+libadiosread_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_a_CFLAGS) $(CFLAGS) -c -o libadiosread_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosread_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_a_CFLAGS) $(CFLAGS) -c -o libadiosread_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadiosread_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_a_CFLAGS) $(CFLAGS) -c -o libadiosread_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
@@ -2786,6 +3515,12 @@ libadiosread_nompi_a-read_datatap.o: read/read_datatap.c
 libadiosread_nompi_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosread_nompi_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
+libadiosread_nompi_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosread_nompi_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosread_nompi_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosread_nompi_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadiosread_nompi_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosread_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosread_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosread_nompi_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
@@ -2900,6 +3635,12 @@ libadiosreadf_a-read_datatap.o: read/read_datatap.c
 libadiosreadf_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
+libadiosreadf_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosreadf_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadiosreadf_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
@@ -3014,6 +3755,12 @@ libadiosreadf_nompi_a-read_datatap.o: read/read_datatap.c
 libadiosreadf_nompi_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
+libadiosreadf_nompi_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosreadf_nompi_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadiosreadf_nompi_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
@@ -3128,6 +3875,12 @@ libadiosreadf_nompi_v1_a-read_datatap.o: read/read_datatap.c
 libadiosreadf_nompi_v1_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_v1_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
+libadiosreadf_nompi_v1_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_v1_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosreadf_nompi_v1_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_v1_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadiosreadf_nompi_v1_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_nompi_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_nompi_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_nompi_v1_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
@@ -3242,6 +3995,12 @@ libadiosreadf_v1_a-read_datatap.o: read/read_datatap.c
 libadiosreadf_v1_a-read_datatap.obj: read/read_datatap.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_v1_a-read_datatap.obj `if test -f 'read/read_datatap.c'; then $(CYGPATH_W) 'read/read_datatap.c'; else $(CYGPATH_W) '$(srcdir)/read/read_datatap.c'; fi`
 
+libadiosreadf_v1_a-read_flexpath.o: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_v1_a-read_flexpath.o `test -f 'read/read_flexpath.c' || echo '$(srcdir)/'`read/read_flexpath.c
+
+libadiosreadf_v1_a-read_flexpath.obj: read/read_flexpath.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_v1_a-read_flexpath.obj `if test -f 'read/read_flexpath.c'; then $(CYGPATH_W) 'read/read_flexpath.c'; else $(CYGPATH_W) '$(srcdir)/read/read_flexpath.c'; fi`
+
 libadiosreadf_v1_a-adios_nssi_config.o: nssi/adios_nssi_config.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libadiosreadf_v1_a_CPPFLAGS) $(CPPFLAGS) $(libadiosreadf_v1_a_CFLAGS) $(CFLAGS) -c -o libadiosreadf_v1_a-adios_nssi_config.o `test -f 'nssi/adios_nssi_config.c' || echo '$(srcdir)/'`nssi/adios_nssi_config.c
 
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
new file mode 100644
index 0000000..9edf3b1
--- /dev/null
+++ b/src/core/CMakeLists.txt
@@ -0,0 +1 @@
+include_directories(${PROJECT_BINARY_DIR})
diff --git a/src/core/adios.c b/src/core/adios.c
index 47cda8e..8868d9a 100644
--- a/src/core/adios.c
+++ b/src/core/adios.c
@@ -38,17 +38,17 @@ int adios_set_application_id (int id)
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-int adios_init (const char * config)
+int adios_init (const char * config, MPI_Comm comm)
 {
-    return common_adios_init (config);
+    return common_adios_init (config, comm);
 }
 
 
 ///////////////////////////////////////////////////////////////////////////////
 // all XML file pieces will be provided by another series of calls
-int adios_init_noxml ()
+int adios_init_noxml (MPI_Comm comm)
 {
-    return common_adios_init_noxml ();
+    return common_adios_init_noxml (comm);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -66,7 +66,7 @@ int adios_allocate_buffer (enum ADIOS_BUFFER_ALLOC_WHEN adios_buffer_alloc_when
 
 ///////////////////////////////////////////////////////////////////////////////
 int adios_open (int64_t * fd, const char * group_name, const char * name
-               ,const char * mode, void * comm
+               ,const char * mode, MPI_Comm comm
                )
 {
     return common_adios_open (fd, group_name, name, mode, comm);
diff --git a/src/core/adios_internals.c b/src/core/adios_internals.c
index 3b57c32..b30aa17 100644
--- a/src/core/adios_internals.c
+++ b/src/core/adios_internals.c
@@ -949,6 +949,78 @@ int adios_common_define_attribute (int64_t group, const char * name
     return 1;
 }
 
+
+/* define an attribute by passing the value directly, not by a string */
+int adios_common_define_attribute_byvalue (int64_t group, const char * name
+                                  ,const char * path
+                                  ,enum ADIOS_DATATYPES type
+                                  ,void * value
+                                  )
+{
+    struct adios_group_struct * g = (struct adios_group_struct *) group;
+    struct adios_attribute_struct * attr = (struct adios_attribute_struct *)
+                              malloc (sizeof (struct adios_attribute_struct));
+    uint64_t size;
+
+    attr->name = strdup (name);
+    attr->path = strdup (path);
+    if (value)
+    {
+        if (type == adios_unknown)
+        {
+            adios_error (err_invalid_type_attr, 
+                         "config.xml: attribute element %s has invalid "
+                         "type attribute\n",
+                         name);
+
+            free (attr->name);
+            free (attr->path);
+            free (attr);
+
+            return 0;
+        }
+        attr->type = type;
+        size = adios_get_type_size (attr->type, value);
+        if (size > 0)
+        {
+            attr->value = malloc (size);
+            memcpy (attr->value, value, size);
+            attr->var = 0;
+        }
+        else
+        {
+            adios_error (err_invalid_value_attr, 
+                         "Attribute element %s has invalid "
+                         "value attribute\n", name);
+
+            free (attr->value);
+            free (attr->name);
+            free (attr->path);
+            free (attr);
+
+            return 0;
+        }
+    }
+    else
+    {
+        adios_error (err_invalid_value_attr, 
+                     "Attribute element %s has invalid "
+                     "value attribute\n", name);
+
+        free (attr->name);
+        free (attr->path);
+        free (attr);
+
+        return 0;
+    }
+
+    attr->next = 0;
+
+    adios_append_attribute (&g->attributes, attr, ++g->member_count);
+
+    return 1;
+}
+
 /*void adios_extract_string (char ** out, const char * in, int size)
 {
     if (in && out)
@@ -1638,7 +1710,7 @@ int64_t adios_common_define_var (int64_t group_id, const char * name
     }
     t->var_count++;
 
-    return v;
+    return (int64_t)v;
 }
 
 void adios_common_get_group (int64_t * group_id, const char * name)
diff --git a/src/core/adios_internals.h b/src/core/adios_internals.h
index 9a6647c..d92ab22 100644
--- a/src/core/adios_internals.h
+++ b/src/core/adios_internals.h
@@ -12,6 +12,7 @@
 #include <stdlib.h>
 
 // need the enum for the transports
+#include "public/adios_mpi.h"
 #include "core/adios_transport_hooks.h"
 #include "core/adios_bp_v1.h"
 
@@ -97,6 +98,7 @@ struct adios_method_struct
     int iterations;
     int priority;
     struct adios_group_struct * group;
+    MPI_Comm init_comm; // MPI Communicator used only for the method's init call
 };
 
 struct adios_method_list_struct
@@ -232,7 +234,7 @@ typedef void (* ADIOS_INIT_FN) (const PairStruct * parameters
                                ,struct adios_method_struct * method
                                );
 typedef int (* ADIOS_OPEN_FN) (struct adios_file_struct * fd
-                              ,struct adios_method_struct * method, void * comm
+                              ,struct adios_method_struct * method, MPI_Comm comm
                               );
 typedef enum ADIOS_FLAG (* ADIOS_SHOULD_BUFFER_FN)
                                        (struct adios_file_struct * fd
@@ -425,6 +427,12 @@ int adios_common_define_attribute (int64_t group, const char * name
                                   ,const char * var
                                   );
 
+int adios_common_define_attribute_byvalue (int64_t group, const char * name
+                                  ,const char * path
+                                  ,enum ADIOS_DATATYPES type
+                                  ,void * value
+                                  );
+
 void adios_append_method (struct adios_method_struct * method);
 
 void adios_add_method_to_group (struct adios_method_list_struct ** root
diff --git a/src/core/adios_internals_mxml.c b/src/core/adios_internals_mxml.c
index f53607f..4561dc3 100644
--- a/src/core/adios_internals_mxml.c
+++ b/src/core/adios_internals_mxml.c
@@ -38,10 +38,12 @@ struct adios_group_list_struct * adios_groups = 0;
 struct adios_transport_struct * adios_transports = 0;
 static int adios_transports_initialized = 0;
 
+static MPI_Comm init_comm; // communicator for each method's init call
 
 // ADIOS Schema: adding utility functions
-void conca_att_nam(char ** returnstr, const char * meshname, char * att_nam);
-void conca_numb_att_nam(char ** returnstr, const char * meshname, char * att_nam, char counterstr[5]);
+void conca_var_att_nam(char ** returnstr, const char * varname, char * att_nam);
+void conca_mesh_att_nam(char ** returnstr, const char * meshname, char * att_nam);
+void conca_mesh_numb_att_nam(char ** returnstr, const char * meshname, char * att_nam, char counterstr[5]);
 
 // this macro makes getting the attributes easier
 // fix the bgp bugs
@@ -212,62 +214,91 @@ static void adios_append_mesh_cell_list
     }
 }
 
-static int parseMeshUniformDimensions (const char * dimensions
+
+// Parse var time series format (real time tracking, not integers)
+static int parseVarTimeSeriesFormat (const char * timeseries
                                       ,struct adios_group_struct * new_group
-                                      ,struct adios_mesh_uniform_struct * mesh
                                       ,const char * name
                                       )
 {
-    char * c;  // comma location
-    char * d1; // save of strdup
-    struct adios_mesh_item_list_struct * item = 0;
+    char * d1;                     // save of strdup
     int64_t      p_new_group = (int64_t) new_group;
-    char * dim_att_nam = 0; // dimensions attribute name
-    char * getdimsfrom = 0; // dimensions attribute that is a var
-    int counter = 0;        // used to create dimX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
-
-    if (!dimensions)
-    {
-        log_warn ("config.xml: dimensions value required for"
-                         "uniform mesh: %s\n"
-                         ,name
-                );
+    char * format_att_nam = 0;     // extension format .xxxx att name
+    char * format_att_val = 0;     // extension format att value
 
-        return 0;
+    // We expect x xx xxx etc 
+    // We do not fail if this is not given as variables all have nsteps
+    if (!timeseries){
+        return 1;
     }
 
-    d1 = strdup (dimensions);
+    d1 = strdup (timeseries);
+    conca_mesh_att_nam(&format_att_nam, name, "time-series-format");
+    adios_common_define_attribute (p_new_group,format_att_nam,"/",adios_string,d1,"");
+    free(format_att_val);
+    free (d1);
+    return 1;
+}
+
+
+// Parse var time scale (real time tracking, not integers)
+static int parseVarTimeScale (const char * timescale
+                                      ,struct adios_group_struct * new_group
+                                      ,const char * name
+                                      )
+{
+    char * c;                      // comma location
+    char * d1;                     // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    char * gettscalefrom0 = 0;     // scale attribute xml value
+    char * gettscalefrom1 = 0;     // scale attribute xml value
+    char * gettscalefrom2 = 0;     // scale attribute xml value
+    char * time_var_att_nam = 0;   // scale attribute name for var or num
+    char * time_start_att_nam = 0; // scale attribute name for start
+    char * time_stride_att_nam = 0;// scale attribute name for stride
+    char * time_count_att_nam = 0; // scale attribute name for count
+    char * time_max_att_nam = 0;   // scale attribute name for max
+    char * time_min_att_nam = 0;   // scale attribute name for min
+    char * time_var_att_val = 0;   // scale attribute value for var or num
+    char * time_start_att_val = 0; // scale attribute value for start 
+    char * time_stride_att_val = 0;// scale attribute value for stride
+    char * time_count_att_val = 0; // scale attribute value for count
+    char * time_max_att_val = 0;   // scale attribute value for max
+    char * time_min_att_val = 0;   // scale attribute value for min
+    int counter = 0;               // used to get type of time scale bounds
+
+    // We are going to allow
+    // 1. a number =  just the real time scale - note: not the number of time steps (this is already in adios inq var) but the correpdance between timesteps and real time scale 1 step = 15ms for example
+    // 2. start/stride/count 3 components - multiple of the mesh time steps
+    // 3. min/max range where this var is used - a range of the mesh time steps
+    // 4. An ADIOS var = time could be a list of int stored by user
+    char counterstr[5] = {0,0,0,0,0}; // used to create scale attributes
+
+    /* We do not fail if this is not given as variables all have nsteps
+       in ADIOS_inq_var = # of times the var was written
+    */
+    if (!timescale){
+        return 1;
+    }
 
+    d1 = strdup (timescale);
+    char * ptr_end;
     c = strtok (d1, ",");
 
     while (c)
     {
-        item = (struct adios_mesh_item_list_struct *) malloc
-                            (sizeof (struct adios_mesh_item_list_struct));
-        item->next = 0;
-
-        if (!item)
-        {
-            log_warn ("Out of memory parseMeshUniformDimensions of mesh: %s\n"
-                             ,name
-                    );
-            free (d1);
-
-            return 0;
-        }
-
-        if (adios_int_is_var (c))
+        struct adios_var_struct * var = 0;
+        //if (adios_int_is_num (c))
+        if (!strtod (c,&ptr_end))
         {
-            item->item.rank = 0.0;
-            item->item.var =
+            var =
                     adios_find_var_by_name (new_group->vars, c
                                            ,new_group->all_unique_var_names
                                            );
-            if (!item->item.var)
+            if (!var)
             {
                 log_warn ("config.xml: invalid variable %s\n"
-                                 "for dimensions of mesh: %s\n"
+                                 "for attribute of var: %s\n"
                                  ,c
                                  ,name
                         );
@@ -277,378 +308,750 @@ static int parseMeshUniformDimensions (const char * dimensions
 
             }else{
                 // Found variable ==> create a dims attribute for it.
-                // char * getdimsfrom = 0;
-                getdimsfrom = 0;
-                counterstr[0] = '\0';
-                snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&getdimsfrom, name, "dim", counterstr);
-                adios_common_define_attribute (p_new_group,getdimsfrom,"/",adios_string,item->item.var->name,"");
-                free (getdimsfrom);
+                if (counter == 0){
+                    gettscalefrom0 = 0;
+                    gettscalefrom0 = strdup(c);
+                }else if (counter == 1){
+                    gettscalefrom1 = 0;
+                    gettscalefrom1 = strdup(c);
+                }else if (counter == 2){
+                    gettscalefrom2 = 0;
+                    gettscalefrom2 = strdup(c);
+                }
                 counter++;
             }
         }
         else
         {
-            item->item.rank = strtod (c, 0);
-            counterstr[0] = '\0';
-            snprintf(counterstr, 5, "%d", counter);
-            dim_att_nam = 0;
-            conca_numb_att_nam(&dim_att_nam, name, "dim", counterstr);
-            adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_double,c,"");
-            free (dim_att_nam);
-            item->item.var = 0;
+            if (counter == 0){
+                gettscalefrom0 = 0;
+                gettscalefrom0 = strdup(c);
+            }else if (counter == 1){
+                gettscalefrom1 = 0;
+                gettscalefrom1 = strdup(c);
+            }else if (counter == 2){
+                gettscalefrom2 = 0;
+                gettscalefrom2 = strdup(c);
+            }
             counter++;
         }
 
-        adios_append_mesh_item (&(mesh->dimensions), item);
-
         c = strtok (NULL, ",");
     }
 
-    char * dims = 0;
-    counterstr[0] = '\0';
-    snprintf(counterstr, 5, "%d", counter);
-    dims = 0;
-    conca_att_nam(&dims, name, "ndims");
-
-    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
-
-    free (dims);
-
+    if (counter == 3){
+        time_start_att_val = strdup(gettscalefrom0);
+        conca_var_att_nam(&time_start_att_nam, name, "time-scale-start");
+        // if this is string
+        if (!strtod (time_start_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_string,time_start_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_double,time_start_att_val,"");
+        time_stride_att_val = strdup(gettscalefrom1);
+        conca_var_att_nam(&time_stride_att_nam, name, "time-scale-stride");
+        // if this is string
+        if (!strtod (time_stride_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_string,time_stride_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_double,time_stride_att_val,"");
+        time_count_att_val = strdup(gettscalefrom2);
+        conca_var_att_nam(&time_count_att_nam, name, "time-scale-count");
+        // if this is string
+        if (!strtod (time_count_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_string,time_count_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_double,time_count_att_val,"");
+         free(time_start_att_val);
+         free(time_stride_att_val);
+         free(time_count_att_val);
+         free(gettscalefrom2);
+         free(gettscalefrom1);
+         free(gettscalefrom0);
+    }else if (counter == 2) {
+        time_min_att_val = strdup(gettscalefrom0);
+        conca_var_att_nam(&time_min_att_nam, name, "time-scale-min");
+        // if this is string
+        if (!strtod (time_min_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_string,time_min_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_double,time_min_att_val,"");
+        time_max_att_val = strdup(gettscalefrom1);
+        conca_var_att_nam(&time_max_att_nam, name, "time-scale-max");
+        // if this is string
+        if (!strtod (time_max_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_string,time_max_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_double,time_max_att_val,"");
+         free(time_min_att_val);
+         free(time_max_att_val);
+         free(gettscalefrom1);
+         free(gettscalefrom0);
+    } else if (counter == 1){
+        time_var_att_val = strdup(gettscalefrom0);
+        if (!strtod (time_var_att_val, &ptr_end)){
+            conca_var_att_nam(&time_var_att_nam, name, "time-scale-var");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_string,time_var_att_val,"");
+        }else{
+            conca_var_att_nam(&time_var_att_nam, name, "time-scale-count");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_double,time_var_att_val,"");
+        }
+       free(gettscalefrom0);
+       free(time_var_att_val);
+    }else{
+       printf("Error: time format not recognized.\nPlease check documentation for time formatting.\n");
+       free(d1);
+       return 0;
+    }
+      
     free (d1);
 
     return 1;
 }
 
-static int parseMeshUniformMaxima (const char * maximum
+
+// Parse mesh time series (single file for multiple time steps or
+// multiple files for time steps, basename + timeformat + extension)
+static int parseMeshTimeSeriesFormat (const char * timeseries
                                       ,struct adios_group_struct * new_group
-                                      ,struct adios_mesh_uniform_struct * mesh
                                       ,const char * name
                                       )
 {
-    char * c;  // comma location
-    char * d1; // save of strdup
-    struct adios_mesh_item_list_struct * item = 0;
+    char * d1;                     // save of strdup
     int64_t      p_new_group = (int64_t) new_group;
-    char * max_att_nam = 0; // maxima attribute name   
-    char * getmaxafrom = 0; // maxima attribute name that is a var
-    int counter = 0;        // used to create maxX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create maxX attributes
-
-    if (!maximum)
-    {
-         log_warn ("config.xml: maximum value required"
-                         "for uniform mesh: %s\n"
-                         ,name
-                );
+    char * format_att_nam = 0;     // extension format .xxxx att name
+    char * format_att_val = 0;     // extension format att value
 
-        return 0;
+    // We expect x xx xxx etc 
+    // We do not fail if this is not given as variables all have nsteps
+    if (!timeseries){
+        return 1;
     }
 
-    d1 = strdup (maximum);
+    d1 = strdup (timeseries);
+    conca_mesh_att_nam(&format_att_nam, name, "time-series-format");
+    adios_common_define_attribute (p_new_group,format_att_nam,"/",adios_string,d1,"");
+    free(format_att_val);
+    free (d1);
+    return 1;
+}
+
+// Parse mesh time scale (real time tracking, not integers)
+static int parseMeshTimeScale (const char * timescale
+                                      ,struct adios_group_struct * new_group
+                                      ,const char * name
+                                      )
+{
+    char * c;                      // comma location
+    char * d1;                     // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    char * gettscalefrom0 = 0;     // scale attribute xml value
+    char * gettscalefrom1 = 0;     // scale attribute xml value
+    char * gettscalefrom2 = 0;     // scale attribute xml value
+    char * time_var_att_nam = 0;   // scale attribute name for var or num
+    char * time_start_att_nam = 0; // scale attribute name for start
+    char * time_stride_att_nam = 0;// scale attribute name for stride
+    char * time_count_att_nam = 0; // scale attribute name for count
+    char * time_max_att_nam = 0;   // scale attribute name for max
+    char * time_min_att_nam = 0;   // scale attribute name for min
+    char * time_var_att_val = 0;   // scale attribute value for var or num
+    char * time_start_att_val = 0; // scale attribute value for start 
+    char * time_stride_att_val = 0;// scale attribute value for stride
+    char * time_count_att_val = 0; // scale attribute value for count
+    char * time_max_att_val = 0;   // scale attribute value for max
+    char * time_min_att_val = 0;   // scale attribute value for min
+    int counter = 0;               // used to get type of time scale bounds
+
+    // We are going to allow
+    // 1. a number =  just the number of time scale default start = 0
+    // 2. start/stride/count 3 components
+    // 3. min/max range where this mesh is used
+    // 4. An ADIOS var = time could be a list of int stored by user
+    char counterstr[5] = {0,0,0,0,0}; // used to create scale attributes
+
+    /* We do not fail if this is not given as variables all have nsteps
+       in ADIOS_inq_var = # of times the var was written
+    */
+    if (!timescale){
+        printf("time-scale attribute for mesh: %s not provided.\n", name);
+        return 1;
+    }
 
+    d1 = strdup (timescale);
+    char * ptr_end;
     c = strtok (d1, ",");
 
     while (c)
     {
-        item = (struct adios_mesh_item_list_struct *) malloc
-                            (sizeof (struct adios_mesh_item_list_struct));
-        item->next = 0;
-
-        if (!item)
-        {
-            log_warn ("Out of memory parseMeshUniformMaxima of mesh: %s\n"
-                             ,name
-                    );
-            free (d1);
-
-            return 0;
-        }
-        if (adios_int_is_var (c))
+        struct adios_var_struct * var = 0;
+        //if (adios_int_is_num (c))
+        if (!strtod (c,&ptr_end))
         {
-            item->item.rank = 0.0;
-            item->item.var =
+            var =
                     adios_find_var_by_name (new_group->vars, c
                                            ,new_group->all_unique_var_names
                                            );
-            if (!item->item.var)
+            if (!var)
             {
-                log_warn ("config.xml: invalid variable %s for maximum\n"
-                                 "of mesh: %s\n"
+                log_warn ("config.xml: invalid variable %s\n"
+                                 "for time scale of mesh: %s\n"
                                  ,c
                                  ,name
                         );
                 free (d1);
 
                 return 0;
+
             }else{
-                // Found variable ==> create a maxa attribute for it.
-                // char * getmaxafrom = 0;
-                getmaxafrom = 0;
-                counterstr[0] = '\0';
-                snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&getmaxafrom, name, "max", counterstr);
-                adios_common_define_attribute (p_new_group,getmaxafrom,"/",adios_string,item->item.var->name,"");
-                free (getmaxafrom);
+                // Found variable ==> create a dims attribute for it.
+                if (counter == 0){
+                    gettscalefrom0 = 0;
+                    gettscalefrom0 = strdup(c);
+                }else if (counter == 1){
+                    gettscalefrom1 = 0;
+                    gettscalefrom1 = strdup(c);
+                }else if (counter == 2){
+                    gettscalefrom2 = 0;
+                    gettscalefrom2 = strdup(c);
+                }
                 counter++;
             }
         }
         else
         {
-            // Create attributes for each maximum
-            item->item.rank = strtod (c, 0);
-            counterstr[0] = '\0';
-            snprintf(counterstr, 5, "%d", counter);
-            max_att_nam = 0;
-            conca_numb_att_nam(&max_att_nam, name, "max", counterstr);
-            adios_common_define_attribute (p_new_group,max_att_nam,"/",adios_double,c,"");
-            free (max_att_nam);
-            item->item.var = 0;
-            counter++;        
+            if (counter == 0){
+                gettscalefrom0 = 0;
+                gettscalefrom0 = strdup(c);
+            }else if (counter == 1){
+                gettscalefrom1 = 0;
+                gettscalefrom1 = strdup(c);
+            }else if (counter == 2){
+                gettscalefrom2 = 0;
+                gettscalefrom2 = strdup(c);
+            }
+            counter++;
         }
 
-        adios_append_mesh_item (&(mesh->maximum), item);
-
         c = strtok (NULL, ",");
     }
 
-    char * maxa = 0;
-    counterstr[0] = '\0';
-    snprintf(counterstr, 5, "%d", counter);
-    maxa = 0;
-    conca_att_nam(&maxa, name, "maxa");
-    adios_common_define_attribute (p_new_group,maxa,"/",adios_double,counterstr,"");
-    free (maxa);
+    if (counter == 3){
+        time_start_att_val = strdup(gettscalefrom0);
+        conca_mesh_att_nam(&time_start_att_nam, name, "time-scale-start");
+        // if this is string
+        if (!strtod (time_start_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_string,time_start_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_double,time_start_att_val,"");
+        time_stride_att_val = strdup(gettscalefrom1);
+        conca_mesh_att_nam(&time_stride_att_nam, name, "time-scale-stride");
+        // if this is string
+        if (!strtod (time_stride_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_string,time_stride_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_double,time_stride_att_val,"");
+        time_count_att_val = strdup(gettscalefrom2);
+        conca_mesh_att_nam(&time_count_att_nam, name, "time-scale-count");
+        // if this is string
+        if (!strtod (time_count_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_string,time_count_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_double,time_count_att_val,"");
+         free(time_start_att_val);
+         free(time_stride_att_val);
+         free(time_count_att_val);
+         free(gettscalefrom2);
+         free(gettscalefrom1);
+         free(gettscalefrom0);
+    }else if (counter == 2) {
+        time_min_att_val = strdup(gettscalefrom0);
+        conca_mesh_att_nam(&time_min_att_nam, name, "time-scale-min");
+        // if this is string
+        if (!strtod (time_min_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_string,time_min_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_double,time_min_att_val,"");
+        time_max_att_val = strdup(gettscalefrom1);
+        conca_mesh_att_nam(&time_max_att_nam, name, "time-scale-max");
+        // if this is string
+        if (!strtod (time_max_att_val, &ptr_end))
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_string,time_max_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_double,time_max_att_val,"");
+         free(time_min_att_val);
+         free(time_max_att_val);
+         free(gettscalefrom1);
+         free(gettscalefrom0);
+    } else if (counter == 1){
+        time_var_att_val = strdup(gettscalefrom0);
+        if (!strtod (time_var_att_val, &ptr_end)){
+            conca_mesh_att_nam(&time_var_att_nam, name, "time-scale-var");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_string,time_var_att_val,"");
+        }else{
+            conca_mesh_att_nam(&time_var_att_nam, name, "time-scale-count");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_double,time_var_att_val,"");
+       }
+       free(gettscalefrom0);
+       free(time_var_att_val);
+    }else{
+       printf("Error: time format not recognized.\nPlease check documentation for time formatting.\n");
+       free(d1);
+       return 0;
+    }
+      
     free (d1);
 
     return 1;
 }
-
-static int parseMeshUniformOrigin (const char * origin
-                                  ,struct adios_group_struct * new_group
-                                  ,struct adios_mesh_uniform_struct * mesh
-                                  ,const char * name
-                                  )
+ 
+// Parse var hyper slab: lines or planes from a higher dimension mesh
+static int parseVarHyperSlab ( const char * hyperslab,
+                                struct adios_group_struct * new_group,
+                                const char * name)
 {
-    char * c;  // comma location
-    char * d1; // save of strdup
-    struct adios_mesh_item_list_struct * item = 0;
+    char * c;                      // comma location
+    char * d1;                     // save of strdup
     int64_t      p_new_group = (int64_t) new_group;
-    char * org_att_nam = 0; // origins attribute name   
-    char * getorgsfrom = 0; // origins attribute name that is a var
-    int counter = 0;        // used to create orgX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create orgX attributes
-
-    if (!origin)
-    {
-        log_warn ("config.xml: origin value required "
-                         "for uniform mesh: %s\n"
-                         ,name
-                );
+    char * gethslabfrom0 = 0;     // hslab attribute xml value
+    char * gethslabfrom1 = 0;     // hslab attribute xml value
+    char * gethslabfrom2 = 0;     // hslab attribute xml value
+    char * hslab_var_att_nam = 0;   // hslab attribute name for var or num
+    char * hslab_start_att_nam = 0; // hslab attribute name for start
+    char * hslab_stride_att_nam = 0;// hslab attribute name for stride
+    char * hslab_count_att_nam = 0; // hslab attribute name for count
+    char * hslab_max_att_nam = 0;   // hslab attribute name for max
+    char * hslab_min_att_nam = 0;   // hslab attribute name for min
+    char * hslab_var_att_val = 0;   // hslab attribute value for var or num
+    char * hslab_start_att_val = 0; // hslab attribute value for start 
+    char * hslab_stride_att_val = 0;// hslab attribute value for stride
+    char * hslab_count_att_val = 0; // hslab attribute value for count
+    char * hslab_max_att_val = 0;   // hslab attribute value for max
+    char * hslab_min_att_val = 0;   // hslab attribute value for min
+    int counter = 0;               // used to get type of time hslab bounds
+    // We are going to allow
+    // 1. start/stride/count 3 components - indices of the mesh dimensions
+    // 2. min/max range of the mesh dimensions
+    
+    char counterstr[5] = {0,0,0,0,0}; // used to create tsteps attributes
 
-        return 0;
+    /* We do not fail if this is not given as variables all have nsteps
+       in ADIOS_inq_var = # of times the var was written
+    */
+    if (!hyperslab){
+        return 1;
     }
 
-    d1 = strdup (origin);
+    d1 = strdup (hyperslab);
 
     c = strtok (d1, ",");
 
     while (c)
     {
-        item = (struct adios_mesh_item_list_struct *) malloc
-                            (sizeof (struct adios_mesh_item_list_struct));
-        item->next = 0;
+        if (counter == 0){
+            gethslabfrom0 = 0;
+            gethslabfrom0 = strdup(c);
+        }else if (counter == 1){
+            gethslabfrom1 = 0;
+            gethslabfrom1 = strdup(c);
+        }else if (counter == 2){
+            gethslabfrom2 = 0;
+            gethslabfrom2 = strdup(c);
+        }
+        counter++;
+        c = strtok (NULL, ",");
+    }
+    // TODO: these should be ints only, no decimal for start, stride count, not any number should work
+    if (counter == 3){
+        hslab_start_att_val = strdup(gethslabfrom0);
+        conca_var_att_nam(&hslab_start_att_nam, name, "start");
+        adios_common_define_attribute (p_new_group,hslab_start_att_nam,"/",adios_string,hslab_start_att_val,"");
+        hslab_stride_att_val = strdup(gethslabfrom1);
+        conca_var_att_nam(&hslab_stride_att_nam, name, "stride");
+        adios_common_define_attribute (p_new_group,hslab_stride_att_nam,"/",adios_string,hslab_stride_att_val,"");
+        hslab_count_att_val = strdup(gethslabfrom2);
+        conca_var_att_nam(&hslab_count_att_nam, name, "count");
+        adios_common_define_attribute (p_new_group,hslab_count_att_nam,"/",adios_string,hslab_count_att_val,"");
+         free(hslab_start_att_val);
+         free(hslab_stride_att_val);
+         free(hslab_count_att_val);
+         free(gethslabfrom2);
+         free(gethslabfrom1);
+         free(gethslabfrom0);
+    }else if (counter == 2) {
+        hslab_min_att_val = strdup(gethslabfrom0);
+        conca_var_att_nam(&hslab_min_att_nam, name, "min");
+        adios_common_define_attribute (p_new_group,hslab_min_att_nam,"/",adios_string,hslab_min_att_val,"");
+        hslab_max_att_val = strdup(gethslabfrom1);
+        conca_var_att_nam(&hslab_max_att_nam, name, "max");
+        adios_common_define_attribute (p_new_group,hslab_max_att_nam,"/",adios_string,hslab_max_att_val,"");
+         free(hslab_min_att_val);
+         free(hslab_max_att_val);
+         free(gethslabfrom1);
+         free(gethslabfrom0);
+    }else{
+       printf("Error: time format not recognized.\nPlease check documentation for time formatting.\n");
+       free(d1);
+       return 0;
+    }
 
-        if (!item)
-        {
-            log_warn ("Out of memory parseMeshUniformOrigin of mesh: %s\n", name);
-            free (d1);
+    free (d1);
 
-            return 0;
-        }
+    return 1;
+
+}
+
+
+// Parse var time steps (integers = number of times vars are written)
+static int parseVarTimeSteps (const char * timesteps
+                                      ,struct adios_group_struct * new_group
+                                      ,const char * name
+                                      )
+{
+    char * c;                      // comma location
+    char * d1;                     // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    char * gettstepsfrom0 = 0;     // tstep attribute xml value
+    char * gettstepsfrom1 = 0;     // tstep attribute xml value
+    char * gettstepsfrom2 = 0;     // tstep attribute xml value
+    char * time_var_att_nam = 0;   // tstep attribute name for var or num
+    char * time_start_att_nam = 0; // tstep attribute name for start
+    char * time_stride_att_nam = 0;// tstep attribute name for stride
+    char * time_count_att_nam = 0; // tstep attribute name for count
+    char * time_max_att_nam = 0;   // tstep attribute name for max
+    char * time_min_att_nam = 0;   // tstep attribute name for min
+    char * time_var_att_val = 0;   // tstep attribute value for var or num
+    char * time_start_att_val = 0; // tstep attribute value for start 
+    char * time_stride_att_val = 0;// tstep attribute value for stride
+    char * time_count_att_val = 0; // tstep attribute value for count
+    char * time_max_att_val = 0;   // tstep attribute value for max
+    char * time_min_att_val = 0;   // tstep attribute value for min
+    int counter = 0;               // used to get type of time steps bounds
+
+    // We are going to allow
+    // 1. a number =  just the number - a multiple of mesh time step 
+    // 2. start/stride/count 3 components - indices of the mesh time steps
+    // 3. min/max range of the mesh time step
+    // 4. An ADIOS var = time could be a list of int stored by user
+    char counterstr[5] = {0,0,0,0,0}; // used to create tsteps attributes
+
+    /* We do not fail if this is not given as variables all have nsteps
+       in ADIOS_inq_var = # of times the var was written
+    */
+    if (!timesteps){
+        return 1;
+    }
+
+    d1 = strdup (timesteps);
+
+    c = strtok (d1, ",");
 
+    while (c)
+    {
+        struct adios_var_struct * var = 0;
         if (adios_int_is_var (c))
         {
-            item->item.rank = 0.0;
-            item->item.var =
+            var =
                     adios_find_var_by_name (new_group->vars, c
                                            ,new_group->all_unique_var_names
                                            );
-            if (!item->item.var)
+            if (!var)
             {
-                log_warn ("config.xml: invalid variable %s for origin\n"
-                        "of mesh: %s\n"
-                        ,c
-                        ,name
+                log_warn ("config.xml: invalid variable %s\n"
+                                 "for time-steps of var: %s\n"
+                                 ,c
+                                 ,name
                         );
                 free (d1);
 
                 return 0;
+
             }else{
-                // Found variable ==> create a orgs attribute for it.
-                counterstr[0] = '\0';
-                snprintf(counterstr, 5, "%d", counter);
-                getorgsfrom = 0;
-                conca_numb_att_nam(&getorgsfrom, name, "org", counterstr);
-                adios_common_define_attribute (p_new_group,getorgsfrom,"/",adios_string,item->item.var->name,"");
-                free (getorgsfrom);
+                // Found variable ==> create a dims attribute for it.
+                if (counter == 0){
+                    gettstepsfrom0 = 0;
+                    gettstepsfrom0 = strdup(c);
+                }else if (counter == 1){
+                    gettstepsfrom1 = 0;
+                    gettstepsfrom1 = strdup(c);
+                }else if (counter == 2){
+                    gettstepsfrom2 = 0;
+                    gettstepsfrom2 = strdup(c);
+                }
                 counter++;
             }
         }
         else
         {
-            // Create attributes for each origin 
-            item->item.rank = strtod (c, 0);
-            item->item.var = 0;
-            counterstr[0] = '\0';
-            snprintf(counterstr, 5, "%d", counter);
-            org_att_nam = 0;
-            conca_numb_att_nam(&org_att_nam, name, "org", counterstr);
-            adios_common_define_attribute (p_new_group,org_att_nam,"/",adios_double,c,"");
-            free (org_att_nam);
+            if (counter == 0){
+                gettstepsfrom0 = 0;
+                gettstepsfrom0 = strdup(c);
+            }else if (counter == 1){
+                gettstepsfrom1 = 0;
+                gettstepsfrom1 = strdup(c);
+            }else if (counter == 2){
+                gettstepsfrom2 = 0;
+                gettstepsfrom2 = strdup(c);
+            }
             counter++;
         }
 
-        adios_append_mesh_item (&(mesh->origin), item);
-
         c = strtok (NULL, ",");
     }
 
-    char * orgs = 0;
-    counterstr[0] = '\0';
-    snprintf(counterstr, 5, "%d", counter);
-    orgs = 0;
-    conca_att_nam(&orgs, name, "orgs");
-    adios_common_define_attribute (p_new_group,orgs,"/",adios_double,counterstr,"");
-    free (orgs);
-
+    if (counter == 3){
+        time_start_att_val = strdup(gettstepsfrom0);
+        conca_var_att_nam(&time_start_att_nam, name, "time-steps-start");
+        // if this is string
+        if (adios_int_is_var (time_start_att_val))
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_string,time_start_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_double,time_start_att_val,"");
+        time_stride_att_val = strdup(gettstepsfrom1);
+        conca_var_att_nam(&time_stride_att_nam, name, "time-steps-stride");
+        // if this is string
+        if (adios_int_is_var (time_stride_att_val))
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_string,time_stride_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_double,time_stride_att_val,"");
+        time_count_att_val = strdup(gettstepsfrom2);
+        conca_var_att_nam(&time_count_att_nam, name, "time-steps-count");
+        // if this is string
+        if (adios_int_is_var (time_count_att_val))
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_string,time_count_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_double,time_count_att_val,"");
+         free(time_start_att_val);
+         free(time_stride_att_val);
+         free(time_count_att_val);
+         free(gettstepsfrom2);
+         free(gettstepsfrom1);
+         free(gettstepsfrom0);
+    }else if (counter == 2) {
+        time_min_att_val = strdup(gettstepsfrom0);
+        conca_var_att_nam(&time_min_att_nam, name, "time-steps-min");
+        // if this is string
+        if (adios_int_is_var (time_min_att_val))
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_string,time_min_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_double,time_min_att_val,"");
+        time_max_att_val = strdup(gettstepsfrom1);
+        conca_var_att_nam(&time_max_att_nam, name, "time-steps-max");
+        // if this is string
+        if (adios_int_is_var (time_max_att_val))
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_string,time_max_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_double,time_max_att_val,"");
+         free(time_min_att_val);
+         free(time_max_att_val);
+         free(gettstepsfrom1);
+         free(gettstepsfrom0);
+    } else if (counter == 1){
+        time_var_att_val = strdup(gettstepsfrom0);
+        if (adios_int_is_var (time_var_att_val)){
+            conca_var_att_nam(&time_var_att_nam, name, "time-steps-var");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_string,time_var_att_val,"");
+        }else{
+            conca_var_att_nam(&time_var_att_nam, name, "time-steps-count");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_double,time_var_att_val,"");
+       }
+       free(time_var_att_val);
+       free(gettstepsfrom0);
+    }else{
+       printf("Error: time format not recognized.\nPlease check documentation for time formatting.\n");
+       free(d1);
+       return 0;
+    }
+    
     free (d1);
-
+    
     return 1;
 }
 
-static int parseMeshUniformSpacing (const char * spacing
-                                   ,struct adios_group_struct * new_group
-                                   ,struct adios_mesh_uniform_struct * mesh
-                                   ,const char * name
-                                   )
+// Parse mesh time steps (integers = number of times vars are written)
+static int parseMeshTimeSteps (const char * timesteps
+                                      ,struct adios_group_struct * new_group
+                                      ,const char * name
+                                      )
 {
-    char * c;  // comma location
-    char * d1; // save of strdup
-    struct adios_mesh_item_list_struct * item = 0;
+    char * c;                      // comma location
+    char * d1;                     // save of strdup
     int64_t      p_new_group = (int64_t) new_group;
-    char * spa_att_nam = 0; // spacings attribute name   
-    char * getspasfrom = 0; // spacings attribute name that is a var
-    int counter = 0;        // used to create spaX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create spaX attributes if (!spacing)
-
-    if (!spacing)
-    {
-        log_warn ("config.xml: mesh uniform spacing value "
-                "required for mesh: %s\n"
-                ,name
-                );
-        return 0;
+    char * gettstepsfrom0 = 0;     // tstep attribute xml value
+    char * gettstepsfrom1 = 0;     // tstep attribute xml value
+    char * gettstepsfrom2 = 0;     // tstep attribute xml value
+    char * time_var_att_nam = 0;   // tstep attribute name for var or num
+    char * time_start_att_nam = 0; // tstep attribute name for start
+    char * time_stride_att_nam = 0;// tstep attribute name for stride
+    char * time_count_att_nam = 0; // tstep attribute name for count
+    char * time_max_att_nam = 0;   // tstep attribute name for max
+    char * time_min_att_nam = 0;   // tstep attribute name for min
+    char * time_var_att_val = 0;   // tstep attribute value for var or num
+    char * time_start_att_val = 0; // tstep attribute value for start 
+    char * time_stride_att_val = 0;// tstep attribute value for stride
+    char * time_count_att_val = 0; // tstep attribute value for count
+    char * time_max_att_val = 0;   // tstep attribute value for max
+    char * time_min_att_val = 0;   // tstep attribute value for min
+    int counter = 0;               // used to get type of time steps bounds
+
+    // We are going to allow
+    // 1. a number =  just the number of time steps default start = 0
+    // 2. start/stride/count 3 components
+    // 3. min/max range where this mesh is used
+    // 4. An ADIOS var = time could be a list of int stored by user
+    char counterstr[5] = {0,0,0,0,0}; // used to create tsteps attributes
+
+    /* We do not fail if this is not given as variables all have nsteps
+       in ADIOS_inq_var = # of times the var was written
+    */
+    if (!timesteps){
+        printf("time-steps for mesh %s attribute not provided.\n", name);
+        return 1;
     }
 
-    d1 = strdup (spacing);
+    d1 = strdup (timesteps);
 
     c = strtok (d1, ",");
 
     while (c)
     {
-        item = (struct adios_mesh_item_list_struct *) malloc
-                            (sizeof (struct adios_mesh_item_list_struct));
-        item->next = 0;
-
-        if (!item)
-        {
-            log_warn ("Out of memory parseMeshUniformSpacing for mesh: %s\n", name);
-            free (d1);
-
-            return 0;
-        }
-
+        struct adios_var_struct * var = 0;
         if (adios_int_is_var (c))
         {
-            item->item.rank = 0.0;
-            item->item.var =
+            var =
                     adios_find_var_by_name (new_group->vars, c
                                            ,new_group->all_unique_var_names
                                            );
-            if (!item->item.var)
+            if (!var)
             {
-                log_warn ("config.xml: invalid variable: %s for spacing\n"
-                                 "of mesh: %s\n"
+                log_warn ("config.xml: invalid variable %s\n"
+                                 "for dimensions of mesh: %s\n"
                                  ,c
                                  ,name
                         );
                 free (d1);
 
                 return 0;
+
             }else{
-                // Found variable ==> create a spas attribute for it.
-                // char * getspasfrom = 0;
-                counterstr[0] = '\0';
-                snprintf(counterstr, 5, "%d", counter);
-                getspasfrom = 0;
-                conca_numb_att_nam(&getspasfrom, name, "spa", counterstr);
-                adios_common_define_attribute (p_new_group,getspasfrom,"/",adios_string,item->item.var->name,"");
-                free (getspasfrom);
+                // Found variable ==> create a dims attribute for it.
+                if (counter == 0){
+                    gettstepsfrom0 = 0;
+                    gettstepsfrom0 = strdup(c);
+                }else if (counter == 1){
+                    gettstepsfrom1 = 0;
+                    gettstepsfrom1 = strdup(c);
+                }else if (counter == 2){
+                    gettstepsfrom2 = 0;
+                    gettstepsfrom2 = strdup(c);
+                }
                 counter++;
             }
         }
         else
         {
-            // Create attributes for each dimension
-            item->item.rank = strtod (c, 0);
-            counterstr[0] = '\0';
-            snprintf(counterstr, 5, "%d", counter);
-            spa_att_nam = 0;
-            conca_numb_att_nam(&spa_att_nam, name, "spa", counterstr);
-            adios_common_define_attribute (p_new_group,spa_att_nam,"/",adios_double,c,"");
-            free (spa_att_nam);
-            item->item.var = 0;
+            if (counter == 0){
+                gettstepsfrom0 = 0;
+                gettstepsfrom0 = strdup(c);
+            }else if (counter == 1){
+                gettstepsfrom1 = 0;
+                gettstepsfrom1 = strdup(c);
+            }else if (counter == 2){
+                gettstepsfrom2 = 0;
+                gettstepsfrom2 = strdup(c);
+            }
             counter++;
         }
 
-        adios_append_mesh_item (&(mesh->origin), item);
-
         c = strtok (NULL, ",");
     }
 
-    char * spas = 0;
-    counterstr[0] = '\0';
-    snprintf(counterstr, 5, "%d", counter);
-    spas = 0;
-    conca_att_nam(&spas, name, "spas");
-    adios_common_define_attribute (p_new_group,spas,"/",adios_double,counterstr,"");
-    free (spas);
-
+    if (counter == 3){
+        time_start_att_val = strdup(gettstepsfrom0);
+        conca_mesh_att_nam(&time_start_att_nam, name, "time-steps-start");
+        // if this is string
+        if (adios_int_is_var (time_start_att_val))
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_string,time_start_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_start_att_nam,"/",adios_double,time_start_att_val,"");
+        time_stride_att_val = strdup(gettstepsfrom1);
+        conca_mesh_att_nam(&time_stride_att_nam, name, "time-steps-stride");
+        // if this is string
+        if (adios_int_is_var (time_stride_att_val))
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_string,time_stride_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_stride_att_nam,"/",adios_double,time_stride_att_val,"");
+        time_count_att_val = strdup(gettstepsfrom2);
+        conca_mesh_att_nam(&time_count_att_nam, name, "time-steps-count");
+        // if this is string
+        if (adios_int_is_var (time_count_att_val))
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_string,time_count_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_count_att_nam,"/",adios_double,time_count_att_val,"");
+         free(time_start_att_val);
+         free(time_stride_att_val);
+         free(time_count_att_val);
+         free(gettstepsfrom2);
+         free(gettstepsfrom1);
+         free(gettstepsfrom0);
+    }else if (counter == 2) {
+        time_min_att_val = strdup(gettstepsfrom0);
+        conca_mesh_att_nam(&time_min_att_nam, name, "time-steps-min");
+        // if this is string
+        if (adios_int_is_var (time_min_att_val))
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_string,time_min_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_min_att_nam,"/",adios_double,time_min_att_val,"");
+        time_max_att_val = strdup(gettstepsfrom1);
+        conca_mesh_att_nam(&time_max_att_nam, name, "time-steps-max");
+        // if this is string
+        if (adios_int_is_var (time_max_att_val))
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_string,time_max_att_val,"");
+        else
+            adios_common_define_attribute (p_new_group,time_max_att_nam,"/",adios_double,time_max_att_val,"");
+         free(time_min_att_val);
+         free(time_max_att_val);
+         free(gettstepsfrom1);
+         free(gettstepsfrom0);
+    } else if (counter == 1){
+        time_var_att_val = strdup(gettstepsfrom0);
+        if (adios_int_is_var (time_var_att_val)){
+            conca_mesh_att_nam(&time_var_att_nam, name, "time-steps-var");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_string,time_var_att_val,"");
+        }else{
+            conca_mesh_att_nam(&time_var_att_nam, name, "time-steps-count");
+            adios_common_define_attribute (p_new_group,time_var_att_nam,"/",adios_double,time_var_att_val,"");
+       }
+       free(time_var_att_val);
+       free(gettstepsfrom0);
+    }else{
+       printf("Error: time format not recognized.\nPlease check documentation for time formatting.\n");
+       free(d1);
+       return 0;
+    }
+    
     free (d1);
-
+    
     return 1;
 }
 
-static int parseMeshRectilinearDimensions (const char * dimensions
-                                          ,struct adios_group_struct * new_group
-                                          ,struct adios_mesh_rectilinear_struct * mesh
-                                          ,const char * name
-                                          )
+static int parseMeshUniformDimensions0 (const char * dimensions
+                                      ,struct adios_group_struct * new_group
+                                      ,struct adios_mesh_uniform_struct * mesh
+                                      ,const char * name
+                                      )
 {
     char * c;  // comma location
     char * d1; // save of strdup
     struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
     char * dim_att_nam = 0; // dimensions attribute name
-    char * getdimsfrom = 0; // dimensions attribute name that is a var
+    char * getdimsfrom = 0; // dimensions attribute that is a var
     int counter = 0;        // used to create dimX attributes
     char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
 
     if (!dimensions)
     {
-        log_warn ("config.xml: dimensions value required"
-                         "for rectilinear mesh: %s\n"
+        log_warn ("config.xml: dimensions value required for"
+                         "uniform mesh: %s\n"
                          ,name
                 );
 
@@ -667,9 +1070,9 @@ static int parseMeshRectilinearDimensions (const char * dimensions
 
         if (!item)
         {
-            log_warn ("Out of memory parseMeshRectilinearDimensions for mesh: %s\n"
+            log_warn ("Out of memory parseMeshUniformDimensions of mesh: %s\n"
                              ,name
-                             );
+                    );
             free (d1);
 
             return 0;
@@ -684,21 +1087,22 @@ static int parseMeshRectilinearDimensions (const char * dimensions
                                            );
             if (!item->item.var)
             {
-                log_warn ("config.xml: invalid variable: %s for dimensions\n"
-                                 "of mesh: %s\n"
+                log_warn ("config.xml: invalid variable %s\n"
+                                 "for dimensions of mesh: %s\n"
                                  ,c
                                  ,name
                         );
                 free (d1);
 
                 return 0;
-            }else
-            {
+
+            }else{
                 // Found variable ==> create a dims attribute for it.
+                // char * getdimsfrom = 0;
+                getdimsfrom = 0;
                 counterstr[0] = '\0';
                 snprintf(counterstr, 5, "%d", counter);
-                getdimsfrom = 0;
-                conca_numb_att_nam(&getdimsfrom, name, "dim", counterstr);
+                conca_mesh_numb_att_nam(&getdimsfrom, name, "dimensions", counterstr);
                 adios_common_define_attribute (p_new_group,getdimsfrom,"/",adios_string,item->item.var->name,"");
                 free (getdimsfrom);
                 counter++;
@@ -706,16 +1110,15 @@ static int parseMeshRectilinearDimensions (const char * dimensions
         }
         else
         {
-            // Create attributes for each dimension
             item->item.rank = strtod (c, 0);
             counterstr[0] = '\0';
             snprintf(counterstr, 5, "%d", counter);
             dim_att_nam = 0;
-            conca_numb_att_nam(&dim_att_nam, name, "dim", counterstr);
+            conca_mesh_numb_att_nam(&dim_att_nam, name, "dimensions", counterstr);
             adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_double,c,"");
             free (dim_att_nam);
             item->item.var = 0;
-            counter++;        
+            counter++;
         }
 
         adios_append_mesh_item (&(mesh->dimensions), item);
@@ -724,73 +1127,128 @@ static int parseMeshRectilinearDimensions (const char * dimensions
     }
 
     char * dims = 0;
-    counterstr[0] = '\0';    
+    counterstr[0] = '\0';
     snprintf(counterstr, 5, "%d", counter);
     dims = 0;
-    conca_att_nam(&dims, name, "dims");
+    conca_mesh_att_nam(&dims, name, "dimensions-num");
+
     adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
 
-    free (dims); 
+    free (dims);
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshRectilinearCoordinatesMultiVar (const char * coordinates
-                                                   ,struct adios_group_struct * new_group
-                                                   ,struct adios_mesh_rectilinear_struct * mesh
-                                                   ,const char * name
-                                                   )
+static int parseMeshUniformDimensions1 (const char * dimensions
+        							  ,struct adios_group_struct * new_group
+                                      ,const char * name
+                                      )
 {
     char * c;  // comma location
     char * d1; // save of strdup
-    struct adios_mesh_var_list_struct * var = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * coo_att_nam = 0; // coordinates attribute name
-    int counter = 0;        // used to create ptsX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
+    char * dim_att_nam = 0; // dimensions attribute name
+    char * getdimsfrom = 0; // dimensions attribute that is a var
+    int counter = 0;        // used to create dimX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
 
-    if (!coordinates)
+    if (!dimensions)
     {
-        log_warn ("config.xml: coordinates-multi-var value required"
-                         "for rectilinear mesh: %s\n"
+        log_warn ("config.xml: dimensions value required for"
+                         "uniform mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (coordinates);
+    d1 = strdup (dimensions);
 
     c = strtok (d1, ",");
 
     while (c)
     {
-        var = (struct adios_mesh_var_list_struct *) malloc
-                        (sizeof (struct adios_mesh_var_list_struct));
-        var->next = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        dim_att_nam = 0;
+        conca_mesh_numb_att_nam(&dim_att_nam, name, "dimensions", counterstr);
+        adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_string,c,"");
+        free (dim_att_nam);
+        counter++;
+        c = strtok (NULL, ",");
+    }
 
-        if (!var)
+    char * dims = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    dims = 0;
+    conca_mesh_att_nam(&dims, name, "dimensions-num");
+
+    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
+
+    free (dims);
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUniformMaximums0 (const char * maximum
+                                      ,struct adios_group_struct * new_group
+                                      ,struct adios_mesh_uniform_struct * mesh
+                                      ,const char * name
+                                      )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_item_list_struct * item = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * max_att_nam = 0; // maxima attribute name   
+    char * getmaxafrom = 0; // maxima attribute name that is a var
+    int counter = 0;        // used to create maxX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create maxX attributes
+
+    if (!maximum)
+    {
+         log_warn ("config.xml: maximum value required"
+                         "for uniform mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (maximum);
+
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+        item = (struct adios_mesh_item_list_struct *) malloc
+                            (sizeof (struct adios_mesh_item_list_struct));
+        item->next = 0;
+
+        if (!item)
         {
-            log_warn ("Out of memory parseMeshRectilinearCoordinatesMultiVar\n"
-                             "for mesh: %s"
+            log_warn ("Out of memory parseMeshUniformMaximums of mesh: %s\n"
                              ,name
                     );
             free (d1);
 
             return 0;
         }
-
         if (adios_int_is_var (c))
         {
-            var->var =
+            item->item.rank = 0.0;
+            item->item.var =
                     adios_find_var_by_name (new_group->vars, c
                                            ,new_group->all_unique_var_names
                                            );
-            if (!var->var)
+            if (!item->item.var)
             {
-                log_warn ("config.xml: invalid variable: %s for coordinates\n"
+                log_warn ("config.xml: invalid variable %s for maximum\n"
                                  "of mesh: %s\n"
                                  ,c
                                  ,name
@@ -798,235 +1256,126 @@ static int parseMeshRectilinearCoordinatesMultiVar (const char * coordinates
                 free (d1);
 
                 return 0;
-            }else
-            {
-                // Found variable ==> create a coords attribute for it.
-                coo_att_nam = 0;
+            }else{
+                // Found variable ==> create a maxa attribute for it.
+                // char * getmaxafrom = 0;
+                getmaxafrom = 0;
                 counterstr[0] = '\0';
                 snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&coo_att_nam, name, "pts", counterstr);
-                adios_common_define_attribute (p_new_group,coo_att_nam,"/",adios_string,c,"");
-                free (coo_att_nam);
+                conca_mesh_numb_att_nam(&getmaxafrom, name, "maximums", counterstr);
+                adios_common_define_attribute (p_new_group,getmaxafrom,"/",adios_string,item->item.var->name,"");
+                free (getmaxafrom);
                 counter++;
             }
         }
         else
         {
-            var->var = 0;
-            log_warn ("config.xml: invalid variable: %s for coordinates"
-                             "of rectilinear mesh: %s\n"
-                             ,c
-                             ,name
-                    );
-            free (d1);
-            return 0;
-        }
-
-        adios_append_mesh_var (&(mesh->coordinates), var);
-
-        c = strtok (NULL, ",");
-    }
-
-    // At this points, coordinates should point to at least 2 variables
-    // otherwise let the user know to use the coordinates-single-var tag
-    if (counter > 1) {
-        char * coords = 0;
-        counterstr[0] = '\0';
-        snprintf(counterstr, 5, "%d", counter);
-        conca_att_nam(&coords, name, "nvars");
-        adios_common_define_attribute (p_new_group,coords,"/",adios_double,counterstr,"");
-        free (coords);
-    } else
-    {
-        log_warn ("config.xml: coordinates-multi-var expects "
-                         "at least 2 variables (%s)\n"
-                         ,name
-                );
-        free (d1);
-        return 0;
-    }
-
-    free (d1);
-
-    return 1;
-}
-
-static int parseMeshRectilinearCoordinatesSingleVar (const char * coordinates
-                                                    ,struct adios_group_struct * new_group
-                                                    ,struct adios_mesh_rectilinear_struct * mesh
-                                                    ,const char * name
-                                                    )
-{
-    char * d1; // save of strdup
-    struct adios_mesh_var_list_struct * var = 0;
-    int64_t      p_new_group = (int64_t) new_group;
-    char * coo_att_nam = 0; // coordinates attribute name
-
-    if (!coordinates)
-    {
-        log_warn ("config.xml: coordinates-single-var value required"
-                         "for rectilinear mesh: %s\n"
-                         ,name
-                );
-
-        return 0;
-    }
-
-    d1 = strdup (coordinates);
-
-    var = (struct adios_mesh_var_list_struct *) malloc
-                    (sizeof (struct adios_mesh_var_list_struct));
-    var->next = 0;
-
-    if (!var)
-    {
-        log_warn ("Out of memory parseMeschRectilinearCoordinatesSingleVar\n");
-        free (d1);
-
-        return 0;
-     }
+            // Create attributes for each maximum
+            item->item.rank = strtod (c, 0);
+            counterstr[0] = '\0';
+            snprintf(counterstr, 5, "%d", counter);
+            max_att_nam = 0;
+            conca_mesh_numb_att_nam(&max_att_nam, name, "maximums", counterstr);
+            adios_common_define_attribute (p_new_group,max_att_nam,"/",adios_double,c,"");
+            free (max_att_nam);
+            item->item.var = 0;
+            counter++;        
+        }
 
-     if (adios_int_is_var (d1))
-     {
-        var->var =
-               adios_find_var_by_name (new_group->vars, d1
-                                      ,new_group->all_unique_var_names
-                                      );
-        if (!var->var)
-        {
-            log_warn ("config.xml: invalid variable: %s for coordinates"
-                             "of mesh: %s\n"
-                             ,d1
-                             ,name
-                    );
-            free (d1);
+        adios_append_mesh_item (&(mesh->maximum), item);
 
-            return 0;
-        }else
-        {
-            // Found variable ==> create a nvars attribute for it.
-            conca_att_nam(&coo_att_nam, name, "nvars");
-            adios_common_define_attribute (p_new_group,coo_att_nam,"/",adios_string,d1,"");
-            free (coo_att_nam);
-        }
-    }
-    else
-    {
-        var->var = 0;
-        log_warn ("config.xml: invalid variable: %s for coordinates of mesh: %s\n"
-                                 ,d1
-                                 ,name
-                );
-        free (d1);
-        return 0;
+        c = strtok (NULL, ",");
     }
 
-    adios_append_mesh_var (&(mesh->coordinates), var);
-
+    char * maxa = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    maxa = 0;
+    conca_mesh_att_nam(&maxa, name, "maximums-num");
+    adios_common_define_attribute (p_new_group,maxa,"/",adios_double,counterstr,"");
+    free (maxa);
     free (d1);
 
     return 1;
 }
 
-static int parseMeshStructuredNspace (const char * nspace
-                                     ,struct adios_group_struct * new_group
-                                     ,struct adios_mesh_structured_struct * mesh
-                                     ,const char * name
-                                     )
+static int parseMeshUniformMaximums1 (const char * maximum
+        							  ,struct adios_group_struct * new_group
+                                      ,const char * name
+                                      )
 {
+    char * c;  // comma location
     char * d1; // save of strdup
     int64_t      p_new_group = (int64_t) new_group;
-    struct adios_mesh_item_struct * item = 0;
-    char * nsp_att_nam = 0; // nspace attribute name
+    char * max_att_nam = 0; // maxima attribute name
+    char * getmaxafrom = 0; // maxima attribute name that is a var
+    int counter = 0;        // used to create maxX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create maxX attributes
 
-    if (!nspace)
+    if (!maximum)
     {
-        log_warn ("config.xml: npsace value required "
-                         "for structured mesh: %s\n"
+         log_warn ("config.xml: maximum value required"
+                         "for uniform mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (nspace);
-
-    item = (struct adios_mesh_item_struct *) malloc
-                            (sizeof (struct adios_mesh_item_struct));
-
-    if (!item)
-    {
-        log_warn ("Out of memory parseMeshStructuredNspace for mesh: %s\n", name);
-        free (d1);
-
-        return 0;
-    }
-
-    conca_att_nam(&nsp_att_nam, name, "nsp");
+    d1 = strdup (maximum);
 
-    if (adios_int_is_var (nspace))
-    {
-        item->rank = 0.0;
-        item->var =
-               adios_find_var_by_name (new_group->vars, nspace
-                                       ,new_group->all_unique_var_names
-                                       );
-        if (!item->var)
-        {
-           log_warn ("config.xml: invalid variable: %s for nspace of mesh: %s\n"
-                            ,nspace
-                            ,name
-                   );
-            free (d1);
+    c = strtok (d1, ",");
 
-            return 0;
-        }else
-        {
-            adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_string,item->var->name,"");
-            free (nsp_att_nam);
-        }
-    }
-    else
+    while (c)
     {
-        item->rank = strtod (nspace, 0);
-        adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_double,nspace,"");
-        free (nsp_att_nam);
-        item->var = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        max_att_nam = 0;
+        conca_mesh_numb_att_nam(&max_att_nam, name, "maximums", counterstr);
+        adios_common_define_attribute (p_new_group,max_att_nam,"/",adios_string,c,"");
+        free (max_att_nam);
+        counter++;
+        c = strtok (NULL, ",");
     }
 
-    mesh->nspace = item;
-
+    char * maxa = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    maxa = 0;
+    conca_mesh_att_nam(&maxa, name, "maximums-num");
+    adios_common_define_attribute (p_new_group,maxa,"/",adios_double,counterstr,"");
+    free (maxa);
     free (d1);
 
     return 1;
 }
 
-static int parseMeshStructuredDimensions (const char * dimensions
-                                         ,struct adios_group_struct * new_group
-                                         ,struct adios_mesh_structured_struct * mesh
-                                         ,const char * name
-                                         )
+static int parseMeshUniformOrigin0 (const char * origin
+                                  ,struct adios_group_struct * new_group
+                                  ,struct adios_mesh_uniform_struct * mesh
+                                  ,const char * name
+                                  )
 {
     char * c;  // comma location
     char * d1; // save of strdup
     struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * dim_att_nam = 0; // dimensions attribute name
-    char * getdimsfrom = 0; // dimensions attribute name that is a var
-    int counter = 0;        // used to create dimX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
+    char * org_att_nam = 0; // origins attribute name   
+    char * getorgsfrom = 0; // origins attribute name that is a var
+    int counter = 0;        // used to create orgX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create orgX attributes
 
-    if (!dimensions)
+    if (!origin)
     {
-        log_warn ("config.xml: dimensions value required"
-                         "for structured mesh: %s\n"
+        log_warn ("config.xml: origin value required "
+                         "for uniform mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (dimensions);
+    d1 = strdup (origin);
 
     c = strtok (d1, ",");
 
@@ -1038,9 +1387,7 @@ static int parseMeshStructuredDimensions (const char * dimensions
 
         if (!item)
         {
-            log_warn ("Out of memory parseMeshStructuredDimensions of mesh: %s\n"
-                             ,name
-                    );
+            log_warn ("Out of memory parseMeshUniformOrigin of mesh: %s\n", name);
             free (d1);
 
             return 0;
@@ -1055,101 +1402,146 @@ static int parseMeshStructuredDimensions (const char * dimensions
                                            );
             if (!item->item.var)
             {
-                log_warn ("config.xml: invalid variable: %s for dimensions\n"
-                                 "of mesh: %s\n"
-                                 ,c
-                                 ,name
+                log_warn ("config.xml: invalid variable %s for origin\n"
+                        "of mesh: %s\n"
+                        ,c
+                        ,name
                         );
-
                 free (d1);
 
                 return 0;
-            } else
-            {
-                // Found variable ==> create a dims attribute for it.
-                // char * getdimsfrom = 0;
+            }else{
+                // Found variable ==> create a orgs attribute for it.
                 counterstr[0] = '\0';
                 snprintf(counterstr, 5, "%d", counter);
-                getdimsfrom = 0;
-                conca_numb_att_nam(&getdimsfrom, name, "dim", counterstr);
-                adios_common_define_attribute (p_new_group,getdimsfrom,"/",adios_string,item->item.var->name,"");
-                free (getdimsfrom);
+                getorgsfrom = 0;
+                conca_mesh_numb_att_nam(&getorgsfrom, name, "origins", counterstr);
+                adios_common_define_attribute (p_new_group,getorgsfrom,"/",adios_string,item->item.var->name,"");
+                free (getorgsfrom);
                 counter++;
             }
         }
         else
         {
+            // Create attributes for each origin 
             item->item.rank = strtod (c, 0);
             item->item.var = 0;
             counterstr[0] = '\0';
             snprintf(counterstr, 5, "%d", counter);
-            dim_att_nam = 0;
-            conca_numb_att_nam(&dim_att_nam, name, "dim", counterstr);
-            adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_double,c,"");
-            free (dim_att_nam);
+            org_att_nam = 0;
+            conca_mesh_numb_att_nam(&org_att_nam, name, "origins", counterstr);
+            adios_common_define_attribute (p_new_group,org_att_nam,"/",adios_double,c,"");
+            free (org_att_nam);
             counter++;
-
         }
 
-        adios_append_mesh_item (&(mesh->dimensions), item);
+        adios_append_mesh_item (&(mesh->origin), item);
 
         c = strtok (NULL, ",");
     }
 
-    char * dims = 0;
+    char * orgs = 0;
     counterstr[0] = '\0';
     snprintf(counterstr, 5, "%d", counter);
-    dims = 0;
-    conca_att_nam(&dims, name, "ndims");
-    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
-
-    free (dims);
+    orgs = 0;
+    conca_mesh_att_nam(&orgs, name, "origins-num");
+    adios_common_define_attribute (p_new_group,orgs,"/",adios_double,counterstr,"");
+    free (orgs);
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshStructuredPointsMultiVar (const char * points
-                                             ,struct adios_group_struct * new_group
-                                             ,struct adios_mesh_structured_struct * mesh
-                                             ,const char * name
-                                             )
+static int parseMeshUniformOrigin1 (const char * origin
+        						  ,struct adios_group_struct * new_group
+                                  ,const char * name
+                                  )
 {
     char * c;  // comma location
     char * d1; // save of strdup
-    struct adios_mesh_var_list_struct * var = 0;
+    struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * pts_att_nam = 0; // pointss attribute name
-    int counter = 0;        // used to create ptsX attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
+    char * org_att_nam = 0; // origins attribute name
+    char * getorgsfrom = 0; // origins attribute name that is a var
+    int counter = 0;        // used to create orgX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create orgX attributes
 
-    if (!points)
+    if (!origin)
     {
-        log_warn ("config.xml: points-multi-var value required"
-                         "for structured mesh: %s\n"
+        log_warn ("config.xml: origin value required "
+                         "for uniform mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (points);
+    d1 = strdup (origin);
 
     c = strtok (d1, ",");
 
     while (c)
     {
-        var = (struct adios_mesh_var_list_struct *) malloc
-                        (sizeof (struct adios_mesh_var_list_struct));
-        var->next = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        org_att_nam = 0;
+        conca_mesh_numb_att_nam(&org_att_nam, name, "origins", counterstr);
+        adios_common_define_attribute (p_new_group,org_att_nam,"/",adios_double,c,"");
+        free (org_att_nam);
+        counter++;
+        c = strtok (NULL, ",");
+    }
 
-        if (!var)
+    char * orgs = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    orgs = 0;
+    conca_mesh_att_nam(&orgs, name, "origins-num");
+    adios_common_define_attribute (p_new_group,orgs,"/",adios_double,counterstr,"");
+
+    free (orgs);
+    free (d1);
+    return 1;
+}
+
+static int parseMeshUniformSpacings0 (const char * spacing
+                                   ,struct adios_group_struct * new_group
+                                   ,struct adios_mesh_uniform_struct * mesh
+                                   ,const char * name
+                                   )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_item_list_struct * item = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * spa_att_nam = 0; // spacings attribute name   
+    char * getspasfrom = 0; // spacings attribute name that is a var
+    int counter = 0;        // used to create spaX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create spaX attributes if (!spacing)
+
+    if (!spacing)
+    {
+        log_warn ("config.xml: mesh uniform spacing value "
+                "required for mesh: %s\n"
+                ,name
+                );
+        return 0;
+    }
+
+    d1 = strdup (spacing);
+
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+        item = (struct adios_mesh_item_list_struct *) malloc
+                            (sizeof (struct adios_mesh_item_list_struct));
+        item->next = 0;
+
+        if (!item)
         {
-            log_warn ("Out of memory parseMeshStructuredPointsMultiVar"
-                             "of mesh: %s\n"
-                             ,name
-                    );
+            log_warn ("Out of memory parseMeshUniformSpacings for mesh: %s\n", name);
             free (d1);
 
             return 0;
@@ -1157,329 +1549,305 @@ static int parseMeshStructuredPointsMultiVar (const char * points
 
         if (adios_int_is_var (c))
         {
-            var->var =
+            item->item.rank = 0.0;
+            item->item.var =
                     adios_find_var_by_name (new_group->vars, c
                                            ,new_group->all_unique_var_names
                                            );
-            if (!var->var)
+            if (!item->item.var)
             {
-                log_warn ("config.xml: invalid variable: %s points of mesh: %s\n"
+                log_warn ("config.xml: invalid variable: %s for spacing\n"
+                                 "of mesh: %s\n"
                                  ,c
                                  ,name
                         );
                 free (d1);
 
                 return 0;
-            }else
-            {
-                // Found variable ==> create a points attribute for it.
-                pts_att_nam = 0;
+            }else{
+                // Found variable ==> create a spas attribute for it.
+                // char * getspasfrom = 0;
                 counterstr[0] = '\0';
                 snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&pts_att_nam, name, "pts", counterstr);
-                adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,c,"");
-                free (pts_att_nam);
+                getspasfrom = 0;
+                conca_mesh_numb_att_nam(&getspasfrom, name, "spacings", counterstr);
+                adios_common_define_attribute (p_new_group,getspasfrom,"/",adios_string,item->item.var->name,"");
+                free (getspasfrom);
                 counter++;
             }
         }
         else
         {
-            var->var = 0;
-            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
-                             ,c
-                             ,name
-                    );
-            free (d1);
-
-            return 0;
+            // Create attributes for each dimension
+            item->item.rank = strtod (c, 0);
+            counterstr[0] = '\0';
+            snprintf(counterstr, 5, "%d", counter);
+            spa_att_nam = 0;
+            conca_mesh_numb_att_nam(&spa_att_nam, name, "spacings", counterstr);
+            adios_common_define_attribute (p_new_group,spa_att_nam,"/",adios_double,c,"");
+            free (spa_att_nam);
+            item->item.var = 0;
+            counter++;
         }
 
-        adios_append_mesh_var (&(mesh->points), var);
+        adios_append_mesh_item (&(mesh->origin), item);
 
         c = strtok (NULL, ",");
     }
 
-    // Define an attribute showing the number of mesh_vars
-    // Should be more than one in this multi-var parsing
-    if (counter > 1){
-        char * pts = 0;
-        counterstr[0] = '\0';
-        snprintf(counterstr, 5, "%d", counter);
-        conca_att_nam(&pts, name, "nvars");
-        adios_common_define_attribute (p_new_group,pts,"/",adios_double,counterstr,"");
-        free (pts);
-    } else
-    {
-            log_warn ("config.xml: points-multi-var tag for mesh: %s "
-                             " expects at least 2 variables\n"
-                             ,name
-                    );
-            free (d1);
-
-            return 0;
-    }
+    char * spas = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    spas = 0;
+    conca_mesh_att_nam(&spas, name, "spacings-num");
+    adios_common_define_attribute (p_new_group,spas,"/",adios_double,counterstr,"");
+    free (spas);
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshStructuredPointsSingleVar (const char * points
-                                              ,struct adios_group_struct * new_group
-                                              ,struct adios_mesh_structured_struct * mesh
-                                              ,const char * name
-                                              )
+static int parseMeshUniformSpacings1 (const char * spacing
+        						   ,struct adios_group_struct * new_group
+                                   ,const char * name
+                                   )
 {
     char * c;  // comma location
     char * d1; // save of strdup
-    struct adios_mesh_var_list_struct * var = 0;
+    struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * pts_att_nam = 0; // points attribute name
+    char * spa_att_nam = 0; // spacings attribute name
+    char * getspasfrom = 0; // spacings attribute name that is a var
+    int counter = 0;        // used to create spaX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create spaX attributes if (!spacing)
 
-    if (!points)
+    if (!spacing)
     {
-        log_warn ("config.xml: points-single-var value required"
-                         "for structured mesh: %s\n"
-                         ,name
+        log_warn ("config.xml: mesh uniform spacing value "
+                "required for mesh: %s\n"
+                ,name
                 );
-
         return 0;
     }
 
-    d1 = strdup (points);
-
-    var = (struct adios_mesh_var_list_struct *) malloc
-                    (sizeof (struct adios_mesh_var_list_struct));
-    var->next = 0;
-
-    if (!var)
-    {
-        log_warn ("Out of memory parseMeshStructuredPointsSingleVar"
-                         "for mesh: %s\n"
-                         ,name
-                );
-        free (d1);
-
-        return 0;
-     }
+    d1 = strdup (spacing);
 
-     if (adios_int_is_var (d1))
-     {
-        var->var =
-               adios_find_var_by_name (new_group->vars, d1
-                                      ,new_group->all_unique_var_names
-                                      );
-        if (!var->var)
-        {
-            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
-                             ,d1
-                             ,name
-                    );
-            free (d1);
+    c = strtok (d1, ",");
 
-            return 0;
-        }else
-        {
-            // Found variable ==> create a number of vars attribute for it.
-            conca_att_nam(&pts_att_nam, name, "nvars");
-            adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,d1,"");
-            free (pts_att_nam);
-        }
-    }
-    else
+    while (c)
     {
-        var->var = 0;
-        log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
-                         ,d1
-                         ,name
-                );
-        free (d1);
-
-        return 0;
+		item->item.rank = strtod (c, 0);
+		counterstr[0] = '\0';
+		snprintf(counterstr, 5, "%d", counter);
+		spa_att_nam = 0;
+		conca_mesh_numb_att_nam(&spa_att_nam, name, "spacings", counterstr);
+		adios_common_define_attribute (p_new_group,spa_att_nam,"/",adios_string,c,"");
+		free (spa_att_nam);
+		item->item.var = 0;
+		counter++;
+        c = strtok (NULL, ",");
     }
 
-    adios_append_mesh_var (&(mesh->points), var);
+    char * spas = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    spas = 0;
+    conca_mesh_att_nam(&spas, name, "spacings-num");
+    adios_common_define_attribute (p_new_group,spas,"/",adios_double,counterstr,"");
+    free (spas);
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshUnstructuredNspace (const char * nspace
-                                     ,struct adios_group_struct * new_group
-                                     ,struct adios_mesh_unstructured_struct * mesh
-                                     ,const char * name
-                                     )
+static int parseMeshRectilinearDimensions0 (const char * dimensions
+                                          ,struct adios_group_struct * new_group
+                                          ,struct adios_mesh_rectilinear_struct * mesh
+                                          ,const char * name
+                                          )
 {
+    char * c;  // comma location
     char * d1; // save of strdup
+    struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    struct adios_mesh_item_struct * item = 0;
-    char * nsp_att_nam = 0; // nspace attribute name
+    char * dim_att_nam = 0; // dimensions attribute name
+    char * getdimsfrom = 0; // dimensions attribute name that is a var
+    int counter = 0;        // used to create dimX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
 
-    if (!nspace)
+    if (!dimensions)
     {
-        log_warn ("config.xml: nspace value required"
-                         "for unstructured mesh: %s\n"
+        log_warn ("config.xml: dimensions value required"
+                         "for rectilinear mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (nspace);
+    d1 = strdup (dimensions);
 
-    item = (struct adios_mesh_item_struct *) malloc
-                            (sizeof (struct adios_mesh_item_struct));
+    c = strtok (d1, ",");
 
-    if (!item)
+    while (c)
     {
-        log_warn ("Out of memory parseMeshUnstructuredNspace for mesh: %s\n"
-                         ,name
-                );
-        free (d1);
-
-        return 0;
-    }
-
-    conca_att_nam(&nsp_att_nam, name, "nsp");
+        item = (struct adios_mesh_item_list_struct *) malloc
+                            (sizeof (struct adios_mesh_item_list_struct));
+        item->next = 0;
 
-    if (adios_int_is_var (nspace))
-    {
-        item->rank = 0.0;
-        item->var =
-               adios_find_var_by_name (new_group->vars, nspace
-                                       ,new_group->all_unique_var_names
-                                       );
-        if (!item->var)
+        if (!item)
         {
-           log_warn ("config.xml: invalid variable: %s for nspace of mesh: %s\n"
-                            ,nspace
-                            ,name
-                   );
+            log_warn ("Out of memory parseMeshRectilinearDimensions for mesh: %s\n"
+                             ,name
+                             );
             free (d1);
 
             return 0;
-        }else
+        }
+
+        if (adios_int_is_var (c))
         {
-            adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_string,item->var->name,"");
-            free (nsp_att_nam);
+            item->item.rank = 0.0;
+            item->item.var =
+                    adios_find_var_by_name (new_group->vars, c
+                                           ,new_group->all_unique_var_names
+                                           );
+            if (!item->item.var)
+            {
+                log_warn ("config.xml: invalid variable: %s for dimensions\n"
+                                 "of mesh: %s\n"
+                                 ,c
+                                 ,name
+                        );
+                free (d1);
+
+                return 0;
+            }else
+            {
+                // Found variable ==> create a dims attribute for it.
+                counterstr[0] = '\0';
+                snprintf(counterstr, 5, "%d", counter);
+                getdimsfrom = 0;
+                conca_mesh_numb_att_nam(&getdimsfrom, name, "dimensions", counterstr);
+                adios_common_define_attribute (p_new_group,getdimsfrom,"/",adios_string,item->item.var->name,"");
+                free (getdimsfrom);
+                counter++;
+            }
         }
-    }
-    else
-    {
-        item->rank = strtod (nspace, 0);
-        adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_double,nspace,"");
-        free (nsp_att_nam);
-        item->var = 0;
+        else
+        {
+            // Create attributes for each dimension
+            item->item.rank = strtod (c, 0);
+            counterstr[0] = '\0';
+            snprintf(counterstr, 5, "%d", counter);
+            dim_att_nam = 0;
+            conca_mesh_numb_att_nam(&dim_att_nam, name, "dimensions", counterstr);
+            adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_double,c,"");
+            free (dim_att_nam);
+            item->item.var = 0;
+            counter++;
+        }
+
+        adios_append_mesh_item (&(mesh->dimensions), item);
+
+        c = strtok (NULL, ",");
     }
 
-    mesh->nspace = item;
+    char * dims = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    dims = 0;
+    conca_mesh_att_nam(&dims, name, "dimensions-num");
+    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
+
+    free (dims);
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshUnstructuredNpoints (const char * npoints
-                                     ,struct adios_group_struct * new_group
-                                     ,struct adios_mesh_unstructured_struct * mesh
-                                     ,const char * name
-                                     )
+static int parseMeshRectilinearDimensions1 (const char * dimensions
+										  ,struct adios_group_struct * new_group
+                                          ,const char * name
+                                          )
 {
+    char * c;  // comma location
     char * d1; // save of strdup
+    struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    struct adios_mesh_item_struct * item = 0;
-    char * npts_att_nam = 0; // npoints attribute name
+    char * dim_att_nam = 0; // dimensions attribute name
+    char * getdimsfrom = 0; // dimensions attribute name that is a var
+    int counter = 0;        // used to create dimX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
 
-    if (!npoints)
+    if (!dimensions)
     {
-        log_warn ("config.xml: npoints value required"
-                         "for unstructured mesh\n"
+        log_warn ("config.xml: dimensions value required"
+                         "for rectilinear mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (npoints);
+    d1 = strdup (dimensions);
 
-    item = (struct adios_mesh_item_struct *) malloc
-                            (sizeof (struct adios_mesh_item_struct));
+    c = strtok (d1, ",");
 
-    if (!item)
+    while (c)
     {
-        log_warn ("Out of memory parseMeshUnstructuredNpoints for mesh: %s\n"
-                         ,name
-                );
-        free (d1);
-
-        return 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        dim_att_nam = 0;
+        conca_mesh_numb_att_nam(&dim_att_nam, name, "dimensions", counterstr);
+        adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_string,c,"");
+        free (dim_att_nam);
+        counter++;
+        c = strtok (NULL, ",");
     }
 
-    conca_att_nam(&npts_att_nam, name, "npoints");
-
-    if (adios_int_is_var (npoints))
-    {
-        item->rank = 0.0;
-        item->var =
-               adios_find_var_by_name (new_group->vars, npoints
-                                       ,new_group->all_unique_var_names
-                                       );
-        if (!item->var)
-        {
-           log_warn ("config.xml: invalid variable: %s for npoints of mesh: %s\n"
-                   ,npoints
-                   ,name
-                   );
-            free (d1);
-
-            return 0;
-        }else
-        {
-            adios_common_define_attribute (p_new_group,npts_att_nam,"/",adios_string,item->var->name,"");
-            free (npts_att_nam);
-        }
-    }
-    else
-    {
-        item->rank = strtod (npoints, 0);
-        adios_common_define_attribute (p_new_group,npts_att_nam,"/",adios_double,npoints,"");
-        free (npts_att_nam);
-        item->var = 0;
-    }
+    char * dims = 0;
+    counterstr[0] = '\0';    
+    snprintf(counterstr, 5, "%d", counter);
+    dims = 0;
+    conca_mesh_att_nam(&dims, name, "dimensions-num");
+    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
 
-    mesh->points_count = item;
+    free (dims); 
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshUnstructuredPointsMultiVar (const char * points
-                                             ,struct adios_group_struct * new_group
-                                             ,struct adios_mesh_unstructured_struct * mesh
-                                             ,const char * name
-                                             )
+static int parseMeshRectilinearCoordinatesMultiVar0 (const char * coordinates
+                                                   ,struct adios_group_struct * new_group
+                                                   ,struct adios_mesh_rectilinear_struct * mesh
+                                                   ,const char * name
+                                                   )
 {
     char * c;  // comma location
     char * d1; // save of strdup
     struct adios_mesh_var_list_struct * var = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * pts_att_nam = 0; // pointss attribute name
+    char * coo_att_nam = 0; // coordinates attribute name
     int counter = 0;        // used to create ptsX attributes
     char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
 
-    if (!points)
+    if (!coordinates)
     {
-        log_warn ("config.xml: points-multi-var value required"
-                         "for unstructured mesh: %s\n"
+        log_warn ("config.xml: coordinates-multi-var value required"
+                         "for rectilinear mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (points);
+    d1 = strdup (coordinates);
 
     c = strtok (d1, ",");
 
@@ -1491,8 +1859,8 @@ static int parseMeshUnstructuredPointsMultiVar (const char * points
 
         if (!var)
         {
-            log_warn ("Out of memory parseMeshUnstructuredPointsMultiVar\n"
-                             "for mesh: %s\n"
+            log_warn ("Out of memory parseMeshRectilinearCoordinatesMultiVar\n"
+                             "for mesh: %s"
                              ,name
                     );
             free (d1);
@@ -1508,29 +1876,31 @@ static int parseMeshUnstructuredPointsMultiVar (const char * points
                                            );
             if (!var->var)
             {
-                log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
-                        ,c
-                        ,name
+                log_warn ("config.xml: invalid variable: %s for coordinates\n"
+                                 "of mesh: %s\n"
+                                 ,c
+                                 ,name
                         );
                 free (d1);
 
                 return 0;
             }else
             {
-                // Found variable ==> create a points attribute for it.
-                pts_att_nam = 0;
+                // Found variable ==> create a coords attribute for it.
+                coo_att_nam = 0;
                 counterstr[0] = '\0';
                 snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&pts_att_nam, name, "pts", counterstr);
-                adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,c,"");
-                free (pts_att_nam);
+                conca_mesh_numb_att_nam(&coo_att_nam, name, "coords-multi-var", counterstr);
+                adios_common_define_attribute (p_new_group,coo_att_nam,"/",adios_string,c,"");
+                free (coo_att_nam);
                 counter++;
             }
         }
         else
         {
             var->var = 0;
-            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+            log_warn ("config.xml: invalid variable: %s for coordinates"
+                             "of rectilinear mesh: %s\n"
                              ,c
                              ,name
                     );
@@ -1538,71 +1908,132 @@ static int parseMeshUnstructuredPointsMultiVar (const char * points
             return 0;
         }
 
-        adios_append_mesh_var (&(mesh->points), var);
+        adios_append_mesh_var (&(mesh->coordinates), var);
 
         c = strtok (NULL, ",");
     }
 
-    // At this point we expect at least 2 "points-multi-var values
-    if (counter > 1){
-        char * pts = 0;
+    // At this points, coordinates should point to at least 2 variables
+    // otherwise let the user know to use the coordinates-single-var tag
+    if (counter > 1) {
+        char * coords = 0;
         counterstr[0] = '\0';
         snprintf(counterstr, 5, "%d", counter);
-        conca_att_nam(&pts, name, "nvars");
-        adios_common_define_attribute (p_new_group,pts,"/",adios_double,counterstr,"");
-        free (pts);
-        free (d1);
+        conca_mesh_att_nam(&coords, name, "coords-multi-var-num");
+        adios_common_define_attribute (p_new_group,coords,"/",adios_double,counterstr,"");
+        free (coords);
     } else
     {
-        log_warn ("config.xml: points-multi-var tag expects "
-                         " at least two variabels. (%s)\n"
-                ,name
+        log_warn ("config.xml: coordinates-multi-var expects "
+                         "at least 2 variables (%s)\n"
+                         ,name
                 );
         free (d1);
         return 0;
     }
 
+    free (d1);
+
     return 1;
 }
 
-static int parseMeshUnstructuredPointsSingleVar (const char * points
-                                              ,struct adios_group_struct * new_group
-                                              ,struct adios_mesh_unstructured_struct * mesh
-                                              ,const char * name
-                                              )
+static int parseMeshRectilinearCoordinatesMultiVar1 (const char * coordinates
+												   ,struct adios_group_struct * new_group
+                                                   ,const char * name
+                                                   )
 {
     char * c;  // comma location
     char * d1; // save of strdup
     struct adios_mesh_var_list_struct * var = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * pts_att_nam = 0; // points attribute name
+    char * coo_att_nam = 0; // coordinates attribute name
+    int counter = 0;        // used to create ptsX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
 
-    if (!points)
+    if (!coordinates)
     {
-        log_warn ("config.xml: points-single-var value required"
-                         "for unstructured mesh: %s\n"
+        log_warn ("config.xml: coordinates-multi-var value required"
+                         "for rectilinear mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (points);
+    d1 = strdup (coordinates);
 
-    var = (struct adios_mesh_var_list_struct *) malloc
-                    (sizeof (struct adios_mesh_var_list_struct));
-    var->next = 0;
+    c = strtok (d1, ",");
 
-    if (!var)
+    while (c)
     {
-        log_warn ("Out of memory parseMeshUnstructuredPointsSingleVar"
-                         "for mesh: %s\n"
+		coo_att_nam = 0;
+		counterstr[0] = '\0';
+		snprintf(counterstr, 5, "%d", counter);
+		conca_mesh_numb_att_nam(&coo_att_nam, name, "coords-multi-var", counterstr);
+		adios_common_define_attribute (p_new_group,coo_att_nam,"/",adios_string,c,"");
+		free (coo_att_nam);
+		counter++;
+        c = strtok (NULL, ",");
+    }
+
+    // At this points, coordinates should point to at least 2 variables
+    // otherwise let the user know to use the coordinates-single-var tag
+    if (counter > 1) {
+        char * coords = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_att_nam(&coords, name, "coords-multi-var-num");
+        adios_common_define_attribute (p_new_group,coords,"/",adios_double,counterstr,"");
+        free (coords);
+    } else
+    {
+        log_warn ("config.xml: coordinates-multi-var expects "
+                         "at least 2 variables (%s)\n"
                          ,name
                 );
         free (d1);
-
         return 0;
-     }
+    }
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshRectilinearCoordinatesSingleVar0 (const char * coordinates
+                                                    ,struct adios_group_struct * new_group
+                                                    ,struct adios_mesh_rectilinear_struct * mesh
+                                                    ,const char * name
+                                                    )
+{
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * coo_att_nam = 0; // coordinates attribute name
+
+    if (!coordinates)
+    {
+        log_warn ("config.xml: coordinates-single-var value required"
+                         "for rectilinear mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (coordinates);
+
+    var = (struct adios_mesh_var_list_struct *) malloc
+                    (sizeof (struct adios_mesh_var_list_struct));
+    var->next = 0;
+
+    if (!var)
+    {
+        log_warn ("Out of memory parseMeschRectilinearCoordinatesSingleVar\n");
+        free (d1);
+
+        return 0;
+     }
 
      if (adios_int_is_var (d1))
      {
@@ -1612,641 +2043,2515 @@ static int parseMeshUnstructuredPointsSingleVar (const char * points
                                       );
         if (!var->var)
         {
-            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
-                    ,d1
-                    ,name
+            log_warn ("config.xml: invalid variable: %s for coordinates"
+                             "of mesh: %s\n"
+                             ,d1
+                             ,name
                     );
             free (d1);
 
             return 0;
         }else
         {
-            // Found variable ==> create a number of vars attribute for it.
-            conca_att_nam(&pts_att_nam, name, "nvars");
-            adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,d1,"");
-            free (pts_att_nam);
+            // Found variable ==> create a nvars attribute for it.
+            conca_mesh_att_nam(&coo_att_nam, name, "coords-single-var");
+            adios_common_define_attribute (p_new_group,coo_att_nam,"/",adios_string,d1,"");
+            free (coo_att_nam);
         }
     }
     else
     {
         var->var = 0;
-        log_warn ("config.xml: invalid variable: %s "
-                         " for points-multi-var of mesh: %s\n"
-                ,d1
-                ,name
+        log_warn ("config.xml: invalid variable: %s for coordinates of mesh: %s\n"
+                                 ,d1
+                                 ,name
                 );
         free (d1);
         return 0;
     }
 
-    adios_append_mesh_var (&(mesh->points), var);
+    adios_append_mesh_var (&(mesh->coordinates), var);
 
     free (d1);
 
     return 1;
 }
 
-static int parseMeshUnstructuredUniformCells (const char * count
-                                             ,const char * data
-                                             ,const char * type
-                                             ,struct adios_group_struct * new_group
-                                             ,struct adios_mesh_unstructured_struct * mesh
-                                             ,const char * name
-                                             )
+static int parseMeshRectilinearCoordinatesSingleVar1 (const char * coordinates
+													,struct adios_group_struct * new_group
+                                                    ,const char * name
+                                                    )
 {
-    char * c;  // comma location
     char * d1; // save of strdup
-    struct adios_mesh_cell_list_list_struct * cell_list = 0;
-    struct adios_mesh_item_struct * item = 0;
+    struct adios_mesh_var_list_struct * var = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * ncellset_att_nam = 0;  // ncellset attribute
-    char * cellcount_att_nam = 0; // single cell count attribute
-    char * celldata_att_nam = 0;  // single cell data  attribute
-    char * celltype_att_nam = 0;  // single cell type attribute
-
-    item = (struct adios_mesh_item_struct *) malloc
-                            (sizeof (struct adios_mesh_item_struct));
+    char * coo_att_nam = 0; // coordinates attribute name
 
-    if (!item)
+    if (!coordinates)
     {
-        log_warn ("Out of memory parseMeshUnstructuredUniformCells of mesh: %s\n"
+        log_warn ("config.xml: coordinates-single-var value required"
+                         "for rectilinear mesh: %s\n"
                          ,name
                 );
-        free (d1);
 
         return 0;
-    }else{
-        item->rank = 1;
-        conca_att_nam(&ncellset_att_nam,name,"ncsets");
-        adios_common_define_attribute (p_new_group,ncellset_att_nam,"/",adios_double,"1","");
-        free (ncellset_att_nam);
-        item->var = 0;
     }
 
-    // Given that we expect only one variable in this case
-    // We should not have any "," in these values... Catch errors
-    mesh->cell_set_count = item;
-
-    if (!count)
-    {
-        log_warn ("config.xml: uniform-cells count value required"
-                         "for unstructured mesh: %s\n"
-                         ,name
-                );
+    d1 = strdup (coordinates);
+	conca_mesh_att_nam(&coo_att_nam, name, "coords-single-var");
+	adios_common_define_attribute (p_new_group,coo_att_nam,"/",adios_string,d1,"");
+	free (coo_att_nam);
+    free (d1);
+    return 1;
+}
 
-        return 0;
-    }
-    if (!data)
-    {
-        log_warn ("config.xml: uniform-cells data value required"
-                         "for unstructured mesh: %s\n"
-                         ,name
-                );
+static int parseMeshStructuredNspace0 (const char * nspace
+                                     ,struct adios_group_struct * new_group
+                                     ,struct adios_mesh_structured_struct * mesh
+                                     ,const char * name
+                                     )
+{
+    char * d1; // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    struct adios_mesh_item_struct * item = 0;
+    char * nsp_att_nam = 0; // nspace attribute name
 
-        return 0;
-    }
-    if (!type)
+    if (!nspace)
     {
-        log_warn ("config.xml: uniform-cells type value required"
-                         "for unstructured mesh: %s\n"
+        log_warn ("config.xml: npsace value required "
+                         "for structured mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (count);
+    d1 = strdup (nspace);
 
-    cell_list = (struct adios_mesh_cell_list_list_struct *) malloc
-                        (sizeof (struct adios_mesh_cell_list_list_struct));
-    cell_list->next = 0;
+    item = (struct adios_mesh_item_struct *) malloc
+                            (sizeof (struct adios_mesh_item_struct));
 
-    if (!cell_list)
+    if (!item)
     {
-        log_warn ("Out of memory parseMeshUnstructuredUniformCells"
-                         "of mesh: %s\n"
-                         ,name
-                );
+        log_warn ("Out of memory parseMeshStructuredNspace for mesh: %s\n", name);
         free (d1);
 
         return 0;
     }
 
-    if (adios_int_is_var (d1))
+    conca_mesh_att_nam(&nsp_att_nam, name, "nspace");
+
+    if (adios_int_is_var (nspace))
     {
-        cell_list->cell_list.count.var =
-                adios_find_var_by_name (new_group->vars, d1
+        item->rank = 0.0;
+        item->var =
+               adios_find_var_by_name (new_group->vars, nspace
                                        ,new_group->all_unique_var_names
                                        );
-        cell_list->cell_list.count.rank = 0;
-        if (!cell_list->cell_list.count.var)
+        if (!item->var)
         {
-            log_warn ("config.xml: invalid variable: %s for 'count' attribute\n"
-                             "of mesh: %s\n"
-                             ,d1
-                             ,name
-                    );
+           log_warn ("config.xml: invalid variable: %s for nspace of mesh: %s\n"
+                            ,nspace
+                            ,name
+                   );
             free (d1);
 
             return 0;
-        } else
+        }else
         {
-           conca_att_nam(&cellcount_att_nam, name, "ccount");
-           adios_common_define_attribute (p_new_group,cellcount_att_nam,"/",adios_string,cell_list->cell_list.count.var->name,"");
-           free (cellcount_att_nam);
+            adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_string,item->var->name,"");
+            free (nsp_att_nam);
         }
     }
     else
     {
-        cell_list->cell_list.count.var = 0;
-        cell_list->cell_list.count.rank = strtod (d1, 0);
-        conca_att_nam(&cellcount_att_nam, name, "ccount");
-        adios_common_define_attribute (p_new_group,cellcount_att_nam,"/",adios_double,d1,"");
-        free (cellcount_att_nam);
+        item->rank = strtod (nspace, 0);
+        adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_double,nspace,"");
+        free (nsp_att_nam);
+        item->var = 0;
     }
 
+    mesh->nspace = item;
+
     free (d1);
 
-    d1 = strdup (data);
+    return 1;
+}
 
-    if (adios_int_is_var (d1))
-    {
-        cell_list->cell_list.data =
-             adios_find_var_by_name (new_group->vars, d1
-                                    ,new_group->all_unique_var_names
-                                    );
-        if (!cell_list->cell_list.data)
-        {
-            log_warn ("config.xml: invalid variable: %s for cell data\n"
-                             "of mesh: %s\n"
-                             ,d1
-                             ,name
-                    );
-            free (d1);
+static int parseMeshStructuredNspace1 (const char * nspace
+									 ,struct adios_group_struct * new_group
+                                     ,const char * name
+                                     )
+{
+    char * d1; // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    struct adios_mesh_item_struct * item = 0;
+    char * nsp_att_nam = 0; // nspace attribute name
 
-            return 0;
-        } else
-        {
-            conca_att_nam(&celldata_att_nam, name, "cdata");
-            adios_common_define_attribute (p_new_group,celldata_att_nam,"/",adios_string,d1,"");
-            free (celldata_att_nam);
-        }
-    }
-    else
+    if (!nspace)
     {
-        cell_list->cell_list.data = 0;
-        log_warn ("config.xml: invalid data dimension: %s of mesh: %s\n"
-                         "Please provide a valid variable for cell data.\n"
-                         ,d1
+        log_warn ("config.xml: npsace value required "
+                         "for structured mesh: %s\n"
                          ,name
                 );
-        free (d1);
+
         return 0;
     }
 
+    d1 = strdup (nspace);
+    conca_mesh_att_nam(&nsp_att_nam, name, "nspace");
+    adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_double,nspace,"");
+    free (nsp_att_nam);
     free (d1);
 
-    d1 = strdup (type);
+    return 1;
+}
 
-    conca_att_nam(&celltype_att_nam, name, "ctype");
+static int parseMeshStructuredDimensions0 (const char * dimensions
+                                         ,struct adios_group_struct * new_group
+                                         ,struct adios_mesh_structured_struct * mesh
+                                         ,const char * name
+                                         )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_item_list_struct * item = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * dim_att_nam = 0; // dimensions attribute name
+    char * getdimsfrom = 0; // dimensions attribute name that is a var
+    int counter = 0;        // used to create dimX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
 
-    if (!strcmp(d1,"pt") || !strcmp(d1,"point"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 1; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"line"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 2; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"tri") || !strcmp(d1,"triangle"))
+    if (!dimensions)
     {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 3; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"quad") || !strcmp(d1,"quadrilateral"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 4; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"hex") || !strcmp(d1,"hexahedron"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 5; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"pri") || !strcmp(d1,"prism"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 6; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"tet") || !strcmp(d1,"tetrahedron"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 7; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (!strcmp(d1,"pyr") || !strcmp(d1,"pyramid"))
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = 8; //strtod (c, 0);
-        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
-    } else
-    if (adios_int_is_var (d1))
+        log_warn ("config.xml: dimensions value required"
+                         "for structured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (dimensions);
+
+    c = strtok (d1, ",");
+
+    while (c)
     {
-        cell_list->cell_list.type.var =
-            adios_find_var_by_name (new_group->vars, d1
-                    ,new_group->all_unique_var_names
-                    );
-        cell_list->cell_list.type.rank = 0;
-        if (!cell_list->cell_list.type.var)
+        item = (struct adios_mesh_item_list_struct *) malloc
+                            (sizeof (struct adios_mesh_item_list_struct));
+        item->next = 0;
+
+        if (!item)
         {
-            log_warn ("config.xml: invalid variable: %s for type attribute\n"
-                             "of mesh: %s\n"
-                             ,d1
+            log_warn ("Out of memory parseMeshStructuredDimensions of mesh: %s\n"
                              ,name
                     );
-            free (celltype_att_nam);
             free (d1);
 
             return 0;
-        } else
+        }
+
+        if (adios_int_is_var (c))
         {
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+            item->item.rank = 0.0;
+            item->item.var =
+                    adios_find_var_by_name (new_group->vars, c
+                                           ,new_group->all_unique_var_names
+                                           );
+            if (!item->item.var)
+            {
+                log_warn ("config.xml: invalid variable: %s for dimensions\n"
+                                 "of mesh: %s\n"
+                                 ,c
+                                 ,name
+                        );
+
+                free (d1);
+
+                return 0;
+            } else
+            {
+                // Found variable ==> create a dims attribute for it.
+                // char * getdimsfrom = 0;
+                counterstr[0] = '\0';
+                snprintf(counterstr, 5, "%d", counter);
+                getdimsfrom = 0;
+                conca_mesh_numb_att_nam(&getdimsfrom, name, "dimensions", counterstr);
+                adios_common_define_attribute (p_new_group,getdimsfrom,"/",adios_string,item->item.var->name,"");
+                free (getdimsfrom);
+                counter++;
+            }
         }
-    } else
-    {
-        cell_list->cell_list.type.var = 0;
-        cell_list->cell_list.type.rank = strtod (d1, 0);
-        if (cell_list->cell_list.type.rank > 0 && cell_list->cell_list.type.rank < 9)
+        else
         {
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_double,d1,"");
-        } else {
-            log_warn ("config.xml: invalid type attribute: %s of mesh: %s.\n"
-                             "Please select a number between 1 and 8 for cell types\n"
-                             "or: pt, line, tri, quad, hex, pri, tet or pyr.\n"
-                             ,d1
-                             ,name
-                    );
-            free (celltype_att_nam);
-            free (d1);
+            item->item.rank = strtod (c, 0);
+            item->item.var = 0;
+            counterstr[0] = '\0';
+            snprintf(counterstr, 5, "%d", counter);
+            dim_att_nam = 0;
+            conca_mesh_numb_att_nam(&dim_att_nam, name, "dimensions", counterstr);
+            adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_double,c,"");
+            free (dim_att_nam);
+            counter++;
 
-            return 0;
         }
+
+        adios_append_mesh_item (&(mesh->dimensions), item);
+
+        c = strtok (NULL, ",");
     }
 
-    free(celltype_att_nam);
+    char * dims = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    dims = 0;
+    conca_mesh_att_nam(&dims, name, "dimensions-num");
+    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
 
-    free (d1);
+    free (dims);
 
-    adios_append_mesh_cell_list (&(mesh->cell_list), cell_list);
+    free (d1);
 
     return 1;
 }
 
-static int parseMeshUnstructuredMixedCells (const char * count
-                                           ,const char * data
-                                           ,const char * types
-                                           ,struct adios_group_struct * new_group
-                                           ,struct adios_mesh_unstructured_struct * mesh
-                                           ,const char * name
-                                           )
+static int parseMeshStructuredDimensions1 (const char * dimensions
+        ,struct adios_group_struct * new_group
+        ,const char * name
+        )
 {
     char * c;  // comma location
     char * d1; // save of strdup
-    struct adios_mesh_cell_list_list_struct * cell_list = 0;
-    struct adios_mesh_item_struct * item = 0;
-    int counter = 0;        // used to create countX, typeX, dataX? attributes
-    char counterstr[5] = {0,0,0,0,0}; // used to create countX, typeX, dataX? attributes
+    struct adios_mesh_item_list_struct * item = 0;
     int64_t      p_new_group = (int64_t) new_group;
-    char * ncellset_att_nam = 0;  // ncellset attribute
-    char * ccounts_att_nam = 0;   // ccountX attributes
-    char * cdata_att_nam = 0;     // cdataX attributes
-    char * celltype_att_nam = 0;  // ctypeX attributes
-
-    item = (struct adios_mesh_item_struct *) malloc
-                            (sizeof (struct adios_mesh_item_struct));
+    char * dim_att_nam = 0; // dimensions attribute name
+    char * getdimsfrom = 0; // dimensions attribute name that is a var
+    int counter = 0;        // used to create dimX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create dimX attributes
 
-    if (!item)
+    if (!dimensions)
     {
-        log_warn ("Out of memory parseMeshUnstructuredMixedCells of mesh: %s\n"
+        log_warn ("config.xml: dimensions value required"
+                         "for structured mesh: %s\n"
                          ,name
                 );
-        free (d1);
 
         return 0;
     }
 
-    if (!count)
+    d1 = strdup (dimensions);
+    c = strtok (d1, ",");
+    while (c)
     {
-        log_warn ("config.xml: mixed-cells count value required"
-                         "for unstructured mesh: %s\n"
-                         ,name
-                );
-
-        return 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        dim_att_nam = 0;
+        conca_mesh_numb_att_nam(&dim_att_nam, name, "dimensions", counterstr);
+        adios_common_define_attribute (p_new_group,dim_att_nam,"/",adios_string,c,"");
+        free (dim_att_nam);
+        counter++;
+        c = strtok (NULL, ",");
     }
-    if (!data)
-    {
-        log_warn ("config.xml: mixed-cells data value required"
-                         "for unstructured mesh: %s\n"
-                         ,name
-                );
 
-        return 0;
-    }
-    if (!types)
+    char * dims = 0;
+    counterstr[0] = '\0';
+    snprintf(counterstr, 5, "%d", counter);
+    dims = 0;
+    conca_mesh_att_nam(&dims, name, "dimensions-num");
+    adios_common_define_attribute (p_new_group,dims,"/",adios_double,counterstr,"");
+
+    free (dims);
+    free (d1);
+    return 1;
+}
+
+static int parseMeshStructuredPointsMultiVar0 (const char * points
+                                             ,struct adios_group_struct * new_group
+                                             ,struct adios_mesh_structured_struct * mesh
+                                             ,const char * name
+                                             )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // pointss attribute name
+    int counter = 0;        // used to create ptsX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
+
+    if (!points)
     {
-        log_warn ("config.xml: mixed-cellsi type value required "
-                         "for unstructured mesh: %s\n"
+        log_warn ("config.xml: points-multi-var value required"
+                         "for structured mesh: %s\n"
                          ,name
                 );
 
         return 0;
     }
 
-    d1 = strdup (count);
-    c = strtok (d1, ",");
+    d1 = strdup (points);
 
-    cell_list = (struct adios_mesh_cell_list_list_struct *) malloc
-                        (sizeof (struct adios_mesh_cell_list_list_struct));
-    cell_list->next = 0;
+    c = strtok (d1, ",");
 
-    if (!cell_list)
+    while (c)
     {
-        log_warn ("Out of memory parseMeshUnstructuredMixedCells\n");
-        free (d1);
+        var = (struct adios_mesh_var_list_struct *) malloc
+                        (sizeof (struct adios_mesh_var_list_struct));
+        var->next = 0;
 
-        return 0;
-    }
+        if (!var)
+        {
+            log_warn ("Out of memory parseMeshStructuredPointsMultiVar"
+                             "of mesh: %s\n"
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
+        }
 
-    while (c)
-    {
         if (adios_int_is_var (c))
         {
-            cell_list->cell_list.count.var =
-                   adios_find_var_by_name (new_group->vars, c
-                                          ,new_group->all_unique_var_names
-                                          );
-            cell_list->cell_list.count.rank = 0;
-            if (!cell_list->cell_list.count.var)
+            var->var =
+                    adios_find_var_by_name (new_group->vars, c
+                                           ,new_group->all_unique_var_names
+                                           );
+            if (!var->var)
             {
-                log_warn ("config.xml: invalid variable: %s for cell count\n"
-                                 "of mesh: %s\n"
-                        ,c, name
+                log_warn ("config.xml: invalid variable: %s points of mesh: %s\n"
+                                 ,c
+                                 ,name
                         );
                 free (d1);
 
                 return 0;
-            }else{
-                ccounts_att_nam = 0;
+            }else
+            {
+                // Found variable ==> create a points attribute for it.
+                pts_att_nam = 0;
                 counterstr[0] = '\0';
                 snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&ccounts_att_nam, name, "ccount", counterstr);
-                adios_common_define_attribute (p_new_group,ccounts_att_nam,"/",adios_string,c,"");
-                free (ccounts_att_nam);
+                conca_mesh_numb_att_nam(&pts_att_nam, name, "points-multi-var", counterstr);
+                adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,c,"");
+                free (pts_att_nam);
                 counter++;
             }
         }
         else
         {
-            cell_list->cell_list.count.var = 0;
-            cell_list->cell_list.count.rank = strtod (c, 0);
-            counterstr[0] = '\0';
-            snprintf(counterstr, 5, "%d", counter);
-            ccounts_att_nam = 0;
-            conca_numb_att_nam(&ccounts_att_nam, name, "ccount", counterstr);
-            adios_common_define_attribute (p_new_group,ccounts_att_nam,"/",adios_double,c,"");
-            free (ccounts_att_nam);
-            counter++;
+            var->var = 0;
+            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+                             ,c
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
         }
 
+        adios_append_mesh_var (&(mesh->points), var);
+
         c = strtok (NULL, ",");
     }
-    free (d1);
 
-    // We should have at least 2 cell sets, otherwise the cells are uniform
-    if (counter <= 1){
-       log_warn ("config.xml: Please provide at least 2 cell counts of mesh: %s\n"
-                        "or use the 'uniform-cells' tag.\n"
-                        ,name
-               );
-        return 0;
+    // Define an attribute showing the number of mesh_vars
+    // Should be more than one in this multi-var parsing
+    if (counter > 1){
+        char * pts = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_att_nam(&pts, name, "points-multi-var-num");
+        adios_common_define_attribute (p_new_group,pts,"/",adios_double,counterstr,"");
+        free (pts);
+    } else
+    {
+            log_warn ("config.xml: points-multi-var tag for mesh: %s "
+                             " expects at least 2 variables\n"
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
     }
 
-    item->rank = (double) counter;
-    conca_att_nam(&ncellset_att_nam, name, "ncsets");
-    adios_common_define_attribute (p_new_group,ncellset_att_nam,"/",adios_double,counterstr,"");
-    free (ncellset_att_nam);
-    item->var = 0;
+    free (d1);
 
-    mesh->cell_set_count = item;
+    return 1;
+}
 
-    // From the number of counts expect the same number of data and type items
-    int cell_set_count = counter;
-    // Reset counter
-    counter = 0;
+static int parseMeshStructuredPointsMultiVar1 (const char * points
+											 ,struct adios_group_struct * new_group
+                                             ,const char * name
+                                             )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // pointss attribute name
+    int counter = 0;        // used to create ptsX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-multi-var value required"
+                         "for structured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (points);
 
-    d1 = strdup (data);
     c = strtok (d1, ",");
+
     while (c)
     {
-        if (adios_int_is_var (c))
-        {
-            cell_list->cell_list.data =
-                   adios_find_var_by_name (new_group->vars, c
-                                          ,new_group->all_unique_var_names
-                                          );
-            if (!cell_list->cell_list.data)
-            {
-                log_warn ("config.xml: invalid variable: %s for data of mesh: %s\n"
-                                 ,c
-                                 ,name
-                        );
-                free (d1);
+		pts_att_nam = 0;
+		counterstr[0] = '\0';
+		snprintf(counterstr, 5, "%d", counter);
+		conca_mesh_numb_att_nam(&pts_att_nam, name, "points-multi-var", counterstr);
+		adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,c,"");
+		free (pts_att_nam);
+		counter++;
+        c = strtok (NULL, ",");
+    }
 
-                return 0;
-            } else
-            {
-                cdata_att_nam = 0;
-                counterstr[0] = '\0';
-                snprintf(counterstr, 5, "%d", counter);
-                conca_numb_att_nam(&cdata_att_nam, name, "cdata", counterstr);
-                adios_common_define_attribute (p_new_group,cdata_att_nam,"/",adios_string,c,"");
-                free (cdata_att_nam);
-                counter++;
-            }
-        }
-        else
-        {
-            cell_list->cell_list.data = 0;
-            log_warn ("config.xml: invalid data: %s of mesh: %s\n"
-                             "Please provide a valid variable for cell data\n"
-                    ,d1
-                    ,name                    );
+    // Define an attribute showing the number of mesh_vars
+    // Should be more than one in this multi-var parsing
+    if (counter > 1){
+        char * pts = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_att_nam(&pts, name, "points-multi-var-num");
+        adios_common_define_attribute (p_new_group,pts,"/",adios_double,counterstr,"");
+        free (pts);
+    } else
+    {
+            log_warn ("config.xml: points-multi-var tag for mesh: %s "
+                             " expects at least 2 variables\n"
+                             ,name
+                    );
             free (d1);
-            return 0;
-        }
 
-        c = strtok (NULL, ",");
+            return 0;
     }
+
     free (d1);
 
-    // If the number of data variables does not match the number of counts
-    // Generate an error message
-    if (counter != cell_set_count){
-       log_warn ("config.xml: Please provide at least %d cell data of mesh: %s\n"
-                        "or use the 'uniform-cells' tag\n"
-                        ,cell_set_count
-                        ,name
-               );
+    return 1;
+}
+
+static int parseMeshStructuredPointsSingleVar0 (const char * points
+                                              ,struct adios_group_struct * new_group
+                                              ,struct adios_mesh_structured_struct * mesh
+                                              ,const char * name
+                                              )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // points attribute name
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-single-var value required"
+                         "for structured mesh: %s\n"
+                         ,name
+                );
+
         return 0;
     }
 
-    // Reset counter
-    counter = 0;
+    d1 = strdup (points);
 
-    d1 = strdup (types);
-    c = strtok (d1, ",");
+    var = (struct adios_mesh_var_list_struct *) malloc
+                    (sizeof (struct adios_mesh_var_list_struct));
+    var->next = 0;
 
-    while (c)
+    if (!var)
     {
-        celltype_att_nam = 0;
-        counterstr[0] = '\0';
-        snprintf(counterstr, 5, "%d", counter);
-        conca_numb_att_nam(&celltype_att_nam, name, "ctype", counterstr);
+        log_warn ("Out of memory parseMeshStructuredPointsSingleVar"
+                         "for mesh: %s\n"
+                         ,name
+                );
+        free (d1);
 
-        if (!strcmp(c,"pt") || !strcmp(c,"point"))
-        {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 1; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"line"))
-        {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 2; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"tri") || !strcmp(c,"triangle"))
-        {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 3; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"quad") || !strcmp(c,"quadrilateral"))
-        {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 4; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"hex") || !strcmp(c,"hexahedron"))
-        {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 5; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"pri") || !strcmp(c,"prism"))
-        {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 6; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"tet") || !strcmp(c,"tetrahedron"))
+        return 0;
+     }
+
+     if (adios_int_is_var (d1))
+     {
+        var->var =
+               adios_find_var_by_name (new_group->vars, d1
+                                      ,new_group->all_unique_var_names
+                                      );
+        if (!var->var)
         {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 7; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (!strcmp(c,"pyr") || !strcmp(c,"pyramid"))
+            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+                             ,d1
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
+        }else
         {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = 8; //strtod (c, 0);
-            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
-        } else
-        if (adios_int_is_var (c))
+            // Found variable ==> create a number of vars attribute for it.
+            conca_mesh_att_nam(&pts_att_nam, name, "points-single-var");
+            adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,d1,"");
+            free (pts_att_nam);
+        }
+    }
+    else
+    {
+        var->var = 0;
+        log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+                         ,d1
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+    }
+
+    adios_append_mesh_var (&(mesh->points), var);
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshStructuredPointsSingleVar1 (const char * points
+											  ,struct adios_group_struct * new_group
+                                              ,const char * name
+                                              )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // points attribute name
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-single-var value required"
+                         "for structured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (points);
+	conca_mesh_att_nam(&pts_att_nam, name, "points-single-var");
+	adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,d1,"");
+	free (pts_att_nam);
+    free (d1);
+    return 1;
+}
+
+static int parseMeshUnstructuredNspace0 (const char * nspace
+                                     ,struct adios_group_struct * new_group
+                                     ,struct adios_mesh_unstructured_struct * mesh
+                                     ,const char * name
+                                     )
+{
+    char * d1; // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    struct adios_mesh_item_struct * item = 0;
+    char * nsp_att_nam = 0; // nspace attribute name
+
+    if (!nspace)
+    {
+        log_warn ("config.xml: nspace value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (nspace);
+
+    item = (struct adios_mesh_item_struct *) malloc
+                            (sizeof (struct adios_mesh_item_struct));
+
+    if (!item)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredNspace for mesh: %s\n"
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+    }
+
+    conca_mesh_att_nam(&nsp_att_nam, name, "nspace");
+
+    if (adios_int_is_var (nspace))
+    {
+        item->rank = 0.0;
+        item->var =
+               adios_find_var_by_name (new_group->vars, nspace
+                                       ,new_group->all_unique_var_names
+                                       );
+        if (!item->var)
+        {
+           log_warn ("config.xml: invalid variable: %s for nspace of mesh: %s\n"
+                            ,nspace
+                            ,name
+                   );
+            free (d1);
+
+            return 0;
+        }else
+        {
+            adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_string,item->var->name,"");
+            free (nsp_att_nam);
+        }
+    }
+    else
+    {
+        item->rank = strtod (nspace, 0);
+        adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_double,nspace,"");
+        free (nsp_att_nam);
+        item->var = 0;
+    }
+
+    mesh->nspace = item;
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredNspace1 (const char * nspace
+        ,struct adios_group_struct * new_group
+        ,const char * name
+        )
+{
+    char * d1; // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    struct adios_mesh_item_struct * item = 0;
+    char * nsp_att_nam = 0; // nspace attribute name
+
+    if (!nspace)
+    {
+        log_warn ("config.xml: nspace value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (nspace);
+    conca_mesh_att_nam(&nsp_att_nam, name, "nspace");
+    adios_common_define_attribute (p_new_group,nsp_att_nam,"/",adios_string,nspace,"");
+    free (nsp_att_nam);
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredNpoints0 (const char * npoints
+                                     ,struct adios_group_struct * new_group
+                                     ,struct adios_mesh_unstructured_struct * mesh
+                                     ,const char * name
+                                     )
+{
+    char * d1; // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    struct adios_mesh_item_struct * item = 0;
+    char * npts_att_nam = 0; // npoints attribute name
+
+    if (!npoints)
+    {
+        log_warn ("config.xml: npoints value required"
+                         "for unstructured mesh\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (npoints);
+
+    item = (struct adios_mesh_item_struct *) malloc
+                            (sizeof (struct adios_mesh_item_struct));
+
+    if (!item)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredNpoints for mesh: %s\n"
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+    }
+
+    conca_mesh_att_nam(&npts_att_nam, name, "npoints");
+
+    if (adios_int_is_var (npoints))
+    {
+        item->rank = 0.0;
+        item->var =
+               adios_find_var_by_name (new_group->vars, npoints
+                                       ,new_group->all_unique_var_names
+                                       );
+        if (!item->var)
+        {
+           log_warn ("config.xml: invalid variable: %s for npoints of mesh: %s\n"
+                   ,npoints
+                   ,name
+                   );
+            free (d1);
+
+            return 0;
+        }else
+        {
+            adios_common_define_attribute (p_new_group,npts_att_nam,"/",adios_string,item->var->name,"");
+            free (npts_att_nam);
+        }
+    }
+    else
+    {
+        item->rank = strtod (npoints, 0);
+        adios_common_define_attribute (p_new_group,npts_att_nam,"/",adios_double,npoints,"");
+        free (npts_att_nam);
+        item->var = 0;
+    }
+
+    mesh->points_count = item;
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredNpoints1 (const char * npoints
+									 ,struct adios_group_struct * new_group
+                                     ,const char * name
+                                     )
+{
+    char * d1; // save of strdup
+    int64_t      p_new_group = (int64_t) new_group;
+    struct adios_mesh_item_struct * item = 0;
+    char * npts_att_nam = 0; // npoints attribute name
+
+    if (!npoints)
+    {
+        log_warn ("config.xml: npoints value required"
+                         "for unstructured mesh\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (npoints);
+
+    conca_mesh_att_nam(&npts_att_nam, name, "npoints");
+    adios_common_define_attribute (p_new_group,npts_att_nam,"/",adios_string,npoints,"");
+    free (npts_att_nam);
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredPointsMultiVar0 (const char * points
+                                             ,struct adios_group_struct * new_group
+                                             ,struct adios_mesh_unstructured_struct * mesh
+                                             ,const char * name
+                                             )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // pointss attribute name
+    int counter = 0;        // used to create ptsX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-multi-var value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (points);
+
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+        var = (struct adios_mesh_var_list_struct *) malloc
+                        (sizeof (struct adios_mesh_var_list_struct));
+        var->next = 0;
+
+        if (!var)
+        {
+            log_warn ("Out of memory parseMeshUnstructuredPointsMultiVar\n"
+                             "for mesh: %s\n"
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
+        }
+
+        if (adios_int_is_var (c))
+        {
+            var->var =
+                    adios_find_var_by_name (new_group->vars, c
+                                           ,new_group->all_unique_var_names
+                                           );
+            if (!var->var)
+            {
+                log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+                        ,c
+                        ,name
+                        );
+                free (d1);
+
+                return 0;
+            }else
+            {
+                // Found variable ==> create a points attribute for it.
+                pts_att_nam = 0;
+                counterstr[0] = '\0';
+                snprintf(counterstr, 5, "%d", counter);
+                conca_mesh_numb_att_nam(&pts_att_nam, name, "points-multi-var", counterstr);
+                adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,c,"");
+                free (pts_att_nam);
+                counter++;
+            }
+        }
+        else
+        {
+            var->var = 0;
+            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+                             ,c
+                             ,name
+                    );
+            free (d1);
+            return 0;
+        }
+
+        adios_append_mesh_var (&(mesh->points), var);
+
+        c = strtok (NULL, ",");
+    }
+
+    // At this point we expect at least 2 "points-multi-var values
+    if (counter > 1){
+        char * pts = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_att_nam(&pts, name, "points-multi-var-num");
+        adios_common_define_attribute (p_new_group,pts,"/",adios_double,counterstr,"");
+        free (pts);
+        free (d1);
+    } else
+    {
+        log_warn ("config.xml: points-multi-var tag expects "
+                         " at least two variabels. (%s)\n"
+                ,name
+                );
+        free (d1);
+        return 0;
+    }
+
+    return 1;
+}
+
+static int parseMeshUnstructuredPointsMultiVar1 (const char * points
+										     ,struct adios_group_struct * new_group
+                                             ,const char * name
+                                             )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // pointss attribute name
+    int counter = 0;        // used to create ptsX attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create ptsX attributes
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-multi-var value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (points);
+
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+		pts_att_nam = 0;
+		counterstr[0] = '\0';
+		snprintf(counterstr, 5, "%d", counter);
+		conca_mesh_numb_att_nam(&pts_att_nam, name, "points-multi-var", counterstr);
+		adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,c,"");
+		free (pts_att_nam);
+		counter++;
+        c = strtok (NULL, ",");
+    }
+
+    // At this point we expect at least 2 "points-multi-var values
+    if (counter > 1){
+        char * pts = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_att_nam(&pts, name, "points-multi-var-num");
+        adios_common_define_attribute (p_new_group,pts,"/",adios_double,counterstr,"");
+        free (pts);
+        free (d1);
+    } else
+    {
+        log_warn ("config.xml: points-multi-var tag expects "
+                         " at least two variabels. (%s)\n"
+                ,name
+                );
+        free (d1);
+        return 0;
+    }
+
+    return 1;
+}
+
+static int parseMeshUnstructuredPointsSingleVar0 (const char * points
+                                              ,struct adios_group_struct * new_group
+                                              ,struct adios_mesh_unstructured_struct * mesh
+                                              ,const char * name
+                                              )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // points attribute name
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-single-var value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (points);
+
+    var = (struct adios_mesh_var_list_struct *) malloc
+                    (sizeof (struct adios_mesh_var_list_struct));
+    var->next = 0;
+
+    if (!var)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredPointsSingleVar"
+                         "for mesh: %s\n"
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+     }
+
+     if (adios_int_is_var (d1))
+     {
+        var->var =
+               adios_find_var_by_name (new_group->vars, d1
+                                      ,new_group->all_unique_var_names
+                                      );
+        if (!var->var)
+        {
+            log_warn ("config.xml: invalid variable: %s for points of mesh: %s\n"
+                    ,d1
+                    ,name
+                    );
+            free (d1);
+
+            return 0;
+        }else
+        {
+            // Found variable ==> create a number of vars attribute for it.
+            conca_mesh_att_nam(&pts_att_nam, name, "points-single-var");
+            adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,d1,"");
+            free (pts_att_nam);
+        }
+    }
+    else
+    {
+        var->var = 0;
+        log_warn ("config.xml: invalid variable: %s "
+                         " for points-multi-var of mesh: %s\n"
+                ,d1
+                ,name
+                );
+        free (d1);
+        return 0;
+    }
+
+    adios_append_mesh_var (&(mesh->points), var);
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredPointsSingleVar1 (const char * points
+											  ,struct adios_group_struct * new_group
+                                              ,const char * name
+                                              )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_var_list_struct * var = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * pts_att_nam = 0; // points attribute name
+
+    if (!points)
+    {
+        log_warn ("config.xml: points-single-var value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (points);
+	conca_mesh_att_nam(&pts_att_nam, name, "points-single-var");
+	adios_common_define_attribute (p_new_group,pts_att_nam,"/",adios_string,d1,"");
+	free (pts_att_nam);
+
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredUniformCells0 (const char * count
+                                             ,const char * data
+                                             ,const char * type
+                                             ,struct adios_group_struct * new_group
+                                             ,struct adios_mesh_unstructured_struct * mesh
+                                             ,const char * name
+                                             )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_cell_list_list_struct * cell_list = 0;
+    struct adios_mesh_item_struct * item = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * ncellset_att_nam = 0;  // ncellset attribute
+    char * cellcount_att_nam = 0; // single cell count attribute
+    char * celldata_att_nam = 0;  // single cell data  attribute
+    char * celltype_att_nam = 0;  // single cell type attribute
+
+    item = (struct adios_mesh_item_struct *) malloc
+                            (sizeof (struct adios_mesh_item_struct));
+
+    if (!item)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredUniformCells of mesh: %s\n"
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+    }else{
+        item->rank = 1;
+        conca_mesh_att_nam(&ncellset_att_nam,name,"ncsets");
+        adios_common_define_attribute (p_new_group,ncellset_att_nam,"/",adios_double,"1","");
+        free (ncellset_att_nam);
+        item->var = 0;
+    }
+
+    // Given that we expect only one variable in this case
+    // We should not have any "," in these values... Catch errors
+    mesh->cell_set_count = item;
+
+    if (!count)
+    {
+        log_warn ("config.xml: uniform-cells count value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!data)
+    {
+        log_warn ("config.xml: uniform-cells data value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!type)
+    {
+        log_warn ("config.xml: uniform-cells type value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (count);
+
+    cell_list = (struct adios_mesh_cell_list_list_struct *) malloc
+                        (sizeof (struct adios_mesh_cell_list_list_struct));
+    cell_list->next = 0;
+
+    if (!cell_list)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredUniformCells"
+                         "of mesh: %s\n"
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+    }
+
+    if (adios_int_is_var (d1))
+    {
+        cell_list->cell_list.count.var =
+                adios_find_var_by_name (new_group->vars, d1
+                                       ,new_group->all_unique_var_names
+                                       );
+        cell_list->cell_list.count.rank = 0;
+        if (!cell_list->cell_list.count.var)
+        {
+            log_warn ("config.xml: invalid variable: %s for 'count' attribute\n"
+                             "of mesh: %s\n"
+                             ,d1
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
+        } else
+        {
+           conca_mesh_att_nam(&cellcount_att_nam, name, "ccount");
+           adios_common_define_attribute (p_new_group,cellcount_att_nam,"/",adios_string,cell_list->cell_list.count.var->name,"");
+           free (cellcount_att_nam);
+        }
+    }
+    else
+    {
+        cell_list->cell_list.count.var = 0;
+        cell_list->cell_list.count.rank = strtod (d1, 0);
+        conca_mesh_att_nam(&cellcount_att_nam, name, "ccount");
+        adios_common_define_attribute (p_new_group,cellcount_att_nam,"/",adios_double,d1,"");
+        free (cellcount_att_nam);
+    }
+
+    free (d1);
+
+    d1 = strdup (data);
+
+    if (adios_int_is_var (d1))
+    {
+        cell_list->cell_list.data =
+             adios_find_var_by_name (new_group->vars, d1
+                                    ,new_group->all_unique_var_names
+                                    );
+        if (!cell_list->cell_list.data)
+        {
+            log_warn ("config.xml: invalid variable: %s for cell data\n"
+                             "of mesh: %s\n"
+                             ,d1
+                             ,name
+                    );
+            free (d1);
+
+            return 0;
+        } else
+        {
+            conca_mesh_att_nam(&celldata_att_nam, name, "cdata");
+            adios_common_define_attribute (p_new_group,celldata_att_nam,"/",adios_string,d1,"");
+            free (celldata_att_nam);
+        }
+    }
+    else
+    {
+        cell_list->cell_list.data = 0;
+        log_warn ("config.xml: invalid data dimension: %s of mesh: %s\n"
+                         "Please provide a valid variable for cell data.\n"
+                         ,d1
+                         ,name
+                );
+        free (d1);
+        return 0;
+    }
+
+    free (d1);
+
+    d1 = strdup (type);
+
+    conca_mesh_att_nam(&celltype_att_nam, name, "ctype");
+
+    if (!strcmp(d1,"pt") || !strcmp(d1,"point"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 1; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"line"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 2; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"tri") || !strcmp(d1,"triangle"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 3; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"quad") || !strcmp(d1,"quadrilateral"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 4; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"hex") || !strcmp(d1,"hexahedron"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 5; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"pri") || !strcmp(d1,"prism"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 6; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"tet") || !strcmp(d1,"tetrahedron"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 7; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (!strcmp(d1,"pyr") || !strcmp(d1,"pyramid"))
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = 8; //strtod (c, 0);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    } else
+    if (adios_int_is_var (d1))
+    {
+        cell_list->cell_list.type.var =
+            adios_find_var_by_name (new_group->vars, d1
+                    ,new_group->all_unique_var_names
+                    );
+        cell_list->cell_list.type.rank = 0;
+        if (!cell_list->cell_list.type.var)
+        {
+            log_warn ("config.xml: invalid variable: %s for type attribute\n"
+                             "of mesh: %s\n"
+                             ,d1
+                             ,name
+                    );
+            free (celltype_att_nam);
+            free (d1);
+
+            return 0;
+        } else
+        {
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+        }
+    } else
+    {
+        cell_list->cell_list.type.var = 0;
+        cell_list->cell_list.type.rank = strtod (d1, 0);
+        if (cell_list->cell_list.type.rank > 0 && cell_list->cell_list.type.rank < 9)
+        {
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_double,d1,"");
+        } else {
+            log_warn ("config.xml: invalid type attribute: %s of mesh: %s.\n"
+                             "Please select a number between 1 and 8 for cell types\n"
+                             "or: pt, line, tri, quad, hex, pri, tet or pyr.\n"
+                             ,d1
+                             ,name
+                    );
+            free (celltype_att_nam);
+            free (d1);
+
+            return 0;
+        }
+    }
+
+    free(celltype_att_nam);
+
+    free (d1);
+
+    adios_append_mesh_cell_list (&(mesh->cell_list), cell_list);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredUniformCells1 (const char * count
+                                             ,const char * data
+                                             ,const char * type
+                                             ,struct adios_group_struct * new_group
+                                             ,const char * name
+                                             )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_cell_list_list_struct * cell_list = 0;
+    struct adios_mesh_item_struct * item = 0;
+    int64_t      p_new_group = (int64_t) new_group;
+    char * ncellset_att_nam = 0;  // ncellset attribute
+    char * cellcount_att_nam = 0; // single cell count attribute
+    char * celldata_att_nam = 0;  // single cell data  attribute
+    char * celltype_att_nam = 0;  // single cell type attribute
+
+	conca_mesh_att_nam(&ncellset_att_nam,name,"ncsets");
+	adios_common_define_attribute (p_new_group,ncellset_att_nam,"/",adios_double,"1","");
+	free (ncellset_att_nam);
+
+    if (!count)
+    {
+        log_warn ("config.xml: uniform-cells count value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!data)
+    {
+        log_warn ("config.xml: uniform-cells data value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!type)
+    {
+        log_warn ("config.xml: uniform-cells type value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (count);
+    conca_mesh_att_nam(&cellcount_att_nam, name, "ccount");
+    adios_common_define_attribute (p_new_group,cellcount_att_nam,"/",adios_string,d1,"");
+    free (cellcount_att_nam);
+    free (d1);
+
+    d1 = strdup (data);
+    conca_mesh_att_nam(&celldata_att_nam, name, "cdata");
+    adios_common_define_attribute (p_new_group,celldata_att_nam,"/",adios_string,d1,"");
+    free (celldata_att_nam);
+    free (d1);
+
+    d1 = strdup (type);
+    conca_mesh_att_nam(&celltype_att_nam, name, "ctype");
+    adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,d1,"");
+    free(celltype_att_nam);
+    free (d1);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredMixedCells0 (const char * count
+                                           ,const char * data
+                                           ,const char * types
+                                           ,struct adios_group_struct * new_group
+                                           ,struct adios_mesh_unstructured_struct * mesh
+                                           ,const char * name
+                                           )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_cell_list_list_struct * cell_list = 0;
+    struct adios_mesh_item_struct * item = 0;
+    int counter = 0;        // used to create countX, typeX, dataX? attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create countX, typeX, dataX? attributes
+    int64_t      p_new_group = (int64_t) new_group;
+    char * ncellset_att_nam = 0;  // ncellset attribute
+    char * ccounts_att_nam = 0;   // ccountX attributes
+    char * cdata_att_nam = 0;     // cdataX attributes
+    char * celltype_att_nam = 0;  // ctypeX attributes
+
+    item = (struct adios_mesh_item_struct *) malloc
+                            (sizeof (struct adios_mesh_item_struct));
+
+    if (!item)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredMixedCells of mesh: %s\n"
+                         ,name
+                );
+        free (d1);
+
+        return 0;
+    }
+
+    if (!count)
+    {
+        log_warn ("config.xml: mixed-cells count value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!data)
+    {
+        log_warn ("config.xml: mixed-cells data value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!types)
+    {
+        log_warn ("config.xml: mixed-cellsi type value required "
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (count);
+    c = strtok (d1, ",");
+
+    cell_list = (struct adios_mesh_cell_list_list_struct *) malloc
+                        (sizeof (struct adios_mesh_cell_list_list_struct));
+    cell_list->next = 0;
+
+    if (!cell_list)
+    {
+        log_warn ("Out of memory parseMeshUnstructuredMixedCells\n");
+        free (d1);
+
+        return 0;
+    }
+
+    while (c)
+    {
+        if (adios_int_is_var (c))
+        {
+            cell_list->cell_list.count.var =
+                   adios_find_var_by_name (new_group->vars, c
+                                          ,new_group->all_unique_var_names
+                                          );
+            cell_list->cell_list.count.rank = 0;
+            if (!cell_list->cell_list.count.var)
+            {
+                log_warn ("config.xml: invalid variable: %s for cell count\n"
+                                 "of mesh: %s\n"
+                        ,c, name
+                        );
+                free (d1);
+
+                return 0;
+            }else{
+                ccounts_att_nam = 0;
+                counterstr[0] = '\0';
+                snprintf(counterstr, 5, "%d", counter);
+                conca_mesh_numb_att_nam(&ccounts_att_nam, name, "ccount", counterstr);
+                adios_common_define_attribute (p_new_group,ccounts_att_nam,"/",adios_string,c,"");
+                free (ccounts_att_nam);
+                counter++;
+            }
+        }
+        else
+        {
+            cell_list->cell_list.count.var = 0;
+            cell_list->cell_list.count.rank = strtod (c, 0);
+            counterstr[0] = '\0';
+            snprintf(counterstr, 5, "%d", counter);
+            ccounts_att_nam = 0;
+            conca_mesh_numb_att_nam(&ccounts_att_nam, name, "ccount", counterstr);
+            adios_common_define_attribute (p_new_group,ccounts_att_nam,"/",adios_double,c,"");
+            free (ccounts_att_nam);
+            counter++;
+        }
+
+        c = strtok (NULL, ",");
+    }
+    free (d1);
+
+    // We should have at least 2 cell sets, otherwise the cells are uniform
+    if (counter <= 1){
+       log_warn ("config.xml: Please provide at least 2 cell counts of mesh: %s\n"
+                        "or use the 'uniform-cells' tag.\n"
+                        ,name
+               );
+        return 0;
+    }
+
+    item->rank = (double) counter;
+    conca_mesh_att_nam(&ncellset_att_nam, name, "ncsets");
+    adios_common_define_attribute (p_new_group,ncellset_att_nam,"/",adios_double,counterstr,"");
+    free (ncellset_att_nam);
+    item->var = 0;
+
+    mesh->cell_set_count = item;
+
+    // From the number of counts expect the same number of data and type items
+    int cell_set_count = counter;
+    // Reset counter
+    counter = 0;
+
+    d1 = strdup (data);
+    c = strtok (d1, ",");
+    while (c)
+    {
+        if (adios_int_is_var (c))
+        {
+            cell_list->cell_list.data =
+                   adios_find_var_by_name (new_group->vars, c
+                                          ,new_group->all_unique_var_names
+                                          );
+            if (!cell_list->cell_list.data)
+            {
+                log_warn ("config.xml: invalid variable: %s for data of mesh: %s\n"
+                                 ,c
+                                 ,name
+                        );
+                free (d1);
+
+                return 0;
+            } else
+            {
+                cdata_att_nam = 0;
+                counterstr[0] = '\0';
+                snprintf(counterstr, 5, "%d", counter);
+                conca_mesh_numb_att_nam(&cdata_att_nam, name, "cdata", counterstr);
+                adios_common_define_attribute (p_new_group,cdata_att_nam,"/",adios_string,c,"");
+                free (cdata_att_nam);
+                counter++;
+            }
+        }
+        else
+        {
+            cell_list->cell_list.data = 0;
+            log_warn ("config.xml: invalid data: %s of mesh: %s\n"
+                             "Please provide a valid variable for cell data\n"
+                    ,d1
+                    ,name                    );
+            free (d1);
+            return 0;
+        }
+
+        c = strtok (NULL, ",");
+    }
+    free (d1);
+
+    // If the number of data variables does not match the number of counts
+    // Generate an error message
+    if (counter != cell_set_count){
+       log_warn ("config.xml: Please provide at least %d cell data of mesh: %s\n"
+                        "or use the 'uniform-cells' tag\n"
+                        ,cell_set_count
+                        ,name
+               );
+        return 0;
+    }
+
+    // Reset counter
+    counter = 0;
+
+    d1 = strdup (types);
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+        celltype_att_nam = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_numb_att_nam(&celltype_att_nam, name, "ctype", counterstr);
+
+        if (!strcmp(c,"pt") || !strcmp(c,"point"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 1; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"line"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 2; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"tri") || !strcmp(c,"triangle"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 3; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"quad") || !strcmp(c,"quadrilateral"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 4; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"hex") || !strcmp(c,"hexahedron"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 5; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"pri") || !strcmp(c,"prism"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 6; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"tet") || !strcmp(c,"tetrahedron"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 7; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (!strcmp(c,"pyr") || !strcmp(c,"pyramid"))
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = 8; //strtod (c, 0);
+            adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        } else
+        if (adios_int_is_var (c))
+        {
+            cell_list->cell_list.type.var =
+                   adios_find_var_by_name (new_group->vars, c
+                                          ,new_group->all_unique_var_names
+                                          );
+            cell_list->cell_list.type.rank = 0;
+            if (!cell_list->cell_list.type.var)
+            {
+                log_warn ("config.xml: invalid var for type variable: %s\n"
+                                 "of mesh: %s\n"
+                                 ,c
+                                 ,name
+                        );
+                free (d1);
+
+                return 0;
+            } else
+            {
+                adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+            }
+        }
+        else
+        {
+            cell_list->cell_list.type.var = 0;
+            cell_list->cell_list.type.rank = strtod (c, 0);
+            if (cell_list->cell_list.type.rank > 0 && cell_list->cell_list.type.rank < 9)
+            {
+                adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_double,c,"");
+            } else {
+                log_warn ("config.xml: invalid type attribute: %s of mesh: %s.\n"
+                                 "Please select a number between 1 and 8 for cell types\n"
+                                 "or: pt, line, tri, quad, hex, pri, tet or pyr.\n"
+                                 ,c
+                                 ,name
+                        );
+                free (celltype_att_nam);
+                free (d1);
+
+                return 0;
+            }
+        }
+
+        c = strtok (NULL, ",");
+        counter++;
+        free (celltype_att_nam);
+    }
+    free (d1);
+
+    // If the number of data variables does not match the number of counts
+    // Generate an error message
+    if (counter != cell_set_count){
+       log_warn ("config.xml: Please provide at least %d cell types of mesh: %s\n"
+                        "or use the 'uniform-cells' tag\n"
+                        ,cell_set_count
+                        ,name
+               );
+        return 0;
+    }
+
+    adios_append_mesh_cell_list (&(mesh->cell_list), cell_list);
+
+    return 1;
+}
+
+static int parseMeshUnstructuredMixedCells1 (const char * count
+                                           ,const char * data
+                                           ,const char * types
+                                           ,struct adios_group_struct * new_group
+                                           ,const char * name
+                                           )
+{
+    char * c;  // comma location
+    char * d1; // save of strdup
+    struct adios_mesh_cell_list_list_struct * cell_list = 0;
+    struct adios_mesh_item_struct * item = 0;
+    int counter = 0;        // used to create countX, typeX, dataX? attributes
+    char counterstr[5] = {0,0,0,0,0}; // used to create countX, typeX, dataX? attributes
+    int64_t      p_new_group = (int64_t) new_group;
+    char * ncellset_att_nam = 0;  // ncellset attribute
+    char * ccounts_att_nam = 0;   // ccountX attributes
+    char * cdata_att_nam = 0;     // cdataX attributes
+    char * celltype_att_nam = 0;  // ctypeX attributes
+
+    if (!count)
+    {
+        log_warn ("config.xml: mixed-cells count value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!data)
+    {
+        log_warn ("config.xml: mixed-cells data value required"
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!types)
+    {
+        log_warn ("config.xml: mixed-cellsi type value required "
+                         "for unstructured mesh: %s\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    d1 = strdup (count);
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+		cell_list->cell_list.count.var = 0;
+		cell_list->cell_list.count.rank = strtod (c, 0);
+		counterstr[0] = '\0';
+		snprintf(counterstr, 5, "%d", counter);
+		ccounts_att_nam = 0;
+		conca_mesh_numb_att_nam(&ccounts_att_nam, name, "ccount", counterstr);
+		adios_common_define_attribute (p_new_group,ccounts_att_nam,"/",adios_string,c,"");
+		free (ccounts_att_nam);
+		counter++;
+        c = strtok (NULL, ",");
+    }
+    free (d1);
+
+    // We should have at least 2 cell sets, otherwise the cells are uniform
+    if (counter <= 1){
+       log_warn ("config.xml: Please provide at least 2 cell counts of mesh: %s\n"
+                        "or use the 'uniform-cells' tag.\n"
+                        ,name
+               );
+        return 0;
+    }
+
+    conca_mesh_att_nam(&ncellset_att_nam, name, "ncsets");
+    adios_common_define_attribute (p_new_group,ncellset_att_nam,"/",adios_double,counterstr,"");
+    free (ncellset_att_nam);
+
+    // From the number of counts expect the same number of data and type items
+    int cell_set_count = counter;
+    // Reset counter
+    counter = 0;
+
+    d1 = strdup (data);
+    c = strtok (d1, ",");
+    while (c)
+    {
+		cdata_att_nam = 0;
+		counterstr[0] = '\0';
+		snprintf(counterstr, 5, "%d", counter);
+		conca_mesh_numb_att_nam(&cdata_att_nam, name, "cdata", counterstr);
+		adios_common_define_attribute (p_new_group,cdata_att_nam,"/",adios_string,c,"");
+		free (cdata_att_nam);
+		counter++;
+        c = strtok (NULL, ",");
+    }
+    free (d1);
+
+    // If the number of data variables does not match the number of counts
+    // Generate an error message
+    if (counter != cell_set_count){
+       log_warn ("config.xml: Please provide at least %d cell data of mesh: %s\n"
+                        "or use the 'uniform-cells' tag\n"
+                        ,cell_set_count
+                        ,name
+               );
+        return 0;
+    }
+
+    // Reset counter
+    counter = 0;
+
+    d1 = strdup (types);
+    c = strtok (d1, ",");
+
+    while (c)
+    {
+        celltype_att_nam = 0;
+        counterstr[0] = '\0';
+        snprintf(counterstr, 5, "%d", counter);
+        conca_mesh_numb_att_nam(&celltype_att_nam, name, "ctype", counterstr);
+        adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+        c = strtok (NULL, ",");
+        counter++;
+        free (celltype_att_nam);
+    }
+    free (d1);
+
+    // If the number of data variables does not match the number of counts
+    // Generate an error message
+    if (counter != cell_set_count){
+       log_warn ("config.xml: Please provide at least %d cell types of mesh: %s\n"
+                        "or use the 'uniform-cells' tag\n"
+                        ,cell_set_count
+                        ,name
+               );
+        return 0;
+    }
+
+    return 1;
+}
+
+// primary mesh XML parsing
+static int parseMeshUniform0 (mxml_node_t * node
+                            ,struct adios_group_struct * new_group
+                            ,struct adios_mesh_uniform_struct ** mesh
+                            ,const char * name
+                            )
+{
+    mxml_node_t * n;
+    int saw_dimensions = 0;
+    int saw_origin = 0;
+    int saw_spacing = 0;
+    int saw_maximum = 0;
+
+    for (n = mxmlWalkNext (node, node, MXML_DESCEND)
+        ;n
+        ;n = mxmlWalkNext (n, node, MXML_DESCEND)
+        )
+    {
+        if (n->type != MXML_ELEMENT)
+        {
+            continue;
+        }
+
+        if (!strcasecmp (n->value.element.name, "dimensions"))
+        {
+            const char * dimensions;
+
+            if (saw_dimensions)
+            {
+                log_warn ("config.xml: only one dimensions definition "
+                                 "allowed per mesh sructured-points (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_dimensions = 1;
+            dimensions = mxmlElementGetAttr (n, "value");
+
+            if (!dimensions)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "dimensions required (%s)\n"
+                                 ,name
+                        );
+                return 0;
+            }
+
+            if (!parseMeshUniformDimensions0 (dimensions, new_group, *mesh, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "origin"))
+        {
+            const char * value;
+
+            if (saw_origin)
+            {
+                log_warn ("config.xml: only one origin definition "
+                                 "allowed per mesh uniform (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_origin = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "origin required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUniformOrigin0 (value, new_group, *mesh, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "spacing"))
+        {
+            const char * value;
+
+            if (saw_spacing)
+            {
+                log_warn ("config.xml: only one spacing "
+                                 "definition allowed per mesh uniform (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_spacing = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "spacing required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUniformSpacings0 (value, new_group, *mesh, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "maximum"))
+        {
+            const char * value;
+
+            if (saw_maximum)
+            {
+                log_warn ("config.xml: only one maximum "
+                                 "definition allowed per mesh uniform (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_maximum = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "max required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUniformMaximums0 (value, new_group, *mesh, name))
+                return 0;
+        } else
+        {
+            if (!strncmp (n->value.element.name, "!--", 3)) // a comment
+            {
+                continue;
+            }
+        }
+    }
+
+    // If nothing is given, simply assume basic uniform plots using 
+    // the dimensions of the variable, origin=0 and spacing=1
+    /*if (!saw_dimensions)
+    {
+        log_debug ("config.xml: dimensions required on mesh "
+                   "type=uniform (%s)\n",name);
+        return 0;
+    }*/
+
+    return 1;
+}
+
+// primary mesh XML parsing
+static int parseMeshUniform1 (mxml_node_t * node
+        			        ,struct adios_group_struct * new_group
+                            ,const char * name
+                            )
+{
+    mxml_node_t * n;
+    int saw_dimensions = 0;
+    int saw_origin = 0;
+    int saw_spacing = 0;
+    int saw_maximum = 0;
+
+    for (n = mxmlWalkNext (node, node, MXML_DESCEND)
+        ;n
+        ;n = mxmlWalkNext (n, node, MXML_DESCEND)
+        )
+    {
+        if (n->type != MXML_ELEMENT)
+        {
+            continue;
+        }
+
+        if (!strcasecmp (n->value.element.name, "dimensions"))
+        {
+            const char * dimensions;
+
+            if (saw_dimensions)
+            {
+                log_warn ("config.xml: only one dimensions definition "
+                                 "allowed per mesh sructured-points (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_dimensions = 1;
+            dimensions = mxmlElementGetAttr (n, "value");
+
+            if (!dimensions)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "dimensions required (%s)\n"
+                                 ,name
+                        );
+                return 0;
+            }
+
+            if (!parseMeshUniformDimensions1 (dimensions, new_group, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "origin"))
+        {
+            const char * value;
+
+            if (saw_origin)
+            {
+                log_warn ("config.xml: only one origin definition "
+                                 "allowed per mesh uniform (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_origin = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "origin required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUniformOrigin1 (value, new_group, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "spacing"))
         {
-            cell_list->cell_list.type.var =
-                   adios_find_var_by_name (new_group->vars, c
-                                          ,new_group->all_unique_var_names
-                                          );
-            cell_list->cell_list.type.rank = 0;
-            if (!cell_list->cell_list.type.var)
+            const char * value;
+
+            if (saw_spacing)
+            {
+                log_warn ("config.xml: only one spacing "
+                                 "definition allowed per mesh uniform (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_spacing = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "spacing required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUniformSpacings1 (value, new_group, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "maximum"))
+        {
+            const char * value;
+
+            if (saw_maximum)
+            {
+                log_warn ("config.xml: only one maximum "
+                                 "definition allowed per mesh uniform (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_maximum = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "max required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUniformMaximums1 (value, new_group, name))
+                return 0;
+        } else
+        {
+            if (!strncmp (n->value.element.name, "!--", 3)) // a comment
+            {
+                continue;
+            }
+        }
+    }
+
+    return 1;
+}
+
+static int parseMeshRectilinear0 (mxml_node_t * node
+                               ,struct adios_group_struct * new_group
+                               ,struct adios_mesh_rectilinear_struct ** mesh
+                               ,const char * name
+                               )
+{
+    mxml_node_t * n;
+    int saw_dimensions = 0;
+    int saw_coordinates_multi_var = 0;
+    int saw_coordinates_single_var = 0;
+
+    for (n = mxmlWalkNext (node, node, MXML_DESCEND)
+        ;n
+        ;n = mxmlWalkNext (n, node, MXML_DESCEND)
+        )
+    {
+        if (n->type != MXML_ELEMENT)
+        {
+            continue;
+        }
+
+        if (!strcasecmp (n->value.element.name, "dimensions"))
+        {
+            const char * value;
+
+            if (saw_dimensions)
+            {
+                log_warn ("config.xml: only one dimensions "
+                                 "definition allowed per mesh rectilinear (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_dimensions = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "dimensions required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshRectilinearDimensions0 (value, new_group, *mesh, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "coordinates-multi-var"))
+        {
+            const char * value;
+
+            if (saw_coordinates_multi_var || saw_coordinates_single_var)
+            {
+                log_warn ("config.xml: only one coordinates "
+                                 "definition allowed per mesh rectilinear (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_coordinates_multi_var = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "coordinates-multi-var required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshRectilinearCoordinatesMultiVar0 (value, new_group, *mesh, name))
+                return 0;
+            (*mesh)->coordinates_single_var = adios_flag_no;
+        } else
+        if (!strcasecmp (n->value.element.name, "coordinates-single-var"))
+        {
+            const char * value;
+
+            if (saw_coordinates_single_var || saw_coordinates_multi_var)
+            {
+                log_warn ("config.xml: only one coordinates "
+                                 "definition allowed per mesh rectilinear (%s)\n"
+                                 ,name
+                        );
+                return 0;
+            }
+
+            saw_coordinates_single_var = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "coordinates-single-var required (%s)\n"
+                                 ,name
+                        );
+                return 0;
+            }
+
+            if (!parseMeshRectilinearCoordinatesSingleVar0 (value, new_group, *mesh, name))
+                return 0;
+            (*mesh)->coordinates_single_var = adios_flag_yes;
+        } else
+        {
+            if (!strncmp (n->value.element.name, "!--", 3)) // a comment
+            {
+                continue;
+            }
+        }
+    }
+
+    if (!saw_dimensions)
+    {
+        log_warn ("config.xml: dimensions required on mesh "
+                         "type=rectilinear (%s)\n"
+                         ,name
+                );
+        return 0;
+    }
+    if (!saw_coordinates_multi_var && !saw_coordinates_single_var)
+    {
+        log_warn ("config.xml: coordinates-multi-var or "
+                         "coordinates-single-var required on mesh "
+                         "type=rectilinear (%s)\n"
+                         ,name
+                );
+
+        return 0;
+    }
+
+    return 1;
+}
+
+static int parseMeshRectilinear1 (mxml_node_t * node
+                         	,struct adios_group_struct * new_group
+                                ,const char * name
+                                )
+{
+    mxml_node_t * n;
+    int saw_dimensions = 0;
+    int saw_coordinates_multi_var = 0;
+    int saw_coordinates_single_var = 0;
+
+    for (n = mxmlWalkNext (node, node, MXML_DESCEND)
+        ;n
+        ;n = mxmlWalkNext (n, node, MXML_DESCEND)
+        )
+    {
+        if (n->type != MXML_ELEMENT)
+        {
+            continue;
+        }
+
+        if (!strcasecmp (n->value.element.name, "dimensions"))
+        {
+            const char * value;
+
+            if (saw_dimensions)
+            {
+                log_warn ("config.xml: only one dimensions "
+                                 "definition allowed per mesh rectilinear (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_dimensions = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "dimensions required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshRectilinearDimensions1 (value, new_group, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "coordinates-multi-var"))
+        {
+            const char * value;
+
+            if (saw_coordinates_multi_var || saw_coordinates_single_var)
             {
-                log_warn ("config.xml: invalid var for type variable: %s\n"
-                                 "of mesh: %s\n"
-                                 ,c
+                log_warn ("config.xml: only one coordinates "
+                                 "definition allowed per mesh rectilinear (%s)\n"
                                  ,name
                         );
-                free (d1);
 
                 return 0;
-            } else
+            }
+
+            saw_coordinates_multi_var = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
             {
-                adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_string,c,"");
+                log_warn ("config.xml: value attribute on "
+                                 "coordinates-multi-var required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
             }
-        }
-        else
+
+            if (!parseMeshRectilinearCoordinatesMultiVar1 (value, new_group, name))
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "coordinates-single-var"))
         {
-            cell_list->cell_list.type.var = 0;
-            cell_list->cell_list.type.rank = strtod (c, 0);
-            if (cell_list->cell_list.type.rank > 0 && cell_list->cell_list.type.rank < 9)
+            const char * value;
+
+            if (saw_coordinates_single_var || saw_coordinates_multi_var)
             {
-                adios_common_define_attribute (p_new_group,celltype_att_nam,"/",adios_double,c,"");
-            } else {
-                log_warn ("config.xml: invalid type attribute: %s of mesh: %s.\n"
-                                 "Please select a number between 1 and 8 for cell types\n"
-                                 "or: pt, line, tri, quad, hex, pri, tet or pyr.\n"
-                                 ,c
+                log_warn ("config.xml: only one coordinates "
+                                 "definition allowed per mesh rectilinear (%s)\n"
                                  ,name
                         );
-                free (celltype_att_nam);
-                free (d1);
+                return 0;
+            }
+
+            saw_coordinates_single_var = 1;
+            value = mxmlElementGetAttr (n, "value");
 
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "coordinates-single-var required (%s)\n"
+                                 ,name
+                        );
                 return 0;
             }
-        }
 
-        c = strtok (NULL, ",");
-        counter++;
-        free (celltype_att_nam);
+            if (!parseMeshRectilinearCoordinatesSingleVar1 (value, new_group, name))
+                return 0;
+        } else
+        {
+            if (!strncmp (n->value.element.name, "!--", 3)) // a comment
+            {
+                continue;
+            }
+        }
     }
-    free (d1);
 
-    // If the number of data variables does not match the number of counts
-    // Generate an error message
-    if (counter != cell_set_count){
-       log_warn ("config.xml: Please provide at least %d cell types of mesh: %s\n"
-                        "or use the 'uniform-cells' tag\n"
-                        ,cell_set_count
-                        ,name
-               );
+    if (!saw_dimensions)
+    {
+        log_warn ("config.xml: dimensions required on mesh "
+                         "type=rectilinear (%s)\n"
+                         ,name
+                );
         return 0;
     }
+    if (!saw_coordinates_multi_var && !saw_coordinates_single_var)
+    {
+        log_warn ("config.xml: coordinates-multi-var or "
+                         "coordinates-single-var required on mesh "
+                         "type=rectilinear (%s)\n"
+                         ,name
+                );
 
-    adios_append_mesh_cell_list (&(mesh->cell_list), cell_list);
+        return 0;
+    }
 
     return 1;
 }
 
-// primary mesh XML parsing
-static int parseMeshUniform (mxml_node_t * node
-                            ,struct adios_group_struct * new_group
-                            ,struct adios_mesh_uniform_struct ** mesh
-                            ,const char * name
-                            )
+static int parseMeshStructured0 (mxml_node_t * node
+                               ,struct adios_group_struct * new_group
+                               ,struct adios_mesh_structured_struct ** mesh
+                               ,const char * name
+                               )
 {
     mxml_node_t * n;
+    int saw_nspace = 0;
     int saw_dimensions = 0;
-    int saw_origin = 0;
-    int saw_spacing = 0;
-    int saw_maximum = 0;
+    int saw_points_multi_var = 0;
+    int saw_points_single_var = 0;
 
     for (n = mxmlWalkNext (node, node, MXML_DESCEND)
         ;n
@@ -2258,124 +4563,127 @@ static int parseMeshUniform (mxml_node_t * node
             continue;
         }
 
-        if (!strcasecmp (n->value.element.name, "dimensions"))
+        if (!strcasecmp (n->value.element.name, "nspace"))
         {
-            const char * dimensions;
+            const char * value;
 
-            if (saw_dimensions)
+            if (saw_nspace)
             {
-                log_warn ("config.xml: only one dimensions definition "
-                                 "allowed per mesh sructured-points (%s)\n"
+                log_warn ("config.xml: only one nspace "
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            saw_dimensions = 1;
-            dimensions = mxmlElementGetAttr (n, "value");
+            saw_nspace = 1;
+            value = mxmlElementGetAttr (n, "value");
 
-            if (!dimensions)
+            if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "dimensions required (%s)\n"
+                                 "nspace required (%s)\n"
                                  ,name
                         );
+
                 return 0;
             }
 
-            if (!parseMeshUniformDimensions (dimensions, new_group, *mesh, name))
+            if (!parseMeshStructuredNspace0 (value, new_group, *mesh, name))
                 return 0;
         } else
-        if (!strcasecmp (n->value.element.name, "origin"))
+        if (!strcasecmp (n->value.element.name, "dimensions"))
         {
             const char * value;
 
-            if (saw_origin)
+            if (saw_dimensions)
             {
-                log_warn ("config.xml: only one origin definition "
-                                 "allowed per mesh uniform (%s)\n"
+                log_warn ("config.xml: only one dimensions "
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            saw_origin = 1;
+            saw_dimensions = 1;
             value = mxmlElementGetAttr (n, "value");
 
             if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "origin required (%s)\n"
+                                 "dimensions required (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            if (!parseMeshUniformOrigin (value, new_group, *mesh, name))
+            if (!parseMeshStructuredDimensions0 (value, new_group, *mesh, name))
                 return 0;
         } else
-        if (!strcasecmp (n->value.element.name, "spacing"))
+        if (!strcasecmp (n->value.element.name, "points-multi-var"))
         {
             const char * value;
 
-            if (saw_spacing)
+            if (saw_points_multi_var || saw_points_single_var)
             {
-                log_warn ("config.xml: only one spacing "
-                                 "definition allowed per mesh uniform (%s)\n"
+                log_warn ("config.xml: only one points "
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            saw_spacing = 1;
+            saw_points_multi_var = 1;
             value = mxmlElementGetAttr (n, "value");
 
             if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "spacing required (%s)\n"
+                                 "points-multi-var required (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            if (!parseMeshUniformSpacing (value, new_group, *mesh, name))
+            if (!parseMeshStructuredPointsMultiVar0 (value, new_group, *mesh, name))
                 return 0;
+            (*mesh)->points_single_var = adios_flag_no;
         } else
-        if (!strcasecmp (n->value.element.name, "maximum"))
+        if (!strcasecmp (n->value.element.name, "points-single-var"))
         {
             const char * value;
 
-            if (saw_maximum)
+            if (saw_points_multi_var || saw_points_single_var)
             {
-                log_warn ("config.xml: only one maximum "
-                                 "definition allowed per mesh uniform (%s)\n"
+                log_warn ("config.xml: only one points "
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            saw_maximum = 1;
+            saw_points_single_var = 1;
             value = mxmlElementGetAttr (n, "value");
 
             if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "max required (%s)\n"
+                                 "points-single-var required (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            if (!parseMeshUniformMaxima (value, new_group, *mesh, name))
+            if (!parseMeshStructuredPointsSingleVar0 (value, new_group, *mesh, name))
                 return 0;
+            (*mesh)->points_single_var = adios_flag_yes;
         } else
         {
             if (!strncmp (n->value.element.name, "!--", 3)) // a comment
@@ -2385,28 +4693,48 @@ static int parseMeshUniform (mxml_node_t * node
         }
     }
 
-    // If nothing is given, simply assume basic uniform plots using 
-    // the dimensions of the variable, origin=0 and spacing=1
-    /*if (!saw_dimensions)
+    if (!saw_dimensions)
     {
-        log_debug ("config.xml: dimensions required on mesh "
-                   "type=uniform (%s)\n",name);
+        log_warn ("config.xml: dimensions required on mesh "
+                         "type=structured (%s)\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    if (!saw_points_multi_var && !saw_points_single_var)
+    {
+        log_warn ("config.xml: points-single-var or points-multi-var "
+                         "required on mesh type=structured (%s)\n"
+                         ,name
+                );
+
+        return 0;
+    }
+    // nspace should not be required since the single var could be multi-dim
+    /*if (saw_points_single_var && !saw_nspace)
+    {
+        log_warn ("config.xml: points-single-var and nspace "
+                         "required on mesh type=structured (%s)\n"
+                         ,name
+                );
+
         return 0;
     }*/
 
     return 1;
 }
 
-static int parseMeshRectilinear (mxml_node_t * node
-                               ,struct adios_group_struct * new_group
-                               ,struct adios_mesh_rectilinear_struct ** mesh
+static int parseMeshStructured1 (mxml_node_t * node
+								,struct adios_group_struct * new_group
                                ,const char * name
                                )
 {
     mxml_node_t * n;
+    int saw_nspace = 0;
     int saw_dimensions = 0;
-    int saw_coordinates_multi_var = 0;
-    int saw_coordinates_single_var = 0;
+    int saw_points_multi_var = 0;
+    int saw_points_single_var = 0;
 
     for (n = mxmlWalkNext (node, node, MXML_DESCEND)
         ;n
@@ -2418,6 +4746,36 @@ static int parseMeshRectilinear (mxml_node_t * node
             continue;
         }
 
+        if (!strcasecmp (n->value.element.name, "nspace"))
+        {
+            const char * value;
+
+            if (saw_nspace)
+            {
+                log_warn ("config.xml: only one nspace "
+                                 "definition allowed per mesh structured (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            saw_nspace = 1;
+            value = mxmlElementGetAttr (n, "value");
+
+            if (!value)
+            {
+                log_warn ("config.xml: value attribute on "
+                                 "nspace required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshStructuredNspace1 (value, new_group, name))
+                return 0;
+        } else
         if (!strcasecmp (n->value.element.name, "dimensions"))
         {
             const char * value;
@@ -2425,7 +4783,7 @@ static int parseMeshRectilinear (mxml_node_t * node
             if (saw_dimensions)
             {
                 log_warn ("config.xml: only one dimensions "
-                                 "definition allowed per mesh rectilinear (%s)\n"
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
 
@@ -2445,68 +4803,68 @@ static int parseMeshRectilinear (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshRectilinearDimensions (value, new_group, *mesh, name))
+            if (!parseMeshStructuredDimensions1 (value, new_group, name))
                 return 0;
         } else
-        if (!strcasecmp (n->value.element.name, "coordinates-multi-var"))
+        if (!strcasecmp (n->value.element.name, "points-multi-var"))
         {
             const char * value;
 
-            if (saw_coordinates_multi_var || saw_coordinates_single_var)
+            if (saw_points_multi_var || saw_points_single_var)
             {
-                log_warn ("config.xml: only one coordinates "
-                                 "definition allowed per mesh rectilinear (%s)\n"
+                log_warn ("config.xml: only one points "
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            saw_coordinates_multi_var = 1;
+            saw_points_multi_var = 1;
             value = mxmlElementGetAttr (n, "value");
 
             if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "coordinates-multi-var required (%s)\n"
+                                 "points-multi-var required (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            if (!parseMeshRectilinearCoordinatesMultiVar (value, new_group, *mesh, name))
+            if (!parseMeshStructuredPointsMultiVar1 (value, new_group, name))
                 return 0;
-            (*mesh)->coordinates_single_var = adios_flag_no;
         } else
-        if (!strcasecmp (n->value.element.name, "coordinates-single-var"))
+        if (!strcasecmp (n->value.element.name, "points-single-var"))
         {
             const char * value;
 
-            if (saw_coordinates_single_var || saw_coordinates_multi_var)
+            if (saw_points_multi_var || saw_points_single_var)
             {
-                log_warn ("config.xml: only one coordinates "
-                                 "definition allowed per mesh rectilinear (%s)\n"
+                log_warn ("config.xml: only one points "
+                                 "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
+
                 return 0;
             }
 
-            saw_coordinates_single_var = 1;
+            saw_points_single_var = 1;
             value = mxmlElementGetAttr (n, "value");
 
             if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "coordinates-single-var required (%s)\n"
+                                 "points-single-var required (%s)\n"
                                  ,name
                         );
+
                 return 0;
             }
 
-            if (!parseMeshRectilinearCoordinatesSingleVar (value, new_group, *mesh, name))
+            if (!parseMeshStructuredPointsSingleVar1 (value, new_group, name))
                 return 0;
-            (*mesh)->coordinates_single_var = adios_flag_yes;
         } else
         {
             if (!strncmp (n->value.element.name, "!--", 3)) // a comment
@@ -2519,16 +4877,16 @@ static int parseMeshRectilinear (mxml_node_t * node
     if (!saw_dimensions)
     {
         log_warn ("config.xml: dimensions required on mesh "
-                         "type=rectilinear (%s)\n"
+                         "type=structured (%s)\n"
                          ,name
                 );
+
         return 0;
     }
-    if (!saw_coordinates_multi_var && !saw_coordinates_single_var)
+    if (!saw_points_multi_var && !saw_points_single_var)
     {
-        log_warn ("config.xml: coordinates-multi-var or "
-                         "coordinates-single-var required on mesh "
-                         "type=rectilinear (%s)\n"
+        log_warn ("config.xml: points-single-var or points-multi-var "
+                         "required on mesh type=structured (%s)\n"
                          ,name
                 );
 
@@ -2538,17 +4896,19 @@ static int parseMeshRectilinear (mxml_node_t * node
     return 1;
 }
 
-static int parseMeshStructured (mxml_node_t * node
-                               ,struct adios_group_struct * new_group
-                               ,struct adios_mesh_structured_struct ** mesh
-                               ,const char * name
-                               )
+static int parseMeshUnstructured0 (mxml_node_t * node
+                                 ,struct adios_group_struct * new_group
+                                 ,struct adios_mesh_unstructured_struct ** mesh
+                                 ,const char * name
+                                 )
 {
     mxml_node_t * n;
-    int saw_nspace = 0;
-    int saw_dimensions = 0;
+    int saw_points = 0;
+    int saw_nspace =0;
+    int saw_number_of_points = 0;
     int saw_points_multi_var = 0;
     int saw_points_single_var = 0;
+    int saw_cell_set = 0;
 
     for (n = mxmlWalkNext (node, node, MXML_DESCEND)
         ;n
@@ -2587,16 +4947,16 @@ static int parseMeshStructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshStructuredNspace (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredNspace0 (value, new_group, *mesh, name))
                 return 0;
-        } else
-        if (!strcasecmp (n->value.element.name, "dimensions"))
+        }else
+        if (!strcasecmp (n->value.element.name, "number-of-points"))
         {
             const char * value;
 
-            if (saw_dimensions)
+            if (saw_number_of_points)
             {
-                log_warn ("config.xml: only one dimensions "
+                log_warn ("config.xml: only one number-of-points "
                                  "definition allowed per mesh structured (%s)\n"
                                  ,name
                         );
@@ -2604,22 +4964,22 @@ static int parseMeshStructured (mxml_node_t * node
                 return 0;
             }
 
-            saw_dimensions = 1;
+            saw_number_of_points = 1;
             value = mxmlElementGetAttr (n, "value");
 
             if (!value)
             {
                 log_warn ("config.xml: value attribute on "
-                                 "dimensions required (%s)\n"
+                                 "number-of-points required (%s)\n"
                                  ,name
                         );
 
                 return 0;
             }
 
-            if (!parseMeshStructuredDimensions (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredNpoints0 (value, new_group, *mesh, name))
                 return 0;
-        } else
+        }else
         if (!strcasecmp (n->value.element.name, "points-multi-var"))
         {
             const char * value;
@@ -2627,7 +4987,7 @@ static int parseMeshStructured (mxml_node_t * node
             if (saw_points_multi_var || saw_points_single_var)
             {
                 log_warn ("config.xml: only one points "
-                                 "definition allowed per mesh structured (%s)\n"
+                                 "definition allowed per mesh unstructured (%s)\n"
                                  ,name
                         );
 
@@ -2647,7 +5007,7 @@ static int parseMeshStructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshStructuredPointsMultiVar (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredPointsMultiVar0 (value, new_group, *mesh, name))
                 return 0;
             (*mesh)->points_single_var = adios_flag_no;
         } else
@@ -2658,7 +5018,7 @@ static int parseMeshStructured (mxml_node_t * node
             if (saw_points_multi_var || saw_points_single_var)
             {
                 log_warn ("config.xml: only one points "
-                                 "definition allowed per mesh structured (%s)\n"
+                                 "definition allowed per mesh unstructured (%s)\n"
                                  ,name
                         );
 
@@ -2678,10 +5038,102 @@ static int parseMeshStructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshStructuredPointsSingleVar (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredPointsSingleVar0 (value, new_group, *mesh, name))
                 return 0;
             (*mesh)->points_single_var = adios_flag_yes;
         } else
+        if (!strcasecmp (n->value.element.name, "uniform-cells"))
+        {
+            const char * count;
+            const char * data;
+            const char * type;
+
+            saw_cell_set = 1;
+            count = mxmlElementGetAttr (n, "count");
+            data = mxmlElementGetAttr (n, "data");
+            type = mxmlElementGetAttr (n, "type");
+
+            if (!count)
+            {
+                log_warn ("config.xml: count attribute on "
+                                 "uniform-cells required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+            if (!data)
+            {
+                log_warn ("config.xml: data attribute on "
+                                 "uniform-cells required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+            if (!type)
+            {
+                log_warn ("config.xml: type attribute on "
+                                 "uniform-cells required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUnstructuredUniformCells0 (count, data, type
+                                                   ,new_group, *mesh
+                                                   ,name
+                                                   )
+               )
+                return 0;
+        } else
+        if (!strcasecmp (n->value.element.name, "mixed-cells"))
+        {
+            const char * count;
+            const char * data;
+            const char * types;
+
+            saw_cell_set = 1;
+            count = mxmlElementGetAttr (n, "count");
+            data = mxmlElementGetAttr (n, "data");
+            types = mxmlElementGetAttr (n, "type");
+
+            if (!count)
+            {
+                log_warn ("config.xml: count attribute on "
+                                 "mixed-cells required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+            if (!data)
+            {
+                log_warn ("config.xml: data attribute on "
+                                 "mixed-cells required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+            if (!types)
+            {
+                log_warn ("config.xml: types attribute on "
+                                 "mixed-cells required (%s)\n"
+                                 ,name
+                        );
+
+                return 0;
+            }
+
+            if (!parseMeshUnstructuredMixedCells0 (count, data, types
+                                                   ,new_group, *mesh
+                                                   ,name
+                                                   )
+               )
+                return 0;
+        } else
         {
             if (!strncmp (n->value.element.name, "!--", 3)) // a comment
             {
@@ -2690,42 +5142,43 @@ static int parseMeshStructured (mxml_node_t * node
         }
     }
 
-    if (!saw_dimensions)
+    if (!saw_points_multi_var && !saw_points_single_var)
     {
-        log_warn ("config.xml: dimensions required on mesh "
-                         "type=structured (%s)\n"
+        log_warn ("config.xml: points-single-var or points-multi-var "
+                         "required on mesh type=unstructured (%s)\n"
                          ,name
                 );
 
         return 0;
     }
-    if (!saw_points_multi_var && !saw_points_single_var)
+    // nspace should not be required since the single variable could be multi-dim
+    /*if (saw_points_single_var && !saw_nspace && !saw_number_of_points)
     {
-        log_warn ("config.xml: points-single-var or points-multi-var "
-                         "required on mesh type=structured (%s)\n"
+        log_warn ("config.xml: with points-single-var, nspace or number-of-points "
+                         "required on mesh type=unstructured (%s)\n"
                          ,name
                 );
 
         return 0;
-    }
-    // nspace should not be required since the single var could be multi-dim
-    /*if (saw_points_single_var && !saw_nspace)
+
+    }*/
+
+    if (!saw_cell_set)
     {
-        log_warn ("config.xml: points-single-var and nspace "
-                         "required on mesh type=structured (%s)\n"
+        log_warn ("config.xml: at least one cell-set required on "
+                         "mesh type=unstructured (%s)\n"
                          ,name
                 );
 
         return 0;
-    }*/
+    }
 
     return 1;
 }
 
-static int parseMeshUnstructured (mxml_node_t * node
-                                 ,struct adios_group_struct * new_group
-                                 ,struct adios_mesh_unstructured_struct ** mesh
-                                 ,const char * name
+static int parseMeshUnstructured1 (mxml_node_t * node
+        ,struct adios_group_struct * new_group
+        ,const char * name
                                  )
 {
     mxml_node_t * n;
@@ -2773,7 +5226,7 @@ static int parseMeshUnstructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshUnstructuredNspace (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredNspace1 (value, new_group, name))
                 return 0;
         }else
         if (!strcasecmp (n->value.element.name, "number-of-points"))
@@ -2803,7 +5256,7 @@ static int parseMeshUnstructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshUnstructuredNpoints (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredNpoints1 (value, new_group, name))
                 return 0;
         }else
         if (!strcasecmp (n->value.element.name, "points-multi-var"))
@@ -2833,9 +5286,8 @@ static int parseMeshUnstructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshUnstructuredPointsMultiVar (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredPointsMultiVar1 (value, new_group, name))
                 return 0;
-            (*mesh)->points_single_var = adios_flag_no;
         } else
         if (!strcasecmp (n->value.element.name, "points-single-var"))
         {
@@ -2864,9 +5316,8 @@ static int parseMeshUnstructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshUnstructuredPointsSingleVar (value, new_group, *mesh, name))
+            if (!parseMeshUnstructuredPointsSingleVar1 (value, new_group, name))
                 return 0;
-            (*mesh)->points_single_var = adios_flag_yes;
         } else
         if (!strcasecmp (n->value.element.name, "uniform-cells"))
         {
@@ -2907,8 +5358,8 @@ static int parseMeshUnstructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshUnstructuredUniformCells (count, data, type
-                                                   ,new_group, *mesh
+            if (!parseMeshUnstructuredUniformCells1 (count, data, type
+            									   , new_group
                                                    ,name
                                                    )
                )
@@ -2953,8 +5404,8 @@ static int parseMeshUnstructured (mxml_node_t * node
                 return 0;
             }
 
-            if (!parseMeshUnstructuredMixedCells (count, data, types
-                                                   ,new_group, *mesh
+            if (!parseMeshUnstructuredMixedCells1 (count, data, types
+            									   ,new_group
                                                    ,name
                                                    )
                )
@@ -2977,17 +5428,6 @@ static int parseMeshUnstructured (mxml_node_t * node
 
         return 0;
     }
-    // nspace should not be required since the single variable could be multi-dim
-    /*if (saw_points_single_var && !saw_nspace && !saw_number_of_points)
-    {
-        log_warn ("config.xml: with points-single-var, nspace or number-of-points "
-                         "required on mesh type=unstructured (%s)\n"
-                         ,name
-                );
-
-        return 0;
-
-    }*/
 
     if (!saw_cell_set)
     {
@@ -3083,7 +5523,56 @@ static int validatePath (const struct adios_var_struct * vars
     return 0;
 }
 
-static int parseGroup (mxml_node_t * node)
+static int parseSchemaVersion(struct adios_group_struct * new_group, char * schema_version){
+    int64_t      p_new_group = (int64_t) new_group;
+
+    if (strcasecmp (schema_version,"")){
+      char * ver;// copy version
+      char * d;  // dot location
+      char * ptr_end;
+      ver = strdup (schema_version);
+      char * schema_version_major;
+      char * schema_version_minor;
+      char * schema_version_major_att_nam;
+      char * schema_version_minor_att_nam;
+      d = strtok (ver, ".");
+      int counter = 0; // counter
+      //int slength = 0;
+      while (d)
+      {
+          int slength = 0;
+          if (!strtod (d,&ptr_end)){
+              printf("Schema version invalid.\n");
+              counter = 0;
+              break;
+          }else{
+              slength = strlen("adios_schema/");
+              if (counter == 0 ){
+                  slength = slength + strlen("version_major") + 1;
+                  schema_version_major_att_nam = malloc (slength);
+                  strcpy(schema_version_major_att_nam,"adios_schema/version_major");
+                  //schema_version_major = strdup(d);
+                  adios_common_define_attribute (p_new_group,schema_version_major_att_nam,"/",adios_string,d,"");
+              }else if (counter == 1){
+                  slength = slength + strlen("version_minor") + 1;
+                  schema_version_minor_att_nam = malloc (slength);
+                  strcpy(schema_version_minor_att_nam,"adios_schema/version_minor");
+                  //schema_version_minor = strdup(d);
+                  adios_common_define_attribute (p_new_group,schema_version_minor_att_nam,"/",adios_string,d,"");
+              }
+          }
+          counter++;
+          d = strtok (NULL, ".");
+      }
+      if (counter == 0){
+          printf("Error: Could not detect valid schema version.\n");
+      }
+    free(ver);
+    }
+    return 0;
+}
+
+static int parseGroup (mxml_node_t * node, char * schema_version)
 {
     mxml_node_t * n;
 
@@ -3191,6 +5680,7 @@ static int parseGroup (mxml_node_t * node)
                                );
      new_group = (struct adios_group_struct *)ptr_new_group;
 
+    parseSchemaVersion(new_group, schema_version);
     for (n = mxmlWalkNext (node, node, MXML_DESCEND)
         ;n
         ;n = mxmlWalkNext (n, node, MXML_NO_DESCEND)
@@ -3209,14 +5699,20 @@ static int parseGroup (mxml_node_t * node)
             const char * name = 0;
             const char * path = 0;
             const char * mesh = 0;
+            const char * center = 0;
             const char * type = 0;
+            const char * tsteps = 0;
+            const char * tscale = 0;
+            const char * tformat = 0;
+            const char * hyperslab = 0;
             const char * dimensions = 0;
             const char * dimension = 0;
             const char * gread = 0;
             const char * gwrite = 0;
             const char * read_flag = 0;
             enum ADIOS_DATATYPES t1;
-            char  * mpath = 0;
+            char  * mpath1 = 0;
+            char  * mpath2 = 0;
 
             for (i = 0; i < n->value.element.num_attrs; i++)
             {
@@ -3224,6 +5720,11 @@ static int parseGroup (mxml_node_t * node)
 
                 GET_ATTR("name",attr,name,"var")
                 GET_ATTR("mesh",attr,mesh,"var")
+                GET_ATTR("center",attr,center,"var")
+                GET_ATTR("time-steps",attr,tsteps,"var")
+                GET_ATTR("time-scale",attr,tscale,"var")
+                GET_ATTR("time-series-format",attr,tformat,"var")
+                GET_ATTR("hyperslab",attr,hyperslab,"var")
                 GET_ATTR("path",attr,path,"var")
                 GET_ATTR("type",attr,type,"var")
                 GET_ATTR("dimensions",attr,dimensions,"var")
@@ -3246,7 +5747,16 @@ static int parseGroup (mxml_node_t * node)
                 type = ""; // this will catch the error
             if (!mesh)
                 mesh = "";  
-
+            if (!center)
+                center = "";  
+            if (!tsteps)
+                tsteps = "";  
+            if (!tscale)
+                tscale = "";  
+            if (!tformat)
+                tformat = "";  
+            if (!hyperslab)
+                hyperslab = "";  
             t1 = parseType (type, name);
 
             if (!dimensions)
@@ -3273,10 +5783,37 @@ static int parseGroup (mxml_node_t * node)
                 // Successfully define a variable, so now 
                 // an attribute for the mesh if it exists.
                 if (strcmp(mesh,"")){
-                    mpath = malloc(strlen("/adios_schema")+strlen(name)+1);
-                    strcpy(mpath,name);
-                    strcat(mpath,"/adios_schema");
-                    adios_common_define_attribute (ptr_new_group,mpath,path,adios_string,mesh,"");
+                    mpath1 = malloc(strlen("/adios_schema")+strlen(name)+1);
+                    strcpy(mpath1,name);
+                    strcat(mpath1,"/adios_schema");
+                    adios_common_define_attribute (ptr_new_group,mpath1,path,adios_string,mesh,"");
+                }
+                // an attribute for the center if it exists.
+                if (strcmp(center,"")){
+                    mpath2 = malloc(strlen("/adios_schema/centering")+strlen(name)+1);
+                    strcpy(mpath2,name);
+                    strcat(mpath2,"/adios_schema/centering");
+                    adios_common_define_attribute (ptr_new_group,mpath2,path,adios_string,center,"");
+                }
+                // if a time attribute exists
+                // parse it and define it
+                if (strcmp(tsteps,"")){
+                    parseVarTimeSteps(tsteps,new_group,name);
+                }
+                // if a time scale attribute exists
+                // parse it and define it
+                if (strcmp(tscale,"")){
+                    parseVarTimeScale(tscale,new_group,name);
+                }
+                // if a time series format attribute exists
+                // parse it and define it
+                if (strcmp(tformat,"")){
+                    parseVarTimeSeriesFormat(tformat,new_group,name);
+                }
+                // if a hyperslab attribute exists
+                // parse it and define it
+                if (strcmp(hyperslab,"")){
+                    parseVarHyperSlab(hyperslab,new_group,name);
                 }
             }
         } else
@@ -3358,6 +5895,11 @@ static int parseGroup (mxml_node_t * node)
                 {
                     const char * name = 0;
                     const char * mesh = 0;
+                    const char * center = 0;
+                    const char * tsteps = 0;
+                    const char * tscale = 0;
+                    const char * tformat = 0;
+                    const char * hyperslab = 0;
                     const char * path = 0;
                     const char * type = 0;
                     const char * dimension = 0;
@@ -3366,7 +5908,8 @@ static int parseGroup (mxml_node_t * node)
                     const char * gread = 0;
                     const char * read_flag = 0;
                     enum ADIOS_DATATYPES t1;
-                    char * mpath = 0;
+                    char * mpath1 = 0;
+                    char * mpath2 = 0;
 
                     for (i = 0; i < n1->value.element.num_attrs; i++)
                     {
@@ -3374,6 +5917,11 @@ static int parseGroup (mxml_node_t * node)
 
                         GET_ATTR("name",attr,name,"var")
                         GET_ATTR("mesh",attr,mesh,"var")
+                        GET_ATTR("center",attr,center,"var")
+                        GET_ATTR("time-steps",attr,tsteps,"var")
+                        GET_ATTR("time-scale",attr,tscale,"var")
+                        GET_ATTR("time-series-format",attr,tformat,"var")
+                        GET_ATTR("hyperslab",attr,hyperslab,"var")
                         GET_ATTR("path",attr,path,"var")
                         GET_ATTR("type",attr,type,"global-bounds var")
                         GET_ATTR("dimensions",attr,dimensions,"var")
@@ -3396,7 +5944,16 @@ static int parseGroup (mxml_node_t * node)
                         type = ""; // this will catch the error
                     if (!mesh)
                         mesh = ""; 
-
+                    if (!center)
+                        center = ""; 
+                    if (!tsteps)
+                        tsteps = ""; 
+                    if (!tscale)
+                        tscale = ""; 
+                    if (!tformat)
+                        tformat = ""; 
+                    if (!hyperslab)
+                        hyperslab = ""; 
                     t1 = parseType (type, name);
                     if (!dimensions)
                         dimensions = dimension;
@@ -3418,11 +5975,38 @@ static int parseGroup (mxml_node_t * node)
                         // Successfully define a variable, so now 
                         // an attribute for the mesh if it exists.
                         if (strcmp(mesh,"")){
-                            mpath = malloc(strlen("/adios_schema")+strlen(name)+1);
-                            strcpy(mpath,name);
-                            strcat(mpath,"/adios_schema");
-                            adios_common_define_attribute (ptr_new_group,mpath,path,adios_string,mesh,"");
+                            mpath1 = malloc(strlen("/adios_schema")+strlen(name)+1);
+                            strcpy(mpath1,name);
+                            strcat(mpath1,"/adios_schema");
+                            adios_common_define_attribute (ptr_new_group,mpath1,path,adios_string,mesh,"");
+                        }
+                        // an attribute for the mesh if it exists.
+                        if (strcmp(center,"")){
+                            mpath2 = malloc(strlen("/adios_schema/centering")+strlen(name)+1);
+                            strcpy(mpath2,name);
+                            strcat(mpath2,"/adios_schema/centering");
+                            adios_common_define_attribute (ptr_new_group,mpath2,path,adios_string,center,"");
                          }
+                        // if a time attribute exists
+                        // parse it and define it
+                        if (strcmp(tsteps,"")){
+                            parseVarTimeSteps(tsteps,new_group,name);
+                        }
+                        // if a time scale attribute exists
+                        // parse it and define it
+                        if (strcmp(tscale,"")){
+                            parseVarTimeScale(tscale,new_group,name);
+                        }
+                        // if a time series format attribute exists
+                        // parse it and define it
+                        if (strcmp(tformat,"")){
+                            parseVarTimeSeriesFormat(tformat,new_group,name);
+                        }
+                        // if a hyperslab attribute exists
+                        // parse it and define it
+                        if (strcmp(hyperslab,"")){
+                            parseVarHyperSlab(hyperslab,new_group,name);
+                        }
                     }
                 } else
                 {
@@ -3518,8 +6102,6 @@ static int parseGroup (mxml_node_t * node)
             {
                 t1 = adios_unknown;
             }
-// fix the bgp bugs
-//            if (!adios_common_define_attribute (*(int64_t *) &new_group, name
             if (!adios_common_define_attribute (ptr_new_group, name
                                                ,path, t1, value, var
                                                )
@@ -3527,11 +6109,15 @@ static int parseGroup (mxml_node_t * node)
             {
                 return 0;
             }
-        } else
-        if (!strcasecmp (n->value.element.name, "mesh"))
+        } else if (!strcasecmp (n->value.element.name, "mesh"))
         {
             const char * type;
             const char * time_varying;
+            const char * time_steps;
+            const char * time_scale;
+            const char * time_format;
+            const char * mesh_file;
+            const char * mesh_group;
             int t_varying;
             const char * name;
 
@@ -3541,7 +6127,12 @@ static int parseGroup (mxml_node_t * node)
             type = mxmlElementGetAttr (n, "type");
             // Get the time varying parameter
             time_varying = mxmlElementGetAttr(n, "time-varying");
-
+            // Get the time step parameter (integer, number of times mesh is written)
+            time_steps = mxmlElementGetAttr(n, "time-steps");
+            // Get the time scale parameter (real time, not integer)
+            time_scale = mxmlElementGetAttr(n, "time-scale");
+            // Get the time format parameter (time series formatting)
+            time_format = mxmlElementGetAttr(n, "time-series-format");
             if (!type)
                 type = "";
 
@@ -3565,87 +6156,118 @@ static int parseGroup (mxml_node_t * node)
 
             char * meshtype = 0;
             char * meshtime = 0;
-
-            conca_att_nam(&meshtype, name, "type");
-            conca_att_nam(&meshtime, name, "time");
-
+            char * meshfile = 0;
+            char * meshgroup = 0;
+            char * meshtimeformat = 0;
+            conca_mesh_att_nam(&meshtype, name, "type");
+            conca_mesh_att_nam(&meshtime, name, "time-varying");
+            conca_mesh_att_nam(&meshfile, name, "mesh-file");
+            conca_mesh_att_nam(&meshgroup, name, "mesh-group");
+            conca_mesh_att_nam(&meshtimeformat, name, "time-series-format");
+
+            // Define attribute for the type and time varying characteristics
+            adios_common_define_attribute (ptr_new_group,meshtype,"/",adios_string,type,"");
+            adios_common_define_attribute (ptr_new_group,meshtime,"/",adios_string,time_varying,"");
+            parseMeshTimeSteps(time_steps, new_group, name);
+            parseMeshTimeScale(time_scale, new_group, name);
+            parseMeshTimeSeriesFormat(time_format, new_group, name);
+            // Only parse mesh if the variables are in this file
+            // otherwise simply point the mesh file
+            mesh_file = mxmlElementGetAttr(n, "file");
+            mesh_group = mxmlElementGetAttr(n, "group");
             if (!strcasecmp (type, "uniform"))
             {
-                struct adios_mesh_struct * mes;
-                mes = adios_common_define_mesh(ptr_new_group, name,
-                                               t_varying, ADIOS_MESH_UNIFORM);
-
-                if (mes) {
-                    // Define attribute for the type and time varying characteristics
-                    adios_common_define_attribute (ptr_new_group,meshtype,"/",adios_string,type,"");
-                    adios_common_define_attribute (ptr_new_group,meshtime,"/",adios_string,time_varying,"");
-                    free (meshtype);
-                    free (meshtime);
-
-                    // Parse the uniform mesh tags
-                    parseMeshUniform (n, new_group, &mes->uniform, name);
+                if (mesh_file){
+                    adios_common_define_attribute (ptr_new_group,meshfile,"/",adios_string,mesh_file,"");
+                    if (mesh_group)
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                    parseMeshUniform1 (n, ptr_new_group, name);
+                }else{
+                    if (mesh_group){
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                        parseMeshUniform1 (n, ptr_new_group, name);
+                    }else{
+                        struct adios_mesh_struct * mes;
+                        mes = adios_common_define_mesh(ptr_new_group, name,
+                                t_varying, ADIOS_MESH_UNIFORM);
+                        if (mes) {
+                            parseMeshUniform0 (n, new_group, &mes->uniform, name);
+                        }
+                    }
                 }
-            } else
-            if (!strcasecmp (type, "structured"))
+            } else if (!strcasecmp (type, "structured"))
             {
-                struct adios_mesh_struct * mes;
-                mes = adios_common_define_mesh(ptr_new_group, name,
-                                               t_varying, ADIOS_MESH_STRUCTURED);
-
-                if (mes) {
-                    // Define attribute for the type and time varying characteristics
-                    adios_common_define_attribute (ptr_new_group,meshtype,"/",adios_string,type,"");
-                    adios_common_define_attribute (ptr_new_group,meshtime,"/",adios_string,time_varying,"");
-                    free (meshtype);
-                    free (meshtime);
-
-                    // Parse the uniform mesh tags
-                    parseMeshStructured (n, new_group, &mes->structured, name);
+                if (mesh_file){
+                    adios_common_define_attribute (ptr_new_group,meshfile,"/",adios_string,mesh_file,"");
+                    if (mesh_group)
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                    parseMeshStructured1(n, new_group, name);
+                }else{
+                    if (mesh_group){
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                        parseMeshUniform1 (n, ptr_new_group, name);
+                    }else{
+                        struct adios_mesh_struct * mes;
+                        mes = adios_common_define_mesh(ptr_new_group, name,
+                                t_varying, ADIOS_MESH_STRUCTURED);
+                        if (mes) {
+                            parseMeshStructured0 (n, new_group, &mes->structured, name);
+                        }
+                    }
                 }
-            } else
-            if (!strcasecmp (type, "rectilinear"))
+            } else if (!strcasecmp (type, "rectilinear"))
             {
-                struct adios_mesh_struct * mes;
-                mes = adios_common_define_mesh(ptr_new_group, name,
-                                               t_varying, ADIOS_MESH_RECTILINEAR);
-
-                if (mes) {
-                    // Define attribute for the type and time varying characteristics
-                    adios_common_define_attribute (ptr_new_group,meshtype,"/",adios_string,type,"");
-                    adios_common_define_attribute (ptr_new_group,meshtime,"/",adios_string,time_varying,"");
-                    free (meshtype);
-                    free (meshtime);
-
-                    // Parse the uniform mesh tags
-                    parseMeshRectilinear (n, new_group, &mes->rectilinear, name);                
+                if (mesh_file){
+                    adios_common_define_attribute (ptr_new_group,meshfile,"/",adios_string,mesh_file,"");
+                    if (mesh_group)
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                    parseMeshRectilinear1 (n, new_group, name);
+                }else{
+                    if (mesh_group){
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                        parseMeshUniform1 (n, ptr_new_group, name);
+                    }else{
+                        struct adios_mesh_struct * mes;
+                        mes = adios_common_define_mesh(ptr_new_group, name,
+                                t_varying, ADIOS_MESH_RECTILINEAR);
+                        if (mes) {
+                            parseMeshRectilinear0 (n, new_group, &mes->rectilinear, name);
+                        }
+                    }
                 }
-            } else
-            if (!strcasecmp (type, "unstructured"))
+            } else if (!strcasecmp (type, "unstructured"))
             {
-                struct adios_mesh_struct * mes;
-                mes = adios_common_define_mesh(ptr_new_group, name,
-                                               t_varying, ADIOS_MESH_UNSTRUCTURED);
-
-                if (mes) {
-                    // Define attribute for the type and time varying characteristics
-                    adios_common_define_attribute (ptr_new_group,meshtype,"/",adios_string,type,"");
-                    adios_common_define_attribute (ptr_new_group,meshtime,"/",adios_string,time_varying,"");
-                    free (meshtype);
-                    free (meshtime);
-
-                    // Parse the uniform mesh tags
-                    parseMeshUnstructured (n, new_group, &mes->unstructured, name);
+                if (mesh_file){
+                    adios_common_define_attribute (ptr_new_group,meshfile,"/",adios_string,mesh_file,"");
+                    if (mesh_group)
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                    parseMeshUnstructured1 (n, new_group, name);
+                }else{
+                    if (mesh_group){
+                        printf("there is a mesh group\n");
+                        adios_common_define_attribute (ptr_new_group,meshgroup,"/",adios_string,mesh_group,"");
+                        parseMeshUniform1 (n, ptr_new_group, name);
+                    }else{
+                        struct adios_mesh_struct * mes;
+                        mes = adios_common_define_mesh(ptr_new_group, name,
+                                t_varying, ADIOS_MESH_UNSTRUCTURED);
+                        if (mes) {
+                            parseMeshUnstructured0 (n, new_group, &mes->unstructured, name);
+                        }
+                    }
                 }
             } else
             {
                 log_warn ("config.xml: invalid mesh type: '%s'\n"
                         ,type
                         );
-
                 return 0;
             }
-        } else
-        if (!strcasecmp (n->value.element.name, "gwrite"))
+            free (meshtype);
+            free (meshtime);
+            free (meshfile);
+            free (meshgroup);
+        } else if (!strcasecmp (n->value.element.name, "gwrite"))
         {
             const char * src = 0;
 
@@ -3654,16 +6276,16 @@ static int parseGroup (mxml_node_t * node)
                 mxml_attr_t * attr = &n->value.element.attrs [i];
 
                 GET_ATTR("src",attr,src,"var")
-                log_warn ("config.xml: unknown attribute '%s' on %s "
-                                 "(ignored)\n"
-                        ,attr->name
-                        ,"gwrite"
-                        );
+                    log_warn ("config.xml: unknown attribute '%s' on %s "
+                            "(ignored)\n"
+                            ,attr->name
+                            ,"gwrite"
+                            );
             }
             if (!src)
             {
                 log_warn ("config.xml: gwrite element requires "
-                                 "src\n");
+                        "src\n");
 
                 return 0;
             }
@@ -3684,29 +6306,11 @@ static int parseGroup (mxml_node_t * node)
         }
     }
 
-    // now that we have declared the whole group, validate that the
-    // paths specified in attributes refer to real things or give
-    // a warning
-    /* // This is not required in ADIOS so why do this warnings?
-    struct adios_attribute_struct * a = new_group->attributes;
-    while (a)
-    {
-        if (!validatePath (new_group->vars, a->path))
-        {
-             log_warn ("config.xml warning: attribute element '%s' "
-                       "has path '%s' that does not match "
-                       "any var path or name.\n",a->name, a->path);
-        }
-
-        a = a->next;
-    }
-    */
-
     return 1;
 }
 
-// concat numbered attribute name strings
-void conca_numb_att_nam(char ** returnstr, const char * meshname, char * att_nam, char counterstr[5]) {
+// concat numbered mesh attribute name strings
+void conca_mesh_numb_att_nam(char ** returnstr, const char * meshname, char * att_nam, char counterstr[5]) {
     *returnstr = malloc (strlen("adios_schema/") + strlen(meshname) + strlen(att_nam) + strlen(counterstr) + 3);
     strcpy(*returnstr,"adios_schema");
     strcat(*returnstr,"/");
@@ -3716,8 +6320,8 @@ void conca_numb_att_nam(char ** returnstr, const char * meshname, char * att_nam
     strcat(*returnstr,counterstr);
 }
 
-// concat attribute name strings
-void conca_att_nam(char ** returnstr, const char * meshname, char * att_nam) {
+// concat mesh attribute name strings
+void conca_mesh_att_nam(char ** returnstr, const char * meshname, char * att_nam) {
     int slength = 0;
     slength = strlen("adios_schema/");
     slength = slength + strlen(meshname);
@@ -3733,6 +6337,22 @@ void conca_att_nam(char ** returnstr, const char * meshname, char * att_nam) {
     strcat(*returnstr,att_nam);
 }
 
+// concat var attribute name strings
+void conca_var_att_nam(char ** returnstr, const char * varname, char * att_nam) {
+    int slength = 0;
+    slength = strlen("adios_schema/");
+    slength = slength + strlen(varname);
+    slength = slength + 1;
+    slength = slength + 1;
+    slength = slength + strlen(att_nam);
+
+    *returnstr = malloc (slength);
+
+    strcpy(*returnstr,varname);
+    strcat(*returnstr,"/adios_schema/");
+    strcat(*returnstr,att_nam);
+}
+
 // Append a mesh to a group
 enum ADIOS_FLAG adios_append_mesh (struct adios_mesh_struct ** root
                                  ,struct adios_mesh_struct * mesh
@@ -4088,6 +6708,7 @@ int adios_parse_config (const char * config, MPI_Comm comm)
     int saw_datagroup = 0;
     int saw_method = 0;
     int saw_buffer = 0;
+    const char * schema_version = 0;
 
     if (!adios_transports_initialized)
     {
@@ -4100,6 +6721,7 @@ int adios_parse_config (const char * config, MPI_Comm comm)
     int buffer_size = 0;
     int rank;
     MPI_Comm_rank (comm, &rank);
+    init_comm = comm;
     if (rank == 0)
     {
 //#endif
@@ -4232,6 +6854,7 @@ int adios_parse_config (const char * config, MPI_Comm comm)
     else
     {
         const char * host_language = 0;
+        //const char * schema_version = 0;
         int i;
 
         for (i = 0; i < root->value.element.num_attrs; i++)
@@ -4239,6 +6862,7 @@ int adios_parse_config (const char * config, MPI_Comm comm)
             mxml_attr_t * attr = &root->value.element.attrs [i];
 
             GET_ATTR("host-language",attr,host_language,"var")
+            GET_ATTR("schema-version",attr,schema_version,"var")
             log_warn ("config.xml: unknown attribute '%s' on %s "
                              "(ignored)\n"
                     ,attr->name
@@ -4246,6 +6870,49 @@ int adios_parse_config (const char * config, MPI_Comm comm)
                     );
         }
 
+        if (!schema_version)
+            schema_version = "";
+
+        /*if (!strcasecmp (schema_version,"")){
+            char * ver;// copy version
+            char * d;  // dot location
+            char * ptr_end;
+            ver = strdup (schema_version);
+            char * schema_version_major;
+            char * schema_version_minor;
+            char * * schema_version_major_att_nam;
+            char * * schema_version_minor_att_nam;
+            d = strtok (ver, ".");
+            int counter = 0; // counter
+            int slength = 0;
+            while (d)
+            {
+                if (!strtod (d,&ptr_end)){
+                   printf("Schema version invalid.\n");
+                   counter = 0;
+                   break;
+                }else{
+                    slength = strlen("/adios_schema/");
+                    if (counter == 0 ){
+                        slength = slength + strlen("version_major");
+                        * schema_version_major_att_nam = malloc (slength);
+                        strcpy(*schema_version_major_att_nam,"/adios_schema/version_major");
+                        schema_version_major = strdup(d);
+                    }else if (counter == 1){
+                        slength = slength + strlen("version_minor");
+                        * schema_version_major_att_nam = malloc (slength);
+                        strcpy(*schema_version_major_att_nam,"/adios_schema/version_minor");
+                        schema_version_minor = strdup(d);
+                    }
+                }
+                counter++;
+                d = strtok (NULL, ".");
+            }
+            if (counter == 0){
+                printf("Error: Could not detect valid schema version.\n");
+            }
+        }*/
+
         if (!host_language)
         {
             host_language = "Fortran";
@@ -4286,7 +6953,7 @@ int adios_parse_config (const char * config, MPI_Comm comm)
 
         if (!strcasecmp (node->value.element.name, "adios-group"))
         {
-            if (!parseGroup (node))
+            if (!parseGroup (node, schema_version))
                 break;
             saw_datagroup = 1;
         }
@@ -4365,7 +7032,7 @@ int adios_parse_config (const char * config, MPI_Comm comm)
     return 1;
 }
 
-int adios_local_config ()
+int adios_local_config (MPI_Comm comm)
 {
     if (!adios_transports_initialized)
     {
@@ -4373,6 +7040,7 @@ int adios_local_config ()
         adios_init_transports (&adios_transports);
     }
 
+    init_comm = comm;
     return 1;
 }
 
@@ -4479,6 +7147,7 @@ int adios_common_select_method (int priority, const char * method
     new_method->iterations = iters;
     new_method->priority = priority;
     new_method->method_data = 0;
+    new_method->init_comm = init_comm;
     new_method->group = 0;
 
     if (adios_parse_method (method, &new_method->m, &requires_group_comm))
@@ -4525,25 +7194,6 @@ int adios_common_select_method (int priority, const char * method
     }
     else
     {
-        // JL: 1-2010
-        // we no longer require this since we moved the coordiantion
-        // communicator to the open call. Leaving code here, just in case.
-        // once this has been validated thoroughly, remove this block of code.
-        //if (requires_group_comm && !g->group_comm)
-        //{
-        //    fprintf (stderr, "config.xml: method %s for group %s.  Group does "
-        //                     "not have the required coordination-communicator"
-        //                     ".\n"
-        //            ,method, group
-        //            );
-
-        //    free (new_method->base_path);
-        //    free (new_method->method);
-        //    free (new_method->parameters);
-        //    free (new_method);
-
-        //    return 0;
-        //}
         adios_add_method_to_group (&g->methods, new_method);
         new_method->group = g;
     }
diff --git a/src/core/adios_internals_mxml.h b/src/core/adios_internals_mxml.h
index 2420e16..30f99ff 100644
--- a/src/core/adios_internals_mxml.h
+++ b/src/core/adios_internals_mxml.h
@@ -8,16 +8,10 @@
 #ifndef ADIOS_INTERNALS_MXML_H
 #define ADIOS_INTERNALS_MXML_H
 
-#ifdef _NOMPI
-    /* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "public/mpidummy.h"
-#else
-    /* Parallel applications should use MPI to communicate  */
-#   include "mpi.h"
-#endif
+#include "public/adios_mpi.h"
 
 int adios_parse_config (const char * config, MPI_Comm comm);
-int adios_local_config ();
+int adios_local_config (MPI_Comm comm);
 int adios_common_select_method (int priority, const char * method
                                ,const char * parameters, const char * group 
                                ,const char * base_path, int iters
diff --git a/src/core/adios_read.c b/src/core/adios_read.c
index bfc4dfc..dee441d 100644
--- a/src/core/adios_read.c
+++ b/src/core/adios_read.c
@@ -31,13 +31,13 @@ int adios_read_finalize_method(enum ADIOS_READ_METHOD method)
     return retval;
 }
 
-ADIOS_FILE * adios_read_open_stream (const char * fname,
-                                     enum ADIOS_READ_METHOD method,
-                                     MPI_Comm comm,
-                                     enum ADIOS_LOCKMODE lock_mode,
-                                     float timeout_sec)
+ADIOS_FILE * adios_read_open (const char * fname,
+                              enum ADIOS_READ_METHOD method,
+                              MPI_Comm comm,
+                              enum ADIOS_LOCKMODE lock_mode,
+                              float timeout_sec)
 {
-    return common_read_open_stream (fname, method, comm, lock_mode, timeout_sec);
+    return common_read_open (fname, method, comm, lock_mode, timeout_sec);
 }
 
 ADIOS_FILE * adios_read_open_file (const char * fname,
@@ -161,12 +161,12 @@ void adios_print_fileinfo (ADIOS_FILE *fp)
 }
 
 
-ADIOS_SELECTION * adios_selection_boundingbox (uint64_t ndim, const uint64_t *start, const uint64_t *count)
+ADIOS_SELECTION * adios_selection_boundingbox (int ndim, const uint64_t *start, const uint64_t *count)
 {
     return common_read_selection_boundingbox (ndim, start, count);
 }
 
-ADIOS_SELECTION * adios_selection_points (uint64_t ndim, uint64_t npoints, const uint64_t *points)
+ADIOS_SELECTION * adios_selection_points (int ndim, uint64_t npoints, const uint64_t *points)
 {
     return common_read_selection_points (ndim, npoints, points);
 }
diff --git a/src/core/adios_read_hooks.c b/src/core/adios_read_hooks.c
index 8fd6946..1089177 100644
--- a/src/core/adios_read_hooks.c
+++ b/src/core/adios_read_hooks.c
@@ -17,7 +17,7 @@ if (!strcasecmp (buf,b)) \
 #define ASSIGN_FNS(a,b) \
 (*t) [b].adios_init_method_fn = adios_read_##a##_init_method; \
 (*t) [b].adios_finalize_method_fn = adios_read_##a##_finalize_method; \
-(*t) [b].adios_open_stream_fn = adios_read_##a##_open_stream; \
+(*t) [b].adios_open_fn = adios_read_##a##_open; \
 (*t) [b].adios_open_file_fn = adios_read_##a##_open_file; \
 (*t) [b].adios_close_fn = adios_read_##a##_close; \
 (*t) [b].adios_advance_step_fn = adios_read_##a##_advance_step; \
@@ -40,6 +40,7 @@ void adios_read_hooks_init (struct adios_read_hooks_struct ** t)
     // called from common_read.c/common_read_init_method() and 
     // from common_read.c/common_read_open_*() 
     if (!did_init) {
+        fflush(stdout);
         *t = (struct adios_read_hooks_struct *)
                calloc (ADIOS_READ_METHOD_COUNT, sizeof (struct adios_read_hooks_struct));
 
@@ -55,6 +56,12 @@ void adios_read_hooks_init (struct adios_read_hooks_struct ** t)
         ASSIGN_FNS(dimes,ADIOS_READ_METHOD_DIMES)
 #endif
 
+#  ifndef _NOMPI
+#if HAVE_FLEXPATH
+       ASSIGN_FNS(flexpath, ADIOS_READ_METHOD_FLEXPATH);
+#endif
+#endif
+
 #if HAVE_PHDF5
         //ASSIGN_FNS(hdf5,ADIOS_READ_METHOD_HDF5)
 #endif
diff --git a/src/core/adios_read_hooks.h b/src/core/adios_read_hooks.h
index fc8f14a..db2908c 100644
--- a/src/core/adios_read_hooks.h
+++ b/src/core/adios_read_hooks.h
@@ -17,7 +17,7 @@
 #define FORWARD_DECLARE(a) \
 int adios_read_##a##_init_method (MPI_Comm comm, PairStruct *params); \
 int adios_read_##a##_finalize_method (); \
-ADIOS_FILE * adios_read_##a##_open_stream (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec); \
+ADIOS_FILE * adios_read_##a##_open (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec); \
 ADIOS_FILE * adios_read_##a##_open_file (const char * fname, MPI_Comm comm); \
 int adios_read_##a##_close (ADIOS_FILE *fp); \
 int adios_read_##a##_advance_step (ADIOS_FILE *fp, int last, float timeout_sec); \
@@ -42,7 +42,7 @@ int adios_read_##a##_is_var_timed (const ADIOS_FILE *fp, int varid); \
 //////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////
 
-#define ADIOS_READ_METHOD_COUNT 8
+#define ADIOS_READ_METHOD_COUNT 9
 
 // forward declare the functions (or dummies for internals use)
 FORWARD_DECLARE(bp)
@@ -51,6 +51,9 @@ FORWARD_DECLARE(bp_staged1)
 #if HAVE_DATASPACES
 FORWARD_DECLARE(dataspaces)
 #endif
+#if HAVE_FLEXPATH
+FORWARD_DECLARE(flexpath)
+#endif
 #if HAVE_DIMES
 FORWARD_DECLARE(dimes)
 #endif
@@ -65,7 +68,7 @@ FORWARD_DECLARE(datatap)
 
 typedef int  (* ADIOS_INIT_METHOD_FN) (MPI_Comm comm, PairStruct * params);
 typedef int  (* ADIOS_FINALIZE_METHOD_FN) ();
-typedef ADIOS_FILE * (* ADIOS_OPEN_STREAM_FN) (const char * fname, MPI_Comm comm, 
+typedef ADIOS_FILE * (* ADIOS_OPEN_FN) (const char * fname, MPI_Comm comm, 
                                  enum ADIOS_LOCKMODE lock_mode, float timeout_sec);
 typedef ADIOS_FILE * (* ADIOS_OPEN_FILE_FN) (const char * fname, MPI_Comm comm);
 typedef int  (* ADIOS_CLOSE_FN) (ADIOS_FILE *fp);
@@ -89,7 +92,7 @@ struct adios_read_hooks_struct
 {
     ADIOS_INIT_METHOD_FN            adios_init_method_fn;
     ADIOS_FINALIZE_METHOD_FN        adios_finalize_method_fn;
-    ADIOS_OPEN_STREAM_FN            adios_open_stream_fn;
+    ADIOS_OPEN_FN                   adios_open_fn;
     ADIOS_OPEN_FILE_FN              adios_open_file_fn;
     ADIOS_CLOSE_FN                  adios_close_fn;
     ADIOS_ADVANCE_STEP_FN           adios_advance_step_fn;
diff --git a/src/core/adios_read_v1.c b/src/core/adios_read_v1.c
index 7e3500e..14eee64 100644
--- a/src/core/adios_read_v1.c
+++ b/src/core/adios_read_v1.c
@@ -243,9 +243,11 @@ static ADIOS_VARINFO_V1 * adios_varinfo_to_v1 (ADIOS_GROUP_V1 *gp, ADIOS_VARINFO
 
 
         ADIOS_VARSTAT * stat = NULL;
-        if (getstat)
+        if (getstat) {
             common_read_inq_var_stat ((ADIOS_FILE *)gp->fp->internal_data, 
                                        vi, 1, 0);
+            stat = vi->statistics;
+        }
 
         if (stat) {
             v->characteristics_count;// = stat->characteristics_count; FIXME
@@ -253,19 +255,32 @@ static ADIOS_VARINFO_V1 * adios_varinfo_to_v1 (ADIOS_GROUP_V1 *gp, ADIOS_VARINFO
             v->gmax = stat->max; 
             v->gavg = stat->avg; 
             v->gstd_dev = stat->std_dev;
-            v->mins = stat->steps->mins;
-            v->maxs = stat->steps->maxs;
-            v->avgs = stat->steps->avgs;
-            v->std_devs = stat->steps->std_devs;
-
-            v->hist->num_breaks = stat->histogram->num_breaks;
-            v->hist->max = stat->histogram->max;
-            v->hist->min = stat->histogram->min;
-            v->hist->breaks = stat->histogram->breaks;
-            v->hist->frequenciess = stat->histogram->frequencies;
-            v->hist->gfrequencies = stat->histogram->gfrequencies;
+            if (stat->histogram) {
+                v->mins = stat->steps->mins;
+                v->maxs = stat->steps->maxs;
+                v->avgs = stat->steps->avgs;
+                v->std_devs = stat->steps->std_devs;
+            } else {
+                v->mins = 0;
+                v->maxs = 0;
+                v->avgs = 0;
+                v->std_devs = 0;
+            }
+            if (stat->histogram) {
+                v->hist = (struct ADIOS_HIST_V1*) malloc (sizeof(struct ADIOS_HIST));
+                if (v->hist) {
+                    v->hist->num_breaks = stat->histogram->num_breaks;
+                    v->hist->max = stat->histogram->max;
+                    v->hist->min = stat->histogram->min;
+                    v->hist->breaks = stat->histogram->breaks;
+                    v->hist->frequenciess = stat->histogram->frequencies;
+                    v->hist->gfrequencies = stat->histogram->gfrequencies;
+                }
+            } else {
+                v->hist=0;
+            }
         }
-        
+
         v->internal_data = (void *)vi;
     }
     return v;
diff --git a/src/core/adios_timing.c b/src/core/adios_timing.c
index d6c1c51..a25f4ba 100644
--- a/src/core/adios_timing.c
+++ b/src/core/adios_timing.c
@@ -13,8 +13,10 @@
 #include "core/adios_logger.h"
 #include <string.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/time.h>
 
+#include "public/adios_mpi.h"
 //#include "mpi.h"
 
 
@@ -41,13 +43,53 @@ void adios_timing_write_xml_common (int64_t fd_p, const char* filename)
         return;
     }
 
-    int size, rank, i;
+    int size, rank, i, p;
     MPI_Comm_size (MPI_COMM_WORLD, &size);
     MPI_Comm_rank (MPI_COMM_WORLD, &rank);
 
+    double * internal_times = NULL;
+    double * user_times = NULL;
+
+    // Allocate space for aggregation
+    if (rank == 0)
+    {
+        internal_times = (double*) malloc (sizeof (double) *
+                             fd->timing_obj->internal_count * size);
+        user_times = (double*) malloc (sizeof (double) *
+                             fd->timing_obj->user_count * size);
+    }
+
+    // Aggregate timing info on rank 0
+    // Handle internal counts and user counts separately
+   
+    MPI_Gather (
+        fd->timing_obj->times + ADIOS_TIMING_MAX_USER_TIMERS,
+        fd->timing_obj->internal_count,  // sendcount
+        MPI_DOUBLE, // sendtype
+        internal_times,
+        fd->timing_obj->internal_count, // recvcount
+        MPI_DOUBLE, // recvtype
+        0, // root
+        MPI_COMM_WORLD
+    );
+
+    MPI_Gather (
+        fd->timing_obj->times,  // sendbuf
+        fd->timing_obj->user_count,  // sendcount
+        MPI_DOUBLE, // sendtype
+        user_times,
+        fd->timing_obj->user_count, // recvcount
+        MPI_DOUBLE, // recvtype
+        0, // root
+        MPI_COMM_WORLD
+    );
+
+
+    // Now write all timing info from rank 0
+
     if (rank == 0)
     {
-        FILE* f = fopen (filename, "a"); 
+        FILE* f = fopen (filename, "w"); 
 
         // Rank 0 starts the xml and includes the text labels
         fprintf (f, "<skel_result><adios_timing cores='%i' keys='", size);
@@ -89,77 +131,35 @@ void adios_timing_write_xml_common (int64_t fd_p, const char* filename)
 
         fprintf (f, ">\n"); // Close the adios_timing element
 
-        // This part should be the same for all procs
-        fprintf (f, "<proc id='%i' vals='", rank);
-        for (i = 0; i < fd->timing_obj->user_count; i++)
-        {
-            fprintf (f, "%f, ", fd->timing_obj->times[i]);
-        }
-        for (i = 0; i < fd->timing_obj->internal_count; i++)
-        {
-            fprintf (f, "%f", fd->timing_obj->times[ADIOS_TIMING_MAX_USER_TIMERS + i]);
-            if (i != fd->timing_obj->internal_count - 1)
-            {
-                fprintf (f, ", ");
-            }
-        }
-        fprintf (f, "' />\n");
 
-        fclose (f);
-        MPI_Barrier (MPI_COMM_WORLD);
-        MPI_Barrier (MPI_COMM_WORLD);
-    }
-    else if (rank == size - 1)
-    {
-        MPI_Barrier (MPI_COMM_WORLD);
-        MPI_Barrier (MPI_COMM_WORLD);
-        FILE* f = fopen (filename, "a");
+// Use the aggregated values here
 
-        // This part should be the same for all procs 
-        fprintf (f, "<proc id='%i' vals='", rank);
-        for (i = 0; i < fd->timing_obj->user_count; i++)
+        for (p = 0; p < size; p++)
         {
-            fprintf (f, "%f, ", fd->timing_obj->times[i]);
-        }
-        for (i = 0; i < fd->timing_obj->internal_count; i++)
-        {
-            fprintf (f, "%f", fd->timing_obj->times[ADIOS_TIMING_MAX_USER_TIMERS + i]);
-            if (i != fd->timing_obj->internal_count - 1)
+            // This part should be the same for all procs
+            fprintf (f, "<proc id='%i' vals='", p);
+            for (i = 0; i < fd->timing_obj->user_count; i++)
             {
-                fprintf (f, ", ");
+                fprintf (f, "%f, ", user_times[p*fd->timing_obj->user_count+i]);
+                //fprintf (f, "%f, ", fd->timing_obj->times[i]);
+            }
+            for (i = 0; i < fd->timing_obj->internal_count; i++)
+            {
+                fprintf (f, "%f", internal_times[p*fd->timing_obj->internal_count+i]);
+                //fprintf (f, "%f", fd->timing_obj->times[ADIOS_TIMING_MAX_USER_TIMERS + i]);
+                if (i != fd->timing_obj->internal_count - 1)
+                {
+                    fprintf (f, ", ");
+                }
             }
+            fprintf (f, "' />\n");
         }
-        fprintf (f, "' />\n");
 
 
-        // The highest numbered rank ends the xml document
         fprintf (f, "</adios_timing></skel_result>\n");
         fclose (f);
-    }
-    else
-    {
-        MPI_Barrier (MPI_COMM_WORLD);
-        FILE* f = fopen (filename, "a"); 
-        
-        // This part should be the same for all procs
-        fprintf (f, "<proc id='%i' vals='", rank);
-        for (i = 0; i < fd->timing_obj->user_count; i++)
-        {
-            fprintf (f, "%f, ", fd->timing_obj->times[i]);
-        }
-        for (i = 0; i < fd->timing_obj->internal_count; i++)
-        {
-            fprintf (f, "%f", fd->timing_obj->times[ADIOS_TIMING_MAX_USER_TIMERS + i]);
-            if (i != fd->timing_obj->internal_count - 1)
-            {
-                fprintf (f, ", ");
-            }
-        }
-        fprintf (f, "' />\n");
 
-        fclose (f);
-        MPI_Barrier (MPI_COMM_WORLD);
-    }
+    }        
 #else
     log_warn ("Timing information is not currently available.\n"
               "To use the Skel timing functions, you must enable them when building ADIOS.\n"
diff --git a/src/core/adios_transport_hooks.c b/src/core/adios_transport_hooks.c
index 0bae607..258498b 100644
--- a/src/core/adios_transport_hooks.c
+++ b/src/core/adios_transport_hooks.c
@@ -49,6 +49,8 @@ void adios_init_transports (struct adios_transport_struct ** t)
     ASSIGN_FNS(mpi,ADIOS_METHOD_MPI)
     ASSIGN_FNS(mpi_lustre,ADIOS_METHOD_MPI_LUSTRE)
     ASSIGN_FNS(mpi_amr,ADIOS_METHOD_MPI_AMR)
+    //Tian's method
+    ASSIGN_FNS(var_merge,ADIOS_METHOD_VAR_MERGE)
 #      ifndef NO_RESEARCH_TRANSPORTS
     ASSIGN_FNS(mpi_stripe,ADIOS_METHOD_MPI_STRIPE)
     ASSIGN_FNS(mpi_cio,ADIOS_METHOD_MPI_CIO)
@@ -74,10 +76,14 @@ void adios_init_transports (struct adios_transport_struct ** t)
 
 #  endif /* _NOMPI */
 
-#  if NO_DATATAP == 0
+#  if HAVE_DATATAP
     ASSIGN_FNS(datatap,ADIOS_METHOD_DATATAP)
 #  endif
 
+# if HAVE_FLEXPATH
+	ASSIGN_FNS(flexpath,ADIOS_METHOD_FLEXPATH)
+# endif
+
     ASSIGN_FNS(posix,ADIOS_METHOD_POSIX)
     ASSIGN_FNS(posix1,ADIOS_METHOD_POSIX1)
 
@@ -86,7 +92,7 @@ void adios_init_transports (struct adios_transport_struct ** t)
 #  endif
 
 #  if HAVE_DIMES
-ASSIGN_FNS(dimes,ADIOS_METHOD_DIMES)
+	ASSIGN_FNS(dimes,ADIOS_METHOD_DIMES)
 #  endif
 
 #  ifndef NO_RESEARCH_TRANSPORTS
@@ -94,7 +100,7 @@ ASSIGN_FNS(dimes,ADIOS_METHOD_DIMES)
 #  endif
 
 #endif /* ADIOS_EMPTY_TRANSPORTS */
-}
+	}
 
 int adios_parse_method (const char * buf, enum ADIOS_IO_METHOD * method
                        ,int * requires_group_comm
@@ -106,6 +112,9 @@ int adios_parse_method (const char * buf, enum ADIOS_IO_METHOD * method
     MATCH_STRING_TO_METHOD("MPI",ADIOS_METHOD_MPI,1)
     MATCH_STRING_TO_METHOD("MPI_LUSTRE",ADIOS_METHOD_MPI_LUSTRE,1)
     MATCH_STRING_TO_METHOD("MPI_AMR",ADIOS_METHOD_MPI_AMR,1)
+    // Tian's method
+    MATCH_STRING_TO_METHOD("VAR_MERGE",ADIOS_METHOD_VAR_MERGE,1)
+
     MATCH_STRING_TO_METHOD("MPI_AGGREGATE",ADIOS_METHOD_MPI_AMR,1)
 #ifndef NO_RESEARCH_TRANSPORTS
     MATCH_STRING_TO_METHOD("MPI_STRIPE",ADIOS_METHOD_MPI_STRIPE,1)
@@ -143,6 +152,10 @@ int adios_parse_method (const char * buf, enum ADIOS_IO_METHOD * method
     MATCH_STRING_TO_METHOD("NC4",ADIOS_METHOD_NC4,1)
 #endif
 
+#if HAVE_FLEXPATH
+    MATCH_STRING_TO_METHOD("FLEXPATH",ADIOS_METHOD_FLEXPATH,0)
+#endif
+
 #if HAVE_NSSI
     MATCH_STRING_TO_METHOD("NSSI",ADIOS_METHOD_NSSI_STAGING,1)
     MATCH_STRING_TO_METHOD("NSSI_FILTER",ADIOS_METHOD_NSSI_FILTER,1)
diff --git a/src/core/adios_transport_hooks.h b/src/core/adios_transport_hooks.h
index 539ffe4..f5c03ec 100644
--- a/src/core/adios_transport_hooks.h
+++ b/src/core/adios_transport_hooks.h
@@ -12,13 +12,14 @@
 #include <stdint.h>
 #include <string.h>
 #include "core/util.h" /* PairStruct* */
+#include "public/adios_mpi.h"
 
 #define FORWARD_DECLARE_EMPTY(a) \
 void adios_##a##_init (const PairStruct * parameters \
                       ,struct adios_method_struct * method \
                       ) {} \
 int adios_##a##_open (struct adios_file_struct * fd \
-                     ,struct adios_method_struct * method, void * comm \
+                     ,struct adios_method_struct * method, MPI_Comm comm \
                      ) {return 0;} \
 enum ADIOS_FLAG adios_##a##_should_buffer (struct adios_file_struct * fd \
                                           ,struct adios_method_struct * method \
@@ -57,7 +58,7 @@ void adios_##a##_init (const PairStruct * parameters \
                       ,struct adios_method_struct * method \
                       ); \
 int adios_##a##_open (struct adios_file_struct * fd \
-                     ,struct adios_method_struct * method, void * comm \
+                     ,struct adios_method_struct * method, MPI_Comm comm \
                      ); \
 enum ADIOS_FLAG adios_##a##_should_buffer (struct adios_file_struct * fd \
                                           ,struct adios_method_struct * method \
@@ -123,10 +124,12 @@ enum ADIOS_IO_METHOD {ADIOS_METHOD_UNKNOWN     = -2
               ,ADIOS_METHOD_NC4         = 15
               ,ADIOS_METHOD_MPI_AMR     = 16
               ,ADIOS_METHOD_MPI_AMR1    = 17
-              ,ADIOS_METHOD_NSSI_STAGING = 18
-              ,ADIOS_METHOD_NSSI_FILTER  = 19
-              ,ADIOS_METHOD_DIMES        = 20
-              ,ADIOS_METHOD_COUNT        = 21
+              ,ADIOS_METHOD_FLEXPATH    = 18
+              ,ADIOS_METHOD_NSSI_STAGING = 19
+              ,ADIOS_METHOD_NSSI_FILTER  = 20
+              ,ADIOS_METHOD_DIMES        = 21
+              ,ADIOS_METHOD_VAR_MERGE   = 22
+              ,ADIOS_METHOD_COUNT        = 23
 };
 
 // forward declare the functions (or dummies for internals use)
@@ -143,6 +146,8 @@ enum ADIOS_IO_METHOD {ADIOS_METHOD_UNKNOWN     = -2
      FORWARD_DECLARE(nc4)
      FORWARD_DECLARE(nssi)
      FORWARD_DECLARE(nssi_filter)
+     FORWARD_DECLARE(flexpath)
+     FORWARD_DECLARE(var_merge)
 #endif
 
 #ifdef ADIOS_EMPTY_TRANSPORTS
diff --git a/src/core/adiosf.c b/src/core/adiosf.c
index db2365c..92f9210 100644
--- a/src/core/adiosf.c
+++ b/src/core/adiosf.c
@@ -5,14 +5,14 @@
  * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
  */
 
-#include "../config.h"
+#include "config.h"
 #include <string.h>
 #include <unistd.h>
 #include <stdint.h>
 
-#include "core/common_adios.h"
 #include "core/adios_internals.h"
 #include "core/adios_internals_mxml.h"
+#include "core/common_adios.h"
 #include "core/adios_transport_hooks.h"
 #include "core/futils.h"
 #include "core/globals.h"
@@ -23,6 +23,11 @@
 extern "C"  /* prevent C++ name mangling */
 #endif
 
+
+#ifdef BUILD_WITH_CMAKE
+  #include "FC.h"
+#endif
+
 extern int adios_errno;
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -33,13 +38,14 @@ void FC_FUNC_(adios_set_application_id, ADIOS_SET_APPLICATION_ID) (int *id, int
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-void FC_FUNC_(adios_init, ADIOS_INIT) (const char * config, int * err, int config_size)
+void FC_FUNC_(adios_init, ADIOS_INIT) (const char * config, MPI_Fint * comm, int * err, int config_size)
 {
     char * buf1 = 0;
 
+    MPI_Comm c_comm = MPI_Comm_f2c (*comm);
     buf1 = futils_fstr_to_cstr (config, config_size);
     if (buf1 != 0) {
-        *err = common_adios_init (buf1);
+        *err = common_adios_init (buf1, c_comm);
         free (buf1);
     } else {
         *err = -adios_errno;
@@ -47,9 +53,10 @@ void FC_FUNC_(adios_init, ADIOS_INIT) (const char * config, int * err, int confi
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-void FC_FUNC_(adios_init_noxml, ADIOS_INIT_LOCAL) (int * err)
+void FC_FUNC_(adios_init_noxml, ADIOS_INIT_LOCAL) (MPI_Fint * comm, int * err)
 {
-    *err = common_adios_init_noxml ();
+    MPI_Comm c_comm = MPI_Comm_f2c (*comm);
+    *err = common_adios_init_noxml (c_comm);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -68,20 +75,21 @@ void FC_FUNC_(adios_allocate_buffer, ADIOS_ALLOCATE_BUFFER) (int *sizeMB, int *
 ///////////////////////////////////////////////////////////////////////////////
 void FC_FUNC_(adios_open, ADIOS_OPEN) 
     (int64_t * fd, const char * group_name, const char * name
-    ,const char * mode, void * comm, int * err
+    ,const char * mode, MPI_Fint *comm, int * err
     ,int group_name_size, int name_size, int mode_size
     )
 {
     char * buf1 = 0;
     char * buf2 = 0;
     char * buf3 = 0;
+    MPI_Comm c_comm = MPI_Comm_f2c (*comm);
 
     buf1 = futils_fstr_to_cstr (group_name, group_name_size);
     buf2 = futils_fstr_to_cstr (name, name_size);
     buf3 = futils_fstr_to_cstr (mode, mode_size);
 
     if (buf1 != 0 && buf2 != 0 && buf3 != 0) {
-        *err = common_adios_open (fd, buf1, buf2, buf3, comm);
+        *err = common_adios_open (fd, buf1, buf2, buf3, c_comm);
         free (buf1);
         free (buf2);
         free (buf3);
diff --git a/src/core/adiosf_defs_mod.f90 b/src/core/adiosf_defs_mod.f90
index 4b5a9dd..a29df03 100644
--- a/src/core/adiosf_defs_mod.f90
+++ b/src/core/adiosf_defs_mod.f90
@@ -36,12 +36,13 @@ module adios_defs_mod
     !
     ! Read methods (used in init/finalize/open calls)
     !
-    integer, parameter :: ADIOS_READ_METHOD_BP         = 0
-    integer, parameter :: ADIOS_READ_METHOD_BP_STAGED  = 1
-    integer, parameter :: ADIOS_READ_METHOD_BP_STAGED1 = 2
-    integer, parameter :: ADIOS_READ_METHOD_DATASPACES = 3
-    integer, parameter :: ADIOS_READ_METHOD_DIMES      = 4
-    integer, parameter :: ADIOS_READ_METHOD_FLEXIO     = 5
+    integer, parameter :: ADIOS_READ_METHOD_BP           = 0
+    integer, parameter :: ADIOS_READ_METHOD_BP_AGGREGATE = 1
+    !integer, parameter :: ADIOS_READ_METHOD_BP_STAGED1   = 2
+    integer, parameter :: ADIOS_READ_METHOD_DATASPACES   = 3
+    integer, parameter :: ADIOS_READ_METHOD_DIMES        = 4
+    integer, parameter :: ADIOS_READ_METHOD_FLEXPATH     = 5
+    integer, parameter :: ADIOS_READ_METHOD_BP_STAGED  = ADIOS_READ_METHOD_BP_AGGREGATE
 
     ! 
     ! Stream Locking modes
diff --git a/src/core/adiosf_read.c b/src/core/adiosf_read.c
index b971d72..0d414ac 100644
--- a/src/core/adiosf_read.c
+++ b/src/core/adiosf_read.c
@@ -30,6 +30,10 @@ extern int adios_errno;
 
 #define PRINT_ERRMSG() fprintf(stderr, "ADIOS READ ERROR: %s\n", adios_get_last_errmsg())
 
+#ifdef BUILD_WITH_CMAKE
+  #include "FC.h"
+#endif
+
 /*********************/
 /* FORTRAN INTERFACE */
 /*********************/
@@ -63,7 +67,7 @@ void FC_FUNC_(adios_read_finalize_method, ADIOS_READ_FINALIZE_METHOD) (int *fmet
 }
 
 
-void FC_FUNC_(adios_read_open_stream, ADIOS_READ_OPEN_STREAM)
+void FC_FUNC_(adios_read_open, ADIOS_READ_OPEN)
         (int64_t * fp,
          char    * fname,
          int     * fmethod,
@@ -82,7 +86,7 @@ void FC_FUNC_(adios_read_open_stream, ADIOS_READ_OPEN_STREAM)
 
     namestr = futils_fstr_to_cstr(fname, fname_len);
     if (namestr != NULL) {
-        afp = common_read_open_stream (namestr, method, comm, lockm, *timeout_sec);
+        afp = common_read_open (namestr, method, comm, lockm, *timeout_sec);
         *fp = (int64_t) afp;
         free(namestr);
     } else {
@@ -525,14 +529,14 @@ void FC_FUNC_(adios_inq_attr, ADIOS_INQ_ATTR)
 }
 
 void FC_FUNC_(adios_selection_boundingbox, ADIOS_SELECTION_BOUNDINGBOX) 
-           (int64_t * fsel, uint64_t *ndim, uint64_t *start, uint64_t *count)
+           (int64_t * fsel, int *ndim, uint64_t *start, uint64_t *count)
 {   
     ADIOS_SELECTION * sel = common_read_selection_boundingbox (*ndim, start, count);
     *fsel = (int64_t) sel;
 }
 
 void FC_FUNC_(adios_selection_points, ADIOS_SELECTION_POINTS) 
-            (int64_t *fsel, uint64_t *ndim, uint64_t *npoints, uint64_t *points)
+            (int64_t *fsel, int *ndim, uint64_t *npoints, uint64_t *points)
 {
     ADIOS_SELECTION * sel = common_read_selection_points (*ndim, *npoints, points);
     *fsel = (int64_t) sel;
diff --git a/src/core/adiosf_read_mod.f90 b/src/core/adiosf_read_mod.f90
index 6cb2efb..763f0cb 100644
--- a/src/core/adiosf_read_mod.f90
+++ b/src/core/adiosf_read_mod.f90
@@ -37,7 +37,7 @@ module adios_read_mod
             integer,        intent(out) :: err
         end subroutine
 
-        subroutine adios_read_open_stream (fp, fname, method, comm, lockmode, timeout_sec, err)
+        subroutine adios_read_open (fp, fname, method, comm, lockmode, timeout_sec, err)
             implicit none
             integer*8,      intent(out) :: fp
             character(*),   intent(in)  :: fname
@@ -774,7 +774,6 @@ module adios_read_mod
 
     contains 
 
-
     !
     ! ADIOS_SCHEDULE_READ procedures
     !
@@ -2082,5 +2081,20 @@ module adios_read_mod
             call adios_schedule_read_f2c(fp, sel, varname, from_step, nsteps, data, err)
         end subroutine
 
+    !
+    ! Backward compatibility for 1.4
+    !
+        subroutine adios_read_open_stream (fp, fname, method, comm, lockmode, timeout_sec, err)
+            implicit none
+            integer*8,      intent(out) :: fp
+            character(*),   intent(in)  :: fname
+            integer,        intent(in)  :: method
+            integer,        intent(in)  :: comm
+            integer,        intent(in)  :: lockmode
+            real,           intent(in)  :: timeout_sec
+            integer,        intent(out) :: err
+            call adios_read_open (fp, fname, method, comm, lockmode, timeout_sec, err)
+        end subroutine
+
 end module
 
diff --git a/src/core/adiosf_read_v1.c b/src/core/adiosf_read_v1.c
index b9014e0..77b767d 100644
--- a/src/core/adiosf_read_v1.c
+++ b/src/core/adiosf_read_v1.c
@@ -26,6 +26,10 @@
 extern "C"  /* prevent C++ name mangling */
 #endif
 
+#ifdef BUILD_WITH_CMAKE
+  #include "FC.h"
+#endif
+
 static enum ADIOS_READ_METHOD lastmethod = ADIOS_READ_METHOD_BP;
 
 extern int adios_errno;
diff --git a/src/core/adiosf_write_mod.f90 b/src/core/adiosf_write_mod.f90
index 0973879..911f017 100644
--- a/src/core/adiosf_write_mod.f90
+++ b/src/core/adiosf_write_mod.f90
@@ -18,14 +18,16 @@ module adios_write_mod
 
     interface
 
-        subroutine adios_init (config, err)
+        subroutine adios_init (config, comm, err)
             implicit none
             character(*),   intent(in)  :: config
+            integer,        intent(in)  :: comm
             integer,        intent(out) :: err
         end subroutine
 
-        subroutine adios_init_noxml (err)
+        subroutine adios_init_noxml_withcomm (comm, err)
             implicit none
+            integer,        intent(in)  :: comm
             integer,        intent(out) :: err
         end subroutine
 
@@ -68,21 +70,18 @@ module adios_write_mod
             integer,        intent(out) :: err
         end subroutine
 
-        subroutine adios_end_iteration (fd, err)
+        subroutine adios_end_iteration (err)
             implicit none
-            integer*8,      intent(in)  :: fd
             integer,        intent(out) :: err
         end subroutine
 
-        subroutine adios_start_calculation (fd, err)
+        subroutine adios_start_calculation (err)
             implicit none
-            integer*8,      intent(in)  :: fd
             integer,        intent(out) :: err
         end subroutine
 
-        subroutine adios_stop_calculation (fd, err)
+        subroutine adios_stop_calculation (err)
             implicit none
-            integer*8,      intent(in)  :: fd
             integer,        intent(out) :: err
         end subroutine
 
@@ -153,7 +152,6 @@ module adios_write_mod
     end interface
 
 
-
     !
     !
     ! ADIOS_WRITE generic interface 
diff --git a/src/core/bp_utils.c b/src/core/bp_utils.c
index 6bdc431..37e0ed1 100644
--- a/src/core/bp_utils.c
+++ b/src/core/bp_utils.c
@@ -1600,7 +1600,7 @@ int bp_seek_to_step (ADIOS_FILE * fp, int tostep, int show_hidden_attrs)
     int j, k, t, allstep;
     struct BP_PROC * p = (struct BP_PROC *) fp->fh;
     struct BP_FILE * fh = p->fh;
-    struct adios_index_var_struct_v1 * var_root;
+    struct adios_index_var_struct_v1 * var_root = fh->vars_root;
     struct adios_index_attribute_struct_v1 * attr_root;
     uint64_t i;
 
@@ -1615,12 +1615,12 @@ int bp_seek_to_step (ADIOS_FILE * fp, int tostep, int show_hidden_attrs)
     else
     {
         allstep = 0;
-        t = tostep + 1;
+        t = get_time (var_root, tostep);
     }
 
     /* Prepare vars */
     fp->nvars = 0;
-    var_root = fh->vars_root;
+//    var_root = fh->vars_root;
 
     while (var_root)
     {
@@ -1785,7 +1785,7 @@ int bp_get_dimension_characteristics_notime (struct adios_index_characteristic_s
         is_global = is_global || gdims[k];
     }
 
-    has_time = (gdims[ndim - 1] == 0);
+    has_time = (gdims[ndim - 1] == 0 && ldims[ndim - 1] > 0);
     // change all the stuff to C ordering
     if (file_is_fortran)
     {
@@ -1802,63 +1802,61 @@ int bp_get_dimension_characteristics_notime (struct adios_index_characteristic_s
             gdims[k] = ldims[k];
         }
     }
-    else
+
+    if (has_time)
     {
-        if (has_time)
+        if (!file_is_fortran)
         {
-            if (!file_is_fortran)
+            /* first dimension is the time (C array)
+             * ldims[0] = 1 but gdims does not contain time info and 
+             * gdims[0] is 1st data dimension and 
+             * gdims is shorter by one value than ldims in case of C.
+             * Therefore, gdims[*ndim-1] = 0 if there is a time dimension. 
+             */
+            // error check
+            if (ndim > 1 && ldims[0] != 1)
             {
-                /* first dimension is the time (C array)
-                 * ldims[0] = 1 but gdims does not contain time info and 
-                 * gdims[0] is 1st data dimension and 
-                 * gdims is shorter by one value than ldims in case of C.
-                 * Therefore, gdims[*ndim-1] = 0 if there is a time dimension. 
-                 */
-                // error check
-                if (ndim > 1 && ldims[0] != 1)
+                log_error ("ADIOS Error 1: this is a BP file with C ordering "
+                           "but we didn't find an array to have time dimension "
+                           "in the first dimension. l:g:o = (");
+                for (k = 0; k < ndim; k++)
                 {
-                    log_error ("ADIOS Error 1: this is a BP file with C ordering "
-                               "but we didn't find an array to have time dimension "
-                               "in the first dimension. l:g:o = (");
-                    for (k = 0; k < ndim; k++)
-                    {
-                        log_error_cont ("%llu:%llu:%llu%s", 
+                    log_error_cont ("%llu:%llu:%llu%s", 
                                    ldims[k], gdims[k], offsets[k], 
                                    (k<ndim-1 ? ", " : "") );
-                    }
-
-                    log_error_cont ("\n");
                 }
 
-                for (k = 0; k < ndim - 1; k++)
-                {
-                    ldims[k] = ldims[k + 1];
-                }
+                log_error_cont ("\n");
             }
-            else
+
+            for (k = 0; k < ndim - 1; k++)
             {
-                // last dimension is the time (Fortran array)
-                if (ndim > 1 && ldims[0] != 1)
+                ldims[k] = ldims[k + 1];
+            }
+        }
+        else
+        {
+            // last dimension is the time (Fortran array)
+            if (ndim > 1 && ldims[0] != 1)
+            {
+                log_error ("ADIOS Error: this is a BP file with Fortran array "
+                           "ordering but we didn't find an array to have time "
+                           "dimension in the last dimension. l:g:o = (");
+                for (k = 0; k < ndim; k++)
                 {
-                    log_error ("ADIOS Error: this is a BP file with Fortran array "
-                               "ordering but we didn't find an array to have time "
-                               "dimension in the last dimension. l:g:o = (");
-                    for (k = 0; k < ndim; k++)
-                    {
-                        log_error_cont ("%llu:%llu:%llu%s", 
-                                        ldims[k], gdims[k], offsets[k], 
-                                        (k<ndim-1 ? ", " : "") );
-                    }
-
-                    log_error_cont (")\n");
+                    log_error_cont ("%llu:%llu:%llu%s", 
+                                    ldims[k], gdims[k], offsets[k], 
+                                    (k<ndim-1 ? ", " : "") );
                 }
 
-                for (k = 0; k < ndim - 1; k++)
-                {
-                    gdims[k] = gdims[k + 1];
-                    ldims[k] = ldims[k + 1];
-                    offsets[k] = offsets[k + 1]; 
-                }
+                log_error_cont (")\n");
+            }
+
+            for (k = 0; k < ndim - 1; k++)
+            {
+                gdims[k] = gdims[k + 1];
+                ldims[k] = ldims[k + 1];
+                offsets[k] = offsets[k + 1]; 
             }
         }
     }
diff --git a/src/core/bp_utils.h b/src/core/bp_utils.h
index 1172ab3..6968281 100644
--- a/src/core/bp_utils.h
+++ b/src/core/bp_utils.h
@@ -10,12 +10,7 @@
 
 #include <stdio.h>
 #include <sys/types.h>
-#   include "public/adios_read.h" // ADIOS_FILE*
-#ifdef _NOMPI
-#   include "public/mpidummy.h"
-#else
-#   include "mpi.h"
-#endif
+#include "public/adios_read.h" // ADIOS_FILE*
 #include "core/bp_types.h"
 #define VARS_MINIHEADER_SIZE 10
 
diff --git a/src/core/common_adios.c b/src/core/common_adios.c
index 0a0b6c5..53d1d18 100644
--- a/src/core/common_adios.c
+++ b/src/core/common_adios.c
@@ -14,21 +14,13 @@
 #include <stdint.h>
 #include <sys/time.h> // gettimeofday
 
-#ifdef _NOMPI
-/* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "public/mpidummy.h"
-#else
-/* Parallel applications should use MPI to communicate file info and slices of data */
-#   include "mpi.h"
-#endif
-
 // xml parser
 #include <mxml.h>
 
-#include "core/common_adios.h"
-#include "core/adios_bp_v1.h"
 #include "core/adios_internals.h"
 #include "core/adios_internals_mxml.h"
+#include "core/common_adios.h"
+#include "core/adios_bp_v1.h"
 #include "core/buffer.h"
 #include "core/adios_transport_hooks.h"
 #include "core/adios_logger.h"
@@ -41,18 +33,17 @@
 extern struct adios_transport_struct * adios_transports;
 
 ///////////////////////////////////////////////////////////////////////////////
-int common_adios_init (const char * config)
+int common_adios_init (const char * config, MPI_Comm comm)
 {
-    MPI_Comm comm = MPI_COMM_WORLD; // FIXME: this should be an argument from app
     // parse the config file
     return adios_parse_config (config, comm);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
 // all XML file pieces will be provided by another series of calls
-int common_adios_init_noxml ()
+int common_adios_init_noxml (MPI_Comm comm)
 {
-    return adios_local_config ();
+    return adios_local_config (comm);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -88,7 +79,7 @@ int common_adios_allocate_buffer (enum ADIOS_BUFFER_ALLOC_WHEN adios_buffer_allo
 
 ///////////////////////////////////////////////////////////////////////////////
 int common_adios_open (int64_t * fd, const char * group_name
-                ,const char * name, const char * file_mode, void * comm
+                ,const char * name, const char * file_mode, MPI_Comm comm
                )
 {
     int64_t group_id = 0;
diff --git a/src/core/common_adios.h b/src/core/common_adios.h
index 49dfa53..4b41913 100644
--- a/src/core/common_adios.h
+++ b/src/core/common_adios.h
@@ -18,12 +18,12 @@
  */
 
 // Global setup using the XML file
-int common_adios_init (const char * config);
+int common_adios_init (const char * config, MPI_Comm comm);
 
 // setup, but all XML file pieces will be provided by another series of calls
 // yet to be worked out
 // TODO
-int common_adios_init_noxml (void);
+int common_adios_init_noxml (MPI_Comm comm);
 
 int common_adios_finalize (int mype);
 
@@ -33,7 +33,7 @@ int common_adios_allocate_buffer (enum ADIOS_BUFFER_ALLOC_WHEN adios_buffer_allo
 // end user calls for each I/O operation
 // modes = "r" = "read", "w" = "write", "a" = "append", "u" = "update"
 int common_adios_open (int64_t * fd, const char * group_name, const char * name
-               ,const char * mode, void * comm
+               ,const char * mode, MPI_Comm comm
                );
 
 int common_adios_group_size (int64_t fd_p, uint64_t data_size
diff --git a/src/core/common_read.c b/src/core/common_read.c
index 616d3bc..83d3f62 100644
--- a/src/core/common_read.c
+++ b/src/core/common_read.c
@@ -147,18 +147,18 @@ int common_read_finalize_method(enum ADIOS_READ_METHOD method)
 }
 
 
-ADIOS_FILE * common_read_open_stream (const char * fname, 
-                                      enum ADIOS_READ_METHOD method, 
-                                      MPI_Comm comm, 
-                                      enum ADIOS_LOCKMODE lock_mode, 
-                                      float timeout_sec)
+ADIOS_FILE * common_read_open (const char * fname, 
+                               enum ADIOS_READ_METHOD method, 
+                               MPI_Comm comm, 
+                               enum ADIOS_LOCKMODE lock_mode, 
+                               float timeout_sec)
 {
     ADIOS_FILE * fp;
     struct common_read_internals_struct * internals; 
 
     if ((int)method < 0 || (int)method >= ADIOS_READ_METHOD_COUNT) {
         adios_error (err_invalid_read_method, 
-            "Invalid read method (=%d) passed to adios_read_open_stream().\n", (int)method);
+            "Invalid read method (=%d) passed to adios_read_open().\n", (int)method);
         return NULL;
     } 
 
@@ -171,7 +171,7 @@ ADIOS_FILE * common_read_open_stream (const char * fname,
     internals->method = method;
     internals->read_hooks = adios_read_hooks;
 
-    fp = adios_read_hooks[internals->method].adios_open_stream_fn (fname, comm, lock_mode, timeout_sec);
+    fp = adios_read_hooks[internals->method].adios_open_fn (fname, comm, lock_mode, timeout_sec);
 
     // save the method and group information in fp->internal_data
     if (fp){
@@ -851,7 +851,7 @@ void common_read_print_fileinfo (const ADIOS_FILE *fp)
 
 
 /**    SELECTIONS   **/ 
-ADIOS_SELECTION * common_read_selection_boundingbox (uint64_t ndim, const uint64_t *start, const uint64_t *count)
+ADIOS_SELECTION * common_read_selection_boundingbox (int ndim, const uint64_t *start, const uint64_t *count)
 {   
     adios_errno = err_no_error;
     ADIOS_SELECTION * sel = (ADIOS_SELECTION *) malloc (sizeof(ADIOS_SELECTION));
@@ -867,7 +867,7 @@ ADIOS_SELECTION * common_read_selection_boundingbox (uint64_t ndim, const uint64
 }
 
 
-ADIOS_SELECTION * common_read_selection_points (uint64_t ndim, uint64_t npoints, const uint64_t *points)
+ADIOS_SELECTION * common_read_selection_points (int ndim, uint64_t npoints, const uint64_t *points)
 {   
     adios_errno = err_no_error;
     ADIOS_SELECTION * sel = (ADIOS_SELECTION *) malloc (sizeof(ADIOS_SELECTION));
diff --git a/src/core/common_read.h b/src/core/common_read.h
index 181e724..40d6127 100644
--- a/src/core/common_read.h
+++ b/src/core/common_read.h
@@ -14,14 +14,6 @@
 #include "public/adios_types.h"
 #include "public/adios_read_v2.h"  /* C API's struct's are used here */
 
-#ifdef _NOMPI
-    /* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "public/mpidummy.h"
-#else
-    /* Parallel applications should use MPI to communicate file info and slices of data */
-#   include "mpi.h"
-#endif
-
 #include <stdint.h>
 
 int common_read_init_method (enum ADIOS_READ_METHOD method, 
@@ -30,11 +22,11 @@ int common_read_init_method (enum ADIOS_READ_METHOD method,
 
 int common_read_finalize_method(enum ADIOS_READ_METHOD method);
 
-ADIOS_FILE * common_read_open_stream (const char * fname,
-                                     enum ADIOS_READ_METHOD method,
-                                     MPI_Comm comm,
-                                     enum ADIOS_LOCKMODE lock_mode,
-                                     float timeout_sec);
+ADIOS_FILE * common_read_open (const char * fname,
+                               enum ADIOS_READ_METHOD method,
+                               MPI_Comm comm,
+                               enum ADIOS_LOCKMODE lock_mode,
+                               float timeout_sec);
 
 ADIOS_FILE * common_read_open_file   (const char * fname,
                                      enum ADIOS_READ_METHOD method,
@@ -95,8 +87,8 @@ void common_read_reset_dimension_order (const ADIOS_FILE *fp, int is_fortran);
 void common_read_print_fileinfo (const ADIOS_FILE *fp);
 
 // selections 
-ADIOS_SELECTION * common_read_selection_boundingbox (uint64_t ndim, const uint64_t *start, const uint64_t *count);
-ADIOS_SELECTION * common_read_selection_points (uint64_t ndim, uint64_t npoints, const uint64_t *points);
+ADIOS_SELECTION * common_read_selection_boundingbox (int ndim, const uint64_t *start, const uint64_t *count);
+ADIOS_SELECTION * common_read_selection_points (int ndim, uint64_t npoints, const uint64_t *points);
 ADIOS_SELECTION * common_read_selection_writeblock (int index);
 ADIOS_SELECTION * common_read_selection_auto (char *hints);
 void common_read_selection_delete (ADIOS_SELECTION *sel);
diff --git a/src/core/ds_metadata.h b/src/core/ds_metadata.h
index 7df57a7..36951a1 100644
--- a/src/core/ds_metadata.h
+++ b/src/core/ds_metadata.h
@@ -42,6 +42,17 @@ void ds_pack_group_info (struct adios_file_struct *fd
 
 //ADIOS_GROUP * ds_unpack_group_info (char * buf, struct adios_read_dart_group_struct * group);
 
+void dimes_dimension_ordering(int ndims, int is_app_fortran, int unpack, int *didx);
+
+void dimes_pack_file_info (int time, int nvars, int nattrs, int group_index_len, char * groupname,
+                        /*OUT*/char **buf, /*OUT*/int *buf_len);
+
+void dimes_pack_group_info (struct adios_file_struct *fd
+        ,struct adios_method_struct * method
+        ,struct adios_index_var_struct_v1 *vars_root
+        ,struct adios_index_attribute_struct_v1 * attrs_root
+        ,char ** buffer, int *buffer_size, int *nvars, int *nattrs
+        );
 
 /***********************
   FILE info buffer: 
diff --git a/src/core/flexpath.h b/src/core/flexpath.h
new file mode 100644
index 0000000..9990572
--- /dev/null
+++ b/src/core/flexpath.h
@@ -0,0 +1,217 @@
+#ifndef _FLEXPATH_H
+#define FLEXPATH_H
+
+
+#include "core/adios_logger.h"
+
+#define READER_CONTACT_FILE "reader_info.txt"
+#define WRITER_CONTACT_FILE "writer_info.txt"
+#define READER_READY_FILE "reader_ready.txt"
+#define WRITER_READY_FILE "writer_ready.txt"
+#define FP_RANK_ATTR_NAME "fp_rank_num"
+#define FP_DST_ATTR_NAME "fp_dst_rank"
+#define FP_DIM_ATTR_NAME "fp_dim"
+#define FP_NDIMS_ATTR_NAME "fp_ndims"
+
+#define OPEN_MSG 1
+#define CLOSE_MSG 0
+
+#define perr(...) if(getenv("FP_DEBUG")) fprintf(stderr, __VA_ARGS__);
+
+#define fp_log(LOG, ...)                             \
+            if(getenv("FP_DEBUG")) {    \
+                if(strcmp(getenv("FP_DEBUG"),"ALL")==0) {          \
+                    fprintf(stderr, __VA_ARGS__);   \
+                } else if(strcmp(getenv("FP_DEBUG"),LOG)==0) {     \
+                    fprintf(stderr, __VA_ARGS__);   \
+                }                                   \
+            }
+
+#define fp_write_log(LOG, ...)                                      \
+            if(getenv("FP_DEBUG")) {                                \
+                if(strcmp(getenv("FP_DEBUG"),"ALL")==0) {           \
+                    fprintf(stderr, "%d %s:", flexpathWriteData.rank, LOG);   \
+                    fprintf(stderr, __VA_ARGS__);                   \
+                } else {                                            \
+                    char* env_tok;                                  \
+                    char* env = strdup(getenv("FP_DEBUG"));         \
+                    env_tok = strtok(env, ",");                     \
+                    while(env_tok) {                                \
+                        if(strcmp(env_tok, LOG)==0) {               \
+                    fprintf(stderr, "%d %s:", flexpathWriteData.rank, LOG);   \
+                    fprintf(stderr, __VA_ARGS__);                   \
+                        }                                           \
+                        env_tok = strtok(NULL, ",");                \
+                    }                                               \
+                }                                                   \
+            }
+            
+
+//adios_logger(4,1, __VA_ARGS__);
+
+#define CONTACT_STR_LEN 50
+
+typedef enum { FORMAT=0, DATA, EVGROUP } Flush_type;
+
+/*
+ * Contains the offset information for a variable for all writers.
+ * offsets_per_rank is == ndims.
+ */
+typedef struct _offset_struct{
+    int offsets_per_rank;
+    int total_offsets;
+    int * local_dimensions;
+    int * local_offsets;
+} offset_struct;
+
+typedef struct _var {
+    char * name;
+    int noffset_structs;
+    offset_struct * offsets;    
+} global_var, *global_var_ptr;
+
+typedef struct _evgroup {    
+    int condition;
+    int num_vars;
+    global_var* vars;
+} evgroup, *evgroup_ptr;
+
+typedef struct _op_msg
+{
+    int process_id;
+    char * file_name;
+    int type; //4 = end_of_stream, 3 = init, 2 = ack, 1 = open, 0 = close,
+    int step;
+    int condition;
+} op_msg, *op_msg_ptr;
+ 
+typedef struct flush_msg_ {
+    Flush_type type;
+    int rank;
+    int condition;
+} Flush_msg, *Flush_msg_ptr;
+ 
+typedef struct format_msg_ {
+    int id_len;
+    int rep_id_len;
+    char* format_id;
+    char* rep_id;
+    int condition;
+} Format_msg, *Format_msg_ptr;
+
+typedef struct var_msg_ {
+    char* var_name;
+    int rank;
+    int condition;
+} Var_msg, *Var_msg_ptr;
+
+static FMField offset_struct_field_list[]=
+{
+    {"offsets_per_rank", "integer", sizeof(int), FMOffset(offset_struct*, offsets_per_rank)},
+    {"total_offsets", "integer", sizeof(int), FMOffset(offset_struct*, total_offsets)},
+    {"local_dimensions", "integer[total_offsets]", sizeof(int), FMOffset(offset_struct*, local_dimensions)},
+    {"local_offsets", "integer[total_offsets]", sizeof(int), FMOffset(offset_struct*, local_offsets)},
+    {NULL, NULL, 0, 0}
+};
+
+static FMField global_var_field_list[]=
+{
+    {"name", "string", sizeof(char*), FMOffset(global_var_ptr, name)},
+    {"noffset_structs", "integer", sizeof(int), FMOffset(global_var_ptr, noffset_structs)},
+    {"offsets", "offset_struct[noffset_structs]", sizeof(offset_struct), FMOffset(global_var_ptr, offsets)},
+    {NULL, NULL, 0, 0}
+};
+
+static FMField evgroup_field_list[]=
+{
+    {"condition", "integer", sizeof(int), FMOffset(evgroup_ptr, condition)},
+    {"num_vars", "integer", sizeof(int), FMOffset(evgroup_ptr, num_vars)},
+    {"vars", "global_var[num_vars]", sizeof(global_var), FMOffset(evgroup_ptr, vars)},
+    {NULL, NULL, 0, 0}
+};
+
+static FMField flush_field_list[] =
+{   
+    {"type", "integer", sizeof(Flush_type), FMOffset(Flush_msg_ptr, type)},
+    {"rank", "integer", sizeof(int), FMOffset(Flush_msg_ptr, rank)},
+    {"condition", "integer", sizeof(int), FMOffset(Flush_msg_ptr, condition)},
+    {NULL, NULL, 0, 0}
+};
+
+static FMField format_field_list[] =
+{   
+    {"id_len", "integer", sizeof(int), FMOffset(Format_msg_ptr, id_len)},
+    {"rep_id_len", "integer", sizeof(int), FMOffset(Format_msg_ptr, rep_id_len)},
+    {"format_id", "char[id_len]", sizeof(char), FMOffset(Format_msg_ptr, format_id)},
+    {"rep_id", "char[rep_id_len]", sizeof(char), FMOffset(Format_msg_ptr, rep_id)},
+    {"condition", "integer", sizeof(int), FMOffset(Format_msg_ptr, condition)},
+    {NULL, NULL, 0, 0}
+};
+
+static FMField var_field_list[] =
+{
+    {"var_name", "string", sizeof(char*), FMOffset(Var_msg_ptr, var_name)},
+    {"rank", "integer", sizeof(int), FMOffset(Var_msg_ptr, rank)},
+    {NULL, NULL, 0, 0}
+};
+
+
+static FMField op_file_field_list[] =
+{
+    {"process_id", "integer", sizeof(int), FMOffset(op_msg_ptr, process_id)},
+    {"file_name", "string", sizeof(char*), FMOffset(op_msg_ptr, file_name)},
+    {"type", "integer", sizeof(int), FMOffset(op_msg_ptr, type)},
+    {"step", "integer", sizeof(int), FMOffset(op_msg_ptr, step)},
+    {"condition", "integer", sizeof(int), FMOffset(op_msg_ptr, condition)},
+    {NULL, NULL, 0, 0}
+};
+
+static FMStructDescRec offset_struct_format_list[] =
+{
+    {"offset_struct", offset_struct_field_list, sizeof(offset_struct), NULL},
+    {NULL, NULL, 0, 0}
+};
+
+
+static FMStructDescRec evgroup_format_list[] =
+{   
+    {"evgroup", evgroup_field_list, sizeof(evgroup), NULL},
+    {"offset_struct", offset_struct_field_list, sizeof(offset_struct), NULL},
+    {"global_var", global_var_field_list, sizeof(global_var), NULL},
+    {NULL,NULL,0,NULL}
+};
+
+static FMStructDescRec flush_format_list[] =
+{   
+    {"flush", flush_field_list, sizeof(Flush_msg), NULL},
+    {NULL,NULL,0,NULL}
+};
+ 
+static FMStructDescRec format_format_list[] =
+{   
+    {"formatMsg", format_field_list, sizeof(Format_msg), NULL},
+    {NULL,NULL,0,NULL}
+};
+ 
+static FMStructDescRec var_format_list[] =
+{
+    {"varMsg", var_field_list, sizeof(Var_msg), NULL},
+    {NULL, NULL, 0, NULL}
+};
+
+static FMStructDescRec data_format_list[] =
+{
+    {"anonymous", NULL, 0, NULL},
+    {NULL, NULL, 0, NULL}
+};
+
+static FMStructDescRec op_format_list[] =
+{
+    {"op_msg", op_file_field_list, sizeof(op_msg), NULL},
+    {NULL, NULL, 0, NULL}
+};
+
+static char *getFixedName(char *name);
+
+
+#endif
diff --git a/src/core/util.c b/src/core/util.c
index 2cd39ba..db0f36c 100644
--- a/src/core/util.c
+++ b/src/core/util.c
@@ -118,7 +118,9 @@ void copy_data (void *dst, void *src,
         uint64_t dst_offset,
         uint64_t src_offset,
         uint64_t ele_num,
-        int      size_of_type
+        int      size_of_type,
+        enum ADIOS_FLAG change_endiness,
+        enum ADIOS_DATATYPES type
         )
 {
     unsigned int i, j;
@@ -130,6 +132,10 @@ void copy_data (void *dst, void *src,
             memcpy ((char *)dst + (i*dst_stride+dst_offset)*size_of_type,
                     (char *)src + (i*src_stride+src_offset)*size_of_type,
                     ele_num*size_of_type);
+            if (change_endiness == adios_flag_yes) {
+                change_endianness ((char *)dst + (i*dst_stride+dst_offset)*size_of_type, 
+                                   ele_num*size_of_type, type);
+            }
         }
         return;
     }
@@ -149,7 +155,7 @@ void copy_data (void *dst, void *src,
                 ldims,readsize,
                 dst_stride, src_stride,
                 dst_offset_new, src_offset_new,
-                ele_num, size_of_type);
+                ele_num, size_of_type, change_endiness, type);
     }
 }
 
diff --git a/src/core/util.h b/src/core/util.h
index e922c38..4724312 100644
--- a/src/core/util.h
+++ b/src/core/util.h
@@ -34,7 +34,9 @@ void copy_data (void *dst, void *src,
                 uint64_t dst_offset,
                 uint64_t src_offset,
                 uint64_t ele_num,
-                int      size_of_type
+                int      size_of_type,
+                enum ADIOS_FLAG change_endiness,
+                enum ADIOS_DATATYPES type
                 );
 void alloc_namelist (char ***namelist, int length);
 void free_namelist (char **namelist, int length);
diff --git a/src/nssi/adios_nssi_config.c b/src/nssi/adios_nssi_config.c
index f2359b4..815e4cb 100644
--- a/src/nssi/adios_nssi_config.c
+++ b/src/nssi/adios_nssi_config.c
@@ -13,14 +13,7 @@
 // xml parser
 #include <mxml.h>
 
-#ifdef _NOMPI
-    /* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "mpidummy.h"
-#else
-    /* Parallel applications should use MPI to communicate  */
-#   include "mpi.h"
-#endif
-
+#include "public/adios_mpi.h"
 #include "nssi_client.h"
 #include "adios_nssi_args.h"
 #include "adios_nssi_config.h"
diff --git a/src/nssi/adios_nssi_filter.c b/src/nssi/adios_nssi_filter.c
index d2379bd..fd15e71 100644
--- a/src/nssi/adios_nssi_filter.c
+++ b/src/nssi/adios_nssi_filter.c
@@ -13,7 +13,6 @@
 #include <stdio.h>
 
 #include "config.h"
-#include "mpi.h"
 #include "adios.h"
 #include "adios_types.h"
 #include "adios_bp_v1.h"
@@ -52,8 +51,6 @@ struct adios_nssi_filter_data_struct
     int      rank;
     int      size;
 
-    void * comm; // temporary until moved from should_buffer to open
-
     struct adios_method_struct *submethod;
 };
 
@@ -774,26 +771,6 @@ static int gen_anonymous_dim_list(
     }
 }
 
-static void adios_var_to_comm_nssi(
-        enum ADIOS_FLAG host_language_fortran,
-        void *data,
-        MPI_Comm *comm)
-{
-    if (data) {
-        int t = *(int *) data;
-        if (host_language_fortran == adios_flag_yes) {
-            *comm = MPI_Comm_f2c (t);
-        } else {
-            *comm = *(MPI_Comm *) data;
-        }
-    } else {
-        fprintf (stderr, "coordination-communication not provided. "
-                "Using MPI_COMM_WORLD instead\n");
-        *comm = MPI_COMM_WORLD;
-    }
-
-    return;
-}
 
 void adios_nssi_filter_init(
         const char *parameters,
@@ -810,11 +787,10 @@ void adios_nssi_filter_init(
         adios_nssi_filter_initialized = 1;
     }
 
-    MPI_Comm_rank(MPI_COMM_WORLD, &global_rank);
+    MPI_Comm_rank(method->init_comm, &global_rank);
 
     if (DEBUG>3) printf("rank(%d) enter adios_nssi_filter_init\n", global_rank);
 
-//    MPI_Comm_rank(md->group_comm, &log_rank);
 //    sprintf(logfile, "%s.%04d", "adios_nssi_filter_client.log", log_rank);
 //    logger_init((log_level)verbose, logfile);
 
@@ -934,7 +910,7 @@ enum ADIOS_FLAG adios_nssi_filter_should_buffer(
 int adios_nssi_filter_open(
         struct adios_file_struct *f,
         struct adios_method_struct *method,
-        void *comm)
+        MPI_Comm comm)
 {
     int rc=NSSI_OK;
 
@@ -951,8 +927,7 @@ int adios_nssi_filter_open(
         md->fd         = -1;
         md->rank       = -1;
         md->size       = 0;
-        md->group_comm = MPI_COMM_NULL;
-        md->comm       = comm;
+        md->group_comm = comm;
 
         md->submethod = init_submethod(self_md->sm_method, self_md->sm_parameters);
         md->submethod->group = group_deep_copy(f->group);
@@ -972,10 +947,8 @@ int adios_nssi_filter_open(
         }
     }
 
-    if (DEBUG>3) printf("global_rank(%d): adios_nssi_filter_open: setup group_comm\n", global_rank);
-    adios_var_to_comm_nssi(f->group->adios_host_language_fortran, md->comm, &md->group_comm);
     if (md->group_comm != MPI_COMM_NULL) {
-        if (DEBUG>3) printf("global_rank(%d): adios_nssi_filter_open: get rank and size: comm(%p) group_comm(%p)\n", global_rank, md->comm, md->group_comm);
+        if (DEBUG>3) printf("global_rank(%d): adios_nssi_filter_open: get rank and size: group_comm(%p)\n", global_rank, md->group_comm);
         MPI_Comm_rank(md->group_comm, &md->rank);
         MPI_Comm_size(md->group_comm, &md->size);
         if (DEBUG>3) printf("global_rank(%d): adios_nssi_filter_open: size(%d) rank(%d)\n", global_rank, md->size, md->rank);
@@ -1012,7 +985,7 @@ int adios_nssi_filter_open(
        )
     {
         adios_transports[md->submethod->m].adios_open_fn
-                                   (f, md->submethod, comm);
+                                   (f, md->submethod, md->group_comm);
     }
 
 
diff --git a/src/nssi/nssi_coupling_server.cpp b/src/nssi/nssi_coupling_server.cpp
index 0e8cadc..ba9b418 100644
--- a/src/nssi/nssi_coupling_server.cpp
+++ b/src/nssi/nssi_coupling_server.cpp
@@ -551,7 +551,7 @@ int write_cache(const char *client_id, int8_t free_memory)
         int64_t fd;
         if (DEBUG>3) printf("start adios_open\n");
         if (DEBUG>3) printf("adios_open: using MPI_COMM_WORLD\n");
-        Func_Timer("adios_open", rc = adios_open(&fd, of->gname, of->ofname, of->omode, &comm_world););
+        Func_Timer("adios_open", rc = adios_open(&fd, of->gname, of->ofname, of->omode, comm_world););
         if (rc != 0) {
             printf("Error opening file \"%s\": %d\n", of->ofname, rc);
         }
diff --git a/src/nssi/nssi_staging_server.cpp b/src/nssi/nssi_staging_server.cpp
index 69ce74f..a263755 100644
--- a/src/nssi/nssi_staging_server.cpp
+++ b/src/nssi/nssi_staging_server.cpp
@@ -362,10 +362,10 @@ int nssi_staging_open_stub(
         if (DEBUG>3) printf("start adios_open\n");
         if (args->use_single_server==TRUE) {
             if (DEBUG>3) printf("adios_open: using MPI_COMM_SELF\n");
-            Func_Timer("adios_open", rc = adios_open(&fd, args->gname, args->fname, omode, &comm_self););
+            Func_Timer("adios_open", rc = adios_open(&fd, args->gname, args->fname, omode, comm_self););
         } else {
             if (DEBUG>3) printf("adios_open: using MPI_COMM_WORLD\n");
-            Func_Timer("adios_open", rc = adios_open(&fd, args->gname, args->fname, omode, &comm_world););
+            Func_Timer("adios_open", rc = adios_open(&fd, args->gname, args->fname, omode, comm_world););
         }
         if (rc != 0) {
             printf("Error opening file \"%s\": %d\n", args->fname, rc);
diff --git a/src/public/adios.h b/src/public/adios.h
index 61196dd..e7abfab 100644
--- a/src/public/adios.h
+++ b/src/public/adios.h
@@ -8,18 +8,11 @@
 #ifndef ADIOS_H
 #define ADIOS_H
 
+#include "adios_mpi.h"
 #include "adios_types.h"
 #include "adios_error.h"
 #include <stdint.h>
 
-#ifdef _NOMPI
-/* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "mpidummy.h"
-#else
-/* Parallel applications should use MPI to communicate file info and slices of data */
-#   include "mpi.h"
-#endif
-
 // ADIOS - Adaptable IO System
 
 #ifdef __cplusplus
@@ -27,7 +20,9 @@ extern "C" {
 #endif
 
 // Global setup using the XML file
-int adios_init (const char * config);
+// Only processes of the provided communicator can later participate
+// in any adios activity
+int adios_init (const char * config, MPI_Comm comm);
 
 int adios_finalize (int mype);
 
@@ -37,7 +32,7 @@ int adios_open (int64_t * fd,
                 const char * group_name, 
                 const char * name,
                 const char * mode, 
-                void * comm
+                MPI_Comm comm
                );
 
 int adios_group_size (int64_t fd_p, 
@@ -72,7 +67,7 @@ int adios_stop_calculation (void);
 int adios_close (int64_t fd_p);
 
 // ADIOS No-XML API's
-int adios_init_noxml (void);
+int adios_init_noxml (MPI_Comm comm);
 
 // To allocate ADIOS buffer
 int adios_allocate_buffer (
diff --git a/src/public/adios_mpi.h b/src/public/adios_mpi.h
new file mode 100644
index 0000000..3b7e27a
--- /dev/null
+++ b/src/public/adios_mpi.h
@@ -0,0 +1,20 @@
+/*
+ * ADIOS is freely available under the terms of the BSD license described
+ * in the COPYING file in the top level directory of this source distribution.
+ *
+ * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
+ */
+
+#ifndef ADIOS_MPI_H
+#define ADIOS_MPI_H
+
+#ifdef _NOMPI
+/* Sequential processes can use the library compiled with -D_NOMPI */
+#   include "mpidummy.h"
+#else
+/* Parallel applications should use MPI to communicate file info and slices of data */
+#   include "mpi.h"
+#endif
+
+
+#endif
diff --git a/src/public/adios_read_v1.h b/src/public/adios_read_v1.h
index 1423750..f5eff4a 100644
--- a/src/public/adios_read_v1.h
+++ b/src/public/adios_read_v1.h
@@ -13,17 +13,10 @@
 #ifndef __ADIOS_READ_V1_H__
 #define __ADIOS_READ_V1_H__
 
+#include "adios_mpi.h"
 #include "adios_read_v1_defs.h"
 #include "adios_types.h"
 
-#ifdef _NOMPI
-    /* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "mpidummy.h"
-#else
-    /* Parallel applications should use MPI to communicate file info and slices of data */
-#   include "mpi.h"
-#endif
-
 #include <stdint.h>
 
 #ifdef __cplusplus
diff --git a/src/public/adios_read_v2.h b/src/public/adios_read_v2.h
index 8190618..a7700e8 100644
--- a/src/public/adios_read_v2.h
+++ b/src/public/adios_read_v2.h
@@ -15,17 +15,10 @@
 extern "C" {
 #endif
 
+#include "adios_mpi.h"
 #include "adios_types.h"
 #include "adios_selection.h"
 
-#ifdef _NOMPI
-    /* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "mpidummy.h"
-#else
-    /* Parallel applications should use MPI to communicate file info and slices of data */
-#   include "mpi.h"
-#endif
-
 #include <stdint.h>
 
 /*************************/
@@ -54,7 +47,6 @@ typedef struct {
         void     * internal_data;   /* Data for internal use                                          */
 } ADIOS_FILE;
 
-
 typedef struct {
         void     * min;            /* minimum value in an array variable, = value for a scalar       */
         void     * max;            /* maximum value of an array variable (over all steps)            */
@@ -134,7 +126,7 @@ enum ADIOS_READ_METHOD {
         ADIOS_READ_METHOD_BP_AGGREGATE  = 1,  /* Read from ADIOS BP file (written by POSIX, MPI_AMR etc methods)  */
         ADIOS_READ_METHOD_DATASPACES    = 3,  /* Read from memory written by DATASPACES method               */
         ADIOS_READ_METHOD_DIMES         = 4,  /* Read from memory written by DIMES method                    */
-        ADIOS_READ_METHOD_FLEXIO        = 5,  /* Read from memory written by FLEXIO method                   */
+        ADIOS_READ_METHOD_FLEXPATH      = 5,  /* Read from memory written by FLEXPATH method                 */
 };
 
 /** Locking mode for streams. 
@@ -226,11 +218,14 @@ int adios_read_finalize_method(enum ADIOS_READ_METHOD method);
  *       err_end_of_stream         Stream has ended, nothing is available and
  *                                 no more steps should be expected.
  */
-ADIOS_FILE * adios_read_open_stream (const char * fname, 
-                                     enum ADIOS_READ_METHOD method, 
-                                     MPI_Comm comm, 
-                                     enum ADIOS_LOCKMODE lock_mode,
-                                     float timeout_sec);
+ADIOS_FILE * adios_read_open (const char * fname, 
+                              enum ADIOS_READ_METHOD method, 
+                              MPI_Comm comm, 
+                              enum ADIOS_LOCKMODE lock_mode,
+                              float timeout_sec);
+
+/* Backward compatibility to 1.5 */
+#define adios_read_open_stream adios_read_open
 
 /** Open an adios file as a file.
  *  Each variable can have different number of steps, which is reported in adios_inq_var(). 
diff --git a/src/public/adios_selection.h b/src/public/adios_selection.h
index 4954346..880206c 100644
--- a/src/public/adios_selection.h
+++ b/src/public/adios_selection.h
@@ -104,7 +104,7 @@ typedef struct {
  *       count     number of data elements to read in each dimension
  *  RETURN:        A selection which can be used to read variables
  */
-ADIOS_SELECTION * adios_selection_boundingbox (uint64_t ndim, const uint64_t *start, const uint64_t *count);
+ADIOS_SELECTION * adios_selection_boundingbox (int ndim, const uint64_t *start, const uint64_t *count);
 
 
 /** Selection for a selection of an enumeration of positions.
@@ -115,7 +115,7 @@ ADIOS_SELECTION * adios_selection_boundingbox (uint64_t ndim, const uint64_t *st
  *                 (e.g.  [i1,j1,k1,i2,j2,k2,...,in,jn,kn] for
  *                 n points in a 3D space.
  */
-ADIOS_SELECTION* adios_selection_points (uint64_t ndim, uint64_t npoints, const uint64_t *points);
+ADIOS_SELECTION* adios_selection_points (int ndim, uint64_t npoints, const uint64_t *points);
 
 /** Selection for a block of data coming from a certain producer.
  *
diff --git a/src/public/mpidummy.h b/src/public/mpidummy.h
index 868eaa4..f873ead 100644
--- a/src/public/mpidummy.h
+++ b/src/public/mpidummy.h
@@ -46,10 +46,13 @@ typedef int MPI_Fint;
 
 #define MPI_INT                     1
 #define MPI_CHAR                    2
+#define MPI_DOUBLE                  3
 
 #define MPI_ANY_SOURCE              0
 #define MPI_ANY_TAG                 0
 
+#define MPI_SUM                     0
+
 int MPI_Init(int *argc, char ***argv);
 int MPI_Finalize();
 int MPI_Initialized( int* flag ) ;
diff --git a/src/read/read_bp.c b/src/read/read_bp.c
index 4f26f65..bd669ae 100644
--- a/src/read/read_bp.c
+++ b/src/read/read_bp.c
@@ -523,8 +523,12 @@ static ADIOS_VARCHUNK * read_var_bb (const ADIOS_FILE *fp, read_request * r)
         }
         else
         {
-            time = t + 1;
+            // Fix: the assumption that for streaming mode, the time in file
+            // always starts from 1 is not correct. So here we add fh->tidx_start to adjust
+            // Q. Liu, 06/2013
+            time = fh->tidx_start + t;
         }
+
 //printf ("t = %d(%d,%d), time = %d\n", t, fp->current_step, r->from_steps, time);
 //printf ("c = %d, f = %d, time = %d\n", fp->current_step, r->from_steps, time);
         start_idx = get_var_start_index (v, time);
@@ -877,7 +881,9 @@ static ADIOS_VARCHUNK * read_var_bb (const ADIOS_FILE *fp, read_request * r)
                               ,var_offset
                               ,dset_offset
                               ,datasize
-                              ,size_of_type 
+                              ,size_of_type
+                              ,fh->mfooter.change_endianness
+                              ,v->type 
                               );
                 }
             }  // end for (idx ... loop over pgs
@@ -1093,9 +1099,9 @@ static int open_stream (ADIOS_FILE * fp, const char * fname,
 /* As opposed to open_file, open_stream opens the first step in the file only.
  * The lock_mode for file reading is ignored for now.
  */
-ADIOS_FILE * adios_read_bp_open_stream (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec)
+ADIOS_FILE * adios_read_bp_open (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec)
 {
-    log_debug ("adios_read_bp_open_stream\n");
+    log_debug ("adios_read_bp_open\n");
 
     ADIOS_FILE * fp = (ADIOS_FILE *) malloc (sizeof (ADIOS_FILE));
     assert (fp);
@@ -1887,26 +1893,27 @@ typedef struct {
             }
         }
 
-//TODO
-#if 0
-        if(ntimes > 0 && vs->min && (map[adios_statistic_sum] != -1) && (map[adios_statistic_sum_square] != -1))
+        if(nsteps > 0 && vs->min
+           && (map[adios_statistic_sum] != -1) 
+           && (map[adios_statistic_sum_square] != -1)
+          )
         {
             // min, max, summation exists only for arrays
             // Calculate average / timestep
-
-            for(timestep = 0; timestep < ntimes; timestep ++)
+            for(timestep = 0; timestep < nsteps; timestep ++)
             {
                 MALLOC(vs->steps->avgs[timestep], sum_size, "average per timestep")
                 *(vs->steps->avgs[timestep]) = *(sums[timestep]) / cnts[timestep];
 
                 MALLOC(vs->steps->std_devs[timestep], sum_size, "standard deviation per timestep")
-                *(vs->steps->std_devs[timestep]) = sqrt(*(sum_squares[timestep]) / cnts[timestep] - ((*(vs->steps->avgs[timestep]) * (*(vs->steps->avgs[timestep])))));
+                *(vs->steps->std_devs[timestep]) = sqrt(*(sum_squares[timestep]) / cnts[timestep] 
+                             - ((*(vs->steps->avgs[timestep]) * (*(vs->steps->avgs[timestep])))));
 
                 free (sums[timestep]);
                 free (sum_squares[timestep]);
             }
         }
-#endif
+
         // Calculate global average
         if(vs->min && gsum && (map[adios_statistic_sum] != -1) && (map[adios_statistic_sum_square] != -1))
         {
@@ -1967,14 +1974,13 @@ int adios_read_bp_inq_var_blockinfo (const ADIOS_FILE * fp, ADIOS_VARINFO * vari
     fh = (BP_FILE *) p->fh;
     file_is_fortran = is_fortran_file (fh);
     var_root = bp_find_var_byid (fh, varinfo->varid);
-
     varinfo->blockinfo = (ADIOS_VARBLOCK *) malloc (varinfo->sum_nblocks * sizeof (ADIOS_VARBLOCK));
     assert (varinfo->blockinfo);
 
     /* dim.count possibily include 'time' dim in it. */
-    ldims = (uint64_t *) malloc (var_root->characteristics[0].dims.count);
-    gdims = (uint64_t *) malloc (var_root->characteristics[0].dims.count);
-    offsets = (uint64_t *) malloc (var_root->characteristics[0].dims.count);
+    ldims = (uint64_t *) malloc (var_root->characteristics[0].dims.count * 8);
+    gdims = (uint64_t *) malloc (var_root->characteristics[0].dims.count * 8);
+    offsets = (uint64_t *) malloc (var_root->characteristics[0].dims.count * 8);
     assert (ldims && gdims && offsets); 
 
     for (i = 0; i < varinfo->sum_nblocks; i++)
@@ -2091,7 +2097,7 @@ int adios_read_bp_schedule_read_byid (const ADIOS_FILE * fp, const ADIOS_SELECTI
         nullsel = (ADIOS_SELECTION *) malloc (sizeof (ADIOS_SELECTION));
         assert (nullsel);
 
-        nullsel->type == ADIOS_SELECTION_BOUNDINGBOX;
+        nullsel->type = ADIOS_SELECTION_BOUNDINGBOX;
         nullsel->u.bb.ndim = ndim;
         nullsel->u.bb.start = (uint64_t *) malloc (nullsel->u.bb.ndim * 8);
         assert (nullsel->u.bb.start);
diff --git a/src/read/read_bp_staged.c b/src/read/read_bp_staged.c
index c0fdba0..ef12aad 100644
--- a/src/read/read_bp_staged.c
+++ b/src/read/read_bp_staged.c
@@ -1510,6 +1510,8 @@ static void read_buffer (const ADIOS_FILE * fp,
                               ,dset_offset
                               ,datasize
                               ,size_unit
+                              ,fh->mfooter.change_endianness
+                              ,v->type
                               );
 
                 }
@@ -2006,9 +2008,9 @@ int adios_read_bp_staged_finalize_method ()
     return 0;
 }
 
-ADIOS_FILE * adios_read_bp_staged_open_stream (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec)
+ADIOS_FILE * adios_read_bp_staged_open (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec)
 {
-    log_error (" adios_read_open_stream() is not supported in this method.\n");
+    log_error (" adios_read_open() is not supported in this method. Use the file-only adios_read_open_file().\n");
     return 0;
 }
 
diff --git a/src/read/read_bp_staged1.c b/src/read/read_bp_staged1.c
index e007295..bb448c4 100644
--- a/src/read/read_bp_staged1.c
+++ b/src/read/read_bp_staged1.c
@@ -45,7 +45,7 @@ int adios_read_bp_staged1_finalize_method ()
     return 0;
 }
 
-ADIOS_FILE * adios_read_bp_staged1_open_stream (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec)
+ADIOS_FILE * adios_read_bp_staged1_open (const char * fname, MPI_Comm comm, enum ADIOS_LOCKMODE lock_mode, float timeout_sec)
 {
     return 0;
 }
diff --git a/src/read/read_dataspaces.c b/src/read/read_dataspaces.c
index 23ee82a..09f1d5b 100644
--- a/src/read/read_dataspaces.c
+++ b/src/read/read_dataspaces.c
@@ -283,7 +283,7 @@ static int ds_unpack_file_info (ADIOS_FILE *fp, char * buf, int buf_len)
     ds->group_name = (char *) malloc (strlen(b)+1);
     if (!ds->group_name) {
         adios_error (err_no_memory, 
-                "Could not allocate buffer for group name in adios_read_open_stream()\n");
+                "Could not allocate buffer for group name in adios_read_open()\n");
         free(fp);
         return 1;
     }
@@ -726,15 +726,15 @@ ADIOS_FILE * adios_read_dataspaces_open_file (const char * fname, MPI_Comm comm)
 {
     adios_error (err_operation_not_supported, 
                  "DATASPACES staging method does not support file mode for reading. "
-                 "Use adios_read_open_stream() to open a dataset.\n");
+                 "Use adios_read_open() to open a dataset.\n");
     return NULL;
 }
 
 
-ADIOS_FILE * adios_read_dataspaces_open_stream (const char * fname, 
-                                                MPI_Comm comm, 
-                                                enum ADIOS_LOCKMODE lock_mode, 
-                                                float timeout_sec)
+ADIOS_FILE * adios_read_dataspaces_open (const char * fname, 
+                                         MPI_Comm comm, 
+                                         enum ADIOS_LOCKMODE lock_mode, 
+                                         float timeout_sec)
 {
     ADIOS_FILE * fp;
     struct dataspaces_data_struct * ds;
@@ -1249,7 +1249,7 @@ static ADIOS_VARCHUNK * read_var (const ADIOS_FILE *fp, read_request * r)
         ds->chunk = (ADIOS_VARCHUNK *) malloc (sizeof (ADIOS_VARCHUNK));
     if (!ds->chunk) {
         adios_error (err_no_memory, 
-                "Could not allocate buffer for group name in adios_read_open_stream()\n");
+                "Could not allocate buffer for group name in adios_read_open()\n");
         return NULL;
     }
     ds->chunk->varid = r->varid;
diff --git a/src/read/read_datatap.c b/src/read/read_datatap.c
index a4d5c19..f6463c9 100644
--- a/src/read/read_datatap.c
+++ b/src/read/read_datatap.c
@@ -9,16 +9,7 @@
 #include <ffs.h>
 #include <atl.h>
 #include <evpath.h>
-//#include <mpi.h>
-
-#ifdef _NOMPI
-    /* Sequential processes can use the library compiled with -D_NOMPI */
-#   include "mpidummy.h"
-#define MPI_SUM 0
-#else
-    /* Parallel applications should use MPI to communicate file info and slices of data */
-#   include "mpi.h"
-#endif
+#include "public/adios_mpi.h"
 
 #include <pthread.h>
 #include "adios.h"
diff --git a/src/read/read_dimes.c b/src/read/read_dimes.c
index f478f1e..155fcfa 100644
--- a/src/read/read_dimes.c
+++ b/src/read/read_dimes.c
@@ -10,447 +10,1557 @@
 /* Read method for DIMES memory-to-memory coupling */
 /**************************************************/
 
+#include "../config.h"
 #include <stdlib.h>
 #include <string.h>
-//#include <errno.h>  /* ENOMEM */
-#include "adios.h"
-#include "bp_utils.h"
-#include "bp_types.h"
-#include "adios_types.h"
-#include "adios_read.h"
-#include "adios_read_hooks.h"
-#include "adios_error.h"
-#include "futils.h"
-#include "globals.h"
-
-#include "dimes.h"
+#include <errno.h>  /* errno */
+#include "public/adios_types.h"
+#include "public/adios_read.h"
+#include "public/adios_error.h"
+#include "core/globals.h"
+#include "core/util.h"
+#include "core/adios_logger.h"
+//#include "core/bp_types.h"
+#include "core/adios_read_hooks.h"
+#include "core/futils.h"
+#include "core/ds_metadata.h"
+#include "core/common_read.h" // common_read_selection_* functions
+
+#include "dataspaces.h"
 
 #ifdef DMALLOC
 #include "dmalloc.h"
 #endif
 
-#if 1
-#define DBG_PRINTF printf
+#define MYFREE(p) {free(p); p=NULL;}
+
+/*
+#include <time.h> // nanosleep
+static void adios_nanosleep (int sec, int nanosec) 
+{
+#if HAVE_NANOSLEEP
+    struct timespec treq = {.tv_sec=sec, .tv_nsec=nanosec}; 
+    struct timespec trem;
+    int r;
+    r = nanosleep(&treq, &trem);
+    while (r == -1 && errno == EINTR) {
+        treq.tv_sec = trem.tv_sec;
+        treq.tv_nsec = trem.tv_nsec;
+        r = nanosleep (&trem, &treq);
+    }
 #else
-#define DBG_PRINTF(a,...)
+    if (sec>0)
+        sleep(sec);
+    else 
+        sleep(1);
+
 #endif
+}
 
-#define MAX_DIMES_NAMELEN 128
+#include <sys/time.h>
+struct timeval adios_timer_tp;
+static inline double time_get() 
+{ 
+    gettimeofday(&adios_timer_tp, NULL); \
+    return  ((double)adios_timer_tp.tv_sec + ((double)adios_timer_tp.tv_usec)/1000000.0); 
+}
 
-/*#define DIMES_DO_VERSIONING define it at configure as -DDIMES_DO_VERSIONING in CFLAGS*/
-static int number_of_fopens = 0;/* for versioning, works only if one file is fopened (in a loop) in the application */
+#define time_current(timer) { gettimeofday(&adios_timer_tp, NULL); \
+    timer =  ((double)adios_timer_tp.tv_sec + ((double)adios_timer_tp.tv_usec)/1000000.0); }
 
-struct adios_read_DIMES_data_struct{
-	char *fname; //path of file
-	int access_version; //counting the access
-	int disconnect_at_fclose; //disconnect from DIMES in fclose()
-	int mpi_rank; //for debug prints
+#define timer_start(timer) { gettimeofday(&adios_timer_tp, NULL); \
+    timer -= ((double)adios_timer_tp.tv_sec + ((double)adios_timer_tp.tv_usec)/1000000.0); }
+
+#define timer_end(timer) { gettimeofday(&adios_timer_tp, NULL); \
+    timer += ((double)adios_timer_tp.tv_sec + ((double)adios_timer_tp.tv_usec)/1000000.0); }
+*/
+
+#define MAX_DS_NAMELEN 128
+/* Maximum number of different filenames allowed per process during the whole run */
+#define MAXNFILE 10 
+/*#define DATASPACES_NO_VERSIONING   define it at configure as -DDATASPACES_NO_VERSIONING in CFLAGS */
+/* Length of the 1D array representing the file in DataSpaces (contains metadata) */
+#define FILEINFO_BUFLEN 128
+
+static int chunk_buffer_size = 1024*1024*16; // 16MB default size for reading in data in chunking mode
+static char *chunk_buffer = 0;
+
+static int poll_interval_msec = 10; // how much to wait between polls when timeout is used
+
+struct dimes_fileversions_struct { // current opened version of each stream/file
+    char      * filename[MAXNFILE];
+    int         version[MAXNFILE];  /* for versioning of one given filename */
 };
+static struct dimes_fileversions_struct file_versions;
+static int n_filenames; /* number of filenames appeared during the run */
 
-static int dimes_sync_id = 0;
 
-//Declarations
-static int adios_read_dimes_get(const char * varname, enum ADIOS_DATATYPES vartype, 
-                                struct adios_read_DIMES_data_struct * ds, 
-                                int * offset, int * readsize, void * data);	
-								
-/*
-	If init is used, we connect to DIMES index srv here,
-	otherwise we connect in fopen. If multiple fopen/fclose cycles
-	are used, init/finalize must be used too to avoid multiple connect/disconnect in fopen/fclose.
-*/
-int adios_read_dimes_init(MPI_Comm comm)
+struct dimes_var_struct { // describes one variable (of one group)
+    char                 * name;
+    enum ADIOS_DATATYPES   type;
+    int                    hastime; // 0: no, 1:yes (time dimension is not stored in dataspaces)
+    int                    ndims;
+    uint64_t               dims[3]; // we have max 3 dims in DataSpaces
+    void                 * value;
+};
+
+struct dimes_attr_struct { // describes one attribute (of one group)
+    char                 * name;
+    enum ADIOS_DATATYPES   type;
+    void                 * value;
+};
+
+/*struct dataspaces_group_struct { // accessible as fp->fh->groups[grpid]
+    int nvars;                   // number of vars in this group
+    int nattrs;                  // number of attrs in this group
+};*/
+
+struct dimes_data_struct { // accessible as fp->fh
+    int current_step;           // counting the access
+    int disconnect_at_close;    // disconnect from DATASPACES in fclose()
+    MPI_Comm comm;              // communicator saved for lock/unlock operations
+    int mpi_rank;               // rank of this process
+    int nproc;                  // number of processes opening this stream
+    int locked_fname;           // 1: locked 'fname' in DATASPACES, 0: unlocked
+    int freed_mem;              // 1: freed all memory used for internal data
+    int file_index;             // index to file_versions[] array
+    enum ADIOS_LOCKMODE lock_mode; // locking mode requested by user
+    struct dimes_var_struct  * vars;  // number of vars is ADIOS_FILE->nvars
+    struct dimes_attr_struct * attrs; // number of attrs is ADIOS_FILE->nattrs
+    /* Group info */
+    int group_index_len;         // length of group index in GROUP at fn/gn variable 
+    char *group_name;            // name of the group
+    /* Read requests */
+    read_request * req_list;     // list of scheduled requests
+    read_request * req_list_tail; // tail of list of scheduled requests (to speed up insert)
+    int nreq;                    // number of scheduled requests
+    /* single chunk */
+    ADIOS_VARCHUNK *chunk;       // the single chunk to store the last read and serve the user
+};
+
+// Declarations
+static int adios_read_dimes_get_meta(const char * varname, enum ADIOS_DATATYPES vartype, 
+                                int version, int rank, 
+                                int ndims, int is_fortran_ordering, 
+                                int * offset, int * readsize, void * data);
+static int adios_read_dimes_get_data(const char * varname, enum ADIOS_DATATYPES vartype, 
+                                int version, int rank, 
+                                int ndims, int is_fortran_ordering, 
+                                int * offset, int * readsize, void * data);
+
+static char* get_chunk_buffer()
 {
+    if (!chunk_buffer) {
+        chunk_buffer = (char *) malloc (chunk_buffer_size);
+        if (!chunk_buffer) {
+            adios_error (err_no_memory, 
+                    "Could not allocate chunk buffer of size %dMB\n", chunk_buffer_size/1024/1024);
+        }
+    }
+    return chunk_buffer;
+}
+
+
+/* If init is used, we connect to DATASPACES here, otherwise we connect in fopen.
+   If multiple fopen..fclose cycles are used, init/finalize must be used too to
+   avoid multiple connection/disconnection in fopen/fclose.
+*/
+int adios_read_dimes_init_method (MPI_Comm comm, PairStruct * params) 
+{ 
     int  nproc, drank, dpeers;
     int  rank, err;
-    int  appid, was_set;
+    int  appid, max_chunk_size, pollinterval, was_set;
     MPI_Comm_rank(comm, &rank);
     MPI_Comm_size(comm, &nproc);
-	
-    /* Connect to DIMES index srv, but only if we are not yet connected (from Write API) */
-    if(!globals_adios_is_dimes_connected()) {
-	appid = globals_adios_get_application_id(&was_set);
-	if(!was_set)
-		appid = 2;
-	DBG_PRINTF("-- %s, rank %d: connect to dimes with nproc=%d and appid=%d\n",
-		__func__,rank,nproc,appid);
-
-	//int num_total_peers = 64+16+1;
-	err = dimes_init(nproc,nproc,appid);
-	if(err < 0){
-		adios_error (err_connection_failed, "Failed to connect with DIMES index srv\n");
-		return -err_connection_failed;
-	}
-   }
-   globals_adios_set_dimes_connected_from_reader();
-   return 0;
-}
-
-int adios_read_dimes_finalize()
+
+    PairStruct *p = params;
+    while (p) {
+        if (!strcasecmp (p->name, "app_id")) {
+            errno = 0;
+            appid = strtol(p->value, NULL, 10);
+            if (appid > 0 && !errno) {
+                log_debug ("App ID parameter set to %d for DIMES read method\n", 
+                            appid);
+                globals_adios_set_application_id (appid);
+            } else {
+                log_error ("Invalid 'app_id' parameter given to the DIMES read "
+                           "method: '%s'\n", p->value);
+            }
+        } else if (!strcasecmp (p->name, "max_chunk_size")) {
+            errno = 0;
+            max_chunk_size = strtol(p->value, NULL, 10);
+            if (max_chunk_size > 0 && !errno) {
+                log_debug ("max_chunk_size set to %dMB for DIMES read method\n", 
+                            max_chunk_size);
+                chunk_buffer_size = max_chunk_size * 1024 * 1024;
+            } else {
+                log_error ("Invalid 'max_chunk_size' parameter given to the DIMES "
+                            "read method: '%s'\n", p->value);
+            }
+        } else if (!strcasecmp (p->name, "poll_interval")) {
+            errno = 0;
+            pollinterval = strtol(p->value, NULL, 10);
+            if (pollinterval > 0 && !errno) {
+                log_debug ("poll_interval set to %d millisecs for DIMES read method\n", 
+                            pollinterval);
+                poll_interval_msec = pollinterval;
+            } else {
+                log_error ("Invalid 'poll_interval' parameter given to the DIMES "
+                            "read method: '%s'\n", p->value);
+            }
+        } else {
+            log_error ("Parameter name %s is not recognized by the DIMES read "
+                        "method\n", p->name);
+        }
+        p = p->next;
+    }
+
+
+    /* Connect to DATASPACES, but only if we are not yet connected (from Write API) */
+    if (!globals_adios_is_dimes_connected()) {
+        appid = globals_adios_get_application_id (&was_set);
+        if (!was_set) 
+            appid = 2;
+        log_debug("-- %s, rank %d: connect to dataspaces with nproc=%d and appid=%d\n", 
+                    __func__, rank, nproc, appid);
+        err = dspaces_init(nproc, appid);
+        if (err < 0) {
+            adios_error (err_connection_failed, "Failed to connect with DATASPACES\n");
+            return err_connection_failed;
+        }
+
+        //drank = dspaces_rank(dcg);
+        //dpeers = dspaces_peers(dcg);
+    }
+    globals_adios_set_dimes_connected_from_reader();
+    n_filenames = 0;
+    log_info("Connected to DATASPACES\n");
+    return 0; 
+}
+
+int adios_read_dimes_finalize_method () 
+{ 
+    // disconnect from DATASPACES only if we the reader is connected (the writer not anymore)
+    if (globals_adios_is_dimes_connected_from_reader() && 
+        !globals_adios_is_dimes_connected_from_both()) 
+    {
+        dspaces_finalize();
+        log_info("Disconnected from DATASPACES\n");
+    }
+    globals_adios_set_dimes_disconnected_from_reader();
+    if (chunk_buffer) {
+        free (chunk_buffer); 
+        chunk_buffer = NULL;
+    }
+}
+
+static int dimes_unpack_file_info (ADIOS_FILE *fp, char * buf, int buf_len)
 {
-	//disconnect from DIMES index srv only if the reader is connected(the writer not anymore)
-	if(globals_adios_is_dimes_connected_from_reader() &&
-		!globals_adios_is_dimes_connected_from_both() )
-	{
-		dimes_barrier();
-		dimes_finalize();
-		DBG_PRINTF("-- %s: disconnected from dimes index srv\n",__func__);
-	}
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    char * b = buf;
+    int blen, glen, i;
 
-	globals_adios_set_dimes_disconnected_from_reader();
-	return 0;
+    if (!buf || buf_len < 21)
+        return 1;
+
+    blen = *(int*)b;  // buf len again from buffer itself
+    if (blen != buf_len) {
+        log_debug("WARNING: %s(): expected file info  buffer length is %d but buffer head says %d\n", 
+                    __func__, buf_len, blen);
+    }
+    b += sizeof(int); // skip buf len
+    fp->current_step = *(int*)b; // time index
+    fp->last_step = fp->current_step;
+    b += sizeof(int);
+    fp->nvars = *(int*)b; // number of variables
+    b += sizeof(int);
+    fp->nattrs = *(int*)b; // number of attributes
+    b += sizeof(int);
+    ds->group_index_len = *(int*)b; // length of group index
+    b += sizeof(int);
+    glen = *(int*)b; // length of (only) group name
+    b += sizeof(int);
+
+    fp->file_size = 0;
+    fp->version = 1;
+    fp->endianness = 0; // FIXME: not always Little Endian. Does it matter? 
+    ds->group_name = (char *) malloc (strlen(b)+1);
+    if (!ds->group_name) {
+        adios_error (err_no_memory, 
+                "Could not allocate buffer for group name in adios_read_open()\n");
+        free(fp);
+        return 1;
+    }
+    else  {
+        strcpy(ds->group_name,b);
+    }
+
+    return 0;
 }
 
-ADIOS_FILE *adios_read_dimes_fopen(const char *fname, MPI_Comm comm)
+
+static int dimes_unpack_group_info (ADIOS_FILE *fp, char * buf)
+        
 {
-	ADIOS_FILE * fp;
-	struct adios_read_DIMES_data_struct *ds;
-	int i;
-		
-	adios_errno = 0;
-	
-	ds = (struct adios_read_DIMES_data_struct *)malloc(sizeof(struct adios_read_DIMES_data_struct));
-	if(!ds){
-		adios_error (err_no_memory, "Cannot allocate memory for file info.");
-		return NULL;
-	}
-	
-	/*fill out dimes method specific struct*/
-	ds->fname = strdup(fname);
-#ifdef DIMES_DO_VERSIONING
-	ds->access_version = number_of_fopens;
-#else
-	ds->access_version = 0;
-#endif
+    char * b = buf;
+    int i, j, k, blen, namelen, extrabyte;
+    int datasize;
+    struct dimes_var_struct * vars;
+    struct dimes_attr_struct * attrs;
+    uint64_t dims[3]; // all variables has 3 dimension values in the index 
+    int didx[3]; // dimension reordering 
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    int buf_len = ds->group_index_len;
+    
+
+    if (!buf || buf_len < 12)
+        return 1;
 
-	MPI_Comm_rank(comm, &ds->mpi_rank);
-	
-	/*if not connected to DIMES index srv, connect now*/
-	if(!globals_adios_is_dimes_connected_from_reader()){
-		if(!adios_read_dimes_init(comm))
-			return NULL;
-		ds->disconnect_at_fclose = 1;
-	} else {
-		ds->disconnect_at_fclose = 0;
-	}
-	
-	/*Try to get variable with fname. If it does not exists, we get an error, which means data
-	does not exist. So we return an error just like with real files*/
-	int offset[] = {0,0,0}, readsize[3] = {1,1,1};
-    	int time_index;
-    	int err;
-    	enum ADIOS_DATATYPES time_index_type = adios_integer;
-    	char dimes_fname[MAX_DIMES_NAMELEN];
-    	snprintf(dimes_fname, MAX_DIMES_NAMELEN, "FILE@%s",fname);
-   	DBG_PRINTF("-- %s, rank %d: Get variable %s\n", __func__, ds->mpi_rank, dimes_fname);
-	
-    	err = adios_read_dimes_get(dimes_fname, time_index_type, ds, offset, readsize, &time_index);
-    	if (err) {
-        	adios_error (err_file_not_found_error, "Data of '%s' does not exist in DIMES\n", dimes_fname);
-        	free(ds);
-        	return NULL;
+    
+    log_debug("   %s: buffer length = %d, content:\n", __func__, buf_len);
+    for (i=0; i<buf_len; i+=16) {
+        for (j=0; j<4; j++) {
+            log_debug_cont("%3.3hhu %3.3hhu %3.3hhu %3.3hhu    ", 
+                    b[i+4*j], b[i+4*j+1], b[i+4*j+2], b[i+4*j+3]);
+        }
+        log_debug_cont("\n");
+    }
+    
+
+    blen = *(int*)b;  // buf len again from buffer itself
+    if (blen != buf_len) {
+        log_debug("WARNING: %s(): expected group info buffer length is %d but buffer head says %d\n", 
+                    __func__, buf_len, blen);
+    }
+    b += sizeof(int); 
+    int vars_count = *(int*)b; // number of variables (should be = fp->nvars)
+    b += sizeof(int);
+    if (vars_count != fp->nvars) {
+        log_debug("WARNING: %s(): expected number of variables in group %s is %d "
+                  "but group metadata says %d\n", 
+                  __func__, ds->group_name, fp->nvars, vars_count);
+    }
+    int attrs_count = *(int*)b; // number of attributes (= fp->nattrs)
+    b += sizeof(int);
+    if (attrs_count != fp->nattrs) {
+        log_debug("WARNING: %s(): expected number of attributes in group %s is %d "
+                  "but group metadata says %d\n", 
+                  __func__, ds->group_name, fp->nattrs, attrs_count);
+    }
+
+    log_debug("   %s(): vars count = %d, attrs count = %d\n", __func__, vars_count, attrs_count);
+    fp->var_namelist = (char **) calloc (sizeof(char*), vars_count);
+    fp->attr_namelist = (char **) calloc (sizeof(char*),  attrs_count);
+    if (!fp->var_namelist || !fp->attr_namelist) {
+        adios_error (err_no_memory, "Could not allocate space for variable/attribute names when opening a group\n");
+        if (fp->var_namelist) free(fp->var_namelist);
+        return 1;
+    }
+
+    vars = (struct dimes_var_struct *) 
+              malloc (vars_count * sizeof(struct dimes_var_struct));
+    attrs = (struct dimes_attr_struct *) 
+              malloc (attrs_count * sizeof(struct dimes_attr_struct));
+
+    if (!vars || !attrs) {
+        adios_error (err_no_memory, "Could not allocate space for variable/attribute metadata\n");
+        free(fp->var_namelist);
+        free(fp->attr_namelist);
+        if (vars) free(vars);
+        return 1;
+    }
+
+    ds->vars = vars;
+    ds->attrs = attrs;
+
+    // extract each variable
+    log_debug("    Extract variables\n");
+    for (i=0;i<vars_count;i++) {
+        log_debug("      var %d, b = %d\n", i, b);
+        namelen = *(int*)b; // lenght of name
+        b += sizeof(int);
+        log_debug("        namelen = %d, b = %d\n", namelen, b);
+        fp->var_namelist[i] = (char *) malloc (namelen+1);
+        if (!fp->var_namelist[i]) {
+            adios_error (err_no_memory, "Could not allocate space for variable name when opening a group\n"); 
+            if (i>0) free_namelist ((fp->var_namelist),i);
+            return 1;
+        }
+        else  {
+            memcpy(fp->var_namelist[i], b, namelen);
+            fp->var_namelist[i][namelen] = '\0';
+        }
+        b += namelen;
+        vars[i].name = strdup(fp->var_namelist[i]);  
+        log_debug("        name = %s, b = %d\n", vars[i].name, b);
+        // type
+        vars[i].type = *(enum ADIOS_DATATYPES*)b; 
+        b += sizeof(int);
+        log_debug("        type = %d, b = %d\n", (int)vars[i].type, b);
+        // hastime
+        vars[i].hastime = *(int*)b; 
+        b += sizeof(int);
+        log_debug("        hastime = %d, b = %d\n", vars[i].hastime, b);
+        // dimensions
+        vars[i].ndims = *(int*)b; 
+        b += sizeof(int);
+        log_debug("        ndims w/o time = %d, b = %d\n", vars[i].ndims, b);
+        for (j=0; j < 3; j++) {
+            dims[j] = *(uint64_t*)b; 
+            b += 8;
+            log_debug("          unordered dim[%d] = %lld, b = %d\n", j, dims[j], b);
+        }
+        // reorder DS dimensions to Fortran/C dimensions
+        dimes_dimension_ordering (vars[i].ndims, futils_is_called_from_fortran(), 
+                               1 /*unpack*/, didx);
+        for (j=0; j < vars[i].ndims; j++) {
+            vars[i].dims[j] = dims[didx[j]];
+            log_debug("          dim[%d] = %lld, b = %d\n", j, vars[i].dims[j], b);
+        }
+
+        if (vars[i].ndims == 0 && !vars[i].hastime) {
+            // need to get scalar value too
+            if (vars[i].type != adios_string) {
+                datasize = common_read_type_size(vars[i].type, NULL);
+                extrabyte=0;
+            } else {
+                memcpy (&datasize, b, sizeof(int));
+                b += sizeof(int);
+                extrabyte=1;
+            }
+            vars[i].value = (void *) malloc (datasize+extrabyte);
+            if (vars[i].value) {
+                memcpy (vars[i].value, b, datasize);
+                if (vars[i].type == adios_string) 
+                    ((char *)vars[i].value)[datasize] = '\0';
+            } else {
+                log_error("Cannot allocate %d bytes to store the value of variable %s\n",
+                        datasize, vars[i].name);
+                return 1;
+            }
+            
+            b += datasize;
+            log_debug("        value read, b = %d\n", b);
         } else {
-        	DBG_PRINTF("-- %s, rank %d: data of '%s' exists, time index = %d\n", __func__, ds->mpi_rank, dimes_fname, time_index);
-    	}
-
-    	fp = (ADIOS_FILE *) malloc (sizeof (ADIOS_FILE));
-    	if (!fp) {
-        	adios_error (err_no_memory, "Cannot allocate memory for file info.");
-        	return NULL;
-    	}
-
-    	/* fill out ADIOS_FILE struct */
-    	fp->fh = (uint64_t) ds;
-    	fp->groups_count = 1;
-    	fp->vars_count = 0;
-    	fp->attrs_count = 0;
-    	fp->tidx_start = 0;
-    	fp->ntimesteps = 1;
-    	fp->file_size = 0;
-    	fp->version = 1;
-    	fp->endianness = 0; /* FIXME: not always Little Endian. Does it matter? */
-    	alloc_namelist (&fp->group_namelist,fp->groups_count); 
-    	for (i=0;i<fp->groups_count;i++) {
-        	if (!fp->group_namelist[i]) {
-            		adios_error (err_no_memory, "Could not allocate buffer for %d strings in adios_fopen()", fp->groups_count);
-            		adios_read_dimes_fclose(fp);
-            		return NULL;
-        	}
-        	else  {
-            		strcpy(fp->group_namelist[i],"dimes");
-        	}
-    	}
-    	DBG_PRINTF("-- %s, rank %d: done fp=%x, fp->fh=%x\n", __func__, ds->mpi_rank, fp, fp->fh);
-#ifdef DIMES_DO_VERSIONING
-    	number_of_fopens++;
-#endif
-    	return fp;	
+            vars[i].value = NULL;
+        }
+    }
+
+    // extract each attribute
+    for (i=0;i<attrs_count;i++) {
+        namelen = *(int*)b; // lenght of name
+        b += sizeof(int);
+        fp->attr_namelist[i] = (char *) malloc (namelen+1);
+        if (!fp->attr_namelist[i]) {
+            adios_error (err_no_memory, "Could not allocate space for attribute name when opening a group\n"); 
+            if (i>0) free_namelist ((fp->attr_namelist),i);
+            return 1;
+        }
+        else  {
+            memcpy(fp->attr_namelist[i], b, namelen);
+            fp->attr_namelist[i][namelen] = '\0';
+        }
+        b += namelen;
+        attrs[i].name = strdup(fp->attr_namelist[i]);  
+        // type
+        attrs[i].type = *(enum ADIOS_DATATYPES*)b; 
+        b += sizeof(int);
+        // get attribute value 
+        if (attrs[i].type != adios_string) {
+            datasize = common_read_type_size(attrs[i].type, NULL);
+            extrabyte=0;
+        } else {
+            memcpy (&datasize, b, sizeof(int));
+            b += sizeof(int);
+            extrabyte=1;
+        }
+        
+        attrs[i].value = (void *) malloc (datasize+extrabyte);
+        if (attrs[i].value) {
+            memcpy (attrs[i].value, b, datasize);
+            if (attrs[i].type == adios_string) 
+                ((char*)attrs[i].value)[datasize] = '\0';
+            log_debug("        value read, b = %d\n", b);
+        } else {
+            log_error("Cannot allocate %d bytes to store the value of attribute %s\n",
+                    datasize, attrs[i].name);
+            return 1;
+        }
+        
+        b += datasize;
+    }
+    return 0;
 }
 
-int adios_read_dimes_fclose(ADIOS_FILE *fp)
+static int get_groupdata (ADIOS_FILE *fp)
 {
-	struct adios_read_DIMES_data_struct *ds =(struct adios_read_DIMES_data_struct *)fp->fh;
-	int i,j;
-	
-	adios_errno = 0;
-	
-	DBG_PRINTF("-- %s, rank %d: fp=%x\n", __func__, ds->mpi_rank, fp);
-
-	unsigned int version;	
-#ifdef DIMES_DO_VERSIONING
-	version = number_of_fopens;
-	dimes_sync_id = version;
-#else
-	version = 0;
-	dimes_sync_id++;
-#endif
-	dimes_sync(dimes_sync_id);
-	//dimes_notify(1);	
-
-	/*Disconnect from DIMES index srv if we connected in fopen()*/
-	if(ds && ds->disconnect_at_fclose){
-		adios_read_dimes_finalize();
-	}
-	
-    	free_namelist ((fp->group_namelist),fp->groups_count);
-   	if (ds->fname) { free(ds->fname); ds->fname = 0; }
-   	free(ds);
-    	free(fp);
-    	return 0;
-}
-
-/* This function can be called if user places 
-   the wrong sequences of dims for a var 
-*/
-void adios_read_dimes_reset_dimension_order (ADIOS_FILE *fp, int is_fortran)
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+
+    /* Try to get group metadata from DataSpaces. If it does not exists, we get an error, which means
+       the data does not exist. */
+    int offset[] = {0,0,0}, readsize[3] = {ds->group_index_len,1,1};
+    char * group_info_buf = malloc (ds->group_index_len);
+    if (!group_info_buf) {
+            adios_error (err_no_memory, 
+                    "%s: Could not allocate buffer for group info buffer of %d bytes\n", 
+                    __func__, ds->group_index_len);
+        return 1;
+    }
+    int err;
+    char ds_name[MAX_DS_NAMELEN];
+    snprintf (ds_name, MAX_DS_NAMELEN, "GROUP@%s/%s",fp->path, ds->group_name);
+    log_debug("-- %s, rank %d: Get variable %s with size %d\n", __func__, 
+              ds->mpi_rank, ds_name, readsize[0]);
+    err = adios_read_dimes_get_meta(ds_name, adios_byte, ds->current_step, ds->mpi_rank, 
+                                     1, 0, offset, readsize, group_info_buf);
+    if (err) {
+        adios_error (err_invalid_group, "Invalid group name %s for file %s. "
+                     "Entity %s could not be retrieved from DataSpaces\n",
+                     ds->group_name, fp->path, ds_name);
+        return 1;
+    } else {
+        log_debug("-- %s, rank %d: data of '%s' exists\n", __func__, ds->mpi_rank, ds_name);
+    }
+
+
+    err = dimes_unpack_group_info (fp, group_info_buf);
+    if (err) {
+        log_debug("-- %s, rank %d: unpacking group index failed\n", __func__, ds->mpi_rank);
+        return 1;
+    }
+
+    free (group_info_buf);
+    return 0;
+}
+
+static void lock_file (ADIOS_FILE *fp, struct dimes_data_struct *ds)
 {
-    /* unimplemented */
+    if (!ds->locked_fname) {
+        log_debug("   rank %d: call dspaces_lock_on_read(%s)\n", ds->mpi_rank, fp->path);
+        dspaces_lock_on_read(fp->path, &ds->comm);
+        ds->locked_fname = 1;
+    //} else {
+    //    log_error("   rank %d: lock_file called with the lock already in place\n", ds->mpi_rank);
+    }
 }
 
-ADIOS_GROUP * adios_read_dimes_gopen (ADIOS_FILE *fp, const char * grpname)
+static void unlock_file (ADIOS_FILE *fp, struct dimes_data_struct *ds)
 {
-    /* DIMES has no groups, so any grpname is accepted and the same empty stuff is returned */
-    return adios_read_dimes_gopen_byid(fp, 0);
+    if (ds->locked_fname) {
+        log_debug("   rank %d: call dspaces_unlock_on_read(%s)\n", ds->mpi_rank, fp->path);
+        dspaces_unlock_on_read(fp->path, &ds->comm);
+        ds->locked_fname = 0;
+    //} else {
+    //    log_error("   rank %d: unlock_file called with the lock already released\n", ds->mpi_rank);
+    }
 }
 
-ADIOS_GROUP * adios_read_dimes_gopen_byid (ADIOS_FILE *fp, int grpid)
+
+enum WHICH_VERSION {NEXT_VERSION, NEXT_AVAILABLE_VERSION, LAST_VERSION};
+static const char * which_version_str[3] = {"current", "next available", "last"};
+enum STEP_STATUS {STEP_OK, STEP_STREAMNOTFOUND, STEP_STEPNOTREADY, STEP_STEPDISAPPEARED, STEP_STREAMTERMINATED, STEP_OTHERERROR};
+
+static int get_step (ADIOS_FILE *fp, int step, enum WHICH_VERSION which_version, float timeout_sec)
 {
-    struct adios_read_DIMES_data_struct * ds = (struct adios_read_DIMES_data_struct *) fp->fh;
-    ADIOS_GROUP * gp;
+    /* Try to get variable with fname. If it does not exists, we get an error, which means
+       the data does not exist. So we return an error just like with real files */
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    int offset[] = {0,0,0}, readsize[3] = {1,1,1};
+    char file_info_buf[FILEINFO_BUFLEN];
+    int version_info_buf[2]; // 0: last version, 1: terminated?
+    int err, i;
+    char ds_vname[MAX_DS_NAMELEN];
+    char ds_fname[MAX_DS_NAMELEN];
+    double t1 = adios_gettime();
+    enum STEP_STATUS step_status = STEP_OK;
+
+    snprintf(ds_vname, MAX_DS_NAMELEN, "VERSION@%s",fp->path);
+    snprintf(ds_fname, MAX_DS_NAMELEN, "FILE@%s",fp->path);
+    //log_debug("-- %s, rank %d: Get variable %s\n", __func__, ds->mpi_rank, ds_fname);
+    ds->freed_mem = 0;
+
+    /* While loop for handling timeout
+       timeout >= 0: wait up to this long to open the stream
+       timeout <  0: wait forever
+    */
+    int stay_in_poll_loop = 1;
+    int found_stream = 0;
+    int nversions, *versions;
+    while (stay_in_poll_loop) {
+        lock_file (fp, ds);
+        step_status = STEP_OK;
+
+        log_debug("   rank %d: dspaces_get %s\n", ds->mpi_rank, ds_vname);
+        readsize[0] = 2; //*sizeof(int); // VERSION%name is 2 integers only
+        err = adios_read_dimes_get_meta(ds_vname, adios_integer, 0, ds->mpi_rank, 1, 0, 
+                                         offset, readsize, version_info_buf);
+
+        if (!err) {
+            int last_version = version_info_buf[0];
+            int terminated = version_info_buf[1];
+            log_debug("   rank %d: version info: last=%d, terminated=%d\n", 
+                      ds->mpi_rank, last_version, terminated);
+
+            if (last_version < step) {
+                // we have no more new steps
+                if (terminated) {
+                    // stream is gone, we read everything 
+                    step_status = STEP_STREAMTERMINATED;
+                    stay_in_poll_loop = 0;
+                } else {
+                    // a next step may come 
+                    step_status = STEP_STEPNOTREADY;
+                    // we may stay in poll loop
+                }
+            } else {
+                // Try to get the version the user wants
+                if (which_version == LAST_VERSION)
+                    step = last_version;
+                readsize[0] = FILEINFO_BUFLEN; // FILE%name is FILEINFO_BUFLEN bytes long
+
+                int max_check_version = last_version;
+                if (which_version == NEXT_VERSION) 
+                    max_check_version = step;
+
+                // Loop until we find what we need or go past the last version
+                do {
+                    log_debug("   rank %d: dspaces_get %s\n", ds->mpi_rank, ds_fname);
+                    err = adios_read_dimes_get_meta(ds_fname, adios_byte, step, ds->mpi_rank, 
+                                                     1, 0, offset, readsize, file_info_buf);
+                    step++; // value will go over the target with 1
+                } while (err && step <= max_check_version);
+
+                if (!err) {
+                    /* Found object with this access version */
+                    step--; // undo the last increment above
+                    ds->current_step = step;
+                    stay_in_poll_loop = 0;
+                    log_debug("   rank %d: step %d of '%s' exists\n", 
+                            ds->mpi_rank, ds->current_step, ds_fname);
+
+                    err = dimes_unpack_file_info (fp, file_info_buf, FILEINFO_BUFLEN);
+                    if (!err) {
+                        found_stream = 1;
+                        fp->current_step = ds->current_step;
+                        fp->last_step = last_version;
+
+                        /* Get the variables and attributes the (only) group separately */
+                        err = get_groupdata (fp);
+                        if (err) {
+                            // something went wrong with the group(s)
+                            step_status = STEP_OTHERERROR;
+                        }
+                    } else {
+                        // something went wrong with the file metadata
+                        step_status = STEP_OTHERERROR;
+                    }
+
+                } else {
+                    if (which_version == NEXT_VERSION) 
+                    {
+                        if (step < last_version) {
+                            step_status = STEP_STEPDISAPPEARED;
+                            stay_in_poll_loop = 0;
+                        } else {
+                            step_status = STEP_STEPNOTREADY;
+                            // we may stay in poll loop
+                        }
+                    } 
+                    else if (which_version == LAST_VERSION || 
+                             which_version == NEXT_AVAILABLE_VERSION) 
+                    {
+                        step_status = STEP_OTHERERROR;
+                        stay_in_poll_loop = 0;
+                        log_warn ("DIMES method: Unexpected state: found last version %d"
+                                "of dataset but then could not read it.\n", step);
+                    }
+                }
+            }
+
+        } else {
+            // This stream does not exist yet
+            log_info ("Data of '%s' does not exist (yet) in DIMES\n", fp->path);
+            step_status = STEP_STREAMNOTFOUND;
+        }
+
+        if (step_status != STEP_OK)
+            unlock_file (fp, ds);
+        
+
+        // check if we need to stay in loop 
+        if (stay_in_poll_loop) {
+            if (timeout_sec >= 0.0 && (adios_gettime()-t1 > timeout_sec))
+                stay_in_poll_loop = 0;
+            else
+                adios_nanosleep (poll_interval_msec/1000, 
+                     (int)(((uint64_t)poll_interval_msec * 1000000L)%1000000000L)); 
+        }
+
+    } // while (stay_in_poll_loop)
 
-    /* DIMES has no groups, so any grpid is accepted and the same empty stuff is returned */
+    // generate the appropriate error if needed
+    switch (step_status) {
+    case STEP_STREAMNOTFOUND:
+            adios_error (err_file_not_found, 
+                    "Data of '%s' does not exist in DIMES\n", fp->path);
+            break;
+    case STEP_STREAMTERMINATED:
+            adios_error (err_end_of_stream, 
+                    "Stream '%s' has been terminated. No more steps available\n", fp->path);
+            break;
+    case STEP_STEPNOTREADY:
+            adios_error (err_step_notready, 
+                    "Step %d in stream '%s' is not yet available\n", step, fp->path);
+            break;
+    case STEP_STEPDISAPPEARED:
+            adios_error (err_step_disappeared, 
+                    "Step %d in stream '%s' is not available anymore\n", step, fp->path);
+            break;
+    default:
+            adios_errno = err_no_error; // clear temporary error during polling
+            break;
 
-    adios_errno = 0;
-    gp = (ADIOS_GROUP *) malloc(sizeof(ADIOS_GROUP));
-    if (!gp) {
-        adios_error (err_no_memory, "Could not allocate memory for group info");
+    }
+
+    return (step_status != STEP_OK); // 0 on success
+}
+
+
+ADIOS_FILE * adios_read_dimes_open_file (const char * fname, MPI_Comm comm)
+{
+    adios_error (err_operation_not_supported, 
+                 "DIMES staging method does not support file mode for reading. "
+                 "Use adios_read_open() to open a dataset.\n");
+    return NULL;
+}
+
+
+ADIOS_FILE * adios_read_dimes_open (const char * fname, 
+                                    MPI_Comm comm, 
+                                    enum ADIOS_LOCKMODE lock_mode, 
+                                    float timeout_sec)
+{
+    ADIOS_FILE * fp;
+    struct dimes_data_struct * ds;
+    int i;    
+
+    ds = (struct dimes_data_struct *) malloc (sizeof(struct dimes_data_struct));
+    if (!ds) {
+        adios_error (err_no_memory, "Cannot allocate memory for file info.\n");
         return NULL;
     }
 
-    /* fill out ADIOS_GROUP struct */
-    gp->grpid = grpid;
-    gp->gh = (uint64_t) 0;
-    gp->fp = fp;
-    gp->vars_count = 0;
-    gp->attrs_count = 0;
-    gp->var_namelist = 0;
-    gp->attr_namelist = 0;
-    
-    return gp;
+    fp = (ADIOS_FILE *) malloc (sizeof (ADIOS_FILE));
+    if (!fp) {
+        adios_error (err_no_memory, "Cannot allocate memory for file info.\n");
+        free(ds);
+        return NULL;
+    }
+
+    fp->fh = (uint64_t) ds;
+    fp->path = strdup(fname);
+    ds->comm = comm;
+    MPI_Comm_rank(comm, &ds->mpi_rank);
+    MPI_Comm_size(comm, &ds->nproc);
+    ds->current_step = -1;
+    ds->lock_mode = lock_mode;
+    ds->locked_fname = 0;
+    ds->req_list = NULL;
+    ds->req_list_tail = NULL;
+    ds->nreq = 0;
+    ds->chunk = NULL;
+
+    /* if not connected to DATASPACES, connect now (and disconnect in adios_read_close) */
+    if (!globals_adios_is_dimes_connected_from_reader()) {
+        log_debug("-- %s, rank %d: call init first\n", __func__, ds->mpi_rank);
+        if (!adios_read_dimes_init_method(comm, NULL)) {
+            free(ds);
+            free(fp->path);
+            free(fp);
+            return NULL;
+        }
+        ds->disconnect_at_close = 1;
+    } else {
+        ds->disconnect_at_close = 0;
+    }
+
+    /* fill out dataspaces method specific struct */
+#ifndef DATASPACES_NO_VERSIONING
+   // check this filename's version number
+    int fidx;
+    for (fidx=0; fidx<n_filenames; fidx++) {
+        if (!strcmp(fname, file_versions.filename[fidx]))
+            break;
+    }
+    if (fidx == n_filenames) {
+        if (n_filenames < MAXNFILE) {
+            file_versions.filename[ n_filenames ] = strdup(fname);
+            file_versions.version [ n_filenames ] = 0;
+            n_filenames++;
+        } else {
+            adios_error (err_too_many_files, "Too many different filenames has been used for adios_fopen().\n\tDIMES method allows max %d files\n", MAXNFILE);
+            if (ds->disconnect_at_close) 
+                adios_read_dimes_finalize_method();
+            free(ds);
+            free(fp->path);
+            free(fp);
+            return NULL;
+        }
+    }
+    ds->file_index = fidx;
+#endif
+    log_debug("open stream filename=%s fidx=%d\n", fname, fidx);
+
+    int err = get_step (fp, 0, NEXT_AVAILABLE_VERSION, timeout_sec);
+    if (err) {
+        free(ds);
+        free(fp);
+        fp = NULL;
+    } else {
+        log_debug("opened version %d of filename=%s\n", ds->current_step, fname);
+    }
+
+    return fp;
+}
+
+static void free_step_data (ADIOS_FILE *fp) 
+{
+    struct dimes_data_struct * ds = 
+                (struct dimes_data_struct *) fp->fh;
+    struct dimes_var_struct * vars = 
+                (struct dimes_var_struct *) ds->vars;
+    struct dimes_attr_struct * attrs = 
+                (struct dimes_attr_struct *) ds->attrs;
+
+    int i;
+
+    if (fp->nvars) {
+        for (i=0; i<fp->nvars; i++) {
+            free (vars[i].name);
+            free (vars[i].value);
+        }
+        MYFREE(ds->vars);
+        free_namelist ((fp->var_namelist),fp->nvars);
+        fp->nvars = 0;
+    }
+    if (fp->nattrs) {
+        for (i=0; i<fp->nattrs; i++) {
+            free (attrs[i].name);
+            free (attrs[i].value);
+        }
+        MYFREE (ds->attrs);
+        free_namelist ((fp->attr_namelist),fp->nattrs);
+        fp->nattrs = 0;
+    }
+    MYFREE (ds->group_name);
 }
 
-int adios_read_dimes_gclose (ADIOS_GROUP *gp)
+
+int adios_read_dimes_close (ADIOS_FILE *fp) 
 {
-    struct adios_read_DIMES_data_struct * ds = (struct adios_read_DIMES_data_struct *) gp->fp->fh;
+    struct dimes_data_struct * ds = 
+                (struct dimes_data_struct *) fp->fh;
+
+    log_debug("-- %s, rank %d: fp=%x\n", __func__, ds->mpi_rank, fp);
+
+    /* Release read lock locked in fopen */
+    unlock_file (fp, ds);
 
-    adios_errno = 0;
+    /* Disconnect from DATASPACES if we connected at open() */
+    if (ds && ds->disconnect_at_close) {
+        adios_read_dimes_finalize_method();
+    }
+
+    free_step_data (fp);
 
-    free_namelist ((gp->var_namelist),gp->vars_count);
-    free_namelist ((gp->attr_namelist),gp->attrs_count);
-    free(gp);
+    if (ds->chunk) MYFREE(ds->chunk);
+    free (ds);
+    if (fp->path) MYFREE(fp->path);
+    free (fp);
     return 0;
 }
 
-int adios_read_dimes_get_attr (ADIOS_GROUP * gp, const char * attrname, enum ADIOS_DATATYPES * type,
-                    int * size, void ** data)
+int adios_read_dimes_peek_ahead (ADIOS_FILE *fp)
 {
-    /* DIMES does not support attributes */
-    adios_error (err_invalid_attrname, "DIMES read method does not support attributes!");
-    *size = 0;
-    *type = adios_unknown;
-    *data = 0;
+    struct dimes_data_struct * ds = 
+                (struct dimes_data_struct *) fp->fh;
+
+    log_debug("peek ahead from version %d of filename=%s, last available step %d\n", 
+              ds->current_step, fp->path, fp->last_step);
+
+    int offset[] = {0,0,0}, readsize[3] = {1,1,1};
+    int version_info_buf[2]; // 0: last version, 1: terminated?
+    int err;
+    char ds_vname[MAX_DS_NAMELEN];
+    enum STEP_STATUS step_status = STEP_OK;
+    snprintf(ds_vname, MAX_DS_NAMELEN, "VERSION@%s",fp->path);
+
+    log_debug("   rank %d: dspaces_get %s\n", ds->mpi_rank, ds_vname);
+    readsize[0] = 2; //*sizeof(int); // VERSION%name is 2 integers only
+    err = adios_read_dimes_get_meta(ds_vname, adios_integer, 0, ds->mpi_rank, 1, 0, 
+            offset, readsize, version_info_buf);
+
+    if (!err) {
+        int last_version = version_info_buf[0];
+        int terminated = version_info_buf[1];
+        log_debug("   rank %d: version info: last=%d, terminated=%d\n", 
+                ds->mpi_rank, last_version, terminated);
+
+        fp->last_step = last_version; // update to new last_step
+        if (last_version <= fp->current_step) {
+            // we have no more new steps
+            if (terminated) {
+                // stream is gone, we read everything 
+                adios_error (err_end_of_stream, 
+                        "Stream '%s' has been terminated. No more steps available\n", fp->path);
+            } else {
+                // a next step may come 
+                adios_error (err_step_notready, 
+                        "No new step in stream '%s' is not yet available\n", fp->path);
+            }
+        }
+    }
+
     return adios_errno;
 }
 
-int adios_read_dimes_get_attr_byid (ADIOS_GROUP * gp, int attrid, 
-                    enum ADIOS_DATATYPES * type, int * size, void ** data)
+int adios_read_dimes_advance_step (ADIOS_FILE *fp, int last, float timeout_sec)
 {
-    /* DIMES does not support attributes */
-    adios_error (err_invalid_attrid, "DIMES read method does not support attributes!");
-    *size = 0;
-    *type = adios_unknown;
-    *data = 0;
+    struct dimes_data_struct * ds = 
+                (struct dimes_data_struct *) fp->fh;
+
+    enum WHICH_VERSION which_version;
+
+#ifdef DATASPACES_NO_VERSIONING
+    ds->current_step = -1;    /* Data in DataSpaces is always overwritten (read same version) */
+    which_version = NEXT_VERSION;
+#else
+    if (last)
+        which_version = LAST_VERSION; 
+    else if (ds->lock_mode == ADIOS_LOCKMODE_ALL)
+        which_version = NEXT_VERSION; 
+    else
+        which_version = NEXT_AVAILABLE_VERSION; 
+    log_debug("advance from version %d of filename=%s which_version=%s\n", 
+              ds->current_step, fp->path,
+              which_version_str[which_version]);
+#endif
+
+    if (ds->locked_fname) {
+        /* Release previous step (app did not call release_step() */
+        adios_read_dimes_release_step (fp);
+    }
+
+    int err = get_step (fp, ds->current_step+1, which_version, timeout_sec); // content of fp and ds changes!
+
+    if (!err) {
+        file_versions.version [ ds->file_index ] = ds->current_step; // why do we store this?
+        log_debug("advanced to version %d of filename=%s\n", ds->current_step, fp->path);
+    } else {
+        if (!adios_errno) {
+            adios_error (err_unspecified, "Unspecified error during adios_advance_step()\n");
+        }
+    }
+
     return adios_errno;
 }
 
 
-ADIOS_VARINFO * adios_read_dimes_inq_var (ADIOS_GROUP *gp, const char * varname) 
+void adios_read_dimes_release_step (ADIOS_FILE *fp)
 {
-    /* DIMES has no inquiry capability, report somthing dummy */
-    return adios_read_dimes_inq_var_byid(gp, 0);
+    struct dimes_data_struct * ds = 
+                (struct dimes_data_struct *) fp->fh;
+    struct dimes_var_struct * vars = 
+                (struct dimes_var_struct *) ds->vars;
+    struct dimes_attr_struct * attrs = 
+                (struct dimes_attr_struct *) ds->attrs;
+
+    /* Release read lock locked in fopen */
+    unlock_file (fp, ds);
+
+    free_step_data (fp);
 }
 
-ADIOS_VARINFO * adios_read_dimes_inq_var_byid (ADIOS_GROUP *gp, int varid)
+
+ADIOS_VARINFO * adios_read_dimes_inq_var_byid (const ADIOS_FILE *fp, int varid)
 {
-    struct adios_read_DIMES_data_struct * ds = (struct adios_read_DIMES_data_struct *) gp->fp->fh;
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    struct dimes_var_struct * vars = ds->vars;
     ADIOS_VARINFO * vi;
-    int i,k;
 
-    adios_errno = 0;
+    if (varid < 0 || varid > fp->nvars) {
+        adios_error (err_invalid_varid, "Stream %s has %d variables. Invalid variable id %d\n",
+                    fp->path, fp->nvars, varid);
+        return NULL;
+    }
+
     vi = (ADIOS_VARINFO *) malloc(sizeof(ADIOS_VARINFO));
     if (!vi) {
-        adios_error (err_no_memory, "Could not allocate memory for variable info.");
+        adios_error (err_no_memory, "Could not allocate memory for variable info.\n");
         return NULL;
     }
 
-    /* DIMES has no inquiry capability, report somthing dummy */
     vi->varid = varid;
-    vi->type = adios_unknown;
-    vi->ndim = 0;
-    vi->dims = NULL;
-    vi->timedim = -1;
-    vi->value = NULL;
-    vi->gmin = NULL;
-    vi->gmax = NULL;
-    vi->mins = NULL;
-    vi->maxs = NULL;
+    vi->type = vars[varid].type;
+    vi->ndim = vars[varid].ndims;
+    vi->dims = vars[varid].dims;
+    vi->nsteps = 1;
+    vi->value = vars[varid].value;
+    vi->global = 1;
+    vi->nblocks = (int *) malloc (sizeof(int));
+    vi->nblocks[0] = 1;
+    vi->sum_nblocks = vi->nblocks[0];
     
     return vi;
 }
 
-void adios_read_dimes_free_varinfo (ADIOS_VARINFO *vp)
+int adios_read_dimes_inq_var_stat (const ADIOS_FILE *fp, ADIOS_VARINFO * varinfo, int per_step_stat, int per_block_stat)
+{
+    /* FIXME: store and retrieve statistics from DataSpaces */
+    varinfo->statistics = NULL;
+    /*
+    varinfo->statistics->min = NULL;
+    varinfo->statistics->max = NULL;
+    varinfo->statistics->avg = NULL;
+    varinfo->statistics->std_dev = NULL;
+    varinfo->statistics->steps = NULL;
+    varinfo->statistics->blocks = NULL;
+    varinfo->statistics->histogram = NULL;
+    */
+    return 0;
+}
+
+int adios_read_dimes_inq_var_blockinfo (const ADIOS_FILE *fp, ADIOS_VARINFO * varinfo)
+{
+    /* FIXME: return the actual block decomposition by the writers
+              but we need to store that in DataSpaces in the first place 
+    */
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    int i;
+    varinfo->blockinfo = (ADIOS_VARBLOCK *) malloc (sizeof(ADIOS_VARBLOCK)); // just one block
+    varinfo->blockinfo->start = (uint64_t *) malloc (ds->vars[varinfo->varid].ndims * sizeof(uint64_t));
+    varinfo->blockinfo->count = (uint64_t *) malloc (ds->vars[varinfo->varid].ndims * sizeof(uint64_t));
+    for (i = 0; i<ds->vars[varinfo->varid].ndims; i++) {
+        varinfo->blockinfo->start[i] = 0;
+        varinfo->blockinfo->count[i] = ds->vars[varinfo->varid].dims[i];
+    }
+    return 0;
+}
+
+
+static int adios_read_dimes_get_data(const char * varname, enum ADIOS_DATATYPES vartype, 
+                                int version, int rank,
+                                int ndims, int is_fortran_ordering, 
+                                int * offset, int * readsize, void * data)
 {
-    if (vp) {
-        if (vp->dims)   free(vp->dims);
-        if (vp->value)  free(vp->value);
-        if (vp->gmin && vp->gmin != vp->value)   free(vp->gmin);
-        if (vp->gmax && vp->gmax != vp->value)   free(vp->gmax);
-        if (vp->mins)   free(vp->mins);
-        if (vp->maxs)   free(vp->maxs);
-        free(vp);
+
+    struct obj_data *od;
+    int elemsize = common_read_type_size(vartype, NULL);
+    int i, err;
+    int didx[3];
+    int lb[3] = {0,0,0};
+    int ub[3] = {0,0,0};
+
+    // reorder DS dimensions to Fortran/C dimensions
+    dimes_dimension_ordering (ndims, is_fortran_ordering, 0 /*pack*/, didx);
+    for (i=0; i<3; i++) {
+        lb[i] = offset[didx[i]];
+        ub[i] = offset[didx[i]]+readsize[didx[i]]-1;
+    }
+
+    log_debug("-- %s, rank %d: get data: varname=%s version=%d, lb=(%d,%d,%d) ub=(%d,%d,%d)}\n",
+        __func__, rank, varname, version, lb[0], lb[1], lb[2], 
+        ub[0], ub[1], ub[2]);
+
+    err =  dimes_get (varname, version, elemsize, 
+                     lb[0], lb[1], lb[2],
+                     ub[0], ub[1], ub[2],
+                     data
+                    );
+    /*if (err == -ENOMEM) {
+        adios_error (err_no_memory, "Not enough memory for DATASPACES to perform dspaces_get()");  
+        return err_no_memory;
+    } 
+    else*/ if (err) {
+        adios_error (err_corrupted_variable, "DIMES failed to read variable %s.\n", varname);  
+        return err_corrupted_variable;
     }
+
+    return 0;
 }
 
-static int adios_read_dimes_get(const char *varname, enum ADIOS_DATATYPES vartype,
-							struct adios_read_DIMES_data_struct *ds,
-							int *offset, int *readsize, void *data)
+static int adios_read_dimes_get_meta(const char * varname, enum ADIOS_DATATYPES vartype, 
+                                int version, int rank,
+                                int ndims, int is_fortran_ordering, 
+                                int * offset, int * readsize, void * data)
 {
-	int elemsize = common_read_type_size(vartype, NULL);
-	int err;
-	
-	int xl,yl,zl,xu,yu,zu;
-	//Flip 1st and 2nd dimension
-	xl = offset[1];
-	yl = offset[0];
-	zl = offset[2];
-	xu = offset[1]+readsize[1]-1;
-	yu = offset[0]+readsize[0]-1;
-	zu = offset[2]+readsize[2]-1;
-
-	/*
-	xl = offset[0];
-	yl = offset[1];
-	zl = offset[2];
-	xu = offset[0]+readsize[0]-1;
-	yu = offset[1]+readsize[1]-1;
-	zu = offset[2]+readsize[2]-1;
-	*/
-
-	DBG_PRINTF("-- %s, rank %d: get data: varname=%s version=%d,lb=(%d,%d,%d) ub=(%d,%d,%d)}\n",
-			__func__, ds->mpi_rank, varname, ds->access_version, xl,yl,zl,xu,yu,zu);
-	
-	if(xl==0 && yl==0 && zl==0 && xu==0 && yu==0 && zu==0){
-		err = dimes_get_scalar(varname,ds->access_version,elemsize,0,0,0,0,0,0,data);
-	} else {
-		err = dimes_get(varname,ds->access_version,elemsize,xl,yl,zl,xu,yu,zu,data);
-	}
-	
-	if(err) {
-		adios_error (err_corrupted_variable,"DIMES failed to read variable %s.", varname);
-		return -err_corrupted_variable;
-	}
-	
-	return 0;	
-}
-
-int64_t adios_read_dimes_read_var (ADIOS_GROUP * gp, const char * varname,
-                        const uint64_t * start, const uint64_t * count,
-                        void * data)
+
+    struct obj_data *od;
+    int elemsize = common_read_type_size(vartype, NULL);
+    int i, err;
+    int didx[3];
+    int lb[3] = {0,0,0};
+    int ub[3] = {0,0,0};
+
+    // reorder DS dimensions to Fortran/C dimensions
+    dimes_dimension_ordering (ndims, is_fortran_ordering, 0 /*pack*/, didx);
+    for (i=0; i<3; i++) {
+        lb[i] = offset[didx[i]];
+        ub[i] = offset[didx[i]]+readsize[didx[i]]-1;
+    }
+
+    log_debug("-- %s, rank %d: get data: varname=%s version=%d, lb=(%d,%d,%d) ub=(%d,%d,%d)}\n",
+        __func__, rank, varname, version, lb[0], lb[1], lb[2], 
+        ub[0], ub[1], ub[2]);
+
+    err =  dspaces_get (varname, version, elemsize, 
+                     lb[0], lb[1], lb[2],
+                     ub[0], ub[1], ub[2],
+                     data
+                    );
+    /*if (err == -ENOMEM) {
+        adios_error (err_no_memory, "Not enough memory for DATASPACES to perform dspaces_get()");  
+        return err_no_memory;
+    } 
+    else*/ if (err) {
+        adios_error (err_corrupted_variable, "DIMES failed to read variable %s.\n", varname);  
+        return err_corrupted_variable;
+    }
+
+    return 0;
+}
+
+
+int adios_read_dimes_schedule_read_byid (const ADIOS_FILE * fp, 
+                                              const ADIOS_SELECTION * sel, 
+                                              int varid, 
+                                              int from_steps, 
+                                              int nsteps, 
+                                              void * data) 
 {
-    int64_t total_size;
-    int offset[3], readsize[3], Toffset[3], Treadsize[3];
-    struct adios_read_DIMES_data_struct * ds = (struct adios_read_DIMES_data_struct *) gp->fp->fh;
-    enum ADIOS_DATATYPES vartype;
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    struct dimes_var_struct * var = &ds->vars[varid];
+    read_request * r;
+    uint64_t s[10], c[10], ld0, off0;
+    uint64_t reqsize;
+    int i;
+
+    if (nsteps != 1) {
+        adios_error (err_invalid_timestep, 
+                     "Only one step can be read from a stream at a time. "
+                     "You requested %d steps in adios_schedule_read()\n", nsteps);
+        return err_invalid_timestep;
+    }
+
+    r = (read_request *) malloc (sizeof (read_request));
+    if (!r) {
+        adios_error (err_no_memory, "Could not allocate memory when scheduling a read request.\n");
+        return err_no_memory;
+    }
+    r->sel = NULL;
+
+    reqsize = common_read_type_size (var->type, NULL);
+    // process, check selection and create target selection for read
+    if (sel) {
+        switch (sel->type) {
+
+            case ADIOS_SELECTION_BOUNDINGBOX:
+
+                if (var->ndims != sel->u.bb.ndim) {
+                    adios_error (err_out_of_bound, 
+                        "Number of dimensions in ADIOS_SELECTION = %d should be equal "
+                        "to the number of dimensions of the variable %s = %d\n",
+                        var->ndims, fp->var_namelist[varid], sel->u.bb.ndim);
+                    return err_out_of_bound;
+                }
+                for (i=0; i<sel->u.bb.ndim; i++) {
+                    if (sel->u.bb.start[i] + sel->u.bb.count[i] > var->dims[i]) {
+                        adios_error (err_out_of_bound, 
+                                "offset/readsize is out of bound in dimension %d for variable %s\n"
+                                "size of dimension = %lld; you provided start=%lld, count=%lld\n",
+                                i, fp->var_namelist[varid], var->dims[i], 
+                                sel->u.bb.start[i], sel->u.bb.count[i]
+                                );
+                    }
+                    reqsize *= sel->u.bb.count[i];
+                }
+                r->sel = copy_selection (sel);
+                break;
+
+            case ADIOS_SELECTION_POINTS:
+
+                if (var->ndims != sel->u.bb.ndim) {
+                    adios_error (err_out_of_bound, 
+                        "Number of dimensions in ADIOS_SELECTION = %d should be equal "
+                        "to the number of dimensions of the variable %s = %d\n",
+                        var->ndims, fp->var_namelist[varid], sel->u.bb.ndim);
+                    return err_out_of_bound;
+                }
+                reqsize *= sel->u.points.npoints;
+                r->sel = copy_selection (sel);
+                break;
+
+            case ADIOS_SELECTION_WRITEBLOCK:
+
+                /* We cannot do this with DataSpaces yet (fp->nwriter == 1) */
+                /* Read the whole variable */
+                memcpy (s, 0, 10*sizeof(uint64_t));
+                r->sel = common_read_selection_boundingbox(var->ndims, s, var->dims);
+                for (i=0; i<var->ndims; i++) 
+                    reqsize *= var->dims[i];
+                break;
+
+            case ADIOS_SELECTION_AUTO:
+
+                /* We determine here what to read for this process.
+                   Let's do a simple 1D domain decomposition
+                   FIXME: should be smarter and do multi-dim decomp if needed
+                */
+                memcpy (s, 0, 10*sizeof(uint64_t));
+                memcpy (c, var->dims, 10*sizeof(uint64_t));
+                if (var->ndims) {
+                    ld0 = var->dims[0]/ds->nproc;
+                    if (ld0 != 0) {
+                        off0 = ds->mpi_rank*ld0;
+                        if (ds->mpi_rank == ds->nproc-1) {
+                            /* last reader reads the rest */
+                            ld0 = var->dims[0] - (int)(ld0*(ds->nproc-1));
+                        }
+                    } else {
+                        /* Only first dims[0] processes read one piece, the rest does nothing */
+                        if (ds->mpi_rank < var->dims[0]) {
+                            ld0 = 1;
+                            off0 = ds->mpi_rank;
+                        }
+                    }
+                    if (ld0 > 0) {
+                        s[0] = off0;
+                        c[0] = ld0;
+                        r->sel = common_read_selection_boundingbox(
+                                var->ndims, s, c);
+                    }
+                    for (i=0; i<var->ndims; i++) 
+                        reqsize *= c[i];
+                } else {
+                    /* Scalar: just read it for each process */
+                    r->sel = common_read_selection_boundingbox(0, 0, 0);
+                }
+
+                break;
+        } // switch
+    } else {
+        // NULL selection means the whole variable
+        memcpy (s, 0, 10*sizeof(uint64_t));
+        r->sel = common_read_selection_boundingbox(var->ndims, s, var->dims);
+        for (i=0; i<var->ndims; i++) 
+            reqsize *= var->dims[i];
+    }
+
+    if (r->sel) {
+        r->varid = varid;
+        r->from_steps = 0; // we read the current step anyway
+        r->nsteps = 1;
+        r->data = data;
+        r->datasize = reqsize;
+        r->priv = 0;
+        r->next = 0;
+        if (ds->req_list == NULL) {
+            list_insert_read_request_tail (&ds->req_list, r);
+            ds->req_list_tail = ds->req_list;
+        } else {
+            // just speed up insert directly after the tail
+            list_insert_read_request_next (&ds->req_list_tail, r);
+        }
+    } else {
+        free(r);
+    }
+
+    return 0;
+}
+
+static ADIOS_VARCHUNK * read_var (const ADIOS_FILE *fp, read_request * r)
+{
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    struct dimes_var_struct * var = &ds->vars[r->varid];
+    //int64_t total_size;
+    int offset[3] = {0,0,0};
+    int readsize[3] = {1,1,1};
     int elemsize;
     int err;
-    int i;
-    char dimes_name[MAX_DIMES_NAMELEN];
+    int i,k,ndims,tidx;
+    char ds_name[MAX_DS_NAMELEN];
 
-    /*DIMES uses integers for boundaries */
-    total_size = 1;
-    for (i=0; i<3; i++) {
-        offset[i]    = (int) start[i];
-        Toffset[i]   = 0;
-        readsize[i]  = (int) count[i];
-        Treadsize[i] = 1;
-        total_size   = total_size * count[i];
+    if (!ds->chunk)
+        ds->chunk = (ADIOS_VARCHUNK *) malloc (sizeof (ADIOS_VARCHUNK));
+    if (!ds->chunk) {
+        adios_error (err_no_memory, 
+                "Could not allocate buffer for group name in adios_read_open()\n");
+        return NULL;
     }
+    ds->chunk->varid = r->varid;
+    ds->chunk->type = var->type;
+    ds->chunk->sel = NULL;
+    elemsize = common_read_type_size (var->type, var->value);
 
-    /* Get type information for the variable from DataSpaces:
-       type variable name = TYPE@<filename>/<varname>
-    */
-    snprintf(dimes_name, MAX_DIMES_NAMELEN, "TYPE@%s/%s", ds->fname, varname);
-    err = adios_read_dimes_get(dimes_name, adios_integer, ds, Toffset, Treadsize, &vartype);
-    if (err)
-        return err;
-    DBG_PRINTF("-- %s, rank %d: get type: varname=%s type=%d (%s)}\n",
-        __func__, ds->mpi_rank, dimes_name, vartype, common_read_type_to_string(vartype));
+    // handle scalars first (no need to read from space again)
+    if (var->ndims == 0 && !var->hastime) { 
+        if (r->data) {
+            memcpy (r->data, var->value, elemsize);
+            ds->chunk->data = r->data;
+        } else {
+            ds->chunk->data = var->value;
+        }
+        return ds->chunk;
+    }
+        
+    if (r->data) {
+        // read into user allocated memory
+        ds->chunk->data = r->data;
+    } else {
+        // read into method-allocated memory
+        ds->chunk->data = get_chunk_buffer();
+        if (!ds->chunk->data) {
+            return NULL;
+        }
+    }
 
-    elemsize = common_read_type_size(vartype, NULL);
-    DBG_PRINTF("-- %s, rank %d: get data: varname=%s type=%d (%s) elemsize=%d}\n",
-        __func__, ds->mpi_rank, dimes_name, vartype, common_read_type_to_string(vartype), elemsize);
+    snprintf(ds_name, MAX_DS_NAMELEN, "%s/%s/%s", fp->path, ds->group_name, var->name);
 
-    total_size *= elemsize; 
+    if (r->sel->type == ADIOS_SELECTION_BOUNDINGBOX)
+    {
+        // transform uint64_t array to int array for DataSpaces
+        for (i=0; i<var->ndims; i++) {
+            offset[i]    = (int) r->sel->u.bb.start[i];
+            readsize[i]  = (int) r->sel->u.bb.count[i];
+        }
 
-    //Get data
-    snprintf(dimes_name, MAX_DIMES_NAMELEN, "%s/%s", ds->fname, varname);
-    /*
-    DBG_PRINTF("-- %s, rank %d: get data: varname=%s start=(%lld,%lld,%lld) count=(%lld,%lld,%lld)}\n",
-        __func__, ds->mpi_rank, dimes_name, start[0], start[1], start[2], count[0], count[1], count[2]);
+        log_debug("-- %s, rank %d: get data: varname=%s start=(%lld,%lld,%lld) count=(%lld,%lld,%lld)}\n",
+                __func__, ds->mpi_rank, ds_name, 
+                r->sel->u.bb.start[0], r->sel->u.bb.start[1], r->sel->u.bb.start[2], 
+                r->sel->u.bb.count[0], r->sel->u.bb.count[1], r->sel->u.bb.count[2]);
+        log_debug("-- %s, rank %d: get data: varname=%s offset=(%d,%d,%d) readsize=(%d,%d,%d)}\n",
+                __func__, ds->mpi_rank, ds_name, offset[0], offset[1], offset[2], 
+                readsize[0], readsize[1], readsize[2]);
+
+        err = adios_read_dimes_get_data(ds_name, var->type, ds->current_step, ds->mpi_rank, 
+                var->ndims, futils_is_called_from_fortran(),
+                offset, readsize, ds->chunk->data);
+    }
+    else if (r->sel->type == ADIOS_SELECTION_POINTS)
+    {
+        err = 0;
+        k = 0;
+        while (!err && k < r->sel->u.points.npoints) {
+            // pick and read k-th point individually
+            for (i=0; i<var->ndims; i++) {
+                offset[i]    = (int) r->sel->u.points.points[k*var->ndims+i];
+                readsize[i]  = 1;
+            }
+
+            err = adios_read_dimes_get_data(ds_name, var->type, ds->current_step, ds->mpi_rank, 
+                    var->ndims, futils_is_called_from_fortran(),
+                    offset, readsize, ds->chunk->data+k*elemsize);
+            k++;
+        }
+    }
+    else
+    {
+        log_error ("Programming error: in Dataspaces method's read_var(), there "
+                   "should be no selection type other than bounding box and points. "
+                   "type = %d, var = %s\n", r->sel->type, var->name);
+        err = 1;
+
+    }
+
+    if (err) {
+        return NULL;
+    }
+
+    return ds->chunk;
+}
+
+int adios_read_dimes_perform_reads (const ADIOS_FILE *fp, int blocking)
+{
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    read_request * r;
+
+    /* 1. prepare all reads */
+    // check if all user memory is provided for blocking read
+    if (blocking) {
+        r = ds->req_list;
+        while (r != NULL) {
+            if (r->data == NULL) {
+                adios_error (err_operation_not_supported, 
+                    "Blocking mode at adios_perform_reads() requires that user "
+                    "provides the memory for each read request. Request for "
+                    "variable %s was scheduled without user-allocated memory\n",
+                    ds->vars[r->varid].name);
+                return err_operation_not_supported;
+            }
+            r = r->next;
+        }
+    }
+
+    /* 2. if blocking, do all reads here, otherwise do it one-by-one in check_reads */
+    if (!blocking) 
+        return 0;
+
+    while (ds->req_list != NULL && adios_errno == err_no_error) {
+        read_var (fp, ds->req_list);
+    
+        // remove head from list
+        r = ds->req_list;
+        ds->req_list = ds->req_list->next;
+        free(r);
+        ds->nreq--;
+    }
+    ds->req_list_tail = NULL;
+
+    return adios_errno;
+}
+
+int adios_read_dimes_check_reads (const ADIOS_FILE * fp, ADIOS_VARCHUNK ** chunk)
+{
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    read_request * r;
+    int retval;
+
+    if (ds->req_list != NULL) 
+    {
+        if (!ds->req_list->data && ds->req_list->datasize > chunk_buffer_size) {
+            /* Request size does not fit into the chunk buffer.
+               Chop up the request into multiple smaller chunks here.
+            */
+            /* FIXME: do this chunking */
+            log_error ("DIMES method cannot do chunking at this moment. "
+                        "Choose a max_chunk_size=N parameter so that each variable "
+                        "request fits into the buffer\n");
+
+        }
+
+        *chunk = read_var (fp, ds->req_list);
+
+        if (*chunk)
+            retval = 1;
+        else
+            retval = adios_errno;
+    
+        // remove head from list
+        r = ds->req_list;
+        ds->req_list = ds->req_list->next;
+        free(r);
+        ds->nreq--;
+    } 
+    else 
+    {
+        // no more chunks (variables) to be read
+        retval = 0; 
+        ds->req_list_tail = NULL;
+    }
+    return retval;
+}
+
+
+/* Tell the DataSpaces order of dimensions for a 1-3 dim array written from Fortran or C.
+   unpack=1: the reverse of packing (to retrieve the original order).
+   didx should be an int [3] array in any case.
+*/
+void dimes_dimension_ordering(int ndims, int is_app_fortran, int unpack, int *didx)
+{
+    /* Order of dimensions: in DataSpaces: slow, fast, slowest
+       Fortran: i,j,k --> j, i, k  = lb[1], lb[0], lb[2]
+                i,j   --> j, i     = lb[1], lb[0], lb[2]=1
+                i     --> 1, i     = lb[1]=1, lb[0], lb[2]=1
+       C:       i,j,k --> j, k, i  = lb[1], lb[2], lb[0]
+                i,j   --> i, j     = lb[0], lb[1], lb[2]=1
+                i     --> 1, i     = lb[1]=1, lb[0], lb[2]=1 (same as Fortran)
+
+       unpack: C(i,j,k) ordering applied twice does not result in the original order
+               so we need to have a reverse mapping for this case.
+               For all the other cases, applying twice results in the same order
+               even for packing from Fortran and unpacking to C, and vice versa.
+               F(i,j,k) -(pack)-> DS(j,i,k) -(unpack)-> C(k,j,i) or F(i,j,k)
+               C(i,j,k) -(pack)-> DS(j,k,i) -(unpack)-> C(i,j,k) or F(k,j,i)
+               F(i,j)   -(pack)-> DS(j,i)   -(unpack)-> C(j,i)   or F(i,j)
+               C(i,j)   -(pack)-> DS(i,j)   -(unpack)-> C(i,j)   or F(j,i)
+               F(i)     -(pack)-> DS(1,i)   -(unpack)-> C(i,(1)) or F(i,(1))
+               C(i)     -(pack)-> DS(1,i)   -(unpack)-> C(i,(1)) or F(i,(1))
     */
-    DBG_PRINTF("-- %s, rank %d: get data: varname=%s offset=(%d,%d,%d) readsize=(%d,%d,%d)}\n",
-        __func__, ds->mpi_rank, dimes_name, offset[0], offset[1], offset[2], readsize[0], readsize[1], readsize[2]);
-    err = adios_read_dimes_get(dimes_name, vartype, ds, offset, readsize, data);
-    if (err)
-        return err;
 
-    return total_size;
+    if (ndims == 0) {
+        didx[0] = 0; didx[1] = 1; didx[2] = 2;
+    } else if (is_app_fortran || ndims == 1) {
+        /* Flip 1st and 2nd dimension for DataSpaces representation
+           for any Fortran writings and for any 1D array :
+           Fortran: i,j,k --> j, i, k  = lb[1], lb[0], lb[2]
+           C:       i     --> 1, i     = lb[1]=1, lb[0], lb[2]=1 
+        */
+        didx[0] = 1; didx[1] = 0; didx[2] = 2;
+    } else if (ndims == 2) {
+        /* C: i,j   --> i, j     = lb[0], lb[1], lb[2]=1 */
+        didx[0] = 0; didx[1] = 1; didx[2] = 2;
+    } else { // (ndims == 3) 
+        if (!unpack) {
+            /* C: i,j,k --> j, k, i  = lb[1], lb[2], lb[0] */
+            didx[0] = 1; didx[1] = 2; didx[2] = 0;
+        } else {
+            /* DataSpaces x,y,z --> z,x,y  (ijk->kij, or jki->ijk) */
+            didx[0] = 2; didx[1] = 0; didx[2] = 1;
+        }
+    }
+}
+
+int adios_read_dimes_get_attr_byid (const ADIOS_FILE * fp, int attrid, 
+                    enum ADIOS_DATATYPES * type, int * size, void ** data)
+{
+    struct dimes_data_struct * ds = (struct dimes_data_struct *) fp->fh;
+    struct dimes_attr_struct * attrs = ds->attrs;
+
+    if (attrid < 0 || attrid > fp->nattrs) {
+        adios_error (err_invalid_attrid, 
+                     "File %s has %d attributes. Invalid attribute id %d\n",
+                     fp->path, fp->nattrs, attrid);
+        return adios_errno;
+    }
+
+    *type = attrs[attrid].type;
+    *size = common_read_type_size(*type, attrs[attrid].value);
+    *data = (void *) malloc (*size);
+    if (*data) {
+        memcpy (*data, attrs[attrid].value, *size);
+    } else {
+        adios_error (err_no_memory, "Could not allocate memory for attribute info.\n");
+        return adios_errno;
+    }
+    return 0; 
 }
 
-int64_t adios_read_dimes_read_var_byid (ADIOS_GROUP    * gp,
-                             int              varid,
-                             const uint64_t  * start,
-                             const uint64_t  * count,
-                             void           * data)
+void adios_read_dimes_reset_dimension_order (const ADIOS_FILE *fp, int is_fortran)
 {
-    adios_error (err_invalid_varid, "DIMES does not know variable indicies, only variable names can be used.");
-    return -err_invalid_varid;
-}							
+    /* not implemented */
+}
 
-int64_t adios_read_dimes_read_local_var (ADIOS_GROUP * gp, const char * varname,
-                                      int vidx, const uint64_t * start,
-                                      const uint64_t * count, void * data)
-{  
-    adios_error (err_operation_not_supported, "adios_read_local_var() is not supported with DIMES method.");
-    return -adios_errno;
+void adios_read_dimes_get_groupinfo (const ADIOS_FILE *fp, int *ngroups, 
+            char ***group_namelist, int **nvars_per_group, int **nattrs_per_group) 
+{
+    struct dimes_data_struct * ds;
+    if (fp) {
+        ds = (struct dimes_data_struct *) fp->fh;
+        *ngroups = 1;
+        *group_namelist = (char **) malloc (sizeof (char*));
+        *group_namelist[0] = strdup (ds->group_name);
+    }
 }
+
+int adios_read_dimes_is_var_timed (const ADIOS_FILE *fp, int varid)
+{
+    struct dimes_data_struct * ds;
+    int retval = 0;
+    if (fp) {
+        ds = (struct dimes_data_struct *) fp->fh;
+        if (varid > 0 && varid < fp->nvars)
+            retval = ds->vars[varid].hastime;
+    }
+    return retval;
+}
+
diff --git a/src/read/read_flexpath.c b/src/read/read_flexpath.c
new file mode 100644
index 0000000..a0b052e
--- /dev/null
+++ b/src/read/read_flexpath.c
@@ -0,0 +1,1409 @@
+/*
+    read_flexpath.c
+    
+    Originally copied from read_datatap.c
+    Goal: to create evpath io connection layer in conjunction with 
+    write/adios_flexpath.c
+
+*/
+
+
+
+
+
+// system libraries
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/queue.h>
+#include <sys/socket.h>
+#include <sys/times.h>
+#include <netinet/in.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <pthread.h>
+#include <unistd.h>
+
+// evpath libraries
+#include <ffs.h>
+#include <atl.h>
+#include <gen_thread.h>
+#include <evpath.h>
+
+// local libraries
+#include "config.h"
+#include "public/adios.h"
+#include "public/adios_read_v2.h"
+#include "core/adios_read_hooks.h"
+#include "core/adios_logger.h"
+#include "public/adios_error.h"
+#include "core/flexpath.h"
+
+// conditional libraries
+#ifdef DMALLOC
+#include "dmalloc.h"
+#endif
+
+/*
+ * Contains start & counts for each dimension for each writer.
+ */
+typedef struct _array_displ
+{
+    int writer_rank;
+    int ndims;
+    int * start;
+    int * count;    
+}array_displacements;
+
+typedef struct _bridge_info
+{
+    EVstone bridge_stone;
+    EVsource flush_source;
+    EVsource var_source;
+    EVsource op_source;
+    int their_num;
+    char * contact;
+    int created;
+    int opened;
+    int step;
+}bridge_info;
+
+typedef struct _flexpath_var_chunk
+{
+    int has_data;
+    int rank;
+    void *data;
+    uint64_t *local_bounds; // nodims
+    uint64_t *global_bounds; // ndims
+    uint64_t *global_offsets; // ndims
+    struct _flexpath_var_chunk *next;
+} flexpath_var_chunk, *flexpath_var_chunk_p;
+
+typedef struct _flexpath_var_info
+{
+    int id;
+    char *varname;
+    char *varpath;
+    enum ADIOS_DATATYPES type;
+    //add selector typ
+    uint64_t data_size; // type size, not arrays size
+    int time_dim; // -1 means no time dimension
+    int ndims;
+    int * dims; // ndims size (if ndims>0)
+    uint64_t array_size; // not relevant for scalars
+    int num_chunks;
+    int was_scheduled;
+    flexpath_var_chunk *chunks;
+    int num_displ;
+    array_displacements * displ;
+    const ADIOS_SELECTION * sel;
+    struct _flexpath_var_info *next;
+} flexpath_var_info, *flexpath_var_info_p;
+
+typedef struct _flexpath_file_data
+{
+    char * file_name;
+    char * group_name; // assuming one group per file right now.
+
+    EVstone ctrl_stone;
+    EVstone split_stone; // to be added to ctrl_stone
+    EVaction split_action;
+    EVstone data_stone;
+
+    MPI_Comm comm;
+    int rank;
+    int size;
+    int valid;
+
+    int num_bridges;
+    bridge_info *bridges;
+    FMFormat current_format;
+    FMContext context;
+
+    int writer_coordinator;
+
+    int num_vars;
+    flexpath_var_info * var_list;
+    int num_gp; // for array distribution.
+    int valid_evgroup;
+    evgroup * gp;
+
+    char *arr;
+    char *rep_id;
+    int rep_id_len;
+    int id_len;
+
+    int* sendees;
+    int num_sendees;
+    int ackCondition;    
+} flexpath_file_data;
+
+
+flexpath_file_data *
+new_flexpath_file_data(const char * fname);
+
+flexpath_var_info*
+new_flexpath_var_info(const char * varname, int id, uint64_t data_size);
+
+flexpath_var_info*
+new_flexpath_var_info(const char * varname, int id, uint64_t data_size)
+{
+    flexpath_var_info * var = malloc(sizeof(flexpath_var_info));
+    if(var == NULL){
+	log_error("Error creating new var: %s\n", varname);
+	exit(1);
+    }
+    
+    var->varname = strdup(varname);
+    var->id = id;
+    var->data_size = data_size;
+    var->chunks = NULL;
+    var->sel = NULL;
+    var->dims = NULL;
+    var->displ = NULL;
+    var->was_scheduled = 0;    
+    var->time_dim = 0;
+    var->ndims = 0;
+    var->next = NULL;
+    return var;
+}
+
+
+flexpath_file_data*
+new_flexpath_file_data(const char * fname)
+{
+    flexpath_file_data * fp = malloc(sizeof(flexpath_file_data));
+    if(fp == NULL){
+	log_error("Cannot create data for new file.\n");
+	exit(1);
+    }
+    fp->file_name = strdup(fname);
+    fp->group_name = NULL;    
+    fp->var_list = NULL;
+    fp->gp = NULL;
+    fp->bridges = NULL;
+    fp->current_format = NULL;
+    fp->context = NULL;
+    
+    fp->writer_coordinator = -1;
+    fp->valid = 0;
+    fp->num_bridges = 0;
+    fp->num_gp = 0;
+    fp->valid_evgroup = 0;
+    fp->num_vars = 0;
+    fp->sendees = NULL;
+    fp->num_sendees = 0;    
+
+    fp->arr = NULL;
+    fp->rep_id = NULL;
+    fp->rep_id_len = 0;
+    fp->id_len = 0;
+    int ackCondition = 0;
+    return fp;        
+}
+
+//flexpath_file_data * file_data_list = NULL;
+
+typedef struct _local_read_data
+{
+    // MPI stuff
+    MPI_Comm fp_comm;
+    int fp_comm_rank;
+    int fp_comm_size;
+
+    // EVPath stuff
+    CManager fp_cm;
+    EVstone ctrl_stone;
+    EVstone data_stone;
+    atom_t CM_TRANSPORT;
+
+    // server state
+    int fp_server_ready;
+    int num_io_dumps;
+    // TODO: timestep
+
+} flexpath_read_data, *flexpath_read_data_p;
+
+
+static int compare_var_name(const char* varname, const flexpath_var_info *v);
+// this sructure holds all global data for flexpath read  methods
+flexpath_read_data* fp_read_data = NULL;
+//int ackCondition;
+
+#define VAR_BITMAP_SIZE 16
+
+ADIOS_VARINFO*
+convert_file_info(flexpath_var_info * current_var,
+		  ADIOS_VARINFO * v,
+		  const char* varname,
+		  const ADIOS_FILE* gp);
+
+flexpath_var_info *
+find_fp_var(flexpath_var_info * var_list, const char * varname)
+{
+    while(var_list){
+	if(!compare_var_name(varname, var_list)){
+	    return var_list;
+	}
+	else
+	    var_list = var_list->next;
+    }
+    return NULL;
+}
+
+// compare used-providd varname with the full path name of variable v
+// return zero if matches and non-zero otherwise
+static int
+compare_var_name (const char *varname, const flexpath_var_info *v)
+{
+    if (varname[0] == '/') { // varname is full path
+        char fullpath[256];
+        if(!strcmp(v->varpath, "/")) {
+            sprintf(fullpath, "/%s", v->varname);
+        }
+        else {
+            sprintf(fullpath, "%s/%s", v->varpath, v->varname);
+        }
+        return strcmp(fullpath, varname);
+    }
+    else { // varname doesn't include path
+        return strcmp(v->varname, varname);
+    }
+}
+
+global_var* 
+find_gbl_var(global_var * vars, char * name, int num_vars)
+{
+    global_var * retvar = NULL;
+    int i;
+    for(i=0; i<num_vars; i++){
+	if(!strcmp(vars[i].name, name))
+	    return &vars[i];
+    }
+    return retvar;
+}
+
+static FMField
+*find_field (const char *name, const FMFieldList flist)
+{
+    FMField *f = flist;
+    while (f->field_name != NULL)
+    {
+        if(!strcmp(name, f->field_name))
+            return f;
+        else
+            f++;
+    }
+    return NULL;
+}
+
+
+
+static int op_msg_handler(CManager cm, void *vevent, void *client_data, attr_list attrs) {
+    op_msg* msg = (op_msg*)vevent;    
+    ADIOS_FILE *adiosfile = (ADIOS_FILE*)client_data;
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    if(msg->type==2) {
+        CMCondition_signal(fp_read_data->fp_cm, msg->condition);
+        //ackCondition = CMCondition_get(fp_read_data->fp_cm, NULL);
+    }
+    if(msg->type == 4){	
+	adios_errno = err_end_of_stream;
+	CMCondition_signal(fp_read_data->fp_cm, msg->condition);
+    }       
+    return 0;
+}
+
+/*
+ * Should only be invoked from rank 0.  might need a better way to go about this.
+ */
+static int
+group_msg_handler(CManager cm, void *vevent, void *client_data, attr_list attrs)
+{
+    //EVtake_event_buffer(fp_read_data->fp_cm, vevent);
+    evgroup * msg = (evgroup*)vevent;
+    ADIOS_FILE *adiosfile = client_data;
+    flexpath_file_data * fp = (flexpath_file_data*)adiosfile->fh;
+    fp->gp = msg;
+    fp->valid_evgroup = 1;
+    global_var * vars = msg->vars;
+    int num_vars = msg->num_vars;
+    CMCondition_signal(fp_read_data->fp_cm, msg->condition);    
+    return 0;
+
+}
+
+
+void 
+print_int_arr(char * tag, int * arr, int count)
+{
+    int i;
+    log_debug_cont("%s: ", tag);
+    for(i=0; i<count; i++){
+	log_debug_cont("%d ", arr[i]);
+    }
+    log_debug("\n");
+}
+
+array_displacements*
+find_displacement(array_displacements* list, int rank, int num_displ){
+    int i;
+    for(i=0; i<num_displ; i++){
+	if(list[i].writer_rank == rank)
+	    return &list[i];	
+    }
+    return NULL;
+}
+
+int
+linearize_displ(int * offset, int * sizes, int ndim, int data_size)
+{
+    //print_int_arr("linearize_displ offsets", offset, ndim);
+    //print_int_arr("linearize_displ sizes", sizes, ndim);
+    int i;
+    int retval = 0;
+    for(i = 0; i<ndim - 1; i++){
+	retval += (offset[i] * sizes[i+1])*data_size;       
+    }
+    retval+=offset[ndim-1]*data_size;
+    return retval;
+}
+
+
+void 
+copyoffsets(int dim, // dimension index
+	    int ndims, // number of dimensions
+	    int data_size, // data size
+	    int* disp_start, // start array from array_displacements struct
+	    int* disp_count, // count array from array_displacements struct
+	    int* writer_count, // local dimensions from all writers; from offset_struct
+	    uint64_t* reader_count, // the count field from reader's selector
+	    char* from, 
+	    char* to) 
+{
+    if(dim==ndims-1) {
+        int* reader_count_copy = (int*)malloc(sizeof(int)*ndims);
+        int i=0;
+        for(i=0; i<ndims; i++){
+            reader_count_copy[i]=reader_count[i];
+        }
+        int s = linearize_displ(disp_start, writer_count, ndims, data_size);
+        int e = linearize_displ(disp_start, reader_count_copy, ndims, data_size);
+	free(reader_count_copy);
+        memcpy(to, from+s,  data_size*disp_count[ndims-1]);
+    } else {
+        int i;
+        for(i=0; i<disp_count[dim]; i++) {
+            int* disp_startcpy = malloc(sizeof(int)*ndims);
+            memcpy(disp_startcpy, disp_start, sizeof(int)*ndims);
+            disp_startcpy[dim] += i;
+            copyoffsets(dim+1, 
+			ndims, 
+			data_size, 
+			disp_start,
+			disp_count, 
+			writer_count, 
+			reader_count, 
+			from, 
+			to);
+        }
+    }
+}
+
+/*
+ * Will replace data handler once everything is figured out and working wrt conditions and the fm
+ * get/set api.
+ */
+static int
+raw_handler(CManager cm, void *vevent, int len, void *client_data, attr_list attrs)
+{
+    ADIOS_FILE *adiosfile = client_data;
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    FMContext context = CMget_FMcontext(cm);
+    void *base_data = FMheader_skip(context, vevent);
+    FMFormat format = FMformat_from_ID(context, vevent);  
+    
+    FMStructDescList struct_list = 
+	FMcopy_struct_list(format_list_of_FMFormat(format));
+    FMField *f = struct_list[0].field_list;
+
+    // setting up initial vars from the format list that comes along with the
+    // message. Message contains both an FFS description and the data.
+    if(fp->num_vars == 0){
+	int var_count = 0;
+	int i=0;       
+	while(f->field_name != NULL){           
+	    flexpath_var_info * curr_var = new_flexpath_var_info(f->field_name, 
+								 var_count, 
+								 f->field_size);
+	    curr_var->num_chunks = 1;
+	    curr_var->chunks = malloc(sizeof(flexpath_var_chunk)*curr_var->num_chunks);
+	    memset(curr_var->chunks, 0, sizeof(flexpath_var_chunk)*curr_var->num_chunks);
+	    curr_var->sel = NULL;
+	    flexpath_var_info * temp = fp->var_list;	
+	    curr_var->next = temp;
+	    fp->var_list = curr_var;
+	    var_count++;
+	    f++;
+	}
+	
+	adiosfile->var_namelist = malloc(var_count * sizeof(char *));
+	f = struct_list[0].field_list;  // f is top-level field list 
+	
+	while(f->field_name != NULL) {
+	    adiosfile->var_namelist[i++] = strdup(f->field_name);
+	    f++;
+	}
+	adiosfile->nvars = var_count;
+	fp->num_vars = var_count;
+    }
+
+    int condition;
+    int rank;          
+    get_int_attr(attrs, attr_atom_from_string("fp_dst_condition"), &condition);   
+    get_int_attr(attrs, attr_atom_from_string(FP_RANK_ATTR_NAME), &rank); 
+    fp->current_format = format;
+    f = struct_list[0].field_list;
+    char * curr_offset = NULL;
+    int i = 0, l = 0, j = 0;
+
+    while(f->field_name){
+        char atom_name[200] = "";
+    	flexpath_var_info * var = find_fp_var(fp->var_list, strdup(f->field_name));
+	
+    	if(!var){
+    	    adios_error(err_file_open_error,
+    			"file not opened correctly.  var does not match format.\n");
+    	    return err_file_open_error;
+    	}
+        strcat(atom_name, f->field_name);
+        strcat(atom_name, "_");
+        strcat(atom_name, FP_NDIMS_ATTR_NAME);
+        int num_dims;
+        int i;
+        get_int_attr(attrs, attr_atom_from_string(strdup(atom_name)), &num_dims);
+    	flexpath_var_chunk * curr_chunk = &var->chunks[0];
+    	// scalar
+        fp_log("SEL","inquiring num_dims %d of var %s\n", num_dims, f->field_name);
+    	if(num_dims == 0){
+	    
+    	    curr_chunk->global_offsets = NULL;
+    	    curr_chunk->global_bounds = NULL;
+    	    curr_chunk->local_bounds = NULL;
+
+	    void *tmp_data = get_FMfieldAddr_by_name(f, f->field_name, base_data);
+	    if(var->sel){
+		memcpy(var->chunks[0].data, tmp_data, f->field_size);
+	    }
+	    else{
+		var->chunks[0].data = get_FMfieldAddr_by_name(f, f->field_name, base_data);
+	    }
+    	    curr_chunk->has_data = 1;
+    	    // else it's an array
+    	}else{
+            if(!var->sel){// var hasn't been scheduled yet.       
+    		fp_log("SEL", "Variable has not yet been scheduled.  Cannot recieve data for it.\n");
+    	    }
+    	    else if(var->sel->type == ADIOS_SELECTION_WRITEBLOCK){
+    		var->ndims = num_dims;
+    		var->dims = malloc(sizeof(int)*num_dims);
+    		if(var->was_scheduled == 1){
+    		    var->array_size = var->data_size;
+    		    for(i=0; i<num_dims; i++){
+    			char *dim;
+    			atom_name[0] ='\0';
+    			strcat(atom_name, f->field_name);
+    			strcat(atom_name, "_");
+    			strcat(atom_name, FP_DIM_ATTR_NAME);
+    			strcat(atom_name, "_");
+    			char dim_num[10] = "";
+    			sprintf(dim_num, "%d", i+1);
+    			strcat(atom_name, dim_num);
+    			get_string_attr(attrs, attr_atom_from_string(atom_name), &dim);
+    			FMField * temp_f = find_field(dim, f);
+    			if(!temp_f){
+    			    adios_error(err_invalid_varname,
+    					"Could not find fieldname: %s\n",
+    					dim);
+    			}
+    			else{    			    
+    			    int *temp_data = get_FMfieldAddr_by_name(temp_f,
+    								     temp_f->field_name,
+    								     base_data);
+			    var->dims[i] = *temp_data;
+    			    var->array_size = var->array_size * var->dims[i];
+    			}
+    		    }    	       
+		    void *arrays_data  = get_FMPtrField_by_name(f, f->field_name, base_data, 1);
+		    memcpy(var->chunks[0].data, arrays_data, var->array_size);
+    		}
+
+    	    }
+    	    else if(var->sel->type == ADIOS_SELECTION_BOUNDINGBOX){
+    		int i;
+                global_var* gv = find_gbl_var(fp->gp->vars,
+    					      var->varname,
+    					      fp->gp->num_vars);
+                int * writer_count = gv->offsets[0].local_dimensions;
+                uint64_t * reader_count = var->sel->u.bb.count;
+    		array_displacements * disp = find_displacement(var->displ,
+    							       rank,
+    							       var->num_displ);
+		
+		void *aptr8 = get_FMPtrField_by_name(f, f->field_name, base_data, 1);
+
+    		//double * temp = (double*)curr_offset;
+		log_debug("first call to copyoffsets\n");
+		log_debug("dim: %d\n", 0);
+		log_debug("ndims: %d\n", disp->ndims);
+		log_debug("data_size: %d\n", f->field_size);
+
+		log_debug_cont("disp_start[]: ");
+		int k;
+		for(k=0; k<disp->ndims; k++){
+		    log_debug_cont("%d ", disp->start[k]);
+		}
+		log_debug("\n");
+
+		log_debug("disp_count[]: ");
+		for(k=0; k<disp->ndims; k++){
+		    log_debug_cont("%d ", disp->count[k]);
+		}
+		log_debug("\n");
+
+		log_debug("writer_count[]: ");
+		for(k=0; k<disp->ndims; k++){
+		    log_debug_cont("%d ", writer_count[k]);
+		}
+		log_debug("\n");
+		
+		log_debug("reader_count[]: ");
+		for(k=0; k<disp->ndims; k++){
+		    log_debug_cont("%d ", (int)reader_count[k]);
+		}
+
+                copyoffsets(0,
+    			    disp->ndims,
+    			    f->field_size,
+    			    disp->start,
+    			    disp->count,
+    			    writer_count,
+    			    reader_count,
+    			    (char*)aptr8,
+    			    (char*)var->chunks[0].data);
+    	    }
+    	}
+        j++;
+        f++;
+    }
+    CMCondition_signal(fp_read_data->fp_cm, condition);
+    return 0; 
+}
+
+/*
+ * Initializes flexpath read structures for a client read
+ * - malloc space for global values
+ * - store reference to MPI_Comm and get MPI information
+ * - store reference to a new evpath connection manager instance
+ */
+int
+adios_read_flexpath_init_method (MPI_Comm comm, PairStruct* params)
+{    
+    setenv("CMSelfFormats", "1", 1);
+    fp_read_data = malloc(sizeof(flexpath_read_data));     
+    if(!fp_read_data) {
+        adios_error(err_no_memory, "Cannot allocate memory for flexpath.");
+        return -1;
+    }
+    memset(fp_read_data, 0, sizeof(flexpath_read_data));
+    
+    fp_read_data->CM_TRANSPORT = attr_atom_from_string("CM_TRANSPORT");
+    attr_list listen_list = NULL;
+    char * transport = NULL;
+    transport = getenv("CMTransport");
+
+    // setup MPI stuffs
+    fp_read_data->fp_comm = comm;
+    MPI_Comm_size(fp_read_data->fp_comm, &(fp_read_data->fp_comm_size));
+    MPI_Comm_rank(fp_read_data->fp_comm, &(fp_read_data->fp_comm_rank));
+
+    // setup connection manager
+    gen_pthread_init();
+    fp_read_data->fp_cm = CManager_create();
+    if(transport == NULL){
+	if(CMlisten(fp_read_data->fp_cm) == 0) {
+	    log_error( "Flexpath ERROR: unable to initialize connection manager.\n");
+	}
+    }else{
+	listen_list = create_attr_list();
+	add_attr(listen_list, fp_read_data->CM_TRANSPORT, Attr_String, 
+		 (attr_value)strdup(transport));
+	CMlisten_specific(fp_read_data->fp_cm, listen_list);
+    }
+    if(CMfork_comm_thread(fp_read_data->fp_cm)) {/*log_debug( "forked\n");*/}
+    return 0;
+}
+
+
+void build_bridge(bridge_info* bridge) {
+    attr_list contact_list = attr_list_from_string(bridge->contact);
+
+    bridge->bridge_stone =
+        EVcreate_bridge_action(fp_read_data->fp_cm,
+            contact_list,
+            (EVstone)bridge->their_num);
+
+    bridge->flush_source =
+        EVcreate_submit_handle(fp_read_data->fp_cm,
+            bridge->bridge_stone,
+            flush_format_list);
+
+    bridge->var_source =
+	EVcreate_submit_handle(fp_read_data->fp_cm,
+	    bridge->bridge_stone,
+	    var_format_list);
+
+    bridge->op_source =
+	EVcreate_submit_handle(fp_read_data->fp_cm,
+	    bridge->bridge_stone,
+	    op_format_list);
+
+    bridge->created = 1;
+
+}
+
+
+ADIOS_FILE*
+adios_read_flexpath_open_file(const char * fname, MPI_Comm comm)
+{
+    adios_error (err_operation_not_supported,
+                 "FLEXPATH staging method does not support file mode for reading. "
+                 "Use adios_read_open() to open a staged dataset.\n");
+    return NULL;
+}
+
+/*
+ * Still have work to do here.  
+ * Change it so that we can support the timeouts and lock_modes.
+ */
+/*
+ * Sets up local data structure for series of reads on an adios file
+ * - create evpath graph and structures
+ * -- create evpath control stone (outgoing)
+ * -- create evpath data stone (incoming)
+ * -- rank 0 dumps contact info to file
+ * -- create connections using contact info from file
+ */
+ADIOS_FILE*
+adios_read_flexpath_open(const char * fname,
+				MPI_Comm comm,
+                                enum ADIOS_LOCKMODE lock_mode,
+				float timeout_sec)
+{
+    ADIOS_FILE *adiosfile = malloc(sizeof(ADIOS_FILE));        
+    if(!adiosfile){
+	adios_error (err_no_memory, "Cannot allocate memory for file info.\n");
+	return NULL;
+    }    
+    
+    flexpath_file_data *fp = new_flexpath_file_data(fname);
+    fp->ackCondition = CMCondition_get(fp_read_data->fp_cm, NULL);
+	
+    adios_errno = 0;
+    fp->data_stone = EValloc_stone(fp_read_data->fp_cm);	
+    fp->comm = comm;
+
+    MPI_Comm_size(fp->comm, &(fp->size));
+    MPI_Comm_rank(fp->comm, &(fp->rank));
+    EVassoc_terminal_action(fp_read_data->fp_cm,
+			    fp->data_stone,
+			    op_format_list,
+			    op_msg_handler,
+			    adiosfile);       
+
+    EVassoc_terminal_action(fp_read_data->fp_cm,
+			    fp->data_stone,
+			    evgroup_format_list,
+			    group_msg_handler,
+			    adiosfile);
+    EVassoc_raw_terminal_action(fp_read_data->fp_cm,
+				fp->data_stone,
+				raw_handler,
+				(void*)adiosfile);
+
+    char writer_ready_filename[200];
+    char writer_info_filename[200];
+    char reader_ready_filename[200];
+    char reader_info_filename[200];
+	
+    sprintf(reader_ready_filename, "%s_%s", fname, READER_READY_FILE);
+    sprintf(reader_info_filename, "%s_%s", fname, READER_CONTACT_FILE);
+    sprintf(writer_ready_filename, "%s_%s", fname, WRITER_READY_FILE);
+    sprintf(writer_info_filename, "%s_%s", fname, WRITER_CONTACT_FILE);
+	
+    char * string_list;
+    char data_contact_info[50];
+    string_list = attr_list_to_string(CMget_contact_list(fp_read_data->fp_cm));
+    sprintf(&data_contact_info[0], "%d:%s", fp->data_stone, string_list);
+    char * recvbuf;
+    if(fp->rank == 0){	
+	recvbuf = (char*)malloc(sizeof(char)*50*(fp->size));
+    }
+
+#ifndef _NOMPI
+    MPI_Gather(data_contact_info, 50, MPI_CHAR, recvbuf,
+	       50, MPI_CHAR, 0, fp->comm);
+#endif
+
+    if(fp->rank == 0){	
+	// print our own contact information
+	FILE * fp_out = fopen(reader_info_filename, "w");
+	int i;
+	if(!fp_out){	    
+	    adios_error(err_file_open_error,
+			"File for contact info could not be opened for writing.\n");
+	    exit(1);
+	}
+	for(i=0; i<fp->size; i++) {
+	    fprintf(fp_out,"%s\n", &recvbuf[i*50]);
+	}
+	fclose(fp_out);
+	fp_out = fopen(reader_ready_filename, "w");
+	fprintf(fp_out, "ready");
+	fclose(fp_out);
+	free(recvbuf);
+
+	FILE * read_ready = fopen(reader_ready_filename, "w");
+	fprintf(read_ready, "ready");
+	fclose(read_ready);
+    }
+    MPI_Barrier(fp->comm);
+    //may need to switch to rank 0 and mpi broadcast
+    FILE * fp_in = fopen(writer_ready_filename,"r");
+    while(!fp_in) {
+	CMsleep(fp_read_data->fp_cm, 1);
+	fp_in = fopen(writer_ready_filename, "r");
+    }
+    fclose(fp_in);
+    fp_in = fopen(writer_info_filename, "r");
+    while(!fp_in){
+	CMsleep(fp_read_data->fp_cm, 1);
+	fp_in = fopen(writer_info_filename, "r");
+    }
+
+    char in_contact[50] = "";
+    fp->bridges = malloc(sizeof(bridge_info));
+    int num_bridges = 0;
+    int their_stone;
+
+    // change to read all numbers, dont create stones, turn bridge array into linked list
+    while(fscanf(fp_in, "%d:%s", &their_stone, in_contact) != EOF){	
+	fp->bridges = realloc(fp->bridges,
+					  sizeof(bridge_info) * (num_bridges+1));
+	fp->bridges[num_bridges].their_num = their_stone;
+	fp->bridges[num_bridges].contact = strdup(in_contact);
+	fp->bridges[num_bridges].created = 0;
+	fp->bridges[num_bridges].step = 0;
+	fp->bridges[num_bridges].opened = 0;
+	num_bridges++;
+    }
+    fclose(fp_in);
+    //build_bridge(&fp->bridges[0]);
+
+    fp->num_bridges = num_bridges;
+    // clean up of writer's files
+    MPI_Barrier(fp->comm);
+    if(fp->rank == 0){
+	unlink(writer_info_filename);
+	unlink(writer_ready_filename);
+    }	
+    
+    adiosfile->fh = (uint64_t)fp;
+    adiosfile->current_step = 0;
+    
+    // determining from which writer to read
+    // if there are less writers
+    int writer_rank = fp->rank % num_bridges;
+    /* if(num_bridges < fp->size){ */
+    /* 	writer_rank = fp->size % num_bridges; */
+    /* 	// otherwise */
+    /* }else{ */
+    /* 	writer_rank = fp->rank; */
+    /* }     */
+    build_bridge(&fp->bridges[writer_rank]);
+    fp->writer_coordinator = writer_rank;
+    op_msg init;
+    init.step = 0;
+    init.type = 3;
+    init.process_id = fp->rank;
+    init.file_name = "test";
+    init.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+    EVsubmit(fp->bridges[writer_rank].op_source, &init, NULL);
+    CMCondition_wait(fp_read_data->fp_cm, init.condition); 
+    /* Flush_msg msg; */
+    /* msg.type = DATA; */
+    /* msg.rank = fp->rank; */
+    /* msg.condition = CMCondition_get(fp_read_data->fp_cm, NULL); */
+    /* EVsubmit(fp->bridges[0].flush_source, &msg, NULL); */
+    /* CMCondition_wait(fp_read_data->fp_cm, msg.condition); */
+    adios_errno == err_no_error;
+    log_debug("\t\tFLEXPATH READER LEAVING OPEN\n");
+    return adiosfile;
+}
+
+int adios_read_flexpath_finalize_method ()
+{
+    return 0;
+}
+
+void adios_read_flexpath_release_step(ADIOS_FILE *adiosfile) {
+    int i;
+    log_debug("\t\tFLEXPATH READER RELEASE_STEP\n");
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    for(i=0; i<fp->num_bridges; i++) {
+        if(fp->bridges[i].created && !fp->bridges[i].opened) {
+            op_msg open;
+            open.step = adiosfile->current_step;
+            open.type = OPEN_MSG;
+            open.process_id = fp->rank;
+            open.file_name = "test";
+	    open.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+            EVsubmit(fp->bridges[i].op_source, &open, NULL);
+            CMCondition_wait(fp_read_data->fp_cm, open.condition);
+	    fp->bridges[i].opened = 1;
+        }
+    }
+}
+
+int adios_read_flexpath_advance_step(ADIOS_FILE *adiosfile, int last, float timeout_sec) {
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    log_debug("FLEXPATH ADVANCE_STEP CALLED!\n");
+    MPI_Barrier(fp->comm);
+    int i=0;
+    for(i=0; i<fp->num_bridges; i++) {
+        if(fp->bridges[i].created && fp->bridges[i].opened) {
+            op_msg close;
+            close.step = adiosfile->current_step;
+            close.type = 0;
+            close.process_id = fp->rank;
+	    close.condition = -1;
+            close.file_name = "test";
+	    fp->bridges[i].opened = 0;
+            EVsubmit(fp->bridges[i].op_source, &close, NULL);
+
+            op_msg open;
+            open.step = adiosfile->current_step +1;
+            open.type = 1;
+            open.process_id = fp->rank;
+            open.file_name = "test";
+	    open.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+	    fp->bridges[i].opened = 1;
+            EVsubmit(fp->bridges[i].op_source, &open, NULL);
+            CMCondition_wait(fp_read_data->fp_cm, open.condition);
+        }
+    }
+    adiosfile->current_step++;
+    
+   return 0;
+}
+
+int adios_read_flexpath_close(ADIOS_FILE * fp)
+{
+    flexpath_file_data * file = (flexpath_file_data*)fp->fh;
+    int i;
+    op_msg msg;
+    msg.type=0;
+    msg.file_name = strdup(file->file_name);
+    msg.process_id = file->rank;
+    msg.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+    //send to each opened link
+    for(i = 0; i<file->num_bridges; i++){
+        if(file->bridges[i].created) {
+            msg.step = file->bridges[i].step;
+	    EVsubmit(file->bridges[i].op_source, &msg, NULL);
+        }
+    }
+    /*
+    start to cleanup.  Clean up var_lists for now, as the
+    data has already been copied over to ADIOS_VARINFO structs
+    that the user maintains a copy of. 
+    */
+    flexpath_var_info * v = file->var_list;
+    while(v){        	
+    	// free chunks; data has already been copied to user
+    	int i;	
+    	for(i = 0; i<v->num_chunks; i++){    		    
+    	    flexpath_var_chunk * c = &v->chunks[i];	    
+	    if(!c)
+		log_error("FLEXPATH: %s This should not happen! line %d\n",__func__,__LINE__);
+	    //free(c->data);    		
+	    free(c->global_bounds);		
+	    free(c->global_offsets);
+	    free(c->local_bounds);
+	}
+    	v=v->next;
+    }
+    return 0;
+}
+
+ADIOS_FILE *adios_read_flexpath_fopen(const char *fname, MPI_Comm comm) {
+   return 0;
+}
+
+int adios_read_flexpath_is_var_timed(const ADIOS_FILE* fp, int varid) { return 0; }
+
+void adios_read_flexpath_get_groupinfo(const ADIOS_FILE *fp, int *ngroups, char ***group_namelist, int **nvars_per_group, int **nattrs_per_group) {}
+
+int adios_read_flexpath_check_reads(const ADIOS_FILE* fp, ADIOS_VARCHUNK** chunk) { log_debug( "flexpath:adios function check reads\n"); return 0; }
+
+int adios_read_flexpath_perform_reads(const ADIOS_FILE *adiosfile, int blocking)
+{
+    flexpath_file_data * fp = (flexpath_file_data*)adiosfile->fh;
+    Flush_msg msg;
+    msg.rank = fp->rank;
+    msg.type = DATA;
+    msg.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+    int i;
+    int num_sendees = fp->num_sendees;
+    for(i = 0; i<num_sendees; i++)
+    {
+	int sendee = fp->sendees[i];
+        fp_log("MSG","rank %d sending flush to %d\n", fp->rank, sendee);
+	EVsubmit(fp->bridges[sendee].flush_source, &msg, NULL);
+    }
+    if(blocking){    
+	CMCondition_wait(fp_read_data->fp_cm, msg.condition);
+    }
+    return 0;
+}
+int
+adios_read_flexpath_inq_var_blockinfo(const ADIOS_FILE* fp,
+				      ADIOS_VARINFO* varinfo)
+{ /*log_debug( "flexpath:adios function inq var block info\n");*/ return 0; }
+int
+adios_read_flexpath_inq_var_stat(const ADIOS_FILE* fp,
+				 ADIOS_VARINFO* varinfo,
+				 int per_step_stat,
+				 int per_block_stat)
+{ /*log_debug( "flexpath:adios function inq var stat\n");*/ return 0; }
+void adiosread_flexpath_release_step (ADIOS_FILE *fp);
+
+
+
+array_displacements*
+get_writer_displacements(int rank, const ADIOS_SELECTION * sel, global_var* gvar)
+{
+    int ndims = sel->u.bb.ndim;
+    array_displacements * displ = (array_displacements*)malloc(sizeof(array_displacements));
+    displ->writer_rank = rank;
+
+    displ->start = (int*)malloc(sizeof(int) * ndims);
+    displ->count = (int*)malloc(sizeof(int) * ndims);    
+    displ->ndims = ndims;
+    int * offsets = gvar->offsets[0].local_offsets;
+    int * local_dims = gvar->offsets[0].local_dimensions;
+    int pos = rank * gvar->offsets[0].offsets_per_rank;
+    // malloc of ndims size;
+    //for each dim
+    int i;
+    for(i=0; i<ndims; i++){	
+	if(sel->u.bb.start[i] >= offsets[pos+i]){
+	    int start = sel->u.bb.start[i] - offsets[pos+i];
+	    displ->start[i] = start;
+	}
+	if((sel->u.bb.start[i] + sel->u.bb.count[i] - 1) <= (offsets[pos+i] + local_dims[pos+i] - 1)){	   
+	    int count = ((sel->u.bb.start[i] + sel->u.bb.count[i] - 1) - offsets[pos+i]) - displ->start[i] + 1;
+	    displ->count[i] = count;
+	    
+	}else{
+	    int count = (local_dims[pos+i] - 1) - displ->start[i] + 1;
+	    displ->count[i] = count;
+	}	
+    }
+    return displ;
+}
+
+int
+need_writer(flexpath_file_data *fp, int j, const ADIOS_SELECTION* sel, evgroup_ptr gp, char* varname) {    
+    /* if(!file_data_list->gp){ */
+    /* 	CMCondition_wait(fp_read_data->fp_cm, ackCondition); */
+    /* } */
+
+    while(!fp->gp)
+	CMsleep(fp_read_data->fp_cm, 1);
+    //select var from group
+    global_var * gvar = find_gbl_var(gp->vars, varname, gp->num_vars);
+
+    //for each dimension
+    int i=0;
+    offset_struct var_offsets = gvar->offsets[0];
+    for(i=0; i< var_offsets.offsets_per_rank; i++){
+        //select sel offsets
+        int sel_offset = sel->u.bb.start[i];
+        //grab sel dimensions(size)
+        int sel_size = sel->u.bb.count[i];        
+
+
+        //select rank offsets
+        int rank_offset = var_offsets.local_offsets[j*var_offsets.offsets_per_rank+i];
+        //grab rank dimencsions(size)
+        int rank_size =var_offsets.local_dimensions[j*var_offsets.offsets_per_rank+i];        
+
+        //if rank offset < selector offset and rank offset +size-1 > selector offset
+	
+        if((rank_offset <= sel_offset) && (rank_offset + rank_size - 1 >=sel_offset)) {
+	     log_debug("matched overlap type 1\n");
+        }
+        //if rank offset < selector offset + selector size -1 and rank offset+size-1 > selector offset +selector size -1
+        else if((rank_offset <= sel_offset + sel_size - 1) && \
+		(rank_offset+rank_size-1>=sel_offset+sel_size-1)) {
+            log_debug("matched overlap type 2\n");
+        } else {
+            log_debug("overlap not present\n\n");
+            return 0;
+        }
+    }
+    log_debug("overlap detected\n\n");
+    return 1;
+}
+
+
+int adios_read_flexpath_schedule_read_byid(const ADIOS_FILE * adiosfile,
+					   const ADIOS_SELECTION * sel,
+					   int varid,
+					   int from_steps,
+					   int nsteps,
+					   void * data)
+{   
+    flexpath_file_data * fp = (flexpath_file_data*)adiosfile->fh;
+    flexpath_var_info * v = fp->var_list;
+    while(v){
+        if(v->id == varid)
+        	break;
+        else
+    	v=v->next;
+    }
+    if(!v){
+        adios_error(err_invalid_varid,
+    		"Invalid variable id: %d\n",
+    		varid);
+        return err_invalid_varid;
+    }    
+    //store the user allocated buffer.
+    flexpath_var_chunk * chunk = &v->chunks[0];  
+    chunk->data = data;
+    v->was_scheduled = 1;
+    if(nsteps != 1){
+	adios_error (err_invalid_timestep,
+                     "Only one step can be read from a stream at a time. "
+                     "You requested % steps in adios_schedule_read()\n", nsteps);
+        return err_invalid_timestep;
+    }
+    v->sel = sel;
+    switch(sel->type)
+    {
+    case ADIOS_SELECTION_WRITEBLOCK:
+    {
+	int writer_index = sel->u.block.index;
+	if(writer_index > fp->num_bridges){
+	    adios_error(err_out_of_bound,
+			"No process exists on the writer side matching the index.\n");
+	}
+
+        int i = 0;
+        int found = 0;
+        for(i=0; i<fp->num_sendees; i++) {
+            if(fp->sendees[i]==writer_index) {
+                found=1;
+                break;
+            }
+        }
+        if(!found) {
+            fp->num_sendees+=1;
+            fp->sendees=realloc(fp->sendees, fp->num_sendees*sizeof(int));
+            fp->sendees[fp->num_sendees-1] = writer_index;
+        }
+        if(!fp->bridges[writer_index].created) {
+            build_bridge(&(fp->bridges[writer_index]));
+	}
+	if(!fp->bridges[writer_index].opened){
+	    fp->bridges[writer_index].opened = 1;
+            op_msg open_msg;
+            open_msg.process_id = fp->rank;
+            open_msg.file_name = fp->file_name;
+            open_msg.type = 1;
+            open_msg.step = 0;
+	    open_msg.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+            EVsubmit(fp->bridges[writer_index].op_source, &open_msg, NULL);
+            CMCondition_wait(fp_read_data->fp_cm, open_msg.condition);
+	}
+	Var_msg var;
+	var.rank = fp->rank;
+	var.var_name = strdup(v->varname);
+	EVsubmit(fp->bridges[writer_index].var_source, &var, NULL);    
+	break;
+    }
+    case ADIOS_SELECTION_BOUNDINGBOX:
+    {
+        fp_log("BOUNDING", "bounding box scheduled read\n");
+	if(!fp->gp){
+	    Flush_msg msg;
+	    msg.type = EVGROUP;
+	    msg.rank = fp->rank;
+	    msg.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+	    // maybe check to see if the bridge is create first.
+	    EVsubmit(fp->bridges[fp->writer_coordinator].flush_source, &msg, NULL);
+	    CMCondition_wait(fp_read_data->fp_cm, msg.condition);
+	}
+        int j=0;
+	int need_count = 0;
+	array_displacements * all_disp = NULL;	
+        for(j=0; j<fp->size; j++) {
+            fp_log("BOUNDING", "checking writer %d\n", j);
+            int reader=0;	    	    
+            if(need_writer(fp, j, sel, fp->gp, v->varname)==1){
+                fp_log("BOUNDING", "yes it's neededi\n");		
+		need_count++;
+                reader = j;
+		global_var * gvar = find_gbl_var(fp->gp->vars, v->varname, fp->gp->num_vars);
+		array_displacements * displ = get_writer_displacements(j, sel, gvar);
+		all_disp = realloc(all_disp, sizeof(array_displacements)*need_count);
+		all_disp[need_count-1] = *displ;
+            } else {
+                fp_log("BOUNDING", "no it's not\n");		
+                continue;
+            }
+            int i = 0;
+            int found = 0;
+            fp_log("BOUNDING", "remember who to read from\n");
+            for(i=0; i<fp->num_sendees; i++) {
+                if(fp->sendees[i]==reader) {
+                    found=1;
+                    break;
+                }
+            }
+            if(!found) {
+                fp->num_sendees+=1;
+                fp->sendees=realloc(fp->sendees, fp->num_sendees*sizeof(int));
+                fp->sendees[fp->num_sendees-1] = reader;
+            }
+            if(!fp->bridges[reader].created) {
+                build_bridge(&(fp->bridges[reader]));
+	    }
+	    if(!fp->bridges[reader].opened){
+		op_msg open_msg;
+		open_msg.process_id = fp->rank;
+		open_msg.file_name = "hey";
+		open_msg.type = 1;
+		open_msg.step = adiosfile->current_step;
+		fp->bridges[reader].opened = 1;
+		open_msg.condition = CMCondition_get(fp_read_data->fp_cm, NULL);
+		EVsubmit(fp->bridges[reader].op_source, &open_msg, NULL);
+		CMCondition_wait(fp_read_data->fp_cm, open_msg.condition);
+	    }
+	
+	    Var_msg var;
+	    var.rank = fp->rank;
+	    var.var_name = strdup(v->varname);
+	    log_debug("1 sending %s from %d to %p aka %d\n", 
+		 var.var_name, var.rank, fp->bridges[reader].var_source, reader);
+	    EVsubmit(fp->bridges[reader].var_source, &var, NULL);            
+	}
+	v->displ = all_disp;
+	v->num_displ = need_count;
+        break;
+    }
+    case ADIOS_SELECTION_AUTO:
+    {
+	adios_error(err_operation_not_supported,
+		    "ADIOS_SELECTION_AUTO not yet supported by flexpath.");
+	break;
+    }
+    case ADIOS_SELECTION_POINTS:
+    {
+	adios_error(err_operation_not_supported,
+		    "ADIOS_SELECTION_POINTS not yet supported by flexpath.");
+	break;
+    }
+    }
+    log_debug("\t\tFLEXPATH READER LEAVING SCHEDULE_READ\n\n");
+    return 0;
+}
+
+int adios_read_flexpath_schedule_read(const ADIOS_FILE *adiosfile,
+			const ADIOS_SELECTION * sel,
+			const char * varname,
+			int from_steps,
+			int nsteps,
+			void * data)
+{
+    return 0;
+}
+
+int adios_read_flexpath_fclose(ADIOS_FILE *adiosfile)
+{
+    //log_debug( "debug: adios_read_flexpath_fclose\n");
+    return 0;
+}
+
+int * adios_read_flexpath_gopen (ADIOS_FILE *adiosfile, const char *grpname)
+{
+    //log_debug( "debug: adios_read_flexpath_gopen\n");
+    return NULL;
+}
+
+int * adios_read_flexpath_gopen_byid (ADIOS_FILE *adiosfile, int grpid)
+{
+    //log_debug( "debug: adios_read_flexpath_gopen_byid\n");
+    return NULL;
+}
+
+int adios_read_flexpath_gclose (int *gp)
+{
+    log_debug( "adios_read_flexpath_gclose\n");
+    adios_errno = 0;
+    int i;
+//    free_namelist ((gp->var_namelist),gp->vars_count);
+    free(gp);
+    return 0;
+
+}
+
+int adios_read_flexpath_get_attr (int *gp, const char *attrname,
+                                 enum ADIOS_DATATYPES *type,
+                                 int *size, void **data)
+{
+    //log_debug( "debug: adios_read_flexpath_get_attr\n");
+    // TODO: borrowed from dimes
+    adios_error(err_invalid_read_method, "adios_read_flexpath_get_attr is not implemented.");
+    *size = 0;
+    *type = adios_unknown;
+    *data = 0;
+    return adios_errno;
+}
+
+int adios_read_flexpath_get_attr_byid (const ADIOS_FILE *adiosfile, int attrid,
+                                      enum ADIOS_DATATYPES *type,
+                                      int *size, void **data)
+{
+//    log_debug( "debug: adios_read_flexpath_get_attr_byid\n");
+    // TODO: borrowed from dimes
+    adios_error(err_invalid_read_method, "adios_read_flexpath_get_attr_byid is not implemented.");
+    *size = 0;
+    *type = adios_unknown;
+    *data = 0;
+    return adios_errno;
+}
+
+ADIOS_VARINFO* adios_read_flexpath_inq_var(const ADIOS_FILE * adiosfile, const char* varname)
+{
+    log_debug("\t\tFLEXPATH READER CALLS INQ_VAR\n\n");
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    ADIOS_VARINFO* v = malloc(sizeof(ADIOS_VARINFO));
+    if(!v) {
+        adios_error(err_no_memory, "Cannot allocate buffer in adios_read_datatap_inq_var()");
+	log_debug("\t\tFLEXPATH INQ_VAR_ERROR\n\n");
+        return NULL;
+    }
+    memset(v, 0, sizeof(ADIOS_VARINFO));
+    
+    flexpath_var_info *current_var = find_fp_var(fp->var_list, varname);
+    if(current_var) {
+	v = convert_file_info(current_var, v, varname, adiosfile);
+	log_debug("\t\tFLEXPATH READER LEAVING INQ_VAR\n");
+	return v;
+    }
+    else {
+	log_debug("\t\t%s OOOPS, line %d\n", __func__, __LINE__);
+        adios_error(err_invalid_varname, "Cannot find var %s\n", varname);
+        return NULL;
+    }
+}
+
+ADIOS_VARINFO * adios_read_flexpath_inq_var_byid (const ADIOS_FILE * adiosfile, int varid)
+{
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    if(varid >= 0 && varid < adiosfile->nvars) {
+        return adios_read_flexpath_inq_var(adiosfile, adiosfile->var_namelist[varid]);
+    }
+    else {
+        adios_error(err_invalid_varid, "FLEXPATH method: Cannot find var %d\n", varid);
+        return NULL;
+    }
+}
+
+ADIOS_VARINFO* 
+convert_file_info(flexpath_var_info * current_var,
+				 ADIOS_VARINFO * v, const char* varname,
+				 const ADIOS_FILE *adiosfile)
+{
+    int i;
+    flexpath_file_data *fp = (flexpath_file_data*)adiosfile->fh;
+    current_var->type = v->type;
+    for(i = 0; i < adiosfile->nvars; i ++) {
+	if(!strcmp(adiosfile->var_namelist[i], varname)) {
+	    v->varid = i; // TODO: this may not be cmpatible with BP
+	    break;
+	}
+    }
+    v->type = current_var->type;
+    v->ndim = current_var->ndims;
+    //v->timedim = current_var->time_dim;
+    if(v->ndim == 0){    
+	//int value_size = common_read_type_size(v->type, current_var->chunks->data);
+	int value_size = current_var->data_size;
+	v->value = malloc(value_size);
+	if(!v->value) {
+	    adios_error(err_no_memory, "Cannot allocate buffer in adios_read_datatap_inq_var()");
+	    return NULL;
+	}
+	flexpath_var_chunk * chunk = &current_var->chunks[0];
+	memcpy(v->value, chunk->data, value_size);
+    }else{ // arrays
+	v->dims = (uint64_t *) malloc(v->ndim * sizeof(uint64_t));
+	if(!v->dims) {
+	    adios_error(err_no_memory, "Cannot allocate buffer in adios_read_datatap_inq_var()");
+	    return NULL;
+	}
+	int k;
+	for(k = 0; k < v->ndim; k ++) {
+	    //v->dims[k] = ds->pgs[i].vars[j].global_bounds[k];
+	    v->dims[k] = current_var->chunks->global_bounds[k];
+	}
+    }
+    return v;
+}
+
+
+void adios_read_flexpath_free_varinfo (ADIOS_VARINFO *adiosvar)
+{
+    //log_debug( "debug: adios_read_flexpath_free_varinfo\n");
+    return;
+}
+
+int64_t adios_read_flexpath_read_var (int *gp, const char *varname,
+                                     const uint64_t *start, const uint64_t *count,
+                                     void *data)
+{
+    //log_debug( "debug: adios_read_flexpath_read_var\n");
+    return (int64_t)0;
+}
+
+int64_t adios_read_flexpath_read_var_byid (int *gp, int varid,
+                                          const uint64_t *start,
+                                          const uint64_t *count,
+                                          void *data)
+{
+    //log_debug( "debug: adios_read_flexpath_read_var_byid\n");
+    return (int64_t)0;
+}
+
+void adios_read_flexpath_reset_dimension_order (const ADIOS_FILE *adiosfile, int is_fortran)
+{
+    //log_debug( "debug: adios_read_flexpath_reset_dimension_order\n");
+    adios_error(err_invalid_read_method, "adios_read_flexpath_reset_dimension_order is not implemented.");
+}
diff --git a/src/write/CMakeLists.txt b/src/write/CMakeLists.txt
new file mode 100644
index 0000000..9edf3b1
--- /dev/null
+++ b/src/write/CMakeLists.txt
@@ -0,0 +1 @@
+include_directories(${PROJECT_BINARY_DIR})
diff --git a/src/write/adios_dataspaces.c b/src/write/adios_dataspaces.c
index f56e30e..8142b25 100644
--- a/src/write/adios_dataspaces.c
+++ b/src/write/adios_dataspaces.c
@@ -101,73 +101,6 @@ static int get_dim_rank_value(struct adios_dimension_item_struct * dim_info, str
     }
 }
 
-static void adios_dataspaces_var_to_comm  (const char * comm_name
-                                    ,enum ADIOS_FLAG host_language_fortran
-                                    ,void * data
-                                    ,MPI_Comm * comm
-                                    )
-{
-    if (data)
-    {
-        int t = *(int *) data;
-
-        if (!comm_name || !strcmp (comm_name, ""))
-        {
-            if (!t)
-            {
-                log_error ("ERROR: communicator not provided and none "
-                                 "listed in XML.  Defaulting to "
-                                 "MPI_COMM_SELF\n"
-                        );
-
-                *comm = MPI_COMM_SELF;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-        else
-        {
-            if (!t)
-            {
-                log_error ("ERROR: communicator not provided but one "
-                                 "listed in XML.  Defaulting to "
-                                 "MPI_COMM_WORLD\n"
-                        );
-
-                *comm = MPI_COMM_WORLD;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-    }
-    else
-    {
-        log_error ("ERROR: coordination-communication not provided. "
-                         "Using MPI_COMM_WORLD instead\n"
-                );
-
-        *comm = MPI_COMM_WORLD;
-    }
-}
-
 
 static int connect_to_dspaces (struct adios_ds_data_struct * p, MPI_Comm comm)
 {
@@ -233,7 +166,7 @@ void adios_dataspaces_init (const PairStruct * parameters,
 #endif
     p->num_of_files = 0;
 
-    connect_to_dspaces (p, MPI_COMM_WORLD);
+    connect_to_dspaces (p, method->init_comm);
 
     log_info ("adios_dataspaces_init: done\n");
    
@@ -243,7 +176,7 @@ void adios_dataspaces_init (const PairStruct * parameters,
 
 int adios_dataspaces_open (struct adios_file_struct * fd,
                     struct adios_method_struct * method,
-                    void *comm
+                    MPI_Comm comm
                     )
 {
     int ret = 0;
@@ -256,24 +189,15 @@ int adios_dataspaces_open (struct adios_file_struct * fd,
 #if HAVE_MPI
     // if we have MPI and a communicator, we can get the exact size of this application
     // that we need to tell DATASPACES
-    MPI_Comm group_comm;
-    if (comm) {
-        adios_dataspaces_var_to_comm (
-                fd->group->group_comm, 
-                fd->group->adios_host_language_fortran,
-                comm, &group_comm);
-    } else {
-        group_comm = MPI_COMM_WORLD;
-    }
-    MPI_Comm_rank (group_comm, &(p->rank));
-    MPI_Comm_size (group_comm, &(p->peers));
-    p->mpi_comm = group_comm;
+    p->mpi_comm = comm;
+    MPI_Comm_rank (p->mpi_comm, &(p->rank));
+    MPI_Comm_size (p->mpi_comm, &(p->peers));
 #endif
 
     // connect to DATASPACES at the very first adios_open(), disconnect in adios_finalize()
     // connect only if the READ API has not connected yet
     /*
-    ret = connect_to_dspaces (p, group_comm);
+    ret = connect_to_dspaces (p, p->mpi_comm);
     if (ret)
         return ret;
     */
diff --git a/src/write/adios_dimes.c b/src/write/adios_dimes.c
index 9c79845..909e502 100644
--- a/src/write/adios_dimes.c
+++ b/src/write/adios_dimes.c
@@ -7,7 +7,7 @@
 // xml parser
 #include <mxml.h>
 
-// dart
+// for dataspaces ???
 #include <sys/uio.h>
 
 // see if we have MPI or other tools
@@ -19,27 +19,37 @@
 #include "core/adios_internals.h"
 #include "core/adios_internals_mxml.h"
 #include "core/util.h"
+#include "core/ds_metadata.h"
+#include "core/adios_logger.h"
 
-#include "dimes.h"
-/*#define DIMES_DO_VERSIONING define it at configure as -DDART_DO_VERSIONING in CFLAGS*/
+#include "dataspaces.h"
 
-static int adios_dimes_initialized = 0;
-#define MAX_DIMES_NAMELEN 128
-static char dimes_type_var_name[MAX_DIMES_NAMELEN];
-static char dimes_var_name[MAX_DIMES_NAMELEN];
+/*#define DATASPACES_NO_VERSIONING  define it at configure as -DDATASPACES_NO_VERSIONING in CFLAGS */
 
-static int dimes_sync_id = 0;
+static int adios_dimes_initialized = 0;
+#define MAX_DS_NAMELEN 128
+#define MAX_NUM_OF_FILES 20
+static char ds_var_name[MAX_DS_NAMELEN];
+static unsigned int adios_dimes_verbose = 3;
 
-struct adios_DIMES_data_struct
+struct adios_dimes_data_struct
 {
-	int rank; //dart rank or MPI rank if MPI is available
-	int peers; //from xml parameter or group communicator
-	int appid; //from xml parameter or 1
-	int time_index; //versioning in DIMES, start from 0
-	int n_writes; //how many times adioes_write has been called
+    int rank;   // dataspaces rank or MPI rank if MPI is available
+    int peers;  // from xml parameter or group communicator
+    int appid;  // from xml parameter or 1
+    int time_index; // versioning in DataSpaces, start from 0
+    int n_writes; // how many times adios_write has been called
+#if HAVE_MPI
+    MPI_Comm mpi_comm;
+#endif
+    int  num_of_files; // how many files do we have with this method
+    char *fnames[MAX_NUM_OF_FILES];  // names of files (needed at finalize)
+    int  fversions[MAX_NUM_OF_FILES];   // last steps of files (needed at finalize)
 };
 
-int adios_dimes_get_dim_rank_value(struct adios_dimension_item_struct * dim_info, struct adios_group_struct *group)
+
+
+static int get_dim_rank_value(struct adios_dimension_item_struct * dim_info, struct adios_group_struct *group)
 {
     if(!dim_info)
        return 0;
@@ -90,248 +100,243 @@ int adios_dimes_get_dim_rank_value(struct adios_dimension_item_struct * dim_info
     }
 }
 
-void adios_dimes_init(const PairStruct *parameters,
-					struct adios_method_struct *method)
-{
-	struct adios_DIMES_data_struct *p = NULL;
-	if(!adios_dimes_initialized){
-		adios_dimes_initialized = 1;
-	}
-	
-    	method->method_data = calloc (1, sizeof (struct adios_DIMES_data_struct));
-    	p = (struct adios_DIMES_data_struct*)method->method_data;
-	
-	int index, i;
-	char temp[64];
-	int num_peers;
-	int appid;
-	int was_set;
-	
-	num_peers = 1; //Init value
-	//application ID should be set by the application calling adios_set_application_id()
-	appid = globals_adios_get_application_id(&was_set);
-	if(!was_set)
-		appid = 1;
-	
-	//init the static data structure
-	p->peers = num_peers;
-	p->appid = appid;
-	p->time_index = 0;
-	p->n_writes = 0;
-	
-	fprintf(stderr, "adios_dimes_init: appid=%d, peers=%d\n", p->appid, p->peers);
-   
-}
 
-static void adios_dimes_var_to_comm(const char *comm_name,
-								enum ADIOS_FLAG host_language_fortran,
-								void *data,
-								MPI_Comm *comm)
+static int connect_to_dimes (struct adios_dimes_data_struct * p, MPI_Comm comm)
 {
-    if (data)
-    {
-        int t = *(int *) data;
+    int ret = 0;
+    int num_peers;
 
-        if (!comm_name || !strcmp (comm_name, ""))
-        {
-            if (!t)
-            {
-                fprintf (stderr, "communicator not provided and none "
-                                 "listed in XML.  Defaulting to "
-                                 "MPI_COMM_SELF\n"
-                        );
+    if (!globals_adios_is_dimes_connected()) {
 
-                *comm = MPI_COMM_SELF;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-        else
-        {
-            if (!t)
-            {
-                fprintf (stderr, "communicator not provided but one "
-                                 "listed in XML.  Defaulting to "
-                                 "MPI_COMM_WORLD\n"
-                        );
+        MPI_Comm_rank (comm, &(p->rank));
+        MPI_Comm_size (comm, &num_peers);
 
-                *comm = MPI_COMM_WORLD;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
+        // Application ID should be set by the application calling adios_set_application_id()
+        int was_set;
+        p->appid = globals_adios_get_application_id (&was_set);
+        if (!was_set)
+            p->appid = 1;
+
+        log_debug ("adios_dimes: rank=%d connect to DATASPACES, peers=%d, appid=%d \n",
+                p->rank, num_peers, p->appid);
+
+        //Init the dart client
+        ret = dspaces_init (num_peers, p->appid);
+        if (ret) {
+            log_error ("adios_dimes: rank=%d Failed to connect to DATASPACES: err=%d,  rank=%d\n", p->rank, ret);        
+            return ret;
         }
-    }
-    else
-    {
-        fprintf (stderr, "coordination-communication not provided. "
-                         "Using MPI_COMM_WORLD instead\n"
-                );
 
-        *comm = MPI_COMM_WORLD;
+#if ! HAVE_MPI
+        dspaces_rank (&(p->rank));
+        dspaces_peers (&(p->peers));
+#endif
+
+        log_debug ("adios_dimes: rank=%d connected to DATASPACES: peers=%d\n", p->rank, p->peers);        
+        globals_adios_set_dimes_connected_from_writer();
     }
-}								
+    return ret;
+}
 
-int adios_dimes_open(struct adios_file_struct *fd,
-					struct adios_method_struct *method,
-					void *comm)
+
+void adios_dimes_init (const PairStruct * parameters,
+                     struct adios_method_struct * method
+                     )
 {
-	int ret = 0;
-	struct adios_DIMES_data_struct *p = (struct adios_DIMES_data_struct*)
-									method->method_data;
-	int num_peers = p->peers;
-	
-        fprintf(stderr, "adios_dimes_open: open %s, mode=%d, time_index=%d \n",
-                        fd->name, fd->mode, p->time_index);	
-	
+    struct adios_dimes_data_struct *p = 0;
+    if (!adios_dimes_initialized)
+    {
+        adios_dimes_initialized = 1;
+    }
+   
+    method->method_data = calloc (1, sizeof (struct adios_dimes_data_struct));
+    p = (struct adios_dimes_data_struct*)method->method_data;
+    
+    int index, i;
+    char temp[64];
+
+    //Init the static data structure
+    p->peers = 1;
+    p->appid = -1;
+    p->time_index = 0;
+    p->n_writes = 0;
 #if HAVE_MPI
-		//Get applicaitons size / process rank info from MPI communicator,
-		//which is necessary for dimes
-		MPI_Comm group_comm;
-		if(comm) {
-			adios_dimes_var_to_comm(fd->group->group_comm,fd->group->adios_host_language_fortran,
-									comm, &group_comm);
-			MPI_Comm_rank(group_comm, &(p->rank));
-			MPI_Comm_size(group_comm, &num_peers);
-			p->peers = num_peers;
-		}
+    p->mpi_comm = MPI_COMM_NULL;
 #endif
-	
-	//connect to DIMES index srv at the very first adios_open(),disconnect in adios_finalize()
-	if(!globals_adios_is_dimes_connected()){
-		//Init dimes client
-		//int num_total_peers = 64+16+1;
-		ret = dimes_init(num_peers,num_peers,p->appid);
-		if(ret<0){
-			fprintf(stderr, "adios_dimes_open: rank=%d Failed to connect to index srv: err=%d,  rank=%d\n", p->rank, ret);        
-            		return ret;
-		}
-		
-#if !HAVE_MPI
-		p->rank = dimes_rank();
-		p->peers = dimes_peers();
+    p->num_of_files = 0;
+
+    connect_to_dimes (p, method->init_comm);
+
+    log_info ("adios_dimes_init: done\n");
+   
+}
+
+
+
+int adios_dimes_open (struct adios_file_struct * fd,
+                    struct adios_method_struct * method,
+                    MPI_Comm comm
+                    )
+{
+    int ret = 0;
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+                                                method->method_data;
+  
+    log_info ("adios_dimes_open: open %s, mode=%d, time_index=%d \n",
+                        fd->name, fd->mode, p->time_index);
+
+#if HAVE_MPI
+    // if we have MPI and a communicator, we can get the exact size of this application
+    // that we need to tell DATASPACES
+    p->mpi_comm = comm;
+    MPI_Comm_rank (p->mpi_comm, &(p->rank));
+    MPI_Comm_size (p->mpi_comm, &(p->peers));
 #endif
 
-		fprintf(stderr,"adios_dimes_open:rank=%d connected to DIMES index srv: peers=%d, appid=%d\n",
-			p->rank, p->peers, p->appid);
-	}
-	globals_adios_set_dimes_connected_from_writer();
-	
-	return ret;
+    if (fd->mode == adios_mode_write || fd->mode == adios_mode_append)
+    {
+        log_debug ("adios_dimes_open: rank=%d call write lock...\n", p->rank);       
+	// Block till all previously allocated RDMA buffers are fetched. 
+	dimes_put_sync_all();
+        dspaces_lock_on_write (fd->name, &p->mpi_comm);  
+        log_debug ("adios_dimes_open: rank=%d got write lock\n", p->rank);        
+    }
+    else if (fd->mode == adios_mode_read)
+    {
+        dspaces_lock_on_read (fd->name, &p->mpi_comm);
+    } 
+  
+    return ret;
 }
 
-enum ADIOS_FLAG adios_dimes_should_buffer(struct adios_file_struct *fd,
-										struct adios_method_struct *method)
+enum ADIOS_FLAG adios_dimes_should_buffer (struct adios_file_struct * fd
+                                         ,struct adios_method_struct * method
+                                         )
 {
-	return adios_flag_no;
+    
+    //if (fd->shared_buffer == adios_flag_no && fd->mode != adios_mode_read)
+    //{
+        // write the process group header
+        //adios_write_process_group_header_v1 (fd, fd->write_size_bytes);
+        //adios_write_open_vars_v1 (fd);
+    //} else {
+    //    log_warn("WARNING: %s expects that fd->shared_buffer is false\n", __func__);
+    //}
+    
+
+    return adios_flag_no;  // this will take care of it
 }
 
-void adios_dimes_write(struct adios_file_struct *fd,
-			struct adios_var_struct *v,
-			void *data,
-			struct adios_method_struct *method)
+
+void adios_dimes_write (struct adios_file_struct * fd
+                      ,struct adios_var_struct * v
+                      ,void * data
+                      ,struct adios_method_struct * method
+                      )
 {
-	struct adios_DIMES_data_struct *p = (struct adios_DIMES_data_struct *)
-							method->method_data;
-	
-	struct adios_group_struct *group = fd->group;
-	
-	//Get var size
-	int var_type_size = (int)adios_get_type_size(v->type,v->data);
-	//Get var name
-	char *var_name = v->name;
-	int err;
-	
-	//Get two offset coordinate values
-	unsigned int version;
-	
-	int dims[3]={1,1,1},lb[3]={0,0,0},ub[3]={0,0,0};/*lower and upper bounds*/
-	int ndims = 0;
-	struct adios_dimension_struct *var_dimensions = v->dimensions;
-	//Calculate lower and upper bounds for each var(up to 3 dims)
-	while( var_dimensions && ndims<3 ){
-		dims[ndims] = adios_dimes_get_dim_rank_value(&(var_dimensions->dimension), group);
-		lb[ndims] = adios_dimes_get_dim_rank_value(&(var_dimensions->local_offset),group);
-		ub[ndims] = lb[ndims] + dims[ndims] - 1;
-		var_dimensions = var_dimensions->next;
-		ndims++;
-	}
-	
-#ifdef DIMES_DO_VERSIONING
-	version = p->time_index;
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+                                                            method->method_data;
+    struct adios_group_struct *group = fd->group;
+    //Get var size
+    //  FIXME: type size of a string >2GB does not fit to int. 
+    //  adios_get_type_size returns uint64_t but dspaces_put handles only int
+    //  as element size
+    int var_type_size = (int) adios_get_type_size(v->type, v->data);
+    //Get var name
+    char * var_name = v->name;
+    int err;
+
+    //Get two offset coordinate values
+    unsigned int version;
+
+    int dims[3]={1,1,1}, gdims[3]={0,0,0}, lb[3]={0,0,0}, ub[3]={0,0,0}; /* lower and upper bounds for DataSpaces */
+    int didx[3]; // for reordering the dimensions
+    int ndims = 0;
+    int hastime = 0;
+    struct adios_dimension_struct* var_dimensions = v->dimensions;
+    // Calculate lower and upper bounds for each available dimension (up to 3 dims)
+    while( var_dimensions && ndims < 3)
+    {
+        dims[ndims] = get_dim_rank_value(&(var_dimensions->dimension), group);
+        gdims[ndims] = get_dim_rank_value(&(var_dimensions->global_dimension), group);
+        lb[ndims] = get_dim_rank_value(&(var_dimensions->local_offset), group);
+        if (dims[ndims] > 0)  {
+            ub[ndims] = lb[ndims] + dims[ndims] - 1;
+            ndims++;
+        }   else {
+            // time dimension (ldim=0 indicates this). Leave out from the dimensions.
+            //ub[ndims] = lb[ndims]; 
+            hastime = 1;
+        }
+        var_dimensions = var_dimensions->next;
+    }
+
+#ifdef DATASPACES_NO_VERSIONING
+    version = 0;              /* Update/overwrite data in DataSpaces  (we write time_index as a variable at close)*/
 #else
-	version = 0;
+    version = p->time_index;  /* Add new data as separate to DataSpaces */
 #endif
+    
+    if (v->path != NULL && v->path[0] != '\0' && strcmp(v->path,"/")) 
+        snprintf(ds_var_name, MAX_DS_NAMELEN, "%s/%s/%s/%s", fd->name, fd->group->name, v->path, v->name);
+    else 
+        snprintf(ds_var_name, MAX_DS_NAMELEN, "%s/%s//%s", fd->name, fd->group->name, v->name);
+
+    //snprintf(dspaces_type_var_name, MAX_DS_NAMELEN, "TYPE@%s", ds_var_name);
+    
+    /* non-global variables are put in space ONLY by rank = 0 process */
+    if (gdims[0] == 0 && p->rank != 0) {
+        //fprintf(stderr, "rank=%d var_name=%s is not global. Skip\n", p->rank, ds_var_name);
+        return;
+    }
+
+    
+    //if (fd->shared_buffer == adios_flag_no)
+    //{
+        // var payload sent for sizing information
+        //adios_write_var_header_v1 (fd, v);
+    //}
+    
+     
+    v->write_offset = 1; // only !=0 offsets will be included in build index
+    adios_generate_var_characteristics_v1 (fd, v); // characteristics will be included in build index
+    adios_write_var_characteristics_v1 (fd, v);
+    
+
+    log_debug ("var_name=%s, type=%s(%d) elemsize=%d, version=%d, ndims=%d, size=(%d,%d,%d), gdim=(%d,%d,%d), lb=(%d,%d,%d), ub=(%d,%d,%d)\n",
+            ds_var_name, adios_type_to_string_int(v->type), v->type, var_type_size, version, ndims,
+            dims[0], dims[1], dims[2], gdims[0], gdims[1], gdims[2], lb[0], lb[1], lb[2], ub[0], ub[1], ub[2]);
+
+    /* non-timed scalars are written in the metadata at close(), not here */
+    if (ndims == 0 && !hastime)
+        return;
 
-	//Construct var name and var type name	
-	snprintf(dimes_var_name, MAX_DIMES_NAMELEN, "%s/%s", fd->name, v->name);
-	snprintf(dimes_type_var_name, MAX_DIMES_NAMELEN, "TYPE@%s", dimes_var_name);
-
-	/*Scalar variables are put into space only by rank=0 process*/
-	if(p->rank == 0){
-		err = dimes_put_scalar(dimes_type_var_name,version,4,0,0,0,0,0,0,v->type);
-	}
-
-	/*	
-	if(group->adios_host_language_fortran == adios_flag_yes || ndims == 1){
-		//Flip 1st and 2nd dimension for any Fortran writings and any 1D array
-		dimes_put(dimes_var_name, version, var_type_size,lb[1],lb[0],lb[2],ub[1],ub[0],ub[2],data,1);
-	} else {
-		//Keep dimension order in case of C writer of 2-3D arrays
-		dimes_put(dimes_var_name, version, var_type_size,lb[0],lb[1],lb[2],ub[0],ub[1],ub[2],data,1);
-	}
-	*/
-	if( lb[0]==0 && lb[1]==0 && lb[2]==0 && ub[0]==0 && ub[1]==0 && ub[2]==0){
-		if(p->rank == 0){
-			/*Scalar variables are put into space only by rank=0 process*/
-			int scalar_data = *(int *)data;
-			dimes_put_scalar(dimes_var_name, version, 4, 0,0,0,0,0,0, scalar_data);
-
-			fprintf(stderr, "var_name=%s, type=%s(%d) elemsize=%d, version=%d, size_x=%d, size_y=%d, size_z=%d, (%d,%d,%d), (%d,%d,%d)\n",
-				dimes_var_name, adios_type_to_string_int(v->type), v->type, var_type_size, version,
-				dims[0], dims[1], dims[2], lb[0], lb[1], lb[2], ub[0], ub[1], ub[2]);
-		}
-	}
-	else {
-		/*Multi-dimension(1-D,2-D or 3-D) array is put into space*/
-		if(group->adios_host_language_fortran == adios_flag_yes || ndims == 1){
-			//Flip 1st and 2nd dimension for any Fortran writings and any 1D array
-			dimes_put(dimes_var_name, version, var_type_size,lb[1],lb[0],lb[2],ub[1],ub[0],ub[2],data,1);
-		} else {
-			//Keep dimension order in case of C writer of 2-3D arrays
-			dimes_put(dimes_var_name, version, var_type_size,lb[0],lb[1],lb[2],ub[0],ub[1],ub[2],data,1);
-		}
-	
-		/*
-		fprintf(stderr, "var_name=%s, type=%s(%d) elemsize=%d, version=%d, size_x=%d, size_y=%d, size_z=%d, (%d,%d,%d), (%d,%d,%d)\n",
-			dimes_var_name, adios_type_to_string_int(v->type), v->type, var_type_size, version,
-			dims[0], dims[1], dims[2], lb[0], lb[1], lb[2], ub[0], ub[1], ub[2]);
-		*/
-	}
+    /* Put type info as T<varname>, integer in 0,0,0,0,0,0 position */
+    //err = dspaces_put(dspaces_type_var_name, version, 4, 0,0,0,0,0,0, &(v->type)); 
+
+    dimes_dimension_ordering(ndims,
+            group->adios_host_language_fortran == adios_flag_yes, 
+            0 /*pack*/, didx);
+
+    dimes_put(ds_var_name, version, var_type_size, 
+             lb[didx[0]], lb[didx[1]], lb[didx[2]], 
+             ub[didx[0]], ub[didx[1]], ub[didx[2]], 
+             data);
+    
+    log_debug ("var_name=%s, dimension ordering=(%d,%d,%d), gdims=(%d,%d,%d), lb=(%d,%d,%d), ub=(%d,%d,%d)\n",
+            ds_var_name, 
+            didx[0], didx[1], didx[2], 
+            gdims[didx[0]], gdims[didx[1]], gdims[didx[2]], 
+            lb[didx[0]], lb[didx[1]], lb[didx[2]], 
+            ub[didx[0]], ub[didx[1]], ub[didx[2]]);
 }
 
-void adios_dimes_get_write_buffer(struct adios_file_struct *fd,
-				struct adios_var_struct *v,
-				uint64_t *size,
-				void **buffer,
-				struct adios_method_struct *method)
+void adios_dimes_get_write_buffer (struct adios_file_struct * fd
+                                 ,struct adios_var_struct * v
+                                 ,uint64_t * size
+                                 ,void ** buffer
+                                 ,struct adios_method_struct * method
+                                 )
 {
     uint64_t mem_allowed;
 
@@ -356,8 +361,8 @@ void adios_dimes_get_write_buffer(struct adios_file_struct *fd,
         if (!*buffer)
         {
             adios_method_buffer_free (mem_allowed);
-            fprintf (stderr, "Out of memory allocating %llu bytes for %s\n"
-                    ,*size, v->name
+            log_error ("ERROR: Out of memory allocating %llu bytes for %s in %s:%s()\n"
+                    ,*size, v->name, __FILE__, __func__
                     );
             v->got_buffer = adios_flag_no;
             v->free_data = adios_flag_no;
@@ -377,98 +382,605 @@ void adios_dimes_get_write_buffer(struct adios_file_struct *fd,
     else
     {
         adios_method_buffer_free (mem_allowed);
-        fprintf (stderr, "OVERFLOW: Cannot allocate requested buffer of %llu "
-                         "bytes for %s\n"
+        log_error ("OVERFLOW: Cannot allocate requested buffer of %llu "
+                         "bytes for %s in %s:%s()\n"
                 ,*size
                 ,v->name
+                ,__FILE__, __func__
                 );
         *size = 0;
         *buffer = 0;
     }
 }
 
-/*NOT IMPLEMENTED. Use READ API to read variables*/
-void adios_dimes_read(struct adios_file_struct *fd,
-					struct adios_var_struct *v, void *buffer,
-					uint64_t buffer_size,
-					struct adios_method_struct *method)
+/* NOT IMPLEMENTED. Use the Read API to read variables */
+void adios_dimes_read (struct adios_file_struct * fd
+                     ,struct adios_var_struct * v, void * buffer
+                     ,uint64_t buffer_size
+                     ,struct adios_method_struct * method
+                     )
 {
-	//NOT TO DO
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+                                                            method->method_data;
+    uint64_t var_type_size = adios_get_type_size(v->type, v->data);
+
+    //Get var name
+    char * var_name = v->name;
+
+    //Get two offset coordinate values
+    int version, offset1[3],offset2[3];
+    int dim_size[3];
+    memset(offset1, 0, 3*sizeof(int));
+    memset(offset2, 0, 3*sizeof(int));
+    memset(dim_size, 0, 3*sizeof(int));
+
+    version = p->time_index;
 }
 
-void adios_dimes_close(struct adios_file_struct *fd,
-					struct adios_method_struct *method)
+/* Gather var/attr indices from all processes to rank 0 */
+static void adios_dimes_gather_indices (struct adios_file_struct * fd
+                               ,struct adios_method_struct * method
+                               ,struct adios_index_process_group_struct_v1 **pg_root 
+                               ,struct adios_index_var_struct_v1 **vars_root
+                               ,struct adios_index_attribute_struct_v1 ** attrs_root
+                               )
 {
-	struct adios_DIMES_data_struct *p = (struct adios_DIMES_data_struct *)
-											method->method_data;
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+                                                method->method_data;
+    struct adios_index_process_group_struct_v1 * my_pg_root = 0;
+    struct adios_index_var_struct_v1 * my_vars_root = 0;
+    struct adios_index_attribute_struct_v1 * my_attrs_root = 0;
+    struct adios_index_process_group_struct_v1 * new_pg_root = 0;
+    struct adios_index_var_struct_v1 * new_vars_root = 0;
+    struct adios_index_attribute_struct_v1 * new_attrs_root = 0;
+    
+    // build local index first appending to any existing index
+    adios_build_index_v1 (fd, &my_pg_root, &my_vars_root, &my_attrs_root);
+
+    log_debug ("%s index after first build is pg=%x vars=%x attrs=%x\n", 
+                __func__, my_pg_root, my_vars_root, my_attrs_root);
+#if 0
+#if HAVE_MPI
+    // gather all on rank 0
+    if (p->mpi_comm != MPI_COMM_NULL)
+    {                                
+        if (p->rank == 0)           
+        {                            
+            int * index_sizes = malloc (4 * p->peers);
+            int * index_offsets = malloc (4 * p->peers);
+            char * recv_buffer = 0;
+            uint32_t size = 0;
+            uint32_t total_size = 0;
+            int i;
+            struct adios_bp_buffer_struct_v1 b;
+
+            MPI_Gather (&size, 1, MPI_INT
+                    ,index_sizes, 1, MPI_INT
+                    ,0, p->mpi_comm
+                    );
+
+            for (i = 0; i < p->peers; i++)
+            {
+                index_offsets [i] = total_size;
+                total_size += index_sizes [i];
+            }                    
+
+            recv_buffer = malloc (total_size);
+
+            MPI_Gatherv (&size, 0, MPI_BYTE
+                    ,recv_buffer, index_sizes, index_offsets
+                    ,MPI_BYTE, 0, p->mpi_comm
+                    );
+
+            for (i = 1; i < p->peers; i++)
+            {
+                b.buff = recv_buffer + index_offsets [i];
+                b.length = index_sizes [i];
+                b.offset = 0;
+
+                adios_parse_process_group_index_v1 (&b
+                        ,&new_pg_root
+                        );
+                adios_parse_vars_index_v1 (&b, &new_vars_root);
+                adios_parse_attributes_index_v1 (&b
+                        ,&new_attrs_root
+                        );
+                adios_merge_index_v1 (&my_pg_root
+                        ,&my_vars_root
+                        ,&my_attrs_root
+                        ,new_pg_root, new_vars_root
+                        ,new_attrs_root
+                        );
+                adios_clear_index_v1 (new_pg_root, new_vars_root, new_attrs_root);
+                new_pg_root = 0;
+                new_vars_root = 0;
+                new_attrs_root = 0;
+            }
+
+            free (recv_buffer);
+            free (index_sizes);
+            free (index_offsets);
+        }
+        else
+        {
+            char * buffer = 0; 
+            uint64_t buffer_size = 0;
+            uint64_t buffer_offset = 0;
+
+            adios_write_index_v1 (&buffer, &buffer_size, &buffer_offset
+                    ,0, my_pg_root ,my_vars_root ,my_attrs_root);
+
+            uint32_t tmp_buffer_size = (uint32_t) buffer_size;
+            MPI_Gather (&tmp_buffer_size, 1, MPI_INT, 0, 0, MPI_INT
+                    ,0, p->mpi_comm
+                    );
+            MPI_Gatherv (buffer, buffer_size, MPI_BYTE
+                    ,0, 0, 0, MPI_BYTE
+                    ,0, p->mpi_comm
+                    );
+            free (buffer);
+        }
+    }
 
-	unsigned int version;	
-#ifdef DIMES_DO_VERSIONING
-	version = p->time_index;
-	dimes_sync_id = version;
-#else
-	version = 0;
-	dimes_sync_id++;
 #endif
+#endif
+
+    *pg_root = my_pg_root;
+    *vars_root = my_vars_root;
+    *attrs_root = my_attrs_root;
+    log_debug ("%s index after gathering is pg=%x vars=%x attrs=%x\n", 
+                __func__, my_pg_root, my_vars_root, my_attrs_root);
+}
+
+static int dimes_get_full_name_len (char * path, char * name)
+{
+    int len;
+    // make full name
+    if (!path || !path[0] || !strcmp (path, "/")) { 
+        // no path, just name + leading /
+        len = strlen(name) + 1;
+    } else {
+        len = strlen(path) + strlen(name) + 1;
+    }
+    return len;
+}
+
+static int dimes_get_full_name (char * path, char * name, int maxlen,
+                            /*OUT*/char * out)
+{
+    int len;
+    // make full name
+    if (!path || !path[0] || !strcmp (path, "/")) { 
+        // no path, just name + leading /
+        len = strlen(name) + 1;
+        out[0] = '/';
+        strncpy(out+1, name, maxlen-1);
+    } else {
+        len = strlen(path);
+        strncpy(out, path, maxlen-1);  // path +
+        out[len] = '/';                         //   /  +
+        strncpy(out+len+1, name, maxlen-len-1); // name
+        len += strlen(name) + 1;
+    }
+    return len;
+}
+
+void dimes_pack_group_info (struct adios_file_struct *fd
+                                  ,struct adios_method_struct * method
+                                  ,struct adios_index_var_struct_v1 *vars_root
+                                  ,struct adios_index_attribute_struct_v1 * attrs_root
+                                  ,char ** buffer, int *buffer_size, int *nvars, int *nattrs
+                                  )
+{
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+                                                method->method_data;
+    struct adios_index_var_struct_v1 * v = vars_root;
+    struct adios_index_attribute_struct_v1 * a = attrs_root;
+    int size;
+    int ndims; // whatever the type of v->characteristics->dims.count is, we write an int to buffer
+    int hastime; // true if variable has time dimension
+    uint64_t ldims[10], gdims[10]; // we can write only 3 dimensions, will drop time dim
+    *nvars = 0;
+    *nattrs = 0;
+    int didx[3]; // dimension ordering indices
+
+    log_debug ("%s entered\n", __func__);
+
+    /* First cycle: count the size of info to allocate index buffer */
+    size = 3*sizeof(int); //header for buffer: length, nvars, nattrs
+    while (v) {
+        size += 4*sizeof(int) // name len, type, hastime, number of dims 
+                + dimes_get_full_name_len (v->var_path, v->var_name) // full path
+                + 3 * 8; // always write 3 dimensions in the index (even for scalars)
+        if (v->characteristics->dims.count == 0) {
+            // For scalars, we write the value into the index
+            if (v->type != adios_string)
+                size += adios_get_type_size(v->type, NULL);
+            else
+                size += adios_get_type_size(v->type, v->characteristics->value) + sizeof(int);
+        }
+        log_debug (" var %s/%s, size = %d\n", v->var_path, v->var_name, size);
+        (*nvars)++;
+        v = v->next;
+    }
+
+    while (a) {
+        size += sizeof(int) 
+                + dimes_get_full_name_len (a->attr_path, a->attr_name)
+                + sizeof(int); // type
+        if (a->type != adios_string)
+            size += adios_get_type_size(a->type, NULL);
+        else
+            size += adios_get_type_size(a->type, a->characteristics->value) + sizeof(int);
+
+        log_debug (" attr %s/%s, size = %d\n", a->attr_path, a->attr_name, size);
+        (*nattrs)++;
+        a = a->next;
+    }
+
+    // Required for Cray Gemini: align buffer to 8 bytes boundaries
+    int align_bytes = 0; // number of extra bytes at the end
+    if (size % 8) {
+        align_bytes = 8 - (size % 8);
+        size += align_bytes;
+        log_debug (" after alignment, size = %d, align_bytes = %d\n", size, align_bytes);
+    }
+
+    *buffer = (char *) malloc (size);
+    *buffer_size = size;
+
+    /* Second cycle: fill up the buffer */
+    v = vars_root;
+    a = attrs_root;
+    char * b = *buffer;
+    int i, j, namelen;
+    char name[256];
+
+    //header for buffer: length, nvars, nattrs
+    memcpy (b, buffer_size, sizeof(int));  
+    b += sizeof(int); 
+    memcpy (b, nvars, sizeof(int));  
+    b += sizeof(int); 
+    memcpy (b, nattrs, sizeof(int));  
+    b += sizeof(int); 
+    while (v) {
+        namelen = dimes_get_full_name (v->var_path, v->var_name, sizeof(name), name);
+        memcpy (b, &namelen, sizeof(int));  // length of full path
+        b += sizeof(int); 
+        memcpy (b, name, namelen);          // full path
+        b += namelen;
+        memcpy (b, &(v->type), sizeof(int)); // type 
+        b += sizeof(int); 
+        //ndims = MAX(v->characteristics->dims.count,3); // convert whatever type to int
+        //memcpy (b, &(v->characteristics->dims.count), sizeof(int)); // number of dimensions
+        log_debug("Variable %s, total dims = %d\n", name, v->characteristics->dims.count);
+        j = 0; // we can write only 3 dims, will drop the time dimension
+        hastime = 0;
+        for (i = 0; i<v->characteristics->dims.count; i++) {
+            ldims[j] = v->characteristics->dims.dims[j*3];  // ith dimension 
+            gdims[j] = v->characteristics->dims.dims[j*3+1];  // ith dimension 
+            log_debug("           , ldim = %lld gdim = %lld)\n", ldims[j], gdims[j]);
+            if (gdims[j] == 0 && ldims[j] == 1) {
+                // time dimension's global=0, local=1, skip
+                // FIXME: This is true for a local array of length 1 (not defined as global)
+                log_debug("               skip this dimension )\n");
+                hastime = 1;
+                continue;
+            }
+            j++;
+        }
+        for (i=j; i<3; i++) {
+            // fill up dimensions up to 3rd dim
+            ldims[i] = 1;
+            gdims[i] = 1;
+        }
+        ndims = (j < 3 ? j : 3); // we can have max 3 dimensions in DataSpaces
+        memcpy (b, &hastime, sizeof(int)); // has time dimension?
+        log_debug("             has time = %d (%d)\n", hastime, *(int*)b);
+        b += sizeof(int); 
+        memcpy (b, &ndims, sizeof(int)); // number of dimensions
+        log_debug("             ndims = %d (%d)\n", ndims, *(int*)b);
+        b += sizeof(int); 
+        dimes_dimension_ordering(ndims, 
+                fd->group->adios_host_language_fortran == adios_flag_yes, 
+                0 /*pack*/, didx);
+        for (i = 0; i < 3; i++) {
+            if (gdims[didx[i]]) { 
+                // global variable
+                memcpy (b, &(gdims[didx[i]]), 8);  // ith dimension 
+            } else { 
+                // a local variable has no global dimensions
+                // in space, its local dimensions become the global dimensions
+                memcpy (b, &(ldims[didx[i]]), 8);  // ith dimension 
+            }
+            b += 8; 
+        }
+        if (v->characteristics->dims.count == 0) {
+            // NOTE: ndims = 0 can mean a timed scalar, which has no characteristics->value!
+            // store scalar value too
+            if (v->type != adios_string) {
+                size = adios_get_type_size(v->type, NULL);
+                memcpy (b, v->characteristics->value, size); 
+                b += size; 
+            } else {
+                size = adios_get_type_size(v->type, v->characteristics->value);
+                memcpy (b, &size, sizeof(int)); 
+                b += sizeof(int); 
+                memcpy (b, v->characteristics->value, size); 
+                b += size; 
+            }
+        }
+        v = v->next;
+    }
+
+    while (a) {
+        namelen = dimes_get_full_name (a->attr_path, a->attr_name, sizeof(name), name);
+        memcpy (b, &namelen, sizeof(int));  // length of full path
+        b += sizeof(int); 
+        memcpy (b, name, namelen);          // full path
+        b += namelen;
+        memcpy (b, &(a->type), sizeof(int)); // type 
+        b += sizeof(int); 
+        // store scalar value too
+        if (a->type != adios_string) {
+            size = adios_get_type_size(a->type, NULL);
+            memcpy (b, a->characteristics->value, size); 
+            b += size; 
+        } else {
+            size = adios_get_type_size(a->type, a->characteristics->value);
+            memcpy (b, &size, sizeof(int)); 
+            b += sizeof(int); 
+            memcpy (b, a->characteristics->value, size); 
+            b += size; 
+        }
+        a = a->next;
+    }
+
+    // alignment
+    if (align_bytes) {
+        uint64_t zero = 0;
+        memcpy (b, &zero, align_bytes); 
+        b += align_bytes;
+    }
+
+    // sanity check
+    if ( (int)(b-*buffer) > *buffer_size) {
+        log_error ("ERROR in %s. Calculated group index buffer size as %d, but filled after that with %d bytes\n",
+            __func__, *buffer_size, (int)(b-*buffer));
+    }
+    // written buffer might be shorter than calculated since we skip time dimensions.
+    // set the correct size now
+    *buffer_size = (int)(b-*buffer);
+    memcpy (*buffer, buffer_size, sizeof(int));  
+
+    
+    log_debug("   %s: buffer length = %d, content:\n", __func__, *buffer_size);
+    b = *buffer;
+    for (i=0; i<*buffer_size; i+=16) {
+        for (j=0; j<4; j++) {
+            log_debug_cont ("%3.3hhu %3.3hhu %3.3hhu %3.3hhu    ", 
+                            b[i+4*j], b[i+4*j+1], b[i+4*j+2], b[i+4*j+3]);
+        }
+        log_debug_cont("\n");
+    }
+    
 
+    log_debug ("%s exit\n", __func__);
+}
+
+/* FIXME: put this function into ds_metadata.c */
+/* buff is allocated and must be freed after use */
+void dimes_pack_file_info (int time, int nvars, int nattrs, int group_index_len, char * groupname, 
+                    /*OUT*/char **buf, /*OUT*/int *buf_len)
+{
+    *buf_len = 128;
+    *buf = (char *) malloc (*buf_len);
+
+    char *b = *buf;
+    int namelen = strlen(groupname);
+    memcpy (b, buf_len, sizeof(int));  /* 0-: length of this buffer */
+    b += sizeof(int);
+    memcpy (b, &time, sizeof(int));  /* 4-: time */
+    b += sizeof(int); 
+    memcpy (b, &nvars, sizeof(int));  /* 8-: number of variables */
+    b += sizeof(int);
+    memcpy (b, &nattrs, sizeof(int));  /* 12-: number of attributes */
+    b += sizeof(int);
+    memcpy (b, &group_index_len, sizeof(int));  /* 16-: length of group index*/
+    b += sizeof(int);
+    memcpy (b, &namelen, sizeof(int));  /* 20-: length of group name */
+    b += sizeof(int);
+    memcpy (b, groupname, namelen);  /* 24-: group name */
+    b[namelen] = 0;
+}
+
+void adios_dimes_close (struct adios_file_struct * fd
+                      ,struct adios_method_struct * method
+                      )
+{
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+                                                method->method_data;
+    struct adios_index_process_group_struct_v1 * pg_root;
+    struct adios_index_var_struct_v1 * vars_root;
+    struct adios_index_attribute_struct_v1 * attrs_root;
+    struct adios_attribute_struct * a = fd->group->attributes;
+    int lb[3], ub[3], didx[3]; // for reordering DS dimensions
+    unsigned int version;
+
+    if (fd->mode == adios_mode_write || fd->mode == adios_mode_append)
+    {
+        // finalize variable info in fd buffer, next we call build_index
+        while (a) {
+            a->write_offset = 1; // only attributes with !=0 offset will be included in build index
+            a=a->next;
+        }
+
+        //adios_write_close_vars_v1 (fd);
+        /* Gather var/attr indices from all processes to rank 0 */
+        adios_dimes_gather_indices (fd, method, &pg_root, &vars_root ,&attrs_root);
+
+        // make sure all processes have finished putting data to the space 
+        // before we put metadata from rank 0
+        MPI_Barrier (p->mpi_comm); 
+
+        if (p->rank == 0) {
 
-	if(fd->mode == adios_mode_write)
-	{
-	    //put file name & group name scalar info
-       	    if (p->rank == 0) {
             /* Write two adios specific variables with the name of the file and name of the group into the space */
             /* ADIOS Read API fopen() checks these variables to see if writing already happened */
-            snprintf(dimes_var_name, MAX_DIMES_NAMELEN, "FILE@%s", fd->name);
-            printf("%s: put %s = %d into space\n", __func__, dimes_var_name, p->time_index);
-            dimes_put_scalar(dimes_var_name, version, 4, 0, 0, 0, 0, 0, 0, p->time_index);
-
-	    }
-	}
-	else if(fd->mode == adios_mode_read)
-	{
-		fprintf(stderr,"adios_dimes_open: should not happens when fd->mode==adios_mode_read\n");
-	}
-
-	//Synchronization
-	if( fd->mode == adios_mode_write )
-	{
-		//printf("%s: call dimes_sync()\n",__func__);
-		dimes_sync(dimes_sync_id);
-		//dimes_wait();	
-	}
-	else if( fd->mode == adios_mode_read )
-	{
-		fprintf(stderr,"adios_dimes_close: should not happens when fd->mode==adios_mode_read\n");
-	}
-	
-	/*Incrementa of time index*/
-	p->time_index++;
-	
-	printf("%s: exit\n", __func__);
+#ifdef DATASPACES_NO_VERSIONING
+            version = 0;              /* Update/overwrite data in DataSpaces */
+#else
+            version = p->time_index;  /* Add new data as separate to DataSpaces */
+#endif
+
+            /* Make metadata from indices */
+            char * indexbuf;
+            int    indexlen;
+            int    nvars, nattrs;
+            dimes_pack_group_info (fd, method, vars_root, attrs_root, 
+                                   &indexbuf, &indexlen, &nvars, &nattrs);
+
+            
+            /* Put GROUP at fn/gn header into space */
+            snprintf(ds_var_name, MAX_DS_NAMELEN, "GROUP@%s/%s", fd->name, fd->group->name);
+            log_debug ("%s: put %s with buf len %d into space\n", __func__, ds_var_name, indexlen);
+            ub[0] = indexlen-1; ub[1] = 0; ub[2] = 0;
+            dimes_dimension_ordering(1, 0, 0, didx); // C ordering of 1D array into DS
+            dspaces_put(ds_var_name, version, 1,    0, 0, 0, /* lb 0..2 */
+                     ub[didx[0]], ub[didx[1]], ub[didx[2]],  indexbuf); 
+            free (indexbuf);
+
+            /* Create and put FILE at fn header into space */
+            char * file_info_buf; /* store FILE at fn's group list */
+            int    file_info_buf_len; /* = 128 currently */
+            snprintf (ds_var_name, MAX_DS_NAMELEN, "FILE@%s", fd->name);
+            dimes_pack_file_info (p->time_index, nvars, nattrs, indexlen, fd->group->name, 
+                               &file_info_buf, &file_info_buf_len);
+            log_debug ("%s: put %s = buflen=%d time=%d nvars=%d nattr=%d index=%d name=%d:%s into space\n",
+                __func__, ds_var_name, 
+                *(int*)file_info_buf, *(int*)(file_info_buf+4), 
+                *(int*)(file_info_buf+8), *(int*)(file_info_buf+12),
+                *(int*)(file_info_buf+16), *(int*)(file_info_buf+20),
+                file_info_buf+24);
+            /* Flip 1st and 2nd dimension for DataSpaces representation for a 1D array*/
+            ub[0] = file_info_buf_len-1; ub[1] = 0; ub[2] = 0;
+            dimes_dimension_ordering(1, 0, 0, didx); // C ordering of 1D array into DS
+            dspaces_put_sync(); //wait on previous put to finish
+            dspaces_put(ds_var_name, version, 1,    0, 0, 0, /* lb 0..2 */
+                     ub[didx[0]], ub[didx[1]], ub[didx[2]], file_info_buf); 
+
+            /* Create and put VERSION at fn version info into space */
+            int version_buf[2] = {version, 0}; /* last version put in space; not terminated */
+            int version_buf_len = 2; 
+            snprintf (ds_var_name, MAX_DS_NAMELEN, "VERSION@%s", fd->name);
+            log_debug ("%s: put %s with buf = [%d,%d] (len=%d integers) into space\n", 
+                       __func__, ds_var_name, version_buf[0], version_buf[1], version_buf_len);
+            ub[0] = version_buf_len-1; ub[1] = 0; ub[2] = 0;
+            dimes_dimension_ordering(1, 0, 0, didx); // C ordering of 1D array into DS
+            dspaces_put_sync(); //wait on previous put to finish
+            dspaces_put(ds_var_name, 0, sizeof(int),    0, 0, 0, /* lb 0..2 */
+                     ub[didx[0]], ub[didx[1]], ub[didx[2]],  version_buf); 
+            dspaces_put_sync(); //wait on previous put to finish
+            
+        }
+
+        // remember this filename and its version for finalize
+        int i;
+        for (i=0; i<p->num_of_files; i++) {
+            if (!strcmp(fd->name, p->fnames[i]))
+                break;
+        }
+        if (i == p->num_of_files) {
+            if (p->num_of_files < MAX_NUM_OF_FILES) {
+                p->fnames[ p->num_of_files ] = strdup(fd->name);
+                p->num_of_files++;
+            } else {
+                log_error ("%s: Max %d files can be written by one application "
+                        "using the DATASPACES method\n",
+                        __func__, MAX_NUM_OF_FILES);
+            }
+        }
+        if (i < p->num_of_files) {
+            p->fversions[i] = version;
+        }
+
+
+        // free allocated index lists
+        adios_clear_index_v1 (pg_root, vars_root, attrs_root);
+
+        // rank=0 may be in put_sync when others call unlock, which is a global op
+        MPI_Barrier (p->mpi_comm); 
+        //log_debug("%s: call dspaces_put_sync()\n", __func__);
+        //dspaces_put_sync();
+        log_debug("%s: call dspaces_unlock_on_write(%s)\n", __func__, fd->name);
+        dspaces_unlock_on_write(fd->name, &p->mpi_comm);
+    }
+    else if( fd->mode == adios_mode_read )
+    {
+        dspaces_unlock_on_read(fd->name, &p->mpi_comm);
+    } 
+
+    /* Increment the time index */
+    p->time_index++;
+
+
+    log_info ("%s: exit\n", __func__);
 }
 
-void adios_dimes_finalize(int mype, struct adios_method_struct *method)
+void adios_dimes_finalize (int mype, struct adios_method_struct * method)
 {
-	struct adios_DIMES_data_struct *p =(struct adios_DIMES_data_struct *)
-											method->method_data;
-	
-	//disconnect from dimes if it is connected from writer but not anymore from reader??
-	if(globals_adios_is_dimes_connected_from_writer() &&
-		!globals_adios_is_dimes_connected_from_both())
-	{
-		printf("%s: call dimes_barrier(), rank=%d\n",__func__,mype);
-		dimes_barrier();
-		printf("%s: call dimes_finalize(), rank=%d\n",__func__,mype);
-		dimes_finalize();
-	}
-	globals_adios_set_dimes_disconnected_from_writer();
-	
-	adios_dimes_initialized = 0;
-	
-	printf("%s: exit\n",__func__);
+    struct adios_dimes_data_struct *p = (struct adios_dimes_data_struct *)
+        method->method_data;
+    int i;
+    char ds_var_name[MAX_DS_NAMELEN];
+    int lb[3] = {0,0,0}; 
+    int ub[3] = {1,0,0}; // we put 2 integers to space, 
+    int didx[3]; // for reordering DS dimensions
+    int value[2] = {0, 1}; // integer to be written to space (terminated=1)
+
+    // tell the readers which files are finalized
+    dimes_dimension_ordering(1, 0, 0, didx); // C ordering of 1D array into DS
+    for (i=0; i<p->num_of_files; i++) {
+        /* Put VERSION at fn into space. Indicates that this file will not be extended anymore.  */
+        log_debug("%s: call dspaces_lock_on_write(%s), rank=%d\n", __func__, p->fnames[i], mype);
+        dspaces_lock_on_write(p->fnames[i], &p->mpi_comm); // lock is global operation in DataSpaces
+        if (p->rank == 0) {
+            value[0] = p->fversions[i];
+            snprintf(ds_var_name, MAX_DS_NAMELEN, "VERSION@%s", p->fnames[i]);
+            log_debug ("%s: update %s in the space [%d, %d]\n", 
+                    __func__, ds_var_name, value[0], value[1] );
+            dspaces_put(ds_var_name, 0, sizeof(int),   
+                    lb[didx[0]], lb[didx[1]], lb[didx[2]], 
+                    ub[didx[0]], ub[didx[1]], ub[didx[2]],  
+                    &value); 
+            log_debug("%s: call dspaces_put_sync()\n", __func__);
+            dspaces_put_sync();
+        }
+        log_debug("%s: call dspaces_unlock_on_write(%s), rank=%d\n", __func__, p->fnames[i], mype);
+        dspaces_unlock_on_write(p->fnames[i], &p->mpi_comm);
+        free (p->fnames[i]);
+    }
+
+    // block till all previsouly allocated RDMA buffers are freed
+    dimes_put_sync_all();
+
+    // disconnect from dataspaces if we are connected from writer but not anymore from reader
+    if (globals_adios_is_dimes_connected_from_writer() && 
+            !globals_adios_is_dimes_connected_from_both())
+    {
+        log_debug ("%s: call dspaces_barrier(), rank=%d\n", __func__,mype);
+        dspaces_barrier();
+        log_debug ("%s: call dspaces_finalize(), rank=%d\n", __func__,mype);
+        dspaces_finalize();
+    }
+    globals_adios_set_dimes_disconnected_from_writer();
+
+    adios_dimes_initialized = 0;
+
+    log_info("%s: exit\n", __func__);
 }
 
-void adios_dimes_end_iteration(struct adios_method_struct *method)
+void adios_dimes_end_iteration (struct adios_method_struct * method)
 {
 }
 
diff --git a/src/write/adios_flexpath.c b/src/write/adios_flexpath.c
new file mode 100644
index 0000000..cd8633b
--- /dev/null
+++ b/src/write/adios_flexpath.c
@@ -0,0 +1,1682 @@
+/*
+    adios_flexpath.c
+    uses evpath for io in conjunction with read/read_flexpath.c
+*/
+
+
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+#include <errno.h>
+
+#include <pthread.h>
+
+// xml parser
+#include <mxml.h>
+
+// add by Kimmy 10/15/2012
+#include <sys/types.h>
+#include <sys/stat.h>
+// end of change
+
+#include "public/adios_mpi.h"
+#include "public/adios_error.h"
+#include "core/adios_transport_hooks.h"
+#include "core/adios_bp_v1.h"
+#include "core/adios_internals.h"
+#include "core/buffer.h"
+#include "core/util.h"
+#include "core/adios_logger.h"
+
+// // system libraries
+// #include <stdio.h>
+// #include <stdlib.h>
+#if HAVE_FLEXPATH==1
+
+// // evpath libraries
+#include <evpath.h>
+#include <gen_thread.h>
+
+// // local libraries
+// #include "config.h"
+// #include "core/adios_internals.h"
+// #include "core/adios_transport_hooks.h"
+// #include "core/util.h"
+// #include "public/adios.h"
+#include "core/flexpath.h"
+#include <sys/queue.h>
+
+/************************* Structure and Type Definitions ***********************/
+// used for messages in the control queue
+typedef enum {VAR=0, DATA_FLUSH, OPEN, CLOSE, INIT, EVGROUP_FLUSH, DATA_BUFFER, OFFSET_MSG} FlexpathMessageType;
+
+// maintains connection information
+typedef struct _flexpath_stone {
+    int myNum;
+    int theirNum;
+    int step;
+    int opened;
+    int created;
+    int condition;
+    char* contact;
+} FlexpathStone;
+
+// maintains variable dimension information
+typedef struct _flexpath_var_node {
+    char* varName;
+    struct _flexpath_var_node* dimensions;
+    struct _flexpath_var_node* next;
+    int rank;
+} FlexpathVarNode;
+
+// used to construct message queues
+typedef struct _flexpath_queue_node {
+    void* data;
+    FlexpathMessageType type;
+    struct _flexpath_queue_node* next;
+} FlexpathQueueNode;
+
+// used to sanitize names
+typedef struct _flexpath_name_table {
+    char *originalName;
+    char *mangledName;
+    LIST_ENTRY(_flexpath_name_table) entries;
+} FlexpathNameTable;
+
+// used to sanitize names
+typedef struct _flexpath_alt_name {
+    char *name;
+    FMField *field;
+    LIST_ENTRY(_flexpath_alt_name) entries;
+} FlexpathAltName;
+
+// used to sanitize names
+typedef struct _flexpath_dim_names {
+    char *name;
+    LIST_HEAD(alts, _flexpath_alt_name) altList;
+    LIST_ENTRY(_flexpath_dim_names) entries;
+} FlexpathDimNames;
+
+// structure for file data (metadata and buffer)
+typedef struct _flexpath_fm_structure {
+    FMStructDescRec *format;
+    int size;
+    unsigned char *buffer;
+    FMFormat ioFormat;
+    attr_list attrList;	
+    LIST_HEAD(tableHead, _flexpath_name_table) nameList;
+    LIST_HEAD(dims, _flexpath_dim_names) dimList;
+} FlexpathFMStructure;
+
+// information used per each flexpath file
+typedef struct _flexpath_write_file_data {
+    // MPI stuff
+    MPI_Comm mpiComm;
+    int rank;
+    int size;
+
+    // EVPath stuff
+    EVstone multiStone;
+    EVstone sinkStone;
+    EVsource formatSource;
+    EVsource dataSource;
+    EVsource offsetSource;
+    EVsource opSource;
+    EVaction multi_action;
+    FlexpathStone* bridges;
+    int numBridges;
+    attr_list attrs;
+
+    // server state
+    int maxQueueSize;
+    int openCount;
+    int currentStep;
+    thr_mutex_t openMutex;
+    FlexpathFMStructure* fm;
+    FlexpathVarNode* askedVars;
+    FlexpathVarNode* writtenVars;
+    FlexpathVarNode* formatVars;
+    FlexpathQueueNode* controlQueue;
+    FlexpathQueueNode* dataQueue;    
+    thr_mutex_t controlMutex;
+    thr_mutex_t dataMutex;
+    thr_mutex_t dataMutex2;
+    thr_condition_t controlCondition;
+    thr_condition_t dataCondition; //fill
+    thr_condition_t dataCondition2; //empty
+
+    // global array distribution data
+    int globalCount;
+    int sentGlobalOffsets;
+    evgroup *gp;
+
+    // for maintaining open file list
+    struct _flexpath_write_file_data* next;
+    char* name;
+} FlexpathWriteFileData;
+
+typedef struct _flexpath_write_data {
+    int rank;
+    FlexpathWriteFileData* openFiles;
+    CManager cm;
+} FlexpathWriteData;
+
+/************************* Global Variable Declarations *************************/
+// used for sanitizing names
+#define OPLEN 7
+static char opList[OPLEN] = { '+', '-', '*', '/', '.', '>', '<' };
+static char *opRepList[OPLEN] = { "_plus_", "_minus_", "_mult_", "_div_", "_dot_", "_greater_", "_less_" };
+
+// used for global communication and data structures
+FlexpathWriteData flexpathWriteData;
+
+/**************************** Function Definitions *********************************/
+
+// add an attr for each dimension to an attr_list
+void set_attr_dimensions(char* varName, char* altName, int numDims, attr_list attrs) {
+    fp_write_log("ATTR", "adding dim attr %s and ndim attr %d\n", varName, numDims);
+    char atomName[200] = "";
+    char dimNum[10];
+    strcat(atomName, varName);
+    strcat(atomName, "_");
+    strcat(atomName, FP_DIM_ATTR_NAME);
+    strcat(atomName, "_");
+    sprintf(dimNum, "%d", numDims);
+    strcat(atomName, dimNum);
+    atom_t dimAtom = attr_atom_from_string(atomName);
+    add_string_attr(attrs, dimAtom, altName);
+    atomName[0] = '\0';
+    strcat(atomName, altName);
+    strcat(atomName, "_");
+    strcat(atomName, FP_NDIMS_ATTR_NAME);
+    atom_t ndimsAtom = attr_atom_from_string(atomName);
+    add_int_attr(attrs, ndimsAtom, 0);
+}
+
+// free format packets once EVPath is finished with them
+void format_free(void* eventData, void* clientData) {
+    fp_write_log("FORMAT", "freeing a format message\n");
+    Format_msg* format = (Format_msg*) eventData;
+    free(format);
+}
+
+// free data packets once EVPath is finished with them
+void data_free(void* eventData, void* clientData) {
+    fp_write_log("DATA", "freeing a data message\n");
+    FlexpathWriteFileData* fileData = (FlexpathWriteFileData*)clientData;
+    FMfree_var_rec_elements(fileData->fm->ioFormat, eventData);
+    free(eventData);
+}
+
+// free op packets once EVPath is finished with them
+void op_free(void* eventData, void* clientData) {
+    fp_write_log("OP", "freeing an op message\n");
+    op_msg* op = (op_msg*) eventData;
+    if(op->file_name) {
+        free(op->file_name);
+    }
+    free(op);
+}
+
+// message queue add to head
+void threaded_enqueue(FlexpathQueueNode** queue, void* item, FlexpathMessageType type, thr_mutex_t mutex, thr_condition_t condition) {
+    fp_write_log("QUEUE", "enqueing a message\n");
+    thr_mutex_lock(mutex);
+    fp_write_log("MUTEX","lock 2\n");
+    FlexpathQueueNode* newNode = (FlexpathQueueNode*) malloc(sizeof(FlexpathQueueNode));
+    newNode->data = item;
+    newNode->type = type;
+    newNode->next = *queue;
+    *queue = newNode;
+    thr_condition_broadcast(condition);
+    fp_write_log("MUTEX","unlock 2\n");
+    thr_mutex_unlock(mutex);
+}
+
+// message queue count
+int queue_count(FlexpathQueueNode** queue, thr_mutex_t mutex) {
+    fp_write_log("QUEUE", "counting a queue\n");
+    if(*queue==NULL) {
+        return 0;
+    }
+    int count = 1;
+    FlexpathQueueNode* current = *queue;
+    while(current && current->next) {
+        count++;
+        current = current->next;
+    }
+    fp_write_log("QUEUE", "returning count\n");
+    return count;
+}
+
+// remove from tail of a message queue
+FlexpathQueueNode* threaded_dequeue(FlexpathQueueNode** queue, thr_mutex_t mutex, thr_condition_t condition, thr_condition_t condition2, int signal_dequeue) {
+    fp_write_log("QUEUE", "dequeue\n");
+    thr_mutex_lock(mutex);
+    fp_write_log("MUTEX","lock 4\n");
+    while(*queue==NULL) {
+        fp_write_log("QUEUE", "queue is null\n");
+        thr_condition_wait(condition, mutex);
+    }
+    FlexpathQueueNode* tail;
+    FlexpathQueueNode* prev = NULL;
+    tail = *queue;
+    while(tail && tail->next) {
+        prev=tail;
+        tail=tail->next;
+    }
+    if(prev) {
+        prev->next = NULL;
+    } else {
+        *queue = NULL;
+    }
+    fp_write_log("MUTEX","unlock 4\n");
+    thr_mutex_unlock(mutex);
+    fp_write_log("QUEUE", "exiting dequeue queue:%p ret:%p\n", *queue, tail);
+    if(signal_dequeue==1) {
+        thr_condition_broadcast(condition2);
+    }
+    return tail;
+}
+
+// peek at tail of message queue
+FlexpathQueueNode* threaded_peek(FlexpathQueueNode** queue, thr_mutex_t mutex, thr_condition_t condition) {
+    int q = queue_count(queue, mutex);
+    fp_write_log("QUEUE", "peeking at a queue\n");
+    fp_write_log("QUEUE", "queue count %d\n", q);
+    thr_mutex_lock(mutex);
+    fp_write_log("QUEUE", "recieved lock\n");
+    fp_write_log("MUTEX","lock 5\n");
+    if(*queue==NULL) {
+        fp_write_log("QUEUE", "null about to wait\n");
+        thr_condition_wait(condition, mutex);
+        fp_write_log("QUEUE", "signaled with queue %p\n", *queue);
+    }
+    FlexpathQueueNode* tail;
+    tail = *queue;
+    while(tail && tail->next) {
+        tail=tail->next;
+    }
+    fp_write_log("MUTEX","unlock 5\n");
+    thr_mutex_unlock(mutex);
+    fp_write_log("QUEUE", "returning %p\n", tail);
+    return tail;
+}
+
+// add new var to a var list
+FlexpathVarNode* add_var(FlexpathVarNode* queue, char* varName, FlexpathVarNode* dims, int rank){
+    if(queue) {
+        queue->next=add_var(queue->next, varName, dims, rank);
+        return queue;
+    } else {
+        queue = (FlexpathVarNode*) malloc(sizeof(FlexpathVarNode));
+        queue->varName = strdup(varName);
+        queue->dimensions = dims;
+        queue->next = NULL;
+        queue->rank = rank;
+        return queue;
+    }
+}
+
+// free a var list
+void free_vars(FlexpathVarNode* queue){
+    if(queue) {
+        free_vars(queue->next);
+        free(queue->varName);
+        free(queue);
+    }
+}
+
+// search a var list
+FlexpathVarNode* queue_contains(FlexpathVarNode* queue, const char* name, int rank) {
+    int compare_rank = 0;
+    if(rank >= 0 ) {
+        compare_rank = 1;
+    }
+    FlexpathVarNode* tmp = queue;
+    while(tmp) {
+        if(strcmp(tmp->varName, name)==0){
+            if(compare_rank) {
+                if(tmp->rank == rank) {
+                    return tmp;
+                }
+            } else {
+                return tmp;
+            }
+        }
+        tmp = tmp->next;
+    }
+    return NULL;
+}
+
+// sanitize a name
+char* get_fixed_name(char* name) {
+    char* oldName = strdup(name);
+    char* newName = (char*) malloc(sizeof(char) * 255);
+    int i;
+    for (i=0; i< OPLEN; i++){
+        char op[] = {opList[i], '\0'};
+        char* opRep=opRepList[i];
+        char* token = strtok(oldName, op);
+        char* lastTok=NULL;
+	strcpy(newName, "");
+	while(token != NULL){
+	    strcat(newName, token);
+            if((token = strtok(NULL, op))) {
+	        strcat(newName, opRep);
+	        lastTok = token;
+	    }
+        }
+        if(lastTok!=NULL && (strlen(newName)-strlen(lastTok)-1>0)) {
+            newName[strlen(newName)-strlen(lastTok)-1]='\0';
+	}
+        free(oldName);
+	oldName = strdup(newName);
+    }
+    free(oldName);
+    return newName;
+}
+
+// return name with operators removed by using the lookup list
+static char* find_fixed_name(FlexpathFMStructure *fm, char *name) {
+    FlexpathNameTable *node;
+    for (node = fm->nameList.lh_first; node != NULL; node = node->entries.le_next) {
+        if (!strcmp(node->originalName, name)) {
+	    return node->mangledName;
+        }
+    }
+    return name;
+}
+
+// returns a name with the dimension prepended
+static char *get_alt_name(char *name, char *dimName) {
+    int len = strlen(name) + strlen(dimName) + 2;
+    char *newName = (char *) malloc(sizeof(char) * len);
+    strcpy(newName, dimName);
+    strcat(newName, "_");
+    strcat(newName, name);
+    return newName;
+}
+
+// lookup a dimensions real name
+static FlexpathAltName *find_alt_name(FlexpathFMStructure *currentFm, char *dimName, char *varName) {
+    char *altName = get_alt_name(varName, dimName);
+    FlexpathDimNames *d = NULL;
+
+    // move to dim name in fm dim name list
+    for (d = currentFm->dimList.lh_first; d != NULL; d = d->entries.le_next) {
+        if (!strcmp(d->name, dimName)) {
+	    break;
+	}
+    }
+
+    // if reached end of list - create list with current dim name at head
+    if (d == NULL) {
+        d = (FlexpathDimNames *) malloc(sizeof(FlexpathDimNames));
+        d->name = dimName;
+        LIST_INIT(&d->altList);
+        LIST_INSERT_HEAD(&currentFm->dimList, d, entries);
+    }
+
+    // create FlexpathAltName structure and field with alternative name in it 
+    FlexpathAltName *a = (FlexpathAltName *) malloc(sizeof(FlexpathAltName));
+    a->name = altName;
+    FMField *field = (FMField *) malloc(sizeof(FMField));
+    a->field = field;
+    field->field_name = strdup(altName);
+    // TO FIX: Should really check datatype (another paramater?)
+    field->field_type = strdup("integer");
+    field->field_size = sizeof(int);
+    field->field_offset = -1;
+    LIST_INSERT_HEAD(&d->altList, a, entries);
+    return a;
+}
+
+// populates offsets array
+int get_local_offsets(struct adios_var_struct * list, struct adios_group_struct * g, int** offsets, int** dimensions)
+{
+    struct adios_dimension_struct * dim_list = list->dimensions;	    
+    if(dim_list){		
+	// if this var has a global dimension, then by default, it has local_offset
+	uint16_t gdim_id = dim_list->global_dimension.id;
+	uint16_t ldim_id = dim_list->dimension.id;
+	if(gdim_id > 0) {	   
+	    int num_local_offsets = 0;
+	    int * local_offsets = NULL;		
+	    int * local_dimensions = NULL;
+	    int curr_offset = 0;
+	    while(dim_list) {		
+		uint16_t offset_id = dim_list->local_offset.id;
+		uint16_t ldim_id = dim_list->dimension.id;
+		if(offset_id > 0) {							       
+		    struct adios_var_struct * tmp_var = adios_find_var_by_id(g->vars, 
+									     offset_id);
+		    local_offsets = realloc(local_offsets, sizeof(int) * (num_local_offsets+1));
+		    memcpy(&local_offsets[curr_offset], tmp_var->data, sizeof(int));
+		    // no id, so it must be a literal in the xml doc
+		} else {
+		    local_offsets = realloc(local_offsets, sizeof(int) * (num_local_offsets+1));
+		    local_offsets[curr_offset] = (int)dim_list->local_offset.rank;
+		}
+		if(ldim_id > 0) {
+		    struct adios_var_struct * tmp_var = adios_find_var_by_id(g->vars, ldim_id);
+		    local_dimensions = realloc(local_dimensions, sizeof(int) * (num_local_offsets+1));
+		    memcpy(&local_dimensions[curr_offset], tmp_var->data, sizeof(int));
+		} else {
+		    local_dimensions = realloc(local_dimensions, sizeof(int) * (num_local_offsets+1));
+		    local_dimensions[curr_offset] = (int)dim_list->dimension.rank;
+		}
+		dim_list=dim_list->next;
+		curr_offset++;
+		num_local_offsets++;
+	    }
+	    offsets[0] = local_offsets;	   
+	    dimensions[0] = local_dimensions;
+	    return num_local_offsets;
+	}	
+    }
+    offsets = NULL;
+    return 0;
+}
+
+// creates multiqueue function to handle ctrl messages for given bridge stones 
+char* multiqueue_action = "{\n\
+    int found = 0;\n\
+    int flush_data_count = 0; \n\
+    int my_rank = -1;\n\
+    attr_list mine;\n\
+    if(EVcount_varMsg()>0) {\n\
+        EVdiscard_and_submit_varMsg(0, 0);\n\
+    }\n\
+    if(EVcount_op_msg()>0) {\n\
+        mine = EVget_attrs_op_msg(0);\n\
+        found = attr_ivalue(mine, \"fp_dst_rank\");\n\
+        if(found > 0) {\n\
+            EVdiscard_and_submit_op_msg(found, 0);\n\
+        } else {\n\
+            EVdiscard_and_submit_op_msg(0,0);\n\
+        }\n\
+    }\n\
+    if(EVcount_formatMsg()>0) {\n\
+        formatMsg* msg = EVdata_formatMsg(0);\n\
+        mine=EVget_attrs_formatMsg(0);\n\
+        my_rank= attr_ivalue(mine, \"fp_rank_num\");\n\
+    }\n\
+    if(EVcount_flush()>0) {\n\
+        flush* c = EVdata_flush(0);\n\
+        if(c->type == 0) {\n\
+            if(EVcount_formatMsg()>0) {\n\
+                formatMsg* msg = EVdata_formatMsg(0);\n\
+                msg->condition = c->condition;\n\
+                EVdiscard_flush(0);\n\
+                EVsubmit(c->rank+1, msg);\n\
+            }\n\
+       }else if(c->type == 2){ \n\
+             if(EVcount_evgroup()>0){\n\
+               evgroup *g = EVdata_evgroup(0); \n\
+               g->condition = c->condition;\n\
+               EVsubmit(c->rank+1, g);\n\
+               EVdiscard_flush(0);\n\
+             }\n\
+        } else {\n\
+            EVdiscard_and_submit_flush(0,0);\n\
+            flush_data_count++;\n\
+        }\n\
+    }\n\
+    if(EVcount_anonymous()>0){\n\
+        mine = EVget_attrs_anonymous(0);\n\
+        found = attr_ivalue(mine, \"fp_dst_rank\");\n\
+        EVdiscard_and_submit_anonymous(found+1,0);\n\
+    }\n\
+ }";
+
+// sets a field based on data type
+void set_field(int type, FMFieldList* field_list_ptr, int fieldNo, int* size){
+    FMFieldList field_list = *field_list_ptr;
+    switch (type) {
+	case adios_unknown:
+	  perr("set_field: Bad Type Error\n");
+	  break;
+
+	case adios_integer:
+	  field_list[fieldNo].field_type = strdup("integer");
+	  field_list[fieldNo].field_size = sizeof(int);
+	  field_list[fieldNo].field_offset = *size;
+	  *size += sizeof(int);
+	  break;
+
+	case adios_real:
+	  field_list[fieldNo].field_type = strdup("float");
+	  field_list[fieldNo].field_size = sizeof(float);
+	  field_list[fieldNo].field_offset = *size;
+	  *size += sizeof(float);
+	  break;
+
+	case adios_string:
+	  field_list[fieldNo].field_type = strdup("string");
+	  field_list[fieldNo].field_size = sizeof(char *);
+	  field_list[fieldNo].field_offset = *size;
+	  *size += sizeof(unsigned char *);
+	  break;
+
+	case adios_double:
+	  field_list[fieldNo].field_type = strdup("float");
+	  field_list[fieldNo].field_size = sizeof(double);
+	  field_list[fieldNo].field_offset = *size;
+	  *size += sizeof(double);
+	  break;
+
+	case adios_byte:
+	  field_list[fieldNo].field_type = strdup("char");
+	  field_list[fieldNo].field_size = sizeof(char);
+	  field_list[fieldNo].field_offset = *size;
+	  *size += sizeof(char);
+	  break;
+
+	default:
+	  perr("set_field: Unknown Type Error\n");
+	  break;
+    }
+    *field_list_ptr = field_list;
+}
+
+// find a field in a given field list
+static FMField *internal_find_field(char *name, FMFieldList flist) {
+    FMField *f = flist;
+    while (f->field_name != NULL && strcmp(f->field_name, name)) {
+	f++;
+    }
+    return f;
+}
+
+// generic memory check for after mallocs
+void mem_check(void* ptr, const char* str) {
+    if(!ptr) {
+        adios_error(err_no_memory, "Cannot allocate memory for flexpath %s.", str);
+    }
+}
+
+// construct an fm structure based off the group xml file
+FlexpathFMStructure* set_format(struct adios_group_struct* t,struct adios_var_struct* fields, FlexpathWriteFileData* fileData){
+    FMStructDescRec *format = (FMStructDescRec*) malloc(sizeof(FMStructDescRec)*2);
+    mem_check(format, "format");
+    memset(format, 0, sizeof(FMStructDescRec)*2);
+    
+    FlexpathFMStructure *currentFm = (FlexpathFMStructure *) malloc(sizeof(FlexpathFMStructure));
+    mem_check(currentFm, "currentFm");
+    memset(currentFm, 0, sizeof(FlexpathFMStructure));
+
+    LIST_INIT(&currentFm->nameList);
+    LIST_INIT(&currentFm->dimList);
+    currentFm->format = format;
+    format->format_name = strdup(t->name);
+
+    if (t->var_count == 0) {
+	perr("set_format: No Variables In Group\n");
+	return NULL;
+    }
+
+    FMFieldList field_list = (FMFieldList) malloc(sizeof(FMField) * (t->var_count + 1));
+    if (field_list == NULL) {
+	perr("set_format: Field List Memory Allocation Failed");
+	return NULL;
+    }
+
+    int fieldNo = 0;
+    int altvarcount = 0;
+
+    // for each type look through all the fields
+    struct adios_var_struct *f;
+    for (f = t->vars; f != NULL; f = f->next, fieldNo++) {
+	char *tempName = get_fixed_name(f->name);
+	if (strcmp(tempName, f->name)) {
+	    FlexpathNameTable *nameNode = (FlexpathNameTable *) malloc(sizeof(FlexpathNameTable));
+	    nameNode->originalName = strdup(f->name);
+	    nameNode->mangledName = strdup(tempName);
+	    LIST_INSERT_HEAD(&currentFm->nameList, nameNode, entries);
+	}
+
+	// use the mangled name for the field.
+	field_list[fieldNo].field_name = tempName;
+        if(tempName!=NULL) {
+            int num_dims = 0;
+            char atom_name[200] = "";
+            FlexpathVarNode* dims=NULL;
+            if(f->dimensions) {
+                struct adios_dimension_struct* adim = f->dimensions;  
+	
+                // attach appropriate attrs for dimensions	
+                for(; adim != NULL; adim = adim->next) {
+                    num_dims++;		    
+		    uint16_t dim_id = adim->dimension.id;
+		    uint16_t gdim_id = adim->global_dimension.id;
+		    uint16_t local_id = adim->local_offset.id;
+		    if(dim_id > 0) {		    
+			struct adios_var_struct *tmp_var = adios_find_var_by_id(t->vars, dim_id);
+			char *name = find_fixed_name(currentFm, tmp_var->name);
+			char *aname = get_alt_name(tempName,  name);
+			dims=add_var(dims, strdup(aname), NULL, 0);
+			set_attr_dimensions(tempName, aname, num_dims, fileData->attrs);
+		    }
+		    if(gdim_id> 0) {
+			fileData->globalCount++;
+			struct adios_var_struct *tmp_var = adios_find_var_by_id(t->vars, gdim_id);
+			char *name = find_fixed_name(currentFm, tmp_var->name);
+			char *aname = get_alt_name(tempName, name);
+			dims=add_var(dims, strdup(aname), NULL, 0);
+			set_attr_dimensions(tempName, aname, num_dims, fileData->attrs);			
+		    }
+                }
+            }
+            // attach ndims attr
+            strcat(atom_name, tempName);
+            strcat(atom_name, "_");
+            strcat(atom_name, FP_NDIMS_ATTR_NAME);
+            atom_t ndims_atom = attr_atom_from_string(strdup(atom_name));
+            add_int_attr(fileData->attrs, ndims_atom, num_dims);
+            fileData->formatVars = add_var(fileData->formatVars, tempName, dims, 0);
+        }
+	// if its a single field
+	if (!f->dimensions) {
+	    // set the field type size and offset approrpriately
+	    set_field(f->type, &field_list, fieldNo, &currentFm->size);
+	} else {
+	    //it's a vector!
+	    struct adios_dimension_struct *d = f->dimensions;
+            #define DIMSIZE 10240
+	    #define ELSIZE 256
+            char dims[DIMSIZE] = "";
+	    char el[ELSIZE] = "";
+	    int v_offset=-1;
+		  
+	    //create the textual representation of the dimensions
+	    for (; d != NULL; d = d->next) {
+		if (d->dimension.id) {
+		    struct adios_var_struct *tmp_var = adios_find_var_by_id(t->vars, d->dimension.id);
+		    char *name = find_fixed_name(currentFm, tmp_var->name);
+		    FlexpathAltName *a = find_alt_name(currentFm, name, (char*)field_list[fieldNo].field_name);
+		    altvarcount++;
+		    snprintf(el, ELSIZE, "[%s]", a->name);
+		    v_offset = 0;
+		} else {
+		    snprintf(el, ELSIZE, "[%llu]", d->dimension.rank);
+		    v_offset *= d->dimension.rank;
+		}
+		strncat(dims, el, DIMSIZE);
+	    }
+	    v_offset *= -1;
+		  
+	    while(currentFm->size % 8 != 0) {
+		currentFm->size ++;					
+	    }
+		  
+	    switch (f->type) {
+	    case adios_unknown:
+		perr( "set_format: Bad Type Error\n");
+		fieldNo--;
+		break;
+		      
+	    case adios_integer:
+		field_list[fieldNo].field_type =
+		    (char *) malloc(sizeof(char) * 255);
+		snprintf((char *) field_list[fieldNo].field_type, 255,
+			 "integer%s", dims);
+		field_list[fieldNo].field_size = sizeof(int);
+		      
+		field_list[fieldNo].field_offset = currentFm->size;
+		if (v_offset == 0 ) // pointer to variably sized array
+		{ currentFm->size += sizeof(void *);  } 
+		else // statically sized array allocated inline
+		{  currentFm->size += (v_offset * sizeof(int));  } 
+		break;
+		      
+	    case adios_real:
+		field_list[fieldNo].field_type =
+		    (char *) malloc(sizeof(char) * 255);
+		snprintf((char *) field_list[fieldNo].field_type, 255,
+			 "float%s", dims);
+		field_list[fieldNo].field_size = sizeof(float);
+		field_list[fieldNo].field_offset = currentFm->size;
+		if (v_offset == 0 ) // pointer to variably sized array
+		{ currentFm->size += sizeof(void *);  } 
+		else // statically sized array allocated inline
+		{  currentFm->size += (v_offset * sizeof(float));  } 
+		break;
+
+	    case adios_string:
+		field_list[fieldNo].field_type = strdup("string");
+		field_list[fieldNo].field_size = sizeof(char);
+		field_list[fieldNo].field_offset = currentFm->size;
+		currentFm->size += sizeof(void *);
+		break;
+
+	    case adios_double:
+		field_list[fieldNo].field_type =
+		    (char *) malloc(sizeof(char) * 255);
+		snprintf((char *) field_list[fieldNo].field_type, 255,
+			 "float%s", dims);
+		field_list[fieldNo].field_size = sizeof(double);
+		field_list[fieldNo].field_offset = currentFm->size;
+		if (v_offset == 0 ) // pointer to variably sized array
+		{ currentFm->size += sizeof(void *);  } 
+		else // statically sized array allocated inline
+		{  currentFm->size += (v_offset * sizeof(double));  } 
+		break;
+
+	    case adios_byte:
+		field_list[fieldNo].field_type =
+		    (char *) malloc(sizeof(char) * 255);
+		snprintf((char *) field_list[fieldNo].field_type, 255, "char%s",
+			 dims);
+		field_list[fieldNo].field_size = sizeof(char);
+		field_list[fieldNo].field_offset = currentFm->size;
+		if (v_offset == 0 ) // pointer to variably sized array
+		{ currentFm->size += sizeof(void *);  } 
+		else // statically sized array allocated inline
+		{  currentFm->size += (v_offset * sizeof(char));  } 
+		break;
+
+	    default:
+		perr("set_format: Unknown Type Error %d\n", f->type);
+		fieldNo--;
+		break;
+	    }
+	}
+
+	fp_write_log("FORMAT","field: %s, %s, %d, %d\n", field_list[fieldNo].field_name, field_list[fieldNo].field_type,field_list[fieldNo].field_size,field_list[fieldNo].field_offset); 
+    }
+
+    FlexpathDimNames *d = NULL;
+    field_list = (FMFieldList) realloc(field_list, sizeof(FMField) * (altvarcount + t->var_count + 1));
+
+    for (d = currentFm->dimList.lh_first; d != NULL; d = d->entries.le_next) {
+	FlexpathAltName *a = NULL;
+	for (a = d->altList.lh_first; a != NULL; a = a->entries.le_next) {
+	    a->field->field_offset = currentFm->size;
+	    currentFm->size += sizeof(int);
+	    memcpy(&field_list[fieldNo], a->field, sizeof(FMField));
+	    fieldNo++;
+	}
+    }
+
+    for (; fieldNo < (t->var_count + 1+altvarcount); fieldNo++) {
+	field_list[fieldNo].field_type = NULL;
+	field_list[fieldNo].field_name = NULL;
+	field_list[fieldNo].field_offset = 0;
+	field_list[fieldNo].field_size = 0;
+    }
+
+    format->field_list = field_list;
+    currentFm->format->struct_size = currentFm->size;
+
+    currentFm->buffer = (unsigned char *) malloc(currentFm->size);
+    memset(currentFm->buffer, 0, currentFm->size);
+
+    return currentFm;
+}
+
+// copies buffer zeroing out arrays that havent been asked for
+void* copy_buffer(void* buffer, int rank, FlexpathWriteFileData* fileData){
+    char* temp = (char*)malloc(fileData->fm->size);
+    memcpy(temp, buffer, fileData->fm->size);
+    FMField *f = fileData->fm->format->field_list;
+    while (f->field_name != NULL)
+    {
+        FlexpathVarNode* a;
+        if(!queue_contains(fileData->askedVars, f->field_name, rank)) {
+            if((a=queue_contains(fileData->formatVars, f->field_name, -1)) 
+	       && 
+	       (a->dimensions != NULL)) {
+                FlexpathVarNode* dim = a->dimensions;
+                while(dim) {
+                    FMField *f2 = fileData->fm->format->field_list;
+                    while(f2->field_name != NULL) {
+                        if(strcmp(f2->field_name, dim->varName)==0) {
+                            break;
+                        }
+                        f2++;
+                    }
+                    if(f2->field_name != NULL) {
+                        memset(&temp[f2->field_offset], 0, f2->field_size);
+                    }
+                    dim = dim->next;
+                }
+                memset(&temp[f->field_offset], 0, f->field_size);
+            }
+        }   
+        f++;
+    }
+    return temp;
+}
+
+// terminal action for var messages: enqueues
+static int var_handler(CManager cm, void *vevent, void *client_data, attr_list attrs){
+    FlexpathWriteFileData* fileData = (FlexpathWriteFileData*) client_data;
+    Var_msg* msg = (Var_msg*) vevent;
+    EVtake_event_buffer(cm, msg);
+    fp_write_log("MSG", "recieved var_msg : rank %d\n", msg->rank);
+    threaded_enqueue(&fileData->controlQueue, msg, VAR, 
+        fileData->controlMutex, fileData->controlCondition);
+    return 0;
+}
+
+// terminal action for flush messages: enqueues
+static int flush_handler(CManager cm, void* vevent, void* client_data, attr_list attrs) {
+    FlexpathWriteFileData* fileData = (FlexpathWriteFileData*) client_data;
+    Flush_msg* msg = (Flush_msg*) vevent;
+    EVtake_event_buffer(cm, msg);
+    fp_write_log("MSG", "recieved flush : rank %d type data\n", msg->rank);
+    threaded_enqueue(&fileData->controlQueue, msg, DATA_FLUSH, 
+        fileData->controlMutex, fileData->controlCondition);
+    return 0;
+}
+
+// terminal action for op messages: enqueues
+static int op_handler(CManager cm, void* vevent, void* client_data, attr_list attrs) {
+    FlexpathWriteFileData* fileData = (FlexpathWriteFileData*) client_data;
+    op_msg* msg = (op_msg*) vevent;
+    EVtake_event_buffer(cm, msg);
+    fp_write_log("MSG", "recieved op_msg : rank %d type %d: condition: %d step: %d\n", 
+		 msg->process_id, msg->type, msg->condition, msg->step);
+    if(msg->type == OPEN_MSG) {
+        threaded_enqueue(&fileData->controlQueue, msg, OPEN, 
+            fileData->controlMutex, fileData->controlCondition);
+    } else if(msg->type == CLOSE_MSG) {
+        threaded_enqueue(&fileData->controlQueue, msg, CLOSE, 
+			 fileData->controlMutex, fileData->controlCondition);
+    } else if(msg->type == 3) {
+	threaded_enqueue(&fileData->controlQueue, msg, INIT,
+			 fileData->controlMutex, fileData->controlCondition);
+			
+    }
+    return 0;
+}
+
+// sets a size atom
+attr_list set_size_atom(attr_list attrs, int value) {
+    atom_t dst_atom = attr_atom_from_string("fp_size");
+    int size;
+    if(!get_int_attr(attrs, dst_atom, &size)) {
+        add_int_attr(attrs, dst_atom, value);
+    }
+    set_int_attr(attrs, dst_atom, value);
+    return attrs;
+}
+
+// sets a dst rank atom
+attr_list set_dst_rank_atom(attr_list attrs, int value) {
+    atom_t dst_atom = attr_atom_from_string("fp_dst_rank");
+    int dst;
+    if(!get_int_attr(attrs, dst_atom, &dst)) {
+        add_int_attr(attrs, dst_atom, value);
+    }
+    set_int_attr(attrs, dst_atom, value);
+    return attrs;
+}
+
+// sets a dst condition atom
+attr_list set_dst_condition_atom(attr_list attrs, int condition){
+    atom_t dst_atom = attr_atom_from_string("fp_dst_condition");
+    int dst;
+    if(!get_int_attr(attrs, dst_atom, &dst)){
+	add_int_attr(attrs, dst_atom, condition);
+    }
+    set_int_attr(attrs, dst_atom, condition);
+    return attrs;
+}
+
+// processes messages from control queue
+int control_thread(void* arg) {
+    FlexpathWriteFileData* fileData = (FlexpathWriteFileData*)arg;
+    int rank = fileData->rank;
+    FlexpathQueueNode* controlMsg;
+    FlexpathQueueNode* dataNode;
+    while(1) {
+        fp_write_log("CONTROL", "control message attempts dequeue\n");
+	if((controlMsg = threaded_dequeue(&fileData->controlQueue, 
+	    fileData->controlMutex, fileData->controlCondition, NULL, 0))) {
+            fp_write_log("CONTROL", "control message dequeued\n");
+	    if(controlMsg->type==VAR) {
+		Var_msg* varMsg = (Var_msg*) controlMsg->data;
+		fileData->askedVars = add_var(fileData->askedVars, 
+		    strdup(varMsg->var_name), NULL, varMsg->rank);
+		EVreturn_event_buffer(flexpathWriteData.cm,controlMsg->data);
+	    } else if(controlMsg->type==DATA_FLUSH) {
+                fp_write_log("DATAMUTEX", "in use 1\n"); 
+		dataNode = threaded_peek(&fileData->dataQueue, 
+		    fileData->dataMutex, &fileData->dataCondition);
+                fp_write_log("DATAMUTEX", "no use 1\n"); 
+                thr_mutex_lock(fileData->dataMutex);
+                thr_mutex_unlock(fileData->dataMutex);
+                fp_write_log("DATAMUTEX", "no use 1\n"); 
+		Flush_msg* flushMsg = (Flush_msg*) controlMsg->data;
+		fp_write_log("QUEUE", "dataNode:%p, flushMsg:%p\n", dataNode, flushMsg);
+                void* temp = copy_buffer(dataNode->data, flushMsg->rank, fileData);
+		fileData->attrs = set_dst_rank_atom(fileData->attrs, flushMsg->rank);
+		fileData->attrs = set_dst_condition_atom(fileData->attrs, flushMsg->condition);
+		if(!fileData->bridges[flushMsg->rank].opened) {
+                  fileData->bridges[flushMsg->rank].opened=1;
+                  fileData->openCount++;
+                }
+		fp_write_log("MSG", " sending data_msg : rank %d step %d\n", 
+                    flushMsg->rank, fileData->currentStep);
+		EVsubmit_general(fileData->dataSource, temp, data_free, fileData->attrs);
+	    } else if(controlMsg->type==OPEN) {
+                op_msg* open = (op_msg*) controlMsg->data;
+                fileData->bridges[open->process_id].step = open->step;
+                fileData->bridges[open->process_id].condition = open->condition;
+		if(!fileData->bridges[open->process_id].created){
+		    fileData->bridges[open->process_id].myNum = 
+			EVcreate_bridge_action(flexpathWriteData.cm, 
+					       attr_list_from_string(fileData->bridges[open->process_id].contact), 
+					       fileData->bridges[open->process_id].theirNum);
+		
+		    EVaction_set_output(flexpathWriteData.cm, 
+					fileData->multiStone, 
+					fileData->multi_action, 
+					open->process_id+1, 
+					fileData->bridges[open->process_id].myNum);				    
+		}		
+		if(open->step < fileData->currentStep) {
+                    perr("control_thread: Recieved Past Step Open\n");
+		    log_error("Flexpath method control_thread: Received Past Step Open\n");
+                } else if (open->step == fileData->currentStep){
+                    fp_write_log("STEP", "recieved op with current step\n");
+                    thr_mutex_lock(fileData->openMutex);
+                    fp_write_log("MUTEX","lock 6\n");
+                    fileData->openCount++;  
+                    fileData->bridges[open->process_id].opened = 1;
+                    fp_write_log("MUTEX","unlock 6\n");
+		    thr_mutex_unlock(fileData->openMutex);
+                    op_msg* ack = (op_msg*) malloc(sizeof(op_msg));
+                    ack->file_name = strdup(fileData->name);
+                    ack->process_id = fileData->rank;
+                    ack->step = fileData->currentStep;
+                    ack->type = 2;
+		    ack->condition = open->condition;
+                    fileData->attrs = set_dst_rank_atom(fileData->attrs, open->process_id+1);
+		    fp_write_log("MSG", " sending op_msg : dst %d step %d type ack\n",
+				 open->process_id, fileData->currentStep); 
+                    EVsubmit_general(fileData->opSource, ack, op_free, fileData->attrs);
+                } else {
+                    fp_write_log("STEP", "recieved op with future step\n");
+                }
+            } else if(controlMsg->type==CLOSE) {
+                op_msg* close = (op_msg*) controlMsg->data;
+		thr_mutex_lock(fileData->openMutex);
+                fp_write_log("MUTEX","lock 7\n");
+		fileData->openCount--;
+                fileData->bridges[close->process_id].opened=0;
+                fp_write_log("MUTEX","unlock 7\n");
+		thr_mutex_unlock(fileData->openMutex);
+                 if(fileData->openCount==0) {
+                    fp_write_log("STEP", "advancing\n");
+                    fp_write_log("DATAMUTEX", "in use 2\n"); 
+		    FlexpathQueueNode* node = threaded_dequeue(&fileData->dataQueue, 
+		        fileData->dataMutex, fileData->dataCondition, fileData->dataCondition2, 1);
+                    fp_write_log("DATAMUTEX", "no use 2\n"); 
+                    thr_mutex_lock(fileData->dataMutex);
+                    thr_mutex_unlock(fileData->dataMutex);
+                    fp_write_log("DATAMUTEX", "no use 2\n"); 
+                    int q = queue_count(&fileData->dataQueue, fileData->dataMutex);
+                    fp_write_log("QUEUE", "after step queue count now %d\n", q);
+                    FMfree_var_rec_elements(fileData->fm->ioFormat, node->data);
+                    fileData->currentStep++;
+                    
+                    int i;
+                    //for all bridges if step == currentstep send ack
+		    // this block gets repeated in finalize.  gets repeated
+		    // only AFTER sending finalize messages.  cp and past into finalize
+		    // do it for everyone that has opened.
+		    
+                    for(i=0; i<fileData->numBridges; i++) {
+                      if(fileData->bridges[i].step==fileData->currentStep) {
+                        fileData->openCount++;
+                        fileData->bridges[i].opened = 1;
+                        op_msg* ack = (op_msg*) malloc(sizeof(op_msg));
+                        ack->file_name = strdup(fileData->name);
+                        ack->process_id = fileData->rank;
+                        ack->step = fileData->currentStep;
+                        ack->type = 2;
+			ack->condition = fileData->bridges[i].condition;
+                        fileData->attrs = set_dst_rank_atom(fileData->attrs, i+1);
+		        fp_write_log("MSG", " sending op_msg : dst %d step %d type ack\n",
+                            i, fileData->currentStep);
+                        EVsubmit_general(fileData->opSource, ack, op_free, fileData->attrs);
+                      }
+                    }
+		}
+	    }else if(controlMsg->type == INIT){ 
+		fp_write_log("DATAMUTEX", "in use 1\n"); 
+		dataNode = threaded_peek(&fileData->dataQueue, 
+		    fileData->dataMutex, &fileData->dataCondition);
+                fp_write_log("DATAMUTEX", "no use 1\n"); 
+                thr_mutex_lock(fileData->dataMutex);
+                thr_mutex_unlock(fileData->dataMutex);
+                fp_write_log("DATAMUTEX", "no use 1\n"); 
+		op_msg* initMsg = (op_msg*) controlMsg->data;
+		void* temp = copy_buffer(dataNode->data, initMsg->process_id, fileData);
+		fileData->attrs = set_dst_rank_atom(fileData->attrs, initMsg->process_id);
+		fileData->attrs = set_dst_condition_atom(fileData->attrs, initMsg->condition);
+		fileData->bridges[initMsg->process_id].created = 1;
+		fileData->bridges[initMsg->process_id].myNum = 
+		    EVcreate_bridge_action(flexpathWriteData.cm, 
+					   attr_list_from_string(fileData->bridges[initMsg->process_id].contact), 
+					   fileData->bridges[initMsg->process_id].theirNum);
+		    
+		EVaction_set_output(flexpathWriteData.cm, 
+				    fileData->multiStone, 
+				    fileData->multi_action, 
+				    initMsg->process_id+1, 
+				    fileData->bridges[initMsg->process_id].myNum);		
+		/* if(!fileData->bridges[initMsg->rank].opened) { */
+                /*   fileData->bridges[initMsg->rank].opened=1;                   */
+                /* } */
+		/* fp_write_log("MSG", " sending data_msg : rank %d step %d\n",  */
+                /*     flushMsg->rank, fileData->currentStep); */
+		EVsubmit_general(fileData->dataSource, temp, data_free, fileData->attrs);
+	    }
+	    else{
+		perr("control_thread: Unrecognized Control Message\n");
+	    }
+	}
+    }
+    return 0;
+}
+
+// adds an open file handle to global open file list
+void add_open_file(FlexpathWriteFileData* newFile) {
+    FlexpathWriteFileData* last = flexpathWriteData.openFiles;
+    while(last && last->next) {
+        last = last->next;
+    }
+    if(last) {
+        last->next = newFile;
+    } else {
+        flexpathWriteData.openFiles = newFile;
+    }
+}
+
+// searches for an open file handle
+FlexpathWriteFileData* find_open_file(char* name) {
+    FlexpathWriteFileData* file = flexpathWriteData.openFiles;
+    while(file && strcmp(file->name, name)) {
+        file = file->next;
+    }
+    return file;
+}
+
+
+// Initializes flexpath write local data structures
+extern void adios_flexpath_init(const PairStruct *params, struct adios_method_struct *method) 
+{
+    setenv("CMSelfFormats", "1", 1);
+    // global data structure creation
+    flexpathWriteData.rank = -1;
+    flexpathWriteData.openFiles = NULL;
+    
+    // setup CM
+    flexpathWriteData.cm = CManager_create();
+    atom_t CM_TRANSPORT = attr_atom_from_string("CM_TRANSPORT");
+    char * transport = getenv("CMTransport");
+    if(transport == NULL){
+	fp_write_log("SETUP","transport is null\n");
+	if(CMlisten(flexpathWriteData.cm) == 0) {
+	    perr( "error: unable to initialize connection manager.\n");
+	    exit(1);
+	}
+    } else {
+	fp_write_log("SETUP", "writer transport: %s\n", transport);
+	attr_list listen_list = create_attr_list();
+	add_attr(listen_list, CM_TRANSPORT, Attr_String, (attr_value)strdup(transport));
+	CMlisten_specific(flexpathWriteData.cm, listen_list);
+    }
+    
+    // configuration setup
+    gen_pthread_init();
+    setenv("CMSelfFormats", "1", 1);
+    
+    // fork communications thread
+    int forked = CMfork_comm_thread(flexpathWriteData.cm);   
+    if(!forked) {
+         perr( "error forking comm thread\n");
+    }
+}
+
+// opens a new adios file for writes
+extern int adios_flexpath_open(struct adios_file_struct *fd, struct adios_method_struct *method, MPI_Comm comm) 
+{ 
+    if( fd == NULL || method == NULL) {
+        perr("open: Bad input parameters\n");
+        return -1;
+    }
+
+    // file creation
+    if(find_open_file(method->group->name)) {
+        // stream already open
+        return 0;
+    }
+
+    FlexpathWriteFileData* fileData = (FlexpathWriteFileData *) malloc(sizeof(FlexpathWriteFileData));
+    mem_check(fileData, "fileData");
+    memset(fileData, 0, sizeof(FlexpathWriteFileData));
+    fileData->maxQueueSize=0;
+    if(method->parameters) {
+        sscanf(method->parameters,"QUEUE_SIZE=%d;",&fileData->maxQueueSize);
+        fp_write_log("SETUP", "setting max queue size to %d\n", fileData->maxQueueSize);
+    }
+    
+    // setup step state
+    fileData->attrs = create_attr_list();
+    fileData->openCount = 0;
+    fileData->currentStep = 0;
+
+    // setup mutexs
+    fileData->controlMutex = thr_mutex_alloc();
+    fileData->dataMutex = thr_mutex_alloc();
+    fileData->dataMutex2 = thr_mutex_alloc();
+    fileData->openMutex = thr_mutex_alloc();
+    
+    // setup conditions
+    fileData->controlCondition = thr_condition_alloc();
+    fileData->dataCondition = thr_condition_alloc();
+    fileData->dataCondition2 = thr_condition_alloc();
+
+    // communication channel setup
+    char writer_info_filename[200];
+    char writer_ready_filename[200];
+    char reader_info_filename[200];
+    char reader_ready_filename[200];
+    
+    /*
+    // Titan filesystem specific
+    char * filebase = "/tmp/work/jdayal3/titan/";
+    sprintf(writer_info_filename, "%s", filebase);
+    sprintf(writer_ready_filename, "%s", filebase);
+    sprintf(reader_info_filename, "%s", filebase);
+    sprintf(reader_ready_filename, "%s", filebase);
+    */
+
+    int i=0;
+    flexpathWriteData.rank = fileData->rank;
+    fileData->globalCount = 0;
+    fileData->sentGlobalOffsets = 0;
+
+    // mpi setup
+    MPI_Comm_dup(comm, &fileData->mpiComm);
+
+    MPI_Comm_rank((fileData->mpiComm), &fileData->rank);
+    MPI_Comm_size((fileData->mpiComm), &fileData->size);
+    char *recv_buff = NULL;
+    char sendmsg[CONTACT_STR_LEN];
+    if(fileData->rank == 0) {
+        recv_buff = (char *) malloc(fileData->size*CONTACT_STR_LEN*sizeof(char));
+    }
+        
+    // send out contact string
+    char * contact = attr_list_to_string(CMget_contact_list(flexpathWriteData.cm));
+    fileData->multiStone = EValloc_stone(flexpathWriteData.cm);
+    fileData->sinkStone = EValloc_stone(flexpathWriteData.cm);
+    sprintf(&sendmsg[0], "%d:%s", fileData->multiStone, contact);
+    MPI_Gather(sendmsg, CONTACT_STR_LEN, MPI_CHAR, recv_buff, 
+        CONTACT_STR_LEN, MPI_CHAR, 0, (fileData->mpiComm));
+
+    // rank 0 prints contact info to file
+    if(fileData->rank == 0) {
+        sprintf(writer_info_filename, "%s_%s", fd->name, "writer_info.txt");
+        FILE* writer_info = fopen(writer_info_filename,"w");
+        for(i=0; i<fileData->size; i++) {
+            fprintf(writer_info, "%s\n",&recv_buff[i*CONTACT_STR_LEN]); 
+        }
+        fclose(writer_info);
+    }
+
+    // poll file - race condition issues
+    FILE* reader_ready = NULL;
+    sprintf(reader_ready_filename, "%s_%s", fd->name, "reader_ready.txt");
+    while(!reader_ready){
+	reader_ready = fopen(reader_ready_filename,"r");
+    }
+    fclose(reader_ready);
+
+    // read contact list
+    sprintf(reader_info_filename, "%s_%s", fd->name, "reader_info.txt");
+    FILE* reader_info = fopen(reader_info_filename, "r");
+    if(!reader_info){
+	reader_info = fopen(reader_info_filename, "r");
+    }
+    char in_contact[CONTACT_STR_LEN] = "";
+    int numBridges = 0;
+    int stone_num;
+    // build a bridge per line
+    while(fscanf(reader_info, "%d:%s",&stone_num, in_contact)!=EOF){
+        fileData->bridges = realloc(fileData->bridges, sizeof(FlexpathStone) * (numBridges + 1));
+        attr_list contact_list = attr_list_from_string(in_contact);
+        fileData->bridges[numBridges].opened = 0;
+	fileData->bridges[numBridges].created = 0;
+        fileData->bridges[numBridges].step = 0;
+        fileData->bridges[numBridges].theirNum = stone_num;
+        fileData->bridges[numBridges].contact = strdup(in_contact);
+        numBridges += 1;
+    }
+    fileData->numBridges = numBridges;
+    fclose(reader_info);
+
+    MPI_Barrier((fileData->mpiComm));
+    
+    // cleanup of reader files (writer is done with it).
+    if(fileData->rank == 0){
+	unlink(reader_info_filename);
+	unlink(reader_ready_filename);
+    }
+	
+    //process group format
+    struct adios_group_struct *t = method->group;
+    struct adios_var_struct *fields = t->vars;
+    if(t == NULL)
+	perr("t is null\n");
+    if(fields == NULL)
+	perr("t is null\n");
+
+    fileData->fm = set_format(t, fields, fileData);
+    fp_write_log("SETUP", "set format complete\n");
+
+    // attach rank attr and add file to open list
+    fp_write_log("FILE", "opening file %s\n", method->group->name);
+    fileData->name = strdup(method->group->name); 
+    add_open_file(fileData);
+    atom_t rank_atom = attr_atom_from_string(FP_RANK_ATTR_NAME);
+    add_int_attr(fileData->attrs, rank_atom, fileData->rank);
+
+    //generate multiqueue function that sends formats or all data based on flush msg
+    fp_write_log("SETUP", "setup graph\n");
+    FMStructDescList queue_list[] = {flush_format_list, format_format_list, 
+	var_format_list, op_format_list, evgroup_format_list, 
+        data_format_list, NULL};
+    char* q_action_spec = create_multityped_action_spec(queue_list, 
+        multiqueue_action); 
+    fileData->multi_action = EVassoc_multi_action(flexpathWriteData.cm, 
+	fileData->multiStone, q_action_spec, NULL);
+    fileData->formatSource = EVcreate_submit_handle(flexpathWriteData.cm, 
+        fileData->multiStone, format_format_list);
+    fileData->dataSource = EVcreate_submit_handle_free(flexpathWriteData.cm, 
+        fileData->multiStone, fileData->fm->format, data_free,  NULL); 
+    fileData->opSource = EVcreate_submit_handle_free(flexpathWriteData.cm, 
+        fileData->multiStone, op_format_list, op_free,  NULL); 
+    fileData->offsetSource = EVcreate_submit_handle(flexpathWriteData.cm, 
+	fileData->multiStone, evgroup_format_list);
+    
+    fp_write_log("SETUP", "setup terminal actions\n");
+    EVassoc_terminal_action(flexpathWriteData.cm, fileData->sinkStone, 
+	var_format_list, var_handler, fileData);
+    EVassoc_terminal_action(flexpathWriteData.cm, fileData->sinkStone, 
+	op_format_list, op_handler, fileData);
+    EVassoc_terminal_action(flexpathWriteData.cm, fileData->sinkStone, 
+	flush_format_list, flush_handler, fileData);
+
+    //link multiqueue to sink
+    fp_write_log("SETUP", "linking stones\n");
+    EVaction_set_output(flexpathWriteData.cm, fileData->multiStone, 
+        fileData->multi_action, 0, fileData->sinkStone);
+
+    //link up multiqueue ports to bridge stones
+    /* for(i=0; i<numBridges; i++) { */
+    /*     EVaction_set_output(flexpathWriteData.cm,  */
+    /*         fileData->multiStone, multi_action, i+1, fileData->bridges[i].myNum); */
+    /* } */
+    
+    fp_write_log("SETUP", "arranged evpath graph\n");
+	
+    //store format id in multiqueue
+    Format_msg *initial_format_msg = malloc(sizeof(Format_msg));
+    FMContext my_context = create_local_FMcontext();	
+    fileData->fm->ioFormat = register_data_format(my_context, fileData->fm->format);
+    int id_len;
+    char* temp = get_server_ID_FMformat(fileData->fm->ioFormat, &id_len);
+    initial_format_msg->format_id = temp;
+    initial_format_msg->id_len = id_len;
+    int rep_len;
+    char *temp2 = get_server_rep_FMformat(fileData->fm->ioFormat, &rep_len);
+    initial_format_msg->rep_id = temp2;
+    initial_format_msg->rep_id_len = rep_len;
+    
+    fp_write_log("SETUP", "submitting format stuff\n");
+    EVsubmit_general(fileData->formatSource, initial_format_msg, format_free, fileData->attrs);
+    
+    fp_write_log("SETUP", "indicating to reader that ready\n");
+    sprintf(writer_ready_filename, "%s_%s", fd->name, "writer_ready.txt");
+    if(fileData->rank == 0) {
+        FILE* writer_info = fopen(writer_ready_filename, "w");
+        fprintf(writer_info, "ready");
+        fclose(writer_info);
+    }
+        
+    fp_write_log("SETUP", "fork control thread\n");
+    thr_thread_t forked_thread = thr_fork(control_thread, fileData);
+    if(!forked_thread) {
+        perr("on open ERROR forking control thread");
+    }
+   
+    return 0;	
+}
+
+
+
+
+//  writes data to multiqueue
+extern void adios_flexpath_write(struct adios_file_struct *fd, struct adios_var_struct *f, void *data, struct adios_method_struct *method) {
+    fp_write_log("FILE", "entering flexpath file %s write\n", method->group->name);
+    FlexpathWriteFileData* fileData = find_open_file(method->group->name);
+    FlexpathFMStructure* fm = fileData->fm;
+
+    if (fm == NULL)
+    {
+	return;
+
+    }
+    
+    FMFieldList flist = fm->format->field_list;
+    FMField *field = NULL;
+    char *fixedname = find_fixed_name(fm, f->name);
+    field = internal_find_field(fixedname, flist);
+    //perr( "found field %s\n", field->field_name);
+    if (field != NULL) {
+	if (!f->dimensions) {
+	    //scalar quantity
+            //perr( "copying scalar value\n");
+	    if (data) {
+		//why wouldn't it have data?
+		memcpy(&fm->buffer[field->field_offset], data, field->field_size);
+
+		//scalar quantities can have FlexpathAltNames also so assign those
+		if(field->field_name != NULL) {
+					
+		    FlexpathDimNames *d = NULL;
+		    for (d = fm->dimList.lh_first; d != NULL; d = d->entries.le_next) {
+			if (!strcmp(d->name, field->field_name)) {
+			    //matches
+			    //check if there are FlexpathAltNames
+			    FlexpathAltName *a = NULL;
+			    for (a = d->altList.lh_first; a != NULL; a = a->entries.le_next) {
+				//use the FlexpathAltName field to get the data into the buffer
+				memcpy(&fm->buffer[a->field->field_offset], 
+				       data, 
+				       a->field->field_size);
+                		//int *testingint = (int*)&fm->buffer[a->field->field_offset];
+		        	//perr( "writing %s to %s at %d %d\n", f->name, a->name, a->field->field_offset, (int)*testingint);
+			    }
+			}
+		    }
+		}
+	    } else {
+		//perr( "no data for  scalar %s\n", f->name);
+	    }
+	} else {
+	    //vector quantity
+	    if (data)
+	    {
+                //perr( "copying vector pointer\n");
+		//we just need to copy the pointer stored in f->data
+                // calculate size
+                memcpy(&fm->buffer[field->field_offset], &data, sizeof(void *));
+
+	    } else {
+		//perr( "no data for vector %s\n", f->name);
+	    }
+	}
+    }
+    //perr( "successfully copied data to buffer\n");
+}
+
+extern void 
+adios_flexpath_close(struct adios_file_struct *fd, struct adios_method_struct *method) 
+{
+    fp_write_log("FILE", "file close %s\n", method->group->name);
+    FlexpathWriteFileData* fileData = find_open_file(method->group->name);
+    void* buffer = malloc(fileData->fm->size);
+
+    struct adios_group_struct * g2 = fd->group;
+    struct adios_var_struct * fields = g2->vars;
+    while(fields) {
+        
+        //perr( "field name: %s\n", fields->name);
+        if(fields->dimensions) {
+            //perr( "field is an array\n");
+            struct adios_dimension_struct* dims = fields->dimensions;
+            //perr( "field dims: %p\n", dims);
+    
+            int total_size = 1;
+            //for each dimension
+            while(dims) {    
+                struct adios_var_struct* temp = adios_find_var_by_id(g2->vars, dims->dimension.id);            
+                int size = *(int*)temp->data;
+                //perr( "dim %s size %d\n", temp->name, *(int*)temp->data);
+                total_size *= size;
+                dims = dims->next;
+            }		
+            FMFieldList flist = fileData->fm->format->field_list;
+            FMField *field = NULL;
+            char *fixedname = find_fixed_name(fileData->fm, fields->name);
+            field = internal_find_field(fixedname, flist);
+            //perr( "field offset %d size %d\n", field->field_offset, field->field_size);
+
+            total_size*=field->field_size;
+            // malloc size
+            //perr( "field %s field size %d\n", fields->name, total_size);
+            void* pointer_data_copy = malloc(total_size);
+            // while null
+            while(pointer_data_copy==NULL) { 
+                perr("mallocing space for user buffer failed, trying again soon\n");
+                sleep(1);
+                void* pointer_data_copy = malloc(total_size);
+                //block
+            }
+                
+            fp_write_log("DATA","Attempting to get pointer to user data\n");
+            void* temp = get_FMPtrField_by_name(flist, fields->name, fileData->fm->buffer, 0);
+            fp_write_log("DATA","Copying user data to new space\n");
+            memcpy(pointer_data_copy, temp, total_size);
+            fp_write_log("DATA","Setting pointer to new space\n");
+            set_FMPtrField_by_name(flist, fields->name, fileData->fm->buffer, pointer_data_copy);
+        }    
+        fields = fields->next;
+    }
+
+    
+    memcpy(buffer, fileData->fm->buffer, fileData->fm->size);
+
+    fp_write_log("DATAMUTEX", "in use 3\n"); 
+    threaded_enqueue(&fileData->dataQueue, buffer, 
+        DATA_BUFFER, fileData->dataMutex, fileData->dataCondition);
+    fp_write_log("DATAMUTEX", "no use 3\n"); 
+    thr_mutex_lock(fileData->dataMutex);
+    thr_mutex_unlock(fileData->dataMutex);
+    fp_write_log("DATAMUTEX", "no use 3\n"); 
+    
+    int c = 0;
+ 
+    // now gather offsets and send them via MPI to root
+    struct adios_group_struct * g = fd->group;
+    struct adios_var_struct * list = g->vars;
+
+    if(fileData->globalCount > 0 && !fileData->sentGlobalOffsets){	
+	fp_write_log("BOUNDING", "check offsets\n");
+        // process local offsets here	
+	int num_gbl_vars = 0;
+        global_var * gbl_vars = NULL;
+	int num_vars = 0;
+	int myrank = fileData->rank;
+	int commsize = fileData->size;
+
+	while(list){
+	    //int num_local_offsets = 0;
+	    int * local_offsets = NULL;
+	    int * local_dimensions = NULL;
+	    int num_local_offsets = get_local_offsets(list, g, &local_offsets, &local_dimensions);
+	    
+	    if(num_local_offsets > 0){
+		int * all_offsets = NULL;
+		int * all_local_dims = NULL;
+		
+		int buf_size = num_local_offsets * commsize * sizeof(int);		    
+		all_offsets = (int*)malloc(buf_size);		
+		all_local_dims = (int*)malloc(buf_size);
+		
+
+		MPI_Allgather(local_offsets, num_local_offsets, MPI_INT, 
+			      all_offsets, num_local_offsets, MPI_INT,
+			      fileData->mpiComm);
+
+		MPI_Allgather(local_dimensions, num_local_offsets, MPI_INT, 
+			      all_local_dims, num_local_offsets, MPI_INT,
+			      fileData->mpiComm);
+
+		
+		num_gbl_vars++;
+		offset_struct * ostruct = (offset_struct*)malloc(sizeof(offset_struct));
+		ostruct->offsets_per_rank = num_local_offsets;
+		ostruct->total_offsets = num_local_offsets * commsize;
+		ostruct->local_offsets = all_offsets;
+		ostruct->local_dimensions = all_local_dims;
+		gbl_vars = realloc(gbl_vars, sizeof(global_var) * num_gbl_vars);
+		gbl_vars[num_gbl_vars - 1].name = strdup(list->name);
+		gbl_vars[num_gbl_vars - 1].noffset_structs = 1;
+		gbl_vars[num_gbl_vars - 1].offsets = ostruct;
+
+	    }
+	    list=list->next;
+	}
+
+	int i;
+	    
+	for(i=0; i<num_gbl_vars; i++){
+	    perr("global_var: %s has local offsets\n", gbl_vars[i].name);
+	}
+	    
+	evgroup * gp = (evgroup*)malloc(sizeof(evgroup));
+	gp->num_vars = num_gbl_vars;
+	perr("num global vars %d\n", num_gbl_vars);
+	gp->vars = gbl_vars;
+	fileData->gp = gp;
+	fileData->attrs = set_size_atom(fileData->attrs, fileData->size);
+	perr("size:%d\n\n\n", fileData->size);
+	EVsubmit(fileData->offsetSource, gp, fileData->attrs);
+	
+	fileData->sentGlobalOffsets = 1;
+    }
+
+    while((c=queue_count(&fileData->dataQueue, fileData->dataMutex))>fileData->maxQueueSize) {
+        fp_write_log("QUEUE", "waiting for queue to be below max size\n");
+        thr_condition_wait(fileData->dataCondition2, fileData->dataMutex2);
+        fp_write_log("QUEUE", "wakeup on queue size\n");
+    }
+    fp_write_log("FILE", "file close %s exiting\n", method->group->name);
+}
+
+// wait until all open files have finished sending data to shutdown
+extern void adios_flexpath_finalize(int mype, struct adios_method_struct *method) {
+    FlexpathWriteFileData* fileData = flexpathWriteData.openFiles;
+    log_info("Flexpath method entered finalize: %d\n", fileData->rank);
+    fp_write_log("FILE", "Entered finalize\n");
+    while(fileData) {
+        fp_write_log("DATAMUTEX", "in use 4\n"); 
+        thr_mutex_lock(fileData->dataMutex2);
+        fp_write_log("MUTEX","lock 1\n");
+        while(fileData->dataQueue!=NULL) {
+            fp_write_log("FILE", "waiting on %s to empty data\n", fileData->name);
+            thr_condition_wait(fileData->dataCondition2, fileData->dataMutex2);
+        }
+        fp_write_log("MUTEX","unlock 1\n");
+        thr_mutex_unlock(fileData->dataMutex2);
+        fp_write_log("DATAMUTEX", "no use 4\n"); 
+        fileData = fileData->next;
+    }
+    // all data has been read by all readers.
+    // we can send everyone end_of_stream messages.
+    int i;
+    /* for(i=0; i<fileData->numBridges; i++) { */
+    /* 	if(fileData->bridges[i].created) { */
+    /* 	    op_msg* ack = (op_msg*) malloc(sizeof(op_msg)); */
+    /* 	    ack->file_name = strdup(fileData->name); */
+    /* 	    ack->process_id = fileData->rank; */
+    /* 	    ack->step = fileData->currentStep; */
+    /* 	    ack->type = 4; */
+    /* 	    ack->condition = fileData->bridges[i].condition; */
+    /* 	    fileData->attrs = set_dst_rank_atom(fileData->attrs, i+1); */
+    /* 	    fp_write_log("FINALIZE", " sending opfinalize _msg : dst %d step %d type ack\n", */
+    /* 			 i, fileData->currentStep); */
+    /* 	    fprintf(stderr, "\t\t\t sending finalize message to %d\n", i); */
+    /* 	    EVsubmit_general(fileData->opSource, ack, op_free, fileData->attrs); */
+    /* 	} */
+    /* } */
+}
+
+// provides unknown functionality
+extern enum ADIOS_FLAG adios_flexpath_should_buffer (struct adios_file_struct * fd,struct adios_method_struct * method) {
+    fp_write_log("UNIMPLEMENTED", "adios_flexpath_should_buffer\n");
+    return adios_flag_unknown;
+}
+
+// provides unknown functionality
+extern void adios_flexpath_end_iteration(struct adios_method_struct *method) {
+    fp_write_log("UNIMPLEMENTED", "adios_flexpath_end_iteration\n");
+}
+
+// provides unknown functionality
+extern void adios_flexpath_start_calculation(struct adios_method_struct *method) {
+    fp_write_log("UNIMPLEMENTED", "adios_flexpath_start_calculation\n");
+}
+
+// provides unknown functionality
+extern void adios_flexpath_stop_calculation(struct adios_method_struct *method) {
+    fp_write_log("UNIMPLEMENTED", "adios_flexpath_stop_calculation\n");
+}
+
+// provides unknown functionality
+extern void adios_flexpath_get_write_buffer(struct adios_file_struct *fd,struct adios_var_struct *f, uint64_t *size, void **buffer, struct adios_method_struct *method) {
+    fp_write_log("UNIMPLEMENTED", "adios_flexpath_get_write_buffer\n");
+}
+
+// should not be called from write, reason for inclusion here unknown
+void adios_flexpath_read(struct adios_file_struct *fd, struct adios_var_struct *f, void *buffer, uint64_t buffer_size, struct adios_method_struct *method) {
+    fp_write_log("UNIMPLEMENTED", "adios_flexpath_read\n");
+}
+
+#else // print empty version of all functions (if HAVE_FLEXPATH == 0)
+
+void adios_flexpath_read(struct adios_file_struct *fd, struct adios_var_struct *f, void *buffer, struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_get_write_buffer(struct adios_file_struct *fd, struct adios_var_struct *f, unsigned long long *size, void **buffer, struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_stop_calculation(struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_start_calculation(struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_end_iteration(struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_finalize(int mype, struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_close(struct adios_file_struct *fd, struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_write(struct adios_file_struct *fd, struct adios_var_struct *f, void *data, struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_open(struct adios_file_struct *fd, struct adios_method_struct *method) {
+}
+
+extern void adios_flexpath_init(const PairStruct *params, struct adios_method_struct *method) {
+}
+
+enum ADIOS_FLAG adios_flexpath_should_buffer (struct adios_file_struct * fd, struct adios_method_struct * method) {
+}
+
+#endif
diff --git a/src/write/adios_mpi.c b/src/write/adios_mpi.c
index ed1c727..e90e87f 100644
--- a/src/write/adios_mpi.c
+++ b/src/write/adios_mpi.c
@@ -19,11 +19,10 @@
 #include <sys/ioctl.h>
 #include <assert.h>
 
-#include "mpi.h"
-
 // xml parser
 #include <mxml.h>
 
+#include "public/adios_mpi.h"
 #include "public/adios_error.h"
 #include "core/adios_transport_hooks.h"
 #include "core/adios_bp_v1.h"
@@ -270,91 +269,6 @@ static void print_metric (FILE * f, struct timing_metrics * t, int iteration, in
 }
 #endif
 
-static void adios_var_to_comm (const char * comm_name
-                              ,enum ADIOS_FLAG host_language_fortran
-                              ,void * data
-                              ,MPI_Comm * comm
-                              )
-{
-    if (data)
-    {
-        int t = *(int *) data;
-
-        if (!comm_name)
-        {
-            if (!t)
-            {
-                log_warn ("MPI method: communicator not provided and none "
-                          "listed in XML.  Defaulting to MPI_COMM_SELF\n");
-
-                *comm = MPI_COMM_SELF;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-        else
-        {
-            if (!strcmp (comm_name, ""))
-            {
-                if (!t)
-                {
-                    log_warn ("MPI method: communicator not provided and none "
-                              "listed in XML.  Defaulting to MPI_COMM_SELF\n");
-
-                    *comm = MPI_COMM_SELF;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-            else
-            {
-                if (!t)
-                {
-                    log_warn ("MPI method: communicator not provided but one "
-                              "listed in XML.  Defaulting to MPI_COMM_WORLD\n");
-
-                    *comm = MPI_COMM_WORLD;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-        }
-    }
-    else
-    {
-        log_warn ("MPI method: coordination-communication not provided. "
-                  "Using MPI_COMM_WORLD instead\n");
-
-        *comm = MPI_COMM_WORLD;
-    }
-}
 
 void adios_mpi_init (const PairStruct * parameters
                     ,struct adios_method_struct * method
@@ -377,7 +291,7 @@ void adios_mpi_init (const PairStruct * parameters
     MPI_Info_set (md->info, "ind_wr_buffer_size", "16777216");
     md->rank = 0;
     md->size = 0;
-    md->group_comm = MPI_COMM_NULL;
+    md->group_comm = method->init_comm; // unused here, adios_open will set the current comm
     md->old_pg_root = 0;
     md->old_vars_root = 0;
     md->old_attrs_root = 0;
@@ -393,7 +307,7 @@ void adios_mpi_init (const PairStruct * parameters
 }
 
 int adios_mpi_open (struct adios_file_struct * fd
-                   ,struct adios_method_struct * method, void * comm
+                   ,struct adios_method_struct * method, MPI_Comm comm
                    )
 {
     struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
@@ -405,11 +319,7 @@ int adios_mpi_open (struct adios_file_struct * fd
 #endif
     adios_buffer_struct_clear (&md->b);
 
-    adios_var_to_comm (fd->group->group_comm
-                      ,fd->group->adios_host_language_fortran
-                      ,comm
-                      ,&md->group_comm
-                      );
+    md->group_comm = comm;
     if (md->group_comm != MPI_COMM_NULL)
     {
         MPI_Comm_rank (md->group_comm, &md->rank);
diff --git a/src/write/adios_mpi_amr.c b/src/write/adios_mpi_amr.c
index 4343fff..7a95efd 100644
--- a/src/write/adios_mpi_amr.c
+++ b/src/write/adios_mpi_amr.c
@@ -12,12 +12,16 @@
 #include <errno.h>
 
 #include <pthread.h>
-// mpi
-#include "mpi.h"
 
 // xml parser
 #include <mxml.h>
 
+// add by Kimmy 10/15/2012
+#include <sys/types.h>
+#include <sys/stat.h>
+// end of change
+
+#include "public/adios_mpi.h"
 #include "public/adios_error.h"
 #include "core/adios_transport_hooks.h"
 #include "core/adios_bp_v1.h"
@@ -26,6 +30,7 @@
 #include "core/util.h"
 #include "core/adios_logger.h"
 
+
 enum ADIOS_MPI_AMR_IO_TYPE
 {
     ADIOS_MPI_AMR_IO_NONE = 0,
@@ -812,93 +817,6 @@ void * adios_mpi_amr_do_write_thread (void * param)
     return NULL;
 }
 
-static void adios_var_to_comm (const char * comm_name
-                              ,enum ADIOS_FLAG host_language_fortran
-                              ,void * data
-                              ,MPI_Comm * comm
-                              )
-{
-    if (data)
-    {
-        int t = *(int *) data;
-
-        if (!comm_name)
-        {
-            if (!t)
-            {
-                log_warn ("MPI_AMR method: Communicator not provided and none "
-                        "listed in XML.  Defaulting to MPI_COMM_SELF\n");
-
-                *comm = MPI_COMM_SELF;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-        else
-        {
-            if (!strcmp (comm_name, ""))
-            {
-                if (!t)
-                {
-                    log_warn ("MPI_AMR method: Communicator not provided and none "
-                            "listed in XML.  Defaulting to MPI_COMM_SELF\n");
-
-                    *comm = MPI_COMM_SELF;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-            else
-            {
-                if (!t)
-                {
-                    log_warn ("MPI_AMR method: Communicator not provided but one is "
-                            "listed in XML.  Defaulting to MPI_COMM_WORLD\n");
-
-                    *comm = MPI_COMM_WORLD;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-        }
-    }
-    else
-    {
-        log_warn ("MPI_AMR method: Coordination-communication not provided. "
-                  "Using MPI_COMM_WORLD instead\n"
-                 );
-
-        *comm = MPI_COMM_WORLD;
-    }
-}
-
 void adios_mpi_amr_init (const PairStruct * parameters
                          ,struct adios_method_struct * method
                          )
@@ -919,7 +837,7 @@ void adios_mpi_amr_init (const PairStruct * parameters
     memset (&md->status, 0, sizeof (MPI_Status));
     md->rank = 0;
     md->size = 0;
-    md->group_comm = MPI_COMM_NULL;
+    md->group_comm = method->init_comm; //unused, adios_open sets current comm
     md->old_pg_root = 0;
     md->old_vars_root = 0;
     md->old_attrs_root = 0;
@@ -955,19 +873,13 @@ int ADIOS_TIMER_MPI_AMR_AD_SHOULD_BUFFER = ADIOS_TIMING_MAX_USER_TIMERS + 5;
 
 
 int adios_mpi_amr_open (struct adios_file_struct * fd
-                        ,struct adios_method_struct * method, void * comm
+                        ,struct adios_method_struct * method, MPI_Comm comm
                         )
 {
     struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
                                                     method->method_data;
 
-
-    adios_var_to_comm (fd->group->group_comm
-                      ,fd->group->adios_host_language_fortran
-                      ,comm
-                      ,&md->group_comm
-                      );
-
+    md->group_comm = comm;
     if (md->group_comm != MPI_COMM_NULL)
     {
         MPI_Comm_rank (md->group_comm, &md->rank);
@@ -1091,13 +1003,15 @@ enum ADIOS_FLAG adios_mpi_amr_should_buffer (struct adios_file_struct * fd
 
                 ioctl (f, LL_IOC_LOV_SETSTRIPE ,(void *) &lum);
 #ifdef HAVE_LUSTRE
+
                 md->g_num_ost = 1024;
                 rc = llapi_lov_get_uuids(f, uuids, &md->g_num_ost);
                 if (rc != 0)
                 {
                     log_warn ("MPI_AMR method: Lustre get uuids failed after creating the file: %s\n" ,strerror(errno));
                 }
-#endif
+
+#endif 
                 close (f);
 
                 MPI_File_open (MPI_COMM_SELF, fd->name
diff --git a/src/write/adios_mpi_lustre.c b/src/write/adios_mpi_lustre.c
index a1ff456..9afa584 100644
--- a/src/write/adios_mpi_lustre.c
+++ b/src/write/adios_mpi_lustre.c
@@ -11,12 +11,10 @@
 #include <string.h>
 #include <errno.h>
 
-// mpi
-#include "mpi.h"
-
 // xml parser
 #include <mxml.h>
 
+#include "public/adios_mpi.h"
 #include "core/adios_transport_hooks.h"
 #include "core/adios_bp_v1.h"
 #include "core/adios_internals.h"
@@ -510,98 +508,6 @@ printf("adios_mpi_lustre_striping_unit_write offset=%12lld len=%12d\n",offset,wr
     return err;
 }
 
-static void adios_var_to_comm (const char * comm_name
-                              ,enum ADIOS_FLAG host_language_fortran
-                              ,void * data
-                              ,MPI_Comm * comm
-                              )
-{
-    if (data)
-    {
-        int t = *(int *) data;
-
-        if (!comm_name)
-        {
-            if (!t)
-            {
-                fprintf (stderr, "communicator not provided and none "
-                                 "listed in XML.  Defaulting to "
-                                 "MPI_COMM_SELF\n"
-                        );
-
-                *comm = MPI_COMM_SELF;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-        else
-        {
-            if (!strcmp (comm_name, ""))
-            {
-                if (!t)
-                {
-                    fprintf (stderr, "communicator not provided and none "
-                                     "listed in XML.  Defaulting to "
-                                     "MPI_COMM_SELF\n"
-                            );
-
-                    *comm = MPI_COMM_SELF;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-            else
-            {
-                if (!t)
-                {
-                    fprintf (stderr, "communicator not provided but one "
-                                     "listed in XML.  Defaulting to "
-                                     "MPI_COMM_WORLD\n"
-                            );
-
-                    *comm = MPI_COMM_WORLD;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-        }
-    }
-    else
-    {
-        fprintf (stderr, "coordination-communication not provided. "
-                         "Using MPI_COMM_WORLD instead\n"
-                );
-
-        *comm = MPI_COMM_WORLD;
-    }
-}
 
 void adios_mpi_lustre_init (const PairStruct * parameters
                     ,struct adios_method_struct * method
@@ -620,7 +526,7 @@ void adios_mpi_lustre_init (const PairStruct * parameters
     memset (&md->status, 0, sizeof (MPI_Status));
     md->rank = 0;
     md->size = 0;
-    md->group_comm = MPI_COMM_NULL;
+    md->group_comm = method->init_comm;//unused, adios_open sets current comm
     md->old_pg_root = 0;
     md->old_vars_root = 0;
     md->old_attrs_root = 0;
@@ -644,7 +550,7 @@ int ADIOS_TIMER_MPI_LUSTRE_AD_SHOULD_BUFFER = ADIOS_TIMING_MAX_USER_TIMERS + 5;
 
 
 int adios_mpi_lustre_open (struct adios_file_struct * fd
-                   ,struct adios_method_struct * method, void * comm
+                   ,struct adios_method_struct * method, MPI_Comm comm
                    )
 {
     struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
@@ -654,11 +560,7 @@ int adios_mpi_lustre_open (struct adios_file_struct * fd
     gettimeofday (&t0, NULL); // only used on rank == size - 1, but we don't
                               // have the comm yet to get the rank/size
 #endif
-    adios_var_to_comm (fd->group->group_comm
-                      ,fd->group->adios_host_language_fortran
-                      ,comm
-                      ,&md->group_comm
-                      );
+    md->group_comm = comm;
     if (md->group_comm != MPI_COMM_NULL)
     {
         MPI_Comm_rank (md->group_comm, &md->rank);
diff --git a/src/write/adios_nc4.c b/src/write/adios_nc4.c
index 9d291c5..d42e5ea 100644
--- a/src/write/adios_nc4.c
+++ b/src/write/adios_nc4.c
@@ -103,8 +103,6 @@ struct adios_nc4_data_struct
     MPI_Comm group_comm;
     int      rank;
     int      size;
-
-    void * comm; // temporary until moved from should_buffer to open
 };
 
 #define NC4_PATH_MAX 1024
@@ -141,7 +139,7 @@ int ncd_gen_name(
         char *name);
 int getNC4TypeId(
         enum ADIOS_DATATYPES type,
-        int *nc4_type_id,
+        nc_type *nc4_type_id,
         enum ADIOS_FLAG fortran_flag);
 
 
@@ -352,7 +350,7 @@ static int write_attribute(
     int i, rank = 0;
     int rc;
 
-    int nc4_type_id;
+    nc_type nc4_type_id;
     int varid;
     int attid;
 
@@ -769,7 +767,7 @@ static int read_var(
     deciphered_dims_t deciphered_dims;
     char fullname[255];
 
-    int nc4_type_id;
+    nc_type nc4_type_id;
     int nc4_varid;
 
     memset(&deciphered_dims, 0, sizeof(deciphered_dims_t));
@@ -926,7 +924,7 @@ static int write_header(
     int i;
     int rc;
     int return_code=0;
-    int nc4_type_id;
+    nc_type nc4_type_id;
     int nc4_varid;
     deciphered_dims_t deciphered_dims;
     char fullname[255];
@@ -952,7 +950,7 @@ static int write_header(
         Func_Timer("inqvar", rc = nc_inq_varid(ncid, fullname, &nc4_varid););
         if (rc == NC_ENOTVAR) {
             if (pvar->type == adios_string) {
-                size_t str_var_dimid=0;
+                int str_var_dimid=0;
                 char str_var_dimname[40];
                 sprintf(str_var_dimname, "%s_dim", fullname);
                 Func_Timer("defdim", rc = nc_def_dim(ncid, str_var_dimname, strlen((char *)pvar->data)+1, &str_var_dimid););
@@ -1142,7 +1140,7 @@ static int write_var(
     int i;
     int rc;
     int return_code=0;
-    int nc4_type_id;
+    nc_type nc4_type_id;
     int nc4_varid;
     deciphered_dims_t deciphered_dims;
     char fullname[255];
@@ -1313,24 +1311,6 @@ escape:
 
 
 static int adios_nc4_initialized = 0;
-static void adios_var_to_comm_nc4(
-        enum ADIOS_FLAG host_language_fortran,
-        void *data,
-        MPI_Comm *comm)
-{
-    if (data) {
-        int t = *(int *) data;
-        if (host_language_fortran == adios_flag_yes) {
-            *comm = MPI_Comm_f2c (t);
-        } else {
-            *comm = *(MPI_Comm *) data;
-        }
-    } else {
-        fprintf (stderr, "coordination-communication not provided. "
-                "Using MPI_COMM_WORLD instead\n");
-        *comm = MPI_COMM_WORLD;
-    }
-}
 void adios_nc4_init(
         const PairStruct *parameters,
         struct adios_method_struct *method)
@@ -1341,7 +1321,7 @@ void adios_nc4_init(
     if (!adios_nc4_initialized) {
         adios_nc4_initialized = 1;
 
-        MPI_Comm_rank(MPI_COMM_WORLD, &global_rank);
+        MPI_Comm_rank(method->init_comm, &global_rank);
 
         list_init(&open_file_list, open_file_free);
     }
@@ -1353,7 +1333,6 @@ void adios_nc4_init(
 //    md->root_ncid  = -1;
 //    md->rank       = -1;
 //    md->size       = 0;
-//    md->group_comm = MPI_COMM_NULL;
 }
 
 enum ADIOS_FLAG adios_nc4_should_buffer(
@@ -1377,16 +1356,14 @@ enum ADIOS_FLAG adios_nc4_should_buffer(
     }
     md=of->md;
 
-
     if (md->ncid != -1) {
         // file already open
         if (DEBUG>3) printf("adios_nc4_should_buffer: file is already open (fname=%s, ncid=%d)\n", fd->name, md->ncid);
         return adios_flag_no;
     }
 
-    adios_var_to_comm_nc4(fd->group->adios_host_language_fortran, md->comm, &md->group_comm);
     if (md->group_comm != MPI_COMM_NULL) {
-        if (DEBUG>3) printf("global_rank(%d): adios_nc4_should_buffer: get rank and size: comm(%p) group_comm(%p)\n", global_rank, md->comm, md->group_comm);
+        if (DEBUG>3) printf("global_rank(%d): adios_nc4_should_buffer: get rank and size: group_comm(%p)\n", global_rank, md->group_comm);
         MPI_Comm_rank(md->group_comm, &md->rank);
         MPI_Comm_size(md->group_comm, &md->size);
         if (DEBUG>3) printf("global_rank(%d): adios_nc4_should_buffer: size(%d) rank(%d)\n", global_rank, md->size, md->rank);
@@ -1447,7 +1424,7 @@ enum ADIOS_FLAG adios_nc4_should_buffer(
 int adios_nc4_open(
         struct adios_file_struct *fd,
         struct adios_method_struct *method,
-        void *comm)
+        MPI_Comm comm)
 {
     struct open_file *of=NULL;
     struct adios_nc4_data_struct *md=NULL;
@@ -1463,8 +1440,7 @@ int adios_nc4_open(
         md->root_ncid  = -1;
         md->rank       = -1;
         md->size       = 0;
-        md->group_comm = MPI_COMM_NULL;
-        md->comm       = comm;
+        md->group_comm = comm;
 
         of=open_file_create(method->base_path, fd->name, md, fd);
     } else {
@@ -1623,10 +1599,13 @@ void adios_nc4_close(
     } else if (fd->mode == adios_mode_write || fd->mode == adios_mode_append) {
         if (DEBUG>3) fprintf(stderr, "entering nc4 write attribute mode!\n");
         while(a) {
-            Func_Timer("write_attribute", write_attribute(md->ncid, md->root_ncid, fd->group->vars, a,
-                    fd->group->adios_host_language_fortran,
-                    md->rank,
-                    md->size););
+            if (strcmp(a->path, "/__adios__")) {
+                Func_Timer("write_attribute", 
+                        write_attribute(md->ncid, md->root_ncid, fd->group->vars, a,
+                            fd->group->adios_host_language_fortran,
+                            md->rank,
+                            md->size););
+            }
             a = a->next;
         }
         if (md->rank==0) {
@@ -1671,7 +1650,7 @@ void adios_nc4_finalize(
  */
 int getNC4TypeId(
         enum ADIOS_DATATYPES type,
-        int *nc4_type_id,
+        nc_type *nc4_type_id,
         enum ADIOS_FLAG fortran_flag)
 {
     int size, status=0;
diff --git a/src/write/adios_nssi.c b/src/write/adios_nssi.c
index de34a63..5f9b515 100644
--- a/src/write/adios_nssi.c
+++ b/src/write/adios_nssi.c
@@ -50,8 +50,6 @@ struct adios_nssi_file_data_struct
     int      size;
     int      rank;
 
-    void * comm; // temporary until moved from should_buffer to open
-
     int      svc_index;
     MPI_Comm collective_op_comm;
     int      collective_op_size;
@@ -920,27 +918,6 @@ static int write_var(
 }
 
 
-static void adios_var_to_comm_nssi(
-        enum ADIOS_FLAG host_language_fortran,
-        void *data,
-        MPI_Comm *comm)
-{
-    if (data) {
-        int t = *(int *) data;
-        if (host_language_fortran == adios_flag_yes) {
-            *comm = MPI_Comm_f2c (t);
-        } else {
-            *comm = *(MPI_Comm *) data;
-        }
-    } else {
-        fprintf (stderr, "coordination-communication not provided. "
-                "Using MPI_COMM_WORLD instead\n");
-        *comm = MPI_COMM_WORLD;
-    }
-
-    return;
-}
-
 void adios_nssi_init(
         const PairStruct *parameters,
         struct adios_method_struct *method)
@@ -955,8 +932,8 @@ void adios_nssi_init(
         adios_nssi_initialized = 1;
     }
 
-    MPI_Comm_rank(MPI_COMM_WORLD, &global_rank);
-    MPI_Comm_size(MPI_COMM_WORLD, &global_size);
+    MPI_Comm_rank(method->init_comm, &global_rank);
+    MPI_Comm_size(method->init_comm, &global_size);
 
     if (DEBUG>3) printf("rank(%d) enter adios_nssi_init\n", global_rank);
 
@@ -1060,7 +1037,7 @@ enum ADIOS_FLAG adios_nssi_should_buffer(
 int adios_nssi_open(
         struct adios_file_struct *f,
         struct adios_method_struct *method,
-        void *comm)
+        MPI_Comm comm)
 {
     int rc=NSSI_OK;
 
@@ -1081,8 +1058,6 @@ int adios_nssi_open(
         file_data->size       = 0;
         file_data->rank       = 0;
 
-        file_data->comm = NULL;
-
         file_data->svc_index=-1;
         file_data->collective_op_comm=MPI_COMM_NULL;
         file_data->collective_op_size=0;
@@ -1104,9 +1079,8 @@ int adios_nssi_open(
 
     if (DEBUG>3) printf("global_rank(%d): enter adios_nssi_open (%s)\n", global_rank, f->name);
 
-    file_data->comm = comm;
+    file_data->group_comm = comm;
     if (DEBUG>3) printf("global_rank(%d): adios_nssi_open: setup group_comm\n", global_rank);
-    adios_var_to_comm_nssi(f->group->adios_host_language_fortran, file_data->comm, &file_data->group_comm);
     if (file_data->group_comm != MPI_COMM_NULL) {
         if (DEBUG>3) printf("global_rank(%d): adios_nssi_open: get rank and size\n", global_rank);
         MPI_Comm_rank(file_data->group_comm, &file_data->rank);
diff --git a/src/write/adios_phdf5.c b/src/write/adios_phdf5.c
index 6f8d4b9..55405f9 100644
--- a/src/write/adios_phdf5.c
+++ b/src/write/adios_phdf5.c
@@ -55,7 +55,7 @@ enum ADIOS_FLAG adios_phdf5_should_buffer (struct adios_file_struct * fd
                             ){ return adios_flag_unknown; }
 int adios_phdf5_open(struct adios_file_struct *fd
                     ,struct adios_method_struct * method
-                    ,void * comm
+                    ,MPI_Comm comm
                     ){ return -1; }
 void adios_phdf5_close (struct adios_file_struct * fd
                      ,struct adios_method_struct * method
@@ -113,35 +113,8 @@ struct adios_phdf5_data_struct
   MPI_Comm group_comm;
   int rank;
   int size;
-
-  void * comm; // temporary until moved from should_buffer to open
 };
 int adios_phdf5_initialized = 0;
-static void adios_var_to_comm_phdf5 (enum ADIOS_FLAG host_language_fortran
-                                    ,void * data
-                                    ,MPI_Comm * comm
-                                    )
-{
-    if (data)
-    {
-        int t = *(int *) data;
-        if (host_language_fortran == adios_flag_yes)
-        {
-            *comm = MPI_Comm_f2c (t);
-        }
-        else
-        {
-            *comm = *(MPI_Comm *) data;
-        }
-    }
-    else
-    {
-        fprintf (stderr, "coordination-communication not provided. "
-                         "Using MPI_COMM_WORLD instead\n"
-                );
-        *comm = MPI_COMM_WORLD;
-    }
-}
 void adios_phdf5_init(const PairStruct * parameters
                      ,struct adios_method_struct * method
                      )
@@ -164,18 +137,27 @@ enum ADIOS_FLAG adios_phdf5_should_buffer (struct adios_file_struct * fd
                             ,struct adios_method_struct * method
                             )
 {
+    //struct adios_phdf5_data_struct * md = (struct adios_phdf5_data_struct *)
+    //                                                  method->method_data;
+    return adios_flag_no;
+}
+ 
+int adios_phdf5_open(struct adios_file_struct *fd
+                    ,struct adios_method_struct * method, MPI_Comm comm
+                    )
+{
     struct adios_phdf5_data_struct * md = (struct adios_phdf5_data_struct *)
-                                                      method->method_data;
+                                                    method->method_data;
+
     char * name;
     MPI_Info info = MPI_INFO_NULL;
     hid_t fapl_id;
     fapl_id = H5P_DEFAULT;
-    adios_var_to_comm_phdf5 (fd->group->adios_host_language_fortran
-                      ,md->comm
-                      ,&md->group_comm
-                      );
     // no shared buffer 
     //fd->shared_buffer = adios_flag_no;
+
+    // create a new file. If file exists its contents will be overwritten. //
+    md->group_comm = comm;
     if (md->group_comm != MPI_COMM_NULL)
     {
         MPI_Comm_rank (md->group_comm, &md->rank);
@@ -183,6 +165,7 @@ enum ADIOS_FLAG adios_phdf5_should_buffer (struct adios_file_struct * fd
     }
     else 
        md->group_comm=MPI_COMM_SELF;
+
     fd->group->process_id = md->rank;
     name = malloc (strlen (method->base_path) + strlen (fd->name) + 1);
     sprintf(name, "%s%s", method->base_path, fd->name);
@@ -190,10 +173,9 @@ enum ADIOS_FLAG adios_phdf5_should_buffer (struct adios_file_struct * fd
     H5Eset_auto ( NULL, NULL);
 
     fapl_id = H5Pcreate(H5P_FILE_ACCESS);
+    //fprintf (stderr, "************\n%s: comm=%x\n**************\n", __func__, md->group_comm);
     H5Pset_fapl_mpio(fapl_id,md->group_comm,info);
 
-    // create a new file. If file exists its contents will be overwritten. //
-
     switch (fd->mode) {
         case adios_mode_read:
         {
@@ -228,18 +210,6 @@ enum ADIOS_FLAG adios_phdf5_should_buffer (struct adios_file_struct * fd
         md->root_id = H5Gcreate(md->fh,"/",0);
     H5Pclose(fapl_id);
     free (name); 
-    return adios_flag_no;
-}
- 
-int adios_phdf5_open(struct adios_file_struct *fd
-                    ,struct adios_method_struct * method, void * comm
-                    )
-{
-    struct adios_phdf5_data_struct * md = (struct adios_phdf5_data_struct *)
-                                                    method->method_data;
-
-    md->comm = comm;
-
     return 1;
 }
 
@@ -259,7 +229,7 @@ void adios_phdf5_write (struct adios_file_struct * fd
         }
         hw_var (md->root_id, fd->group->vars, fd->group->attributes
                  ,v, fd->group->adios_host_language_fortran,md->rank,md->size);
-        MPI_Barrier(md->comm);
+        MPI_Barrier(md->group_comm);
     }
     else
     {
@@ -334,10 +304,14 @@ void adios_phdf5_close (struct adios_file_struct * fd
         //fprintf(stderr, "entering phdf5 write attribute mode!\n");
         while(a)
         {
-            hw_attribute ( md->root_id, fd->group->vars, a
-                          ,fd->group->adios_host_language_fortran
-                          ,md->rank
-                          ,md->size);
+            //fprintf(stderr, "Write attribute [%s]/[%s]\n", a->path, a->name);
+            if (strcmp(a->path, "/__adios__")) {
+
+                hw_attribute ( md->root_id, fd->group->vars, a
+                        ,fd->group->adios_host_language_fortran
+                        ,md->rank
+                        ,md->size);
+            }
             a = a->next;
         }
         if (debug && md->rank==0) {
@@ -386,7 +360,13 @@ int hw_attribute ( hid_t root_id
     h5_plist_id=H5P_DEFAULT;  
  
     H5Pset_dxpl_mpio(h5_plist_id, H5FD_MPIO_COLLECTIVE); 
-    hw_gopen (root_id, patt->path,grp_ids, &level, &flag);
+    char *path = patt->path;
+    /*
+    if (!strcmp(patt->path, "/__adios__")) 
+        path = strdup ("ADIOSINFO");
+    fprintf (stderr, "%s: write attribute %s under path %s\n", __func__, patt->name, path);
+    */
+    hw_gopen (root_id, path, grp_ids, &level, &flag);
     int err_code = 0;
     //printf("patt->type=%d patt->name : %s\n", patt->type, patt->name);
     if (patt->type == -1) {
@@ -719,7 +699,7 @@ int hw_var (hid_t root_id
     if (pvar->path)
         hw_gopen (root_id, pvar->path, grp_ids, &level, &flag_yes);
     }
-    printf("root_id=%d, grp_id=%d\n", root_id, grp_ids[level]);
+//    printf("root_id=%d, grp_id=%d\n", root_id, grp_ids[level]);
 
     if (!dims) {
         h5_dataspace_id = H5Screate(H5S_SCALAR);
@@ -1111,6 +1091,7 @@ void hw_gopen (hid_t root_id, char * path, hid_t * grp_id, int * level, enum ADI
     grp_id [0] = root_id; 
     len = strlen(path);
     for ( i = 0; i < *level; i++) {
+        //fprintf (stderr, "  -- open group [%s]\n", grp_name[i]);
         grp_id [i + 1] = H5Gopen (grp_id [i],grp_name [i]);
         if (grp_id [i + 1] < 0) {
             if ((i+1) == *level && (*flag == adios_flag_unknown)) {
diff --git a/src/write/adios_posix.c b/src/write/adios_posix.c
index a27c623..1003c65 100644
--- a/src/write/adios_posix.c
+++ b/src/write/adios_posix.c
@@ -21,7 +21,7 @@
 // xml parser
 #include <mxml.h>
 
-#include "public/adios.h" // MPI or dummy MPI for seq. build
+#include "public/adios_mpi.h" // MPI or dummy MPI for seq. build
 #include "core/adios_transport_hooks.h"
 #include "core/adios_bp_v1.h"
 #include "core/adios_internals.h"
@@ -68,100 +68,6 @@ struct adios_POSIX_data_struct
 #endif
 };
 
-#ifdef HAVE_MPI
-static void adios_var_to_comm (const char * comm_name
-                              ,enum ADIOS_FLAG host_language_fortran
-                              ,void * data
-                              ,MPI_Comm * comm
-                              )
-{
-    if (data)
-    {
-        int t = *(int *) data;
-
-        if (!comm_name)
-        {
-            if (!t)
-            {
-                fprintf (stderr, "communicator not provided and none "
-                                 "listed in XML.  Defaulting to "
-                                 "MPI_COMM_SELF\n"
-                        );
-
-                *comm = MPI_COMM_SELF;
-            }
-            else
-            {
-                if (host_language_fortran == adios_flag_yes)
-                {
-                    *comm = MPI_Comm_f2c (t);
-                }
-                else
-                {
-                    *comm = *(MPI_Comm *) data;
-                }
-            }
-        }
-        else
-        {
-            if (!strcmp (comm_name, ""))
-            {
-                if (!t)
-                {
-                    fprintf (stderr, "communicator not provided and none "
-                                     "listed in XML.  Defaulting to "
-                                     "MPI_COMM_SELF\n"
-                            );
-
-                    *comm = MPI_COMM_SELF;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-            else
-            {
-                if (!t)
-                {
-                    fprintf (stderr, "communicator not provided but one "
-                                     "listed in XML.  Defaulting to "
-                                     "MPI_COMM_WORLD\n"
-                            );
-
-                    *comm = MPI_COMM_WORLD;
-                }
-                else
-                {
-                    if (host_language_fortran == adios_flag_yes)
-                    {
-                        *comm = MPI_Comm_f2c (t);
-                    }
-                    else
-                    {
-                        *comm = *(MPI_Comm *) data;
-                    }
-                }
-            }
-        }
-    }
-    else
-    {
-        fprintf (stderr, "coordination-communication not provided. "
-                         "Using MPI_COMM_SELF instead\n"
-                );
-
-        *comm = MPI_COMM_SELF;
-    }
-}
-#endif
 
 void adios_posix_init (const PairStruct * parameters
                       ,struct adios_method_struct * method
@@ -203,7 +109,7 @@ int ADIOS_TIMER_POSIX_AD_SHOULD_BUFFER = ADIOS_TIMING_MAX_USER_TIMERS + 6;
 #endif
 
 int adios_posix_open (struct adios_file_struct * fd
-                     ,struct adios_method_struct * method, void * comm
+                     ,struct adios_method_struct * method, MPI_Comm comm
                      )
 {
     char * subfile_name;
@@ -231,12 +137,7 @@ START_TIMER (ADIOS_TIMER_POSIX_AD_OPEN);
 
 #ifdef HAVE_MPI
     // Need to figure out new the new fd->name, such as restart.bp.0, restart.bp.1....
-    adios_var_to_comm (fd->group->group_comm
-                      ,fd->group->adios_host_language_fortran
-                      ,comm
-                      ,&p->group_comm
-                      );
-
+    p->group_comm = comm;
     if (p->group_comm == MPI_COMM_NULL)
     {
         p->group_comm = MPI_COMM_SELF;
diff --git a/src/write/adios_posix1.c b/src/write/adios_posix1.c
index 1afd8a1..a628c9e 100644
--- a/src/write/adios_posix1.c
+++ b/src/write/adios_posix1.c
@@ -20,7 +20,7 @@
 // xml parser
 #include <mxml.h>
 
-#include "public/adios.h" // MPI or dummy MPI
+#include "public/adios_mpi.h" // MPI or dummy MPI
 #include "core/adios_transport_hooks.h"
 #include "core/adios_bp_v1.h"
 #include "core/adios_internals.h"
@@ -64,7 +64,7 @@ void adios_posix1_init (const PairStruct * parameters
 }
 
 int adios_posix1_open (struct adios_file_struct * fd
-                     ,struct adios_method_struct * method, void * comm
+                     ,struct adios_method_struct * method, MPI_Comm comm
                      )
 {
     char * name;
diff --git a/src/write/adios_var_merge.c b/src/write/adios_var_merge.c
new file mode 100644
index 0000000..efb5cef
--- /dev/null
+++ b/src/write/adios_var_merge.c
@@ -0,0 +1,1740 @@
+//passed the test for 1024 cores and level-3 spatial aggregation
+
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+
+// xml parser
+#include <mxml.h>
+
+// see if we have MPI or other tools
+#include "config.h"
+
+#include "public/adios.h"
+#include "public/adios_types.h"
+#include "public/adios_error.h"
+#include "core/adios_transport_hooks.h"
+#include "core/adios_internals.h"
+#include "core/adios_internals_mxml.h"
+#include "core/adios_logger.h"
+#include "core/common_adios.h"
+#include "core/util.h"
+
+#include "mpi.h"
+
+//tags for the placement of the MPI processes
+#define FORWARD 0
+#define REVERSE 1
+
+extern struct adios_transport_struct * adios_transports;
+static int varcnt=0;
+static char io_method[16]; //the IO method for data output
+static char io_parameters[256]; //the IO method parameters 
+static uint64_t totalsize=0;
+static int grpflag=0; //if there's data left in buffer
+static char *grp_name;
+static int64_t grp;
+static int aggr_level; // currently fixed to 2 level of aggregation the most
+static int aggr_chunksize=1048576*2; //default aggregated chunk size = 2MB
+static int aggr_cnt[3][2]; //number of clients at each level for 1D, 2D and 3D variables
+static int my_aggregator[3][2]; //2 level of aggregators for three dimensions 
+static int layout;
+static int *proc_map;
+static int *sequence;
+
+static void aggr_chunks(char **output, int *procs, int ndims, uint64_t *ldims_list, uint64_t *gdims, uint64_t *size_list, uint64_t totalsize, int nchunks, int rank, int level, int type_size);
+static uint64_t do_spatial_aggr(int level, int *procs, int ndims, uint64_t *ldims, uint64_t *offsets, char *new_ldims, int rank,  void *data, uint64_t varsize, void *output, int type_size, MPI_Comm comm);
+
+
+//store the info of the client processes for spatial aggregation
+struct aggr_client
+{
+    int rank;
+    uint64_t *ldims;
+};
+
+struct aggr_var_struct
+{
+    char * name;
+    char * path; 
+    enum ADIOS_DATATYPES type;
+    enum ADIOS_FLAG multidim;
+    char * dimensions;
+    char * global_dimensions;
+    char * local_offsets;
+    void * data;
+    int set_aggr; //1D - 3D aggregation flags; 0:1D; 1:2D; 2:3D
+//    int decomp[3]; //1D -3D decomposition 0:1D; 1:2D; 2:3D 
+
+    struct aggr_var_struct *prev;
+    struct aggr_var_struct *next;
+};
+
+struct adios_MPI_data_struct
+{
+    int64_t fpr;
+    MPI_File fh;
+    MPI_Comm group_comm;
+    int rank;
+    int size;
+
+    void *comm;
+    struct adios_bp_buffer_struct_v1 b;
+    struct adios_group_struct * group;
+    char * file_mode;
+
+    int vid;
+    int64_t group_id; 
+ //   int set_aggr; //1D - 3D aggregation flags; 0:1D; 1:2D; 2:3D
+    int layout[3]; //1D -3D if the process layout has been determined; 
+                   //XXX: we have the assumption here that all the variables with same number of dimensions have the same processes layout 
+    int *procs[3]; //the proceess layout, supporting up to 3D right now
+                      //e.g. nprocs[0][3]: process layout for 1D variable
+    int decomp[3];
+};
+
+static struct aggr_var_struct *vars;
+static struct aggr_var_struct *header;
+
+struct aggr_client *aggr3d_clients[2]; //fixed to maximum of 2 level of aggregation
+struct aggr_client *aggr2d_clients[2]; //fixed to maximum of 2 level of aggregation
+struct aggr_client *aggr1d_clients[2]; //fixed to maximum of 2 level of aggregation
+
+static uint64_t cast_var_data_as_uint64 (const char * parent_name
+                                        ,enum ADIOS_DATATYPES type
+                                        ,void * data
+                                        )
+{
+    if (!data)
+    {
+        adios_error (err_unspecified,
+                     "cannot write var since dim %s not provided\n",
+                     parent_name);
+        return 0;
+    }
+
+    switch (type)
+    {
+        case adios_byte:
+            return (uint64_t) *(int8_t *) data;
+
+        case adios_short:
+            return (uint64_t) *(int16_t *) data;
+
+        case adios_integer:
+            return (uint64_t) *(int32_t *) data;
+
+        case adios_long:
+            return (uint64_t) *(int64_t *) data;
+
+        case adios_unsigned_byte:
+            return (uint64_t) *(uint8_t *) data;
+
+        case adios_unsigned_short:
+            return (uint64_t) *(uint16_t *) data;
+
+        case adios_unsigned_integer:
+            return (uint64_t) *(uint32_t *) data;
+
+        case adios_unsigned_long:
+            return (uint64_t) *(uint64_t *) data;
+
+        case adios_real:
+            return (uint64_t) *(float *) data;
+
+        case adios_double:
+            return (uint64_t) *(double *) data;
+
+        case adios_long_double:
+            return (uint64_t) *(long double *) data;
+
+        case adios_string:
+        case adios_complex:
+        case adios_double_complex:
+            adios_error (err_unspecified,
+                         "Cannot convert type %s to integer for var %s\n",
+                         adios_type_to_string_int (type), parent_name);
+            return 0;
+    }
+    return 0;
+}
+
+
+static uint64_t get_value_for_dim (struct adios_file_struct * fd,
+                                   struct adios_dimension_item_struct * dimension)
+{
+    uint64_t dim = 0;
+
+    if (dimension->id != 0)
+    {
+        struct adios_var_struct * var = adios_find_var_by_id (fd->group->vars
+                                                             ,dimension->id
+                                                             );
+        if (var)
+        {
+            if (var->data)
+            {
+                dim = cast_var_data_as_uint64 (var->name, var->type, var->data);
+            }
+            else
+            {
+                adios_error (err_dimension_required, "array dimension data missing\n");
+            }
+        }
+        else
+        {
+            struct adios_attribute_struct * attr = adios_find_attribute_by_id
+                                                        (fd->group->attributes
+                                                        ,dimension->id
+                                                        );
+            if (attr)
+            {
+                if (attr->var)
+                {
+                    if (attr->var->data)
+                    {
+                        dim = cast_var_data_as_uint64 (attr->var->name
+                                                      ,attr->var->type
+                                                      ,attr->var->data
+                                                      );
+                    }
+                    else
+                    {
+                        adios_error (err_dimension_required, "array dimension data missing\n");
+                    }
+                }
+                else
+                {
+                    dim = cast_var_data_as_uint64 (attr->name, attr->type
+                                                  ,attr->value
+                                                  );
+                }
+            }
+            else
+            {
+                adios_error (err_invalid_dimension,
+                             "invalid dimension member id: %d\n",
+                             dimension->id);
+            }
+        }
+    }
+    else
+    {
+        if (dimension->time_index == adios_flag_yes)
+            dim = 1;
+        else
+            dim = dimension->rank;
+    }
+
+    return dim;
+}
+
+static uint8_t count_dimensions (struct adios_dimension_struct * dimensions)
+{   
+    uint8_t count = 0;
+
+    while (dimensions)
+    {
+        count++;
+        dimensions = dimensions->next;
+    }
+    
+    return count;
+}       
+
+
+//prepare the number of processes on each dimension
+static int cal_layout(int *procs, int rank, int nprocs, int ndims, MPI_Comm comm, uint64_t *ldims, uint64_t *gdims, uint64_t *offsets) 
+{
+    char *sbuf, *recvbuf;
+    int slen, recvlen, blen;
+    uint64_t *t_ldims, *t_offsets, prev_off[3];
+    int i,j;
+    int decomp=0;
+
+
+    for(i=0;i<3;i++){ 
+        procs[i]=-1;
+        sequence[i]=-1;
+    }
+
+    slen=0;
+    //prepare the local dimensions and offsets into send buffer
+    sbuf = (char *)malloc(ndims*2*sizeof(uint64_t));
+    memcpy(sbuf, ldims, ndims*sizeof(uint64_t));
+    slen+=ndims*sizeof(uint64_t);
+    memcpy(sbuf+slen, offsets, ndims*sizeof(uint64_t));
+    slen+=ndims*sizeof(uint64_t);
+            
+    recvbuf=(char *)malloc(nprocs*ndims*2*sizeof(uint64_t));
+    recvlen=0;
+    //rank 0 calculate the info then send to the rest 
+    if(rank==0) {
+        //gather all the info to rank 0
+        MPI_Gather(MPI_IN_PLACE, slen, MPI_BYTE, recvbuf, slen, MPI_BYTE, 0, comm);
+
+        //fixed to 3D in order to make the algorithm general
+        t_ldims=(uint64_t *)malloc(3*sizeof(uint64_t));
+        t_offsets=(uint64_t *)malloc(3*sizeof(uint64_t));
+
+        blen=2*ndims*sizeof(uint64_t);
+        for(i=1;i<nprocs;i++) {
+            //clear the memory
+            memset(t_ldims, 0x00, 3*sizeof(uint64_t));
+            memset(t_offsets, 0x00, 3*sizeof(uint64_t));
+
+            memcpy(t_ldims, recvbuf+blen, ndims*sizeof(uint64_t));
+            blen+=ndims*sizeof(uint64_t);
+            memcpy(t_offsets, recvbuf+blen, ndims*sizeof(uint64_t));
+            blen+=ndims*sizeof(uint64_t);
+
+            //keep the process count on each dimension
+            //the last process on the (0,0,k) dimension will be the first
+            //edge process on k
+            //FIXME: hard coded for 3-D 
+            for(j=0;j<ndims;j++) {
+                if(t_offsets[j]!=0 && t_ldims[j]+t_offsets[j]==gdims[j]) {
+                    if(procs[j]==-1) {
+                        break;
+                    }
+                }
+            } //end of for(j)
+
+            //this is the first edge that we reached
+            //it could be any of three dimensions i,j,k
+            if(j<ndims && procs[j]==-1) {
+                if(decomp==0){
+                    procs[j]=i+1;
+                    sequence[decomp]=j;
+                    decomp++;
+                }
+                else if(decomp==1) { //the second edge that we reached
+                    //if(rank==0)
+                    procs[j]=i/procs[sequence[decomp-1]]+1;
+                    sequence[decomp]=j;
+                    decomp++;
+                }
+                else if(decomp==2) { //the third edge that we reached
+                    procs[j]=nprocs/(procs[sequence[decomp-2]]*procs[sequence[decomp-1]]);
+                    sequence[decomp]=j;
+                    decomp++;
+                }
+            }
+        } //end of for(i)
+
+        //see if the processes are laid out along the fast dimension or
+        //slow dimension
+        if(ndims==1 || (ndims>1 && sequence[0]<sequence[1])) 
+            layout=FORWARD; //along the fast dimension
+        else
+            layout=REVERSE; //along the slow dimension
+
+        for(i=0;i<3;i++)
+        {
+            if(procs[i]==-1)
+                procs[i]=1;
+        }
+
+        free(t_ldims);
+        free(t_offsets);
+
+        //send out the process info
+        slen=0;
+        sbuf=realloc(sbuf, (3+2+3)*sizeof(int));
+        memset(sbuf, 0x00, (3+2+3)*sizeof(int));
+        memcpy(sbuf, procs, 3*sizeof(int));
+        slen+=3*sizeof(int);
+
+        memcpy(sbuf+slen, &decomp, sizeof(int));
+        slen+=sizeof(int);
+
+        memcpy(sbuf+slen, &layout, sizeof(int));
+        slen+=sizeof(int);
+
+        memcpy(sbuf+slen, sequence, 3*sizeof(int));
+        slen+=3*sizeof(int);
+
+        MPI_Bcast(sbuf, slen, MPI_BYTE, 0, comm);
+    }
+    else {
+        MPI_Gather(sbuf, slen, MPI_BYTE, recvbuf, slen, MPI_BYTE, 0, comm);
+
+        //receive npx, npy, npz from rank 0
+        sbuf=realloc(sbuf, (3+2+3)*sizeof(int));
+        memset(sbuf, 0x00, (3+2+3)*sizeof(int));
+
+        slen=(3+2+3)*sizeof(int);
+        MPI_Bcast(sbuf, slen, MPI_BYTE, 0, comm);
+
+        memcpy(procs, sbuf, 3*sizeof(int));
+        memcpy(&decomp, sbuf+3*sizeof(int), sizeof(int));
+        memcpy(&layout, sbuf+(3+1)*sizeof(int), sizeof(int));
+        memcpy(sequence, sbuf+(3+2)*sizeof(int), 3*sizeof(int));
+    }
+
+    free(sbuf);
+    free(recvbuf);
+
+    return decomp;
+} 
+
+static void cal_offsets(int *procs, int rank, int ndims, int decomp, int *offsets)
+{ 
+    int i;
+
+    if(decomp>=1) {
+        offsets[sequence[0]]=rank%procs[sequence[0]];
+    }
+    if (decomp>=2) {
+        offsets[sequence[1]]=rank/procs[sequence[0]]%procs[sequence[1]];
+    }
+    if (decomp>=3) {
+        offsets[sequence[2]]=rank/(procs[sequence[0]]*procs[sequence[1]]);
+    }
+}
+
+
+static void cal_process_map(int rank, int *procs)
+{
+    int i,j,k;
+    int pos, cnt=0; 
+
+    if(layout==0) {
+        for(i=0;i<procs[2];i++) {
+            for(j=0;j<procs[1];j++) {
+                for(k=0;k<procs[0];k++) {
+                    pos=i*procs[0]*procs[1]+j*procs[0]+k;
+                    proc_map[i*procs[0]*procs[1]+j*procs[0]+k]=cnt;
+                    cnt++;
+                }
+            }
+        }
+    }
+    else {
+        for(i=0;i<procs[0];i++) {
+            for(j=0;j<procs[1];j++) {
+                for(k=0;k<procs[2];k++) {
+                    pos=k*procs[0]*procs[1]+j*procs[0]+i;
+                    proc_map[k*procs[0]*procs[1]+j*procs[0]+i]=cnt;
+                    cnt++;
+                }
+            }
+        }
+    
+    }
+}
+
+static int get_clients_2d(int ndims, int level, int *offsets, int scale, int *procs, int rank)
+{
+    int posx, posy, posz, pos;
+
+    if((offsets[0]+scale)<procs[0]) {
+        posx=offsets[0]+1*scale;
+        posy=offsets[1];
+        pos=posy*procs[0]+posx;
+        aggr2d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+        aggr_cnt[ndims-1][level-1]++;
+    }
+    if((offsets[1]+scale)<procs[1]) {
+        posx=offsets[0];
+        posy=offsets[1]+scale;
+        pos=posy*procs[0]+posx;
+
+        aggr2d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+        aggr_cnt[ndims-1][level-1]++;
+        if((offsets[0]+scale)<procs[0]) {
+            posx=offsets[0]+1*scale;
+            posy=offsets[1]+scale;
+            pos=posy*procs[0]+posx;
+            aggr2d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+            aggr_cnt[ndims-1][level-1]++;
+        }
+    }
+    return aggr_cnt[ndims-1][level-1];
+
+}
+
+
+//calculate the clients for 3D variables
+static void get_clients_3d(int ndims, int level, int *offsets, int scale, int *procs, int rank)
+{
+    int posx, posy, posz, pos;
+
+    if((offsets[0]+scale)<procs[0]) {
+        posx=offsets[0]+1*scale;
+        posy=offsets[1];
+        posz=offsets[2];
+        pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+        aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+        aggr_cnt[ndims-1][level-1]++;
+    }
+    if((offsets[1]+scale)<procs[1]) {
+        posx=offsets[0];
+        posy=offsets[1]+scale;
+        posz=offsets[2];
+        pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+        aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+        aggr_cnt[ndims-1][level-1]++;
+        if((offsets[0]+scale)<procs[0]) {
+            posx=offsets[0]+1*scale;
+            posy=offsets[1]+scale;
+            posz=offsets[2];
+            pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+            aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+            aggr_cnt[ndims-1][level-1]++;
+        }
+    }
+    if((offsets[2]+scale)<procs[2]) {
+           posx=offsets[0];
+           posy=offsets[1];
+           posz=offsets[2]+scale;
+           pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+           aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+           aggr_cnt[ndims-1][level-1]++;
+           if((offsets[0]+scale)<procs[0]) {
+               posx=offsets[0]+1*scale;
+               posy=offsets[1];
+               posz=offsets[2]+scale;
+               pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+               aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+               aggr_cnt[ndims-1][level-1]++;
+           }
+           if((offsets[1]+scale)<procs[1]) {
+               posx=offsets[0];
+               posy=offsets[1]+scale;
+               posz=offsets[2]+scale;
+               pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+               aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+               aggr_cnt[ndims-1][level-1]++;
+               if((offsets[0]+scale)<procs[0]) {
+                   posx=offsets[0]+1*scale;
+                   posy=offsets[1]+scale;
+                   posz=offsets[2]+scale;
+                   pos=posz*procs[0]*procs[1]+posy*procs[0]+posx;
+                   aggr3d_clients[level-1][aggr_cnt[ndims-1][level-1]].rank=proc_map[pos];
+                   aggr_cnt[ndims-1][level-1]++;
+               }
+           }
+     }
+
+}
+
+
+
+//prepare the aggregation group
+//XXX: not yet able to handle odd number of process on one dimension
+// rank: the rank of MPI process;
+// level: the level of aggregation
+static void prep_aggr(int *procs, int ndims, int decomp, int rank, int size, int level)
+{
+    int scale=1, step=2;
+    int aggrx, aggry, aggrz;
+    int aggr=1;
+    int i,j,k;
+    int prev_step, hole;
+    int *offsets;
+
+    offsets=(int *)malloc(ndims*sizeof(int));
+    //clean the offsets to 0
+    memset(offsets,0x00, ndims*sizeof(int));
+
+    //get the process map
+    cal_process_map(rank, procs);
+
+    cal_offsets(procs, rank, ndims, decomp, offsets);
+
+    aggr_cnt[ndims-1][0]=aggr_cnt[ndims-1][1]=1;
+    prev_step=1;
+    for(i=1; i<=level; i++) {
+        scale=(int)pow(2, (i-1));
+        step=(int)pow(2, i);
+        
+        //detemine the aggregators and clients 
+        hole=0;
+        for(j=0;j<ndims;j++) {
+            if(offsets[j]%step!=0){
+                hole=1;
+                break;
+            }
+        }
+        if(hole==0) {//I'am aggregator
+            my_aggregator[ndims-1][i-1]=rank;
+
+            //allocate the space for the list of clients
+            int mal_size=(int)pow(2, decomp)-1;
+            if(ndims==3){
+                //aggr_clients[i-1] = malloc(mal_size*sizeof(int)); 
+                aggr3d_clients[i-1] = malloc(mal_size*sizeof(struct aggr_client)); 
+                memset(aggr3d_clients[i-1], 0x00, mal_size*sizeof(struct aggr_client));
+            }
+            else if (ndims==2) {
+                aggr2d_clients[i-1] = malloc(mal_size*sizeof(struct aggr_client)); 
+                memset(aggr2d_clients[i-1], 0x00, mal_size*sizeof(struct aggr_client));
+            }
+            else if(ndims==1){
+                aggr1d_clients[i-1] = malloc(mal_size*sizeof(struct aggr_client)); 
+                memset(aggr1d_clients[i-1], 0x00, mal_size*sizeof(struct aggr_client));
+            }
+
+            int posx, posy, posz, pos;
+
+            //3D variable
+            /*FIXME XXX: hard coded for calculating aggr_clients*/
+            //if(my_aggregator[i-1] == rank) {
+            if(ndims==3){
+                aggr_cnt[ndims-1][i-1]=0;
+                get_clients_3d(ndims, i, offsets, scale, procs, rank);
+            }
+            else if(ndims==2){ //2D variable
+                aggr_cnt[ndims-1][i-1]=0;
+                get_clients_2d(ndims, i, offsets, scale, procs, rank);
+            }
+            else { //1D variable
+                aggr_cnt[ndims-1][i-1]=0;
+                //check if the clients'rank is valid on each dimension
+                if((offsets[0]+scale)<procs[0]) {
+                    pos=offsets[0]+scale;
+                    aggr1d_clients[i-1][aggr_cnt[ndims-1][i-1]].rank=proc_map[pos];
+                    aggr_cnt[ndims-1][i-1]++;
+                }
+            }
+         }
+         else { //I am the clients
+             aggrx=aggry=aggrz=0;
+             aggrx=offsets[0]-offsets[0]%step;
+             if(ndims>=2) 
+                aggry=offsets[1]-offsets[1]%step;
+             if(ndims>=3) 
+                 aggrz=offsets[2]-offsets[2]%step;
+
+             my_aggregator[ndims-1][i-1] = proc_map[aggrz*procs[0]*procs[1]+aggry*procs[0]+aggrx];
+                 
+ 
+             //check if this process needs to be included within the  
+             //communication of this level
+             if(i>1) {
+                 hole=0;
+                 for(k=0;k<ndims;k++) {
+                     if(offsets[k]%prev_step!=0) {
+                         hole=1;
+                         break;
+                     }
+                 }
+                 if(hole==1)
+                     my_aggregator[ndims-1][i-1]=-1;
+             }
+         } //end of if(hole==0)
+         prev_step=step; 
+    }//end of for()
+}
+ 
+ 
+
+static int do_write (int64_t fd_p, const char * name, void * var)
+{
+    struct adios_file_struct * fd = (struct adios_file_struct *) fd_p;
+
+    if (!fd)
+    {
+        adios_error (err_invalid_file_pointer, "Invalid handle passed to adios_write\n");
+        return 1;
+    }
+
+    struct adios_var_struct * v = fd->group->vars;
+    struct adios_method_list_struct * m = fd->group->methods;
+
+    if (m && m->next == NULL && m->method->m == ADIOS_METHOD_NULL)
+    {
+        // nothing to do so just return
+        return 0;
+    }
+
+    v = adios_find_var_by_name (v, name, fd->group->all_unique_var_names);
+
+    if (!v)
+    {
+        adios_error (err_invalid_varname, "Bad var name (ignored) in adios_write(): '%s'\n", name);
+
+        return 1;
+    }
+
+    common_adios_write_byid (fd, v, var);
+
+    return 0;
+}
+                       
+
+// temporary solution for compiling error
+static int declare_group (int64_t * id, const char * name
+                        ,const char * time_index
+                        ,enum ADIOS_FLAG stats
+                        )
+{
+    int ret;
+    ret = adios_common_declare_group (id, name, adios_flag_yes
+                                      ,""
+                                      ,""
+                                      ,time_index
+                                      ,stats
+                                      );
+    if (ret == 1) {
+        struct adios_group_struct * g = (struct adios_group_struct *) *id;
+        g->all_unique_var_names = adios_flag_no;
+    }
+    return ret;
+}
+
+// temporary solution for compiling error
+static int select_method (int64_t group, const char * method
+                        ,const char * parameters
+                        ,const char * base_path
+                        )
+{
+    return adios_common_select_method_by_group_id (0, method, parameters, group ,base_path, 0);
+}
+
+static int convert_file_mode(enum ADIOS_METHOD_MODE mode, char * file_mode)
+{
+   if (mode == adios_mode_read)
+       strcpy(file_mode,"r");
+   else
+       if (mode == adios_mode_write)
+       strcpy(file_mode,"w");
+       else
+           if (mode == adios_mode_append)
+       strcpy(file_mode,"a");
+           else
+               if (mode == adios_mode_update) 
+       strcpy(file_mode,"u");
+               else
+               {
+                   fprintf (stderr, "adios_open: unknown file mode: %s\n"
+                           ,file_mode
+                           );
+
+                   return -1;
+               }
+   return 0;
+}
+
+//find the variable within the buffer link list
+static int var_lookup(const char *varname, char *path, struct aggr_var_struct *list)
+{
+    int cnt=0;
+
+    for(cnt=0;cnt<varcnt;cnt++) 
+    {
+        //compare both the variable name and path
+        if(strcmp(varname, list->name)==0 && strcmp(path, list->path)==0) {
+            return cnt;
+        }
+        else if(list->next!=NULL){
+            list=list->next;
+        }
+        else
+            break;
+    }
+
+    //variable is not within the list, return -1
+    return -1;
+}
+
+static void output_vars(struct aggr_var_struct *vars, int varcnt, struct
+        adios_MPI_data_struct * md, struct adios_file_struct * fd) 
+{
+    int i,j;
+    char file_mode[2];
+    char fname[256];
+    uint64_t adios_size, datasize;
+    int iocnt=0;
+    char *output;
+
+    if(convert_file_mode(fd->mode, file_mode) == -1) //strange file mode
+        return;
+
+    common_adios_open (&md->fpr, grp_name, fd->name, file_mode, md->group_comm);
+    common_adios_group_size (md->fpr, totalsize, &adios_size);
+
+    //move pointer to the first variable in the list
+    vars=header; 
+    //write it out
+    for(i=0;i<varcnt;i++) {
+        do_write(md->fpr, vars->name, vars->data);
+        vars=vars->next;
+    }
+    //close the file
+    common_adios_close(md->fpr);
+}
+
+
+static void define_iogroup(char *group_name)
+{
+    int len;
+
+    // is it necessary to have different group name? XXX:FIXME 
+    len=5+strlen(group_name); //new groupname= tg_groupname
+    grp_name=(char *)malloc(len);
+    memset(grp_name, 0x00, len);
+    sprintf(grp_name, "agg_%s",group_name);
+    declare_group (&grp,grp_name, "", adios_flag_yes);
+    select_method (grp, io_method,io_parameters,"");
+    grpflag=1;
+}
+
+//initial variable structure
+static void init_vars(struct aggr_var_struct *var, struct adios_var_struct * v, int ndims)
+{
+    int i;
+
+    vars->name=(char *)malloc(strlen(v->name)+1);
+    strcpy(vars->name, v->name); 
+    vars->type=v->type;
+    vars->path=(char *)malloc(strlen(v->path)+1);
+    strcpy(vars->path, v->path);
+    vars->next=NULL;
+    vars->dimensions = (char *)malloc(128*sizeof(char));
+    vars->global_dimensions= (char *)malloc(128*sizeof(char));
+    vars->local_offsets= (char *)malloc(128*sizeof(char));
+    memset(vars->dimensions, 0x00, 128*sizeof(char));
+    memset(vars->global_dimensions, 0x00, 128*sizeof(char));
+    memset(vars->local_offsets, 0x00, 128*sizeof(char));
+
+    for(i=0;i<3;i++) {
+        vars->set_aggr=-1;
+    }
+}
+
+static void init_layout_flag(struct adios_MPI_data_struct *md)
+{
+    int i;
+
+    for(i=0;i<3;i++)
+        md->layout[i]=-1;
+}
+
+void init_output_parameters(const PairStruct *params)
+{
+    int len;
+    const PairStruct *p = params;
+
+    while (p) {
+        if (!strcasecmp (p->name, "chunk_size")) {
+            errno = 0;
+            aggr_chunksize = strtol(p->value, NULL, 10);
+            if (aggr_chunksize > 0 && !errno) {
+                log_debug ("Chunk size set to %llu for VAR_MERGE method\n", aggr_chunksize);
+            } else {
+                log_error ("Invalid 'chunk_size' parameter given to the VAR_MERGE method"
+                           "method: '%s'\n", p->value);
+                aggr_chunksize=1048576*2;
+            }
+        } else if (!strcasecmp (p->name, "io_method")) {
+            errno = 0;
+            memset(io_method, 0x00, 16);
+            strcpy(io_method, p->value);
+            if (!errno) {
+                log_debug ("io_method set to %s for VAR_MERGE method\n", io_method);
+            } else {
+                log_error ("Invalid 'io_method' parameter given to the VAR_MERGE method: '%s'\n", p->value);
+                memset(io_method, 0x00, 16);
+                strcpy(io_method, "MPI");
+            }
+        } else if (!strcasecmp (p->name, "io_parameters")) {
+            errno = 0;
+            memset(io_parameters, 0x00, 256);
+            strcpy(io_parameters, p->value);
+            if (!errno) {
+                log_debug ("io_parameters set to %s for VAR_MERGE method\n", io_parameters);
+            } else {
+                log_error ("Invalid 'io_parameters' parameter given to the VAR_MERGE"
+                            "method: '%s'\n", p->value);
+                memset(io_parameters, 0x00, 256);
+            }
+        } else {
+            log_error ("Parameter name %s is not recognized by the VAR_MERGE "
+                        "method\n", p->name);
+        }
+        p = p->next;
+    }
+}
+
+
+void adios_var_merge_init(const PairStruct * parameters, 
+                     struct adios_method_struct * method)
+{
+    struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
+                                                    method->method_data;
+
+    method->method_data = malloc (sizeof (struct adios_MPI_data_struct));
+    md = (struct adios_MPI_data_struct *) method->method_data;
+
+    init_layout_flag(md);
+    init_output_parameters(parameters);
+}
+
+
+static void adios_var_to_comm (const char * comm_name
+                              ,enum ADIOS_FLAG host_language_fortran
+                              ,void * data
+                              ,MPI_Comm * comm
+                              )
+{
+    if (data)
+    {
+        int t = *(int *) data;
+
+        if (!comm_name)
+        {
+            if (!t)
+            {
+                log_warn ("TIAN method: communicator not provided and none "
+                          "listed in XML.  Defaulting to MPI_COMM_SELF\n");
+
+                *comm = MPI_COMM_SELF;
+            }
+            else
+            {
+                if (host_language_fortran == adios_flag_yes)
+                {
+                    *comm = MPI_Comm_f2c (t);
+                }
+                else
+                {
+                    *comm = *(MPI_Comm *) data;
+                }
+            }
+        }
+        else
+        {
+            if (!strcmp (comm_name, ""))
+            {
+                if (!t)
+                {
+                    log_warn ("TIAN method: communicator not provided and none "
+                              "listed in XML.  Defaulting to MPI_COMM_SELF\n");
+
+                    *comm = MPI_COMM_SELF;
+                }
+                 else
+                 {
+                     if (host_language_fortran == adios_flag_yes)
+                     {
+                         *comm = MPI_Comm_f2c (t);
+                     }
+                     else
+                     {
+                         *comm = *(MPI_Comm *) data;
+                     }
+                 }
+             }
+             else
+             {
+                 if (!t)
+                 {
+                     log_warn ("TIAN method: communicator not provided but one "
+                               "listed in XML.  Defaulting to MPI_COMM_WORLD\n");
+ 
+                     *comm = MPI_COMM_WORLD;
+                 }
+                 else
+                 {
+                     if (host_language_fortran == adios_flag_yes)
+                     {
+                         *comm = MPI_Comm_f2c (t);
+                     }
+                     else
+                     {
+                         *comm = *(MPI_Comm *) data;
+                     }
+                 }
+             }
+         }
+     }
+     else
+     {
+         log_warn ("TIAN method: coordination-communication not provided. "
+                   "Using MPI_COMM_WORLD instead\n");
+ 
+         *comm = MPI_COMM_WORLD;
+     }
+}
+
+static void init_method_parameters()
+{
+    varcnt=0;
+    totalsize=0;
+    aggr_level=0;
+    memset(aggr_cnt, 0x00, 6*sizeof(int));
+    memset(my_aggregator, 0x00, 6*sizeof(int));
+}
+
+int adios_var_merge_open (struct adios_file_struct * fd
+                   ,struct adios_method_struct * method, MPI_Comm comm)
+{
+
+    struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
+                                                    method->method_data;
+ 
+    switch (fd->mode)
+    {
+        case adios_mode_read:
+        {
+            adios_error (err_invalid_file_mode, "VAR_MERGE method: Read mode is not supported.\n");
+            return -1;
+        }
+        case adios_mode_append:
+        case adios_mode_write:
+        {
+            md->group_comm = comm;
+            if (md->group_comm != MPI_COMM_NULL)
+            {
+                MPI_Comm_rank (md->group_comm, &md->rank);
+                MPI_Comm_size (md->group_comm, &md->size);
+            }
+            fd->group->process_id = md->rank;
+
+            //need to get the parameters form XML
+             //init_output_parameters(method->parameters);
+             init_method_parameters();
+             break;
+        }
+        default:
+        {
+            adios_error (err_invalid_file_mode, "VAR_MERGE method: Unknown file mode requested: %d\n", fd->mode);
+            return adios_flag_no;
+        }
+    }
+
+    return 1;
+}
+
+enum ADIOS_FLAG adios_var_merge_should_buffer (struct adios_file_struct * fd
+                                         ,struct adios_method_struct * method)
+{
+
+    struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
+                                                    method->method_data;
+    switch (fd->mode)
+    {
+        case adios_mode_read:
+        {
+            adios_error (err_invalid_file_mode, "VAR_MERGE method: Read mode is not supported.\n");
+            break;
+        }
+ 
+        case adios_mode_append:
+        case adios_mode_write:
+        { 
+            define_iogroup(method->group->name); 
+            break;
+        }
+        default:
+        {
+            adios_error (err_invalid_file_mode, "VAR_MERGE method: Unknown file mode requested: %d\n", fd->mode);
+            return adios_flag_no;
+        }
+    }
+
+    //this method handles its own buffering
+    return adios_flag_no;
+}
+                                         
+static void prepare_data(void **data, uint64_t varsize, int dims)
+{
+    int i,j,k,l;
+    double val;
+    
+    l=0;
+    for(val=0;val<8;val++) {
+        for(i=0;i<dims;i++) {
+            for(j=0;j<dims;j++) {
+                for(k=0;k<dims;k++) {
+                    memcpy(*data+l*sizeof(double), &val,sizeof(double));
+                    l++;
+                }
+            }
+        }
+    }
+}
+
+static struct aggr_var_struct *allocate_vars(int varcnt, struct aggr_var_struct *vars)
+{
+     if(varcnt==0) {
+         vars = (struct aggr_var_struct*) malloc (sizeof(struct aggr_var_struct));
+         header=vars; //assign the header of the variable list
+     }
+     else {
+         vars->next = (struct aggr_var_struct*) malloc (sizeof(struct aggr_var_struct));
+         vars=vars->next;
+     }
+
+     return vars;
+}
+
+void adios_var_merge_write (struct adios_file_struct * fd
+                     ,struct adios_var_struct * v
+                     ,void * data
+                     ,struct adios_method_struct * method
+                     )
+
+{
+    struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
+                                                    method->method_data;
+    struct adios_dimension_struct * d = v->dimensions;
+    struct aggr_var_struct *tmp;
+    uint8_t dims_count = 0;
+    uint64_t total_size, varsize, alloc_size;
+    int64_t afd;
+    int i, ndims,type_size=0;
+    uint64_t *ldims, *offsets, *gdims;
+    char *new_ldims, *dimensions, *local_offsets, *global_dimensions;
+    int chunk_cnt, decomp=0;
+
+    ndims=0;
+
+    if(varcnt==0) {
+        vars = (struct aggr_var_struct *) malloc (sizeof(struct aggr_var_struct));
+        vars->prev=NULL;
+        header=vars; //assign the header of the variable list
+    }
+    else {
+        tmp=vars;
+        vars->next = (struct aggr_var_struct*) malloc (sizeof(struct aggr_var_struct));
+        vars=vars->next;
+        vars->prev=tmp;
+    }
+
+    //initial the variable structure
+    init_vars(vars, v, ndims);
+
+    //retrieve the chunk size
+    varsize=adios_get_var_size(v, method->group, data); 
+
+    //number of the dimensions of this variable
+    ndims=count_dimensions(v->dimensions);
+    type_size=adios_get_type_size(v->type,data);
+    if(ndims) //multidimensional data
+    {
+        vars->multidim=adios_flag_yes;
+           
+        ldims=(uint64_t *)malloc(ndims*sizeof(uint64_t));
+        offsets=(uint64_t *)malloc(ndims*sizeof(uint64_t));
+        gdims=(uint64_t *)malloc(ndims*sizeof(uint64_t));
+        while (d) {
+            uint64_t dim = 0;
+            //local dimension
+            dim = get_value_for_dim (fd, &d->dimension);
+            ldims[dims_count]=dim;
+            if(dims_count==0)
+                sprintf(vars->dimensions,"%llu", dim);
+            else
+                sprintf(vars->dimensions,"%s,%llu",vars->dimensions, dim);
+
+            //global dimension
+            dim = get_value_for_dim (fd, &d->global_dimension);
+            gdims[dims_count]=dim;
+            if(dims_count==0)
+                sprintf(vars->global_dimensions,"%llu", dim);
+            else
+                sprintf(vars->global_dimensions,"%s,%llu",vars->global_dimensions, dim);
+
+            //local offsets
+            dim = get_value_for_dim (fd, &d->local_offset);
+            offsets[dims_count]=dim;
+            if(dims_count==0)
+                sprintf(vars->local_offsets,"%llu", dim);
+            else
+                sprintf(vars->local_offsets,"%s,%llu",vars->local_offsets, dim);
+            
+            dims_count++;
+            d=d->next;
+        } //end of while (d) 
+
+        if(type_size==1) {
+            vars->multidim=adios_flag_yes; 
+            varsize=adios_get_var_size(v, method->group, data); 
+            vars->data=malloc(varsize);
+            memcpy(vars->data, data, varsize); 
+        }
+        else {
+
+
+        //determine if we need to apply spatial aggregation
+        //first find out the process layout and domain decomposition
+        if(ndims<=3 && varsize<=aggr_chunksize && md->size>1 && vars->set_aggr==-1) {
+            //if we have not figured out the process layout yet, we need to
+            //calculate it
+            if(md->layout[ndims-1]==-1) {
+                //process layout
+                md->procs[ndims-1]=(int *)malloc(3*sizeof(int)); //FIXME
+                //prepare the process map space 
+                proc_map=(int *)malloc(md->size*sizeof(int));
+                sequence=(int *)malloc(3*sizeof(int));
+                memset(sequence,0x00,3*sizeof(int));
+                decomp=cal_layout(md->procs[ndims-1], md->rank, md->size, ndims, md->group_comm, ldims, gdims, offsets);
+                md->layout[ndims-1]=1;
+                md->decomp[ndims-1]=decomp;
+            }
+            else
+                decomp=md->decomp[ndims-1];
+
+            if(decomp==0) {
+                //FIXME: need to fix the error message
+                adios_error(err_corrupted_variable, "Unrecognizable decomposition.");
+                exit(-1);
+            }
+            else { 
+                //the number of chunks to aggregate in one level of spatial aggregation 
+                //is decided by the domain decomposition
+                chunk_cnt=(int)pow(2, decomp);
+
+                //too few process or chunk size is large enough, we do not need to aggregate
+                //XXX: default the aggregated chunksize=2MB
+                if (md->size < chunk_cnt || varsize > aggr_chunksize/chunk_cnt)  
+                    vars->set_aggr=0;
+                else {
+                    vars->set_aggr=1;
+
+                    //XXX: currently the maximum level is fixed to 2 considering the overhead
+                    //aggr_level=varsize/chunk_cnt;
+                    aggr_level=aggr_chunksize/chunk_cnt/varsize;
+                    if(aggr_level>2) {
+                        // we need at least twice the number of chunks for
+                        // the first level aggregation in order to do higher
+                        // level aggregation
+                        if(md->size<chunk_cnt*2) 
+                            aggr_level=1;
+                        else
+                            aggr_level=2; 
+                    }
+                    
+                    //calculating the aggregator and client processes
+                    prep_aggr(md->procs[ndims-1], ndims, decomp, md->rank, md->size, aggr_level);
+                }
+            }
+        }
+        else 
+            log_error("Current VAR_MERGE only supports up to 3-D variables with minimum of 2 processes with 1D decomposition. No spatial merging will be performed.\n"); 
+                    
+        //no spatial aggregation, just copy data
+        if(vars->set_aggr!=1) {
+            vars->data=malloc(varsize);
+            memcpy(vars->data, data, varsize);
+            //varcnt++;
+        }
+        else { //if we need to do spatial aggregation 
+            //only the highest level aggregators need to allocate space for output 
+            if(my_aggregator[ndims-1][aggr_level-1]==md->rank) {
+                //allocate the total buffer for the output data
+                alloc_size=varsize;
+                for(i=0;i<aggr_level;i++)
+                    alloc_size*=(aggr_cnt[ndims-1][i]+1);
+                vars->data=malloc(alloc_size);
+            } 
+
+            new_ldims=(char *)malloc(128*sizeof(char));
+            memset(new_ldims, 0x00, 128);
+            type_size=adios_get_type_size(v->type,data);
+
+            varsize=do_spatial_aggr(aggr_level, md->procs[ndims-1], ndims, ldims, offsets, new_ldims, md->rank, data, varsize, vars->data, type_size, md->group_comm);
+
+            //only the highest level aggregators need to output
+            if(my_aggregator[ndims-1][aggr_level-1]==md->rank) {
+                strcpy(vars->dimensions, new_ldims);
+            }
+            else //clients and lower level aggregators skip the variable
+              varsize=0;
+        } //end of if(do_spatial_aggr)
+        }
+    } //end of if(ndims)
+    else //scalar 
+    {
+        vars->multidim=adios_flag_no;
+
+        varsize=adios_get_var_size(v, method->group, data); 
+        vars->data=malloc(varsize);
+        memcpy(vars->data, data, varsize); 
+    }
+
+    totalsize+=varsize;
+    if(varsize>0) {
+        adios_common_define_var(grp, vars->name, vars->path, vars->type, vars->dimensions, vars->global_dimensions, vars->local_offsets);
+        varcnt++;
+    }
+    else { //move back the pointer, and release the memory
+        vars=vars->prev;
+        free(vars->next);
+    }
+}
+
+void adios_var_merge_read (struct adios_file_struct * fd
+                    ,struct adios_var_struct * v, void * buffer
+                    ,uint64_t buffer_size
+                    ,struct adios_method_struct * method
+                    )
+
+{
+}
+
+void release_resource()
+{ 
+    int cnt;
+    struct aggr_var_struct *next;
+
+    vars=header;
+    for(cnt=0;cnt<varcnt;cnt++)
+    {
+        if(cnt!=(varcnt-1)) 
+            next=vars->next;
+        free(vars->data);
+        free(vars->dimensions);
+        free(vars->global_dimensions);
+        free(vars->local_offsets);
+        free(vars); 
+        vars=next;
+    }
+}
+
+void adios_var_merge_close (struct adios_file_struct * fd
+                     ,struct adios_method_struct * method
+                     )
+{
+    struct adios_MPI_data_struct * md = (struct adios_MPI_data_struct *)
+                                                    method->method_data;
+
+    switch (fd->mode)
+    {
+        case adios_mode_read:
+        {
+            adios_error (err_invalid_file_mode, "VAR_MERGE method: Read mode is not supported.\n");
+            break;
+        }
+        case adios_mode_append:
+        case adios_mode_write:
+        {
+            //write out the varaibles
+            output_vars(header, varcnt, md, fd);
+            //release the memories
+            release_resource();
+            //clean the counters
+            varcnt=0;
+            break;
+        }
+        default:
+        {
+            adios_error (err_invalid_file_mode, "VAR_MERGE method: Unknown file mode requested: %d\n", fd->mode);
+            break;
+        }
+    }
+
+    return;
+}
+
+void adios_var_merge_get_write_buffer (struct adios_file_struct * fd
+                                ,struct adios_var_struct * v
+                                ,uint64_t * size
+                                ,void ** buffer
+                                ,struct adios_method_struct * method
+                                )
+{
+}
+
+void adios_var_merge_finalize (int mype, struct adios_method_struct * method)
+{
+}
+
+void adios_var_merge_end_iteration (struct adios_method_struct * method)
+{
+}
+
+void adios_var_merge_start_calculation (struct adios_method_struct * method)
+{
+}
+
+void adios_var_merge_stop_calculation (struct adios_method_struct * method)
+{
+}
+
+void copy_aggr_data (void *dst, void *src,
+        int idim,
+        int ndim,
+        uint64_t* size_in_dset,
+        uint64_t* ldims,
+        const uint64_t * readsize,
+        uint64_t dst_stride, //8 
+        uint64_t src_stride, //9
+        uint64_t dst_offset,
+        uint64_t src_offset,
+        uint64_t ele_num,
+        int      size_of_type,
+        int rank
+        )
+{
+    unsigned int i, j;
+    uint64_t dst_offset_new=0;
+    uint64_t src_offset_new=0;
+    uint64_t src_step, dst_step;
+
+
+    if (ndim-1==idim) {
+        for (i=0;i<size_in_dset[idim];i++) {
+            memcpy ((char *)dst + (i*dst_stride+dst_offset)*size_of_type,
+                    (char *)src + (i*src_stride+src_offset)*size_of_type,
+                    ele_num*size_of_type);
+        }
+        return;
+    }
+
+    for (i = 0; i<size_in_dset[idim];i++) {
+        // get the different step granularity 
+        // for each different reading pattern broke
+        src_step = 1;
+        dst_step = 1;
+        for (j = idim+1; j <= ndim-1;j++) {
+            src_step *= ldims[j];
+            dst_step *= readsize[j];
+        }
+        src_offset_new  =src_offset + i * src_stride * src_step;
+        dst_offset_new  = dst_offset + i * dst_stride * dst_step;
+
+        copy_aggr_data (dst, src, idim+1, ndim, size_in_dset, ldims,readsize, dst_stride, src_stride, dst_offset_new, src_offset_new, ele_num, size_of_type, rank);
+    }
+}
+
+static void cal_gdims(int ndims, uint64_t *p_offsets, uint64_t *offsets, uint64_t *p_dims, uint64_t *ldims, uint64_t *gdims)
+{
+    if(ndims==1) {
+        gdims[0]=ldims[0]+p_dims[0];
+    }
+    else if(ndims==2) {
+        if(p_offsets[0]!=offsets[0] && p_offsets[1]==offsets[1]) 
+               gdims[0]=ldims[0]+p_dims[0];
+        else if(p_offsets[1]!=offsets[1] && p_offsets[0]==offsets[0]) 
+            gdims[1]=ldims[1]+p_dims[1];
+    }
+    else if(ndims==3) {
+        if(p_offsets[0]!=offsets[0] && p_offsets[1]==offsets[1] && p_offsets[2]==offsets[2]) 
+               gdims[0]=ldims[0]+p_dims[0];
+        else if(p_offsets[1]!=offsets[1] && p_offsets[0]==offsets[0] && p_offsets[2]==offsets[2])
+            gdims[1]=ldims[1]+p_dims[1];
+        else if(p_offsets[2]!=offsets[2] && p_offsets[0]==offsets[0] && p_offsets[1]==offsets[1])
+            gdims[2]=ldims[2]+p_dims[2];
+    }
+}
+
+static uint64_t do_spatial_aggr(int level, int *procs, int ndims, uint64_t *ldims, uint64_t *offsets, char *new_ldims, int rank,  void *data, uint64_t varsize, void *output, int type_size, MPI_Comm comm) 
+{
+    //struct adios_var_struct * v = g->vars;
+    int i, j, k, client_cnt, lev;
+    uint64_t aggrsize, buff_offset, tmpsize, alloc_size;
+    uint64_t *tmp_dims, *tmp_offsets, *gdims, *ldims_list, *size_list;
+    char   *tmpbuf, *recvbuf, *sendbuf;
+    MPI_Status status;
+
+    //store the local dimensions after aggregation
+    gdims=malloc(ndims*sizeof(uint64_t));
+
+    for(lev=0;lev<aggr_level;lev++) {
+        /* aggregator */
+        if(my_aggregator[ndims-1][lev] == rank) {
+            if(lev==0) {
+                alloc_size=varsize*(aggr_cnt[ndims-1][lev]+1);
+
+                //XXX: hard coded memory allocation since realloc has seg fault
+                tmpbuf=(char *)malloc(alloc_size*sizeof(char));
+                //aggregator copies its own data first
+                memcpy(tmpbuf, data, varsize);
+                buff_offset=varsize;
+
+                //allocate receive buffer for offsets and local_dims
+                recvbuf=(char *)malloc(2*ndims*sizeof(uint64_t));
+
+                tmp_dims=(uint64_t *)malloc(ndims*sizeof(uint64_t));
+                tmp_offsets=(uint64_t *)malloc(ndims*sizeof(uint64_t));
+            }
+            
+            else{
+                tmpbuf=(char *)realloc(tmpbuf, (aggr_cnt[ndims-1][lev]+1)*varsize);
+                buff_offset=varsize;
+            }
+
+            //store the local dimensions of all the chunks
+            if(lev==0) {
+                ldims_list=(uint64_t *)malloc(ndims*(aggr_cnt[ndims-1][lev]+1)*sizeof(uint64_t));
+                size_list=(uint64_t *)malloc((aggr_cnt[ndims-1][lev]+1)*sizeof(uint64_t));
+            }
+
+            //prepare the local dimension list
+            memcpy(ldims_list, ldims, ndims*sizeof(uint64_t));
+            //initialize the gdims
+            memcpy(gdims, ldims, ndims*sizeof(uint64_t));
+            size_list[0]=varsize;
+
+            k=1;
+            //gather data from clients
+            for(i=0;i<aggr_cnt[ndims-1][lev];i++) {
+                //receive the ldims of the client process
+                if(ndims==1) { 
+                    MPI_Recv (recvbuf, 2*ndims*sizeof(uint64_t), MPI_BYTE, aggr1d_clients[lev][i].rank, 
+                        aggr1d_clients[lev][i].rank, comm, &status);
+                }
+                else if(ndims==2) { 
+                    MPI_Recv (recvbuf, 2*ndims*sizeof(uint64_t), MPI_BYTE, aggr2d_clients[lev][i].rank, 
+                        aggr2d_clients[lev][i].rank, comm, &status);
+                }
+                else if(ndims==3) { 
+                    MPI_Recv (recvbuf, 2*ndims*sizeof(uint64_t), MPI_BYTE, aggr3d_clients[lev][i].rank, 
+                        aggr3d_clients[lev][i].rank, comm, &status);
+                }
+
+                //keep the ldims to the list
+                memcpy(ldims_list+(i+1)*ndims, recvbuf, ndims*sizeof(uint64_t));
+                memcpy(tmp_dims, recvbuf, ndims*sizeof(uint64_t));
+
+                //calculate the chunk size
+                tmpsize=type_size;
+                for(j=0;j<ndims;j++)
+                    tmpsize*=tmp_dims[j];
+
+                size_list[k]=tmpsize;
+                k++;
+
+                //calculate the aggregated chunk size
+                //the chunk sizes may be different from the clients
+                //XXX: FIXME harded for now
+                //FIXME: incorrent algorithm, it only works for 3D domain
+                //decomposition, probably we need a map
+                
+                //get the offsets
+                memcpy(tmp_offsets, recvbuf+ndims*sizeof(uint64_t), ndims*sizeof(uint64_t));
+
+                //calculate the aggregated chunk dimension
+                //XXX: maybe better way to code this?
+                cal_gdims(ndims, tmp_offsets, offsets, tmp_dims, ldims, gdims);
+
+                //receive the data from the client process
+                if(ndims==1) { 
+                    MPI_Recv (tmpbuf+buff_offset, tmpsize, MPI_BYTE, 
+                            aggr1d_clients[lev][i].rank, aggr1d_clients[lev][i].rank, comm, &status);
+                }
+                else if(ndims==2) { 
+                    MPI_Recv (tmpbuf+buff_offset, tmpsize, MPI_BYTE, 
+                            aggr2d_clients[lev][i].rank, aggr2d_clients[lev][i].rank, comm, &status);
+                }
+                if(ndims==3) { 
+                    MPI_Recv (tmpbuf+buff_offset, tmpsize, MPI_BYTE, 
+                            aggr3d_clients[lev][i].rank, aggr3d_clients[lev][i].rank, comm, &status);
+                }
+
+                //move the pointer
+                buff_offset=buff_offset+tmpsize;
+            }//end of for(i=0)
+
+            for(i=0;i<ndims;i++) {
+                if(i==0)
+                    sprintf(new_ldims, "%llu", gdims[i]);
+                else
+                    sprintf(new_ldims, "%s,%llu", new_ldims, gdims[i]);
+            }
+                
+            //aggregate the chunks
+            //1D variable doesn't need to do this since the data is already
+            //aligned in the buffer
+            if(ndims>1) 
+                aggr_chunks(&tmpbuf, procs, ndims, ldims_list, gdims, size_list, buff_offset, aggr_cnt[ndims-1][lev]+1, rank, lev, type_size);
+
+            //update the local dimensions at the aggregators 
+            memcpy(ldims, gdims, ndims*sizeof(uint64_t));
+            //the buffer offset marks the current variable size
+            varsize=buff_offset;
+        }
+        else{
+
+            //the previous level clients don't need to do anything 
+            if(lev>0 && my_aggregator[ndims-1][lev-1]!=rank)
+                continue;
+            else 
+                sendbuf=(char *)malloc(2*ndims*sizeof(uint64_t));
+                
+            //put in local dimensions
+            memcpy(sendbuf, ldims, ndims*sizeof(uint64_t));
+            //put in offsets
+            memcpy(sendbuf+ndims*sizeof(uint64_t), offsets, ndims*sizeof(uint64_t));
+            
+            //clients send out the local dimension of data chunks
+            MPI_Send(sendbuf, 2*ndims*sizeof(uint64_t), MPI_BYTE, my_aggregator[ndims-1][lev], rank, comm);
+
+            /*clients send out the data*/
+            if(lev==0)
+                MPI_Send(data, varsize, MPI_BYTE, my_aggregator[ndims-1][lev], rank, comm);
+            else
+                MPI_Send(tmpbuf, varsize, MPI_BYTE, my_aggregator[ndims-1][lev], rank, comm);
+
+        } //end of if(rank==aggregator)
+    }//end of for(lev=0)
+
+    //the final aggregators need to return data
+    if(my_aggregator[ndims-1][aggr_level-1]==rank) {
+        memcpy(output, tmpbuf, buff_offset);
+        //release the resources
+        free(tmp_dims);
+        free(gdims);
+        free(ldims_list);
+        free(size_list);
+    }
+
+    return buff_offset;
+}
+
+
+static void aggr_chunks(char **output, int *procs, int ndims, uint64_t *ldims_list,
+    uint64_t *gdims, uint64_t *size_list, uint64_t totalsize, int nchunks, int rank, int level, int type_size)
+{
+    uint64_t count[3];
+    uint64_t size;
+    int i,j,k, m, cnt;
+    uint64_t var_offset, dset_offset, buff_offset, size_in_dset[2];
+    uint64_t datasize, dst_stride, src_stride;
+    //cycles_t c1, c2;
+    double tmem=0;
+    char *input;
+    int chunk_cnt;
+    uint64_t prev_x, prev_y, prev_z;
+    uint64_t m_offx, m_offy, m_offz;
+    uint64_t offx, offy, offz;
+    int ni, nj, nk;
+
+    chunk_cnt=(int)pow(2, ndims);
+    input=(char *)malloc(totalsize);
+    memcpy(input, *output, totalsize); 
+
+    dst_stride=1;
+    src_stride=1;
+
+    //for 3D variable, the number of chunks can only be 2, 4 or 8
+    nk=1;
+    nj=1;
+    ni=1;
+
+    if(layout==0) {
+        m_offx=rank%procs[0];
+        m_offy=rank/procs[0]%procs[1];
+        m_offz=rank/(procs[0]*procs[1]);
+    }
+    else if(layout==1) {
+        m_offz=rank%procs[2];
+        m_offy=rank/procs[2]%procs[1];
+        m_offx=rank/(procs[2]*procs[1]);
+    }
+
+    //determine the number of chunks on each dimension
+    for(i=0;i<aggr_cnt[ndims-1][level];i++) {
+        offx=offy=offz=0;
+        if(ndims==1) { 
+            offx=aggr1d_clients[level][i].rank%procs[sequence[0]];
+        }
+        if(ndims==2) {
+            if(layout==0) {
+                offx=aggr2d_clients[level][i].rank%procs[0];
+                offy=aggr2d_clients[level][i].rank/procs[0]%procs[1];
+            }
+            else if(layout==1) {
+                offy=aggr2d_clients[level][i].rank%procs[1];
+                offx=aggr2d_clients[level][i].rank/procs[1]%procs[0];
+            }
+        }
+        else if(ndims==3) {
+            /*
+                offx=aggr3d_clients[level][i].rank%procs[sequence[0]];
+                offy=aggr3d_clients[level][i].rank/procs[sequence[0]]%procs[sequence[1]];
+                offz=aggr3d_clients[level][i].rank/(procs[sequence[0]]*procs[sequence[1]]);
+                */
+            if(layout==0) {
+                offx=aggr3d_clients[level][i].rank%procs[0];
+                offy=aggr3d_clients[level][i].rank/procs[0]%procs[1];
+                offz=aggr3d_clients[level][i].rank/(procs[0]*procs[1]);
+            }
+            else if(layout==1) {
+                offz=aggr3d_clients[level][i].rank%procs[2];
+                offy=aggr3d_clients[level][i].rank/procs[2]%procs[1];
+                offx=aggr3d_clients[level][i].rank/(procs[2]*procs[1]);
+            }
+        }
+
+        if(offx!=m_offx && offy==m_offy) {
+           if(ndims<3 || (ndims==3 && offz==m_offz))
+               nk++;
+        }
+        else if(offy!=m_offy && offx==m_offx) {
+           if(ndims==2 ||(ndims==3 && offz==m_offz)) 
+               nj++; 
+        }
+        
+        //only applies for 3D
+        if(ndims==3 && offz!=m_offz && offx==m_offx && offy==m_offy)
+            ni++;
+    }
+    
+    cnt=0;
+    prev_x=prev_y=prev_z=0;
+    for(i=0;i<ni;i++) {
+        for(j=0;j<nj;j++) {
+            for(k=0;k<nk;k++) {
+                if(ndims==1) {
+                    size_in_dset[0]=1;
+                    size_in_dset[1]=ldims_list[ndims*cnt+0];
+                }
+                if(ndims==2) { 
+                    size_in_dset[0]=ldims_list[ndims*cnt+1];
+                    size_in_dset[1]=ldims_list[ndims*cnt+0];
+                }
+                else if(ndims==3) { 
+                    size_in_dset[0]=ldims_list[ndims*cnt+2];
+                    size_in_dset[1]=ldims_list[ndims*cnt+1];
+                }
+
+                datasize=ldims_list[ndims*cnt+0];
+                src_stride=ldims_list[ndims*cnt+0];
+                dst_stride=gdims[0];
+                var_offset=0;
+
+                if(cnt!=0) { 
+                    //start offset in the aggregated chunk 
+                    dset_offset=i*prev_z*gdims[0]*gdims[1]+j*prev_y*gdims[0]+k*prev_x;
+                    //start offset in the input buffer 
+                    buff_offset+=size_list[cnt-1];
+                }
+                else {
+                    dset_offset=0;
+                    buff_offset=0;
+                }
+
+                copy_aggr_data(*output
+                   ,input+buff_offset
+                   ,0
+                   ,ndims-1
+                   ,size_in_dset
+                   ,ldims_list+ndims*cnt
+                   ,gdims
+                   ,dst_stride
+                   ,src_stride
+                   ,dset_offset
+                   ,var_offset
+                   ,datasize
+                   ,type_size
+                   ,rank
+                   );
+                cnt++;
+                prev_x=ldims_list[ndims*(cnt-1)+0];
+            }
+            prev_y=ldims_list[ndims*(cnt-1)+1];
+        }//end of j
+        if(ndims==3) { 
+            prev_z=ldims_list[ndims*(cnt-1)+2];
+        }
+    } //end of i
+
+    free(input);
+}
diff --git a/tests/C/CMakeLists.txt b/tests/C/CMakeLists.txt
new file mode 100644
index 0000000..95910a8
--- /dev/null
+++ b/tests/C/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/tests/C)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+link_directories(${PROJECT_SOURCE_DIR}/src)
+link_directories(${MXML_INCLUDE_DIR}/../lib)
+
+add_executable(adios_test_c adios_test_c.c)
+target_link_libraries(adios_test_c adios ${ADIOSLIB_LDADD}) 
+set(adios_test_c_CPPFLAGS "${ADIOSLIB_CPPFLAGS}")
+set(adios_test_c_CFLAGS "${ADIOSLIB_CFLAGS}")
+set_target_properties(adios_test_c PROPERTIES COMPILE_FLAGS "${adios_test_c_CFLAGS} ${adios_test_c_CPPFLAGS}")
+
+#install(FILES config_c.xml DESTINATION ${PROJECT_BINARY_DIR}/tests/C)
diff --git a/tests/C/Makefile.in b/tests/C/Makefile.in
index 5f62858..6f645ae 100644
--- a/tests/C/Makefile.in
+++ b/tests/C/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -137,6 +139,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -159,6 +165,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -184,6 +193,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -240,6 +250,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -310,7 +322,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -335,9 +347,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/C/adios_test_c.c b/tests/C/adios_test_c.c
index c606c58..f2f8447 100644
--- a/tests/C/adios_test_c.c
+++ b/tests/C/adios_test_c.c
@@ -82,7 +82,7 @@ printf ("rank %d filename: %s\n", rank, filename);
 #else
     strcpy (filename, "restart.bp");
 #endif
-    if (!adios_init ("config_c.xml"))
+    if (!adios_init ("config_c.xml", comm))
         return -1;
 
     //uint64_t byte_test_length = 768LL * 1024 * 1024;
@@ -176,7 +176,7 @@ if (rank == 0) printf ("Byte_test_length: %llu\n", byte_test_length);
 #if DO_WRITE
 //printf ("XXXXXXXXXXXXXXXX do a write XXXXXXXXXXXXXXXXX\n");
     gettimeofday (&time_start, NULL);
-    adios_open (&io_handle, type_name, filename, "w", &comm);
+    adios_open (&io_handle, type_name, filename, "w", comm);
     gettimeofday (&time_open, NULL);
 #if 1
     adios_group_size (io_handle, 4 + byte_test_length, &total);
@@ -188,7 +188,7 @@ if (rank == 0) printf ("Byte_test_length: %llu\n", byte_test_length);
                                 + 4 + 4 * zionsize2 * zionsize3
                                 + 4
                                 + 4 + byte_test_length
-                     ,&total, &comm
+                     ,&total 
                      );
     gettimeofday (&time_group_size, NULL);
 
@@ -311,7 +311,7 @@ if (rank == 0) printf ("Byte_test_length: %llu\n", byte_test_length);
 #if DO_READ
 printf ("XXXXXXXXXXXXXXXX do a read XXXXXXXXXXXXXXXXX\n");
 
-    adios_open (&io_handle, type_name, filename, "r", &comm);
+    adios_open (&io_handle, type_name, filename, "r", comm);
     adios_group_size (io_handle, 0, &total);
     adios_read (io_handle, "/mype", &r_var_x1, 4);
     adios_read (io_handle, "/test/mype", &r_var_x2, 4);
@@ -365,7 +365,7 @@ for (int i = 0; i < 3; i++)
 {
 printf ("XXXXXXXXXXXXXXXX do an append XXXXXXXXXXXXXXXXX\n");
     var_x1 = 11;
-    adios_open (&io_handle, type_name, filename, "a", &comm);
+    adios_open (&io_handle, type_name, filename, "a", comm);
     adios_group_size (io_handle,  4 + 4
                                 + 4 * zionsize1
                                 + 4 + 4 * zionsize2 * zionsize2
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..acf45ab
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,29 @@
+set(SUITEDIR suite)
+if(BUILD_WRITE)
+  if(BUILD_FORTRAN)
+    add_subdirectory(C)
+    add_subdirectory(Fortran)
+    add_subdirectory(genarray)
+    add_subdirectory(bp_read)
+    add_subdirectory(${SUITEDIR})
+  else(BUILD_FORTRAN)
+    add_subdirectory(C)
+    add_subdirectory(bp_read)
+    add_subdirectory(${SUITEDIR})
+  endif(BUILD_FORTRAN)
+endif(BUILD_WRITE)
+
+#find_library(ADIOS_LIB adios ${PROJECT_BINARY_DIR}/src)
+#if(${ADIOS_LIB}-NOTFOUND)
+ # message(STATUS "cannot find adios.a in ${PROJECT_BINARY_DIR}/tests makefile")
+#endif(${ADIOS_LIB}-NOTFOUND)
+
+#if(BUILD_FORTRAN)
+#  find_library(ADIOSREAD_LIB NAMES adiosreadf PATHS ${PROJECT_BINARY_DIR}/src)
+#  find_library(ADIOSREAD_V1_LIB NAMES adiosreadf_v1 PATHS ${PROJECT_BINARY_DIR}/src)
+#else(BUILD_FORTRAN)
+#  find_library(ADIOSREAD_LIB adiosread ${PROJECT_BINARY_DIR}/src)
+#  if(${ADIOSREAD_LIB}-NOTFOUND)
+#    message(STATUS "cannot find adiosread.a in ${PROJECT_BINARY_DIR}/tests makefile")
+#  endif(${ADIOSREAD_LIB}-NOTFOUND)
+#endif(BUILD_FORTRAN)
diff --git a/tests/Fortran/CMakeLists.txt b/tests/Fortran/CMakeLists.txt
new file mode 100644
index 0000000..9e305e4
--- /dev/null
+++ b/tests/Fortran/CMakeLists.txt
@@ -0,0 +1,9 @@
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/tests/Fortran)
+link_directories(${PROJECT_BINARY_DIR}/tests/Fortran)
+
+add_executable(adios_test_f adios_test_f.F90)
+target_link_libraries(adios_test_f adiosf ${ADIOSLIB_LDADD})
+set_target_properties(adios_test_f PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS}")
+
+#install(FILES config_fortran.xml DESTINATION ${PROJECT_BINARY_DIR}/tests/Fortran)
diff --git a/tests/Fortran/Makefile.in b/tests/Fortran/Makefile.in
index 3701327..ef7ee2f 100644
--- a/tests/Fortran/Makefile.in
+++ b/tests/Fortran/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -134,6 +136,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -156,6 +162,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -181,6 +190,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -237,6 +247,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -311,7 +323,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -336,9 +348,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/Fortran/adios_test_f.F90 b/tests/Fortran/adios_test_f.F90
index 6be4e71..84e7d73 100644
--- a/tests/Fortran/adios_test_f.F90
+++ b/tests/Fortran/adios_test_f.F90
@@ -6,6 +6,7 @@
 !
 
 program adios_test
+    use adios_write_mod
     implicit none
     include 'mpif.h'
     character (len=200) :: group
@@ -47,8 +48,8 @@ program adios_test
 
     print '("rank=",i0," group_comm=",i0," ierr=",i0)', rank, group_comm, ierr
 
-    call adios_allocate_buffer (ierr);
-    call adios_init ("config_fortran.xml", ierr)
+    call adios_allocate_buffer (10, ierr);
+    call adios_init ("config_fortran.xml", group_comm, ierr)
     call test_write (group, filename, group_comm, small_int, big_int, small_real, big_real, z_size, z_array)
 
     call MPI_Barrier (MPI_COMM_WORLD, ierr)
diff --git a/tests/Makefile.in b/tests/Makefile.in
index c6dc738..b0eb6d0 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -40,8 +40,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -152,6 +154,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -174,6 +180,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -199,6 +208,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -255,6 +265,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -317,7 +329,7 @@ SUITEDIR = suite
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -342,9 +354,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/bp_read/CMakeLists.txt b/tests/bp_read/CMakeLists.txt
new file mode 100644
index 0000000..ba3d5f3
--- /dev/null
+++ b/tests/bp_read/CMakeLists.txt
@@ -0,0 +1,36 @@
+include_directories(${PROJECT_SOURCE_DIR}/tests/bp_read)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+link_directories(${PROJECT_BINARY_DIR}/tests/bp_read)
+
+set(genbp_CPPFLAGS "${ADIOSLIB_CPPFLAGS}")
+set(genbp_CFLAGS "${ADIOSLIB_CFLAGS}")
+
+set(bp_read_c_CPPFLAGS "-DADIOS_USE_READ_API_1 ${ADIOSLIB_CPPFLAGS}")
+set(bp_read_c_CFLAGS "${ADIOSLIB_CFLAGS}")
+
+add_executable(genbp genbp.c)
+target_link_libraries(genbp adios adiosread ${ADIOSLIB_LDADD})
+set_target_properties(genbp PROPERTIES COMPILE_FLAGS "${genbp_CPPFLAGS} ${genbp_CFLAGS}")
+
+add_executable(bp_read_c bp_read_c.c)
+target_link_libraries(bp_read_c adiosread ${ADIOSREADLIB_LDADD})
+set_target_properties(bp_read_c PROPERTIES COMPILE_FLAGS "${bp_read_c_CPPFLAGS} ${bp_read_c_CFLAGS}")
+
+if(BUILD_FORTRAN)
+  add_executable(bp_read_f bp_read_f.F90)
+  target_link_libraries(bp_read_f adiosreadf ${ADIOSREADLIB_LDADD})
+  set(bp_read_f_CPPFLAGS "${ADIOSLIB_CPPFLAGS}")
+  set(bp_read_f_CFLAGS "${ADIOSLIB_CFLAGS}")
+  set_target_properties(bp_read_f PROPERTIES COMPILE_FLAGS "${bp_read_f_CPPFLAGS} ${bp_read_f_CFLAGS}")
+
+  add_executable(bp_read_f_v1 bp_read_f_v1.F90)
+  target_link_libraries(bp_read_f_v1 adiosreadf_v1 ${ADIOSREADLIB_LDADD})
+  set(bp_read_f_v1_CPPFLAGS "${ADIOSLIB_CPPFLAGS}")
+  set(bp_read_f_v1_CFLAGS "${ADIOSLIB_CFLAGS}")
+  set_target_properties(bp_read_f_v1 PROPERTIES COMPILE_FLAGS "${bp_read_f_v1_CPPFLAGS} ${bp_read_f_v1_CFLAGS}")
+
+endif(BUILD_FORTRAN)
+
+
diff --git a/tests/bp_read/Makefile.in b/tests/bp_read/Makefile.in
index 9243251..fae6748 100644
--- a/tests/bp_read/Makefile.in
+++ b/tests/bp_read/Makefile.in
@@ -46,8 +46,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -176,6 +178,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -198,6 +204,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -223,6 +232,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -279,6 +289,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -370,7 +382,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -395,9 +407,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/bp_read/genbp.c b/tests/bp_read/genbp.c
index c86db52..4cc0dcf 100644
--- a/tests/bp_read/genbp.c
+++ b/tests/bp_read/genbp.c
@@ -69,11 +69,11 @@ int main (int argc, char ** argv)
     }
 
     MPI_Init (&argc, &argv);
-    MPI_Comm_rank (MPI_COMM_WORLD, &rank);
-    if (!adios_init ("testbp_c.xml"))
+    MPI_Comm_rank (comm, &rank);
+    if (!adios_init ("testbp_c.xml", comm))
         return -1;
 
-    adios_open (&io_handle, type_name, filename, "w", &comm);
+    adios_open (&io_handle, type_name, filename, "w", comm);
     adios_group_size (io_handle, 32                             // 4 integers 
                                 + 4 * dim1                      // int_1D
                                 + 4 * dim1 * dim2               // int_2D
diff --git a/tests/genarray/CMakeLists.txt b/tests/genarray/CMakeLists.txt
new file mode 100644
index 0000000..84842b5
--- /dev/null
+++ b/tests/genarray/CMakeLists.txt
@@ -0,0 +1,37 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_BINARY_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/tests/genarray)
+include_directories(${PROJECT_BINARY_DIR}/tests/genarray)
+link_directories(${PROJECT_BINARY_DIR}/tests/genarray)
+
+add_executable(genarray genarray.F90 gwrite_genarray.fh)
+target_link_libraries(genarray adiosf ${ADIOSLIB_LDADD})
+set_target_properties(genarray PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS}")
+
+add_executable(genarray2D genarray2D.F90)
+target_link_libraries(genarray2D adiosf ${ADIOSLIB_LDADD})
+set_target_properties(genarray2D PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS}")
+
+add_executable(copyarray copyarray.F90 gread_genarray.fh)
+target_link_libraries(copyarray adiosf ${ADIOSLIB_LDADD})
+set_target_properties(copyarray PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS}")
+
+add_executable(copyarray2D copyarray2D.F90)
+target_link_libraries(copyarray2D adiosf ${ADIOSLIB_LDADD})
+set_target_properties(copyarray2D PROPERTIES COMPILE_FLAGS "${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS}")
+
+#install(FILES genarray.xml genarray3d.xml job.ewok job2D.ewok DESTINATION ${PROJECT_BINARY_DIR}/tests/genarray) 
+
+add_custom_command(
+	OUTPUT gwrite_genarray.fh
+	COMMAND rm -f gwrite_genarray.fh gread_genarray.fh 
+	COMMAND ${PROJECT_SOURCE_DIR}/utils/gpp/gpp.py ${PROJECT_SOURCE_DIR}/tests/genarray/genarray3d.xml
+	DEPENDS genarray3d.xml
+	)
+
+add_custom_command(
+        OUTPUT gread_genarray.fh 
+	COMMAND rm -f gwrite_genarray.fh gread_genarray.fh 
+	COMMAND ${PROJECT_SOURCE_DIR}/utils/gpp/gpp.py ${PROJECT_SOURCE_DIR}/tests/genarray/genarray3d.xml
+	DEPENDS genarray3d.xml
+	)
diff --git a/tests/genarray/Makefile.in b/tests/genarray/Makefile.in
index 91fe4de..44e5f84 100644
--- a/tests/genarray/Makefile.in
+++ b/tests/genarray/Makefile.in
@@ -43,8 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -158,6 +160,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -180,6 +186,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -205,6 +214,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -261,6 +271,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -349,7 +361,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -374,9 +386,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/genarray/copyarray.F90 b/tests/genarray/copyarray.F90
index 8e64754..8d0b773 100644
--- a/tests/genarray/copyarray.F90
+++ b/tests/genarray/copyarray.F90
@@ -51,6 +51,7 @@ end module genarray_comm
 
 program genarray
     use genarray_comm
+    use adios_write_mod
     implicit none
     include 'mpif.h'
 
@@ -59,7 +60,7 @@ program genarray
     call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
     call MPI_Comm_size (group_comm, nproc , ierr)
 
-    call adios_init ("genarray3d.xml", ierr)
+    call adios_init ("genarray3d.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     call processArgs()
@@ -222,8 +223,10 @@ end subroutine readArray
 !!***************************
 subroutine writeArray()
     use genarray_comm
+    use adios_write_mod
     implicit none
-    integer*8 adios_handle, adios_groupsize, adios_err
+    integer*8 adios_handle, adios_groupsize
+    integer adios_err
     include 'mpif.h'
 
     call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
diff --git a/tests/genarray/copyarray2D.F90 b/tests/genarray/copyarray2D.F90
index 1b41483..cadc9e2 100644
--- a/tests/genarray/copyarray2D.F90
+++ b/tests/genarray/copyarray2D.F90
@@ -64,6 +64,7 @@ end module genarray2D_comm
 
 program genarray
     use genarray2D_comm
+    use adios_write_mod
     implicit none
     include 'mpif.h'
 
@@ -72,7 +73,7 @@ program genarray
     call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
     call MPI_Comm_size (group_comm, nproc , ierr)
 
-    call adios_init ("genarray.xml", ierr)
+    call adios_init ("genarray.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     call processArgs()
@@ -196,10 +197,11 @@ end subroutine generateLocalArray
 !!***************************
 subroutine readArray()
     use genarray2D_comm
+    use adios_write_mod
+    use adios_read_mod
     implicit none
     integer :: tstep
     character(2) :: mode = "r"
-    integer*8 adios_err
     include 'mpif.h'
 
     ! Write out data using ADIOS
@@ -211,7 +213,7 @@ subroutine readArray()
 
     adios_totalsize = group_size
 
-    call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+    call MPI_BARRIER(MPI_COMM_WORLD,ierr)
     cache_start_time = MPI_WTIME()
 
     call adios_open (handle, group, inputfile, mode, group_comm, err)
@@ -244,7 +246,7 @@ subroutine readArray()
     adios_buf_size = 4 * ndx * ndy
     call adios_read (handle, "int_xyt", int_xy, adios_buf_size, err)
 
-    call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+    call MPI_BARRIER(MPI_COMM_WORLD,ierr)
     cache_end_time = MPI_WTIME()
     cache_total_time = cache_end_time - cache_start_time
 
@@ -262,10 +264,10 @@ end subroutine readArray
 !!***************************
 subroutine writeArray()
     use genarray2D_comm
+    use adios_write_mod
     implicit none
     integer :: tstep
     character(2) :: mode = "w"
-    integer*8 adios_err
     include 'mpif.h'
 
     ! Write out data using ADIOS
@@ -282,7 +284,7 @@ subroutine writeArray()
         !print '("rank=",i0," group=",A," file=",A," group_size=",i0)', rank, trim(group), &
         !    trim(outputfile), group_size
 
-        call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+        call MPI_BARRIER(MPI_COMM_WORLD,ierr)
         cache_start_time = MPI_WTIME()
 
         call adios_open (handle, group, outputfile, mode, group_comm, err)
@@ -306,7 +308,7 @@ subroutine writeArray()
         endif
         call adios_write (handle, "int_xyt", int_xy, err)
 
-        call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+        call MPI_BARRIER(MPI_COMM_WORLD,ierr)
         cache_end_time = MPI_WTIME()
         cache_total_time = cache_end_time - cache_start_time
 
diff --git a/tests/genarray/genarray.F90 b/tests/genarray/genarray.F90
index 2444bb1..ea329f9 100644
--- a/tests/genarray/genarray.F90
+++ b/tests/genarray/genarray.F90
@@ -42,7 +42,6 @@ module genarray_comm
     character (len=200) :: filename
     !character (len=6)   :: nprocstr
     integer*8 :: handle, total_size, group_size, adios_totalsize
-    integer   :: err
 
     real*8 :: start_time, end_time, total_time,gbs,sz
     real*8 :: io_start_time, io_end_time, io_total_time
@@ -62,7 +61,7 @@ program genarray
     call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
     call MPI_Comm_size (group_comm, nproc , ierr)
 
-    call adios_init ("genarray3d.xml", ierr)
+    call adios_init ("genarray3d.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     call processArgs()
@@ -178,14 +177,14 @@ subroutine writeArray()
     do tstep=1,timesteps
         !if (tstep > 1) mode = "a"
         double_xyz = tstep + double_xyz
-        call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+        call MPI_BARRIER(MPI_COMM_WORLD,ierr)
         io_start_time = MPI_WTIME()
         group = "genarray"
         write (outfilename,'(a,".",i3.3,".bp")') trim(outputfile),tstep
         call adios_open (adios_handle, group, outfilename, mode, group_comm, adios_err)
 #include "gwrite_genarray.fh"
         call adios_close (adios_handle, adios_err)
-        call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+        call MPI_BARRIER(MPI_COMM_WORLD,ierr)
         io_end_time = MPI_WTIME()
         io_total_time = io_end_time - io_start_time
         sz = adios_totalsize * nproc/1024.d0/1024.d0/1024.d0 !size in GB
diff --git a/tests/genarray/genarray.xml b/tests/genarray/genarray.xml
index d7ef468..2c7d1f5 100644
--- a/tests/genarray/genarray.xml
+++ b/tests/genarray/genarray.xml
@@ -44,7 +44,8 @@
 
   </adios-group>
 
-  <method group="genarray" method="MPI"/>
+  <method group="genarray" method="MPI"></method>
+  <!--method group="genarray" method="VAR_MERGE">chunk_size=1048576,io_method=MPI_LUSTRE,io_parameters=stripe_count=16,stripe_size=1048576</method-->
 
   <buffer size-MB="400" allocate-time="now"/>
 
diff --git a/tests/genarray/genarray2D.F90 b/tests/genarray/genarray2D.F90
index f93df9e..e264cb7 100644
--- a/tests/genarray/genarray2D.F90
+++ b/tests/genarray/genarray2D.F90
@@ -64,6 +64,7 @@ end module genarray2D_comm
 
 program genarray
     use genarray2D_comm
+    use adios_write_mod
     implicit none
     include 'mpif.h'
 
@@ -72,7 +73,7 @@ program genarray
     call MPI_Comm_rank (MPI_COMM_WORLD, rank, ierr)
     call MPI_Comm_size (group_comm, nproc , ierr)
 
-    call adios_init ("genarray.xml", ierr)
+    call adios_init ("genarray.xml", group_comm, ierr)
     !call MPI_Barrier (group_comm, ierr)
 
     call processArgs()
@@ -184,10 +185,10 @@ end subroutine generateLocalArray
 !!***************************
 subroutine writeArray()
     use genarray2D_comm
+    use adios_write_mod
     implicit none
     integer :: tstep
     character(2) :: mode = "w"
-    integer*8 adios_err
     include 'mpif.h'
 
     ! Write out data using ADIOS
@@ -204,7 +205,7 @@ subroutine writeArray()
         !print '("rank=",i0," group=",A," file=",A," group_size=",i0)', rank, trim(group), &
         !    trim(outputfile), group_size
 
-    call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+    call MPI_BARRIER(MPI_COMM_WORLD,ierr)
     cache_start_time = MPI_WTIME()
 
         call adios_open (handle, group, outputfile, mode, group_comm, err)
@@ -228,7 +229,7 @@ subroutine writeArray()
         endif
         call adios_write (handle, "int_xyt", int_xy, err)
 
-    call MPI_BARRIER(MPI_COMM_WORLD,adios_err)
+    call MPI_BARRIER(MPI_COMM_WORLD,ierr)
     cache_end_time = MPI_WTIME()
     cache_total_time = cache_end_time - cache_start_time
 
diff --git a/tests/genarray/genarray3d.xml b/tests/genarray/genarray3d.xml
index b53bb4d..15ef17d 100644
--- a/tests/genarray/genarray3d.xml
+++ b/tests/genarray/genarray3d.xml
@@ -41,7 +41,8 @@
 
   </adios-group>
 
-  <method group="genarray" method="MPI"/>
+  <method group="genarray" method="MPI"></method>
+  <!--method group="genarray" method="VAR_MERGE">chunk_size=1048576;io_method=MPI_LUSTRE;io_parameters=stripe_count=16,stripe_size=1048576</method-->
 
   <buffer size-MB="20" allocate-time="now"/>
 
diff --git a/tests/suite/CMakeLists.txt b/tests/suite/CMakeLists.txt
new file mode 100644
index 0000000..6d61ffd
--- /dev/null
+++ b/tests/suite/CMakeLists.txt
@@ -0,0 +1,8 @@
+add_subdirectory(programs)
+
+#install(FILES HOWTO-Add-new-test DESTINATION ${PROJECT_BINARY_DIR}/tests/suite)
+#install(FILES HOWTO-Run DESTINATION ${PROJECT_BINARY_DIR}/tests/suite)
+#install(PROGRAMS cleanup.sh DESTINATION ${PROJECT_BINARY_DIR}/tests/suite)
+#install(DIRECTORY reference USE_SOURCE_PERMISSIONS DESTINATION ${PROJECT_BINARY_DIR}/tests/suite PATTERN ".svn" EXCLUDE)
+#install(PROGRAMS test.sh DESTINATION ${PROJECT_BINARY_DIR}/tests/suite)
+#install(DIRECTORY tests USE_SOURCE_PERMISSIONS DESTINATION ${PROJECT_BINARY_DIR}/tests/suite PATTERN ".svn" EXCLUDE)
diff --git a/tests/suite/Makefile.in b/tests/suite/Makefile.in
index 25a3aa7..a9ceeb0 100644
--- a/tests/suite/Makefile.in
+++ b/tests/suite/Makefile.in
@@ -40,8 +40,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -152,6 +154,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -174,6 +180,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -199,6 +208,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -255,6 +265,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -322,7 +334,7 @@ EXTRA_DIST = HOWTO-Add-new-test \
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -347,9 +359,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/suite/programs/CMakeLists.txt b/tests/suite/programs/CMakeLists.txt
new file mode 100644
index 0000000..70a9738
--- /dev/null
+++ b/tests/suite/programs/CMakeLists.txt
@@ -0,0 +1,50 @@
+include_directories(${PROJECT_SOURCE_DIR}/tests/suite)
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/tests/suite/programs)
+include_directories(${PROJECT_BINARY_DIR}/tests/suite/programs)
+link_directories(${PROJECT_BINARY_DIR}/tests/suite/programs)
+
+
+if(BUILD_WRITE)
+  add_executable(local_array_time local_array_time.c)
+  target_link_libraries(local_array_time adios ${ADIOSLIB_LDADD})
+  
+  add_executable(adios_amr_write adios_amr_write.c)
+  target_link_libraries(adios_amr_write adios ${ADIOSLIB_LDADD})
+
+  add_executable(adios_amr_write_2vars adios_amr_write_2vars.c)
+  target_link_libraries(adios_amr_write_2vars adios ${ADIOSLIB_LDADD})
+  
+  add_executable(adios_staged_read adios_staged_read.c)
+  target_link_libraries(adios_staged_read adiosread ${ADIOSREADLIB_LDADD})
+
+  add_executable(adios_staged_read_2vars adios_staged_read_2vars.c)
+  target_link_libraries(adios_staged_read_2vars adiosread ${ADIOSREADLIB_LDADD})
+
+  add_executable(write_read write_read.c)
+  target_link_libraries(write_read adios ${ADIOSLIB_LDADD})
+
+  add_executable(write_alternate write_alternate.c)
+  target_link_libraries(write_alternate adios ${ADIOSLIB_LDADD})
+
+  add_executable(many_vars many_vars.c)
+  target_link_libraries(many_vars adios ${ADIOSLIB_LDADD})
+
+  add_executable(selections selections.c)
+  target_link_libraries(selections adios ${ADIOSLIB_LDADD})
+endif(BUILD_WRITE)
+
+if(BUILD_FORTRAN)
+  if(BUILD_WRITE)
+    add_executable(posix_method posix_method.F90 gwrite_posix_method.fh)
+    target_link_libraries(posix_method adiosf ${ADIOSLIB_LDADD})
+    include_directories(${PROJECT_BINARY_DIR}/src)
+    add_custom_command(
+	OUTPUT gwrite_posix_method.fh
+	COMMAND ${PROJECT_SOURCE_DIR}/utils/gpp/gpp.py ${PROJECT_SOURCE_DIR}/tests/suite/programs/posix_method.xml
+	DEPENDS posix_method.xml
+	)
+  endif(BUILD_WRITE)
+endif(BUILD_FORTRAN)
+
+#install(FILES adios_amr_write_2vars.xml adios_amr_write.xml local_array_time.xml posix_method.xml write_alternate.xml write_read.xml DESTINATION ${PROJECT_BINARY_DIR}/tests/suite/programs)
diff --git a/tests/suite/programs/Makefile.in b/tests/suite/programs/Makefile.in
index cd19310..8d691ef 100644
--- a/tests/suite/programs/Makefile.in
+++ b/tests/suite/programs/Makefile.in
@@ -43,8 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -261,6 +263,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -283,6 +289,9 @@ FC = $(MPIFC)
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -308,6 +317,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -364,6 +374,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -505,7 +517,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .F90 .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -530,9 +542,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/tests/suite/programs/adios_amr_write.c b/tests/suite/programs/adios_amr_write.c
index a8f055d..e02c18a 100644
--- a/tests/suite/programs/adios_amr_write.c
+++ b/tests/suite/programs/adios_amr_write.c
@@ -76,9 +76,9 @@ int main (int argc, char ** argv)
 
     strcpy (filename, "adios_amr_write.bp");
 
-    adios_init ("adios_amr_write.xml");
+    adios_init ("adios_amr_write.xml", comm);
 
-    adios_open (&adios_handle, "temperature", filename, "w", &comm);
+    adios_open (&adios_handle, "temperature", filename, "w", comm);
 
     adios_groupsize = 4  * 8\
                     + 8 * l1 * l2;
diff --git a/tests/suite/programs/adios_amr_write_2vars.c b/tests/suite/programs/adios_amr_write_2vars.c
index f57cacf..50c723c 100644
--- a/tests/suite/programs/adios_amr_write_2vars.c
+++ b/tests/suite/programs/adios_amr_write_2vars.c
@@ -78,9 +78,9 @@ int main (int argc, char ** argv)
 
     strcpy (filename, "adios_amr_write_2vars.bp");
 
-    adios_init ("adios_amr_write_2vars.xml");
+    adios_init ("adios_amr_write_2vars.xml", comm);
 
-    adios_open (&adios_handle, "temperature", filename, "w", &comm);
+    adios_open (&adios_handle, "temperature", filename, "w", comm);
 
     adios_groupsize = 4  * 8\
                     + 8 * l1 * l2
diff --git a/tests/suite/programs/adios_amr_write_2vars.xml b/tests/suite/programs/adios_amr_write_2vars.xml
index 9017a3c..0e55b4d 100644
--- a/tests/suite/programs/adios_amr_write_2vars.xml
+++ b/tests/suite/programs/adios_amr_write_2vars.xml
@@ -14,7 +14,8 @@
     <attribute name="description" path="/temperature" value="Global array written from 'size' processes" type="string"/>
 </adios-group>
 
-<method group="temperature" method="MPI_AMR">stripe_count=1;stripe_size=10485760;num_aggregators=8;merging_pgs=0</method>
+<!-- <method group="temperature" method="MPI_AMR">stripe_count=1;stripe_size=10485760;num_aggregators=8;merging_pgs=0</method> -->
+<method group="temperature" method="POSIX"/>
 
 <buffer size-MB="100" allocate-time="now"/>
 
diff --git a/tests/suite/programs/connect_to_space_subset.c b/tests/suite/programs/connect_to_space_subset.c
index 33bc97e..5ff6aef 100644
--- a/tests/suite/programs/connect_to_space_subset.c
+++ b/tests/suite/programs/connect_to_space_subset.c
@@ -116,8 +116,8 @@ int main (int argc, char ** argv)
     }
 
     alloc_vars();
-    adios_read_init_method(ADIOS_READ_METHOD_DATASPACES, wcomm, "verbose=4");
-    adios_init_noxml ();
+    adios_read_init_method(ADIOS_READ_METHOD_DATASPACES, subcomm, "verbose=4");
+    adios_init_noxml (subcomm);
     adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, 1);
 
     if (iconnect) 
diff --git a/tests/suite/programs/local_array_time.c b/tests/suite/programs/local_array_time.c
index 64bcb32..00e545c 100644
--- a/tests/suite/programs/local_array_time.c
+++ b/tests/suite/programs/local_array_time.c
@@ -61,7 +61,7 @@ int main( int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    adios_init ("local_array_time.xml");
+    adios_init ("local_array_time.xml", comm);
     strcpy(filename, "local_array_time.bp");
 
 
@@ -88,9 +88,9 @@ int main( int argc, char ** argv)
 
         if (timestep == 0.0) {
             printf("\n\n\nopen file\n\n\n");
-            adios_open (&adios_handle, "schema", filename, "w", &comm);
+            adios_open (&adios_handle, "schema", filename, "w", comm);
         } else {
-            adios_open (&adios_handle, "schema", filename, "a", &comm);
+            adios_open (&adios_handle, "schema", filename, "a", comm);
         }
 
         for (i=0; i<num_points; i++) {
diff --git a/tests/suite/programs/many_vars.c b/tests/suite/programs/many_vars.c
index 1400f93..7fd34ad 100644
--- a/tests/suite/programs/many_vars.c
+++ b/tests/suite/programs/many_vars.c
@@ -152,7 +152,7 @@ int main (int argc, char ** argv)
     }
 
     alloc_vars();
-    adios_init_noxml ();
+    adios_init_noxml (comm);
     adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, 10);
     err = adios_read_init_method(ADIOS_READ_METHOD_BP, comm, "verbose=2");
     if (err) {
@@ -211,7 +211,7 @@ int write_file (int step)
     int           block, v, i;
 
     log ("Write step %d to %s\n", step, FILENAME);
-    adios_open (&fh, "multiblock", FILENAME, (step ? "a" : "w"), &comm);
+    adios_open (&fh, "multiblock", FILENAME, (step ? "a" : "w"), comm);
     
     groupsize  = (4 + NBLOCKS*2) * sizeof(int);             // dimensions 
     groupsize += NVARS * NBLOCKS * ldim1 * ldim2 * sizeof(int);     // 2D  blocks
diff --git a/tests/suite/programs/posix_method.F90 b/tests/suite/programs/posix_method.F90
index a1c6ab9..3da4645 100644
--- a/tests/suite/programs/posix_method.F90
+++ b/tests/suite/programs/posix_method.F90
@@ -11,6 +11,7 @@
 !/*     Similar example is examples/Fortran/arrays/arrays_write.c     */
 !/*************************************************************/
 program posix_method
+    use adios_write_mod
     implicit none
     include 'mpif.h'
 
@@ -44,7 +45,7 @@ program posix_method
         p(i) = rank*NX + i
     enddo
 
-    call adios_init ("posix_method.xml", adios_err);
+    call adios_init ("posix_method.xml", comm, adios_err);
 
 
     ! Write data out
diff --git a/tests/suite/programs/selections.c b/tests/suite/programs/selections.c
index de5a5fd..a1bcac7 100644
--- a/tests/suite/programs/selections.c
+++ b/tests/suite/programs/selections.c
@@ -171,7 +171,7 @@ int main (int argc, char ** argv)
 
     alloc_vars();
     if (do_write) {
-        adios_init_noxml ();
+        adios_init_noxml (comm);
         adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, 10);
     }
     if (do_read) {
@@ -247,7 +247,7 @@ int write_file (int step)
     uint64_t       groupsize=0, totalsize;
 
     log ("Write step %d to %s\n", step, FILENAME);
-    adios_open (&fh, "selections", FILENAME, (step ? "a" : "w"), &comm);
+    adios_open (&fh, "selections", FILENAME, (step ? "a" : "w"), comm);
     
     groupsize  = 9 * sizeof(int);                           // dimensions 
     groupsize += 3 * sizeof(int);                           // scalars 
@@ -333,8 +333,8 @@ int read_points ()
     reset_readvars();
 
     log ("Read and check data in %s using point selections\n", FILENAME);
-    f = adios_read_open_stream (FILENAME, read_method, comm,
-                                ADIOS_LOCKMODE_CURRENT, 0.0);
+    f = adios_read_open (FILENAME, read_method, comm,
+                         ADIOS_LOCKMODE_CURRENT, 0.0);
     if (f == NULL) {
         printE ("Error at opening file: %s\n", rank, adios_errmsg());
         return 1;
diff --git a/tests/suite/programs/two_groups.c b/tests/suite/programs/two_groups.c
index 8292f8d..d4de632 100644
--- a/tests/suite/programs/two_groups.c
+++ b/tests/suite/programs/two_groups.c
@@ -54,7 +54,7 @@ int main (int argc, char ** argv)
     MPI_Comm_rank (comm, &rank);
     MPI_Comm_size (comm, &size);
 
-    adios_init ("two_groups.xml");
+    adios_init ("two_groups.xml", comm);
     err = adios_read_init_method(ADIOS_READ_METHOD_BP, comm, "verbose=2");
     if (err) {
         printE ("%s\n", adios_errmsg());
@@ -85,7 +85,7 @@ int write_group (int step)
     uint64_t       groupsize=0, totalsize;
 
     log ("Write group %d to %s\n", step, FILENAME);
-    adios_open (&fh, (step==1 ? "g2" : "g1"), FILENAME, (step==0 ? "w" : "a"), &comm);
+    adios_open (&fh, (step==1 ? "g2" : "g1"), FILENAME, (step==0 ? "w" : "a"), comm);
     
     groupsize  = sizeof(int);  // a scalar only
 
diff --git a/tests/suite/programs/write_alternate.c b/tests/suite/programs/write_alternate.c
index 9a4eab2..5bc851a 100644
--- a/tests/suite/programs/write_alternate.c
+++ b/tests/suite/programs/write_alternate.c
@@ -120,7 +120,7 @@ int main (int argc, char ** argv)
     MPI_Comm_size (comm, &size);
 
     alloc_vars();
-    adios_init ("write_alternate.xml");
+    adios_init ("write_alternate.xml", comm);
     err = adios_read_init_method(ADIOS_READ_METHOD_BP, comm, "verbose=2");
     if (err) {
         printE ("%s\n", adios_errmsg());
@@ -153,7 +153,7 @@ int write_file (int step)
     uint64_t       groupsize=0, totalsize;
 
     log ("Write step %d to %s\n", step, FILENAME);
-    adios_open (&fh, "abc", FILENAME, (step ? "a" : "w"), &comm);
+    adios_open (&fh, "abc", FILENAME, (step ? "a" : "w"), comm);
     
     groupsize  = 9 * sizeof(int);                           // dimensions 
     groupsize += 3 * sizeof(int);                           // scalars 
@@ -403,8 +403,8 @@ int read_stream ()
     reset_readvars();
 
     log ("Read as stream and check data in %s\n", FILENAME);
-    f = adios_read_open_stream (FILENAME, ADIOS_READ_METHOD_BP, comm,
-                                ADIOS_LOCKMODE_NONE, 0.0);
+    f = adios_read_open (FILENAME, ADIOS_READ_METHOD_BP, comm,
+                         ADIOS_LOCKMODE_NONE, 0.0);
     if (f == NULL) {
         printE ("Error at opening file as stream: %s\n", rank, adios_errmsg());
         return 1;
diff --git a/tests/suite/programs/write_read.c b/tests/suite/programs/write_read.c
index a7c4606..d98469e 100644
--- a/tests/suite/programs/write_read.c
+++ b/tests/suite/programs/write_read.c
@@ -404,7 +404,7 @@ int main (int argc, char ** argv)
     MPI_Comm_size (comm, &size);
 
     init_vars();
-    adios_init ("write_read.xml");
+    adios_init ("write_read.xml", comm);
     err = adios_read_init_method(ADIOS_READ_METHOD_BP, comm, "verbose=2");
     if (err) {
         printE ("%s\n", adios_errmsg());
@@ -432,7 +432,7 @@ int write_file (char *fname)
     int64_t       s;
 
     log ("Write data to %s\n", fname);
-    adios_open (&fh, "alltypes", fname, "w", &comm);
+    adios_open (&fh, "alltypes", fname, "w", comm);
     
     s = 1+2+4+8 + 1+2+4+8 + 4+8 + 8+16; // sizeof different types
     groupsize  = 18*4;                       // dimensions 
diff --git a/tests/suite/reference/global_array_time_read.txt b/tests/suite/reference/global_array_time_read.txt
index 7fbc41f..ae5e983 100644
--- a/tests/suite/reference/global_array_time_read.txt
+++ b/tests/suite/reference/global_array_time_read.txt
@@ -1,9 +1,226 @@
-rank=0: [0,0:9,0:10] = [ [100 101 102 103 104 105 106 107 108 109 ] [110 111 112 113 114 115 116 117 118 119 ] [120 121 122 123 124 125 126 127 128 129 ] [130 131 132 133 134 135 136 137 138 139 ] [140 141 142 143 144 145 146 147 148 149 ] [150 151 152 153 154 155 156 157 158 159 ] [160 161 162 163 164 165 166 167 168 169 ] [170 171 172 173 174 175 176 177 178 179 ] [180 181 182 183 184 185 186 187 188 189 ] ]	
-rank=1: [1,0:9,0:10] = [ [200 201 202 203 204 205 206 207 208 209 ] [210 211 212 213 214 215 216 217 218 219 ] [220 221 222 223 224 225 226 227 228 229 ] [230 231 232 233 234 235 236 237 238 239 ] [240 241 242 243 244 245 246 247 248 249 ] [250 251 252 253 254 255 256 257 258 259 ] [260 261 262 263 264 265 266 267 268 269 ] [270 271 272 273 274 275 276 277 278 279 ] [280 281 282 283 284 285 286 287 288 289 ] ]	
-rank=2: [2,0:9,0:10] = [ [300 301 302 303 304 305 306 307 308 309 ] [310 311 312 313 314 315 316 317 318 319 ] [320 321 322 323 324 325 326 327 328 329 ] [330 331 332 333 334 335 336 337 338 339 ] [340 341 342 343 344 345 346 347 348 349 ] [350 351 352 353 354 355 356 357 358 359 ] [360 361 362 363 364 365 366 367 368 369 ] [370 371 372 373 374 375 376 377 378 379 ] [380 381 382 383 384 385 386 387 388 389 ] ]	
-rank=3: [3,0:9,0:10] = [ [400 401 402 403 404 405 406 407 408 409 ] [410 411 412 413 414 415 416 417 418 419 ] [420 421 422 423 424 425 426 427 428 429 ] [430 431 432 433 434 435 436 437 438 439 ] [440 441 442 443 444 445 446 447 448 449 ] [450 451 452 453 454 455 456 457 458 459 ] [460 461 462 463 464 465 466 467 468 469 ] [470 471 472 473 474 475 476 477 478 479 ] [480 481 482 483 484 485 486 487 488 489 ] ]	
-rank=4: [4,0:9,0:10] = [ [500 501 502 503 504 505 506 507 508 509 ] [510 511 512 513 514 515 516 517 518 519 ] [520 521 522 523 524 525 526 527 528 529 ] [530 531 532 533 534 535 536 537 538 539 ] [540 541 542 543 544 545 546 547 548 549 ] [550 551 552 553 554 555 556 557 558 559 ] [560 561 562 563 564 565 566 567 568 569 ] [570 571 572 573 574 575 576 577 578 579 ] [580 581 582 583 584 585 586 587 588 589 ] ]	
-rank=5: [5,0:9,0:10] = [ [600 601 602 603 604 605 606 607 608 609 ] [610 611 612 613 614 615 616 617 618 619 ] [620 621 622 623 624 625 626 627 628 629 ] [630 631 632 633 634 635 636 637 638 639 ] [640 641 642 643 644 645 646 647 648 649 ] [650 651 652 653 654 655 656 657 658 659 ] [660 661 662 663 664 665 666 667 668 669 ] [670 671 672 673 674 675 676 677 678 679 ] [680 681 682 683 684 685 686 687 688 689 ] ]	
-rank=6: [6,0:9,0:10] = [ [700 701 702 703 704 705 706 707 708 709 ] [710 711 712 713 714 715 716 717 718 719 ] [720 721 722 723 724 725 726 727 728 729 ] [730 731 732 733 734 735 736 737 738 739 ] [740 741 742 743 744 745 746 747 748 749 ] [750 751 752 753 754 755 756 757 758 759 ] [760 761 762 763 764 765 766 767 768 769 ] [770 771 772 773 774 775 776 777 778 779 ] [780 781 782 783 784 785 786 787 788 789 ] ]	
-rank=7: [7,0:9,0:10] = [ [800 801 802 803 804 805 806 807 808 809 ] [810 811 812 813 814 815 816 817 818 819 ] [820 821 822 823 824 825 826 827 828 829 ] [830 831 832 833 834 835 836 837 838 839 ] [840 841 842 843 844 845 846 847 848 849 ] [850 851 852 853 854 855 856 857 858 859 ] [860 861 862 863 864 865 866 867 868 869 ] [870 871 872 873 874 875 876 877 878 879 ] [880 881 882 883 884 885 886 887 888 889 ] ]	
-rank=8: [8,0:9,0:10] = [ [900 901 902 903 904 905 906 907 908 909 ] [910 911 912 913 914 915 916 917 918 919 ] [920 921 922 923 924 925 926 927 928 929 ] [930 931 932 933 934 935 936 937 938 939 ] [940 941 942 943 944 945 946 947 948 949 ] [950 951 952 953 954 955 956 957 958 959 ] [960 961 962 963 964 965 966 967 968 969 ] [970 971 972 973 974 975 976 977 978 979 ] [980 981 982 983 984 985 986 987 988 989 ] ]	
+Array size of temperature [0:9,0:10]
+------------------------------------------------
+rank=0: 
+step 0 = [
+ [100 101 102 103 104 105 106 107 108 109 ]
+ [110 111 112 113 114 115 116 117 118 119 ]
+ [120 121 122 123 124 125 126 127 128 129 ]
+ [130 131 132 133 134 135 136 137 138 139 ]
+ [140 141 142 143 144 145 146 147 148 149 ]
+ [150 151 152 153 154 155 156 157 158 159 ]
+ [160 161 162 163 164 165 166 167 168 169 ]
+ [170 171 172 173 174 175 176 177 178 179 ]
+ [180 181 182 183 184 185 186 187 188 189 ]
+]
+step 1 = [
+ [200 201 202 203 204 205 206 207 208 209 ]
+ [210 211 212 213 214 215 216 217 218 219 ]
+ [220 221 222 223 224 225 226 227 228 229 ]
+ [230 231 232 233 234 235 236 237 238 239 ]
+ [240 241 242 243 244 245 246 247 248 249 ]
+ [250 251 252 253 254 255 256 257 258 259 ]
+ [260 261 262 263 264 265 266 267 268 269 ]
+ [270 271 272 273 274 275 276 277 278 279 ]
+ [280 281 282 283 284 285 286 287 288 289 ]
+]
+
+------------------------------------------------
+rank=1: 
+step 1 = [
+ [200 201 202 203 204 205 206 207 208 209 ]
+ [210 211 212 213 214 215 216 217 218 219 ]
+ [220 221 222 223 224 225 226 227 228 229 ]
+ [230 231 232 233 234 235 236 237 238 239 ]
+ [240 241 242 243 244 245 246 247 248 249 ]
+ [250 251 252 253 254 255 256 257 258 259 ]
+ [260 261 262 263 264 265 266 267 268 269 ]
+ [270 271 272 273 274 275 276 277 278 279 ]
+ [280 281 282 283 284 285 286 287 288 289 ]
+]
+step 2 = [
+ [300 301 302 303 304 305 306 307 308 309 ]
+ [310 311 312 313 314 315 316 317 318 319 ]
+ [320 321 322 323 324 325 326 327 328 329 ]
+ [330 331 332 333 334 335 336 337 338 339 ]
+ [340 341 342 343 344 345 346 347 348 349 ]
+ [350 351 352 353 354 355 356 357 358 359 ]
+ [360 361 362 363 364 365 366 367 368 369 ]
+ [370 371 372 373 374 375 376 377 378 379 ]
+ [380 381 382 383 384 385 386 387 388 389 ]
+]
+
+------------------------------------------------
+rank=2: 
+step 2 = [
+ [300 301 302 303 304 305 306 307 308 309 ]
+ [310 311 312 313 314 315 316 317 318 319 ]
+ [320 321 322 323 324 325 326 327 328 329 ]
+ [330 331 332 333 334 335 336 337 338 339 ]
+ [340 341 342 343 344 345 346 347 348 349 ]
+ [350 351 352 353 354 355 356 357 358 359 ]
+ [360 361 362 363 364 365 366 367 368 369 ]
+ [370 371 372 373 374 375 376 377 378 379 ]
+ [380 381 382 383 384 385 386 387 388 389 ]
+]
+step 3 = [
+ [400 401 402 403 404 405 406 407 408 409 ]
+ [410 411 412 413 414 415 416 417 418 419 ]
+ [420 421 422 423 424 425 426 427 428 429 ]
+ [430 431 432 433 434 435 436 437 438 439 ]
+ [440 441 442 443 444 445 446 447 448 449 ]
+ [450 451 452 453 454 455 456 457 458 459 ]
+ [460 461 462 463 464 465 466 467 468 469 ]
+ [470 471 472 473 474 475 476 477 478 479 ]
+ [480 481 482 483 484 485 486 487 488 489 ]
+]
+
+------------------------------------------------
+rank=3: 
+step 3 = [
+ [400 401 402 403 404 405 406 407 408 409 ]
+ [410 411 412 413 414 415 416 417 418 419 ]
+ [420 421 422 423 424 425 426 427 428 429 ]
+ [430 431 432 433 434 435 436 437 438 439 ]
+ [440 441 442 443 444 445 446 447 448 449 ]
+ [450 451 452 453 454 455 456 457 458 459 ]
+ [460 461 462 463 464 465 466 467 468 469 ]
+ [470 471 472 473 474 475 476 477 478 479 ]
+ [480 481 482 483 484 485 486 487 488 489 ]
+]
+step 4 = [
+ [500 501 502 503 504 505 506 507 508 509 ]
+ [510 511 512 513 514 515 516 517 518 519 ]
+ [520 521 522 523 524 525 526 527 528 529 ]
+ [530 531 532 533 534 535 536 537 538 539 ]
+ [540 541 542 543 544 545 546 547 548 549 ]
+ [550 551 552 553 554 555 556 557 558 559 ]
+ [560 561 562 563 564 565 566 567 568 569 ]
+ [570 571 572 573 574 575 576 577 578 579 ]
+ [580 581 582 583 584 585 586 587 588 589 ]
+]
+
+------------------------------------------------
+rank=4: 
+step 4 = [
+ [500 501 502 503 504 505 506 507 508 509 ]
+ [510 511 512 513 514 515 516 517 518 519 ]
+ [520 521 522 523 524 525 526 527 528 529 ]
+ [530 531 532 533 534 535 536 537 538 539 ]
+ [540 541 542 543 544 545 546 547 548 549 ]
+ [550 551 552 553 554 555 556 557 558 559 ]
+ [560 561 562 563 564 565 566 567 568 569 ]
+ [570 571 572 573 574 575 576 577 578 579 ]
+ [580 581 582 583 584 585 586 587 588 589 ]
+]
+step 5 = [
+ [600 601 602 603 604 605 606 607 608 609 ]
+ [610 611 612 613 614 615 616 617 618 619 ]
+ [620 621 622 623 624 625 626 627 628 629 ]
+ [630 631 632 633 634 635 636 637 638 639 ]
+ [640 641 642 643 644 645 646 647 648 649 ]
+ [650 651 652 653 654 655 656 657 658 659 ]
+ [660 661 662 663 664 665 666 667 668 669 ]
+ [670 671 672 673 674 675 676 677 678 679 ]
+ [680 681 682 683 684 685 686 687 688 689 ]
+]
+
+------------------------------------------------
+rank=5: 
+step 5 = [
+ [600 601 602 603 604 605 606 607 608 609 ]
+ [610 611 612 613 614 615 616 617 618 619 ]
+ [620 621 622 623 624 625 626 627 628 629 ]
+ [630 631 632 633 634 635 636 637 638 639 ]
+ [640 641 642 643 644 645 646 647 648 649 ]
+ [650 651 652 653 654 655 656 657 658 659 ]
+ [660 661 662 663 664 665 666 667 668 669 ]
+ [670 671 672 673 674 675 676 677 678 679 ]
+ [680 681 682 683 684 685 686 687 688 689 ]
+]
+step 6 = [
+ [700 701 702 703 704 705 706 707 708 709 ]
+ [710 711 712 713 714 715 716 717 718 719 ]
+ [720 721 722 723 724 725 726 727 728 729 ]
+ [730 731 732 733 734 735 736 737 738 739 ]
+ [740 741 742 743 744 745 746 747 748 749 ]
+ [750 751 752 753 754 755 756 757 758 759 ]
+ [760 761 762 763 764 765 766 767 768 769 ]
+ [770 771 772 773 774 775 776 777 778 779 ]
+ [780 781 782 783 784 785 786 787 788 789 ]
+]
+
+------------------------------------------------
+rank=6: 
+step 6 = [
+ [700 701 702 703 704 705 706 707 708 709 ]
+ [710 711 712 713 714 715 716 717 718 719 ]
+ [720 721 722 723 724 725 726 727 728 729 ]
+ [730 731 732 733 734 735 736 737 738 739 ]
+ [740 741 742 743 744 745 746 747 748 749 ]
+ [750 751 752 753 754 755 756 757 758 759 ]
+ [760 761 762 763 764 765 766 767 768 769 ]
+ [770 771 772 773 774 775 776 777 778 779 ]
+ [780 781 782 783 784 785 786 787 788 789 ]
+]
+step 7 = [
+ [800 801 802 803 804 805 806 807 808 809 ]
+ [810 811 812 813 814 815 816 817 818 819 ]
+ [820 821 822 823 824 825 826 827 828 829 ]
+ [830 831 832 833 834 835 836 837 838 839 ]
+ [840 841 842 843 844 845 846 847 848 849 ]
+ [850 851 852 853 854 855 856 857 858 859 ]
+ [860 861 862 863 864 865 866 867 868 869 ]
+ [870 871 872 873 874 875 876 877 878 879 ]
+ [880 881 882 883 884 885 886 887 888 889 ]
+]
+
+------------------------------------------------
+rank=7: 
+step 7 = [
+ [800 801 802 803 804 805 806 807 808 809 ]
+ [810 811 812 813 814 815 816 817 818 819 ]
+ [820 821 822 823 824 825 826 827 828 829 ]
+ [830 831 832 833 834 835 836 837 838 839 ]
+ [840 841 842 843 844 845 846 847 848 849 ]
+ [850 851 852 853 854 855 856 857 858 859 ]
+ [860 861 862 863 864 865 866 867 868 869 ]
+ [870 871 872 873 874 875 876 877 878 879 ]
+ [880 881 882 883 884 885 886 887 888 889 ]
+]
+step 8 = [
+ [900 901 902 903 904 905 906 907 908 909 ]
+ [910 911 912 913 914 915 916 917 918 919 ]
+ [920 921 922 923 924 925 926 927 928 929 ]
+ [930 931 932 933 934 935 936 937 938 939 ]
+ [940 941 942 943 944 945 946 947 948 949 ]
+ [950 951 952 953 954 955 956 957 958 959 ]
+ [960 961 962 963 964 965 966 967 968 969 ]
+ [970 971 972 973 974 975 976 977 978 979 ]
+ [980 981 982 983 984 985 986 987 988 989 ]
+]
+
+------------------------------------------------
+rank=8: 
+step 8 = [
+ [900 901 902 903 904 905 906 907 908 909 ]
+ [910 911 912 913 914 915 916 917 918 919 ]
+ [920 921 922 923 924 925 926 927 928 929 ]
+ [930 931 932 933 934 935 936 937 938 939 ]
+ [940 941 942 943 944 945 946 947 948 949 ]
+ [950 951 952 953 954 955 956 957 958 959 ]
+ [960 961 962 963 964 965 966 967 968 969 ]
+ [970 971 972 973 974 975 976 977 978 979 ]
+ [980 981 982 983 984 985 986 987 988 989 ]
+]
+step 9 = [
+ [1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 ]
+ [1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 ]
+ [1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 ]
+ [1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 ]
+ [1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 ]
+ [1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 ]
+ [1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 ]
+ [1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 ]
+ [1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 ]
+]
+
diff --git a/tests/suite/tests/05_global_array_time.sh b/tests/suite/tests/05_global_array_time.sh
index c07418c..9911bc1 100755
--- a/tests/suite/tests/05_global_array_time.sh
+++ b/tests/suite/tests/05_global_array_time.sh
@@ -41,7 +41,7 @@ if [ $? != 0 ]; then
 fi
 
 echo "Run C adios_read_globaltime"
-$MPIRUN $NP_MPIRUN $PROCS ./adios_read_globaltime | sort > c_read.txt
+$MPIRUN $NP_MPIRUN $PROCS ./adios_read_globaltime > c_read.txt
 EX=$?
 if [ $? != 0 ]; then
     echo "ERROR: C version of adios_read_globaltime exited with $EX"
diff --git a/toolchain.cmake b/toolchain.cmake
new file mode 100644
index 0000000..897259f
--- /dev/null
+++ b/toolchain.cmake
@@ -0,0 +1,13 @@
+# Specify the target system (this allows cross-compiling)
+SET(CMAKE_SYSTEM_NAME CRAYXT_COMPUTE_LINUX)  
+
+# specify the cross compiler
+set(CMAKE_C_COMPILER /opt/cray/xt-asyncpe/5.17/bin/cc)
+set(CMAKE_CXX_COMPILER /opt/cray/xt-asyncpe/5.17/bin/CC)
+
+# adjust the default behaviour of the FIND_XXX() commands:
+# search headers and libraries in the target environment, search 
+# programs in the host environment
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
new file mode 100644
index 0000000..26bfef1
--- /dev/null
+++ b/utils/CMakeLists.txt
@@ -0,0 +1,36 @@
+add_subdirectory(gpp)
+add_subdirectory(bpdump)
+add_subdirectory(bp2ascii)
+add_subdirectory(bpsplit)
+add_subdirectory(bpls)
+
+if(BUILD_WRITE)
+  add_subdirectory(adios_lint)
+  add_subdirectory(bp2bp)
+endif(BUILD_WRITE)
+
+if(HAVE_HDF5)
+  add_subdirectory(bp2h5)
+endif(HAVE_HDF5)
+
+if(HAVE_NETCDF)
+  add_subdirectory(bp2ncd)
+endif(HAVE_NETCDF)
+
+add_subdirectory(skel)
+
+
+#find_library(ADIOS_INTERNAL_NOMPI_LIB adios_internal_nompi ${PROJECT_BINARY_DIR}/src)
+#if(${ADIOS_INTERNAL_NOMPI_LIB}-NOTFOUND)
+#  message(STATUS "cannot find adios_internal_nompi.a in ${PROJECT_SOURCE_DIR}/utils")
+#endif(${ADIOS_INTERNAL_NOMPI_LIB}-NOTFOUND)
+
+#find_library(ADIOSREAD_NOMPI_LIB adiosread_nompi ${PROJECT_BINARY_DIR}/src)
+#if(${ADIOSREAD_NOMPI_LIB}-NOTFOUND)
+#  message(STATUS "cannot find adiosread_nompi.a in ${PROJECT_SOURCE_DIR}/utils")
+#endif(${ADIOSREAD_NOMPI_LIB}-NOTFOUND)
+
+#find_library(ADIOS_LIB adios ${PROJECT_BINARY_DIR}/src)
+#if(${ADIOS_LIB}-NOTFOUND)
+#  message(STATUS "cannot find adios.a in ${PROJECT_SOURCE_DIR}/utils makefile")
+#endif(${ADIOS_LIB}-NOTFOUND)
diff --git a/utils/Makefile.in b/utils/Makefile.in
index f6c5a64..a13c5a0 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -43,8 +43,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -156,6 +158,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -178,6 +184,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -203,6 +212,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -259,6 +269,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -320,7 +332,7 @@ SUBDIRS = gpp bpdump bp2ascii bpsplit bpls $(am__append_1) \
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -345,9 +357,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/utils/adios_lint/CMakeLists.txt b/utils/adios_lint/CMakeLists.txt
new file mode 100644
index 0000000..784fb2f
--- /dev/null
+++ b/utils/adios_lint/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src/core)
+include_directories(${PROJECT_SOURCE_DIR}/utils/adios_lint)
+include_directories(${PROJECT_BINARY_DIR})
+link_directories(${PROJECT_BINARY_DIR}/utils/adios_lint)
+
+add_executable(adios_lint adios_lint.c)
+target_link_libraries(adios_lint adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+set_target_properties(adios_lint PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+
+#install(FILES config.xml DESTINATION ${PROJECT_BINARY_DIR}/utils/adios_lint)
+install(PROGRAMS ${CMAKE_BINARY_DIR}/utils/adios_lint/adios_lint DESTINATION ${bindir})
diff --git a/utils/adios_lint/Makefile.in b/utils/adios_lint/Makefile.in
index 555473b..7954aac 100644
--- a/utils/adios_lint/Makefile.in
+++ b/utils/adios_lint/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -141,6 +143,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -163,6 +169,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -188,6 +197,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -244,6 +254,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -312,7 +324,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -337,9 +349,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/bp2ascii/CMakeLists.txt b/utils/bp2ascii/CMakeLists.txt
new file mode 100644
index 0000000..1557df5
--- /dev/null
+++ b/utils/bp2ascii/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/utils/bp2ascii)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src/core)
+include_directories(${PROJECT_BINARY_DIR})
+link_directories(${PROJECT_BINARY_DIR}/utils/bp2ascii)
+
+add_executable(bp2ascii bp2ascii.c)
+target_link_libraries(bp2ascii adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+set_target_properties(bp2ascii PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+
+if(USE_PARALLEL_COMPILER)
+endif(USE_PARALLEL_COMPILER)                             
diff --git a/utils/bp2ascii/Makefile.in b/utils/bp2ascii/Makefile.in
index b8ce71b..ae31010 100644
--- a/utils/bp2ascii/Makefile.in
+++ b/utils/bp2ascii/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -139,6 +141,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -161,6 +167,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -186,6 +195,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -242,6 +252,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -310,7 +322,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -335,9 +347,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/utils/bp2bp/CMakeLists.txt b/utils/bp2bp/CMakeLists.txt
new file mode 100644
index 0000000..995b358
--- /dev/null
+++ b/utils/bp2bp/CMakeLists.txt
@@ -0,0 +1,10 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/utils/bp2bp)
+link_directories(${PROJECT_BINARY_DIR}/utils/bp2bp)
+
+add_executable(bp2bp bp2bp.c)
+target_link_libraries(bp2bp adios ${ADIOSLIB_LDADD})
+set_target_properties(bp2bp PROPERTIES COMPILE_FLAGS "${MACRODEFFLAG}ADIOS_USE_READ_API_1 ${ADIOSLIB_CPPFLAGS} ${ADIOSLIB_CFLAGS} ${ADIOSLIB_EXTRA_CPPFLAGS}")
+
+install(PROGRAMS ${PROJECT_BINARY_DIR}/utils/bp2bp/bp2bp DESTINATION ${bindir})
diff --git a/utils/bp2bp/Makefile.am b/utils/bp2bp/Makefile.am
index 65eadce..8ced2f7 100644
--- a/utils/bp2bp/Makefile.am
+++ b/utils/bp2bp/Makefile.am
@@ -6,7 +6,7 @@ AUTOMAKE_OPTIONS = no-dependencies
 bin_PROGRAMS = bp2bp
 
 bp2bp_SOURCES = bp2bp.c
-bp2bp_CPPFLAGS = -DADIOS_USE_READ_API_1 $(ADIOSLIB_CPPFLAGS) $(ADIOSLIB_CFLAGS) $(ADIOSLIB_EXTRA_CPPFLAGS) 
+bp2bp_CPPFLAGS = ${MACRODEFFLAG}ADIOS_USE_READ_API_1 $(ADIOSLIB_CPPFLAGS) $(ADIOSLIB_CFLAGS) $(ADIOSLIB_EXTRA_CPPFLAGS) 
 bp2bp_LDFLAGS = $(ADIOSLIB_LDFLAGS) 
 bp2bp_LDADD =  $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 
diff --git a/utils/bp2bp/Makefile.in b/utils/bp2bp/Makefile.in
index db09052..1eca5d5 100644
--- a/utils/bp2bp/Makefile.in
+++ b/utils/bp2bp/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -140,6 +142,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -162,6 +168,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -187,6 +196,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -243,6 +253,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -303,14 +315,14 @@ INCLUDES = $(all_includes) -I$(top_builddir)/src \
 	-I$(top_builddir)/src/public
 AUTOMAKE_OPTIONS = no-dependencies
 bp2bp_SOURCES = bp2bp.c
-bp2bp_CPPFLAGS = -DADIOS_USE_READ_API_1 $(ADIOSLIB_CPPFLAGS) $(ADIOSLIB_CFLAGS) $(ADIOSLIB_EXTRA_CPPFLAGS) 
+bp2bp_CPPFLAGS = ${MACRODEFFLAG}ADIOS_USE_READ_API_1 $(ADIOSLIB_CPPFLAGS) $(ADIOSLIB_CFLAGS) $(ADIOSLIB_EXTRA_CPPFLAGS) 
 bp2bp_LDFLAGS = $(ADIOSLIB_LDFLAGS) 
 bp2bp_LDADD = $(top_builddir)/src/libadios.a $(ADIOSLIB_LDADD)
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -335,9 +347,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/bp2bp/bp2bp.c b/utils/bp2bp/bp2bp.c
index 5d34d78..31eb065 100644
--- a/utils/bp2bp/bp2bp.c
+++ b/utils/bp2bp/bp2bp.c
@@ -136,7 +136,7 @@ int main (int argc, char ** argv) {
         end_time[4] = MPI_Wtime();
         total_time[4] = end_time[4]-start_time[4];
     }
-    adios_init_noxml(); // no xml will be used to write the new adios file
+    adios_init_noxml(comm); // no xml will be used to write the new adios file
     read_buffer = atoi(argv[3]);
     write_buffer = atoi(argv[4]);
     adios_allocate_buffer (ADIOS_BUFFER_ALLOC_NOW, write_buffer); // allocate MB buffer
@@ -389,7 +389,7 @@ int main (int argc, char ** argv) {
             if(TIMING==100)
                 start_time[0] = MPI_Wtime();
 
-            adios_open(&m_adios_file, f->group_namelist[gidx],argv[2],"w",&comm);
+            adios_open(&m_adios_file, f->group_namelist[gidx],argv[2],"w",comm);
             adios_group_size( m_adios_file, adios_groupsize, &adios_totalsize);
 
             //get both the total adios_totalsize and total adios_groupsize summed across processes.
diff --git a/utils/bp2h5/CMakeLists.txt b/utils/bp2h5/CMakeLists.txt
new file mode 100644
index 0000000..3f3cd18
--- /dev/null
+++ b/utils/bp2h5/CMakeLists.txt
@@ -0,0 +1,13 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/utils/bp2h5)
+link_directories(${PROJECT_BINARY_DIR}/utils/bp2h5)
+
+add_executable(bp2h5 bp2h5.c)
+if(USE_PARALLEL_COMPILER)
+  target_link_libraries(bp2h5 adiosread ${ADIOSREADLIB_LDADD} ${HDF5_LIBS})
+  set_target_properties(bp2h5 PROPERTIES COMPILE_FLAGS "${MACRODEFFLAG}H5_USE_16_API ${MACRODEFFLAG}ADIOS_USE_READ_API_1 ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_CPPFLAGS} ${ADIOSREADLIB_CFLAGS} ${HDF5_FLAGS}")
+else()
+  target_link_libraries(bp2h5 adiosread_nompi ${ADIOSREADLIB_SEQ_LDADD} ${HDF5_LIBS})
+  set_target_properties(bp2h5 PROPERTIES COMPILE_FLAGS "${MACRODEFFLAG}H5_USE_16_API ${MACRODEFFLAG}ADIOS_USE_READ_API_1 ${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_SEQ_CPPFLAGS} ${HDF5_FLAGS}")
+endif()
diff --git a/utils/bp2h5/Makefile.am b/utils/bp2h5/Makefile.am
index 93c3907..28ffa89 100644
--- a/utils/bp2h5/Makefile.am
+++ b/utils/bp2h5/Makefile.am
@@ -11,7 +11,7 @@ if USE_PARALLEL_COMPILER
 
     CC=$(MPICC)
     CXX=$(MPICXX)
-    bp2h5_CPPFLAGS = -DH5_USE_16_API -DADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS) $(ADIOSREADLIB_CFLAGS) $(HDF5_CPPFLAGS)
+    bp2h5_CPPFLAGS = ${MACRODEFFLAG}H5_USE_16_API ${MACRODEFFLAG}ADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS) $(ADIOSREADLIB_CFLAGS) $(HDF5_CPPFLAGS)
     bp2h5_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)  $(HDF5_LDFLAGS)
     bp2h5_LDADD = $(top_builddir)/src/libadiosread.a
     bp2h5_LDADD += $(ADIOSREADLIB_LDADD)
@@ -19,7 +19,7 @@ if USE_PARALLEL_COMPILER
 
 else
 
-    bp2h5_CPPFLAGS = -DH5_USE_16_API -DADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_SEQ_CPPFLAGS) $(ADIOSREADLIB_SEQ_CFLAGS) $(HDF5_CPPFLAGS)
+    bp2h5_CPPFLAGS = ${MACRODEFFLAG}H5_USE_16_API ${MACRODEFFLAG}ADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_SEQ_CPPFLAGS) $(ADIOSREADLIB_SEQ_CFLAGS) $(HDF5_CPPFLAGS)
     bp2h5_LDFLAGS = $(ADIOSREADLIB_SEQ_LDFLAGS)  $(HDF5_LDFLAGS)
     bp2h5_LDADD = $(top_builddir)/src/libadiosread_nompi.a
     bp2h5_LDADD += $(ADIOSREADLIB_SEQ_LDADD)
diff --git a/utils/bp2h5/Makefile.in b/utils/bp2h5/Makefile.in
index 15d657b..3d36736 100644
--- a/utils/bp2h5/Makefile.in
+++ b/utils/bp2h5/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -144,6 +146,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -166,6 +172,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -191,6 +200,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -247,6 +257,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -307,8 +319,8 @@ INCLUDES = $(all_includes) -I$(top_builddir)/src \
 	-I$(top_builddir)/src/public
 AUTOMAKE_OPTIONS = no-dependencies
 bp2h5_SOURCES = bp2h5.c
- at USE_PARALLEL_COMPILER_FALSE@bp2h5_CPPFLAGS = -DH5_USE_16_API -DADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_SEQ_CPPFLAGS) $(ADIOSREADLIB_SEQ_CFLAGS) $(HDF5_CPPFLAGS)
- at USE_PARALLEL_COMPILER_TRUE@bp2h5_CPPFLAGS = -DH5_USE_16_API -DADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS) $(ADIOSREADLIB_CFLAGS) $(HDF5_CPPFLAGS)
+ at USE_PARALLEL_COMPILER_FALSE@bp2h5_CPPFLAGS = ${MACRODEFFLAG}H5_USE_16_API ${MACRODEFFLAG}ADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_SEQ_CPPFLAGS) $(ADIOSREADLIB_SEQ_CFLAGS) $(HDF5_CPPFLAGS)
+ at USE_PARALLEL_COMPILER_TRUE@bp2h5_CPPFLAGS = ${MACRODEFFLAG}H5_USE_16_API ${MACRODEFFLAG}ADIOS_USE_READ_API_1 $(ADIOSLIB_EXTRA_CPPFLAGS) $(ADIOSREADLIB_CPPFLAGS) $(ADIOSREADLIB_CFLAGS) $(HDF5_CPPFLAGS)
 @USE_PARALLEL_COMPILER_FALSE at bp2h5_LDFLAGS = $(ADIOSREADLIB_SEQ_LDFLAGS)  $(HDF5_LDFLAGS)
 @USE_PARALLEL_COMPILER_TRUE at bp2h5_LDFLAGS = $(ADIOSREADLIB_LDFLAGS)  $(HDF5_LDFLAGS)
 @USE_PARALLEL_COMPILER_FALSE at bp2h5_LDADD = $(top_builddir)/src/libadiosread_nompi.a \
@@ -320,7 +332,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -345,9 +357,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/bp2h5/bp2h5.c b/utils/bp2h5/bp2h5.c
index bdbc42e..24a242c 100644
--- a/utils/bp2h5/bp2h5.c
+++ b/utils/bp2h5/bp2h5.c
@@ -92,7 +92,7 @@ int main (int argc, char ** argv)
 {
     char        filename [256]; 
     int         rank, size, gidx, i, j, k,l;
-    MPI_Comm    comm_dummy = 0;  /* MPI_Comm is defined through adios_read.h */
+    MPI_Comm    comm_dummy = MPI_COMM_WORLD;  /* MPI_Comm is defined through adios_read.h */
     enum ADIOS_DATATYPES attr_type;
     void      * data = NULL;
     uint64_t    start[] = {0,0,0,0,0,0,0,0,0,0};
@@ -114,6 +114,7 @@ int main (int argc, char ** argv)
         return 1;
     }
 
+    MPI_Init(&argc, &argv);
     h5_err = H5Eset_auto(NULL, NULL );
     ADIOS_FILE * f = adios_fopen (argv[1], comm_dummy);
     HDF5_FILE = H5Fcreate(argv[2],H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
@@ -222,6 +223,7 @@ int main (int argc, char ** argv)
     adios_fclose (f);
     h5_err =  H5Fclose(HDF5_FILE);
 
+    MPI_Finalize();
     return 0;
 }
 
diff --git a/utils/bp2ncd/CMakeLists.txt b/utils/bp2ncd/CMakeLists.txt
new file mode 100644
index 0000000..c7bf936
--- /dev/null
+++ b/utils/bp2ncd/CMakeLists.txt
@@ -0,0 +1,21 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src/core)
+include_directories(${PROJECT_SOURCE_DIR}/utils/bp2ncd)
+include_directories(${PROJECT_BINARY_DIR})
+link_directories(${PROJECT_BINARY_DIR}/utils/bp2ncd)
+
+add_executable(bp2ncd bp2ncd.c)
+
+if(USE_PARALLEL_COMPILER)
+  set(bp2ncd_CPPFLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_CPPFLAGS}")
+  set(bp2ncd_CFLAGS "${ADIOSLIB_CFLAGS}")
+  target_link_libraries(bp2ncd adios ${ADIOSLIB_LDADD})
+  set_target_properties(bp2ncd PROPERTIES COMPILE_FLAGS "${bp2ncd_CPPFLAGS} ${bp2ncd_CFLAGS}")
+else(USE_PARALLEL_COMPILER)
+  set(bp2ncd_CPPFLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+  target_link_libraries(bp2ncd adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+  set_target_properties(bp2ncd PROPERTIES COMPILE_FLAGS "${bp2ncd_CPPFLAGS}")
+endif(USE_PARALLEL_COMPILER)
+
+install(FILES bp2ncd.h DESTINATION ${PROJECT_BINARY_DIR}/utils/bp2ncd)
diff --git a/utils/bp2ncd/Makefile.in b/utils/bp2ncd/Makefile.in
index 6d980a1..4450104 100644
--- a/utils/bp2ncd/Makefile.in
+++ b/utils/bp2ncd/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -143,6 +145,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -165,6 +171,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -190,6 +199,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -246,6 +256,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -319,7 +331,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -344,9 +356,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/bpdump/CMakeLists.txt b/utils/bpdump/CMakeLists.txt
new file mode 100644
index 0000000..02aa3d0
--- /dev/null
+++ b/utils/bpdump/CMakeLists.txt
@@ -0,0 +1,11 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/src/core)
+include_directories(${PROJECT_BINARY_DIR})
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+link_directories(${PROJECT_BINARY_DIR}/lib)
+
+add_executable(bpdump bpdump.c)
+target_link_libraries(bpdump adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+set_target_properties(bpdump PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+
+install(PROGRAMS ${CMAKE_BINARY_DIR}/utils/bpdump/bpdump DESTINATION ${bindir})
diff --git a/utils/bpdump/Makefile.in b/utils/bpdump/Makefile.in
index bc3ebb5..7c7972c 100644
--- a/utils/bpdump/Makefile.in
+++ b/utils/bpdump/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -140,6 +142,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -162,6 +168,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -187,6 +196,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -243,6 +253,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -311,7 +323,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -336,9 +348,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/bpdump/bpdump.c b/utils/bpdump/bpdump.c
index b0b7a64..e4f8c3e 100644
--- a/utils/bpdump/bpdump.c
+++ b/utils/bpdump/bpdump.c
@@ -9,6 +9,7 @@
 #include <stdlib.h>
 #include <sys/types.h>
 #include "adios_types.h"
+#include "adios_internals.h"
 #include "adios_transport_hooks.h"
 #include "adios_bp_v1.h"
 #include "bp_utils.h"
@@ -170,7 +171,7 @@ int main (int argc, char ** argv)
     if (version & ADIOS_VERSION_HAVE_SUBFILE)
     {
         printf (DIVIDER);
-        return;
+        return 0;
     }
 
 
@@ -993,7 +994,9 @@ void print_vars_index (struct adios_index_var_struct_v1 * vars_root)
                    ,vars_root->var_name, vars_root->group_name, vars_root->id
                    );
 	}
-        printf ("\tDatatype: %s\n", adios_type_to_string_int (vars_root->type));
+        char * typestr = adios_type_to_string_int (vars_root->type);
+        printf ("\tDatatype: %s\n", typestr);
+        //printf ("\tDatatype: %s\n", adios_type_to_string_int (vars_root->type));
         printf ("\tVars Characteristics: %llu\n"
                ,vars_root->characteristics_count
                );
diff --git a/utils/bpls/CMakeLists.txt b/utils/bpls/CMakeLists.txt
new file mode 100644
index 0000000..87ac92c
--- /dev/null
+++ b/utils/bpls/CMakeLists.txt
@@ -0,0 +1,12 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/utils/bpls)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src/core)
+link_directories(${PROJECT_BINARY_DIR}/utils/bpls)
+
+add_executable(bpls bpls.c)
+target_link_libraries(bpls adiosread_nompi ${ADIOSREADLIB_SEQ_LDADD})
+set_target_properties(bpls PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSREADLIB_SEQ_CPPFLAGS} ${ADIOSREADLIB_SEQ_CFLAGS}")
+
+#install(FILES bpls.h DESTINATION ${PROJECT_BINARY_DIR}/utils/bpls)
+install(PROGRAMS ${CMAKE_BINARY_DIR}/utils/bpls/bpls DESTINATION ${bindir})
diff --git a/utils/bpls/Makefile.in b/utils/bpls/Makefile.in
index 9164fec..f18d9d4 100644
--- a/utils/bpls/Makefile.in
+++ b/utils/bpls/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -138,6 +140,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -160,6 +166,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -185,6 +194,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -241,6 +251,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -310,7 +322,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -335,9 +347,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/bpsplit/CMakeLists.txt b/utils/bpsplit/CMakeLists.txt
new file mode 100644
index 0000000..6c28575
--- /dev/null
+++ b/utils/bpsplit/CMakeLists.txt
@@ -0,0 +1,20 @@
+include_directories(${PROJECT_SOURCE_DIR}/src)
+include_directories(${PROJECT_SOURCE_DIR}/utils/bpsplit)
+include_directories(${PROJECT_SOURCE_DIR}/src/public)
+include_directories(${PROJECT_SOURCE_DIR}/src/core)
+include_directories(${PROJECT_BINARY_DIR})
+link_directories(${PROJECT_BINARY_DIR}/utils/bpsplit)
+
+add_executable(bpsplit bpsplit.c)
+target_link_libraries(bpsplit adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+set_target_properties(bpsplit PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+
+add_executable(bpappend bpappend.c)
+target_link_libraries(bpappend  adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+set_target_properties(bpappend PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+
+add_executable(bpgettime bpgettime.c)
+target_link_libraries(bpgettime adios_internal_nompi ${ADIOSLIB_INT_LDADD})
+set_target_properties(bpgettime PROPERTIES COMPILE_FLAGS "${ADIOSLIB_EXTRA_CPPFLAGS} ${ADIOSLIB_INT_CPPFLAGS} ${ADIOSLIB_INT_CFLAGS}")
+
+install(PROGRAMS ${CMAKE_BINARY_DIR}/utils/bpsplit/bpsplit ${CMAKE_BINARY_DIR}/utils/bpsplit/bpappend ${CMAKE_BINARY_DIR}/utils/bpsplit/bpgettime DESTINATION ${bindir})
diff --git a/utils/bpsplit/Makefile.in b/utils/bpsplit/Makefile.in
index db8328b..db19d9e 100644
--- a/utils/bpsplit/Makefile.in
+++ b/utils/bpsplit/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -156,6 +158,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -178,6 +184,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -203,6 +212,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -259,6 +269,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -337,7 +349,7 @@ all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -362,9 +374,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
diff --git a/utils/gpp/CMakeLists.txt b/utils/gpp/CMakeLists.txt
new file mode 100644
index 0000000..6220b9f
--- /dev/null
+++ b/utils/gpp/CMakeLists.txt
@@ -0,0 +1 @@
+install(PROGRAMS gpp.py ad_config.py type_mapper.py DESTINATION ${bindir})
diff --git a/utils/gpp/Makefile.in b/utils/gpp/Makefile.in
index 81f4c12..98e7902 100644
--- a/utils/gpp/Makefile.in
+++ b/utils/gpp/Makefile.in
@@ -42,8 +42,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -137,6 +139,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -159,6 +165,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -184,6 +193,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -240,6 +250,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -300,7 +312,7 @@ dist_bin_SCRIPTS = gpp.py ad_config.py type_mapper.py
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -325,9 +337,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
diff --git a/utils/skel/CMakeLists.txt b/utils/skel/CMakeLists.txt
new file mode 100644
index 0000000..051d326
--- /dev/null
+++ b/utils/skel/CMakeLists.txt
@@ -0,0 +1,36 @@
+add_subdirectory(etc)
+add_subdirectory(src)
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/lib/skel_have_adios_timing.py.in ${CMAKE_CURRENT_BINARY_DIR}/lib/skel_have_adios_timing.py)
+
+install(PROGRAMS bin/skel bin/set_method.sh bin/skel_extract.py bin/skel_cat.py DESTINATION ${bindir})
+
+install(FILES lib/adios.py 
+	lib/argparse.py 
+	lib/skel_install.py 
+	lib/skel_makefile.py 
+	lib/skel_params.py 
+	lib/skel_settings.py 
+	lib/skel_source.py 
+	lib/skel_submit.py 
+	lib/skel_xml.py 
+	lib/skelconf.py
+	${CMAKE_CURRENT_BINARY_DIR}/lib/skel_have_adios_timing.py 
+	lib/typeMapper.py 
+	DESTINATION ${libdir}/python)
+
+
+install(FILES etc/templates/Makefile.default.tpl
+	etc/templates/submit_sith.tpl
+	etc/templates/submit_jaguar.tpl
+	DESTINATION ${prefix}/etc/skel/templates)
+
+
+#install(FILES etc/settings etc/compiler_fragment.mk
+#	etc/templates/Makefile.default.tpl
+#	etc/templates/submit_jaguar.tpl
+#	etc/templates/submit_sith.tpl
+#	DESTINATION ${PROJECT_BINARY_DIR}/utils/skel)
+
+#install(FILES bin/skel bin/set_method.sh bin/skel_extract.py DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+#install(FILES lib/adios.py lib/argparse.py lib/skel_cat.py lib/skel_install.py lib/skel_makefile.py lib/skel_params.py lib/skel_settings.py lib/skel_source.py lib/skel_submit.py lib/skel_xml.py lib/skelconf.py lib/typeMapper.py DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/python)
diff --git a/utils/skel/Makefile.am b/utils/skel/Makefile.am
index e43d482..b81e75e 100644
--- a/utils/skel/Makefile.am
+++ b/utils/skel/Makefile.am
@@ -1,13 +1,12 @@
-SUBDIRS = etc
+SUBDIRS = etc src
 
-dist_bin_SCRIPTS = bin/skel bin/set_method.sh bin/skel_extract.py
+dist_bin_SCRIPTS = bin/skel bin/set_method.sh bin/skel_extract.py bin/skel_cat.py
 
 pythonlibdir=@libdir@/python
 
 dist_pythonlib_DATA=\
     lib/adios.py \
 	lib/argparse.py \
-    lib/skel_cat.py \
     lib/skel_install.py \
     lib/skel_makefile.py \
     lib/skel_params.py \
@@ -16,17 +15,22 @@ dist_pythonlib_DATA=\
     lib/skel_submit.py \
     lib/skel_xml.py \
     lib/skelconf.py \
+    lib/skel_have_adios_timing.py \
     lib/typeMapper.py 
 
-
 templatedir=@prefix@/etc/skel/templates
 
 dist_template_DATA=\
     etc/templates/Makefile.default.tpl\
 	etc/templates/submit_sith.tpl\
+	etc/templates/submit_nautilus.tpl\
 	etc/templates/submit_jaguar.tpl
 
-EXTRA_DIST=etc/settings etc/compiler_fragment.mk \
+EXTRA_DIST=etc/settings \
            etc/templates/Makefile.default.tpl \
            etc/templates/submit_jaguar.tpl \
-           etc/templates/submit_sith.tpl 
+           etc/templates/submit_sith.tpl \
+           etc/templates/submit_nautilus.tpl \
+           lib/skel_have_adios_timing.py.in
+           ##etc/compiler_fragment.mk 
+
diff --git a/utils/skel/Makefile.in b/utils/skel/Makefile.in
index 1b62a03..8cb0ef8 100644
--- a/utils/skel/Makefile.in
+++ b/utils/skel/Makefile.in
@@ -44,8 +44,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -181,6 +183,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -203,6 +209,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -228,6 +237,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -284,6 +294,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -340,13 +352,12 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = etc
-dist_bin_SCRIPTS = bin/skel bin/set_method.sh bin/skel_extract.py
+SUBDIRS = etc src
+dist_bin_SCRIPTS = bin/skel bin/set_method.sh bin/skel_extract.py bin/skel_cat.py
 pythonlibdir = @libdir@/python
 dist_pythonlib_DATA = \
     lib/adios.py \
 	lib/argparse.py \
-    lib/skel_cat.py \
     lib/skel_install.py \
     lib/skel_makefile.py \
     lib/skel_params.py \
@@ -355,23 +366,27 @@ dist_pythonlib_DATA = \
     lib/skel_submit.py \
     lib/skel_xml.py \
     lib/skelconf.py \
+    lib/skel_have_adios_timing.py \
     lib/typeMapper.py 
 
 templatedir = @prefix@/etc/skel/templates
 dist_template_DATA = \
     etc/templates/Makefile.default.tpl\
 	etc/templates/submit_sith.tpl\
+	etc/templates/submit_nautilus.tpl\
 	etc/templates/submit_jaguar.tpl
 
-EXTRA_DIST = etc/settings etc/compiler_fragment.mk \
+EXTRA_DIST = etc/settings \
            etc/templates/Makefile.default.tpl \
            etc/templates/submit_jaguar.tpl \
-           etc/templates/submit_sith.tpl 
+           etc/templates/submit_sith.tpl \
+           etc/templates/submit_nautilus.tpl \
+           lib/skel_have_adios_timing.py.in
 
 all: all-recursive
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -396,9 +411,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
diff --git a/utils/skel/bin/skel b/utils/skel/bin/skel
index 0a0266b..5059deb 100755
--- a/utils/skel/bin/skel
+++ b/utils/skel/bin/skel
@@ -16,7 +16,7 @@ import skel_install
 import skel_makefile
 import skel_params
 import skel_source
-import skel_dwarf
+#import skel_dwarf
 import skel_submit
 import skel_xml
 
@@ -84,9 +84,9 @@ def main(argv=None):
         skel_source.create_sources (params, config, args.project)
         return 0
 
-    if args.subcommand == 'dwarf':
-        skel_dwarf.create_dwarf (params, config, args.project)
-        return 0
+#    if args.subcommand == 'dwarf':
+#        skel_dwarf.create_dwarf (params, config, args.project)
+#        return 0
 
     if args.subcommand == 'submit':
         skel_submit.generate_submit_scripts (params)
diff --git a/utils/skel/lib/skel_cat.py b/utils/skel/bin/skel_cat.py
similarity index 100%
rename from utils/skel/lib/skel_cat.py
rename to utils/skel/bin/skel_cat.py
diff --git a/utils/skel/bin/skel_extract.py b/utils/skel/bin/skel_extract.py
index d226a79..6b34451 100755
--- a/utils/skel/bin/skel_extract.py
+++ b/utils/skel/bin/skel_extract.py
@@ -13,6 +13,7 @@ def parse_command_line():
     parser.add_argument ('-d', dest='dest', help='file to place the results in')
     parser.add_argument ('-s', dest='select', help='measurement(s) to extract (default = *)')
     parser.add_argument ('-r', dest='ranks', default='0', help='Use -r all to include measurements from all ranks for just one iteration.')
+    parser.add_argument ('-R', dest='generate_R', action="store_true", default=False, help='Extract into a form to be read by R.')
     return parser.parse_args()
 
 
@@ -75,12 +76,88 @@ def extract (skel_output, dest, select, ranks):
     
 
 
+# Hilde's function for extracting to a format understood by the R script
+def extract_R (skel_output, select, ranks):
+ 
+    doc = xml.dom.minidom.parse (skel_output)
+    #if dest == None or dest == '':
+    #    outfile = sys.stdout
+    #else:
+    outfile = open (skel_output+".txt", 'w')
+    #runval=dest.split('.')[0].split('_')[1]
+    #outfile.write ("runid = " +runval +'\n')
+
+    if select == None or select == '':
+        select = '*'
+ 
+
+
+    
+    method = doc.getElementsByTagName('adios_timing')[0].getAttribute('method')
+
+    keys = doc.getElementsByTagName('adios_timing')[0].getAttribute('keys').split(',')
+    tempkeys = []
+    for key in keys:
+        tempkeys.append (key.strip())
+
+    keys = tempkeys
+
+    numcores= doc.getElementsByTagName('adios_timing')[0].getAttribute('cores')
+
+    if select == '*':
+        selected_fields = keys
+    else:
+        selected_fields = select.split(',')
+
+    # check the selected fields
+    for field in selected_fields:
+        if not field in keys:
+            print 'Invalid selection, field ' + field
+            return
+
+    #Print the header
+    header = ''
+    for field in selected_fields:
+        header = header + field
+        header = header +' '
+
+    header = "Iteration "+"Core "+header.rstrip (' ')
+    outfile.write (method + '\n')
+    outfile.write (numcores +'\n')
+    outfile.write (header + '\n')
+    iter = 0
+
+    for st in doc.getElementsByTagName ('adios_timing'):
+
+        #Print the data
+        for proc in st.getElementsByTagName('proc'):
+            if proc.getAttribute ('id') == '0':
+                iter = iter +1
+            data = ''
+            core = proc.getAttribute ('id')
+            vals = proc.getAttribute ('vals').split(',')
+            for field in selected_fields:
+                data = data + vals[keys.index(field)].strip(',')
+            data = str(iter)+" "+ core +" "+ data.rstrip (' ') + '\n'
+            outfile.write (data)
+        if ranks == 'all':
+
+
+            
+            break
+    
+    outfile.close ()
+
+
 
 def main ():
 
 
     args = parse_command_line()
-    extract (args.skel_output, args.dest, args.select, args.ranks)
+    if (args.generate_R):
+        extract_R (args.skel_output, args.select, args.ranks)
+    else:    
+        extract (args.skel_output, args.dest, args.select, args.ranks)
 
 
 
diff --git a/utils/skel/etc/CMakeLists.txt b/utils/skel/etc/CMakeLists.txt
new file mode 100644
index 0000000..e8787e1
--- /dev/null
+++ b/utils/skel/etc/CMakeLists.txt
@@ -0,0 +1,28 @@
+include_directories(${PROJECT_SOURCE_DIR}/utils/skel/etc)
+include_directories(${PROJECT_BINARY_DIR}/utils/skel/etc)
+link_directories(${PROJECT_BINARY_DIR}/utils/skel/etc)
+
+set(etcdir ${prefix}/etc/skel)
+
+#ADD_EXECUTABLE(all compiler_fragment.mk)
+
+#ADD_CUSTOM_TARGET(Dummy ALL)
+
+#add_custom_command(TARGET Dummy
+#        DEPENDS compiler_fragment.mk)
+
+
+add_custom_target(dummy ALL
+    DEPENDS compiler_fragment.mk)
+
+add_custom_command(
+	OUTPUT compiler_fragment.mk
+	COMMAND cat compiler_fragment.tmp | sed -e 's/CMAKE_C_COMPILER:FILEPATH=/CC=/' -e 's/CMAKE_C_FLAGS:STRING=/CFLAGS=/' -e 's/CMAKE_Fortran_COMPILER:FILEPATH=/FC=/' -e 's/CMAKE_Fortran_FLAGS:STRING=/FCFLAGS=/' > compiler_fragment.mk
+	DEPENDS compiler_fragment.tmp)
+
+add_custom_command(
+	OUTPUT compiler_fragment.tmp
+	COMMAND grep -e'^prefix\ =' -e '^CMAKE_C_COMPILER:FILEPATH=' -e'^CMAKE_Fortran_COMPILER:FILEPATH=' -e'^CMAKE_C_FLAGS:STRING=' -e'^CMAKE_Fortran_FLAGS:STRING='  < ${PROJECT_BINARY_DIR}/CMakeCache.txt > compiler_fragment.tmp
+	DEPENDS ${PROJECT_BINARY_DIR}/CMakeCache.txt)
+
+install(FILES ${PROJECT_BINARY_DIR}/utils/skel/etc/compiler_fragment.mk settings DESTINATION ${etcdir})
diff --git a/utils/skel/etc/Makefile.in b/utils/skel/etc/Makefile.in
index 5e4657c..f1b989c 100644
--- a/utils/skel/etc/Makefile.in
+++ b/utils/skel/etc/Makefile.in
@@ -41,8 +41,10 @@ am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -136,6 +138,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -158,6 +164,9 @@ FC = @MPIFC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -183,6 +192,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -239,6 +249,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -303,7 +315,7 @@ etc_DATA = \
 all: all-am
 
 .SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -328,9 +340,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
 
diff --git a/utils/skel/etc/compiler_fragment.mk b/utils/skel/etc/compiler_fragment.mk
deleted file mode 100644
index 342514c..0000000
--- a/utils/skel/etc/compiler_fragment.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-CC = mpicc
-CFLAGS = -g -fPIC
-FC = mpif90
-FCFLAGS = -g
-FCLIBS =  -L/autofs/na1_compilers/pgi/rhel6-x86_64/12.8/linux86-64/12.8/lib -L/usr/lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.6 -lpgmp -lnuma -lpthread -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lrt -lm
-LDFLAGS =  
-prefix = /ccs/proj/e2e/pnorbert/ADIOS/sith.pgi
diff --git a/utils/skel/etc/templates/Makefile.default.tpl b/utils/skel/etc/templates/Makefile.default.tpl
index d8d4549..76518ae 100644
--- a/utils/skel/etc/templates/Makefile.default.tpl
+++ b/utils/skel/etc/templates/Makefile.default.tpl
@@ -8,7 +8,7 @@ ADIOS_DIR=`adios_config -d`
 LDFLAGS += `adios_config -l`
 CFLAGS += `adios_config -c`
 FCFLAGS += `adios_config -fc`          
-FCLIBS += `adios_config -fl`
+FCLIBS += `adios_config -fl` -L${ADIOS_DIR}/lib/skel -lskel
                
 APP=$$APP$$
 CTESTS=$$CTESTS$$
@@ -37,7 +37,6 @@ deploy:
 	cp $(prefix)/bin/set_method.sh $(DEST_DIR)
 	cp $(prefix)/bin/skel_cat.py $(DEST_DIR)
 
-
 clean:
 	rm -f *.c
 	rm -f *.f90
diff --git a/utils/skel/etc/templates/submit_jaguar.tpl b/utils/skel/etc/templates/submit_jaguar.tpl
index b25394e..637c4b4 100644
--- a/utils/skel/etc/templates/submit_jaguar.tpl
+++ b/utils/skel/etc/templates/submit_jaguar.tpl
@@ -2,7 +2,7 @@
 # Submission script for the $$TARGET$$ target
 
 
-#PBS -A stf006
+#PBS -A $$ACCOUNT$$
 #PBS -N $$JOB_NAME$$
 #PBS -j oe
 #PBS -l walltime=$$WALLTIME$$,size=$$CORES_TOTAL$$16$$
diff --git a/utils/skel/etc/templates/submit_sith.tpl b/utils/skel/etc/templates/submit_nautilus.tpl
similarity index 57%
copy from utils/skel/etc/templates/submit_sith.tpl
copy to utils/skel/etc/templates/submit_nautilus.tpl
index 479bf5d..03dec75 100644
--- a/utils/skel/etc/templates/submit_sith.tpl
+++ b/utils/skel/etc/templates/submit_nautilus.tpl
@@ -2,11 +2,15 @@
 # Submission script for the $$TARGET$$ target
 # To make changes to this file, edit the appropriate submit_<target>.tpl file in ~/.skel/templates/
 
-#PBS -A stf006
+#PBS -A $$ACCOUNT$$
 #PBS -N $$JOB_NAME$$
 #PBS -j oe
-#PBS -l walltime=$$WALLTIME$$,nodes=$$NODES_TOTAL$$32$$:ppn=32
-#PBS -l gres=widow2
+#PBS -l walltime=$$WALLTIME$$,ncpus=$$CORES_TOTAL$$1$$
+
+##PBS -W depend=afterany:
+
+#Kludge to get around wrong python version on compute nodes
+export PYTHONPATH=../..:$PYTHONPATH
 
 cd $PBS_O_WORKDIR
 
@@ -18,8 +22,8 @@ do
 echo $$METHOD$$
 $$PRE_RM$$
 ./set_method.sh $$METHOD$$ $$APP$$_skel.xml.in $$APP$$_skel.xml 
-mpirun -n $$CORES_USED$$ ./$$EXEC$$
-./skel_cat.py $$APP$$_skel_time.xml $$APP$$_skel_time_${PBS_JOBID}.xml
+mpiexec ./$$EXEC$$
+mv $$APP$$_skel_time.xml $$APP$$_skel_time_${PBS_JOBID}_${i}.xml
 $$POST_RM$$
 done
 
diff --git a/utils/skel/etc/templates/submit_sith.tpl b/utils/skel/etc/templates/submit_sith.tpl
index 479bf5d..e503a4a 100644
--- a/utils/skel/etc/templates/submit_sith.tpl
+++ b/utils/skel/etc/templates/submit_sith.tpl
@@ -2,7 +2,7 @@
 # Submission script for the $$TARGET$$ target
 # To make changes to this file, edit the appropriate submit_<target>.tpl file in ~/.skel/templates/
 
-#PBS -A stf006
+#PBS -A $$ACCOUNT$$
 #PBS -N $$JOB_NAME$$
 #PBS -j oe
 #PBS -l walltime=$$WALLTIME$$,nodes=$$NODES_TOTAL$$32$$:ppn=32
@@ -19,7 +19,7 @@ echo $$METHOD$$
 $$PRE_RM$$
 ./set_method.sh $$METHOD$$ $$APP$$_skel.xml.in $$APP$$_skel.xml 
 mpirun -n $$CORES_USED$$ ./$$EXEC$$
-./skel_cat.py $$APP$$_skel_time.xml $$APP$$_skel_time_${PBS_JOBID}.xml
+mv $$APP$$_skel_time.xml $$APP$$_skel_time_${PBS_JOBID}_${i}.xml
 $$POST_RM$$
 done
 
diff --git a/utils/skel/lib/skel_have_adios_timing.py b/utils/skel/lib/skel_have_adios_timing.py
new file mode 100644
index 0000000..2ab33b0
--- /dev/null
+++ b/utils/skel/lib/skel_have_adios_timing.py
@@ -0,0 +1 @@
+skel_have_adios_timing = False
diff --git a/utils/skel/lib/skel_have_adios_timing.py.in b/utils/skel/lib/skel_have_adios_timing.py.in
new file mode 100644
index 0000000..686a0af
--- /dev/null
+++ b/utils/skel/lib/skel_have_adios_timing.py.in
@@ -0,0 +1 @@
+skel_have_adios_timing = @SKEL_HAVE_ADIOS_TIMING@
diff --git a/utils/skel/lib/skel_makefile.py b/utils/skel/lib/skel_makefile.py
index 0455ad7..b43bb07 100644
--- a/utils/skel/lib/skel_makefile.py
+++ b/utils/skel/lib/skel_makefile.py
@@ -27,7 +27,9 @@ def generate_makefiles_fortran (params):
 
     makefile = open ('Makefile', 'w')
 
-    makefile_template_name = '~/.skel/templates/Makefile.' + platform + '.tpl'
+    # Makefile generation no longer depends on the target, just using default here.
+    #makefile_template_name = '~/.skel/templates/Makefile.' + platform + '.tpl'
+    makefile_template_name = '~/.skel/templates/Makefile.default.tpl'
     makefile_template = open(os.path.expanduser(makefile_template_name), 'r')
 
     include_statement = "" + os.path.dirname (sys.argv[0]) + '/../etc/skel/compiler_fragment.mk'
@@ -39,7 +41,6 @@ def generate_makefiles_fortran (params):
         template_line = template_line.replace ('$$INCLUDE$$', include_statement)
         template_line = template_line.replace ('$$TARGET$$', platform)
         template_line = template_line.replace ('$$DEPLOY_DIR$$', settings.get_deploy_dir())
-        template_line = template_line.replace ('$$SKEL_HOME$$', settings.get_skel_home())
         template_line = template_line.replace ('$$CORES_USED$$', '%d'%params.get_batches()[0].get_cores())
 
         if '$$CTESTS$$' in template_line:
@@ -67,7 +68,9 @@ def generate_makefiles_c (params):
 
     makefile = open ('Makefile', 'w')
 
-    makefile_template_name = os.path.dirname (sys.argv[0]) + '/../etc/skel/templates/Makefile.' + platform + '.tpl'
+    # Makefile generation no longer depends on the target, just using default here.
+    #makefile_template_name = os.path.dirname (sys.argv[0]) + '/../etc/skel/templates/Makefile.' + platform + '.tpl'
+    makefile_template_name = os.path.dirname (sys.argv[0]) + '/../etc/skel/templates/Makefile.default.tpl'
     makefile_template = open(os.path.expanduser(makefile_template_name), 'r')
 
     include_statement = "" + os.path.dirname (sys.argv[0]) + '/../etc/skel/compiler_fragment.mk'
@@ -80,9 +83,6 @@ def generate_makefiles_c (params):
         template_line = template_line.replace ('$$TARGET$$', platform)
         template_line = template_line.replace ('$$DEPLOY_DIR$$', settings.get_deploy_dir())
 
-        #skel_home makes no sense in ADIOS release
-        #template_line = template_line.replace ('$$SKEL_HOME$$', settings.get_skel_home())
-
         template_line = template_line.replace ('$$CORES_USED$$', '%d'%params.get_batches()[0].get_cores())
 
         if '$$FTESTS$$' in template_line:
diff --git a/utils/skel/lib/skel_settings.py b/utils/skel/lib/skel_settings.py
index 7317e48..4f172c0 100644
--- a/utils/skel/lib/skel_settings.py
+++ b/utils/skel/lib/skel_settings.py
@@ -27,8 +27,8 @@ class skel_settings:
 
 
 
-    def get_skel_home (self):
-        return self.settings_dict['skel_home']
+#    def get_skel_home (self):
+#        return self.settings_dict['skel_home']
 
     def get_deploy_dir (self):
         return self.settings_dict['deploy_dir']
@@ -37,10 +37,12 @@ class skel_settings:
     def get_submit_target (self):
         t = self.settings_dict['submit_target']
         if t == None or t == '':
-            return "jaguar"
+            return "sith"
         else:
             return t
 
+    def get_account (self):
+        return self.settings_dict['account']
 
     def get_settings_dict (self):
         return self.settings_dict
diff --git a/utils/skel/lib/skel_source.py b/utils/skel/lib/skel_source.py
index d9e1447..88c5cc7 100644
--- a/utils/skel/lib/skel_source.py
+++ b/utils/skel/lib/skel_source.py
@@ -42,6 +42,7 @@ def generate_c_write (outfile, config, params, test):
         # Generate includes
         c_file.write ('\n#include "adios.h"')
         c_file.write ('\n#include "mpi.h"')
+        c_file.write ('\n#include "skel/skel_xml_output.h"')
         c_file.write ('\n#include <stdlib.h>')
         c_file.write ('\n#include <stdio.h>')
 
@@ -120,7 +121,7 @@ def generate_c_write (outfile, config, params, test):
 
         c_file.write ('\nMPI_Comm comm = MPI_COMM_WORLD;')
 
-        c_file.write ('\nadios_open(&adios_handle, "' + g.get_name() + '", "out_' + test.get_group_name() + '_' + test.get_type() + '.bp", "w", &comm);')
+        c_file.write ('\nadios_open(&adios_handle, "' + g.get_name() + '", "out_' + test.get_group_name() + '_' + test.get_type() + '.bp", "w", comm);')
 
         #end timing
         c_file.write ('\nskel_open_timer += MPI_Wtime();')
@@ -165,7 +166,12 @@ def generate_c_write (outfile, config, params, test):
         # In future we can gather and output all of the times to see variability
         c_file.write ('\n\n// Output results')
 
-        c_file.write ('\n\n adios_timing_write_xml (adios_handle, "' + params.get_application() + '_skel_time.xml");')
+        if measure.use_adios_timing():
+
+            c_file.write ('\n\n adios_timing_write_xml (adios_handle, "' + params.get_application() + '_skel_time.xml");')
+
+        else:
+            c_file.write ('\n\n skel_write_coarse_xml_data ();')
 
 
         c_file.write ('\ndouble skel_total_init, skel_total_open, skel_total_access, skel_total_close, skel_total_total;')
@@ -183,8 +189,19 @@ def generate_c_write (outfile, config, params, test):
 #            c_file.write ('\nskel_total_close = skel_close_timer;')
 #            c_file.write ('\nskel_total_total = skel_total_timer;')
 
-        if measure.report_all():
-            pass
+
+
+# Need to check whether A, compiled with timing support, and B, timing enabled.
+# If A and B, skip other reporting and use adios_timing, otherwise produce xml here.
+
+
+
+        if measure.use_adios_timing():
+            print "Use adios timing"
+        else:
+            print "Don't use adios timing"
+
+
             # Detailed reporting disabled, use adios timing instead.
 
             #c_file.write ('\n    fprintf (stdout, "rank, %i, open: %f, access %f, close %f, total %f\\n", skel_mpi_rank, skel_open_timer, skel_access_timer, skel_close_timer, skel_total_timer);')
@@ -313,7 +330,7 @@ def generate_fortran_write (outfile, config, params, test):
         f_file.write ('\n  call MPI_BARRIER (MPI_COMM_WORLD, error)')
         f_file.write ('\n  skel_init_timer = skel_init_timer - MPI_Wtime();')
 
-        f_file.write ('\n\n  call adios_init ("' + config.get_filename() + '", adios_error)')
+        f_file.write ('\n\n  call adios_init ("' + config.get_filename() + '", MPI_COMM_WORLD, adios_error)')
 
         f_file.write ('\n  skel_init_timer = skel_init_timer + MPI_WTIME();')
 
@@ -415,7 +432,9 @@ def generate_fortran_write (outfile, config, params, test):
 
         if measure.use_adios_timing():
             f_file.write ('\n\n  call adios_timing_write_xml (adios_handle, "' + params.get_application() + '_skel_time.xml")')
-
+        else:
+            f_file.write ('\n\n  call skel_write_coarse_xml_data_f (skel_open_timer, skel_access_timer, skel_close_timer, skel_total_timer)')
+            
         if measure.use_reduce():
             f_file.write ('\n\n  call MPI_Reduce (skel_init_timer, skel_total_init, 1, MPI_DOUBLE_PRECISION, MPI_MAX, 0, MPI_COMM_WORLD, error)')
             f_file.write ('\n  call MPI_Reduce (skel_open_timer, skel_total_open, 1, MPI_DOUBLE_PRECISION, MPI_MAX, 0, MPI_COMM_WORLD, error)')
@@ -429,8 +448,6 @@ def generate_fortran_write (outfile, config, params, test):
             f_file.write ('\n  skel_total_close = skel_close_timer')
             f_file.write ('\n  skel_total_total = skel_total_timer')
 
-        if measure.report_all():
-            pass
             # All rank reporting disabled for skel, use ADIOS timing library instead.
 
             #f_file.write ('\n    fprintf (stdout, "rank, %i, open: %f, access %f, close %f, total %f\\n", skel_mpi_rank, skel_open_timer, skel_access_timer, skel_close_timer, skel_total_timer);')
@@ -482,6 +499,7 @@ def generate_fortran_write (outfile, config, params, test):
     # end: generate_fortran_write
 
 
+# Needs to be updated to use new read API
 def generate_c_read_all (outfile, config, params, test):
 
     outfile = outfile.replace ('.c', '_read_all.c')
@@ -509,7 +527,7 @@ def generate_c_read_all (outfile, config, params, test):
         c_file.write ('\n{')
 
         c_file.write ('\n\nMPI_Init (&argc, &argv);')
-        c_file.write ('\nadios_init ("' + config.get_filename() + '");')
+        c_file.write ('\nadios_init ("' + config.get_filename() + '", MPI_COMM_WORLD);')
 
         c_file.write ('\nint skel_mpi_size, skel_mpi_rank, skel_i;')
         c_file.write ('\nMPI_Comm_rank (MPI_COMM_WORLD, &skel_mpi_rank);')
diff --git a/utils/skel/lib/skel_submit.py b/utils/skel/lib/skel_submit.py
index c0194cb..5e6569a 100644
--- a/utils/skel/lib/skel_submit.py
+++ b/utils/skel/lib/skel_submit.py
@@ -12,6 +12,9 @@ import skel_settings
 # be two types of replacement, simple variables, and macros (for the
 # tests)
 def generate_submit_scripts (params):
+
+    settings = skel_settings.skel_settings()
+
     for batch in params.get_batches():
         #platform = params.get_target()
         settings = skel_settings.skel_settings()
@@ -33,14 +36,14 @@ def generate_submit_scripts (params):
                     j = template_start_index
                     template_line = template_lines[j]
                     while not '$$END_TEST$$' in template_line:
-                        sfile.write (submit_line_template_replace (template_line, params, batch, test))
+                        sfile.write (submit_line_template_replace (template_line, params, batch, test, settings))
                         j = j + 1
                         template_line = template_lines[j]
                     # Point at the first line after the macro
                     i = j + 1
             else:
                 # Fill in any replacement vars in this line...
-                template_line = submit_line_template_replace (template_line, params, batch, None)
+                template_line = submit_line_template_replace (template_line, params, batch, None, settings)
                 sfile.write (template_line)
                 i = i + 1
 
@@ -51,13 +54,14 @@ def generate_submit_scripts (params):
 import re
 import math
 
-def submit_line_template_replace (template_line, params, batch, test):
+def submit_line_template_replace (template_line, params, batch, test, settings):
 
     template_line = template_line.replace ('$$JOB_NAME$$', batch.get_name() + '_%d'%batch.get_cores() + '_skel_' + params.get_application() )
     template_line = template_line.replace ('$$WALLTIME$$', batch.get_walltime() )
     template_line = template_line.replace ('$$APP$$', params.get_application() )
     template_line = template_line.replace ('$$CORES_USED$$', '%d'%batch.get_cores() )
     template_line = template_line.replace ('$$TARGET$$', params.get_target() )
+    template_line = template_line.replace ('$$ACCOUNT$$', settings.get_account() )
 
     if test != None:
 
diff --git a/utils/skel/lib/skelconf.py b/utils/skel/lib/skelconf.py
index 9771226..2cda422 100644
--- a/utils/skel/lib/skelconf.py
+++ b/utils/skel/lib/skelconf.py
@@ -1,6 +1,7 @@
 import xml.dom.minidom
 
 import skel_settings
+import skel_have_adios_timing
 
 
 class skelConfig:
@@ -209,10 +210,10 @@ class measure:
 
     def use_adios_timing (self):
         val = self.settings_dict["use_adios_timing"]
-        if val =="no":
-            return False 
+        if val =="yes" and skel_have_adios_timing.skel_have_adios_timing == True:
+            return True 
 
-        return True
+        return False
 
     def use_sleep_before_open (self):
         val = self.settings_dict["sleep_before_open"]
diff --git a/utils/skel/src/CMakeLists.txt b/utils/skel/src/CMakeLists.txt
new file mode 100644
index 0000000..8c500d8
--- /dev/null
+++ b/utils/skel/src/CMakeLists.txt
@@ -0,0 +1,12 @@
+include_directories(${PROJECT_SOURCE_DIR}/utils/skel/src)
+include_directories(${PROJECT_BINARY_DIR})
+link_directories(${PROJECT_BINARY_DIR}/utils/skel/src)
+
+if(BUILD_FORTRAN)
+  add_library(skel STATIC skel_xml_output.c skel_xml_output_f.c)
+else()
+  add_library(skel STATIC skel_xml_output.c)
+endif(BUILD_FORTRAN)
+
+install(FILES skel_xml_output.h DESTINATION ${includedir}/skel)
+install(FILES ${PROJECT_BINARY_DIR}/utils/skel/src/libskel.a DESTINATION ${libdir})
diff --git a/utils/skel/src/Makefile.am b/utils/skel/src/Makefile.am
new file mode 100644
index 0000000..a0a1c85
--- /dev/null
+++ b/utils/skel/src/Makefile.am
@@ -0,0 +1,15 @@
+
+CLEANFILES = *.o
+CC=$(MPICC)
+
+
+lib_LIBRARIES = libskel.a
+libskel_a_SOURCES = skel_xml_output.c
+
+if BUILD_FORTRAN
+libskel_a_SOURCES += skel_xml_output_f.c
+endif
+
+library_includedir=$(includedir)/skel
+library_include_HEADERS = skel_xml_output.h
+
diff --git a/examples/C/global-array-time/Makefile.in b/utils/skel/src/Makefile.in
similarity index 68%
copy from examples/C/global-array-time/Makefile.in
copy to utils/skel/src/Makefile.in
index 7436071..4f127f1 100644
--- a/examples/C/global-array-time/Makefile.in
+++ b/utils/skel/src/Makefile.in
@@ -15,6 +15,7 @@
 
 @SET_MAKE@
 
+
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -34,19 +35,19 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = adios_globaltime$(EXEEXT) \
-	adios_globaltime_no_xml$(EXEEXT) \
-	adios_read_globaltime$(EXEEXT) \
-	adios_read_globaltime_streaming$(EXEEXT)
-subdir = examples/C/global-array-time
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ at BUILD_FORTRAN_TRUE@am__append_1 = skel_xml_output_f.c
+subdir = utils/skel/src
+DIST_COMMON = $(library_include_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/config/ac_cray_pmi.m4 \
 	$(top_srcdir)/config/ac_cray_ugni.m4 \
 	$(top_srcdir)/config/ac_dataspaces.m4 \
 	$(top_srcdir)/config/ac_datatap.m4 \
+	$(top_srcdir)/config/ac_dcmf.m4 \
 	$(top_srcdir)/config/ac_dimes.m4 \
 	$(top_srcdir)/config/ac_dmalloc.m4 \
+	$(top_srcdir)/config/ac_flexpath.m4 \
 	$(top_srcdir)/config/ac_hdf5.m4 \
 	$(top_srcdir)/config/ac_infiniband.m4 \
 	$(top_srcdir)/config/ac_lustre.m4 \
@@ -66,45 +67,41 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-am_adios_globaltime_OBJECTS = adios_globaltime.$(OBJEXT)
-adios_globaltime_OBJECTS = $(am_adios_globaltime_OBJECTS)
-am__DEPENDENCIES_1 =
-adios_globaltime_DEPENDENCIES = $(top_builddir)/src/libadios.a \
-	$(am__DEPENDENCIES_1)
-adios_globaltime_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(adios_globaltime_LDFLAGS) $(LDFLAGS) -o $@
-am_adios_globaltime_no_xml_OBJECTS =  \
-	adios_globaltime_no_xml.$(OBJEXT)
-adios_globaltime_no_xml_OBJECTS =  \
-	$(am_adios_globaltime_no_xml_OBJECTS)
-adios_globaltime_no_xml_DEPENDENCIES = $(top_builddir)/src/libadios.a \
-	$(am__DEPENDENCIES_1)
-adios_globaltime_no_xml_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(adios_globaltime_no_xml_LDFLAGS) $(LDFLAGS) -o $@
-am_adios_read_globaltime_OBJECTS =  \
-	adios_read_globaltime-adios_read_globaltime.$(OBJEXT)
-adios_read_globaltime_OBJECTS = $(am_adios_read_globaltime_OBJECTS)
-adios_read_globaltime_DEPENDENCIES =  \
-	$(top_builddir)/src/libadiosread.a $(am__DEPENDENCIES_1)
-adios_read_globaltime_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(adios_read_globaltime_LDFLAGS) $(LDFLAGS) -o $@
-am_adios_read_globaltime_streaming_OBJECTS =  \
-	adios_read_globaltime_streaming.$(OBJEXT)
-adios_read_globaltime_streaming_OBJECTS =  \
-	$(am_adios_read_globaltime_streaming_OBJECTS)
-adios_read_globaltime_streaming_DEPENDENCIES =  \
-	$(top_builddir)/src/libadiosread.a $(am__DEPENDENCIES_1)
-adios_read_globaltime_streaming_LINK = $(LIBTOOL) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(AM_CFLAGS) $(CFLAGS) \
-	$(adios_read_globaltime_streaming_LDFLAGS) $(LDFLAGS) -o $@
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)" \
+	"$(DESTDIR)$(library_includedir)"
+LIBRARIES = $(lib_LIBRARIES)
+ARFLAGS = cru
+libskel_a_AR = $(AR) $(ARFLAGS)
+libskel_a_LIBADD =
+am__libskel_a_SOURCES_DIST = skel_xml_output.c skel_xml_output_f.c
+ at BUILD_FORTRAN_TRUE@am__objects_1 = skel_xml_output_f.$(OBJEXT)
+am_libskel_a_OBJECTS = skel_xml_output.$(OBJEXT) $(am__objects_1)
+libskel_a_OBJECTS = $(am_libskel_a_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp =
-am__depfiles_maybe =
+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) \
@@ -114,14 +111,9 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(adios_globaltime_SOURCES) \
-	$(adios_globaltime_no_xml_SOURCES) \
-	$(adios_read_globaltime_SOURCES) \
-	$(adios_read_globaltime_streaming_SOURCES)
-DIST_SOURCES = $(adios_globaltime_SOURCES) \
-	$(adios_globaltime_no_xml_SOURCES) \
-	$(adios_read_globaltime_SOURCES) \
-	$(adios_read_globaltime_streaming_SOURCES)
+SOURCES = $(libskel_a_SOURCES)
+DIST_SOURCES = $(am__libskel_a_SOURCES_DIST)
+HEADERS = $(library_include_HEADERS)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -173,6 +165,10 @@ CYGPATH_W = @CYGPATH_W@
 DATASPACES_CPPFLAGS = @DATASPACES_CPPFLAGS@
 DATASPACES_LDFLAGS = @DATASPACES_LDFLAGS@
 DATASPACES_LIBS = @DATASPACES_LIBS@
+DCMF_CFLAGS = @DCMF_CFLAGS@
+DCMF_CPPFLAGS = @DCMF_CPPFLAGS@
+DCMF_LDFLAGS = @DCMF_LDFLAGS@
+DCMF_LIBS = @DCMF_LIBS@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DIMES_CPPFLAGS = @DIMES_CPPFLAGS@
@@ -195,6 +191,9 @@ FC = @FC@
 FCFLAGS = @FCFLAGS@
 FCLIBS = @FCLIBS@
 FGREP = @FGREP@
+FP_CPPFLAGS = @FP_CPPFLAGS@
+FP_LDFLAGS = @FP_LDFLAGS@
+FP_LIBS = @FP_LIBS@
 GREP = @GREP@
 HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
 HDF5_LDFLAGS = @HDF5_LDFLAGS@
@@ -220,6 +219,7 @@ LUSTRE_CPPFLAGS = @LUSTRE_CPPFLAGS@
 LUSTRE_LDFLAGS = @LUSTRE_LDFLAGS@
 LUSTRE_LIBS = @LUSTRE_LIBS@
 MACRODEFFLAG = @MACRODEFFLAG@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MPICC = @MPICC@
@@ -276,6 +276,8 @@ RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
+SKEL_HAVE_ADIOS_TIMING = @SKEL_HAVE_ADIOS_TIMING@
+SKEL_TIMING = @SKEL_TIMING@
 STRIP = @STRIP@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -332,33 +334,16 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-INCLUDES = $(all_includes) -I$(top_builddir)/src \
-	-I$(top_builddir)/src/public
-AUTOMAKE_OPTIONS = no-dependencies
-adios_globaltime_SOURCES = adios_globaltime.c
-adios_globaltime_LDADD = $(top_builddir)/src/libadios.a \
-	$(ADIOSLIB_LDADD)
-adios_globaltime_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_globaltime_no_xml_SOURCES = adios_globaltime_no_xml.c
-adios_globaltime_no_xml_LDADD = $(top_builddir)/src/libadios.a \
-	$(ADIOSLIB_LDADD)
-adios_globaltime_no_xml_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_globaltime_SOURCES = adios_read_globaltime.c
-adios_read_globaltime_CPPFLAGS = -DADIOS_USE_READ_API_1
-adios_read_globaltime_LDADD = $(top_builddir)/src/libadiosread.a \
-	$(ADIOSLIB_LDADD)
-adios_read_globaltime_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-adios_read_globaltime_streaming_SOURCES = adios_read_globaltime_streaming.c
-adios_read_globaltime_streaming_LDADD =  \
-	$(top_builddir)/src/libadiosread.a $(ADIOSLIB_LDADD)
-adios_read_globaltime_streaming_LDFLAGS = $(ADIOSLIB_LDFLAGS)
-CLEANFILES = *.bp
-EXTRA_DIST = adios_globaltime.xml gread_restart.ch gwrite_restart.ch job.pbs
+CLEANFILES = *.o
+lib_LIBRARIES = libskel.a
+libskel_a_SOURCES = skel_xml_output.c $(am__append_1)
+library_includedir = $(includedir)/skel
+library_include_HEADERS = skel_xml_output.h
 all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -367,9 +352,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/C/global-array-time/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu utils/skel/src/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu examples/C/global-array-time/Makefile
+	  $(AUTOMAKE) --gnu utils/skel/src/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -383,32 +368,47 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+install-libLIBRARIES: $(lib_LIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(INSTALL_DATA) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(INSTALL_DATA) $$list2 "$(DESTDIR)$(libdir)" || exit $$?; }
+	@$(POST_INSTALL)
+	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  if test -f $$p; then \
+	    $(am__strip_dir) \
+	    echo " ( cd '$(DESTDIR)$(libdir)' && $(RANLIB) $$f )"; \
+	    ( cd "$(DESTDIR)$(libdir)" && $(RANLIB) $$f ) || exit $$?; \
+	  else :; fi; \
+	done
 
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-adios_globaltime$(EXEEXT): $(adios_globaltime_OBJECTS) $(adios_globaltime_DEPENDENCIES) 
-	@rm -f adios_globaltime$(EXEEXT)
-	$(adios_globaltime_LINK) $(adios_globaltime_OBJECTS) $(adios_globaltime_LDADD) $(LIBS)
-adios_globaltime_no_xml$(EXEEXT): $(adios_globaltime_no_xml_OBJECTS) $(adios_globaltime_no_xml_DEPENDENCIES) 
-	@rm -f adios_globaltime_no_xml$(EXEEXT)
-	$(adios_globaltime_no_xml_LINK) $(adios_globaltime_no_xml_OBJECTS) $(adios_globaltime_no_xml_LDADD) $(LIBS)
-adios_read_globaltime$(EXEEXT): $(adios_read_globaltime_OBJECTS) $(adios_read_globaltime_DEPENDENCIES) 
-	@rm -f adios_read_globaltime$(EXEEXT)
-	$(adios_read_globaltime_LINK) $(adios_read_globaltime_OBJECTS) $(adios_read_globaltime_LDADD) $(LIBS)
-adios_read_globaltime_streaming$(EXEEXT): $(adios_read_globaltime_streaming_OBJECTS) $(adios_read_globaltime_streaming_DEPENDENCIES) 
-	@rm -f adios_read_globaltime_streaming$(EXEEXT)
-	$(adios_read_globaltime_streaming_LINK) $(adios_read_globaltime_streaming_OBJECTS) $(adios_read_globaltime_streaming_LDADD) $(LIBS)
+uninstall-libLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libdir)' && rm -f "$$files" )"; \
+	cd "$(DESTDIR)$(libdir)" && rm -f $$files
+
+clean-libLIBRARIES:
+	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+libskel.a: $(libskel_a_OBJECTS) $(libskel_a_DEPENDENCIES) 
+	-rm -f libskel.a
+	$(libskel_a_AR) libskel.a $(libskel_a_OBJECTS) $(libskel_a_LIBADD)
+	$(RANLIB) libskel.a
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -416,26 +416,55 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/skel_xml_output.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/skel_xml_output_f.Po at am__quote@
+
 .c.o:
-	$(COMPILE) -c $<
+ 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:
-	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 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:
-	$(LTCOMPILE) -c -o $@ $<
-
-adios_read_globaltime-adios_read_globaltime.o: adios_read_globaltime.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_globaltime_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_globaltime-adios_read_globaltime.o `test -f 'adios_read_globaltime.c' || echo '$(srcdir)/'`adios_read_globaltime.c
-
-adios_read_globaltime-adios_read_globaltime.obj: adios_read_globaltime.c
-	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adios_read_globaltime_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adios_read_globaltime-adios_read_globaltime.obj `if test -f 'adios_read_globaltime.c'; then $(CYGPATH_W) 'adios_read_globaltime.c'; else $(CYGPATH_W) '$(srcdir)/adios_read_globaltime.c'; fi`
+ 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 $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
 
 clean-libtool:
 	-rm -rf .libs _libs
+install-library_includeHEADERS: $(library_include_HEADERS)
+	@$(NORMAL_INSTALL)
+	test -z "$(library_includedir)" || $(MKDIR_P) "$(DESTDIR)$(library_includedir)"
+	@list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \
+	done
+
+uninstall-library_includeHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(library_includedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(library_includedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -521,8 +550,11 @@ distdir: $(DISTFILES)
 	done
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(LIBRARIES) $(HEADERS)
 installdirs:
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -551,10 +583,11 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+clean-am: clean-generic clean-libLIBRARIES clean-libtool \
 	mostlyclean-am
 
 distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
 	distclean-tags
@@ -571,13 +604,13 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-library_includeHEADERS
 
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
-install-exec-am:
+install-exec-am: install-libLIBRARIES
 
 install-html: install-html-am
 
@@ -600,6 +633,7 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -616,22 +650,25 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am:
+uninstall-am: uninstall-libLIBRARIES uninstall-library_includeHEADERS
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
+	clean-libLIBRARIES clean-libtool ctags distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags 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-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+	install-html-am install-info install-info-am \
+	install-libLIBRARIES install-library_includeHEADERS \
+	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-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-libLIBRARIES \
+	uninstall-library_includeHEADERS
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/utils/skel/src/skel_xml_output.c b/utils/skel/src/skel_xml_output.c
new file mode 100644
index 0000000..2f19692
--- /dev/null
+++ b/utils/skel/src/skel_xml_output.c
@@ -0,0 +1,114 @@
+#include "skel_xml_output.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "mpi.h"
+
+
+int common_skel_write_coarse_xml_data (double open_time, double write_time, double close_time, double total_time);
+
+
+int skel_write_coarse_xml_data (double open_time, double write_time, double close_time, double total_time)
+{
+    return common_skel_write_coarse_xml_data (open_time, write_time, close_time, total_time);
+}
+
+
+/*
+ * Used by a generated skeletal program to write the times gathered by the skeletal to the xml file.
+ *
+ * See also: adios_timing_write_xml_common() in src/core/adios_timing.c
+ *
+ */
+int common_skel_write_coarse_xml_data (double open_time, double write_time, double close_time, double total_time)
+{
+    char* filename = "gts_skel_time.xml";
+
+    int size, rank, i;
+    MPI_Comm_size (MPI_COMM_WORLD, &size);
+    MPI_Comm_rank (MPI_COMM_WORLD, &rank);
+
+    
+    double * open_times = NULL;
+    double * write_times = NULL;
+    double * close_times = NULL;
+    double * total_times = NULL;
+
+    if (rank == 0)
+    {
+        open_times = (double*) malloc (sizeof (double) * size);
+        write_times = (double*) malloc (sizeof (double) * size);
+        close_times = (double*) malloc (sizeof (double) * size);
+        total_times = (double*) malloc (sizeof (double) * size);
+    }
+
+    // Collect timings on proc 0
+
+    MPI_Gather (
+        &open_time,
+        1,  // sendcount
+        MPI_DOUBLE, // sendtype
+        open_times,
+        1, // recvcount
+        MPI_DOUBLE, // recvtype
+        0, // root
+        MPI_COMM_WORLD
+    );
+
+    MPI_Gather (
+        &write_time,
+        1,  // sendcount
+        MPI_DOUBLE, // sendtype
+        write_times,
+        1, // recvcount
+        MPI_DOUBLE, // recvtype
+        0, // root
+        MPI_COMM_WORLD
+    );
+
+    MPI_Gather (
+        &close_time,
+        1,  // sendcount
+        MPI_DOUBLE, // sendtype
+        close_times,
+        1, // recvcount
+        MPI_DOUBLE, // recvtype
+        0, // root
+        MPI_COMM_WORLD
+    );
+
+    MPI_Gather (
+        &total_time,
+        1,  // sendcount
+        MPI_DOUBLE, // sendtype
+        total_times,
+        1, // recvcount
+        MPI_DOUBLE, // recvtype
+        0, // root
+        MPI_COMM_WORLD
+    );
+
+
+
+
+    // Write it out (proc 0 only)
+    if (rank == 0)
+    {
+        FILE* f = fopen (filename, "a");
+
+        char* key_str = "ad_open,ad_write,ad_close,skel_total";
+
+        fprintf (f, "<skel_result>\n");
+        fprintf (f, "  <adios_timing cores='%i' keys='%s'>\n", size, key_str);
+
+        for (i = 0; i < size; i++)
+        {
+            fprintf (f, "    <proc id='%i' vals='%f,%f,%f,%f' />\n", i, open_times[i], write_times[i], close_times[i], total_times[i]);
+        }
+
+        fprintf (f, "  </adios_timing>\n");
+        fprintf (f, "</skel_result>\n");
+
+        free (close_times);
+    }
+    return 0;
+}
diff --git a/utils/skel/src/skel_xml_output.h b/utils/skel/src/skel_xml_output.h
new file mode 100644
index 0000000..1e72f57
--- /dev/null
+++ b/utils/skel/src/skel_xml_output.h
@@ -0,0 +1,6 @@
+#ifndef SKEL_XML_OUTPUT_H
+#define SKEL_XML_OUTPUT_H
+
+int skel_write_coarse_xml_data (double open_time, double write_time, double close_time, double total_time);
+
+#endif
diff --git a/utils/skel/src/skel_xml_output_f.c b/utils/skel/src/skel_xml_output_f.c
new file mode 100644
index 0000000..9059cec
--- /dev/null
+++ b/utils/skel/src/skel_xml_output_f.c
@@ -0,0 +1,19 @@
+#include "config.h"
+#ifdef BUILD_WITH_CMAKE
+  #include "FC.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+
+/* defined in skel_xml_output.c */
+int common_skel_write_coarse_xml_data (double open_time, double write_time, double close_time, double total_time);
+
+
+int FC_FUNC_(skel_write_coarse_xml_data_f, SKEL_WRITE_COARSE_XML_DATA_F) (double *open_time, double *write_time, double *close_time, double *total_time)
+{
+    return common_skel_write_coarse_xml_data (*open_time, *write_time, *close_time, *total_time);
+}
+
+
diff --git a/wrappers/.svn/all-wcprops b/wrappers/.svn/all-wcprops
deleted file mode 100644
index 0d3bce1..0000000
--- a/wrappers/.svn/all-wcprops
+++ /dev/null
@@ -1,5 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 44
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers
-END
diff --git a/wrappers/.svn/dir-prop-base b/wrappers/.svn/dir-prop-base
deleted file mode 100644
index 3160658..0000000
--- a/wrappers/.svn/dir-prop-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 13
-svn:mergeinfo
-V 0
-
-END
diff --git a/wrappers/.svn/entries b/wrappers/.svn/entries
deleted file mode 100644
index 00099e0..0000000
--- a/wrappers/.svn/entries
+++ /dev/null
@@ -1,44 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-has-props
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-matlab
-dir
-

-java
-dir
-

-numpy
-dir
-

diff --git a/wrappers/.svn/format b/wrappers/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/.svn/all-wcprops b/wrappers/java/.svn/all-wcprops
deleted file mode 100644
index 93d1dda..0000000
--- a/wrappers/java/.svn/all-wcprops
+++ /dev/null
@@ -1,41 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java
-END
-gov_ornl_ccs_AdiosVarinfo.cxx
-K 25
-svn:wc:ra_dav:version-url
-V 79
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov_ornl_ccs_AdiosVarinfo.cxx
-END
-gov_ornl_ccs_AdiosBufferAllocWhen.cxx
-K 25
-svn:wc:ra_dav:version-url
-V 87
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/gov_ornl_ccs_AdiosBufferAllocWhen.cxx
-END
-gov_ornl_ccs_AdiosFlag.cxx
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/gov_ornl_ccs_AdiosFlag.cxx
-END
-gov_ornl_ccs_AdiosDatatype.cxx
-K 25
-svn:wc:ra_dav:version-url
-V 80
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/gov_ornl_ccs_AdiosDatatype.cxx
-END
-CMakeLists.txt
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/CMakeLists.txt
-END
-gov_ornl_ccs_Adios.cxx
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov_ornl_ccs_Adios.cxx
-END
diff --git a/wrappers/java/.svn/entries b/wrappers/java/.svn/entries
deleted file mode 100644
index c6a1712..0000000
--- a/wrappers/java/.svn/entries
+++ /dev/null
@@ -1,350 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/java
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-test
-dir
-

-gov_ornl_ccs_AdiosVarinfo.cxx
-file
-
-
-
-
-2012-08-27T21:26:07.223925Z
-32e5e17831a628391313c0544832c80a
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5442
-

-gov_ornl_ccs_AdiosBufferAllocWhen.cxx
-file
-
-
-
-
-2012-07-09T22:53:06.820613Z
-d41d8cd98f00b204e9800998ecf8427e
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-0
-

-gov_ornl_ccs_AdiosFlag.cxx
-file
-
-
-
-
-2012-07-09T22:53:06.822616Z
-d41d8cd98f00b204e9800998ecf8427e
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-0
-

-Modules
-dir
-

-gov_ornl_ccs_AdiosDatatype.cxx
-file
-
-
-
-
-2012-07-09T22:53:06.824618Z
-d41d8cd98f00b204e9800998ecf8427e
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-0
-

-gov_ornl_ccs_AdiosGroup.cxx
-file
-
-
-
-
-2012-07-02T16:20:13.231151Z
-68da0c385355e4f309cb66fb0e155158
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2533
-

-gov
-dir
-

-CMakeLists.txt
-file
-
-
-
-
-2012-07-09T22:53:06.828614Z
-8d976e3e9046c5f79c134ce11a3090bd
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2684
-

-README
-file
-
-
-
-
-2012-07-02T16:20:13.297151Z
-8049c72f4216c9958ad61e30ef09cf54
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1319
-

-gov_ornl_ccs_Adios.cxx
-file
-
-
-
-
-2012-08-27T21:26:07.242922Z
-1e3c82f12c9e4cfa6d0d75260187466a
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-17615
-

-gov_ornl_ccs_AdiosFile.cxx
-file
-
-
-
-
-2012-07-02T16:20:13.305155Z
-8e960705c659ddf3ed72a393a12ceb1d
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2738
-

diff --git a/wrappers/java/.svn/format b/wrappers/java/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/java/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/.svn/text-base/CMakeLists.txt.svn-base b/wrappers/java/.svn/text-base/CMakeLists.txt.svn-base
deleted file mode 100644
index ad29b78..0000000
--- a/wrappers/java/.svn/text-base/CMakeLists.txt.svn-base
+++ /dev/null
@@ -1,96 +0,0 @@
-cmake_minimum_required (VERSION 2.8)
-set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
-include(${CMAKE_CURRENT_SOURCE_DIR}/Modules/CMakeUtilityFunctions.cmake)
-
-project (AdiosJava CXX Java)
-
-include_directories (${CMAKE_CURRENT_BINARY_DIR})
-
-find_package (Java REQUIRED)
-include_directories (${JNI_INCLUDE_DIRS})
-
-find_package (JNI REQUIRED)
-include_directories (${JNI_INCLUDE_DIRS})
-
-option (ADIOS_USE_MPI "Use parallel ADIOS" ON)
-
-find_package (ADIOS REQUIRED)
-add_definitions (${ADIOS_COMPILE_FLAGS})  
-add_definitions (-DADIOS_USE_READ_API_1)
-include_directories (${ADIOS_INCLUDE_PATH})
-
-if (ADIOS_USE_MPI)
-  find_package (MPI REQUIRED)
-  include_directories (${MPI_CXX_INCLUDE_PATH})
-  add_definitions (-DADIOS_USE_MPI)  
-else ()
-  find_package (MPI REQUIRED)
-endif()
-
-set (SRC
-  gov_ornl_ccs_AdiosDatatype.cxx
-  gov_ornl_ccs_AdiosFlag.cxx
-  gov_ornl_ccs_AdiosBufferAllocWhen.cxx
-  gov_ornl_ccs_Adios.cxx
-  gov_ornl_ccs_AdiosFile.cxx
-  gov_ornl_ccs_AdiosGroup.cxx
-  gov_ornl_ccs_AdiosVarinfo.cxx
-  )
-
-foreach (FILE ${SRC})
-  string (REGEX REPLACE ".cxx" ".h" FILE ${FILE})
-  list (APPEND HEADERS ${FILE})
-endforeach ()
-
-add_library (AdiosJava SHARED
-  ${HEADERS}
-  ${SRC}
-  )
-
-set (CMAKE_JNI_TARGET TRUE)
-set (CMAKE_JAVA_TARGET_VERSION 1.2.0)
-
-target_link_libraries (AdiosJava
-  ${ADIOS_LIBRARIES}
-  ${MPI_CXX_LIBRARIES}
-  )
-
-foreach (FILE ${HEADERS})
-  string (REGEX REPLACE "_" "/" JAVA_FILE ${FILE})
-  string (REGEX REPLACE "\\.h" ".java" JAVA_FILE ${JAVA_FILE})
-
-  string (REGEX REPLACE "_" "." JAVA_OBJ ${FILE})
-  string (REGEX REPLACE "\\.h" "" JAVA_OBJ ${JAVA_OBJ})
-
-  add_custom_command (
-    OUTPUT ${FILE}
-    COMMAND ${Java_JAVAC_EXECUTABLE} -d ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${JAVA_FILE}
-    COMMAND ${Java_JAVAH_EXECUTABLE} -jni -d ${CMAKE_CURRENT_BINARY_DIR} ${JAVA_OBJ}
-    DEPENDS ${JAVA_FILE} ${PREV}
-    )
-  list (APPEND PREV ${FILE})
-endforeach ()
-
-foreach (FILE ${SRC})
-  string (REGEX REPLACE "_" "/" FILE ${FILE})
-  string (REGEX REPLACE "\\.cxx" ".java" FILE ${FILE})
-  list (APPEND JAVA_SRC ${FILE})
-endforeach ()
-
-add_custom_command (TARGET AdiosJava
-  POST_BUILD
-  COMMAND cmake -E echo "Creating jar file..."
-  COMMAND jar cvf AdiosJava.jar gov
-  )
-
-install (TARGETS AdiosJava
-  RUNTIME DESTINATION bin
-  LIBRARY DESTINATION lib
-  ARCHIVE DESTINATION lib
-  )
-install (FILES ${CMAKE_CURRENT_BINARY_DIR}/AdiosJava.jar DESTINATION lib)
-
-ENABLE_TESTING()
-add_test (test1 ${CMAKE_CURRENT_SOURCE_DIR}/test/test1.sh ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test AdiosTest)
-add_test (test2 ${CMAKE_CURRENT_SOURCE_DIR}/test/test2.sh ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test AdiosNoxmlTest)
-
diff --git a/wrappers/java/.svn/text-base/README.svn-base b/wrappers/java/.svn/text-base/README.svn-base
deleted file mode 100644
index 7e98705..0000000
--- a/wrappers/java/.svn/text-base/README.svn-base
+++ /dev/null
@@ -1,49 +0,0 @@
-ADIOS Java wrapper
------------------
-
-This directory contains the codes for the ADIOS java wrapper, a Java
-Native Interface (JNI) program to call the native ADIOS library.
-
-
-== Build == 
-
-This program can be built with CMake (http://www.cmake.org/). You may
-want to a build directory and run cmake pointing the source directory
-containing CMakeLists.txt (this directory). For example, 
-
-$ mkdir build; cd build
-$ cmake /dir/to/source
-
-CMake will search installed ADIOS library, Java, JNI, MPI library (if
-needed), etc. Once completed, type make to build:
-
-$ make
-
-If you need verbose output, you may add an option:
-$ make VERBOSE=1
-
-After successful building, you can see libAdiosJava.so (or
-libAdiosJava.dylib in Mac) and AdiosJava.jar. Those two files are
-needed to call in Java.
-
-Then, you can install the library by,
-$ make install
-
-The default install directory is /usr/local. You can change by
-specifying CMAKE_INSTALL_PREFIX value;
-
-$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/install /dir/to/source
-
-Or, you can use the ccmake command, the CMake curses interface. Refer
-to the CMake documentation for more detailed instructions.
-
-== Test == 
-
-This program contains a test program. To run testing after building,
-type the following command:
-
-$ make test
-
-If you need a verbose output, type the following
-
-$ ctest -V
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_Adios.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_Adios.cxx.svn-base
deleted file mode 100644
index 941eb51..0000000
--- a/wrappers/java/.svn/text-base/gov_ornl_ccs_Adios.cxx.svn-base
+++ /dev/null
@@ -1,578 +0,0 @@
-#include "gov_ornl_ccs_Adios.h"
-
-#include <adios.h>
-#include <iostream>
-#include <string.h>
-#include <stdlib.h>
-
-#define STR(A) #A
-#define CONCAT2(A, B) A ## B
-#define CONCAT3(A, B, C) CONCAT2(CONCAT2(A, B), C)
-#define GET_ARRAY_ELEMENT(TYPE) CONCAT3(Get, TYPE, ArrayElements)
-#define WRITE_ONE(JTYPE)                                        \
-    /* std::cout << __FUNCTION__ << "..." << std::endl; */      \
-    int result;                                                 \
-    const char *str_var_name;                                   \
-    str_var_name = env->GetStringUTFChars(var_name, NULL);      \
-    if (str_var_name == NULL) return -1;                        \
-    result = adios_write ((int64_t) fh, str_var_name, &val);    \
-    env->ReleaseStringUTFChars(var_name, str_var_name);         \
-    return result;
-
-#define WRITE_ARRAY(JTYPE, CTYPE)                                       \
-    /* std::cout << __FUNCTION__ << " ..." << std::endl;*/              \
-    int result;                                                         \
-    const char *str_var_name;                                           \
-    JTYPE *valarr = env->Get ##CTYPE ##ArrayElements(val, NULL);        \
-    str_var_name = env->GetStringUTFChars(var_name, NULL);              \
-    if (str_var_name == NULL) return -1;                                \
-    result = adios_write ((int64_t) fh, str_var_name, (void *) valarr); \
-    env->ReleaseStringUTFChars(var_name, str_var_name);                 \
-    env->Release ##CTYPE ##ArrayElements(val, valarr, 0);               \
-    return result;
-
-#define FUNC_WRITE_ONE(FNAME, JTYPE)                                    \
-    JNIEXPORT jint JNICALL FNAME                                        \
-    (JNIEnv * env, jclass cls, jlong fh, jstring var_name, JTYPE val)   \
-    {                                                                   \
-        WRITE_ONE(JTYPE);                                               \
-    }
-
-#define FUNC_WRITE_ARRAY(FNAME, JTYPE, CTYPE)                           \
-    JNIEXPORT jint JNICALL FNAME                                        \
-    (JNIEnv * env, jclass cls, jlong fh, jstring var_name, JTYPE ##Array val) \
-    {                                                                   \
-        WRITE_ARRAY(JTYPE, CTYPE);                                      \
-    }
-
-#define STR_ALLOC(var) \
-    const char *str_##var = env->GetStringUTFChars(var, NULL); \
-    if (str_##var == NULL) return -1;
-
-#define STR_ALLOC2(var) \
-    const char *str_##var = env->GetStringUTFChars(var, NULL); \
-    if (str_##var == NULL) goto end;
-
-#define STR_FREE(var) \
-    env->ReleaseStringUTFChars(var, str_##var);
-
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_init
- * Signature: (Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL 
-Java_gov_ornl_ccs_Adios_adios_1init 
-(JNIEnv *env, jclass cls, jstring xml_fname)
-{
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-    int result;
-    jboolean isCopy;
-
-    STR_ALLOC(xml_fname);
-
-    result = adios_init(str_xml_fname);
-    //std::cout << "result = " << result << std::endl;
-    
-    STR_FREE(xml_fname);
-
-    return result;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_open
- * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)J
- */
-JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1open
-(JNIEnv * env, jclass cls, jstring group_name, jstring file_name, jstring mode, jlong comm)
-{
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-
-    int result;
-    int64_t fd_p = 0;
-
-    STR_ALLOC(group_name);
-    STR_ALLOC(file_name);
-    STR_ALLOC(mode);
-
-    //std::cout << "[IN] fd_p = " << (int64_t) fd_p << std::endl;
-    //std::cout << "[IN] str_group_name = " << str_group_name << std::endl;
-    //std::cout << "[IN] str_file_name = " << str_file_name << std::endl;
-    //std::cout << "[IN] str_mode = " << str_mode << std::endl;
-    //std::cout << "[IN] comm = " << (long) comm << std::endl;
-    result = adios_open(&fd_p, str_group_name, str_file_name, str_mode, &comm);
-    //std::cout << "[OUT] fd_p = " << fd_p << std::endl;
-    //std::cout << "[OUT] result = " << result << std::endl;
-
-    STR_FREE(group_name);
-    STR_FREE(file_name);
-    STR_FREE(mode);
-
-    return (jlong) fd_p;
-}
-
-JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1group_1size
-(JNIEnv * env, jclass cls, jlong fh, jlong group_size)
-{
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-
-    uint64_t total_size = 0;
-    int result;
-
-    //std::cout << "[IN] fh = " << (int64_t) fh << std::endl;
-    //std::cout << "[IN] group_size = " << (uint64_t) group_size << std::endl;
-    result = adios_group_size ((int64_t) fh, (uint64_t) group_size, (uint64_t *) &total_size);
-    //std::cout << "[OUT] fh = " << (int64_t) fh << std::endl;
-    //std::cout << "[OUT] total size = " << total_size << std::endl;
-    //std::cout << "[OUT] result = " << result << std::endl;
-
-    return total_size;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_write
- * Signature: (JLjava/lang/String;B)I
- * Signature: (JLjava/lang/String;I)I
- * Signature: (JLjava/lang/String;J)I
- * Signature: (JLjava/lang/String;F)I
- * Signature: (JLjava/lang/String;D)I
- */
-FUNC_WRITE_ONE (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2B, 
-    jbyte)
-
-FUNC_WRITE_ONE (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2I,
-    jint)
-
-FUNC_WRITE_ONE (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2J,
-    jlong)
-
-FUNC_WRITE_ONE (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2F,
-    jfloat)
-
-FUNC_WRITE_ONE (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2D,
-    jdouble)
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_write
- * Signature: (JLjava/lang/String;[B)I
- * Signature: (JLjava/lang/String;[I)I
- * Signature: (JLjava/lang/String;[J)I
- * Signature: (JLjava/lang/String;[F)I
- * Signature: (JLjava/lang/String;[D)I
- */
-FUNC_WRITE_ARRAY (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2_3B,
-    jbyte,
-    Byte)
-
-FUNC_WRITE_ARRAY (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2_3I,
-    jint,
-    Int)
-
-FUNC_WRITE_ARRAY (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2_3J,
-    jlong,
-    Long)
-
-FUNC_WRITE_ARRAY (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2_3F,
-    jfloat,
-    Float)
-
-FUNC_WRITE_ARRAY (
-    Java_gov_ornl_ccs_Adios_adios_1write__JLjava_lang_String_2_3D,
-    jdouble,
-    Double)
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_close
- * Signature: (J)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1close
-(JNIEnv * env, jclass cls, jlong fh)
-{
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-
-    //std::cout << "[IN] fh = " << fh << std::endl;
-    return adios_close ((int64_t) fh);
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_finalize
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1finalize
-(JNIEnv * env, jclass cls, jint id)
-{
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-    return adios_finalize (id);
-}
-
-#ifdef ADIOS_USE_MPI
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_mpi_init
- * Signature: ([Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1mpi_1init
-(JNIEnv * env, jclass cls, jobjectArray args)
-{
-    int argc = env->GetArrayLength(args);
-    char **argv;
-    int result; 
-    
-    for (int i = 0; i < argc; i++) 
-    {
-        jstring jstr = (jstring) env->GetObjectArrayElement(args, i);
-        const char *chr = env->GetStringUTFChars(jstr, 0);
-
-        //argv[i] = (char *) malloc(env->GetStringLength(jstr) + 1);
-        argv[i] = new char[env->GetStringLength(jstr) + 1];
-        strcpy(argv[i], chr);
-
-        env->ReleaseStringUTFChars(jstr, chr);
-    }
-
-    result = MPI_Init(&argc, &argv);
-
-    for (int i = 0; i < argc; i++) 
-    {
-        //free(argv[i]);
-        delete[] argv[i]; 
-    }
-
-    return result;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_mpi_comm_rank
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1mpi_1comm_1rank
-(JNIEnv * env, jclass cls, jlong comm)
-{
-    int rank;
-    MPI_Comm_rank((MPI_Comm) comm, &rank);
-    
-    return rank;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_mpi_comm_size
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1mpi_1comm_1size
-(JNIEnv * env, jclass cls, jlong comm)
-{
-    int size;
-    MPI_Comm_size((MPI_Comm) comm, &size);
-    
-    return size;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_mpi_finalize
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1mpi_1finalize
-(JNIEnv * env, jclass cls)
-{
-    return MPI_Finalize();
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_mpi_comm_world
- * Signature: ()I
- */
-JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1mpi_1comm_1world
-(JNIEnv * env, jclass cls)
-{
-    return (jlong) MPI_COMM_WORLD;
-}
-#endif
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_open_and_set_group_size
- * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJ)J
- */
-JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1open_1and_1set_1group_1size
-(JNIEnv * env, jclass cls, jstring group_name, jstring file_name, jstring mode, jlong group_size, jlong comm)
-{
-    // Doesn't work, either
-    //jlong fh = Java_gov_ornl_ccs_Adios_adios_1open(env, cls, group_name, file_name, mode, comm);
-    //Java_gov_ornl_ccs_Adios_adios_1group_1size(env, cls, fh, group_size);
-
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-
-    int result;
-    int64_t fd_p = 0;
-
-    STR_ALLOC(group_name);
-    STR_ALLOC(file_name);
-    STR_ALLOC(mode);
-
-    //std::cout << "[IN] fd_p = " << (int64_t) fd_p << std::endl;
-    //std::cout << "[IN] str_group_name = " << str_group_name << std::endl;
-    //std::cout << "[IN] str_file_name = " << str_file_name << std::endl;
-    //std::cout << "[IN] str_mode = " << str_mode << std::endl;
-    //std::cout << "[IN] comm = " << (long) comm << std::endl;
-    result = adios_open(&fd_p, str_group_name, str_file_name, str_mode, &comm);
-    //std::cout << "[OUT] fd_p = " << fd_p << std::endl;
-    //std::cout << "[OUT] result = " << result << std::endl;
-
-    STR_FREE(group_name);
-    STR_FREE(file_name);
-    STR_FREE(mode);
-
-    uint64_t total_size;
-    //std::cout << "[IN] fd_p = " << (int64_t) fd_p << std::endl;
-    adios_group_size (fd_p, group_size, (uint64_t *) &total_size);
-    //std::cout << "[OUT] total size = " << total_size << std::endl;
-
-    return (jlong) fd_p;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_init_noxml
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL 
-Java_gov_ornl_ccs_Adios_adios_1init_1noxml
-(JNIEnv *env, jclass cls)
-{
-    return adios_init_noxml();
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_allocate_buffer
- * Signature: (IJ)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1allocate_1buffer
-(JNIEnv * env, jclass cls, jint when, jlong size)
-{
-    return adios_allocate_buffer((ADIOS_BUFFER_ALLOC_WHEN) when, size);
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_declare_group
- * Signature: (Ljava/lang/String;Ljava/lang/String;I)J
- */
-JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1declare_1group
-(JNIEnv * env, jclass cls, jstring name, jstring time_index, jint stats)
-{
-    int64_t id_p;
-    int result;
-
-    STR_ALLOC(name);
-    STR_ALLOC(time_index);
-
-    result = adios_declare_group(&id_p, str_name, str_time_index, (ADIOS_FLAG) stats);
-
-    STR_FREE(name);
-    STR_FREE(time_index);
-
-    return (jlong) id_p;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_define_var
- * Signature: (JLjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1define_1var
-(JNIEnv * env, jclass cls, jlong group_id, jstring name, jstring path, jint type, jstring dimensions, jstring global_dimensions, jstring local_offsets)
-{
-    int result;
-
-    STR_ALLOC(name);
-    STR_ALLOC(path);
-    STR_ALLOC(dimensions);
-    STR_ALLOC(global_dimensions);
-    STR_ALLOC(local_offsets);
-
-    result = adios_define_var((int64_t) group_id, str_name, str_path, (ADIOS_DATATYPES) type, str_dimensions, str_global_dimensions, str_local_offsets);
-    
-    STR_FREE(name);
-    STR_FREE(path);
-    STR_FREE(dimensions);
-    STR_FREE(global_dimensions);
-    STR_FREE(local_offsets);
-
-    return result;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_define_attribute
- * Signature: (JLjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1define_1attribute
-(JNIEnv * env, jclass cls, jlong group_id, jstring name, jstring path, jint type, jstring value, jstring var)
-{
-    int result;
-    
-    STR_ALLOC(name);
-    STR_ALLOC(path);
-    STR_ALLOC(value);
-    STR_ALLOC(var);
-    
-    result = adios_define_attribute((int64_t) group_id, str_name, str_path, (ADIOS_DATATYPES) type, str_value, str_var);
-
-    STR_FREE(name);
-    STR_FREE(path);
-    STR_FREE(value);
-    STR_FREE(var);
-
-    return result;
-}
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_select_method
- * Signature: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_Adios_adios_1select_1method
-(JNIEnv * env, jclass cls, jlong group_id, jstring method, jstring parameters, jstring base_path)
-{
-    int result;
-    
-    STR_ALLOC(method);
-    STR_ALLOC(parameters);
-    STR_ALLOC(base_path);
-    
-    result = adios_select_method((int64_t) group_id, str_method, str_parameters, str_base_path);
-
-    STR_FREE(method);
-    STR_FREE(parameters);
-    STR_FREE(base_path);
-    
-    return result;
-}
-
-#define READ_ONE(JTYPE)                                                 \
-    /* std::cout << __FUNCTION__ << " ..." << std::endl; */             \
-    int result;                                                         \
-    JTYPE val;                                                          \
-    const char *str_var_name;                                           \
-    uint64_t read_size = sizeof(JTYPE);                                 \
-    str_var_name = env->GetStringUTFChars(var_name, NULL);              \
-    if (str_var_name == NULL) return -1;                                \
-    result = adios_read ((int64_t) fh, str_var_name, &val, sizeof(JTYPE)); \
-    env->ReleaseStringUTFChars(var_name, str_var_name);                 \
-    return val;
-
-#define FUNC_READ_ONE(FNAME, JTYPE)                                     \
-    JNIEXPORT JTYPE JNICALL FNAME                                       \
-    (JNIEnv * env, jclass cls, jlong fh, jstring var_name)              \
-    {                                                                   \
-        READ_ONE(JTYPE);                                                \
-    }
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_read_byte_value
- * Signature: (JLjava/lang/String;)B
- * Signature: (JLjava/lang/String;)I
- * Signature: (JLjava/lang/String;)J
- * Signature: (JLjava/lang/String;)F
- * Signature: (JLjava/lang/String;)D
- */
-
-FUNC_READ_ONE(
-    Java_gov_ornl_ccs_Adios_adios_1read_1byte_1value,
-    jbyte);
-
-FUNC_READ_ONE(
-    Java_gov_ornl_ccs_Adios_adios_1read_1int_1value,
-    jint);
-
-FUNC_READ_ONE(
-    Java_gov_ornl_ccs_Adios_adios_1read_1long_1value,
-    jlong);
-
-FUNC_READ_ONE(
-    Java_gov_ornl_ccs_Adios_adios_1read_1float_1value,
-    jfloat);
-
-FUNC_READ_ONE(
-    Java_gov_ornl_ccs_Adios_adios_1read_1double_1value,
-    jdouble);
-
-
-
-#define READ_ARRAY(JTYPE, CTYPE)                                        \
-    /* std::cout << __FUNCTION__ << " ..." << std::endl; */             \
-    int result;                                                         \
-    const char *str_var_name;                                           \
-    JTYPE *valarr = env->Get ##CTYPE ##ArrayElements(val, NULL);        \
-    uint64_t read_size = env->GetArrayLength(val) * sizeof(JTYPE);      \
-    str_var_name = env->GetStringUTFChars(var_name, NULL);              \
-    if (str_var_name == NULL) return -1;                                \
-    result = adios_read ((int64_t) fh, str_var_name, (void *) valarr, read_size); \
-    env->ReleaseStringUTFChars(var_name, str_var_name);                 \
-    env->Release ##CTYPE ##ArrayElements(val, valarr, 0);               \
-    return result;
-
-#define FUNC_READ_ARRAY(FNAME, JTYPE, CTYPE)                            \
-    JNIEXPORT jint JNICALL FNAME                                        \
-    (JNIEnv * env, jclass cls, jlong fh, jstring var_name, JTYPE ##Array val) \
-    {                                                                   \
-        READ_ARRAY(JTYPE, CTYPE);                                      \
-    }
-
-/*
- * Class:     gov_ornl_ccs_Adios
- * Method:    adios_read
- * Signature: (JLjava/lang/String;[B)I
- * Signature: (JLjava/lang/String;[I)I
- * Signature: (JLjava/lang/String;[J)I
- * Signature: (JLjava/lang/String;[F)I
- * Signature: (JLjava/lang/String;[D)I
- */
-
-FUNC_READ_ARRAY(
-    Java_gov_ornl_ccs_Adios_adios_1read__JLjava_lang_String_2_3B,
-    jbyte,
-    Byte);
-
-FUNC_READ_ARRAY(
-    Java_gov_ornl_ccs_Adios_adios_1read__JLjava_lang_String_2_3I,
-    jint,
-    Int);
-
-FUNC_READ_ARRAY(
-    Java_gov_ornl_ccs_Adios_adios_1read__JLjava_lang_String_2_3J,
-    jlong,
-    Long);
-
-FUNC_READ_ARRAY(
-    Java_gov_ornl_ccs_Adios_adios_1read__JLjava_lang_String_2_3F,
-    jfloat,
-    Float);
-
-FUNC_READ_ARRAY(
-    Java_gov_ornl_ccs_Adios_adios_1read__JLjava_lang_String_2_3D,
-    jdouble,
-    Double);
-
-
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosBufferAllocWhen.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosBufferAllocWhen.cxx.svn-base
deleted file mode 100644
index e69de29..0000000
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosDatatype.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosDatatype.cxx.svn-base
deleted file mode 100644
index e69de29..0000000
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosFile.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosFile.cxx.svn-base
deleted file mode 100644
index 5431c8b..0000000
--- a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosFile.cxx.svn-base
+++ /dev/null
@@ -1,102 +0,0 @@
-#include "gov_ornl_ccs_AdiosFile.h"
-
-#include <adios_read.h>
-
-/*
- * Class:     gov_ornl_ccs_AdiosFile
- * Method:    adios_fopen
- * Signature: (Ljava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_AdiosFile_adios_1fopen
-(JNIEnv * env, jobject obj, jstring path, jlong comm)
-{
-    //std::cout << __FUNCTION__ << "..." << std::endl;
-
-    const char *str;
-    int result;
-    jboolean isCopy;
-    jclass cls;
-    jfieldID fid;
-
-    ADIOS_FILE* fp;
-
-    str = env->GetStringUTFChars(path, &isCopy);
-    if (str == NULL) return -1; /* OutOfMemoryError already thrown */
-
-    fp = adios_fopen(str, (MPI_Comm) comm);
-    env->ReleaseStringUTFChars(path, str);
-
-    cls = env->GetObjectClass(obj);
-    if (cls == NULL) {
-        return -1;
-    }
-
-    fid = env->GetFieldID(cls, "fp", "J");
-    env->SetLongField(obj, fid, (jlong)fp);
-    
-    fid = env->GetFieldID(cls, "fh", "J");
-    env->SetLongField(obj, fid, fp->fh);
-
-    fid = env->GetFieldID(cls, "groups_count", "I");
-    env->SetIntField(obj, fid, fp->groups_count);
-
-    fid = env->GetFieldID(cls, "vars_count", "I");
-    env->SetIntField(obj, fid, fp->vars_count);
-
-    fid = env->GetFieldID(cls, "attrs_count", "I");
-    env->SetIntField(obj, fid, fp->attrs_count);
-
-    fid = env->GetFieldID(cls, "tidx_start", "I");
-    env->SetIntField(obj, fid, fp->tidx_start);
-
-    fid = env->GetFieldID(cls, "ntimesteps", "I");
-    env->SetIntField(obj, fid, fp->ntimesteps);
-
-    fid = env->GetFieldID(cls, "version", "I");
-    env->SetIntField(obj, fid, fp->version);
-
-    fid = env->GetFieldID(cls, "file_size", "J");
-    env->SetIntField(obj, fid, fp->file_size);
-
-    fid = env->GetFieldID(cls, "endianness", "I");
-    env->SetIntField(obj, fid, fp->endianness);
-
-    jclass stringClass = env->FindClass("java/lang/String");
-    jobjectArray group_namelist = env->NewObjectArray(fp->groups_count, stringClass, NULL);
-
-    for (int i = 0; i < fp->groups_count; i++)
-    {
-        jstring group_name = env->NewStringUTF(fp->group_namelist[i]);
-        env->SetObjectArrayElement(group_namelist, i, group_name);
-    }
-
-    fid = env->GetFieldID(cls, "group_namelist", "[Ljava/lang/String;");    
-    env->SetObjectField(obj, fid, group_namelist);
-
-    return 0;
-}
-
-/*
- * Class:     gov_ornl_ccs_AdiosFile
- * Method:    adios_fclose
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_AdiosFile_adios_1fclose
-(JNIEnv * env, jobject obj)
-{
-    jclass cls;
-    jfieldID fid;
-    jlong fp;
-    jint result;
-
-    cls = env->GetObjectClass(obj);
-    fid = env->GetFieldID(cls, "fp", "J");
-    fp = env->GetLongField(obj, fid);
-
-    result = adios_fclose((ADIOS_FILE*)fp);
-
-    fid = env->GetFieldID(cls, "fp", "J");
-    env->SetLongField(obj, fid, 0);
-
-    return result;
-}
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosFlag.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosFlag.cxx.svn-base
deleted file mode 100644
index e69de29..0000000
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosGroup.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosGroup.cxx.svn-base
deleted file mode 100644
index 284f713..0000000
--- a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosGroup.cxx.svn-base
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "gov_ornl_ccs_AdiosGroup.h"
-
-#include <adios_read.h>
-
-/*
- * Class:     gov_ornl_ccs_AdiosGroup
- * Method:    adios_gopen
- * Signature: (JLjava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_AdiosGroup_adios_1gopen
-(JNIEnv * env, jobject obj, jlong fp, jstring grpname)
-{
-    const char *str;
-    jboolean isCopy;
-    jclass cls;
-    jfieldID fid;
-
-    ADIOS_GROUP* gp;
-
-    str = env->GetStringUTFChars(grpname, &isCopy);
-    if (str == NULL) return -1; /* OutOfMemoryError already thrown */
-
-    gp = adios_gopen((ADIOS_FILE *)fp, str);
-
-    env->ReleaseStringUTFChars(grpname, str);
-    
-    cls = env->GetObjectClass(obj);
-    if (cls == NULL) {
-        return -1;
-    }
-
-    fid = env->GetFieldID(cls, "gp", "J");
-    env->SetLongField(obj, fid, (jlong)gp);
-
-    fid = env->GetFieldID(cls, "gh", "J");
-    env->SetLongField(obj, fid, gp->gh);
-
-    fid = env->GetFieldID(cls, "grpid", "I");
-    env->SetIntField(obj, fid, gp->grpid);
-
-    fid = env->GetFieldID(cls, "vars_count", "I");
-    env->SetIntField(obj, fid, gp->vars_count);
-
-    fid = env->GetFieldID(cls, "attrs_count", "I");
-    env->SetIntField(obj, fid, gp->attrs_count);
-
-    
-    jclass stringClass = env->FindClass("java/lang/String");
-
-    jobjectArray var_namelist = env->NewObjectArray(gp->vars_count, stringClass, NULL);
-
-    for (int i = 0; i < gp->vars_count; i++)
-    {
-        jstring var_name = env->NewStringUTF(gp->var_namelist[i]);
-        env->SetObjectArrayElement(var_namelist, i, var_name);
-    }
-
-    fid = env->GetFieldID(cls, "var_namelist", "[Ljava/lang/String;");    
-    env->SetObjectField(obj, fid, var_namelist);
-
-    jobjectArray attr_namelist = env->NewObjectArray(gp->attrs_count, stringClass, NULL);
-
-    for (int i = 0; i < gp->attrs_count; i++)
-    {
-        jstring attr_name = env->NewStringUTF(gp->attr_namelist[i]);
-        env->SetObjectArrayElement(attr_namelist, i, attr_name);
-    }
-
-    fid = env->GetFieldID(cls, "attr_namelist", "[Ljava/lang/String;");    
-    env->SetObjectField(obj, fid, attr_namelist);
-
-    return 0;
-}
-
-/*
- * Class:     gov_ornl_ccs_AdiosGroup
- * Method:    adios_gclose
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_AdiosGroup_adios_1gclose
-(JNIEnv * env, jobject obj)
-{
-    jclass cls;
-    jfieldID fid;
-    jlong gp;
-    jint result;
-
-    cls = env->GetObjectClass(obj);
-    fid = env->GetFieldID(cls, "gp", "J");
-    gp = env->GetLongField(obj, fid);
-
-    result = adios_gclose((ADIOS_GROUP*)gp);
-
-    env->SetLongField(obj, fid, 0);
-
-    return result;
-}
diff --git a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosVarinfo.cxx.svn-base b/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosVarinfo.cxx.svn-base
deleted file mode 100644
index 1af4c71..0000000
--- a/wrappers/java/.svn/text-base/gov_ornl_ccs_AdiosVarinfo.cxx.svn-base
+++ /dev/null
@@ -1,175 +0,0 @@
-#include "gov_ornl_ccs_AdiosVarinfo.h"
-
-#include <adios_read.h>
-#include <iostream>
-
-/*
- * Class:     gov_ornl_ccs_AdiosVarinfo
- * Method:    adios_inq_var
- * Signature: (JJLjava/lang/String;)I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_AdiosVarinfo_adios_1inq_1var
-(JNIEnv * env, jobject obj, jlong gp, jstring varname)
-{
-    const char *str;
-    jboolean isCopy;
-    jclass cls;
-    jfieldID fid;
-
-    ADIOS_VARINFO* vp;
-
-    str = env->GetStringUTFChars(varname, &isCopy);
-    if (str == NULL) return -1; /* OutOfMemoryError already thrown */
-
-    vp = adios_inq_var((ADIOS_GROUP *)gp, str);
-    env->ReleaseStringUTFChars(varname, str);
-    
-    cls = env->GetObjectClass(obj);
-    if (cls == NULL) {
-        return -1;
-    }
-
-    fid = env->GetFieldID(cls, "vp", "J");
-    env->SetLongField(obj, fid, (jlong)vp);
-
-    fid = env->GetFieldID(cls, "grpid", "I");
-    env->SetIntField(obj, fid, vp->grpid);
-
-    fid = env->GetFieldID(cls, "varid", "I");
-    env->SetIntField(obj, fid, vp->varid);
-
-    fid = env->GetFieldID(cls, "type", "I");
-    env->SetIntField(obj, fid, vp->type);
-
-    fid = env->GetFieldID(cls, "ndim", "I");
-    env->SetIntField(obj, fid, vp->ndim);
-
-    fid = env->GetFieldID(cls, "timedim", "I");
-    env->SetIntField(obj, fid, vp->timedim);
-
-    jlongArray dims = env->NewLongArray(vp->ndim);
-    env->SetLongArrayRegion(dims, 0, vp->ndim, (jlong *) vp->dims);    
-
-    fid = env->GetFieldID(cls, "dims", "[J");
-    env->SetObjectField(obj, fid, dims);
-
-    if (vp->ndim == 0) {
-        int size = adios_type_size(vp->type, NULL);
-        jbyteArray value = env->NewByteArray(size);
-        env->SetByteArrayRegion(value, 0, size, (jbyte *) vp->value);
-
-        fid = env->GetFieldID(cls, "value", "[B");
-        env->SetObjectField(obj, fid, value);
-    } 
-
-    return 0;
-}
-
-/*
- * Class:     gov_ornl_ccs_AdiosVarinfo
- * Method:    adios_free_varinfo
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_gov_ornl_ccs_AdiosVarinfo_adios_1free_1varinfo
-(JNIEnv * env, jobject obj)
-{
-    jclass cls;
-    jfieldID fid;
-    jlong vp;
-
-    cls = env->GetObjectClass(obj);
-    fid = env->GetFieldID(cls, "vp", "J");
-    vp = env->GetLongField(obj, fid);
-
-    adios_free_varinfo((ADIOS_VARINFO*)vp);
-
-    env->SetLongField(obj, fid, 0);
-
-    return 0;
-}
-
-/*
- * Class:     gov_ornl_ccs_AdiosVarinfo
- * Method:    adios_read_var_byid
- * Signature: (JI[J[J)[D
- */
-JNIEXPORT jdoubleArray JNICALL Java_gov_ornl_ccs_AdiosVarinfo_adios_1read_1var_1byid
-(JNIEnv * env, jobject obj, jlong gp, jint varid, jlongArray start, jlongArray count)
-{
-    jint len = env->GetArrayLength(count);
-
-    if (len != env->GetArrayLength(start))
-        return NULL;
-
-    jlong *startarr = env->GetLongArrayElements(start, NULL);
-    jlong *countarr = env->GetLongArrayElements(count, NULL);
-
-    jlong ncount = 1;
-    for (jint i = 0; i < len; i++)
-        ncount *= countarr[i];
-
-    jdoubleArray result = env->NewDoubleArray(ncount);
-    jdouble *data = env->GetDoubleArrayElements(result, NULL);
-
-    int64_t nbytes = adios_read_var_byid((ADIOS_GROUP*)gp, (int) varid, (uint64_t *)startarr, (uint64_t *)countarr, (void *)data);
-
-    env->ReleaseLongArrayElements(start, startarr, 0);
-    env->ReleaseLongArrayElements(count, countarr, 0);
-    env->ReleaseDoubleArrayElements(result, data, 0);
-
-    return result;
-}
-
-#define READ_ARRAY(JTYPE, CTYPE)                                        \
-    /* std::cout << __FUNCTION__ << "..." << std::endl; */              \
-    int result;                                                         \
-    jint len = env->GetArrayLength(count);                              \
-    if (len != env->GetArrayLength(start))  return 0;                   \
-    jlong *startarr = env->GetLongArrayElements(start, NULL);           \
-    jlong *countarr = env->GetLongArrayElements(count, NULL);           \
-    jlong ncount = 1;                                                   \
-    for (jint i = 0; i < len; i++) ncount *= countarr[i];               \
-    JTYPE *data = env->Get ##CTYPE ##ArrayElements(val, NULL);          \
-    result = adios_read_var_byid((ADIOS_GROUP*)gp, (int) varid, (uint64_t *)startarr, (uint64_t *)countarr, (void *)data); \
-    env->ReleaseLongArrayElements(start, startarr, 0);                  \
-    env->ReleaseLongArrayElements(count, countarr, 0);                  \
-    env->Release ##CTYPE ##ArrayElements(val, data, 0);                 \
-    return result;
-
-#define FUNC_READ_ARRAY(FNAME, JTYPE, CTYPE)                            \
-    JNIEXPORT jint JNICALL FNAME                                        \
-    (JNIEnv * env, jobject obj, jlong gp, jint varid, jlongArray start, jlongArray count, JTYPE ##Array val) \
-    {                                                                   \
-        READ_ARRAY(JTYPE, CTYPE);                                       \
-    }
-
-/*
- * Class:     gov_ornl_ccs_AdiosVarinfo
- * Method:    adios_read
- * Signature: (JI[J[J[B)I
- */
-
-FUNC_READ_ARRAY (
-    Java_gov_ornl_ccs_AdiosVarinfo_adios_1read__JI_3J_3J_3B,
-    jbyte,
-    Byte)
-
-FUNC_READ_ARRAY (
-    Java_gov_ornl_ccs_AdiosVarinfo_adios_1read__JI_3J_3J_3I,
-    jint,
-    Int)
-
-FUNC_READ_ARRAY (
-    Java_gov_ornl_ccs_AdiosVarinfo_adios_1read__JI_3J_3J_3J,
-    jlong,
-    Long)
-
-FUNC_READ_ARRAY (
-    Java_gov_ornl_ccs_AdiosVarinfo_adios_1read__JI_3J_3J_3F,
-    jfloat,
-    Float)
-
-FUNC_READ_ARRAY (
-    Java_gov_ornl_ccs_AdiosVarinfo_adios_1read__JI_3J_3J_3D,
-    jdouble,
-    Double)
diff --git a/wrappers/java/Modules/.svn/entries b/wrappers/java/Modules/.svn/entries
deleted file mode 100644
index a7958a0..0000000
--- a/wrappers/java/Modules/.svn/entries
+++ /dev/null
@@ -1,137 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/java/Modules
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-FindADIOS.cmake
-file
-
-
-
-
-2012-07-02T16:20:12.330232Z
-85035b1c47413d257bec292b0b31ea82
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4915
-

-FindPackageHandleStandardArgs.cmake
-file
-
-
-
-
-2012-07-02T16:20:12.338235Z
-dbd7b4e1b87232a7fe8f57cf8ef10360
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-11465
-

-CMakeUtilityFunctions.cmake
-file
-
-
-
-
-2012-07-02T16:20:12.333235Z
-5a708f6f902199b8aab71c8d8a8f3a4a
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-319
-

diff --git a/wrappers/java/Modules/.svn/format b/wrappers/java/Modules/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/java/Modules/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/Modules/.svn/text-base/CMakeUtilityFunctions.cmake.svn-base b/wrappers/java/Modules/.svn/text-base/CMakeUtilityFunctions.cmake.svn-base
deleted file mode 100644
index c29cb8a..0000000
--- a/wrappers/java/Modules/.svn/text-base/CMakeUtilityFunctions.cmake.svn-base
+++ /dev/null
@@ -1,19 +0,0 @@
-function (print VAR)
-  set(NAME ${VAR})
-  list (APPEND VARS ${${VAR}})
-
-  set(MSG)
-  set(IS_FIRST TRUE)
-
-  foreach(ELM ${VARS})
-    if (IS_FIRST)
-      set(MSG ${ELM})
-      set(IS_FIRST FALSE)
-    else ()
-      set(MSG ${MSG}, ${ELM})
-    endif ()
-  endforeach()
-
-  message("${NAME} = "${MSG})
-endfunction(print VAR)
-
diff --git a/wrappers/java/Modules/.svn/text-base/FindADIOS.cmake.svn-base b/wrappers/java/Modules/.svn/text-base/FindADIOS.cmake.svn-base
deleted file mode 100644
index 8a55c77..0000000
--- a/wrappers/java/Modules/.svn/text-base/FindADIOS.cmake.svn-base
+++ /dev/null
@@ -1,136 +0,0 @@
-# - Find a ADIOS implementation
-#
-# === Variables ===
-#
-# This module will set the following variables:
-#   ADIOS_USE_MPI         Can be set to ON to force the use of the MPI library
-#                         Defaults to ON.
-#   ADIOS_FOUND           TRUE if FindADIOS found ADIOS flags
-#   ADIOS_COMPILE_FLAGS   Compilation flags for ADIOS programs
-#   ADIOS_INCLUDE_PATH    Include path(s) for ADIOS header
-#   ADIOS_LINK_FLAGS      Linking flags for ADIOS programs
-#   ADIOS_LIBRARIES       All libraries to link ADIOS programs against
-# 
-# === Example ===
-#
-#   set (ADIOS_USE_MPI OFF)
-#   find_package (ADIOS)
-#   if (ADIOS_FOUND)
-#     add_definitions (${ADIOS_COMPILE_FLAGS})  
-#     include_directories (${ADIOS_INCLUDE_PATH})
-#     target_link_libraries(foo ${ADIOS_LIBRARIES})
-#   endif ()
-#
-
-# NOTE: 
-# This module is written based FindMPI. Most routines are copied from FindMPI.
-
-# include this to handle the QUIETLY and REQUIRED arguments
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-include(GetPrerequisites)
-
-if(NOT DEFINED ADIOS_USE_MPI)
-  set(ADIOS_USE_MPI TRUE)
-endif()
-
-if (ADIOS_USE_MPI)
-  set(CONFIG_OPTION "")
-else ()
-  set(CONFIG_OPTION "-s")
-endif()
-
-execute_process(
-  COMMAND adios_config -c ${CONFIG_OPTION}
-  OUTPUT_VARIABLE ADIOS_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-
-# Extract compile flags from the compile command line
-string(REGEX MATCHALL "(^| )-[Df]([^\" ]+|\"[^\"]+\")" ADIOS_ALL_COMPILE_FLAGS "${ADIOS_COMPILE_CMDLINE}")
-set(ADIOS_COMPILE_FLAGS_WORK)
-
-foreach(FLAG ${ADIOS_ALL_COMPILE_FLAGS})
-  if (ADIOS_COMPILE_FLAGS_WORK)
-    set(ADIOS_COMPILE_FLAGS_WORK "${ADIOS_COMPILE_FLAGS_WORK} ${FLAG}")
-  else()
-    set(ADIOS_COMPILE_FLAGS_WORK ${FLAG})
-  endif()
-endforeach()
-
-# Extract include paths from compile command line
-string(REGEX MATCHALL "(^| )-I([^\" ]+|\"[^\"]+\")" ADIOS_ALL_INCLUDE_PATHS "${ADIOS_COMPILE_CMDLINE}")
-unset(ADIOS_INCLUDE_PATH_WORK)
-foreach(IPATH ${ADIOS_ALL_INCLUDE_PATHS})
-  string(REGEX REPLACE "^ ?-I" "" IPATH ${IPATH})
-  string(REGEX REPLACE "//" "/" IPATH ${IPATH})
-  list(APPEND ADIOS_INCLUDE_PATH_WORK ${IPATH})
-endforeach()
-
-execute_process(
-  COMMAND adios_config -l ${CONFIG_OPTION}
-  OUTPUT_VARIABLE  ADIOS_LINK_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-
-
-# Extract linker paths from the link command line
-string(REGEX MATCHALL "(^| |-Wl,)-L([^\" ]+|\"[^\"]+\")" ADIOS_ALL_LINK_PATHS "${ADIOS_LINK_CMDLINE}")
-unset(ADIOS_LINK_PATH)
-foreach(LPATH ${ADIOS_ALL_LINK_PATHS})
-  string(REGEX REPLACE "^(| |-Wl,)-L" "" LPATH ${LPATH})
-  string(REGEX REPLACE "//" "/" LPATH ${LPATH})
-  list(APPEND ADIOS_LINK_PATH ${LPATH})
-endforeach()
-
-# try using showme:libdirs if extracting didn't work.
-if (NOT ADIOS_LINK_PATH)
-  set(ADIOS_LINK_PATH ${ADIOS_LIBDIRS})
-  separate_arguments(ADIOS_LINK_PATH)
-endif()
-
-# Extract linker flags from the link command line
-string(REGEX MATCHALL "(^| )-Wl,([^\" ]+|\"[^\"]+\")" ADIOS_ALL_LINK_FLAGS "${ADIOS_LINK_CMDLINE}")
-set(ADIOS_LINK_FLAGS_WORK)
-foreach(FLAG ${ADIOS_ALL_LINK_FLAGS})
-  if (ADIOS_LINK_FLAGS_WORK)
-    set(ADIOS_LINK_FLAGS_WORK "${ADIOS_LINK_FLAGS_WORK} ${FLAG}")
-  else()
-    set(ADIOS_LINK_FLAGS_WORK ${FLAG})
-  endif()
-endforeach()
-
-# Extract the set of libraries to link against from the link command
-# line
-string(REGEX MATCHALL "(^| )-l([^\" ]+|\"[^\"]+\")" ADIOS_LIBNAMES "${ADIOS_LINK_CMDLINE}")
-
-# Determine full path names for all of the libraries that one needs
-# to link against in an MPI program
-unset(ADIOS_LIBRARIES_WORK)
-foreach(LIB ${ADIOS_LIBNAMES})
-  string(REGEX REPLACE "^ ?-l" "" LIB ${LIB})
-  # ADIOS_LIB is cached by find_library, but we don't want that.  Clear it first.
-  set(ADIOS_LIB "ADIOS_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
-  find_library(ADIOS_LIB NAMES ${LIB} HINTS ${ADIOS_LINK_PATH})
-
-  if (ADIOS_LIB)
-    list(APPEND ADIOS_LIBRARIES_WORK ${ADIOS_LIB})
-  elseif (NOT ADIOS_FIND_QUIETLY)
-    message(WARNING "Unable to find ADIOS library ${LIB}")
-  endif()
-endforeach()
-
-# Sanity check ADIOS_LIBRARIES to make sure there are enough libraries
-list(LENGTH ADIOS_LIBRARIES_WORK ADIOS_NUMLIBS)
-list(LENGTH ADIOS_LIBNAMES ADIOS_NUMLIBS_EXPECTED)
-if (NOT ADIOS_NUMLIBS EQUAL ADIOS_NUMLIBS_EXPECTED)
-  message("Expected ${ADIOS_NUMLIBS_EXPECTED} but found ${ADIOS_NUMLIBS}")
-  set(ADIOS_LIBRARIES_WORK "ADIOS_LIBRARIES-NOTFOUND")
-endif()
-
-# If we found MPI, set up all of the appropriate cache entries
-set(ADIOS_COMPILE_FLAGS ${ADIOS_COMPILE_FLAGS_WORK} CACHE STRING "ADIOS compilation flags"         FORCE)
-set(ADIOS_INCLUDE_PATH  ${ADIOS_INCLUDE_PATH_WORK}  CACHE STRING "ADIOS include path"              FORCE)
-set(ADIOS_LINK_FLAGS    ${ADIOS_LINK_FLAGS_WORK}    CACHE STRING "ADIOS linking flags"             FORCE)
-set(ADIOS_LIBRARIES     ${ADIOS_LIBRARIES_WORK}     CACHE STRING "ADIOS libraries to link against" FORCE)
-
-find_package_handle_standard_args(ADIOS DEFAULT_MSG ADIOS_INCLUDE_PATH ADIOS_LIBRARIES)
-
-
diff --git a/wrappers/java/Modules/.svn/text-base/FindPackageHandleStandardArgs.cmake.svn-base b/wrappers/java/Modules/.svn/text-base/FindPackageHandleStandardArgs.cmake.svn-base
deleted file mode 100644
index 1acb021..0000000
--- a/wrappers/java/Modules/.svn/text-base/FindPackageHandleStandardArgs.cmake.svn-base
+++ /dev/null
@@ -1,260 +0,0 @@
-# FIND_PACKAGE_HANDLE_STANDARD_ARGS(<name> ... )
-#
-# This function is intended to be used in FindXXX.cmake modules files.
-# It handles the REQUIRED, QUIET and version-related arguments to FIND_PACKAGE().
-# It also sets the <UPPERCASED_NAME>_FOUND variable.
-# The package is considered found if all variables <var1>... listed contain
-# valid results, e.g. valid filepaths.
-#
-# There are two modes of this function. The first argument in both modes is
-# the name of the Find-module where it is called (in original casing).
-#
-# The first simple mode looks like this:
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(<name> (DEFAULT_MSG|"Custom failure message") <var1>...<varN> )
-# If the variables <var1> to <varN> are all valid, then <UPPERCASED_NAME>_FOUND
-# will be set to TRUE.
-# If DEFAULT_MSG is given as second argument, then the function will generate
-# itself useful success and error messages. You can also supply a custom error message
-# for the failure case. This is not recommended.
-#
-# The second mode is more powerful and also supports version checking:
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME [REQUIRED_VARS <var1>...<varN>]
-#                                           [VERSION_VAR   <versionvar>
-#                                           [CONFIG_MODE]
-#                                           [FAIL_MESSAGE "Custom failure message"] )
-#
-# As above, if <var1> through <varN> are all valid, <UPPERCASED_NAME>_FOUND
-# will be set to TRUE.
-# After REQUIRED_VARS the variables which are required for this package are listed.
-# Following VERSION_VAR the name of the variable can be specified which holds
-# the version of the package which has been found. If this is done, this version
-# will be checked against the (potentially) specified required version used
-# in the find_package() call. The EXACT keyword is also handled. The default
-# messages include information about the required version and the version
-# which has been actually found, both if the version is ok or not.
-# Use the option CONFIG_MODE if your FindXXX.cmake module is a wrapper for
-# a find_package(... NO_MODULE) call, in this case all the information
-# provided by the config-mode of find_package() will be evaluated
-# automatically.
-# Via FAIL_MESSAGE a custom failure message can be specified, if this is not
-# used, the default message will be displayed.
-#
-# Example for mode 1:
-#
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2  DEFAULT_MSG  LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
-#
-# LibXml2 is considered to be found, if both LIBXML2_LIBRARY and
-# LIBXML2_INCLUDE_DIR are valid. Then also LIBXML2_FOUND is set to TRUE.
-# If it is not found and REQUIRED was used, it fails with FATAL_ERROR,
-# independent whether QUIET was used or not.
-# If it is found, success will be reported, including the content of <var1>.
-# On repeated Cmake runs, the same message won't be printed again.
-#
-# Example for mode 2:
-#
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(BISON  REQUIRED_VARS BISON_EXECUTABLE
-#                                             VERSION_VAR BISON_VERSION)
-# In this case, BISON is considered to be found if the variable(s) listed
-# after REQUIRED_VAR are all valid, i.e. BISON_EXECUTABLE in this case.
-# Also the version of BISON will be checked by using the version contained
-# in BISON_VERSION.
-# Since no FAIL_MESSAGE is given, the default messages will be printed.
-#
-# Another example for mode 2:
-#
-#    FIND_PACKAGE(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(Automoc4  CONFIG_MODE)
-# In this case, FindAutmoc4.cmake wraps a call to FIND_PACKAGE(Automoc4 NO_MODULE)
-# and adds an additional search directory for automoc4.
-# The following FIND_PACKAGE_HANDLE_STANDARD_ARGS() call produces a proper
-# success/error message.
-
-#=============================================================================
-# Copyright 2007-2009 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-INCLUDE(FindPackageMessage)
-INCLUDE(CMakeParseArguments)
-
-# internal helper macro
-MACRO(_FPHSA_FAILURE_MESSAGE _msg)
-  IF (${_NAME}_FIND_REQUIRED)
-    MESSAGE(FATAL_ERROR "${_msg}")
-  ELSE (${_NAME}_FIND_REQUIRED)
-    IF (NOT ${_NAME}_FIND_QUIETLY)
-      MESSAGE(STATUS "${_msg}")
-    ENDIF (NOT ${_NAME}_FIND_QUIETLY)
-  ENDIF (${_NAME}_FIND_REQUIRED)
-ENDMACRO(_FPHSA_FAILURE_MESSAGE _msg)
-
-
-# internal helper macro to generate the failure message when used in CONFIG_MODE:
-MACRO(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
-  # <name>_CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found:
-  IF(${_NAME}_CONFIG)
-    _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing: ${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})")
-  ELSE(${_NAME}_CONFIG)
-    # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version.
-    # List them all in the error message:
-    IF(${_NAME}_CONSIDERED_CONFIGS)
-      SET(configsText "")
-      LIST(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount)
-      MATH(EXPR configsCount "${configsCount} - 1")
-      FOREACH(currentConfigIndex RANGE ${configsCount})
-        LIST(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename)
-        LIST(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version)
-        SET(configsText "${configsText}    ${filename} (version ${version})\n")
-      ENDFOREACH(currentConfigIndex)
-      _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:\n${configsText}")
-
-    ELSE(${_NAME}_CONSIDERED_CONFIGS)
-      # Simple case: No Config-file was found at all:
-      _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}")
-    ENDIF(${_NAME}_CONSIDERED_CONFIGS)
-  ENDIF(${_NAME}_CONFIG)
-ENDMACRO(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
-
-
-FUNCTION(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
-
-# set up the arguments for CMAKE_PARSE_ARGUMENTS and check whether we are in
-# new extended or in the "old" mode:
-  SET(options CONFIG_MODE)
-  SET(oneValueArgs FAIL_MESSAGE VERSION_VAR)
-  SET(multiValueArgs REQUIRED_VARS)
-  SET(_KEYWORDS_FOR_EXTENDED_MODE  ${options} ${oneValueArgs} ${multiValueArgs} )
-  LIST(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX)
-
-  IF(${INDEX} EQUAL -1)
-    SET(FPHSA_FAIL_MESSAGE ${_FIRST_ARG})
-    SET(FPHSA_REQUIRED_VARS ${ARGN})
-    SET(FPHSA_VERSION_VAR)
-  ELSE(${INDEX} EQUAL -1)
-
-    CMAKE_PARSE_ARGUMENTS(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${_FIRST_ARG} ${ARGN})
-
-    IF(FPHSA_UNPARSED_ARGUMENTS)
-      MESSAGE(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"")
-    ENDIF(FPHSA_UNPARSED_ARGUMENTS)
-
-    IF(NOT FPHSA_FAIL_MESSAGE)
-      SET(FPHSA_FAIL_MESSAGE  "DEFAULT_MSG")
-    ENDIF(NOT FPHSA_FAIL_MESSAGE)
-  ENDIF(${INDEX} EQUAL -1)
-
-# now that we collected all arguments, process them
-
-  IF("${FPHSA_FAIL_MESSAGE}" STREQUAL "DEFAULT_MSG")
-    SET(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
-  ENDIF("${FPHSA_FAIL_MESSAGE}" STREQUAL "DEFAULT_MSG")
-
-  # In config-mode, we rely on the variable <package>_CONFIG, which is set by find_package()
-  # when it successfully found the config-file, including version checking:
-  IF(FPHSA_CONFIG_MODE)
-    LIST(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG)
-    LIST(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS)
-    SET(FPHSA_VERSION_VAR ${_NAME}_VERSION)
-  ENDIF(FPHSA_CONFIG_MODE)
-
-  IF(NOT FPHSA_REQUIRED_VARS)
-    MESSAGE(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
-  ENDIF(NOT FPHSA_REQUIRED_VARS)
-
-  LIST(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
-
-  STRING(TOUPPER ${_NAME} _NAME_UPPER)
-  STRING(TOLOWER ${_NAME} _NAME_LOWER)
-
-  # collect all variables which were not found, so they can be printed, so the
-  # user knows better what went wrong (#6375)
-  SET(MISSING_VARS "")
-  SET(DETAILS "")
-  SET(${_NAME_UPPER}_FOUND TRUE)
-  # check if all passed variables are valid
-  FOREACH(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
-    IF(NOT ${_CURRENT_VAR})
-      SET(${_NAME_UPPER}_FOUND FALSE)
-      SET(MISSING_VARS "${MISSING_VARS} ${_CURRENT_VAR}")
-    ELSE(NOT ${_CURRENT_VAR})
-      SET(DETAILS "${DETAILS}[${${_CURRENT_VAR}}]")
-    ENDIF(NOT ${_CURRENT_VAR})
-  ENDFOREACH(_CURRENT_VAR)
-
-
-  # version handling:
-  SET(VERSION_MSG "")
-  SET(VERSION_OK TRUE)
-  SET(VERSION ${${FPHSA_VERSION_VAR}} )
-  IF (${_NAME}_FIND_VERSION)
-
-    IF(VERSION)
-
-      IF(${_NAME}_FIND_VERSION_EXACT)       # exact version required
-        IF (NOT "${${_NAME}_FIND_VERSION}" VERSION_EQUAL "${VERSION}")
-          SET(VERSION_MSG "Found unsuitable version \"${VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
-          SET(VERSION_OK FALSE)
-        ELSE (NOT "${${_NAME}_FIND_VERSION}" VERSION_EQUAL "${VERSION}")
-          SET(VERSION_MSG "(found suitable exact version \"${VERSION}\")")
-        ENDIF (NOT "${${_NAME}_FIND_VERSION}" VERSION_EQUAL "${VERSION}")
-
-      ELSE(${_NAME}_FIND_VERSION_EXACT)     # minimum version specified:
-        IF ("${${_NAME}_FIND_VERSION}" VERSION_GREATER "${VERSION}")
-          SET(VERSION_MSG "Found unsuitable version \"${VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"")
-          SET(VERSION_OK FALSE)
-        ELSE ("${${_NAME}_FIND_VERSION}" VERSION_GREATER "${VERSION}")
-          SET(VERSION_MSG "(found suitable version \"${VERSION}\", required is \"${${_NAME}_FIND_VERSION}\")")
-        ENDIF ("${${_NAME}_FIND_VERSION}" VERSION_GREATER "${VERSION}")
-      ENDIF(${_NAME}_FIND_VERSION_EXACT)
-
-    ELSE(VERSION)
-
-      # if the package was not found, but a version was given, add that to the output:
-      IF(${_NAME}_FIND_VERSION_EXACT)
-         SET(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")")
-      ELSE(${_NAME}_FIND_VERSION_EXACT)
-         SET(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")")
-      ENDIF(${_NAME}_FIND_VERSION_EXACT)
-
-    ENDIF(VERSION)
-  ELSE (${_NAME}_FIND_VERSION)
-    IF(VERSION)
-      SET(VERSION_MSG "(found version \"${VERSION}\")")
-    ENDIF(VERSION)
-  ENDIF (${_NAME}_FIND_VERSION)
-
-  IF(VERSION_OK)
-    SET(DETAILS "${DETAILS}[v${VERSION}(${${_NAME}_FIND_VERSION})]")
-  ELSE(VERSION_OK)
-    SET(${_NAME_UPPER}_FOUND FALSE)
-  ENDIF(VERSION_OK)
-
-
-  # print the result:
-  IF (${_NAME_UPPER}_FOUND)
-    FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG}" "${DETAILS}")
-  ELSE (${_NAME_UPPER}_FOUND)
-
-    IF(FPHSA_CONFIG_MODE)
-      _FPHSA_HANDLE_FAILURE_CONFIG_MODE()
-    ELSE(FPHSA_CONFIG_MODE)
-      IF(NOT VERSION_OK)
-        _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})")
-      ELSE(NOT VERSION_OK)
-        _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing: ${MISSING_VARS}) ${VERSION_MSG}")
-      ENDIF(NOT VERSION_OK)
-    ENDIF(FPHSA_CONFIG_MODE)
-
-  ENDIF (${_NAME_UPPER}_FOUND)
-
-  SET(${_NAME_UPPER}_FOUND ${${_NAME_UPPER}_FOUND} PARENT_SCOPE)
-
-ENDFUNCTION(FIND_PACKAGE_HANDLE_STANDARD_ARGS _FIRST_ARG)
diff --git a/wrappers/java/gov/.svn/all-wcprops b/wrappers/java/gov/.svn/all-wcprops
deleted file mode 100644
index f6345b0..0000000
--- a/wrappers/java/gov/.svn/all-wcprops
+++ /dev/null
@@ -1,5 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov
-END
diff --git a/wrappers/java/gov/.svn/entries b/wrappers/java/gov/.svn/entries
deleted file mode 100644
index 63f26a2..0000000
--- a/wrappers/java/gov/.svn/entries
+++ /dev/null
@@ -1,38 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/java/gov
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-ornl
-dir
-

diff --git a/wrappers/java/gov/.svn/format b/wrappers/java/gov/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/java/gov/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/gov/ornl/.svn/all-wcprops b/wrappers/java/gov/ornl/.svn/all-wcprops
deleted file mode 100644
index 7a25f3d..0000000
--- a/wrappers/java/gov/ornl/.svn/all-wcprops
+++ /dev/null
@@ -1,5 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 58
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov/ornl
-END
diff --git a/wrappers/java/gov/ornl/.svn/entries b/wrappers/java/gov/ornl/.svn/entries
deleted file mode 100644
index 31ca767..0000000
--- a/wrappers/java/gov/ornl/.svn/entries
+++ /dev/null
@@ -1,38 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/java/gov/ornl
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-ccs
-dir
-

diff --git a/wrappers/java/gov/ornl/.svn/format b/wrappers/java/gov/ornl/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/java/gov/ornl/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/gov/ornl/ccs/.svn/all-wcprops b/wrappers/java/gov/ornl/ccs/.svn/all-wcprops
deleted file mode 100644
index fa300be..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/all-wcprops
+++ /dev/null
@@ -1,35 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 62
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov/ornl/ccs
-END
-Adios.java
-K 25
-svn:wc:ra_dav:version-url
-V 73
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov/ornl/ccs/Adios.java
-END
-AdiosVarinfo.java
-K 25
-svn:wc:ra_dav:version-url
-V 80
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/gov/ornl/ccs/AdiosVarinfo.java
-END
-AdiosBufferAllocWhen.java
-K 25
-svn:wc:ra_dav:version-url
-V 88
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/gov/ornl/ccs/AdiosBufferAllocWhen.java
-END
-AdiosFlag.java
-K 25
-svn:wc:ra_dav:version-url
-V 77
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/gov/ornl/ccs/AdiosFlag.java
-END
-AdiosDatatype.java
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn-ewok/ADIOS/!svn/ver/1864/trunk/wrappers/java/gov/ornl/ccs/AdiosDatatype.java
-END
diff --git a/wrappers/java/gov/ornl/ccs/.svn/entries b/wrappers/java/gov/ornl/ccs/.svn/entries
deleted file mode 100644
index 11e327d..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/entries
+++ /dev/null
@@ -1,307 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/java/gov/ornl/ccs
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-Adios.java
-file
-
-
-
-
-2012-08-27T21:26:07.098999Z
-f3e60c409cc29198a47ea81a21e35771
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-9064
-

-AdiosFile.java
-file
-
-
-
-
-2012-07-02T16:20:13.112154Z
-85fd890633b5d69f960a39b2b0c8deab
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1963
-

-AdiosTest.java
-file
-
-
-
-
-2012-07-02T16:20:13.116151Z
-eb1a463c1cb31ca8a5df07b01a4523ff
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1264
-

-AdiosVarinfo.java
-file
-
-
-
-
-2012-08-27T21:26:07.114015Z
-853394074e2fd1b221f61cb115c4404d
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4172
-

-AdiosBufferAllocWhen.java
-file
-
-
-
-
-2012-07-09T22:53:06.755617Z
-467a896c005eacb51093c4b6a8239021
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-259
-

-AdiosFlag.java
-file
-
-
-
-
-2012-07-09T22:53:06.758615Z
-8beb0a6259caef55ce50299541c26094
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-235
-

-AdiosDatatype.java
-file
-
-
-
-
-2012-07-11T21:22:26.039700Z
-00b04f2ab9be8cdc105761379ebdae67
-2012-07-11T18:44:01.762605Z
-1864
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-813
-

-AdiosGroup.java
-file
-
-
-
-
-2012-07-02T16:20:13.184151Z
-12ad77cb2fe078c997090e15cd532734
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1966
-

diff --git a/wrappers/java/gov/ornl/ccs/.svn/format b/wrappers/java/gov/ornl/ccs/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/Adios.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/Adios.java.svn-base
deleted file mode 100644
index c775977..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/Adios.java.svn-base
+++ /dev/null
@@ -1,266 +0,0 @@
-// The AdiosJava.java file
-package gov.ornl.ccs;
-
-import java.nio.ByteBuffer;
-import java.nio.DoubleBuffer;
-
-public class Adios
-{
-    // Declaration of the Native (C) function
-    private static native int adios_init (String xml_fname);
-
-    private static native long adios_open (String group_name, String file_name, String mode, long comm);
-    private static native long adios_group_size (long fh, long group_size);
-    private static native int adios_write (long fh, String var_name, byte val);
-    private static native int adios_write (long fh, String var_name, int val);
-    private static native int adios_write (long fh, String var_name, long val);
-    private static native int adios_write (long fh, String var_name, float val);
-    private static native int adios_write (long fh, String var_name, double val);
-    private static native int adios_write (long fh, String var_name, byte[] val);
-    private static native int adios_write (long fh, String var_name, int[] val);
-    private static native int adios_write (long fh, String var_name, long[] val);
-    private static native int adios_write (long fh, String var_name, float[] val);
-    private static native int adios_write (long fh, String var_name, double[] val);
-
-    // Note: adios_read is a delayed operation
-    // Only non-buffered method will populate the data
-    private static native byte adios_read_byte_value (long fh, String var_name);
-    private static native int adios_read_int_value (long fh, String var_name);
-    private static native long adios_read_long_value (long fh, String var_name);
-    private static native float adios_read_float_value (long fh, String var_name);
-    private static native double adios_read_double_value (long fh, String var_name);
-
-    private static native int adios_read (long fh, String var_name, byte[] val);
-    private static native int adios_read (long fh, String var_name, int[] val);
-    private static native int adios_read (long fh, String var_name, long[] val);
-    private static native int adios_read (long fh, String var_name, float[] val);
-    private static native int adios_read (long fh, String var_name, double[] val);
-
-    private static native int adios_close (long fh);
-    private static native int adios_finalize (int id);
-
-    private static native int adios_mpi_init(String[] args);
-    private static native int adios_mpi_comm_rank(long comm);
-    private static native int adios_mpi_comm_size(long comm);
-    private static native int adios_mpi_finalize();
-    private static native long adios_mpi_comm_world();
-
-    private static native long adios_open_and_set_group_size (String group_name, String file_name, String mode, long group_size, long comm);
-
-    private static native int adios_init_noxml();
-    private static native int adios_allocate_buffer(int when, long size);
-    private static native long adios_declare_group(String name, String time_index, int stats);
-    private static native int adios_define_var(long group_id, String name, String path, int type, String dimensions, String global_dimensions, String local_offsets);
-    private static native int adios_define_attribute(long group_id, String name, String path, int type, String value, String var);
-    private static native int adios_select_method(long group_id, String method, String parameters, String base_path);
-
-    static
-    {
-        // The runtime system executes a class's static
-        // initializer when it loads the class.
-        System.loadLibrary("AdiosJava");
-    }
-
-	/* Call adios_init */
-    public static int Init(String xml_fname)
-    {
-        return adios_init(xml_fname);
-    }
-    
-	/* Call adios_open. Return a group handler */
-    public static long Open(String group_name, String file_name, String mode, long comm)
-    {
-        return adios_open(group_name, file_name, mode, comm);
-    }
-
-	/* Call adios_group_size and return the total size */
-    public static long SetGroupSize(long fh, long group_size)
-    {
-        return adios_group_size (fh, group_size);
-    }
-
-	/* Call adios_write and return the total size */
-    public static long Write (long fh, String var_name, byte value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, int value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, long value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, float value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, double value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, byte[] value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, int[] value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, long[] value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, float[] value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static long Write (long fh, String var_name, double[] value)
-    {
-        return adios_write (fh, var_name, value);
-    }
-
-    public static byte ReadByteValue (long fh, String var_name)
-    {
-        return adios_read_byte_value(fh, var_name);
-    }
-
-    public static int ReadIntValue (long fh, String var_name)
-    {
-        return adios_read_int_value(fh, var_name);
-    }
-
-    public static long ReadLongValue (long fh, String var_name)
-    {
-        return adios_read_long_value(fh, var_name);
-    }
-
-    public static float ReadFloatValue (long fh, String var_name)
-    {
-        return adios_read_float_value(fh, var_name);
-    }
-
-    public static double ReadDoubleValue (long fh, String var_name)
-    {
-        return adios_read_double_value(fh, var_name);
-    }
-
-    public static long Read (long fh, String var_name, byte[] value)
-    {
-        return adios_read (fh, var_name, value);
-    }
-
-    public static long Read (long fh, String var_name, int[] value)
-    {
-        return adios_read (fh, var_name, value);
-    }
-
-    public static long Read (long fh, String var_name, long[] value)
-    {
-        return adios_read (fh, var_name, value);
-    }
-
-    public static long Read (long fh, String var_name, float[] value)
-    {
-        return adios_read (fh, var_name, value);
-    }
-
-    public static long Read (long fh, String var_name, double[] value)
-    {
-        return adios_read (fh, var_name, value);
-    }
-
-	/* Call adios_close */
-    public static int Close (long fh)
-    {
-        return adios_close (fh);
-    }
-
-	/* Call adios_finalize */
-    public static int Finalize (int id)
-    {
-        return adios_finalize(id);
-    }
-
-	/* Call MPI_Init */
-    public static int MPI_Init(String[] args)
-    {
-        return adios_mpi_init(args);
-    }
-
- 	/* Call MPI_Comm_rank */
-    public static int MPI_Comm_rank(long comm)
-    {
-        return adios_mpi_comm_rank(comm);
-    }
-
-	/* Call MPI_Comm_size */
-    public static int MPI_Comm_size(long comm)
-    {
-        return adios_mpi_comm_size(comm);
-    }
-
-	/* Call MPI_Finalize */
-    public static int MPI_Finalize()
-    {
-        return adios_mpi_finalize();
-    }
-
-	/* Get MPI_COMM_WORLD */
-    public static long MPI_COMM_WORLD()
-    {
-        return adios_mpi_comm_world();
-    }
-
-    public static long OpenAndSetGroupSize(String group_name, String file_name, String mode, long group_size, long comm)
-    {
-        return adios_open_and_set_group_size(group_name, file_name, mode, group_size, comm);
-    }
-
-	/* Call adios_init_noxml */
-    public static int Init_Noxml()
-    {
-        return adios_init_noxml();
-    }
-    
-	/* Call adios_allocate_buffer */
-    public static int AllocateBuffer(AdiosBufferAllocWhen when, long size)
-    {
-        return adios_allocate_buffer(when.getCode(), size);
-    }
-    
-
-	/* Call adios_declare_group */
-    public static long DeclareGroup(String name, String time_index, AdiosFlag stats)
-    {
-        return adios_declare_group(name, time_index, stats.getCode());
-    }
-
-	/* Call adios_define_var */
-    public static int DefineVar(long group_id, String name, String path, AdiosDatatype type, String dimensions, String global_dimensions, String local_offsets)
-    {
-        return adios_define_var(group_id, name, path, type.getCode(), dimensions, global_dimensions, local_offsets);
-    }
-
- 	/* Call adios_define_attribute */
-    public static int DefineAttribute(long group_id, String name, String path, AdiosDatatype type, String value, String var)
-    {
-        return adios_define_attribute(group_id, name, path, type.getCode(), value, var);
-    }
-
- 	/* Call adios_select_method */
-    public static int SelectMethod(long group_id, String method, String parameters, String base_path)
-    {
-        return adios_select_method(group_id, method, parameters, base_path);
-    }
-}
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosBufferAllocWhen.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosBufferAllocWhen.java.svn-base
deleted file mode 100644
index bc8f39a..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosBufferAllocWhen.java.svn-base
+++ /dev/null
@@ -1,17 +0,0 @@
-package gov.ornl.ccs;
-
-public enum AdiosBufferAllocWhen {
-    UNKNOWN (0),
-    NOW (1), 
-    LATER (2);
-
-    private int code;
-
-    AdiosBufferAllocWhen(int code) {
-        this.code = code;
-    }
-
-    public int getCode() {
-        return this.code;
-    }
-}
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosDatatype.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosDatatype.java.svn-base
deleted file mode 100644
index bb33487..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosDatatype.java.svn-base
+++ /dev/null
@@ -1,33 +0,0 @@
-package gov.ornl.ccs;
-
-public enum AdiosDatatype {
-    UNKNOWN(-1)             /* (SIZE) */
-    ,BYTE(0)                 /* (1) */
-    ,SHORT(1)                /* (2) */
-    ,INTEGER(2)              /* (4) */
-    ,LONG(4)                 /* (8) */
-    
-    ,UNSIGNED_BYTE(50)       /* (1) */
-    ,UNSIGNED_SHORT(51)      /* (2) */
-    ,UNSIGNED_INTEGER(52)    /* (4) */
-    ,UNSIGNED_LONG(54)       /* (8) */
-    
-    ,REAL(5)                 /* (4) */
-    ,DOUBLE(6)               /* (8) */
-    ,LONG_DOUBLE(7)          /* (16) */
-    
-    ,STRING(9)               /* (?) */
-    ,COMPLEX(10)             /* (8) */
-    ,DOUBLE_COMPLEX(11)      /* (16) */;
-        
-    private int code;
-
-    AdiosDatatype(int code) {
-        this.code = code;
-    }
-
-    public int getCode() {
-        return this.code;
-    }
-}
-
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosFile.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosFile.java.svn-base
deleted file mode 100644
index ceeffa2..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosFile.java.svn-base
+++ /dev/null
@@ -1,65 +0,0 @@
-// The AdiosJava.java file
-package gov.ornl.ccs;
-
-public class AdiosFile
-{
-
-    // Declaration of the Native (C) function
-    private native int adios_fopen (String path, long comm);
-    private native int adios_fclose ();
-
-    public long fp;
-    public long fh;
-    public int groups_count;
-    public int vars_count;
-    public int attrs_count;
-    public int tidx_start;
-    public int ntimesteps;
-    public int version;
-    public long file_size;
-    public int endianness;
-    public String[] group_namelist;
-
-    static
-    {
-        // The runtime system executes a class's static
-        // initializer when it loads the class.
-        System.loadLibrary("AdiosJava");
-    }
-
-    public int open(String path, long comm)
-    {
-        return adios_fopen(path, comm);
-    }
-
-    public int close()
-    {
-        return adios_fclose();
-    }
-
-    public String toString()
-    {
-        StringBuilder result = new StringBuilder();
-        String NEW_LINE = System.getProperty("line.separator");
-
-        result.append(this.getClass().getName() + " Object {" + NEW_LINE);
-        result.append(" fp: " + fp + NEW_LINE);
-        result.append(" fh: " + fh + NEW_LINE);
-        result.append(" groups_count: " + groups_count + NEW_LINE);
-        result.append(" vars_count: " + vars_count + NEW_LINE);
-        result.append(" attrs_count: " + attrs_count + NEW_LINE);
-        result.append(" tidx_start: " + tidx_start + NEW_LINE);
-        result.append(" ntimesteps: " + ntimesteps + NEW_LINE);
-        result.append(" version: " + version + NEW_LINE);
-        result.append(" file_size: " + file_size + NEW_LINE);
-        result.append(" endianness: " + endianness + NEW_LINE);
-        if (group_namelist != null) {
-            for (int i = 0; i < groups_count; i++) {
-                result.append(" group_namelist[" + i + "]: " + group_namelist[i] + NEW_LINE);
-            }
-        }
-        result.append("}");
-
-        return result.toString();
-    }
-}
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosFlag.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosFlag.java.svn-base
deleted file mode 100644
index 60f05dd..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosFlag.java.svn-base
+++ /dev/null
@@ -1,18 +0,0 @@
-package gov.ornl.ccs;
-
-public enum AdiosFlag {
-    UNKNOWN (0),
-    YES (1), 
-    NO (2);
-
-    private int code;
-
-    AdiosFlag(int code) {
-        this.code = code;
-    }
-
-    public int getCode() {
-        return this.code;
-    }
-}
-
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosGroup.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosGroup.java.svn-base
deleted file mode 100644
index 64b76d6..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosGroup.java.svn-base
+++ /dev/null
@@ -1,71 +0,0 @@
-package gov.ornl.ccs;
-
-import java.util.ArrayList;
-
-public class AdiosGroup
-{
-    // Declaration of the Native (C) function
-    private native int adios_gopen (long fp, String grpname);
-    private native int adios_gclose ();
-
-    AdiosFile file;
-    public long gp;
-    public long gh;
-    public int grpid;
-    public int vars_count;
-    public int attrs_count;
-    public String[] var_namelist;
-    public String[] attr_namelist;
-
-    static
-    {
-        // The runtime system executes a class's static
-        // initializer when it loads the class.
-        System.loadLibrary("AdiosJava");
-    }
-
-    public AdiosGroup(AdiosFile file)
-    {
-        this.file = file;
-    }
-
-    public int open(String grpname)
-    {
-        return adios_gopen(file.fp, grpname);
-    }
-
-    public int close()
-    {
-        return adios_gclose();
-    }
-
-    public String toString()
-    {
-        StringBuilder result = new StringBuilder();
-        String NEW_LINE = System.getProperty("line.separator");
-
-        result.append(this.getClass().getName() + " Object {" + NEW_LINE);
-        result.append(" gp: " + gp + NEW_LINE);
-        result.append(" gh: " + gh + NEW_LINE);
-        result.append(" vars_count: " + vars_count + NEW_LINE);
-        result.append(" attrs_count: " + attrs_count + NEW_LINE);
-
-        if (var_namelist != null) {
-            result.append(" var_namelist.length: " + var_namelist.length + NEW_LINE);
-            for (int i = 0; i < var_namelist.length; i++) {
-                result.append(" var_namelist[" + i + "]: " + var_namelist[i] + NEW_LINE);
-            }
-        }
-
-        if (attr_namelist != null) {
-            result.append(" attr_namelist.length: " + attr_namelist.length + NEW_LINE);
-            for (int i = 0; i < attr_namelist.length; i++) {
-                result.append(" attr_namelist[" + i + "]: " + attr_namelist[i] + NEW_LINE);
-            }
-        }
-
-        result.append("}");
-
-        return result.toString();
-    }
-}
\ No newline at end of file
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosTest.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosTest.java.svn-base
deleted file mode 100644
index e619d01..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosTest.java.svn-base
+++ /dev/null
@@ -1,50 +0,0 @@
-package gov.ornl.ccs;
-
-import gov.ornl.ccs.Adios;
-import gov.ornl.ccs.AdiosFile;
-import gov.ornl.ccs.AdiosGroup;
-
-public class AdiosTest
-{
-    // The main program
-    public static void main(String[] args)
-    {
-        System.out.println("Hello");
-
-        //Adios adios = new Adios();
-        //adios.init();
-
-        AdiosFile file = new AdiosFile();
-        file.open("adios_global.bp");
-
-        AdiosGroup group = new AdiosGroup(file);
-        group.open("temperature");
-
-        AdiosVarinfo var = new AdiosVarinfo(group);
-        var.inq("temperature");
-
-        long[] start = {0, 0};
-        long[] count = {1, 10};
-        double[] output = var.read(start, count);
-        //double[] output = var.read(start, count);
-
-        System.out.println("output.length = " + output.length);
-        for (int i = 0; i < output.length; i++) {
-            System.out.println("output[" + i + "] = " + output[i]);
-        }
-
-        var.close();
-        group.close();
-        file.close();
-
-        //AdiosGroup group = new AdiosGroup();
-        //group.open("adios_global.bp");
-        //group.open("temperature");
-
-        
-        System.out.println();
-        System.out.println(file);
-        System.out.println(group);
-        System.out.println(var);
-    }
-}
diff --git a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosVarinfo.java.svn-base b/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosVarinfo.java.svn-base
deleted file mode 100644
index 9384b7c..0000000
--- a/wrappers/java/gov/ornl/ccs/.svn/text-base/AdiosVarinfo.java.svn-base
+++ /dev/null
@@ -1,151 +0,0 @@
-// The AdiosJava.java file
-package gov.ornl.ccs;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-public class AdiosVarinfo
-{
-
-    // Declaration of the Native (C) function
-    private native int adios_inq_var(long gp, String varname);
-    private native int adios_free_varinfo();
-
-    //private native double[] adios_read_var_byid(long gp, int varid, long[] start, long[] count);
-
-    private native int adios_read(long gp, int varid, long[] start, long[] count, byte[] out);
-    private native int adios_read(long gp, int varid, long[] start, long[] count, int[] out);
-    private native int adios_read(long gp, int varid, long[] start, long[] count, long[] out);
-    private native int adios_read(long gp, int varid, long[] start, long[] count, float[] out);
-    private native int adios_read(long gp, int varid, long[] start, long[] count, double[] out);
-
-    AdiosGroup group;
-
-    public long vp;
-    public int grpid;
-    public int varid;
-    public int type;
-    public int ndim;
-    public long[] dims;
-    public int timedim;
-    public byte[] value;
-
-    static
-    {
-        // The runtime system executes a class's static
-        // initializer when it loads the class.
-        System.loadLibrary("AdiosJava");
-    }
-
-    public AdiosVarinfo(AdiosGroup group)
-    {
-        this.group = group;
-    }
-
-    public int inq(String varname)
-    {
-        return adios_inq_var(group.gp, varname);
-    }
-
-    public int close()
-    {
-        return adios_free_varinfo();
-    }
-
-    public int read(long[] start, long[] count, byte[] out)
-    {
-        return adios_read(group.gp, varid, start, count, out);
-    }
-
-    public int read(long[] start, long[] count, int[] out)
-    {
-        return adios_read(group.gp, varid, start, count, out);
-    }
-
-    public int read(long[] start, long[] count, long[] out)
-    {
-        return adios_read(group.gp, varid, start, count, out);
-    }
-
-    public int read(long[] start, long[] count, float[] out)
-    {
-        return adios_read(group.gp, varid, start, count, out);
-    }
-
-    public int read(long[] start, long[] count, double[] out)
-    {
-        return adios_read(group.gp, varid, start, count, out);
-    }
-
-    public byte[] read()
-    {
-        return value;
-    }
-
-    public int readIntValue()
-    {
-        ByteBuffer bb = ByteBuffer.wrap(value);
-        if (group.file.endianness == 0)
-            bb.order(ByteOrder.LITTLE_ENDIAN);
-        else
-            bb.order(ByteOrder.BIG_ENDIAN);
-
-        return bb.getInt();
-    }
-
-    public long readLongValue()
-    {
-        ByteBuffer bb = ByteBuffer.wrap(value);
-        if (group.file.endianness == 0)
-            bb.order(ByteOrder.LITTLE_ENDIAN);
-        else
-            bb.order(ByteOrder.BIG_ENDIAN);
-
-        return bb.getLong();
-    }
-
-    public float readFloatValue()
-    {
-        ByteBuffer bb = ByteBuffer.wrap(value);
-        if (group.file.endianness == 0)
-            bb.order(ByteOrder.LITTLE_ENDIAN);
-        else
-            bb.order(ByteOrder.BIG_ENDIAN);
-
-        return bb.getFloat();
-    }
-
-    public double readDoubleValue()
-    {
-        ByteBuffer bb = ByteBuffer.wrap(value);
-        if (group.file.endianness == 0)
-            bb.order(ByteOrder.LITTLE_ENDIAN);
-        else
-            bb.order(ByteOrder.BIG_ENDIAN);
-
-        return bb.getDouble();
-    }
-
-    public String toString()
-    {
-        StringBuilder result = new StringBuilder();
-        String NEW_LINE = System.getProperty("line.separator");
-
-        result.append(this.getClass().getName() + " Object {" + NEW_LINE);
-        result.append(" vp: " + vp + NEW_LINE);
-        result.append(" grpid: " + grpid + NEW_LINE);
-        result.append(" varid: " + varid + NEW_LINE);
-        result.append(" type: " + type + NEW_LINE);
-        result.append(" ndim: " + ndim + NEW_LINE);
-        result.append(" dims.length: " + dims.length + NEW_LINE);
-        if (dims.length > 0) {
-            for (int i = 0; i < dims.length; i++) {
-                result.append(" dims[" + i + "]: " + dims[i] + NEW_LINE);
-            }
-        }
-        result.append(" timedim: " + timedim + NEW_LINE);
-        result.append("}");
-
-        return result.toString();
-    }
-}
diff --git a/wrappers/java/gov/ornl/ccs/Adios.java b/wrappers/java/gov/ornl/ccs/Adios.java
index c775977..e9fc96c 100644
--- a/wrappers/java/gov/ornl/ccs/Adios.java
+++ b/wrappers/java/gov/ornl/ccs/Adios.java
@@ -7,7 +7,7 @@ import java.nio.DoubleBuffer;
 public class Adios
 {
     // Declaration of the Native (C) function
-    private static native int adios_init (String xml_fname);
+    private static native int adios_init (String xml_fname, long comm);
 
     private static native long adios_open (String group_name, String file_name, String mode, long comm);
     private static native long adios_group_size (long fh, long group_size);
@@ -47,7 +47,7 @@ public class Adios
 
     private static native long adios_open_and_set_group_size (String group_name, String file_name, String mode, long group_size, long comm);
 
-    private static native int adios_init_noxml();
+    private static native int adios_init_noxml(long comm);
     private static native int adios_allocate_buffer(int when, long size);
     private static native long adios_declare_group(String name, String time_index, int stats);
     private static native int adios_define_var(long group_id, String name, String path, int type, String dimensions, String global_dimensions, String local_offsets);
@@ -62,9 +62,9 @@ public class Adios
     }
 
 	/* Call adios_init */
-    public static int Init(String xml_fname)
+    public static int Init(String xml_fname, long comm)
     {
-        return adios_init(xml_fname);
+        return adios_init(xml_fname, comm);
     }
     
 	/* Call adios_open. Return a group handler */
@@ -228,9 +228,9 @@ public class Adios
     }
 
 	/* Call adios_init_noxml */
-    public static int Init_Noxml()
+    public static int Init_Noxml(long comm)
     {
-        return adios_init_noxml();
+        return adios_init_noxml(comm);
     }
     
 	/* Call adios_allocate_buffer */
diff --git a/wrappers/java/gov_ornl_ccs_Adios.cxx b/wrappers/java/gov_ornl_ccs_Adios.cxx
index 941eb51..a448125 100644
--- a/wrappers/java/gov_ornl_ccs_Adios.cxx
+++ b/wrappers/java/gov_ornl_ccs_Adios.cxx
@@ -64,7 +64,7 @@
  */
 JNIEXPORT jint JNICALL 
 Java_gov_ornl_ccs_Adios_adios_1init 
-(JNIEnv *env, jclass cls, jstring xml_fname)
+(JNIEnv *env, jclass cls, jstring xml_fname, jlong comm)
 {
     //std::cout << __FUNCTION__ << "..." << std::endl;
     int result;
@@ -72,7 +72,7 @@ Java_gov_ornl_ccs_Adios_adios_1init
 
     STR_ALLOC(xml_fname);
 
-    result = adios_init(str_xml_fname);
+    result = adios_init(str_xml_fname, (MPI_Comm) comm);
     //std::cout << "result = " << result << std::endl;
     
     STR_FREE(xml_fname);
@@ -102,7 +102,7 @@ JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1open
     //std::cout << "[IN] str_file_name = " << str_file_name << std::endl;
     //std::cout << "[IN] str_mode = " << str_mode << std::endl;
     //std::cout << "[IN] comm = " << (long) comm << std::endl;
-    result = adios_open(&fd_p, str_group_name, str_file_name, str_mode, &comm);
+    result = adios_open(&fd_p, str_group_name, str_file_name, str_mode, (MPI_Comm) comm);
     //std::cout << "[OUT] fd_p = " << fd_p << std::endl;
     //std::cout << "[OUT] result = " << result << std::endl;
 
@@ -333,7 +333,7 @@ JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1open_1and_1set_1group_1si
     //std::cout << "[IN] str_file_name = " << str_file_name << std::endl;
     //std::cout << "[IN] str_mode = " << str_mode << std::endl;
     //std::cout << "[IN] comm = " << (long) comm << std::endl;
-    result = adios_open(&fd_p, str_group_name, str_file_name, str_mode, &comm);
+    result = adios_open(&fd_p, str_group_name, str_file_name, str_mode, (MPI_Comm) comm);
     //std::cout << "[OUT] fd_p = " << fd_p << std::endl;
     //std::cout << "[OUT] result = " << result << std::endl;
 
@@ -356,9 +356,9 @@ JNIEXPORT jlong JNICALL Java_gov_ornl_ccs_Adios_adios_1open_1and_1set_1group_1si
  */
 JNIEXPORT jint JNICALL 
 Java_gov_ornl_ccs_Adios_adios_1init_1noxml
-(JNIEnv *env, jclass cls)
+(JNIEnv *env, jclass cls, jlong comm)
 {
-    return adios_init_noxml();
+    return adios_init_noxml((MPI_Comm) comm);
 }
 
 /*
diff --git a/wrappers/java/test/.svn/all-wcprops b/wrappers/java/test/.svn/all-wcprops
deleted file mode 100644
index da1c7f0..0000000
--- a/wrappers/java/test/.svn/all-wcprops
+++ /dev/null
@@ -1,29 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 54
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/test
-END
-AdiosTest.java
-K 25
-svn:wc:ra_dav:version-url
-V 69
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/test/AdiosTest.java
-END
-test1.sh
-K 25
-svn:wc:ra_dav:version-url
-V 63
-/svn-ewok/ADIOS/!svn/ver/1988/trunk/wrappers/java/test/test1.sh
-END
-test2.sh
-K 25
-svn:wc:ra_dav:version-url
-V 63
-/svn-ewok/ADIOS/!svn/ver/1904/trunk/wrappers/java/test/test2.sh
-END
-AdiosNoxmlTest.java
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/svn-ewok/ADIOS/!svn/ver/1818/trunk/wrappers/java/test/AdiosNoxmlTest.java
-END
diff --git a/wrappers/java/test/.svn/entries b/wrappers/java/test/.svn/entries
deleted file mode 100644
index 4a221ea..0000000
--- a/wrappers/java/test/.svn/entries
+++ /dev/null
@@ -1,171 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/java/test
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-AdiosTest.java
-file
-
-
-
-
-2012-08-27T21:26:06.881003Z
-1ca8d412976a891fea39fae7b2f7774b
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3447
-

-test1.sh
-file
-
-
-
-
-2012-08-27T21:26:06.887003Z
-85fe96f9e1e319ff4d10134e72d9439d
-2012-08-24T20:38:58.492553Z
-1988
-jyc
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1127
-

-test2.sh
-file
-
-
-
-
-2012-07-18T17:27:57.926903Z
-486e4b330f6bc4283831fa24da65cf50
-2012-07-16T18:03:02.225950Z
-1904
-jyc
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-311
-

-AdiosNoxmlTest.java
-file
-
-
-
-
-2012-07-09T22:53:06.630614Z
-2cb5eaaed48d348ab3ad44bc96575b46
-2012-07-09T20:01:29.504650Z
-1818
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1995
-

diff --git a/wrappers/java/test/.svn/format b/wrappers/java/test/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/java/test/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/java/test/.svn/prop-base/test1.sh.svn-base b/wrappers/java/test/.svn/prop-base/test1.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/wrappers/java/test/.svn/prop-base/test1.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/wrappers/java/test/.svn/prop-base/test2.sh.svn-base b/wrappers/java/test/.svn/prop-base/test2.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/wrappers/java/test/.svn/prop-base/test2.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/wrappers/java/test/.svn/text-base/AdiosNoxmlTest.java.svn-base b/wrappers/java/test/.svn/text-base/AdiosNoxmlTest.java.svn-base
deleted file mode 100644
index 41c871f..0000000
--- a/wrappers/java/test/.svn/text-base/AdiosNoxmlTest.java.svn-base
+++ /dev/null
@@ -1,57 +0,0 @@
-import gov.ornl.ccs.*;
-
-import java.nio.ByteBuffer;
-
-public class AdiosNoxmlTest
-{
-    // The main program
-    public static void main(String[] args)
-    {
-        System.out.println(">>> AdiosJava Noxml Test Drive");
-        
-        System.out.println(">>> ADIOS NOXML API ... ");
-        Adios.MPI_Init(new String[0]);
-        long comm = Adios.MPI_COMM_WORLD();
-        int rank = Adios.MPI_Comm_rank(comm);
-        int size = Adios.MPI_Comm_size(comm);
-        System.out.println("[DEBUG] MPI rank/size = " + rank + " / " + size);
-        System.out.println("[DEBUG] MPI &comm     = " + comm);
-
-        Adios.Init_Noxml();
-        Adios.AllocateBuffer(AdiosBufferAllocWhen.NOW, 10);
-
-        long group_id = Adios.DeclareGroup("restart", "iter", AdiosFlag.YES);
-        Adios.SelectMethod(group_id, "MPI", "", "");
-        Adios.DefineVar(group_id, "NX", "", AdiosDatatype.INTEGER, "", "", "");
-        Adios.DefineVar(group_id, "G", "", AdiosDatatype.INTEGER, "", "", "");
-        Adios.DefineVar(group_id, "O", "", AdiosDatatype.INTEGER, "", "", "");
-        Adios.DefineVar(group_id, "temperature", "", AdiosDatatype.DOUBLE, "NX", "G", "O");
-
-        System.out.println(">>> ADIOS Write API ... ");
-        long adios_handle = Adios.Open ("restart", "adios_noxml.bp", "w", comm);
-
-        int NX = 10; 
-        int G = NX * size;
-        int O = NX * rank;
-
-        double[] t = new double[NX];
-        for (int i = 0; i < NX; i++) {
-            t[i] = rank * NX + (double) i;
-        }
-
-        long groupsize = 4 + 4 + 4 + 8 * (1) * (NX);
-        
-        long adios_totalsize = Adios.SetGroupSize(adios_handle, groupsize);
-        
-        Adios.Write (adios_handle, "NX", NX);
-        Adios.Write (adios_handle, "G", G);
-        Adios.Write (adios_handle, "O", O);
-        Adios.Write (adios_handle, "temperature", t);
-        Adios.Close (adios_handle);
-        
-        Adios.Finalize (rank);        
-        Adios.MPI_Finalize();
-
-        System.out.println(">>> Done.");
-    }
-}
diff --git a/wrappers/java/test/.svn/text-base/AdiosTest.java.svn-base b/wrappers/java/test/.svn/text-base/AdiosTest.java.svn-base
deleted file mode 100644
index c1b9ce0..0000000
--- a/wrappers/java/test/.svn/text-base/AdiosTest.java.svn-base
+++ /dev/null
@@ -1,106 +0,0 @@
-import gov.ornl.ccs.Adios;
-import gov.ornl.ccs.AdiosFile;
-import gov.ornl.ccs.AdiosGroup;
-import gov.ornl.ccs.AdiosVarinfo;
-import java.nio.ByteBuffer;
-
-public class AdiosTest
-{
-    // The main program
-    public static void main(String[] args)
-    {
-        System.out.println(">>> AdiosJava Test Drive");
-        System.out.println(">>> ADIOS Write API ... ");
-        
-        Adios.MPI_Init(new String[0]);
-        long comm = Adios.MPI_COMM_WORLD();
-        int rank = Adios.MPI_Comm_rank(comm);
-        int size = Adios.MPI_Comm_size(comm);
-        System.out.println("MPI rank/size = " + rank + " / " + size);
-        System.out.println("MPI &comm     = " + comm);
-
-        Adios.Init("config.xml");
-        long adios_handle = Adios.Open ("temperature", "adios_global.bp", "w", comm);
-        
-        int      NX = 10; 
-        double[] t = new double[NX];
-        for (int i = 0; i < NX; i++) {
-            t[i] = (double) i;
-        }
-
-        byte[] b = new byte[NX];
-        for (int i = 0; i < NX; i++) {
-            b[i] = (byte) (i + 65); // ASCII code
-        }
-
-        long groupsize = 4 + 4 + 4 + 2 * 8 * (1) * (NX);
-
-        
-        long adios_totalsize = Adios.SetGroupSize(adios_handle, groupsize);
-
-        //adios_handle = Adios.OpenAndSetGroupSize("temperature", "adios_global.bp", "w", groupsize, comm);
-
-        Adios.Write (adios_handle, "NX", NX);
-        Adios.Write (adios_handle, "size", size);
-        Adios.Write (adios_handle, "rank", rank);
-        Adios.Write (adios_handle, "temperature", t);
-        Adios.Write (adios_handle, "ascii", b);
-
-        Adios.Close (adios_handle);
-        Adios.Finalize (rank);
-        
-        System.out.println(">>> ADIOS Read API ... ");
-
-        System.out.println(">>> AdiosFile.open ... ");
-        AdiosFile file = new AdiosFile();
-        file.open("adios_global.bp", comm);
-        
-        System.out.println(">>> AdiosGroup.open ... ");
-        AdiosGroup group = new AdiosGroup(file);
-        group.open("temperature");
-
-        System.out.println(">>> AdiosVarinfo.inq ... ");
-        AdiosVarinfo var = new AdiosVarinfo(group);
-        var.inq("temperature");
-
-        long[] start = {0, 0};
-        long[] count = {1, NX};
-        System.out.println(">>> AdiosVarinfo.read ... ");
-        double[] output = new double[NX];
-        var.read(start, count, output);
-
-        System.out.println("temperature.length = " + output.length);
-        for (int i = 0; i < output.length; i++) {
-            System.out.println("temperature[" + i + "] = " + output[i]);
-        }
-
-        System.out.println(">>> AdiosVarinfo.inq ... ");
-        AdiosVarinfo var2 = new AdiosVarinfo(group);
-        var2.inq("NX");
-        System.out.println("NX = " + var2.readIntValue());
-
-
-        System.out.println(">>> AdiosVarinfo.inq ... ");
-        AdiosVarinfo var3 = new AdiosVarinfo(group);
-        var3.inq("ascii");
-        byte[] output3 = new byte[NX];
-        var3.read(start, count, output3);
-
-        System.out.println("ascii.length = " + output3.length);
-        for (int i = 0; i < output3.length; i++) {
-            System.out.println("ascii[" + i + "] = " + output3[i]);
-        }
-
-        var.close();
-        var2.close();
-        var3.close();
-        group.close();
-        file.close();
-
-        System.out.println();
-        System.out.println(file);
-        System.out.println(group);
-        System.out.println(var);
-        System.out.println(var2);
-    }
-}
diff --git a/wrappers/java/test/.svn/text-base/test1.sh.svn-base b/wrappers/java/test/.svn/text-base/test1.sh.svn-base
deleted file mode 100644
index 056ce16..0000000
--- a/wrappers/java/test/.svn/text-base/test1.sh.svn-base
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-function usage {
-    echo "USAGE : `basename $0` ADIOSJAR SRCDIR TARGET"
-}
-
-if [ $# -lt 3 ]  ; then
-    usage
-    exit 1
-fi
-
-ADIOSJAR=$1
-SRCDIR=$2
-TARGET=$3
-
-cat << EOF > config.xml
-<?xml version="1.0"?>
-<adios-config host-language="C">
-    <adios-group name="temperature" coordination-communicator="comm" stats="On">
-    <var name="NX" type="integer"/>
-    <var name="size" type="integer"/>
-    <var name="rank" type="integer"/>
-    <global-bounds dimensions="size,NX" offsets="rank,0">
-       <var name="temperature" gwrite="t" type="double" dimensions="1,NX"/>
-       <var name="ascii" gwrite="t" type="byte" dimensions="1,NX"/>
-    </global-bounds>
-    <attribute name="description" path="/temperature" value="Global array written from 'size' processes" type="string"/>
-</adios-group>
-
-<method group="temperature" method="MPI">stripe_count=1;stripe_size=10485760;num_aggregators=2;merging_pgs=0</method>
-
-<buffer size-MB="2" allocate-time="now"/>
-
-</adios-config>
-EOF
-
-rm -f adios_global.bp
-javac -classpath $ADIOSJAR -d . $SRCDIR/$TARGET.java
-java -Djava.library.path=. -classpath $ADIOSJAR:. $TARGET
-exit $?
diff --git a/wrappers/java/test/.svn/text-base/test2.sh.svn-base b/wrappers/java/test/.svn/text-base/test2.sh.svn-base
deleted file mode 100644
index 66b5d34..0000000
--- a/wrappers/java/test/.svn/text-base/test2.sh.svn-base
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-function usage {
-    echo "USAGE : `basename $0` ADIOSJAR SRCDIR TARGET"
-}
-
-if [ $# -lt 3 ]  ; then
-    usage
-    exit 1
-fi
-
-ADIOSJAR=$1
-SRCDIR=$2
-TARGET=$3
-
-rm -f adios_noxml.bp
-javac -classpath $ADIOSJAR -d . $SRCDIR/$TARGET.java
-java -Djava.library.path=. -classpath $ADIOSJAR:. $TARGET
-exit $?
diff --git a/wrappers/java/test/AdiosNoxmlTest.java b/wrappers/java/test/AdiosNoxmlTest.java
index 41c871f..d151121 100644
--- a/wrappers/java/test/AdiosNoxmlTest.java
+++ b/wrappers/java/test/AdiosNoxmlTest.java
@@ -17,7 +17,7 @@ public class AdiosNoxmlTest
         System.out.println("[DEBUG] MPI rank/size = " + rank + " / " + size);
         System.out.println("[DEBUG] MPI &comm     = " + comm);
 
-        Adios.Init_Noxml();
+        Adios.Init_Noxml(comm);
         Adios.AllocateBuffer(AdiosBufferAllocWhen.NOW, 10);
 
         long group_id = Adios.DeclareGroup("restart", "iter", AdiosFlag.YES);
diff --git a/wrappers/java/test/AdiosTest.java b/wrappers/java/test/AdiosTest.java
index c1b9ce0..1ce9de4 100644
--- a/wrappers/java/test/AdiosTest.java
+++ b/wrappers/java/test/AdiosTest.java
@@ -19,7 +19,7 @@ public class AdiosTest
         System.out.println("MPI rank/size = " + rank + " / " + size);
         System.out.println("MPI &comm     = " + comm);
 
-        Adios.Init("config.xml");
+        Adios.Init("config.xml", comm);
         long adios_handle = Adios.Open ("temperature", "adios_global.bp", "w", comm);
         
         int      NX = 10; 
diff --git a/wrappers/matlab/.gitignore b/wrappers/matlab/.gitignore
new file mode 100644
index 0000000..195d7d3
--- /dev/null
+++ b/wrappers/matlab/.gitignore
@@ -0,0 +1 @@
+*.mexa64
diff --git a/wrappers/matlab/.svn/all-wcprops b/wrappers/matlab/.svn/all-wcprops
deleted file mode 100644
index 491b157..0000000
--- a/wrappers/matlab/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 51
-/svn-ewok/ADIOS/!svn/ver/1902/trunk/wrappers/matlab
-END
-Makefile
-K 25
-svn:wc:ra_dav:version-url
-V 60
-/svn-ewok/ADIOS/!svn/ver/1902/trunk/wrappers/matlab/Makefile
-END
diff --git a/wrappers/matlab/.svn/entries b/wrappers/matlab/.svn/entries
deleted file mode 100644
index bfa03a9..0000000
--- a/wrappers/matlab/.svn/entries
+++ /dev/null
@@ -1,307 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/matlab
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-13T15:34:31.777172Z
-1902
-pnorbert
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-adiosreadc.c
-file
-
-
-
-
-2012-07-02T16:20:11.425313Z
-3ea16f644e9e2d15091440b9bcd135a4
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-16249
-

-adiosclose.m
-file
-
-
-
-
-2012-07-02T16:20:11.428316Z
-d09f2e35d0a9ca36fa21226983d05530
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4055
-

-adiosopenc.c
-file
-
-
-
-
-2012-07-02T16:20:11.447313Z
-01042afd43dcf3efe22cbc7540779a7c
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-17757
-

-adiosread.m
-file
-
-
-
-
-2012-07-02T16:20:11.451313Z
-3440ca1d78651ccec3cedc7186b09781
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8764
-

-adiosclosec.c
-file
-
-
-
-
-2012-07-02T16:20:11.454319Z
-2ffa73b2cc43d2fd1f94e0a5bdc3b863
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3975
-

-adios.m
-file
-
-
-
-
-2012-07-02T16:20:11.458313Z
-2579aedcd70023671f05badbb19f018a
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2668
-

-adiosopen.m
-file
-
-
-
-
-2012-07-02T16:20:11.462313Z
-745eec5b35cda4d851c2a249cd793692
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5385
-

-Makefile
-file
-
-
-
-
-2012-07-13T15:33:36.130699Z
-aff0d2289af40e16e42f88512e0beaf9
-2012-07-13T15:34:31.777172Z
-1902
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1055
-

diff --git a/wrappers/matlab/.svn/format b/wrappers/matlab/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/matlab/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/matlab/.svn/text-base/Makefile.svn-base b/wrappers/matlab/.svn/text-base/Makefile.svn-base
deleted file mode 100644
index 95a983d..0000000
--- a/wrappers/matlab/.svn/text-base/Makefile.svn-base
+++ /dev/null
@@ -1,30 +0,0 @@
-include ../../adios_config.flags
-
-MEXOPTS=-g -DDEBUG
-default:
-	@echo "ADIOS reader methods for MATLAB"
-	@echo "Have 'mex' compiler in the path and run"
-	@echo "> make matlab"
-
-
-matlab: adiosopenc adiosclosec adiosreadc
-
-adiosopenc:  
-	mex adiosopenc.c ${MEXOPTS} -D_NOMPI  -DADIOS_USE_READ_API_1 -I. -I../../src/public -L. -L../../src ${ADIOSREAD_SEQ_INC} ${ADIOSREAD_SEQ_CLIB}
-
-adiosreadc: 
-	mex adiosreadc.c ${MEXOPTS} -D_NOMPI -DADIOS_USE_READ_API_1 -I. -I../../src/public -L. -L../../src ${ADIOSREAD_SEQ_INC} ${ADIOSREAD_SEQ_CLIB}
-
-adiosclosec:
-	mex adiosclosec.c ${MEXOPTS} -D_NOMPI -DADIOS_USE_READ_API_1 -I. -I../../src/public -L. -L../../src ${ADIOSREAD_SEQ_INC} ${ADIOSREAD_SEQ_CLIB}
-
-#adiosdbgc:
-#	mex adiosdbgc.c ${MEXOPTS} -D_NOMPI -I. -I../../src/public -L. -L../../src ${ADIOSREAD_SEQ_INC} ${ADIOSREAD_SEQ_CLIB}
-
-clean:
-	rm -f *.mexa64 core* *.o 
-
-install:
-	@echo "Install *.m and *.mexa64 into MATLABPATH"
-	@echo "Do not have 'adios' anywhere in the path where you install the files"
-	@echo "otherwise 'help adios' will not work in Matlab"
diff --git a/wrappers/matlab/.svn/text-base/adios.m.svn-base b/wrappers/matlab/.svn/text-base/adios.m.svn-base
deleted file mode 100644
index 63ac9b9..0000000
--- a/wrappers/matlab/.svn/text-base/adios.m.svn-base
+++ /dev/null
@@ -1,54 +0,0 @@
-function adios()
-%ADIOS Reader for the ADIOS BP file format
-%   
-%   ADIOS is a componentized I/O layer for high performance output combined
-%   with an easy to use interface and a set of different data writing methods
-%   so that everyone can choose the best method for a particular system.
-%
-%   ADIOSREAD can be used in itself to read in a variable with a known name.
-%   ADIOSOPEN returns a structure with information on all adios groups, 
-%   variables and attributes. The structure can be used to read many variables
-%   without repeatedly opening and closing the file behind the scenes. 
-%   ADIOSCLOSE closes the file, opened by ADIOSOPEN.
-%
-%   Organization of an ADIOS BP file
-%   --------------------------------
-%   There is usually one adios group in a file, but there can be more. 
-%   An adios group is the set of all variables and attributes that have been
-%   written by a (parallel) program at one place in the code. The programmer
-%   may have decided to write more than one groups into the file.
-%   Note that the adios group is not the same as HDF5 groups. Each variable in
-%   the group has a path, which defines a logical hierarchy of the variables 
-%   within one adios group. This logical hierarchy is similar to the hierarchy
-%   in a HDF5 file.
-%
-%   Therefore, ADIOSREAD expects one of the info.Groups(idx) structure to
-%   specify a group to read from, instead of the info structure itself, where
-%   info is returned by ADIOSOPEN.
-%
-%   Time dimension of a variable
-%   ----------------------------
-%   Variables can be written several times from a program, if they have a time
-%   dimension. The reader exposes the variables with an extra dimension, i.e.
-%   a 2D variable written over time is seen as a 3D variable. In MATLAB, the
-%   extra dimension is the last dimension (the slowest changing dimension).
-%   Since the reader allows reading an arbitrary slice of a variable, data for
-%   one timestep can be read in with slicing.
-%
-%   Extra information provided by ADIOSOPEN
-%   ---------------------------------------
-%   The ADIOS BP format stores the min/max values in each variable. 
-%   The info structure therefore contains these min/max values. There is
-%   practically no overhead to provide this information (along with the
-%   values of all attributes) even for file sizes of several terabytes.
-%
-%   Please read the file COPYING in the top directory of the ADIOS source
-%   distribution for information on the copyrights.
-%
-%   See also ADIOSOPEN, ADIOSREAD, ADIOSCLOSE.
-
-%   Copyright 2009 UT-BATTELLE, LLC
-%   $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
-%   Author: Norbert Podhorszki <pnorbert at ornl.gov>
-
-help adios
diff --git a/wrappers/matlab/.svn/text-base/adiosclose.m.svn-base b/wrappers/matlab/.svn/text-base/adiosclose.m.svn-base
deleted file mode 100644
index 8c63969..0000000
--- a/wrappers/matlab/.svn/text-base/adiosclose.m.svn-base
+++ /dev/null
@@ -1,151 +0,0 @@
-function adiosclose(varargin)
-%ADIOSCLOSE Close an ADIOS BP file.
-%   
-%   ADIOSCLOSE closes an ADIOS BP file that was opened by ADIOSOPEN.
-%   Provide the structure returned by ADIOSOPEN as input.
-%
-%   ADIOSCLOSE(STRUCT) 
-%      Close file and free internal data structures.
-%      STRUCT is the output of ADIOSOPEN.
-%
-%   ADIOSCLOSE(STRUCT, 'Verbose', LEVEL)
-%      To get logging from the adiosclose code, set Verbose to 1 or higher.
-%      Higher values cause more and more details to be printed.
-%
-%   Please read the file adioscopyright.txt for more information.
-%
-%   See also ADIOSOPEN, ADIOSREAD, ADIOS.
-
-%   Copyright 2009 UT-BATTELLE, LLC
-%   $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
-%   Author: Norbert Podhorszki <pnorbert at ornl.gov>
-
-%
-% Process arguments.
-%
-
-checkArgCounts(varargin{:});
-[args, msg] = parse_inputs(varargin{:});
-if (~isempty(msg))
-    error('MATLAB:adiosopen:inputParsing', '%s', msg);
-end
-
-if (args.Verbose > 0)
-    fn=sprintf('File handler=%lld',args.fh);
-    gharr=sprintf('%lld ',args.ghs);
-    ghs=sprintf('Group handlers=[%s]',gharr);
-    CallArguments = sprintf('adiosclosec:\n  %s\n  %s\n  Verbose=%d\n', fn, ghs, args.Verbose);
-end
-
-
-adiosclosec(args.fh, args.ghs, args.Verbose);
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% FUNCTION:   checkArgCounts %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-function checkArgCounts(varargin)
-
-if (nargin < 1)
-    error('MATLAB:adiosopen:notEnoughInputs', ...
-          'ADIOSCLOSE requires at least one input argument.')
-end
-
-
-if (nargout > 0)
-    error('MATLAB:adiosread:tooManyOutputs', ...
-          'ADIOSCLOSE has no output arguments.')
-end
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% FUNCTION:   parse_inputs   %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-function [args, msg] = parse_inputs(varargin)
-
-arg1  = '';
-args.fh=int64(0);
-args.ngroups=0;
-args.ghs=int64([]);
-args.Verbose = 0;  % verbosity, default is off, i.e. 0
-
-msg = '';
-
-% Arg 1: struct returned by ADIOSOPEN
-if isstruct(varargin{1})
-    arg1 = varargin{1};
-    %
-    % Verify it is an adios struct from ADIOSOPEN
-    %
-    fnames = fieldnames(arg1);
-    if ( ~strcmp(fnames{1},'Name')        || ...
-         ~strcmp(fnames{2},'FileHandler') || ...
-         ~strcmp(fnames{3},'TimeStart')   || ...
-         ~strcmp(fnames{4},'TimeSteps')     || ...
-         ~strcmp(fnames{5},'Groups')         ...
-       )
-    
-        msg = 'STRUCT input argument does not seem to be output of ADIOSOPEN';
-        return
-    end
-    args.fh = int64(arg1.FileHandler);
-    args.ngroups = length(arg1.Groups);
-    for i=1:length(arg1.Groups)
-        args.ghs(i) = int64(arg1.Groups(i).GroupHandler);
-    end
-    varargin = {varargin{2:end}};
-else
-    msg = 'STRUCT input argument must be the output of ADIOSOPEN';
-    return
-end
-
-
-% Parse optional arguments based on their number.
-if (length(varargin) > 0)
-    
-    paramStrings = {'verbose'};
-    
-    % For each pair
-    for k = 1:2:length(varargin)
-        param = lower(varargin{k});
-            
-        if (~ischar(param))
-            msg = 'Parameter name must be a string.';
-            return
-        end
-        
-        idx = strmatch(param, paramStrings);
-        
-        if (isempty(idx))
-            msg = sprintf('Unrecognized parameter name "%s".', param);
-            return
-        elseif (length(idx) > 1)
-            msg = sprintf('Ambiguous parameter name "%s".', param);
-            return
-        end
-
-        switch (paramStrings{idx})
-        % VERBOSE
-        case 'verbose'
-            if (k == length(varargin))
-                msg = 'No value specified for Verbose option.';
-                return
-            end
-        
-            args.Verbose = varargin{k+1};
-            if ((~isnumeric(args.Verbose)) || ...
-                (~isempty(find(rem(args.Verbose, 1) ~= 0))))
-                
-                msg = sprintf('''VERBOSE'' must be an integer.');
-                return
-            end
-            if (args.Verbose < 0)
-                msg = sprintf('''VERBOSE'' must be greater or equal to zero.');
-                return
-            end
-        end
-    end
-end
diff --git a/wrappers/matlab/.svn/text-base/adiosclosec.c.svn-base b/wrappers/matlab/.svn/text-base/adiosclosec.c.svn-base
deleted file mode 100644
index 34ac9a9..0000000
--- a/wrappers/matlab/.svn/text-base/adiosclosec.c.svn-base
+++ /dev/null
@@ -1,114 +0,0 @@
-/* 
- * ADIOS is freely available under the terms of the BSD license described
- * in the COPYING file in the top level directory of this source distribution.
- *
- * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
- */
-
-/*=================================================================
- * adiosclosec.c - Close an ADIOS file
- *
- * Input: fh, ghs,  Verbose
- *    fh:       int64 adios file handler
- *    ghs:      array of int64 group handlers
- *    Verbose:  numeric (double)
- *
- * $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
- * Author: Norbert Podhorszki <pnorbert at ornl.gov>
- *=================================================================*/
-
-#include "mex.h"
-#include "adios_read.h"
-#include "adios_types.h"
-
-static int verbose=0;
-
-mxClassID adiostypeToMatlabClass(int type, mxComplexity *complexity );
-void errorCheck(int nlhs, int nrhs, const mxArray *prhs[]);
-char* getString(const mxArray *mxstr);
-
-
-void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
-    int status;
-    char msg[512];                               /* error messages from function calls */
-    mwSize ngroups;
-    int64_t *ghs, *int64p;               /* file and group handlers and temp pointers */
-    int i;
-
-    errorCheck(nlhs, nrhs, prhs);
-
-    /*mexPrintf("nrhs=%d  nlhs=%d\n", nrhs, nlhs);*/
-    
-    /***********************/
-    /* 0. get verbose parameter first */
-    verbose = (int)mxGetScalar(prhs[2]);
-    if (verbose) mexPrintf("Verbosity level: %d\n", verbose);
-
-    /* 1. get file handler */
-    int64p = (int64_t *) mxGetData(prhs[0]);
-    if (verbose) mexPrintf("File handler: \"%lld\"\n", *int64p);
-
-    /* 2. get group handlers */
-    ghs = (int64_t *) mxGetData(prhs[1]);
-    ngroups=mxGetNumberOfElements(prhs[1]);
-    if (verbose) mexPrintf("Number of group handlers: \"%d\"\n", ngroups);
-
-    for (i=0; i<ngroups; i++) {
-        if (verbose) mexPrintf("Close group handler: \"%lld\"\n", ghs[i]);
-        adios_gclose((ADIOS_GROUP *)ghs[i]);
-    }
-    if (verbose) mexPrintf("Close file handler: \"%lld\"\n", *int64p);
-    adios_fclose((ADIOS_FILE *) *int64p);
-
-    if (verbose) mexPrintf("return from adiosclosec\n");
-}
-
-
-void errorCheck(int nlhs, int nrhs, const mxArray *prhs[]){
-    /* Assume that we are called from adiosread.m which checks the arguments already */
-    /* Check for proper number of arguments. */
-    
-    if ( nrhs != 3 ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosclosec:rhs","This function needs exactly 3 arguments: FileHandler, GroupHandlers, Verbose");
-    }
-    
-    if ( !mxIsInt64(prhs[0]) ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosclosec:rhs","First arg must be an int64 handler to an ADIOS file .");
-    } 
-    
-    if ( !mxIsInt64(prhs[1]) ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosclosec:rhs","Second arg must be an int64 adios group handler.");
-    } 
-
-    if ( !mxIsNumeric(prhs[2]) ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosclosec:rhs","Third arg must be a number.");
-    } 
-    
-    if ( nlhs > 0 ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosclosec:lhs","This function does not have output arguments.");
-    }
-    
-#if !defined(MX_COMPAT_32)
-    /* Make sure that it is safe to cast dim to mwSize when using largeArrayDims.*/
-    if ( dim > MWSIZE_MAX ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosclosec:dimensionTooLarge",
-                          "The input dimension, %.0f, is larger than the maximum value of mwSize, %u, when built with largeArrayDims.", dim, MWSIZE_MAX);
-    }
-#endif
- }
-
-
-/** Make a C char* string from a Matlab string */
-char* getString(const mxArray *mxstr) 
-{
-    mwSize buflen;
-    char   *str;
-    /* Allocate enough memory to hold the converted string. */
-    buflen = mxGetNumberOfElements(mxstr) + 1;
-    str = mxCalloc(buflen, sizeof(char));
-    /* Copy the string data from string_array_ptr and place it into buf. */
-    if (mxGetString(mxstr, str, buflen) != 0)
-        mexErrMsgTxt("Could not convert string data from the file name.");
-    return str;
-}
-
diff --git a/wrappers/matlab/.svn/text-base/adiosopen.m.svn-base b/wrappers/matlab/.svn/text-base/adiosopen.m.svn-base
deleted file mode 100644
index 1c5ac3d..0000000
--- a/wrappers/matlab/.svn/text-base/adiosopen.m.svn-base
+++ /dev/null
@@ -1,188 +0,0 @@
-function info = adiosopen(varargin)
-%ADIOSOPEN Open an ADIOS BP file and provide information on it.
-%   
-%   ADIOSOPEN opens an ADIOS BP file and returns a structure that
-%   contains the file handler and information on all groups,
-%   variables and attributes.
-%
-%   If you have opened the file with ADIOSOPEN, you can supply the
-%   file handler and the group handler to read in a variable/attribute
-%   with ADIOSREAD. When finished reading all data, you need to close 
-%   the file with ADIOSCLOSE. 
-%
-%   Note: the adios group is not the same as HDF5 groups. Each variable has
-%   a path, which defines a logical hierarchy of the variables within one 
-%   adios group. This logical hierarchy is what is similar to HDF5 groups.
-%
-%   INFO = ADIOSOPEN(FILE) 
-%      Open FILE and return an information structure. 
-%
-%   The returned INFO structure is the following
-%
-%     Name        file path
-%     FileHandler int64 file handler
-%     TimeStart   First timestep in file
-%     TimeEnd     Last timestep in file
-%     Groups      Adios groups in the file. Usually 1 group is in a file.
-%                 This is a structure array of 
-%
-%        Name          group name
-%        GroupHandler  int64 group handler
-%        Variables     structure array of variables
-%           Name          path of variable
-%           Type          Matlab type class of data
-%           Dims          Array of dimensions
-%           Timedim       The time dimension, 0 if there is no time varying 
-%                         part of the variable
-%           GlobalMin     global minimum  of the variable (1-by-1 mxArray)
-%           GlobalMax     global maximum of the variable
-%           
-%        Attributes  structure array of attributes
-%           Name          path of attribute
-%           Type          Matlab type class of data
-%           Value         attribute value
-%
-%
-%   INFO = ADIOSOPEN(FILE, 'Verbose', LEVEL)
-%      To get logging from the adiosopen code, set Verbose to 1 or higher.
-%      Higher values cause more and more details to be printed.
-%
-%   See also ADIOSREAD, ADIOSCLOSE, ADIOS.
-
-%   Copyright 2009 UT-BATTELLE, LLC
-%   $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
-%   Author: Norbert Podhorszki <pnorbert at ornl.gov>
-
-%
-% Process arguments.
-%
-
-checkArgCounts(varargin{:});
-[args, msg] = parse_inputs(varargin{:});
-if (~isempty(msg))
-    error('MATLAB:adiosopen:inputParsing', '%s', msg);
-end
-
-if (isnumeric(args.File))
-    fn=sprintf('File handler=%lld',args.File);
-else
-    fn=sprintf('File name=%s',args.File);
-end
-verbose=sprintf('%d ', args.Verbose);
-
-input = sprintf('adiosopenc:\n  %s \n  Verbose=%s', fn, verbose);
-if (args.Verbose > 0) 
-    CallArguments = input
-end
-
-
-if (nargout == 1)
-    info = adiosopenc(args.File, args.Verbose);
-else 
-    adiosopenc(args.File, args.Verbose);
-end
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% FUNCTION:   checkArgCounts %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-function checkArgCounts(varargin)
-
-if (nargin < 1)
-    error('MATLAB:adiosopen:notEnoughInputs', ...
-          'ADIOSOPEN requires at least one input argument.')
-end
-
-
-if (nargout > 1)
-    error('MATLAB:adiosopen:tooManyOutputs', ...
-          'ADIOSOPEN requires one or zero output arguments.')
-end
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% FUNCTION:   parse_inputs   %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-function [args, msg] = parse_inputs(varargin)
-
-args.File    = '';
-args.Verbose = 0;  % verbosity, default is off, i.e. 0
-
-msg = '';
-
-% Arg 1: file name
-if ischar(varargin{1})
-    args.File = varargin{1};
-    %
-    % Verify existence of filename
-    %
-    fid = fopen(args.File);    
-    if (fid == -1)
-        % Look for filename with extensions.
-        fid = fopen([args.File '.bp']);
-    end
-
-    if (fid == -1)
-        error('MATLAB:hdf5read:fileOpen', ...
-              'Couldn''t open file (%s).', ...
-              args.File)
-    else
-        % Get full filename 
-        args.File = fopen(fid);
-        fclose(fid);
-    end
-    varargin = {varargin{2:end}};
-else
-    msg = 'FILE input argument to ADIOSOPEN must be a string ';
-    return
-end
-
-
-% Parse optional arguments based on their number.
-if (length(varargin) > 0)
-    
-    paramStrings = {'verbose'};
-    
-    % For each pair
-    for k = 1:2:length(varargin)
-        param = lower(varargin{k});
-            
-        if (~ischar(param))
-            msg = 'Parameter name must be a string.';
-            return
-        end
-        
-        idx = strmatch(param, paramStrings);
-        
-        if (isempty(idx))
-            msg = sprintf('Unrecognized parameter name "%s".', param);
-            return
-        elseif (length(idx) > 1)
-            msg = sprintf('Ambiguous parameter name "%s".', param);
-            return
-        end
-
-        switch (paramStrings{idx})
-        % VERBOSE
-        case 'verbose'
-            if (k == length(varargin))
-                msg = 'No value specified for Verbose option.';
-                return
-            end
-        
-            args.Verbose = varargin{k+1};
-            if ((~isnumeric(args.Verbose)) || ...
-                (~isempty(find(rem(args.Verbose, 1) ~= 0))))
-                
-                msg = sprintf('''VERBOSE'' must be an integer.');
-                return
-            end
-            if (args.Verbose < 0)
-                msg = sprintf('''VERBOSE'' must be greater or equal to zero.');
-                return
-            end
-        end
-    end
-end
diff --git a/wrappers/matlab/.svn/text-base/adiosopenc.c.svn-base b/wrappers/matlab/.svn/text-base/adiosopenc.c.svn-base
deleted file mode 100644
index e3c8b2c..0000000
--- a/wrappers/matlab/.svn/text-base/adiosopenc.c.svn-base
+++ /dev/null
@@ -1,427 +0,0 @@
-/* 
- * ADIOS is freely available under the terms of the BSD license described
- * in the COPYING file in the top level directory of this source distribution.
- *
- * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
- */
-
-/*=================================================================
- * adiosopenc.c - Open an ADIOS file
- *
- * Input: File, Verbose
- *    File:     string (name) or int64 (handler)
- *    Verbose:  numeric (double)
- *
- * Output: Information structure
- *     Name        file path
- *     FileHandler int64 file handler
- *     TimeStart   First timestep in file (usually = 1)
- *     TimeSteps   Number of timesteps in file, always at least 1
- *     Groups      Adios groups in the file. Usually 1 group is in a file.
- *                 This is a structure array of 
- *
- *        Name          group name
- *        GroupHandler  int64 group handler
- *        Variables     structure array of variables
- *           Name          path of variable
- *           Type          Matlab type class of data
- *           Dims          Array of dimensions
- *           Timedim       The time dimension, 0 if there is no time varying 
- *                         part of the variable
- *           GlobalMin     global minimum  of the variable (1-by-1 mxArray)
- *           GlobalMax     global maximum of the variable
- *           
- *        Attributes  structure array of attributes
- *           Name          path of attribute
- *           Type          Matlab type class of data
- *           Value         attribute value (mxArray)
- *
- *
- *
- * $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
- * Author: Norbert Podhorszki <pnorbert at ornl.gov>
- *=================================================================*/
-
-#include <string.h>              /* memcpy */
-#include "mex.h"
-#include "adios_types.h"
-#include "adios_read.h"
-#include "adios_types.h"
-
-static int verbose=0;
-
-mxClassID adiostypeToMatlabClass(int type, mxComplexity *complexity );
-mxArray* valueToMatlabValue( void * data, mxClassID mxtype, mxComplexity complexFlag);
-void errorCheck(int nlhs, int nrhs, const mxArray *prhs[]);
-char* getString(const mxArray *mxstr);
-static void swap_order(int n, uint64_t *array);
-
-
-void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
-    char *fname;                                 /* file name */
-    int status;
-    char msg[512];                               /* error messages from function calls */
-    int32_t *int32p;
-
-    ADIOS_FILE *fp;                             /* File handler structure */
-    ADIOS_GROUP *gp;                            /* Group handler structure */
-    ADIOS_VARINFO *vinfo;                       /* Variable info structure */
-    int mpi_comm_dummy;                         /* ADIOS read API needs an MPI communicator */
-    int32_t timedim;                            /* time dimension is translated C 0.. -> Matlab 1.. */
-    int asize;                                  /* Attribute size info */
-    enum ADIOS_DATATYPES adiostype;             /* Attribute type info */
-    void *data;                                 /* Attributes return their values */
-    mwSize mDims[] = {1};                       /* dimensions to create a scalar mxArray */  
-
-    int gi,vi,ai, i;                            /* loop variables for groups, vars and attrs */
-    mxArray *arr;                               /* temp array for constructions */
-    mxArray *groups, *vars, *attrs;             /* struct arrays under top struct */
-    mxClassID mxtype;                           /* matlab type (of vars and attrs) */
-    mxComplexity complexFlag; 
-
-    /* Output structure definition */
-    const char *top_field_names[] = {"Name", "FileHandler", "TimeStart", "TimeSteps", "Groups"}; /* top level struct fields */
-    mwSize ntopfields = 5;
-    mwSize top_struct_dims[] = {1,1};   /* dimensions for top level struct array: 1-by-1 */
-    int top_field_Name;
-    int top_field_FileHandler;
-    int top_field_TimeStart;
-    int top_field_TimeSteps;
-    int top_field_Groups;
-
-    const char *group_field_names[] = {"Name", "GroupHandler", "Variables", "Attributes"}; /* group level struct fields */
-    mwSize ngroupfields = 4;
-    mwSize group_struct_dims[2];        /* dimensions for group level struct array: 1-by-sth */
-    int group_field_Name;
-    int group_field_GroupHandler;
-    int group_field_Variables;
-    int group_field_Attributes;
-
-    const char *var_field_names[] = {"Name","Type","Dims", "Timedim", "GlobalMin", "GlobalMax"}; /* variable level struct fields */
-    mwSize nvarfields = 6;
-    mwSize var_struct_dims[2];        /* dimensions for variable level struct array: 1-by-sth */
-    int var_field_Name;
-    int var_field_Type;
-    int var_field_Dims;
-    int var_field_Timedim;
-    int var_field_GlobalMin;
-    int var_field_GlobalMax;
-
-    const char *attr_field_names[] = {"Name","Type","Value"}; /* attribute level struct fields */
-    mwSize nattrfields = 3;
-    mwSize attr_struct_dims[2];        /* dimensions for attribute level struct array: 1-by-sth */
-    int attr_field_Name;
-    int attr_field_Type;
-    int attr_field_Value;
-
-    errorCheck(nlhs, nrhs, prhs);
-
-    /*mexPrintf("nrhs=%d  nlhs=%d\n", nrhs, nlhs);*/
-    
-    /***********************/
-    /* 0. get verbose parameter first */
-    verbose = (int)mxGetScalar(prhs[1]);
-    if (verbose) mexPrintf("Verbosity level: %d\n", verbose);
-
-    /* 1. get file handler */
-    if (mxIsChar(prhs[0])) {
-        fname = getString( (mxArray *)prhs[0]);
-        if (verbose) mexPrintf("File name: \"%s\"\n", fname);
-    } 
-
-    /**************************************/
-    /* Open ADIOS file now and get groups */
-    fp = adios_fopen (fname, mpi_comm_dummy);
-    if (fp == NULL) {
-       mexErrMsgIdAndTxt("MATLAB:adiosopenc:open",adios_errmsg());
-    }
-    if (verbose) mexPrintf("Number of adios groups: %d, fp=%lld\n", fp->groups_count, (int64_t) fp);
-
-    /******************************/
-    /* Create top level structure */
-    if (verbose) mexPrintf("Create top struct array, 1-by-1\n");
-    plhs[0] = mxCreateStructArray(2, top_struct_dims, ntopfields, top_field_names);
-    top_field_Name = mxGetFieldNumber(plhs[0],"Name");
-    top_field_FileHandler = mxGetFieldNumber(plhs[0],"FileHandler");
-    top_field_TimeStart = mxGetFieldNumber(plhs[0],"TimeStart");
-    top_field_TimeSteps = mxGetFieldNumber(plhs[0],"TimeSteps");
-    top_field_Groups = mxGetFieldNumber(plhs[0],"Groups");
-    mxSetFieldByNumber(plhs[0],0,top_field_Name,mxCreateString(fname));
-    arr = valueToMatlabValue(&fp, mxINT64_CLASS, mxREAL);
-    mxSetFieldByNumber(plhs[0],0,top_field_FileHandler,arr);
-    arr = mxCreateNumericMatrix( 1, 1, mxINT32_CLASS, mxREAL);
-    *(int32_t *)mxGetData(arr) = fp->tidx_start;
-    mxSetFieldByNumber(plhs[0],0,top_field_TimeStart,arr);
-    arr = mxCreateNumericMatrix( 1, 1, mxINT32_CLASS, mxREAL);
-    *(int32_t *)mxGetData(arr) = fp->ntimesteps;
-    mxSetFieldByNumber(plhs[0],0,top_field_TimeSteps,arr);
-    /* Create top.Groups structure array */
-    if (verbose) mexPrintf("Create top.Groups struct array, 1-by-%d\n",fp->groups_count);
-    group_struct_dims[0] = 1;
-    group_struct_dims[1] = fp->groups_count;
-    groups = mxCreateStructArray(2, group_struct_dims, ngroupfields, group_field_names);
-    mxSetFieldByNumber(plhs[0],0,top_field_Groups,groups);
-
-
-    /****************************/
-    /* Fill in Groups structure */
-    group_field_Name = mxGetFieldNumber(groups,"Name");
-    group_field_GroupHandler = mxGetFieldNumber(groups,"GroupHandler");
-    group_field_Variables = mxGetFieldNumber(groups,"Variables");
-    group_field_Attributes = mxGetFieldNumber(groups,"Attributes");
-
-    for (gi = 0; gi < fp->groups_count; gi++) {
-        /* Get info of one group: handler, list of vars, list of attrs */
-        if (verbose) mexPrintf("Group %s: get info\n", fp->group_namelist[gi]);
-        gp = adios_gopen_byid(fp, gi);
-        if (gp == NULL) {
-           mexErrMsgIdAndTxt("MATLAB:adiosopenc:groupinfo",adios_errmsg());
-        }
-        if (verbose) mexPrintf("    %d variables and %d attributes\n", gp->vars_count, gp->attrs_count);
-        /* Group fields for gi-th group */
-        mxSetFieldByNumber(groups,gi,group_field_Name,mxCreateString(fp->group_namelist[gi]));
-        mexPrintf("Group gp=%lld id=%d vcnt=%d\n", (int64_t)gp, gp->grpid, gp->vars_count);
-        arr = valueToMatlabValue(&gp, mxINT64_CLASS, mxREAL);
-        mxSetFieldByNumber(groups,gi,group_field_GroupHandler,arr);
-        /* Create top.Groups.Variables structure array */
-        var_struct_dims[0] = 1;
-        var_struct_dims[1] = gp->vars_count;
-        vars = mxCreateStructArray(2, var_struct_dims, nvarfields, var_field_names);
-        mxSetFieldByNumber(groups,gi,group_field_Variables,vars);
-        var_field_Name = mxGetFieldNumber(vars,"Name");
-        var_field_Type = mxGetFieldNumber(vars,"Type");
-        var_field_Dims = mxGetFieldNumber(vars,"Dims");
-        var_field_Timedim = mxGetFieldNumber(vars,"Timedim");
-        var_field_GlobalMin = mxGetFieldNumber(vars,"GlobalMin");
-        var_field_GlobalMax = mxGetFieldNumber(vars,"GlobalMax");
-        /* Create top.Groups.Attributes structure array */
-        attr_struct_dims[0] = 1;
-        attr_struct_dims[1] = gp->attrs_count;
-        attrs = mxCreateStructArray(2, attr_struct_dims, nattrfields, attr_field_names);
-        mxSetFieldByNumber(groups,gi,group_field_Attributes,attrs);
-        attr_field_Name = mxGetFieldNumber(attrs,"Name");
-        attr_field_Type = mxGetFieldNumber(attrs,"Type");
-        attr_field_Value = mxGetFieldNumber(attrs,"Value");
-
-        /******************************/
-        /* Add variables to the group */
-
-        if (verbose>1) mexPrintf("    Variables\n");
-        for (vi=0; vi < gp->vars_count; vi++) {
-            vinfo = adios_inq_var_byid( gp, vi);
-            if (vinfo == NULL) {
-               mexErrMsgIdAndTxt("MATLAB:adiosopenc:varinfo",adios_errmsg());
-            }
-            /* Flip dimensions from ADIOS-read-api/C/row-major order to Matlab/Fortran/column-major order */
-            swap_order(vinfo->ndim, vinfo->dims);
-
-            if (verbose>1) {
-                mexPrintf("      %s: ndims=%d, adios type=%s, timedim=%d dimensions [", 
-                gp->var_namelist[vi], vinfo->ndim, adios_type_to_string(vinfo->type), vinfo->timedim);
-                for (i=0; i<vinfo->ndim; i++)
-                    mexPrintf("%lld ", vinfo->dims[i]);
-                mexPrintf("]\n");
-            }
-            /* field NAME */
-            mxSetFieldByNumber(vars,vi,var_field_Name,mxCreateString(gp->var_namelist[vi]));
-            /* field TYPE */
-            mxtype = adiostypeToMatlabClass(vinfo->type, &complexFlag);
-            arr = mxCreateNumericMatrix( 1, 1, mxtype, complexFlag);
-            mxSetFieldByNumber(vars,vi,var_field_Type,mxCreateString(mxGetClassName(arr)));
-            mxDestroyArray(arr);
-            /* field DIMS */
-            if (vinfo->ndim > 0) {
-                arr = mxCreateNumericMatrix( 1, vinfo->ndim, mxINT32_CLASS, mxREAL);
-                int32p = (int32_t *)mxGetData(arr);
-                for (i=0; i<vinfo->ndim; i++) 
-                    int32p[i] = (int32_t) vinfo->dims[i];
-            } else {
-                arr = mxCreateNumericMatrix( 0, 0, mxINT32_CLASS, mxREAL);
-            }
-            mxSetFieldByNumber(vars,vi,var_field_Dims,arr);
-
-            /* field TIMEDIM */
-            /* Timedim is -1,0...ndim-1 in C, 0,1..ndim in Matlab */
-            timedim = vinfo->timedim + 1;
-            arr = valueToMatlabValue((void *)(&timedim), mxINT32_CLASS, mxREAL);
-            mxSetFieldByNumber(vars,vi,var_field_Timedim,arr);
-
-            /* field GLOBALMIN */
-            arr = valueToMatlabValue(vinfo->gmin, mxtype, complexFlag);
-            mxSetFieldByNumber(vars,vi,var_field_GlobalMin,arr);
-
-            /* field GLOBALMAX */
-            arr = valueToMatlabValue(vinfo->gmax, mxtype, complexFlag);
-            mxSetFieldByNumber(vars,vi,var_field_GlobalMax,arr);
-
-            adios_free_varinfo(vinfo);
-        }
-
-
-
-        /******************************/
-        /* Add attributes to the group */
-
-        if (verbose>1) mexPrintf("    Attributes\n");
-        for (ai=0; ai < gp->attrs_count; ai++) {
-            status = adios_get_attr_byid( gp, ai, &adiostype, &asize, &data);
-            if (status != 0) {
-               mexErrMsgIdAndTxt("MATLAB:adiosopenc:varinfo",adios_errmsg());
-            }
-            if (verbose>1) 
-                mexPrintf("      %s: adios type=%s, size=%d\n", 
-                gp->attr_namelist[ai], adios_type_to_string(adiostype), asize);
-            /* field NAME */
-            mxSetFieldByNumber(attrs,ai,attr_field_Name,mxCreateString(gp->attr_namelist[ai]));
-            /* field TYPE */
-            mxtype = adiostypeToMatlabClass(adiostype, &complexFlag);
-            arr = mxCreateNumericMatrix( 1, 1, mxtype, complexFlag);
-            mxSetFieldByNumber(attrs,ai,attr_field_Type,mxCreateString(mxGetClassName(arr)));
-            mxDestroyArray(arr);
-            /* field VALUE */
-            arr = valueToMatlabValue(data, mxtype, complexFlag);
-            mxSetFieldByNumber(attrs,ai,attr_field_Value,arr);
-
-            free(data); /* we do not store attribute values yet */
-
-        }
-
-        if (verbose>1) mexPrintf("    finished defining group\n");
-    }
-
-
-    if (verbose) mexPrintf("return from adiosopenc\n");
-}
-
-mxArray * valueToMatlabValue( void * data, mxClassID mxtype, mxComplexity complexFlag)
-{
-    /* copies values in all cases, so one can free(data) later */
-    mxArray *arr;
-    if (data == NULL) {
-        arr = mxCreateString("undefined");
-    } else if (mxtype == mxCHAR_CLASS) {
-        arr = mxCreateString((char *)data);
-    } else if (complexFlag == mxCOMPLEX) {
-        arr = mxCreateDoubleMatrix( 1, 1, mxCOMPLEX);
-        if (mxtype == mxSINGLE_CLASS) {
-            *(double *)mxGetPr(arr) = ((float *)data)[0];
-            *(double *)mxGetPi(arr) = ((float *)data)[1];
-        } else {
-            *(double *)mxGetPr(arr) = ((double *)data)[0];
-            *(double *)mxGetPi(arr) = ((double *)data)[1];
-        }
-    } else {
-        arr = mxCreateNumericMatrix( 1, 1, mxtype, mxREAL);
-        memcpy( mxGetData(arr), data, mxGetElementSize(arr));
-    }
-    return arr;
-}
-
-void errorCheck(int nlhs, int nrhs, const mxArray *prhs[]){
-    /* Assume that we are called from adiosread.m which checks the arguments already */
-    /* Check for proper number of arguments. */
-    
-    if ( nrhs != 2 ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosopenc:rhs","This function needs exactly 2 arguments: File, Verbose");
-    }
-    
-    if ( !mxIsChar(prhs[0]) ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosopenc:rhs","First arg must be a string.");
-    } 
-    
-    if ( !mxIsNumeric(prhs[1]) ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosopenc:rhs","Second arg must be a number.");
-    } 
-    
-    if ( nlhs > 1 ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosopenc:lhs","Too many output arguments.");
-    }
-    
-#if !defined(MX_COMPAT_32)
-    /* Make sure that it is safe to cast dim to mwSize when using largeArrayDims.*/
-    if ( dim > MWSIZE_MAX ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosopenc:dimensionTooLarge",
-                          "The input dimension, %.0f, is larger than the maximum value of mwSize, %u, when built with largeArrayDims.", dim, MWSIZE_MAX);
-    }
-#endif
- }
-
-
-/** Make a C char* string from a Matlab string */
-char* getString(const mxArray *mxstr) 
-{
-    mwSize buflen;
-    char   *str;
-    /* Allocate enough memory to hold the converted string. */
-    buflen = mxGetNumberOfElements(mxstr) + 1;
-    str = mxCalloc(buflen, sizeof(char));
-    /* Copy the string data from string_array_ptr and place it into buf. */
-    if (mxGetString(mxstr, str, buflen) != 0)
-        mexErrMsgTxt("Could not convert string data from the file name.");
-    return str;
-}
-
-/** return the appropriate class for an adios type (and complexity too) */
-mxClassID adiostypeToMatlabClass(enum ADIOS_DATATYPES type, mxComplexity *complexity ) 
-{
-    *complexity = mxREAL;
-    switch( type ) {
-        case adios_unsigned_byte:
-            return mxUINT8_CLASS;
-        case adios_byte:
-            return mxINT8_CLASS;
-        case adios_string:
-            return mxCHAR_CLASS;
-               
-        case adios_unsigned_short:
-            return mxUINT16_CLASS;
-        case adios_short:
-            return mxINT16_CLASS;
-
-        case adios_unsigned_integer:
-            return mxUINT32_CLASS;
-        case adios_integer:
-            return mxINT32_CLASS;
-
-        case adios_unsigned_long:
-            return mxUINT64_CLASS;
-        case adios_long:
-            return mxINT64_CLASS;
-
-        case adios_real: 
-            return mxSINGLE_CLASS;
-        case adios_double:
-            return mxDOUBLE_CLASS;
-             
-        case adios_complex:     /* 8 bytes */
-            *complexity = mxCOMPLEX;
-            return mxSINGLE_CLASS;
-        case adios_double_complex: /*  16 bytes */
-            *complexity = mxCOMPLEX;
-            return mxDOUBLE_CLASS;
-
-        case adios_long_double: /* 16 bytes */
-        default:
-            mexErrMsgIdAndTxt("MATLAB:adiosopenc.c:dimensionTooLarge",
-                 "Adios type %d (%s) not supported in visit.\n",
-                 type, adios_type_to_string(type));
-            break;
-    }
-    return 0; /* just to avoid warnings. never executed */
-}
-
-
-/* Reverse the order in an array in place.
-   use swapping from Matlab/Fortran/column-major order to ADIOS-read-api/C/row-major order and back
-*/
-static void swap_order(int n, uint64_t *array)
-{
-    int i, tmp;
-    for (i=0; i<n/2; i++) {
-        tmp = array[i];
-        array[i] = array[n-1-i];
-        array[n-1-i] = tmp;
-    }
-}
-
-
diff --git a/wrappers/matlab/.svn/text-base/adiosread.m.svn-base b/wrappers/matlab/.svn/text-base/adiosread.m.svn-base
deleted file mode 100644
index 75abe8d..0000000
--- a/wrappers/matlab/.svn/text-base/adiosread.m.svn-base
+++ /dev/null
@@ -1,268 +0,0 @@
-function [data, attributes] = adiosread(varargin)
-%ADIOSREAD Read data from an ADIOS BP file.
-%   
-%   ADIOSREAD can read in data with different call options.
-%   The simplest way is to give the name of the file and the path
-%   to a variable/attribute. If you have more than one adios groups
-%   stored in one file, you should supply the group name as well.
-%   In these cases, the library opens the file, reads in the data
-%   and closes the file. 
-%
-%   Note: the adios group is not the same as HDF5 groups. Each variable has
-%   a path, which defines a logical hierarchy of the variables within one 
-%   adios group. This logical hierarchy is what is similar to HDF5 groups.
-%
-%   DATA = ADIOSREAD(FILE, VARPATH) 
-%      Read complete DATA from FILE with path VARPATH.
-%      Use only if you have only one adios group in the file or you know that
-%      the VARPATH is in the first adios group in the file.
-%
-%   DATA = ADIOSREAD(FILE, GROUP, VARPATH) 
-%      Read complete DATA from an adios GROUP of FILE with path VARPATH.
-%      Use this form if you have more than one ADIOS group in the file.
-%      GROUP is either a group name (string) or an index of the groups
-%      (integer, starting from 1).
-% 
-%   DATA = ADIOSREAD(GROUPSTRUCT, VARPATH) 
-%      If you have opened the file with ADIOSOPEN, you can supply the
-%      the group struct to read in a variable/attribute.
-%      GROUPSTRUCT must be one of the info.Groups array.
-%      When finished reading all data, close the file with ADIOSCLOSE. 
-%
-%   DATA... = ADIOSREAD( ..., 'Slice', SLICEDEF)
-%      You can read a portion of a variable. 
-%      A slice is defined as an N-by-2 array of integers, where N is the 
-%      number of dimensions of the variable (or less). A tuple describes the 
-%      "start" and "count" values. The "start" values start from 1.
-%          E.g. [1 10; 5 2] reads the first 10 values in the first dimension
-%      and 2 values from the 5th value in the second dimension resulting in
-%      a 10-by-2 array. 
-%          You can use negative numbers to index from the end of the array
-%      as in python. -1 refers to the last element of the array, -2 the one
-%      before and so on. 
-%          E.g. [-1 1] reads in the last value of a 1D array. 
-%               [1 -1] reads in the complete dimension.
-%      If the slice definition has less rows than the number of dimensions
-%      of the variable, [1 -1] rows are added automatically to read those
-%      dimensions completely.
-%          If the slice definition has more rows than the number of dimensions
-%      of the variable, the extra slice definitions will be ignored.
-%
-%   DATA... = ADIOSREAD( ..., 'Verbose', VALUE)
-%      To get logging from the adiosread code, set Verbose to 1 or higher.
-%      Higher values cause more and more details to be printed. 
-%
-%   Please read the file adioscopyright.txt for more information.
-%
-%   See also ADIOSOPEN, ADIOSCLOSE, ADIOS.
-
-%   Copyright 2009 UT-BATTELLE, LLC
-%   $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
-%   Author: Norbert Podhorszki <pnorbert at ornl.gov>
-
-%
-% Process arguments.
-%
-
-checkArgCounts(varargin{:});
-[args, msg] = parse_inputs(varargin{:});
-if (~isempty(msg))
-    error('MATLAB:adiosread:inputParsing', '%s', msg);
-end
-
-if (isnumeric(args.Group))
-    if (isa(args.Group, 'int64'))
-        gn=sprintf('Group handler=%lld',args.Group);
-    else
-        gn=sprintf('Group index=%d',args.Group);
-    end
-else
-    gn=sprintf('Group name=%s',args.Group);
-end
-offsets=sprintf('%d ', args.Offsets);
-counts=sprintf('%d ', args.Counts);
-verbose=sprintf('%d ', args.Verbose);
-
-input = sprintf('adiosreadc:\n  File name=%s \n  %s \n  Var=%s\n  Offsets=[%s]  Counts=[%s] \n  Verbose=%s', ...
- args.File, gn, args.Path, offsets, counts, verbose);
-if (args.Verbose > 0) 
-    CallArguments = input
-end
-
-
-if (nargout == 1)
-    data = adiosreadc(args.File, args.Group, args.Path, args.Offsets, args.Counts, args.Verbose);
-else 
-    adiosreadc(args.File, args.Group, args.Path, args.Offsets, args.Counts, args.Verbose);
-end
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% FUNCTION:   checkArgCounts %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-function checkArgCounts(varargin)
-
-if (nargin < 2)
-    error('MATLAB:adiosread:notEnoughInputs', ...
-          'ADIOSREAD requires at least two input arguments.')
-end
-
-
-if (nargout > 1)
-    error('MATLAB:adiosread:tooManyOutputs', ...
-          'ADIOSREAD requires one or fewer output arguments.')
-end
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% FUNCTION:   parse_inputs   %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-function [args, msg] = parse_inputs(varargin)
-
-args.File    = '';
-args.Group   = '';
-args.Path    = '';
-args.Offsets = []; % start positions in each dimension for slicing
-args.Counts  = []; % counts in each dimension for slicing
-args.Verbose = 0;  % verbosity, default is off, i.e. 0
-
-msg = '';
-
-% Arg 1: file name or int64 group handler
-if ischar(varargin{1})
-    args.File = varargin{1};
-    %
-    % Verify existence of filename
-    %
-    fid = fopen(args.File);    
-    if (fid == -1)
-        % Look for filename with extensions.
-        fid = fopen([args.File '.bp']);
-    end
-
-    if (fid == -1)
-        error('MATLAB:hdf5read:fileOpen', ...
-              'Couldn''t open file (%s).', ...
-              args.File)
-    else
-        % Get full filename 
-        args.File = fopen(fid);
-        fclose(fid);
-    end
-elseif (isa(varargin{1}, 'struct'))
-    try
-        grp = varargin{1};
-        args.Group = grp.GroupHandler; % int64
-    catch
-        msg = ['Input is not a group struct of the info struct ' ...
-               'returned by ADIOSOPEN'];
-        return
-    end
-else
-    msg = ['1st arg should be a string FILE argument to ADIOSREAD ' ...
-           'or a group struct from ADIOSOPEN'];
-    return
-end
-
-% Arg 2 and maybe 3: group and varpath
-if (rem(nargin, 2) == 0)
-    % even number of arguments: FILE, VARPATH, ...
-    args.Path = varargin{2};
-    varargin = {varargin{3:end}};
-else
-    % odd number of arguments: FILE, GROUP, VARPATH, ...
-    if (args.Group ~= '') 
-        msg = ['GROUPHANDLER, GROUP, VARPATH is not an accepted argument list'];
-        return
-    end
-    args.Group = varargin{2};
-    args.Path = varargin{3};
-    varargin = {varargin{4:end}};
-    % check type of Group
-    if ((~ischar(args.Group)) && (~isnumeric(args.Group))) 
-        msg = ['GROUP input argument to ADIOSREAD must be a string or a number'];
-        return
-    end
-    if (isnumeric(args.Group))
-        % convert group index to int32
-        args.Group = int32(args.Group);
-    end
-end
-% check type of Path
-if ~ischar(args.Path)
-    msg = ['VARPATH input argument to ADIOSREAD must be string.'];
-    return
-end
-
-% Parse optional arguments based on their number.
-if (length(varargin) > 0)
-    
-    paramStrings = {'slice', 'verbose'};
-    
-    % For each pair
-    for k = 1:2:length(varargin)
-        param = lower(varargin{k});
-            
-        if (~ischar(param))
-            msg = 'Parameter name must be a string.';
-            return
-        end
-        
-        idx = strmatch(param, paramStrings);
-        
-        if (isempty(idx))
-            msg = sprintf('Unrecognized parameter name "%s".', param);
-            return
-        elseif (length(idx) > 1)
-            msg = sprintf('Ambiguous parameter name "%s".', param);
-            return
-        end
-
-        switch (paramStrings{idx})
-        % SLICE
-        case 'slice'
-            if (k == length(varargin))
-                msg = 'No slicing value specified for Slice option.';
-                return
-            end
-        
-            slices = varargin{k+1};
-            if ((~isnumeric(slices)) || ...
-                (~isempty(slices) && size(slices, 2) ~= 2) || ...
-                (~isempty(find(rem(slices, 1) ~= 0))))
-
-                msg = 'Slice values must be n-by-2 array of integers.';
-                return
-            end
-
-            if (~isempty(slices))
-                args.Offsets = int64(fix(slices(:,1)));
-                args.Counts = int64(fix(slices(:,2)));
-            else
-                args.Offsets = int64([]);
-                args.Counts = int64([]);
-            end
-            
-        % VERBOSE
-        case 'verbose'
-            if (k == length(varargin))
-                msg = 'No value specified for Verbose option.';
-                return
-            end
-        
-            args.Verbose = varargin{k+1};
-            if ((~isnumeric(args.Verbose)) || ...
-                (~isempty(find(rem(args.Verbose, 1) ~= 0))))
-                
-                msg = sprintf('''VERBOSE'' must be an integer.');
-                return
-            end
-            if (args.Verbose < 0)
-                msg = sprintf('''VERBOSE'' must be greater or equal to zero.');
-                return
-            end
-        end
-    end
-end
diff --git a/wrappers/matlab/.svn/text-base/adiosreadc.c.svn-base b/wrappers/matlab/.svn/text-base/adiosreadc.c.svn-base
deleted file mode 100644
index 8831aa5..0000000
--- a/wrappers/matlab/.svn/text-base/adiosreadc.c.svn-base
+++ /dev/null
@@ -1,458 +0,0 @@
-/* 
- * ADIOS is freely available under the terms of the BSD license described
- * in the COPYING file in the top level directory of this source distribution.
- *
- * Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
- */
-
-/*=================================================================
- * adiosreadc.c - read a variable/attribute from an ADIOS file
- *
- * Input: File, Group, Path, Offset, Count, Verbose
- *    File:     string (name) or int64 (handler)
- *    Group:    string (name) or int64 (handler) or int32 (index)
- *    Path:     string (variable/attribute name with full path)
- *    Offset:   int32 array 
- *    Count:    int32 array
- *    Verbose:  numeric (double)
- * Output: The variable/attribute as mxArray
- *
- *
- * $Revision: 1.0 $  $Date: 2009/08/05 12:53:41 $
- * Author: Norbert Podhorszki <pnorbert at ornl.gov>
- *=================================================================*/
-
-#include <string.h>    /* strlen */
-#include "mex.h"
-#include "adios_read.h"
-#include "adios_types.h"
-
-static int verbose=0;
-
-mxArray* readdata( ADIOS_GROUP *gp, const char *path, int in_noffsets, 
-                   const int64_t *in_offsets, const int64_t *in_counts);
-void errorCheck(int nlhs, int nrhs, const mxArray *prhs[]);
-char* getString(const mxArray *mxstr);
-mxClassID adiostypeToMatlabClass(enum ADIOS_DATATYPES type, mxComplexity *complexity);
-mxArray* createMatlabArray( enum ADIOS_DATATYPES adiostype, int ndims, uint64_t *dims); 
-void recalc_offsets( int ndims, uint64_t *dims, mwSize in_noffsets, 
-                     const int64_t *in_offsets, const int64_t *in_counts,
-                     uint64_t *offsets, uint64_t *counts);
-static void swap_order(int n, uint64_t *array);
-
-
-
-void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
-    char *fname;        /* file name */
-    char *gname;        /* group name */
-    char *path;         /* name of variable or attribute */
-    mwSize in_noffsets;    /* number of offsets provided, = number of counts */
-    int64_t *in_offsets;    /* offset array provided */
-    int64_t *in_counts;     /* count array provided */
-    int status;
-    char msg[512];        /* error messages from function calls */
-
-    int64_t fh, gh, *int64p; /* file and group handlers and temp pointers */
-    int32_t *int32p;
-    int  haveToCloseFile, haveToCloseGroup, readAttributesToo;
-
-    ADIOS_FILE *fp;
-    ADIOS_GROUP *gp;
-    int mpi_comm_dummy; 
-
-    int i;
-    mxArray *out;        /* output data array */
-    const char *field_names[] = {"name", "value"}; /* 2nd output arg's struct fields */
-    mwSize attr_struct_dims[2];   /* dimensions for 2nd arg struct array: 1-by-sth */
-
-    errorCheck(nlhs, nrhs, prhs);
-
-    /*mexPrintf("nrhs=%d  nlhs=%d\n", nrhs, nlhs);*/
-    
-    /***********************/
-    /* 1. get verbose parameter first */
-    verbose = (int)mxGetScalar(prhs[5]);
-    if (verbose) mexPrintf("Verbosity level: %d\n", verbose);
-
-    /***********************/
-    /* 1. get file handler */
-    fp = NULL;
-    haveToCloseFile = 0;
-    if (mxIsChar(prhs[0])) {
-        fname = getString( (mxArray *)prhs[0]);
-        if (strlen(fname) > 0) {
-            if (verbose) mexPrintf("File name: \"%s\"\n", fname);
-            /* Open ADIOS file now */
-            fp = adios_fopen (fname, mpi_comm_dummy);
-            if (fp == NULL) {
-                mexErrMsgIdAndTxt("MATLAB:adiosreadc:open",adios_errmsg());
-            }
-            haveToCloseFile = 1;
-        }
-    } 
-
-
-    /************************/
-    /* 2. get group handler */
-    if (mxIsInt64(prhs[1])) { /* int64 group handler provided */
-        int64p = (int64_t *) mxGetData(prhs[1]); 
-        gp = (ADIOS_GROUP *) *int64p;
-        mexPrintf("Group gp=%lld id=%d vcnt=%d\n", (int64_t)gp, gp->grpid, gp->vars_count);
-        haveToCloseGroup = 0;
-    } else {
-        /* reference to a group in file */
-        if (fp == NULL) {
-            mexErrMsgIdAndTxt("MATLAB:adiosreadc:open",
-               "Group argument must be an open group struct if File argument is not provided\n");
-        }
-
-        if (mxIsChar(prhs[1])) {
-            gname = getString( (mxArray *)prhs[1]);
-        if (verbose) mexPrintf("Group name: \"%s\"\n", gname );
-
-            /* empty groupname -> first group in the file */
-            if ( strlen(gname)==0 || !strcmp(gname,"/") || !strcmp(gname," ")) {
-                gp = adios_gopen_byid(fp, 0);
-                if (gp == NULL) {
-                    mexErrMsgIdAndTxt("MATLAB:adiosreadc:open",adios_errmsg());
-                }
-            } else {
-                /* Open group by name */
-                gp = adios_gopen(fp, gname);
-                if (gp == NULL) {
-                    mexErrMsgIdAndTxt("MATLAB:adiosreadc:open",adios_errmsg());
-                }
-            }
-            haveToCloseGroup = 1;
-
-        } else if (mxIsInt32(prhs[1])) { /* group index provided */
-            int32p  = (int32_t *) mxGetData(prhs[1]); 
-            if (verbose) mexPrintf("Group index: %d\n", *int32p);
-            gname = NULL;
-
-            /* group index in Matlab starts from 1, in adios starts from 0 */
-            /* Open group by index */
-            gp = adios_gopen_byid(fp, *int32p-1);
-            if (gp == NULL) {
-                mexErrMsgIdAndTxt("MATLAB:adiosreadc:open",adios_errmsg());
-            }
-            haveToCloseGroup = 1;
-        }
-    }
-
-    /*****************************************************************************************/
-    /* 3. get other arguments: char variable name, int64 in_offsets[], int64 in_counts[] */
-    path     = getString(prhs[2]);
-    if (verbose) mexPrintf("Variable name: \"%s\"\n", path );
-    in_noffsets = mxGetNumberOfElements(prhs[3]);
-    in_offsets  = (int64_t *) mxGetData(prhs[3]); 
-    in_counts   = (int64_t *) mxGetData(prhs[4]); 
-
-
-    /*********************************************************************/
-    /* 4. read in variable */
-    out = readdata( gp, path, in_noffsets, in_offsets, in_counts);
-    if ( nlhs >= 1 ) {
-        plhs[0] = out;
-    }
-
-    /********************************************************/
-    /* 5. read in all attributes of a variable if requested */
-#if 0
-    if ( nlhs == 2 ) {
-        if (!isvar) {
-            mexErrMsgIdAndTxt("MATLAB:adiosreadc:read",
-               "Second output argument can be provided only for variables. Path %s refers to an attribute.",
-               path);
-        } else {
-            /* Read all attributes directly under the given path (= path/name) */
-            if (verbose) mexPrintf("Read in attributes under the path %s\n", path);
-            nattrs = adios_readutil_getdirectattributes(gh, path, &attrlist); 
-            if (verbose) mexPrintf("Found %d matching attributes\n", nattrs);
-            attr_struct_dims[0] = 1;
-            attr_struct_dims[1] = nattrs;
-            /* Create a 1-by-n array of structs with fields {name,value}. */ 
-            plhs[1] = mxCreateStructArray(2, attr_struct_dims, 2, field_names);
-            if (verbose) mexPrintf("Created struct array, 1-by-%d\n", attr_struct_dims[1]);
-            i=0;
-            attr=attrlist;
-            while (attr != NULL) {
-                mxSetFieldByNumber(plhs[1],i,0,mxCreateString(attr->name));
-                out = readdata( fh, gh, attr->name, 0, NULL, NULL, timestep, &isvar);
-                mxSetFieldByNumber(plhs[1],i,1,out);
-                if (verbose) mexPrintf("Added attr: %s\n", attr->name);
-                i++;
-                attr=attr->next;
-            }
-            adios_readutil_freenamelist(attrlist);
-        }
-    }
-#endif
-
-
-    /**************************************************/
-    /* 6. close group and file if opened in this call */
-    if (haveToCloseGroup) {
-        if (verbose) mexPrintf("Close group\n");
-        adios_gclose(gp);
-        if (gname) 
-            mxFree(gname);
-    }
-
-    if (haveToCloseFile) {
-        if (verbose) mexPrintf("Close file\n");
-        adios_fclose(fp);
-        if (fname)
-            mxFree(fname);
-    }
-
-
-    mxFree(path);
-
-}
-
-mxArray* readdata( ADIOS_GROUP *gp, const char *path, mwSize in_noffsets,
-                   const int64_t *in_offsets, const int64_t *in_counts) 
-{
-    /* FIXME: does not work for COMPLEX data because
-       adios stores real and imaginary together as Fortran Complex type does, 
-       while matlab stores them as two separate float/double arrays
-    */
-    void *data;             /* content of variable read in */
-    uint64_t offsets[16], counts[16]; /* extended offsets/counts */
-    int64_t read_bytes;
-    uint64_t arraysize;
-    int  status, i;
-    mxArray * out;
-    char msg[512];
-    ADIOS_VARINFO *vinfo;
-
-    /* get type/size info on variable */
-    if (verbose) mexPrintf("Get info on var: %s\n", path);
-    vinfo = adios_inq_var( gp, path);
-    if (vinfo == NULL) {
-        mexErrMsgIdAndTxt("MATLAB:adiosreadc:varinfo",adios_errmsg());
-    }
-    if (verbose) { 
-        mexPrintf("Var=%s type=%s C dimensions %dD [", path, adios_type_to_string(vinfo->type), vinfo->ndim);
-        for (i=0; i<vinfo->ndim; i++)
-            mexPrintf("%lld ", vinfo->dims[i]);
-        mexPrintf("]\n");
-    }
-
-    /* Flip dimensions from ADIOS-read-api/C/row-major order to Matlab/Fortran/column-major order */
-    swap_order(vinfo->ndim, vinfo->dims);
-
-    /* extend offsets/counts if needed, change from 1..N to 0..N-1 indexing and
-       interpret negative indices */
-    recalc_offsets( vinfo->ndim, vinfo->dims, in_noffsets, in_offsets, in_counts, offsets, counts);
-
-    /* create Matlab array with the appropriate type and size */
-    if (vinfo->type == adios_string) {
-        /* Matlab string != char array of C, so handle separately */
-        data = (void *) mxCalloc(vinfo->dims[0], sizeof(char));
-    } else {
-        if (verbose) { 
-            mexPrintf("Create %d-D Matlab array [", vinfo->ndim);
-            for (i=0; i<vinfo->ndim; i++)
-                mexPrintf("%lld ", counts[i]);
-            mexPrintf("]\n");
-        }
-        out = createMatlabArray(vinfo->type, vinfo->ndim, counts); 
-        data = (void *) mxGetData(out);
-    }
-
-    /* Flip offsets/counts from Matlab/Fortran/column-major order to ADIOS-read-api/C/row-major order */
-    swap_order(vinfo->ndim, offsets);
-    swap_order(vinfo->ndim, counts);
-
-    /* read in data */
-    if (verbose) mexPrintf("Read in data\n");
-    
-    read_bytes = adios_read_var_byid( gp, vinfo->varid, offsets, counts, data);
-    if (read_bytes < 0) {
-        mexErrMsgIdAndTxt("MATLAB:adiosreadc:read",adios_errmsg());
-    }
-    if (verbose) mexPrintf("Read in %lld bytes\n", read_bytes);
-
-    if (vinfo->type == adios_string) {
-        out = mxCreateString( (char *)data);
-        mxFree(data);
-    }
-
-    adios_free_varinfo(vinfo);
-    return out;
-}
-    
-
-void errorCheck(int nlhs, int nrhs, const mxArray *prhs[]){
-    /* Assume that we are called from adiosread.m which checks the arguments already */
-    /* Check for proper number of arguments. */
-    
-    if ( nrhs != 6 ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosreadc:rhs","This function needs exactly 6 arguments: File, Group, Varpath, Offsets, Counts, Verbose");
-    }
-    
-    if ( !mxIsChar(prhs[0]) && !mxIsInt64(prhs[0]) ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosreadc:rhs","First arg must be either a string or an int64 handler.");
-    } 
-    
-    if ( nlhs > 1 ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosreadc:lhs","Too many output arguments.");
-    }
-    
-#if !defined(MX_COMPAT_32)
-    /* Make sure that it is safe to cast dim to mwSize when using largeArrayDims.*/
-    if ( dim > MWSIZE_MAX ) {
-        mexErrMsgIdAndTxt("MATLAB:adiosreadc:dimensionTooLarge",
-                          "The input dimension, %.0f, is larger than the maximum value of mwSize, %u, when built with largeArrayDims.", dim, MWSIZE_MAX);
-    }
-#endif
- }
-
-
-/** Make a C char* string from a Matlab string */
-char* getString(const mxArray *mxstr) 
-{
-    mwSize buflen;
-    char   *str;
-    /* Allocate enough memory to hold the converted string. */
-    buflen = mxGetNumberOfElements(mxstr) + 1;
-    str = mxCalloc(buflen, sizeof(char));
-    /* Copy the string data from string_array_ptr and place it into buf. */
-    if (mxGetString(mxstr, str, buflen) != 0)
-        mexErrMsgTxt("Could not convert string data from the file name.");
-    return str;
-}
-
-/** return the appropriate class for an adios type */
-mxClassID adiostypeToMatlabClass(enum ADIOS_DATATYPES type, mxComplexity *complexity) 
-{
-    *complexity=mxREAL;
-    switch( type ) {
-        case adios_unsigned_byte:
-            return mxUINT8_CLASS;
-        case adios_byte:
-            return mxINT8_CLASS;
-        case adios_string:
-            return mxCHAR_CLASS;
-               
-        case adios_unsigned_short:
-            return mxUINT16_CLASS;
-        case adios_short:
-            return mxINT16_CLASS;
-
-        case adios_unsigned_integer:
-            return mxUINT32_CLASS;
-        case adios_integer:
-            return mxINT32_CLASS;
-
-        case adios_unsigned_long:
-            return mxUINT64_CLASS;
-        case adios_long:
-            return mxINT64_CLASS;
-
-        case adios_real: 
-            return mxSINGLE_CLASS;
-        case adios_double:
-            return mxDOUBLE_CLASS;
-             
-        case adios_complex:     /* 8 bytes */
-            *complexity = mxCOMPLEX;
-            return mxSINGLE_CLASS;
-        case adios_double_complex: /*  16 bytes */
-            *complexity = mxCOMPLEX;
-            return mxDOUBLE_CLASS;
-
-        case adios_long_double: /* 16 bytes */
-        default:
-            mexErrMsgIdAndTxt("MATLAB:adiosreadc.c:dimensionTooLarge",
-                 "Adios type %d (%s) not supported in visit.\n",
-                 type, adios_type_to_string(type));
-            break;
-    }
-    return 0; /* just to avoid warnings. never executed */
-}
-
-/* create an N-dim array with given type and dimensions */
-mxArray* createMatlabArray( enum ADIOS_DATATYPES adiostype, int ndims, uint64_t *dims)
-{
-    mxClassID mxtype;
-    mxArray *arr;
-    mwSize  mNdims;
-    mwSize  mDims[16];
-    mxComplexity ComplexFlag;
-    int     i;
-    int     isTypeComplex;
-
-    /* convert ints to mwSizes */
-    if (ndims > 0) {
-        mNdims = (mwSize) ndims;
-        for (i=0; i<ndims; i++) 
-            mDims[i] = (mwSize)dims[i];
-    } else {
-        /* 0 dim: scalar value -> 1-by-1 Matlab array */
-        mNdims = 2;
-        mDims[0] = 1;
-        mDims[1] = 1;
-    }
-
-    /* get type */
-    mxtype = adiostypeToMatlabClass(adiostype, &ComplexFlag);
-
-    /* create array */
-    arr = mxCreateNumericArray( mNdims, mDims, mxtype, ComplexFlag);
-
-    if (verbose) mexPrintf("Array for adios type %s is created\n", adios_type_to_string(adiostype));
-
-    return arr;
-}
-
-
-/** - extend offset/count arrays to ndims if needed 
-    - recalculate "from 1" Matlab indices to "from 0" C indices
-    - recalculate the negative indices 
-    !!! Provide the output arrays in the caller !!!
-*/
-void recalc_offsets( int ndims, uint64_t *dims, mwSize in_noffsets, 
-                     const int64_t *in_offsets, const int64_t *in_counts,
-                     uint64_t *offsets, uint64_t *counts)
-{
-    int i;
-    for (i=0; i<ndims; i++) {
-        if ((mwSize)i < in_noffsets) {
-            if (in_offsets[i] < 0) /* negative offset means last-|offset| */
-                offsets[i] = dims[i] + in_offsets[i];
-            else 
-                offsets[i] = in_offsets[i] - 1; /* C index start from 0 */
-
-            if (in_counts[i] < 0) /* negative count means last-|count|+1-start */
-                counts[i]  = dims[i] + in_counts[i] - offsets[i] + 1;
-            else
-                counts[i]  = in_counts[i]; 
-        } else {
-            /* extend offset/count array to match variable's dimensions */
-            if (verbose) mexPrintf("Extend offset/counts for dim %d: offset=%d count=%d\n", i, 0, dims[i] );
-            offsets[i] = 0;
-            counts[i]  = dims[i];
-        }
-
-    }
-}
-
-/* Reverse the order in an array in place.
-   use swapping from Matlab/Fortran/column-major order to ADIOS-read-api/C/row-major order and back
-*/
-static void swap_order(int n, uint64_t *array)
-{
-    int i, tmp;
-    for (i=0; i<n/2; i++) {
-        tmp = array[i];
-        array[i] = array[n-1-i];
-        array[n-1-i] = tmp;
-    }
-}
-
-
-
-
diff --git a/wrappers/numpy/.svn/all-wcprops b/wrappers/numpy/.svn/all-wcprops
deleted file mode 100644
index 1ecdf34..0000000
--- a/wrappers/numpy/.svn/all-wcprops
+++ /dev/null
@@ -1,17 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 50
-/svn-ewok/ADIOS/!svn/ver/1863/trunk/wrappers/numpy
-END
-CMakeLists.txt
-K 25
-svn:wc:ra_dav:version-url
-V 65
-/svn-ewok/ADIOS/!svn/ver/1754/trunk/wrappers/numpy/CMakeLists.txt
-END
-adios.pyx
-K 25
-svn:wc:ra_dav:version-url
-V 60
-/svn-ewok/ADIOS/!svn/ver/1863/trunk/wrappers/numpy/adios.pyx
-END
diff --git a/wrappers/numpy/.svn/entries b/wrappers/numpy/.svn/entries
deleted file mode 100644
index 87d81c3..0000000
--- a/wrappers/numpy/.svn/entries
+++ /dev/null
@@ -1,146 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/numpy
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-11T18:43:46.979736Z
-1863
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-test
-dir
-

-Modules
-dir
-

-example
-dir
-

-CMakeLists.txt
-file
-
-
-
-
-2012-07-03T20:21:38.816346Z
-33570f269f50487877b9050d7b2ee708
-2012-07-03T18:27:58.466885Z
-1754
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1693
-

-README
-file
-
-
-
-
-2012-07-02T16:20:14.206072Z
-692410289fad3128eef47efd5960fda5
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-872
-

-adios.pyx
-file
-
-
-
-
-2012-07-11T21:22:26.342699Z
-4f3ea6cc7be26bddc7c35bf866985046
-2012-07-11T18:43:46.979736Z
-1863
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-18550
-

diff --git a/wrappers/numpy/.svn/format b/wrappers/numpy/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/numpy/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/numpy/.svn/text-base/CMakeLists.txt.svn-base b/wrappers/numpy/.svn/text-base/CMakeLists.txt.svn-base
deleted file mode 100644
index 26afa91..0000000
--- a/wrappers/numpy/.svn/text-base/CMakeLists.txt.svn-base
+++ /dev/null
@@ -1,60 +0,0 @@
-cmake_minimum_required (VERSION 2.8)
-set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
-include(${CMAKE_CURRENT_SOURCE_DIR}/Modules/CMakeUtilityFunctions.cmake)
-
-project (AdiosPython CXX)
-
-find_package (PythonLibs REQUIRED)
-include_directories (${PYTHON_INCLUDE_DIRS})
-##print(PYTHON_INCLUDE_DIRS)
-
-find_package (PythonInterp REQUIRED)
-find_package (Numpy REQUIRED)
-include_directories (${PYTHON_NUMPY_INCLUDE_DIR})
-find_package (MPI4Py REQUIRED)
-
-option (ADIOS_USE_MPI "Use parallel ADIOS" ON)
-
-find_package (ADIOS REQUIRED)
-add_definitions (${ADIOS_COMPILE_FLAGS})  
-add_definitions (-DADIOS_USE_READ_API_1)
-include_directories (${ADIOS_INCLUDE_PATH})
-
-find_package (MPI REQUIRED)
-include_directories (${MPI_CXX_INCLUDE_PATH})
-
-set (PSRCS
-  adios.pyx
-  )
-
-foreach (FILE ${PSRCS})
-  string (REGEX REPLACE ".pyx" ".cpp" OUTFILE ${FILE})
-
-  add_custom_command (
-    OUTPUT ${OUTFILE}
-    COMMAND cython -o ${CMAKE_CURRENT_BINARY_DIR}/${OUTFILE} -I${PYTHON_MPI4PY_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
-    DEPENDS ${FILE}
-    )
-  list (APPEND SRCS ${OUTFILE})
-endforeach ()
-
-add_library (adios MODULE
-  ${SRCS}
-  )
-
-target_link_libraries (adios
-  ${ADIOS_LIBRARIES}
-  ${PYTHON_LIBRARIES}
-  ${MPI_CXX_LIBRARIES}
-  )
-
-set_target_properties (adios
-  PROPERTIES OUTPUT_NAME adios
-  PREFIX ""
-  ##LINK_FLAGS "-undefined dynamic_lookup"
-  )
-
-ENABLE_TESTING()
-add_test (test_write ${CMAKE_CURRENT_SOURCE_DIR}/test/test_adios_write.sh ${CMAKE_CURRENT_SOURCE_DIR}/test)
-add_test (test_read ${CMAKE_CURRENT_SOURCE_DIR}/test/test_adios_read.sh ${CMAKE_CURRENT_SOURCE_DIR}/test)
-add_test (test_noxml ${CMAKE_CURRENT_SOURCE_DIR}/test/test_adios_noxml.sh ${CMAKE_CURRENT_SOURCE_DIR}/test)
diff --git a/wrappers/numpy/.svn/text-base/README.svn-base b/wrappers/numpy/.svn/text-base/README.svn-base
deleted file mode 100644
index e745cb2..0000000
--- a/wrappers/numpy/.svn/text-base/README.svn-base
+++ /dev/null
@@ -1,37 +0,0 @@
-ADIOS Python/Numpy wrapper
------------------
-
-This directory contains the codes for the ADIOS python/numpy wrapper
-to to call the native ADIOS library. This module is built by Cython.
-
-
-== Build == 
-
-This program can be built with CMake (http://www.cmake.org/). You may
-want to a build directory and run cmake pointing the source directory
-containing CMakeLists.txt (this directory). For example, 
-
-$ mkdir build; cd build
-$ cmake /dir/to/source
-
-CMake will search installed ADIOS library and Python/Numpy. Once
-completed, type make to build:
-
-$ make
-Or, 
-$ make VERBOSE=1
-if you need verbose output.
-
-After successful building, you can see adios.so. This file can be
-loaded in Python.
-
-== Test == 
-
-This program contains a test program. To run testing after building,
-type the following command:
-
-$ make test
-
-If you need a verbose output, type the following
-
-$ ctest -V
diff --git a/wrappers/numpy/.svn/text-base/adios.pyx.svn-base b/wrappers/numpy/.svn/text-base/adios.pyx.svn-base
deleted file mode 100644
index 43c3dc5..0000000
--- a/wrappers/numpy/.svn/text-base/adios.pyx.svn-base
+++ /dev/null
@@ -1,607 +0,0 @@
-A"""
- ADIOS is freely available under the terms of the BSD license described
- in the COPYING file in the top level directory of this source distribution.
-
- Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.
-"""
-
-import numpy as np
-cimport numpy as np
-
-import mpi4py.MPI as MPI 
-cimport mpi4py.MPI as MPI
-
-import cython
-cimport cython
-
-## ==========
-## ADIOS Exported Functions
-## ==========
-
-from libc.stdint cimport uint32_t, int64_t, uint64_t
-from libc.stdlib cimport malloc, free
-
-cdef extern from "adios_types.h":
-    ctypedef enum ADIOS_DATATYPES:
-        adios_unknown
-        adios_byte
-        adios_short
-        adios_integer
-        adios_long
-        adios_unsigned_byte
-        adios_unsigned_short
-        adios_unsigned_integer
-        adios_unsigned_long
-        adios_real
-        adios_double
-        adios_long_double
-        adios_string
-        adios_complex
-        adios_double_complex
-
-    ctypedef enum ADIOS_BUFFER_ALLOC_WHEN:
-        ADIOS_BUFFER_ALLOC_UNKNOWN
-        ADIOS_BUFFER_ALLOC_NOW
-        ADIOS_BUFFER_ALLOC_LATER
-
-    ctypedef enum ADIOS_FLAG:
-        pass
-
-cdef extern from "adios.h":
-    ctypedef char* const_char_ptr "const char*"
-    cdef int adios_init (char * config)
-    
-    cdef int adios_finalize (int mype)
-    
-    cdef int adios_open (int64_t * fd,
-                         char * group_name,
-                         char * name, 
-                         char * mode,
-                         void * comm)
-    
-    cdef int adios_group_size (int64_t fd_p,
-                               uint64_t data_size,
-                               uint64_t * total_size)
-    
-    cdef int adios_write (int64_t fd_p,
-                          char * name,
-                          void * var)
-    
-    cdef int adios_read (int64_t fd_p,
-                         char * name,
-                         void * buffer,
-                         uint64_t buffer_size)
-
-    cdef int adios_close(int64_t fd_p)
-    
-    cdef int adios_init_noxml ()
-    
-    cdef int adios_allocate_buffer (ADIOS_BUFFER_ALLOC_WHEN when,
-                                    uint64_t buffer_size)
-    
-    cdef int adios_declare_group (int64_t * id,
-                                  char * name,
-                                  char * time_index,
-                                  ADIOS_FLAG stats)
-    
-    cdef int adios_define_var (int64_t group_id,
-                               char * name,
-                               char * path,
-                               ADIOS_DATATYPES type,
-                               char * dimensions,
-                               char * global_dimensions,
-                               char * local_offsets)
-    
-    cdef int adios_define_attribute (int64_t group,
-                                     char * name,
-                                     char * path,
-                                     ADIOS_DATATYPES type,
-                                     char * value,
-                                     char * var)
-    
-    cdef int adios_select_method (int64_t group,
-                                  char * method,
-                                  char * parameters,
-                                  char * base_path)
-
-cdef extern from "adios_read.h":
-    ctypedef struct MPI_Comm:
-        pass
-
-    ctypedef struct ADIOS_FILE:
-        uint64_t fh
-        int      groups_count
-        int      vars_count
-        int      attrs_count
-        int      tidx_start
-        int      ntimesteps
-        int      version
-        uint64_t file_size
-        int      endianness
-        char     ** group_namelist
-        void     * internal_data
-
-    ctypedef struct ADIOS_GROUP:
-        uint64_t gh
-        int      grpid
-        int      vars_count
-        char     ** var_namelist
-        int      attrs_count
-        char     ** attr_namelist
-        ADIOS_FILE * fp
-        int      timestep
-        int      lasttimestep
-
-    ctypedef struct ADIOS_VARINFO:
-        int        grpid
-        int        varid
-        ADIOS_DATATYPES   type
-        int        ndim
-        uint64_t * dims
-        int        timedim
-        int        characteristics_count
-        void     * value
-        void     * gmin
-        void     * gmax
-        double   * gavg
-        double   * gstd_dev
-        void     ** mins
-        void     ** maxs
-        double   ** avgs
-        double   ** std_devs
-
-
-    cdef ADIOS_FILE * adios_fopen (char *, MPI_Comm)
-    cdef int adios_fclose (ADIOS_FILE *)
-
-    cdef ADIOS_GROUP * adios_gopen (ADIOS_FILE *, char *)
-    cdef ADIOS_GROUP * adios_gopen_byid (ADIOS_FILE *, int)
-    cdef int adios_gclose (ADIOS_GROUP *)
-
-    cdef ADIOS_VARINFO * adios_inq_var (ADIOS_GROUP *, char *)
-    cdef ADIOS_VARINFO * adios_inq_var_byid (ADIOS_GROUP *, int)
-    cdef void adios_free_varinfo(ADIOS_VARINFO *)
-    cdef int64_t adios_read_var_byid (ADIOS_GROUP *, int,
-                             uint64_t *, uint64_t *,
-                             void *)
-
-    cdef char * adios_errmsg()
-    cdef int adios_errno
-
-
-## ==========
-## ADIOS Enum
-## ==========
-
-class DATATYPE(object):
-    unknown = -1
-    byte = 0
-    short = 1
-    integer = 2
-    long = 4
-    unsigned_byte = 50
-    unsigned_short = 51
-    unsigned_integer = 52
-    unsigned_long = 54
-    real = 5
-    double = 6
-    long_double = 7
-    string = 9
-    complex = 10
-    double_complex = 11
-
-class FLAG(object):
-    UNKNOWN = 0
-    YES = 1
-    NO = 2
-    
-class BUFFER_ALLOC_WHEN(object):
-    UNKNOWN = 0
-    NOW = 1
-    LATER = 2
-    
-## ==========
-## ADIOS Write API
-## ==========
-
-cpdef init(char * config):
-    return adios_init(config)
-
-cpdef int64_t open(char * group_name,
-                   char * name,
-                   char * mode,
-                   MPI.Comm comm = MPI.COMM_WORLD):
-    cdef int64_t fd
-    cdef int result
-    result = adios_open(&fd, group_name, name, mode, &comm.ob_mpi)
-    return fd
-
-cpdef int64_t set_group_size(int64_t fd_p, uint64_t data_size):
-    cdef uint64_t total_size
-    cdef int result
-    result = adios_group_size(fd_p, data_size, &total_size)
-    return total_size
-
-cpdef int write (int64_t fd_p, char * name, np.ndarray val):
-    cdef np.ndarray val_
-    if val.flags.contiguous:
-        val_ = val
-    else:
-        val_ = np.array(val, copy=True)
-
-    return adios_write (fd_p, name, <void *> val_.data)
-
-cpdef int write_int (int64_t fd_p, char * name, int val):
-    return adios_write (fd_p, name, &val)
-
-cpdef int write_long (int64_t fd_p, char * name, long val):
-    return adios_write (fd_p, name, &val)
-
-cpdef int write_float (int64_t fd_p, char * name, float val):
-    return adios_write (fd_p, name, &val)
-
-cpdef int read(int64_t fd_p, char * name, np.ndarray val):
-    assert val.flags.contiguous, 'Only contiguous arrays are supported.'
-    print "Reading ... ", val.itemsize * val.size, "(bytes)"
-    return adios_read(fd_p, name, <void *> val.data, val.itemsize * val.size)
-
-cpdef int close(int64_t fd_p):
-    return adios_close(fd_p)
-
-cpdef finalize(int mype = 0):
-    return adios_finalize(mype)
-
-## ==========
-## ADIOS No-XML API
-## ==========
-cpdef int init_noxml():
-    return adios_init_noxml()
-
-cpdef int allocate_buffer(int when,
-                          uint64_t buffer_size):
-    return adios_allocate_buffer(<ADIOS_BUFFER_ALLOC_WHEN> when,
-                                 buffer_size)
-
-cpdef int64_t declare_group(char * name,
-                            char * time_index,
-                            int stats):
-    cdef int64_t id = 0
-    adios_declare_group (&id,
-                         name,
-                         time_index,
-                         <ADIOS_FLAG> stats)
-    return id
-
-cpdef int define_var(int64_t group_id,
-                     char * name,
-                     char * path,
-                     int type,
-                     char * dimensions,
-                     char * global_dimensions,
-                     char * local_offsets):
-    return adios_define_var(group_id,
-                            name, path,
-                            <ADIOS_DATATYPES> type,
-                            dimensions,
-                            global_dimensions,
-                            local_offsets)
-
-cpdef int define_attribute (int64_t group,
-                            char * name,
-                            char * path,
-                            int type,
-                            char * value,
-                            char * var):
-    return adios_define_attribute (group,
-                                   name,
-                                   path,
-                                   <ADIOS_DATATYPES> type,
-                                   value,
-                                   var)
-
-cpdef int select_method (int64_t group,
-                         char * method,
-                         char * parameters,
-                         char * base_path):
-    return adios_select_method (group,
-                                method,
-                                parameters,
-                                base_path)
-
-
-## ==========
-## ADIOS Read API
-## ==========
-
-cpdef type adios2nptype(ADIOS_DATATYPES t):
-    cdef type ntype = None
-    if t == adios_byte:
-        ntype = np.int8
-    elif t == adios_short:
-        ntype = np.int16
-    elif t == adios_integer:
-        ntype = np.int32
-    elif t == adios_long:
-        ntype = np.int64
-    elif t == adios_unsigned_byte:
-        ntype = np.uint8
-    elif t == adios_unsigned_short:
-        ntype = np.uint16
-    elif t == adios_unsigned_integer:
-        ntype = np.uint32
-    elif t == adios_unsigned_long:
-        ntype = np.uint64
-    elif t == adios_real:
-        ntype = np.float32
-    elif t == adios_double:
-        ntype = np.float64
-    elif t == adios_long_double:
-        ntype = np.float128
-    elif t == adios_complex:
-        ntype = np.complex64
-    elif t == adios_double_complex:
-        ntype = np.complex128
-    else:
-        ntype = None
-
-    return ntype
-
-"""
-cpdef int np2adiostype(np.dtype t):
-    cdef int atype = -1
-    if t.type == np.float64:
-        atype = DATATYPE.double
-    else:
-        atype = -1
-
-    return atype
-"""
-
-cdef printAdiosFile(ADIOS_FILE * f):
-    print '%15s : %lu' % ('fh', f.fh)
-    print '%15s : %d' % ('groups_count', f.groups_count)
-    print '%15s : %d' % ('vars_count', f.vars_count)
-    print '%15s : %d' % ('attrs_count', f.attrs_count)      
-    print '%15s : %d' % ('tidx_start', f.tidx_start)       
-    print '%15s : %d' % ('ntimesteps', f.ntimesteps)       
-    print '%15s : %d' % ('version', f.version)          
-    print '%15s : %lu' % ('file_size', f.file_size)
-    print '%15s : %d' % ('endianness', f.endianness)
-    print '%15s : %s' % ('group_namelist', [f.group_namelist[i] for i in range(f.groups_count)])
-
-cdef printAdiosGroup(ADIOS_GROUP * g):
-    print '%15s : %lu' % ('gh', g.gh)
-    print '%15s : %d' % ('grpid', g.grpid)
-    print '%15s : %d' % ('vars_count', g.vars_count)
-    print '%15s : %s' % ('var_namelist', [g.var_namelist[i] for i in range(g.vars_count)])
-    print '%15s : %d' % ('attrs_count', g.attrs_count)      
-    print '%15s : %s' % ('attr_namelist', [g.attr_namelist[i] for i in range(g.attrs_count)])
-    print '%15s : %lu' % ('fp', <unsigned long> g.fp)
-
-cdef printAdiosVariable(ADIOS_VARINFO * v):
-    print '%15s : %d' % ('grpid', v.grpid)
-    print '%15s : %d' % ('varid', v.varid)
-    print '%15s : %s' % ('type', adios2nptype(v.type))
-    print '%15s : %d' % ('ndim', v.ndim)
-    print '%15s : %s' % ('dims', [v.dims[i] for i in range(v.ndim)])
-    print '%15s : %d' % ('timedim', v.timedim)
-
-cdef adios2scalar(ADIOS_DATATYPES t, void * val):
-    if t == adios_byte :
-        return (<char *> val)[0]
-    elif t == adios_short:
-        return (<short *> val)[0]
-    elif t == adios_integer:
-        return (<int *> val)[0]
-    elif t == adios_long:
-        return (<long *> val)[0]
-    elif t == adios_unsigned_byte:
-        return (<unsigned char *> val)[0]
-    elif t == adios_unsigned_short:
-        return (<unsigned short *> val)[0]
-    elif t == adios_unsigned_integer:
-        return (<unsigned int *> val)[0]
-    elif t == adios_unsigned_long:
-        return (<unsigned long *> val)[0]
-    elif t == adios_real:
-        return (<float *> val)[0]
-    elif t == adios_double:
-        return (<double *> val)[0]
-    elif t == adios_long_double:
-        return (<long double *> val)[0]
-    else:
-        return None
-
-## ==========
-## ADIOS Class Definition
-## ==========
-    
-cdef class AdiosFile:
-    """ Private Memeber """
-    cpdef ADIOS_FILE * fp
-
-    """ Public Memeber """
-    cpdef public bytes name
-    cpdef public int groups_count
-    cpdef public int vars_count
-    cpdef public int attrs_count
-    cpdef public int tidx_start
-    cpdef public int ntimesteps
-    cpdef public int version
-    cpdef public int file_size
-    cpdef public int endianness
-    
-    cpdef public dict group
-    
-    def __init__(self, char * fname, MPI.Comm comm = MPI.COMM_WORLD):
-        self.fp = NULL
-        self.group = {}
-        
-        self.fp = adios_fopen(fname, comm.ob_mpi)
-        assert self.fp != NULL, 'Not an open file'
-
-        self.name         = fname.split('/')[-1]  ## basename
-        self.groups_count = self.fp.groups_count
-        self.vars_count   = self.fp.vars_count  
-        self.attrs_count  = self.fp.attrs_count 
-        self.tidx_start   = self.fp.tidx_start  
-        self.ntimesteps   = self.fp.ntimesteps  
-        self.version      = self.fp.version     
-        self.file_size    = self.fp.file_size   
-        self.endianness   = self.fp.endianness  
-    
-        cdef AdiosGroup g
-        for grpname in [self.fp.group_namelist[i] for i in range(self.groups_count)]:
-            g = AdiosGroup(self, grpname)
-            self.group[grpname] = g
-
-    def __del__(self):
-        self.close()
-            
-    cpdef close(self):
-        assert self.fp != NULL, 'Not an open file'
-        for g in self.group.values():
-            g.close()
-        adios_fclose(self.fp)
-        self.fp = NULL
-        
-    cpdef printself(self):
-        assert self.fp != NULL, 'Not an open file'
-        print '=== AdiosFile ==='
-        print '%15s : %lu' % ('fp', <unsigned long> self.fp)
-        printAdiosFile(self.fp)
-
-
-cdef class AdiosGroup:
-    """ Private Memeber """
-    cdef AdiosFile file
-    cdef ADIOS_GROUP * gp
-
-    """ Public Memeber """
-    cpdef public bytes name
-    cpdef public int grpid
-    cpdef public int vars_count
-    cpdef public int attrs_count
-    cpdef public int timestep
-    cpdef public int lasttimestep
-    
-    cpdef public dict var
-    
-    def __init__(self, AdiosFile file, char * name):
-        self.file = file
-        self.var = {}
-        
-        self.gp = adios_gopen(self.file.fp, name)
-        assert self.gp != NULL, 'Not an open group'
-
-        self.name         = name
-        self.grpid        = self.gp.grpid        
-        self.vars_count   = self.gp.vars_count   
-        self.attrs_count  = self.gp.attrs_count  
-        self.timestep     = self.gp.timestep     
-        self.lasttimestep = self.gp.lasttimestep 
-        
-        cdef AdiosVariable v
-        for varname in [self.gp.var_namelist[i] for i in range(self.vars_count)]:
-            v = AdiosVariable(self, varname)
-            self.var[varname] = v
-
-    def __del__(self):
-        self.close()
-
-    cpdef close(self):
-        assert self.gp != NULL, 'Not an open file'
-        for v in self.var.values():
-            v.close()
-        adios_gclose(self.gp)
-        self.gp = NULL
-        
-    cpdef printself(self):
-        assert self.gp != NULL, 'Not an open file'
-        print '=== AdiosGroup ==='
-        print '%15s : %lu' % ('gp', <unsigned long> self.gp)
-        printAdiosGroup(self.gp)
-        
-cdef class AdiosVariable:
-    """ Private Memeber """
-    cdef AdiosGroup group
-    cdef ADIOS_VARINFO * vp
-
-    """ Public Memeber """
-    cpdef public bytes name
-    cpdef public int varid
-    cpdef public type type
-    cpdef public int ndim
-    cpdef public tuple dims
-    cpdef public int timedim
-    cpdef public int characteristics_count
-    
-    def __init__(self, AdiosGroup group, char * name):
-        self.group = group
-        self.vp = NULL
-
-        self.vp = adios_inq_var(self.group.gp, name)
-        assert self.group.gp != NULL, 'Not an open group'
-
-        self.name                  = name
-        self.varid                 = self.vp.varid                
-        self.type                  = adios2nptype(self.vp.type)
-        self.ndim                  = self.vp.ndim                 
-        self.timedim               = self.vp.timedim              
-        self.characteristics_count = self.vp.characteristics_count
-        
-        self.dims = tuple([self.vp.dims[i] for i in range(self.vp.ndim)])
-        
-    def __del__(self):
-        self.close()
-
-    cpdef close(self):
-        assert self.vp != NULL, 'Not an open file'
-        adios_free_varinfo(self.vp)
-        self.vp = NULL
-        
-    cpdef read(self, tuple offset = (), tuple count = ()):
-        cdef type ntype = adios2nptype(self.vp.type)
-        assert ntype is not None, 'Data type is not supported yet'
-        
-        cdef list lshape = [self.vp.dims[i] for i in range(self.vp.ndim)]
-        cdef np.ndarray npshape = np.array(lshape, dtype=np.int64)
-        
-        cdef np.ndarray npoffset
-        if len(offset) == 0:
-            npoffset = npshape.copy()
-            npoffset.fill(0)
-        else:
-            npoffset = np.array(offset, dtype=np.int64)
-            assert npshape.ndim == npoffset.ndim, 'Offset dimension mismatch'
-        
-        cdef np.ndarray npcount
-        if len(count) == 0:
-            npcount = npshape - npoffset
-        else:
-            npcount = np.array(count, dtype=np.int64)
-            npcount = npcount - npoffset
-
-        assert npshape.ndim == npcount.ndim, 'Shape dimension mismatch.'
-        assert (npshape - npoffset >= npcount).all(), 'Count is larger than shape.'
-            
-        cdef np.ndarray var = np.zeros(npcount, dtype=ntype)
-        cdef int64_t nbytes = adios_read_var_byid(
-            self.group.gp, 
-            self.vp.varid, 
-            <uint64_t *> npoffset.data, 
-            <uint64_t *> npcount.data, 
-            <void *> var.data
-            )
-
-        if nbytes < 0:
-            print "[WARNING] bytes read :", nbytes
-
-        return var
-
-    """ Print self """
-    cpdef printself(self):
-        assert self.vp != NULL, 'Not an open file'
-        print '=== AdiosVariable ==='
-        print '%15s : %lu' % ('vp', <unsigned long> self.vp)
-        printAdiosVariable(self.vp)
diff --git a/wrappers/numpy/CMakeLists.txt b/wrappers/numpy/CMakeLists.txt
index 26afa91..30517d1 100644
--- a/wrappers/numpy/CMakeLists.txt
+++ b/wrappers/numpy/CMakeLists.txt
@@ -4,13 +4,14 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/Modules/CMakeUtilityFunctions.cmake)
 
 project (AdiosPython CXX)
 
+find_package (PythonInterp REQUIRED)
+
 find_package (PythonLibs REQUIRED)
 include_directories (${PYTHON_INCLUDE_DIRS})
-##print(PYTHON_INCLUDE_DIRS)
 
-find_package (PythonInterp REQUIRED)
 find_package (Numpy REQUIRED)
 include_directories (${PYTHON_NUMPY_INCLUDE_DIR})
+
 find_package (MPI4Py REQUIRED)
 
 option (ADIOS_USE_MPI "Use parallel ADIOS" ON)
diff --git a/wrappers/numpy/Modules/.svn/entries b/wrappers/numpy/Modules/.svn/entries
deleted file mode 100644
index 9c0f547..0000000
--- a/wrappers/numpy/Modules/.svn/entries
+++ /dev/null
@@ -1,205 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/numpy/Modules
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-FindADIOS.cmake
-file
-
-
-
-
-2012-07-02T16:20:14.089074Z
-85035b1c47413d257bec292b0b31ea82
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4915
-

-FindMPI4Py.cmake
-file
-
-
-
-
-2012-07-02T16:20:14.156073Z
-9905d7f629d6cc2c55c1334f4833a23e
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2276
-

-FindPackageHandleStandardArgs.cmake
-file
-
-
-
-
-2012-07-02T16:20:14.106070Z
-dbd7b4e1b87232a7fe8f57cf8ef10360
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-11465
-

-FindNumpy.cmake
-file
-
-
-
-
-2012-07-02T16:20:14.092074Z
-13786a3a06c8dea6ce96a5a8af35fd24
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1977
-

-CMakeUtilityFunctions.cmake
-file
-
-
-
-
-2012-07-02T16:20:14.140073Z
-5a708f6f902199b8aab71c8d8a8f3a4a
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-319
-

diff --git a/wrappers/numpy/Modules/.svn/format b/wrappers/numpy/Modules/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/numpy/Modules/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/numpy/Modules/.svn/text-base/CMakeUtilityFunctions.cmake.svn-base b/wrappers/numpy/Modules/.svn/text-base/CMakeUtilityFunctions.cmake.svn-base
deleted file mode 100644
index c29cb8a..0000000
--- a/wrappers/numpy/Modules/.svn/text-base/CMakeUtilityFunctions.cmake.svn-base
+++ /dev/null
@@ -1,19 +0,0 @@
-function (print VAR)
-  set(NAME ${VAR})
-  list (APPEND VARS ${${VAR}})
-
-  set(MSG)
-  set(IS_FIRST TRUE)
-
-  foreach(ELM ${VARS})
-    if (IS_FIRST)
-      set(MSG ${ELM})
-      set(IS_FIRST FALSE)
-    else ()
-      set(MSG ${MSG}, ${ELM})
-    endif ()
-  endforeach()
-
-  message("${NAME} = "${MSG})
-endfunction(print VAR)
-
diff --git a/wrappers/numpy/Modules/.svn/text-base/FindADIOS.cmake.svn-base b/wrappers/numpy/Modules/.svn/text-base/FindADIOS.cmake.svn-base
deleted file mode 100644
index 8a55c77..0000000
--- a/wrappers/numpy/Modules/.svn/text-base/FindADIOS.cmake.svn-base
+++ /dev/null
@@ -1,136 +0,0 @@
-# - Find a ADIOS implementation
-#
-# === Variables ===
-#
-# This module will set the following variables:
-#   ADIOS_USE_MPI         Can be set to ON to force the use of the MPI library
-#                         Defaults to ON.
-#   ADIOS_FOUND           TRUE if FindADIOS found ADIOS flags
-#   ADIOS_COMPILE_FLAGS   Compilation flags for ADIOS programs
-#   ADIOS_INCLUDE_PATH    Include path(s) for ADIOS header
-#   ADIOS_LINK_FLAGS      Linking flags for ADIOS programs
-#   ADIOS_LIBRARIES       All libraries to link ADIOS programs against
-# 
-# === Example ===
-#
-#   set (ADIOS_USE_MPI OFF)
-#   find_package (ADIOS)
-#   if (ADIOS_FOUND)
-#     add_definitions (${ADIOS_COMPILE_FLAGS})  
-#     include_directories (${ADIOS_INCLUDE_PATH})
-#     target_link_libraries(foo ${ADIOS_LIBRARIES})
-#   endif ()
-#
-
-# NOTE: 
-# This module is written based FindMPI. Most routines are copied from FindMPI.
-
-# include this to handle the QUIETLY and REQUIRED arguments
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-include(GetPrerequisites)
-
-if(NOT DEFINED ADIOS_USE_MPI)
-  set(ADIOS_USE_MPI TRUE)
-endif()
-
-if (ADIOS_USE_MPI)
-  set(CONFIG_OPTION "")
-else ()
-  set(CONFIG_OPTION "-s")
-endif()
-
-execute_process(
-  COMMAND adios_config -c ${CONFIG_OPTION}
-  OUTPUT_VARIABLE ADIOS_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-
-# Extract compile flags from the compile command line
-string(REGEX MATCHALL "(^| )-[Df]([^\" ]+|\"[^\"]+\")" ADIOS_ALL_COMPILE_FLAGS "${ADIOS_COMPILE_CMDLINE}")
-set(ADIOS_COMPILE_FLAGS_WORK)
-
-foreach(FLAG ${ADIOS_ALL_COMPILE_FLAGS})
-  if (ADIOS_COMPILE_FLAGS_WORK)
-    set(ADIOS_COMPILE_FLAGS_WORK "${ADIOS_COMPILE_FLAGS_WORK} ${FLAG}")
-  else()
-    set(ADIOS_COMPILE_FLAGS_WORK ${FLAG})
-  endif()
-endforeach()
-
-# Extract include paths from compile command line
-string(REGEX MATCHALL "(^| )-I([^\" ]+|\"[^\"]+\")" ADIOS_ALL_INCLUDE_PATHS "${ADIOS_COMPILE_CMDLINE}")
-unset(ADIOS_INCLUDE_PATH_WORK)
-foreach(IPATH ${ADIOS_ALL_INCLUDE_PATHS})
-  string(REGEX REPLACE "^ ?-I" "" IPATH ${IPATH})
-  string(REGEX REPLACE "//" "/" IPATH ${IPATH})
-  list(APPEND ADIOS_INCLUDE_PATH_WORK ${IPATH})
-endforeach()
-
-execute_process(
-  COMMAND adios_config -l ${CONFIG_OPTION}
-  OUTPUT_VARIABLE  ADIOS_LINK_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-
-
-# Extract linker paths from the link command line
-string(REGEX MATCHALL "(^| |-Wl,)-L([^\" ]+|\"[^\"]+\")" ADIOS_ALL_LINK_PATHS "${ADIOS_LINK_CMDLINE}")
-unset(ADIOS_LINK_PATH)
-foreach(LPATH ${ADIOS_ALL_LINK_PATHS})
-  string(REGEX REPLACE "^(| |-Wl,)-L" "" LPATH ${LPATH})
-  string(REGEX REPLACE "//" "/" LPATH ${LPATH})
-  list(APPEND ADIOS_LINK_PATH ${LPATH})
-endforeach()
-
-# try using showme:libdirs if extracting didn't work.
-if (NOT ADIOS_LINK_PATH)
-  set(ADIOS_LINK_PATH ${ADIOS_LIBDIRS})
-  separate_arguments(ADIOS_LINK_PATH)
-endif()
-
-# Extract linker flags from the link command line
-string(REGEX MATCHALL "(^| )-Wl,([^\" ]+|\"[^\"]+\")" ADIOS_ALL_LINK_FLAGS "${ADIOS_LINK_CMDLINE}")
-set(ADIOS_LINK_FLAGS_WORK)
-foreach(FLAG ${ADIOS_ALL_LINK_FLAGS})
-  if (ADIOS_LINK_FLAGS_WORK)
-    set(ADIOS_LINK_FLAGS_WORK "${ADIOS_LINK_FLAGS_WORK} ${FLAG}")
-  else()
-    set(ADIOS_LINK_FLAGS_WORK ${FLAG})
-  endif()
-endforeach()
-
-# Extract the set of libraries to link against from the link command
-# line
-string(REGEX MATCHALL "(^| )-l([^\" ]+|\"[^\"]+\")" ADIOS_LIBNAMES "${ADIOS_LINK_CMDLINE}")
-
-# Determine full path names for all of the libraries that one needs
-# to link against in an MPI program
-unset(ADIOS_LIBRARIES_WORK)
-foreach(LIB ${ADIOS_LIBNAMES})
-  string(REGEX REPLACE "^ ?-l" "" LIB ${LIB})
-  # ADIOS_LIB is cached by find_library, but we don't want that.  Clear it first.
-  set(ADIOS_LIB "ADIOS_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
-  find_library(ADIOS_LIB NAMES ${LIB} HINTS ${ADIOS_LINK_PATH})
-
-  if (ADIOS_LIB)
-    list(APPEND ADIOS_LIBRARIES_WORK ${ADIOS_LIB})
-  elseif (NOT ADIOS_FIND_QUIETLY)
-    message(WARNING "Unable to find ADIOS library ${LIB}")
-  endif()
-endforeach()
-
-# Sanity check ADIOS_LIBRARIES to make sure there are enough libraries
-list(LENGTH ADIOS_LIBRARIES_WORK ADIOS_NUMLIBS)
-list(LENGTH ADIOS_LIBNAMES ADIOS_NUMLIBS_EXPECTED)
-if (NOT ADIOS_NUMLIBS EQUAL ADIOS_NUMLIBS_EXPECTED)
-  message("Expected ${ADIOS_NUMLIBS_EXPECTED} but found ${ADIOS_NUMLIBS}")
-  set(ADIOS_LIBRARIES_WORK "ADIOS_LIBRARIES-NOTFOUND")
-endif()
-
-# If we found MPI, set up all of the appropriate cache entries
-set(ADIOS_COMPILE_FLAGS ${ADIOS_COMPILE_FLAGS_WORK} CACHE STRING "ADIOS compilation flags"         FORCE)
-set(ADIOS_INCLUDE_PATH  ${ADIOS_INCLUDE_PATH_WORK}  CACHE STRING "ADIOS include path"              FORCE)
-set(ADIOS_LINK_FLAGS    ${ADIOS_LINK_FLAGS_WORK}    CACHE STRING "ADIOS linking flags"             FORCE)
-set(ADIOS_LIBRARIES     ${ADIOS_LIBRARIES_WORK}     CACHE STRING "ADIOS libraries to link against" FORCE)
-
-find_package_handle_standard_args(ADIOS DEFAULT_MSG ADIOS_INCLUDE_PATH ADIOS_LIBRARIES)
-
-
diff --git a/wrappers/numpy/Modules/.svn/text-base/FindMPI4Py.cmake.svn-base b/wrappers/numpy/Modules/.svn/text-base/FindMPI4Py.cmake.svn-base
deleted file mode 100644
index 8e362b3..0000000
--- a/wrappers/numpy/Modules/.svn/text-base/FindMPI4Py.cmake.svn-base
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copied from FindNumpy.cmake
-# ---
-#
-# $Id: $
-#
-# Author(s):  Anton Deguet
-# Created on: 2010-01-20
-#
-# (C) Copyright 2010 Johns Hopkins University (JHU), All Rights
-# Reserved.
-#
-# --- begin cisst license - do not edit ---
-# 
-# This software is provided "as is" under an open source license, with
-# no warranty.  The complete license can be found in license.txt and
-# http://www.cisst.org/cisst/license.txt.
-# 
-# --- end cisst license ---
-#
-# File based on FindNUMARRAY distributed with ITK 3.4 (see itk.org)
-#
-# Main modifications:
-# - use Numpy instead of Numarray for all naming
-# - added path for Python 2.5 and 2.6
-# - renamed python script generated (det_npp became determineNumpyPath)
-# - use lower case for CMake commands and keywords
-# - updated python script to use get_include, not get_numpy_include which is now deprecated
-#
-# ---
-#
-# Try to find mpi4py python package
-# Once done this will define
-#
-# PYTHON_MPI4PY_FOUND        - system has numpy development package and it should be used
-# PYTHON_MPI4PY_INCLUDE_DIR  - directory where the arrayobject.h header file can be found
-#
-#
-
-# include this to handle the QUIETLY and REQUIRED arguments
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-include(GetPrerequisites)
-
-if(PYTHON_EXECUTABLE)
-    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/determineMPI4PyPath.py "try: import mpi4py; print mpi4py.get_include()\nexcept: pass\n")
-    exec_program("${PYTHON_EXECUTABLE}"
-                 ARGS "\"${CMAKE_CURRENT_BINARY_DIR}/determineMPI4PyPath.py\""
-                 OUTPUT_VARIABLE MPI4PY_PATH
-                 )
-endif(PYTHON_EXECUTABLE)
-
-find_path(PYTHON_MPI4PY_INCLUDE_DIR mpi4py/mpi4py.h
-          "${MPI4PY_PATH}"
-          "${PYTHON_INCLUDE_PATH}/mpi4py/"
-          /usr/include/python2.6/mpi4py/
-          /usr/include/python2.5/mpi4py/
-          /usr/include/python2.4/mpi4py/
-          /usr/include/python2.3/mpi4py/
-          DOC "Directory where the mpi4py.h header file can be found. This file is part of the mpi4py package"
-    )
-
-##if(PYTHON_MPI4PY_INCLUDE_DIR)
-##    set(PYTHON_MPI4PY_FOUND 1 CACHE INTERNAL "Python mpi4py development package is available")
-##endif(PYTHON_MPI4PY_INCLUDE_DIR)
-
-find_package_handle_standard_args(PYTHON_MPI4PY DEFAULT_MSG PYTHON_MPI4PY_INCLUDE_DIR)
diff --git a/wrappers/numpy/Modules/.svn/text-base/FindNumpy.cmake.svn-base b/wrappers/numpy/Modules/.svn/text-base/FindNumpy.cmake.svn-base
deleted file mode 100644
index 6dfb1af..0000000
--- a/wrappers/numpy/Modules/.svn/text-base/FindNumpy.cmake.svn-base
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# $Id: $
-#
-# Author(s):  Anton Deguet
-# Created on: 2010-01-20
-#
-# (C) Copyright 2010 Johns Hopkins University (JHU), All Rights
-# Reserved.
-#
-# --- begin cisst license - do not edit ---
-# 
-# This software is provided "as is" under an open source license, with
-# no warranty.  The complete license can be found in license.txt and
-# http://www.cisst.org/cisst/license.txt.
-# 
-# --- end cisst license ---
-#
-# File based on FindNUMARRAY distributed with ITK 3.4 (see itk.org)
-#
-# Main modifications:
-# - use Numpy instead of Numarray for all naming
-# - added path for Python 2.5 and 2.6
-# - renamed python script generated (det_npp became determineNumpyPath)
-# - use lower case for CMake commands and keywords
-# - updated python script to use get_include, not get_numpy_include which is now deprecated
-#
-# ---
-#
-# Try to find numpy python package
-# Once done this will define
-#
-# PYTHON_NUMPY_FOUND        - system has numpy development package and it should be used
-# PYTHON_NUMPY_INCLUDE_DIR  - directory where the arrayobject.h header file can be found
-#
-#
-if(PYTHON_EXECUTABLE)
-    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/determineNumpyPath.py "try: import numpy; print numpy.get_include()\nexcept: pass\n")
-    exec_program("${PYTHON_EXECUTABLE}"
-                 ARGS "\"${CMAKE_CURRENT_BINARY_DIR}/determineNumpyPath.py\""
-                 OUTPUT_VARIABLE NUMPY_PATH
-                 )
-endif(PYTHON_EXECUTABLE)
-
-find_path(PYTHON_NUMPY_INCLUDE_DIR numpy/arrayobject.h
-          "${NUMPY_PATH}"
-          "${PYTHON_INCLUDE_PATH}/numpy/"
-          /usr/include/python2.6/numpy/
-          /usr/include/python2.5/numpy/
-          /usr/include/python2.4/numpy/
-          /usr/include/python2.3/numpy/
-          DOC "Directory where the arrayobject.h header file can be found. This file is part of the numpy package"
-    )
-
-if(PYTHON_NUMPY_INCLUDE_DIR)
-    set(PYTHON_NUMPY_FOUND 1 CACHE INTERNAL "Python numpy development package is available")
-endif(PYTHON_NUMPY_INCLUDE_DIR)
-
diff --git a/wrappers/numpy/Modules/.svn/text-base/FindPackageHandleStandardArgs.cmake.svn-base b/wrappers/numpy/Modules/.svn/text-base/FindPackageHandleStandardArgs.cmake.svn-base
deleted file mode 100644
index 1acb021..0000000
--- a/wrappers/numpy/Modules/.svn/text-base/FindPackageHandleStandardArgs.cmake.svn-base
+++ /dev/null
@@ -1,260 +0,0 @@
-# FIND_PACKAGE_HANDLE_STANDARD_ARGS(<name> ... )
-#
-# This function is intended to be used in FindXXX.cmake modules files.
-# It handles the REQUIRED, QUIET and version-related arguments to FIND_PACKAGE().
-# It also sets the <UPPERCASED_NAME>_FOUND variable.
-# The package is considered found if all variables <var1>... listed contain
-# valid results, e.g. valid filepaths.
-#
-# There are two modes of this function. The first argument in both modes is
-# the name of the Find-module where it is called (in original casing).
-#
-# The first simple mode looks like this:
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(<name> (DEFAULT_MSG|"Custom failure message") <var1>...<varN> )
-# If the variables <var1> to <varN> are all valid, then <UPPERCASED_NAME>_FOUND
-# will be set to TRUE.
-# If DEFAULT_MSG is given as second argument, then the function will generate
-# itself useful success and error messages. You can also supply a custom error message
-# for the failure case. This is not recommended.
-#
-# The second mode is more powerful and also supports version checking:
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME [REQUIRED_VARS <var1>...<varN>]
-#                                           [VERSION_VAR   <versionvar>
-#                                           [CONFIG_MODE]
-#                                           [FAIL_MESSAGE "Custom failure message"] )
-#
-# As above, if <var1> through <varN> are all valid, <UPPERCASED_NAME>_FOUND
-# will be set to TRUE.
-# After REQUIRED_VARS the variables which are required for this package are listed.
-# Following VERSION_VAR the name of the variable can be specified which holds
-# the version of the package which has been found. If this is done, this version
-# will be checked against the (potentially) specified required version used
-# in the find_package() call. The EXACT keyword is also handled. The default
-# messages include information about the required version and the version
-# which has been actually found, both if the version is ok or not.
-# Use the option CONFIG_MODE if your FindXXX.cmake module is a wrapper for
-# a find_package(... NO_MODULE) call, in this case all the information
-# provided by the config-mode of find_package() will be evaluated
-# automatically.
-# Via FAIL_MESSAGE a custom failure message can be specified, if this is not
-# used, the default message will be displayed.
-#
-# Example for mode 1:
-#
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2  DEFAULT_MSG  LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
-#
-# LibXml2 is considered to be found, if both LIBXML2_LIBRARY and
-# LIBXML2_INCLUDE_DIR are valid. Then also LIBXML2_FOUND is set to TRUE.
-# If it is not found and REQUIRED was used, it fails with FATAL_ERROR,
-# independent whether QUIET was used or not.
-# If it is found, success will be reported, including the content of <var1>.
-# On repeated Cmake runs, the same message won't be printed again.
-#
-# Example for mode 2:
-#
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(BISON  REQUIRED_VARS BISON_EXECUTABLE
-#                                             VERSION_VAR BISON_VERSION)
-# In this case, BISON is considered to be found if the variable(s) listed
-# after REQUIRED_VAR are all valid, i.e. BISON_EXECUTABLE in this case.
-# Also the version of BISON will be checked by using the version contained
-# in BISON_VERSION.
-# Since no FAIL_MESSAGE is given, the default messages will be printed.
-#
-# Another example for mode 2:
-#
-#    FIND_PACKAGE(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
-#    FIND_PACKAGE_HANDLE_STANDARD_ARGS(Automoc4  CONFIG_MODE)
-# In this case, FindAutmoc4.cmake wraps a call to FIND_PACKAGE(Automoc4 NO_MODULE)
-# and adds an additional search directory for automoc4.
-# The following FIND_PACKAGE_HANDLE_STANDARD_ARGS() call produces a proper
-# success/error message.
-
-#=============================================================================
-# Copyright 2007-2009 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-INCLUDE(FindPackageMessage)
-INCLUDE(CMakeParseArguments)
-
-# internal helper macro
-MACRO(_FPHSA_FAILURE_MESSAGE _msg)
-  IF (${_NAME}_FIND_REQUIRED)
-    MESSAGE(FATAL_ERROR "${_msg}")
-  ELSE (${_NAME}_FIND_REQUIRED)
-    IF (NOT ${_NAME}_FIND_QUIETLY)
-      MESSAGE(STATUS "${_msg}")
-    ENDIF (NOT ${_NAME}_FIND_QUIETLY)
-  ENDIF (${_NAME}_FIND_REQUIRED)
-ENDMACRO(_FPHSA_FAILURE_MESSAGE _msg)
-
-
-# internal helper macro to generate the failure message when used in CONFIG_MODE:
-MACRO(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
-  # <name>_CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found:
-  IF(${_NAME}_CONFIG)
-    _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing: ${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})")
-  ELSE(${_NAME}_CONFIG)
-    # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version.
-    # List them all in the error message:
-    IF(${_NAME}_CONSIDERED_CONFIGS)
-      SET(configsText "")
-      LIST(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount)
-      MATH(EXPR configsCount "${configsCount} - 1")
-      FOREACH(currentConfigIndex RANGE ${configsCount})
-        LIST(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename)
-        LIST(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version)
-        SET(configsText "${configsText}    ${filename} (version ${version})\n")
-      ENDFOREACH(currentConfigIndex)
-      _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:\n${configsText}")
-
-    ELSE(${_NAME}_CONSIDERED_CONFIGS)
-      # Simple case: No Config-file was found at all:
-      _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}")
-    ENDIF(${_NAME}_CONSIDERED_CONFIGS)
-  ENDIF(${_NAME}_CONFIG)
-ENDMACRO(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
-
-
-FUNCTION(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
-
-# set up the arguments for CMAKE_PARSE_ARGUMENTS and check whether we are in
-# new extended or in the "old" mode:
-  SET(options CONFIG_MODE)
-  SET(oneValueArgs FAIL_MESSAGE VERSION_VAR)
-  SET(multiValueArgs REQUIRED_VARS)
-  SET(_KEYWORDS_FOR_EXTENDED_MODE  ${options} ${oneValueArgs} ${multiValueArgs} )
-  LIST(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX)
-
-  IF(${INDEX} EQUAL -1)
-    SET(FPHSA_FAIL_MESSAGE ${_FIRST_ARG})
-    SET(FPHSA_REQUIRED_VARS ${ARGN})
-    SET(FPHSA_VERSION_VAR)
-  ELSE(${INDEX} EQUAL -1)
-
-    CMAKE_PARSE_ARGUMENTS(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${_FIRST_ARG} ${ARGN})
-
-    IF(FPHSA_UNPARSED_ARGUMENTS)
-      MESSAGE(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"")
-    ENDIF(FPHSA_UNPARSED_ARGUMENTS)
-
-    IF(NOT FPHSA_FAIL_MESSAGE)
-      SET(FPHSA_FAIL_MESSAGE  "DEFAULT_MSG")
-    ENDIF(NOT FPHSA_FAIL_MESSAGE)
-  ENDIF(${INDEX} EQUAL -1)
-
-# now that we collected all arguments, process them
-
-  IF("${FPHSA_FAIL_MESSAGE}" STREQUAL "DEFAULT_MSG")
-    SET(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
-  ENDIF("${FPHSA_FAIL_MESSAGE}" STREQUAL "DEFAULT_MSG")
-
-  # In config-mode, we rely on the variable <package>_CONFIG, which is set by find_package()
-  # when it successfully found the config-file, including version checking:
-  IF(FPHSA_CONFIG_MODE)
-    LIST(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG)
-    LIST(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS)
-    SET(FPHSA_VERSION_VAR ${_NAME}_VERSION)
-  ENDIF(FPHSA_CONFIG_MODE)
-
-  IF(NOT FPHSA_REQUIRED_VARS)
-    MESSAGE(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
-  ENDIF(NOT FPHSA_REQUIRED_VARS)
-
-  LIST(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
-
-  STRING(TOUPPER ${_NAME} _NAME_UPPER)
-  STRING(TOLOWER ${_NAME} _NAME_LOWER)
-
-  # collect all variables which were not found, so they can be printed, so the
-  # user knows better what went wrong (#6375)
-  SET(MISSING_VARS "")
-  SET(DETAILS "")
-  SET(${_NAME_UPPER}_FOUND TRUE)
-  # check if all passed variables are valid
-  FOREACH(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
-    IF(NOT ${_CURRENT_VAR})
-      SET(${_NAME_UPPER}_FOUND FALSE)
-      SET(MISSING_VARS "${MISSING_VARS} ${_CURRENT_VAR}")
-    ELSE(NOT ${_CURRENT_VAR})
-      SET(DETAILS "${DETAILS}[${${_CURRENT_VAR}}]")
-    ENDIF(NOT ${_CURRENT_VAR})
-  ENDFOREACH(_CURRENT_VAR)
-
-
-  # version handling:
-  SET(VERSION_MSG "")
-  SET(VERSION_OK TRUE)
-  SET(VERSION ${${FPHSA_VERSION_VAR}} )
-  IF (${_NAME}_FIND_VERSION)
-
-    IF(VERSION)
-
-      IF(${_NAME}_FIND_VERSION_EXACT)       # exact version required
-        IF (NOT "${${_NAME}_FIND_VERSION}" VERSION_EQUAL "${VERSION}")
-          SET(VERSION_MSG "Found unsuitable version \"${VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
-          SET(VERSION_OK FALSE)
-        ELSE (NOT "${${_NAME}_FIND_VERSION}" VERSION_EQUAL "${VERSION}")
-          SET(VERSION_MSG "(found suitable exact version \"${VERSION}\")")
-        ENDIF (NOT "${${_NAME}_FIND_VERSION}" VERSION_EQUAL "${VERSION}")
-
-      ELSE(${_NAME}_FIND_VERSION_EXACT)     # minimum version specified:
-        IF ("${${_NAME}_FIND_VERSION}" VERSION_GREATER "${VERSION}")
-          SET(VERSION_MSG "Found unsuitable version \"${VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"")
-          SET(VERSION_OK FALSE)
-        ELSE ("${${_NAME}_FIND_VERSION}" VERSION_GREATER "${VERSION}")
-          SET(VERSION_MSG "(found suitable version \"${VERSION}\", required is \"${${_NAME}_FIND_VERSION}\")")
-        ENDIF ("${${_NAME}_FIND_VERSION}" VERSION_GREATER "${VERSION}")
-      ENDIF(${_NAME}_FIND_VERSION_EXACT)
-
-    ELSE(VERSION)
-
-      # if the package was not found, but a version was given, add that to the output:
-      IF(${_NAME}_FIND_VERSION_EXACT)
-         SET(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")")
-      ELSE(${_NAME}_FIND_VERSION_EXACT)
-         SET(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")")
-      ENDIF(${_NAME}_FIND_VERSION_EXACT)
-
-    ENDIF(VERSION)
-  ELSE (${_NAME}_FIND_VERSION)
-    IF(VERSION)
-      SET(VERSION_MSG "(found version \"${VERSION}\")")
-    ENDIF(VERSION)
-  ENDIF (${_NAME}_FIND_VERSION)
-
-  IF(VERSION_OK)
-    SET(DETAILS "${DETAILS}[v${VERSION}(${${_NAME}_FIND_VERSION})]")
-  ELSE(VERSION_OK)
-    SET(${_NAME_UPPER}_FOUND FALSE)
-  ENDIF(VERSION_OK)
-
-
-  # print the result:
-  IF (${_NAME_UPPER}_FOUND)
-    FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG}" "${DETAILS}")
-  ELSE (${_NAME_UPPER}_FOUND)
-
-    IF(FPHSA_CONFIG_MODE)
-      _FPHSA_HANDLE_FAILURE_CONFIG_MODE()
-    ELSE(FPHSA_CONFIG_MODE)
-      IF(NOT VERSION_OK)
-        _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})")
-      ELSE(NOT VERSION_OK)
-        _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing: ${MISSING_VARS}) ${VERSION_MSG}")
-      ENDIF(NOT VERSION_OK)
-    ENDIF(FPHSA_CONFIG_MODE)
-
-  ENDIF (${_NAME_UPPER}_FOUND)
-
-  SET(${_NAME_UPPER}_FOUND ${${_NAME_UPPER}_FOUND} PARENT_SCOPE)
-
-ENDFUNCTION(FIND_PACKAGE_HANDLE_STANDARD_ARGS _FIRST_ARG)
diff --git a/wrappers/numpy/adios.pyx b/wrappers/numpy/adios.pyx
index 43c3dc5..dac0c03 100644
--- a/wrappers/numpy/adios.pyx
+++ b/wrappers/numpy/adios.pyx
@@ -1,4 +1,4 @@
-A"""
+"""
  ADIOS is freely available under the terms of the BSD license described
  in the COPYING file in the top level directory of this source distribution.
 
@@ -48,8 +48,12 @@ cdef extern from "adios_types.h":
         pass
 
 cdef extern from "adios.h":
+    ctypedef struct MPI_Comm:
+        pass
+
     ctypedef char* const_char_ptr "const char*"
-    cdef int adios_init (char * config)
+
+    cdef int adios_init (char * config, MPI_Comm)
     
     cdef int adios_finalize (int mype)
     
@@ -74,7 +78,7 @@ cdef extern from "adios.h":
 
     cdef int adios_close(int64_t fd_p)
     
-    cdef int adios_init_noxml ()
+    cdef int adios_init_noxml (MPI_Comm)
     
     cdef int adios_allocate_buffer (ADIOS_BUFFER_ALLOC_WHEN when,
                                     uint64_t buffer_size)
@@ -204,8 +208,8 @@ class BUFFER_ALLOC_WHEN(object):
 ## ADIOS Write API
 ## ==========
 
-cpdef init(char * config):
-    return adios_init(config)
+cpdef init(char * config, MPI.Comm comm = MPI.COMM_WORLD):
+    return adios_init(config, comm.ob_mpi)
 
 cpdef int64_t open(char * group_name,
                    char * name,
@@ -213,7 +217,7 @@ cpdef int64_t open(char * group_name,
                    MPI.Comm comm = MPI.COMM_WORLD):
     cdef int64_t fd
     cdef int result
-    result = adios_open(&fd, group_name, name, mode, &comm.ob_mpi)
+    result = adios_open(&fd, group_name, name, mode, comm.ob_mpi)
     return fd
 
 cpdef int64_t set_group_size(int64_t fd_p, uint64_t data_size):
@@ -254,8 +258,8 @@ cpdef finalize(int mype = 0):
 ## ==========
 ## ADIOS No-XML API
 ## ==========
-cpdef int init_noxml():
-    return adios_init_noxml()
+cpdef int init_noxml(MPI.Comm comm = MPI.COMM_WORLD):
+    return adios_init_noxml(comm.ob_mpi)
 
 cpdef int allocate_buffer(int when,
                           uint64_t buffer_size):
diff --git a/wrappers/numpy/example/.svn/all-wcprops b/wrappers/numpy/example/.svn/all-wcprops
deleted file mode 100644
index c9142f8..0000000
--- a/wrappers/numpy/example/.svn/all-wcprops
+++ /dev/null
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 58
-/svn-ewok/ADIOS/!svn/ver/1863/trunk/wrappers/numpy/example
-END
-ncdf2bp.py
-K 25
-svn:wc:ra_dav:version-url
-V 69
-/svn-ewok/ADIOS/!svn/ver/1863/trunk/wrappers/numpy/example/ncdf2bp.py
-END
diff --git a/wrappers/numpy/example/.svn/entries b/wrappers/numpy/example/.svn/entries
deleted file mode 100644
index e8a3a29..0000000
--- a/wrappers/numpy/example/.svn/entries
+++ /dev/null
@@ -1,62 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/numpy/example
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-11T18:43:46.979736Z
-1863
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-

-ncdf2bp.py
-file
-
-
-
-
-2012-07-11T21:22:26.205699Z
-3c05a4f617e1735b69bb3e2f0f40e77b
-2012-07-11T18:43:46.979736Z
-1863
-jyc
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3484
-

diff --git a/wrappers/numpy/example/.svn/format b/wrappers/numpy/example/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/numpy/example/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/numpy/example/.svn/prop-base/ncdf2bp.py.svn-base b/wrappers/numpy/example/.svn/prop-base/ncdf2bp.py.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/wrappers/numpy/example/.svn/prop-base/ncdf2bp.py.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/wrappers/numpy/example/.svn/text-base/ncdf2bp.py.svn-base b/wrappers/numpy/example/.svn/text-base/ncdf2bp.py.svn-base
deleted file mode 100644
index 4fa4f7b..0000000
--- a/wrappers/numpy/example/.svn/text-base/ncdf2bp.py.svn-base
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/env python
-from adios import *
-from scipy.io import netcdf
-import numpy as np
-import sys
-import os
-import operator
-
-def usage():
-    print os.path.basename(sys.argv[0]), "netcdf_file"
-
-if len(sys.argv) < 2:
-    usage()
-    sys.exit(0)
-
-##fname = "MERRA100.prod.assim.tavg3_3d_mst_Cp.19791010.SUB.nc"
-
-fname = sys.argv[1]
-fout = '.'.join(fname.split('.')[:-1]) + ".bp"
-
-tname = "time"
-if len(sys.argv) > 2:
-    tname = sys.argv[2]
-
-## Open NetCDF file
-f = netcdf.netcdf_file(fname, 'r')
-
-## Check dimension
-assert (all(map(lambda x: x is not None,
-                [ val for k, val in f.dimensions.items()
-                  if k != tname])))
-
-## Two types of variables : time-dependent or time-independent
-dimvar = {n:v for n,v in f.variables.items() if n in f.dimensions.keys()}
-var = {n:v for n,v in f.variables.items() if n not in f.dimensions.keys()}
-tdepvar = {n:v for n,v in var.items() if tname in v.dimensions}
-tindvar = {n:v for n,v in var.items() if tname not in v.dimensions}
-
-## Time dimension
-assert (len(set([v.dimensions.index(tname) for v in tdepvar.values()]))==1)
-tdx = tdepvar.values()[0].dimensions.index(tname)
-
-assert (all([v.data.shape[tdx] for v in tdepvar.values()]))
-tdim = tdepvar.values()[0].shape[tdx]
-
-## Init ADIOS without xml
-init_noxml()
-allocate_buffer(BUFFER_ALLOC_WHEN.NOW, 10)
-gid = declare_group ("group", tname, FLAG.YES)
-select_method (gid, "MPI", "", "")
-
-d1size = 0
-for name, val in f.dimensions.items():
-    if name == tname:
-        continue
-    print "Dimension : %s (%d)" % (name, val)
-    define_var (gid, name, "", DATATYPE.integer, "", "", "")
-    d1size += 4
-
-"""
-d2size = 0
-for name, var in dimvar.items():
-    if name == tname:
-        continue
-    if name in f.dimensions.keys():
-        name = "v_" + name
-    print "Variable : %s (%s)" % (name, ','.join(var.dimensions))
-    define_var (gid, name, "", DATATYPE.double,
-                ','.join(var.dimensions),
-                "",
-                "")
-    d2size += reduce(operator.mul, var.shape) * 8
-
-v1size = 0
-for name, var in tindvar.items():
-    print "Variable : %s (%s)" % (name, ','.join(var.dimensions))
-    define_var (gid, name, "", DATATYPE.double,
-                ','.join(var.dimensions),
-                "",
-                "")
-    v1size += reduce(operator.mul, var.shape) * 8
-"""
-    
-v2size = 0
-for name, var in tdepvar.items():
-    print "Variable : %s (%s)" % (name, ','.join(var.dimensions))
-    define_var (gid, name, "", DATATYPE.double,
-                ','.join(var.dimensions),
-                ','.join([dname for dname in var.dimensions
-                          if dname != tname]),
-                "0,0,0")
-    v2size += reduce(operator.mul, var.shape) / tdim * 8
-
-print "Count (dim, var) : ", (d1size, v2size)
-
-## Clean old file
-if os.access(fout, os.F_OK):
-    os.remove(fout)
-
-for it in range(tdim):
-    print 
-    print "Time step : %d" % (it)
-    
-    fd = open("group", fout, "a")
-    groupsize = d1size + v2size
-    set_group_size(fd, groupsize)
-
-    for name, val in f.dimensions.items():
-        if name == tname:
-            continue
-        print "Dimension writing : %s (%d)" % (name, val)
-        write_int(fd, name, val)
-        
-    for name, var in tdepvar.items():
-        arr = np.array(var.data.take([it], axis=tdx),
-                       dtype=np.float64)
-        print "Variable writing : %s %s" % (name, arr.shape)
-        write(fd, name, arr)
-
-    close(fd)
-    
-f.close()
-finalize()
-
-print
-print "Done. Saved:", fout
diff --git a/wrappers/numpy/test/.svn/all-wcprops b/wrappers/numpy/test/.svn/all-wcprops
deleted file mode 100644
index fa1c551..0000000
--- a/wrappers/numpy/test/.svn/all-wcprops
+++ /dev/null
@@ -1,17 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 55
-/svn-ewok/ADIOS/!svn/ver/1813/trunk/wrappers/numpy/test
-END
-test_adios_write.sh
-K 25
-svn:wc:ra_dav:version-url
-V 75
-/svn-ewok/ADIOS/!svn/ver/1813/trunk/wrappers/numpy/test/test_adios_write.sh
-END
-adios_noxml_test.py
-K 25
-svn:wc:ra_dav:version-url
-V 75
-/svn-ewok/ADIOS/!svn/ver/1813/trunk/wrappers/numpy/test/adios_noxml_test.py
-END
diff --git a/wrappers/numpy/test/.svn/entries b/wrappers/numpy/test/.svn/entries
deleted file mode 100644
index a7ba325..0000000
--- a/wrappers/numpy/test/.svn/entries
+++ /dev/null
@@ -1,239 +0,0 @@
-9
-
-dir
-2164
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS/trunk/wrappers/numpy/test
-https://svn.ccs.ornl.gov/svn-ewok/ADIOS
-
-
-
-2012-07-09T13:26:45.576652Z
-1813
-jyc
-
-
-svn:special svn:externals svn:needs-lock
-
-
-
-
-
-
-
-
-
-
-
-18e33b39-b44e-0410-86dd-cc212c48616b
-
-
-
-
-
-
-0
-

-adios_write_test.py
-file
-
-
-
-
-2012-07-02T16:20:13.661075Z
-9eb575e782a35dd38367c7ee2c6e8c70
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-441
-

-adios_read_test.py
-file
-
-
-
-
-2012-07-02T16:20:13.679070Z
-d6600beaac16fab30ab7b34f7394622d
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-215
-

-test_adios_write.sh
-file
-
-
-
-
-2012-07-09T13:28:40.340793Z
-78bd9cf98f1db48269702dec39365ec8
-2012-07-09T13:26:45.576652Z
-1813
-jyc
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-822
-

-test_adios_read.sh
-file
-
-
-
-
-2012-07-02T16:20:13.686070Z
-7440c6f775f174ba0c1f71182fc2907e
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-823
-

-adios_noxml_test.py
-file
-
-
-
-
-2012-07-09T13:28:40.384786Z
-df21c98536cb0621ce30ea61f2af95ce
-2012-07-09T13:26:45.576652Z
-1813
-jyc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-769
-

-test_adios_noxml.sh
-file
-
-
-
-
-2012-07-02T16:20:13.723071Z
-56f8a128dff64c79b4b06d6052d012a3
-2012-07-02T18:08:51.289750Z
-1744
-pnorbert
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-194
-

diff --git a/wrappers/numpy/test/.svn/format b/wrappers/numpy/test/.svn/format
deleted file mode 100644
index ec63514..0000000
--- a/wrappers/numpy/test/.svn/format
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/wrappers/numpy/test/.svn/prop-base/test_adios_noxml.sh.svn-base b/wrappers/numpy/test/.svn/prop-base/test_adios_noxml.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/wrappers/numpy/test/.svn/prop-base/test_adios_noxml.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/wrappers/numpy/test/.svn/prop-base/test_adios_read.sh.svn-base b/wrappers/numpy/test/.svn/prop-base/test_adios_read.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/wrappers/numpy/test/.svn/prop-base/test_adios_read.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/wrappers/numpy/test/.svn/prop-base/test_adios_write.sh.svn-base b/wrappers/numpy/test/.svn/prop-base/test_adios_write.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/wrappers/numpy/test/.svn/prop-base/test_adios_write.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/wrappers/numpy/test/.svn/text-base/adios_noxml_test.py.svn-base b/wrappers/numpy/test/.svn/text-base/adios_noxml_test.py.svn-base
deleted file mode 100644
index c769db7..0000000
--- a/wrappers/numpy/test/.svn/text-base/adios_noxml_test.py.svn-base
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-from adios import *
-import numpy as np
-
-init_noxml()
-allocate_buffer(BUFFER_ALLOC_WHEN.NOW, 10)
-gid = declare_group ("temperature", "", FLAG.YES)
-select_method (gid, "MPI", "", "")
-define_var (gid, "NX", "", DATATYPE.integer, "", "", "")
-define_var (gid, "size", "", DATATYPE.integer, "", "", "")
-define_var (gid, "rank", "", DATATYPE.integer, "", "", "")
-define_var (gid, "temperature", "", DATATYPE.double, "1,NX", "size,NX", "")
-
-fd = open("temperature", "adios_noxml.bp", "w")
-
-NX = 10
-size = 1
-rank = 0
-groupsize =  4 + 4 + 4 + 8 * 1 * NX
-t = np.array(range(NX), dtype=np.float64)
-set_group_size(fd, groupsize)
-write_int(fd, "NX", NX)
-write_int(fd, "size", size)
-write_int(fd, "rank", rank)
-write(fd, "temperature", t)
-close(fd)
-
-finalize()
-
diff --git a/wrappers/numpy/test/.svn/text-base/adios_read_test.py.svn-base b/wrappers/numpy/test/.svn/text-base/adios_read_test.py.svn-base
deleted file mode 100644
index 8be4c68..0000000
--- a/wrappers/numpy/test/.svn/text-base/adios_read_test.py.svn-base
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env python
-from adios import *
-import numpy as np
-
-f = AdiosFile("adios_test.bp")
-f.printself()
-g = f.group["temperature"]
-g.printself()
-v = g.var["/temperature"]
-v.printself()
-
-print v.read()
-
-f.close()
diff --git a/wrappers/numpy/test/.svn/text-base/adios_write_test.py.svn-base b/wrappers/numpy/test/.svn/text-base/adios_write_test.py.svn-base
deleted file mode 100644
index 15997ee..0000000
--- a/wrappers/numpy/test/.svn/text-base/adios_write_test.py.svn-base
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python
-import adios
-import numpy as np
-
-adios.init("config.xml")
-fd = adios.open("temperature", "adios_test.bp", "w")
-
-NX = 10
-size = 1
-rank = 0
-groupsize =  4 + 4 + 4 + 8 * 1 * NX
-t = np.array(range(NX), dtype=np.float64)
-adios.set_group_size(fd, groupsize)
-adios.write_int(fd, "NX", NX)
-adios.write_int(fd, "size", size)
-adios.write_int(fd, "rank", rank)
-adios.write(fd, "temperature", t)
-adios.close(fd)
-
-adios.finalize()
-
diff --git a/wrappers/numpy/test/.svn/text-base/test_adios_noxml.sh.svn-base b/wrappers/numpy/test/.svn/text-base/test_adios_noxml.sh.svn-base
deleted file mode 100644
index 2c62462..0000000
--- a/wrappers/numpy/test/.svn/text-base/test_adios_noxml.sh.svn-base
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-function usage {
-    echo "USAGE : `basename $0`"
-}
-
-if [ $# -lt 1 ]  ; then
-    usage
-    exit 1
-fi
-
-SRCDIR=$1
-
-PYTHONPATH=.:$PYTHONPATH python $SRCDIR/adios_noxml_test.py
-exit $?
diff --git a/wrappers/numpy/test/.svn/text-base/test_adios_read.sh.svn-base b/wrappers/numpy/test/.svn/text-base/test_adios_read.sh.svn-base
deleted file mode 100644
index 323e962..0000000
--- a/wrappers/numpy/test/.svn/text-base/test_adios_read.sh.svn-base
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-function usage {
-    echo "USAGE : `basename $0`"
-}
-
-if [ $# -lt 1 ]  ; then
-    usage
-    exit 1
-fi
-
-SRCDIR=$1
-
-cat << EOF > config.xml
-<?xml version="1.0"?>
-<adios-config host-language="C">
-    <adios-group name="temperature">
-    <var name="NX" type="integer"/>
-    <var name="size" type="integer"/>
-    <var name="rank" type="integer"/>
-    <global-bounds dimensions="size,NX" offsets="rank,0">
-       <var name="temperature" gwrite="t" type="double" dimensions="1,NX"/>
-    </global-bounds>
-    <attribute name="description" path="/temperature" value="Global array written from 'size' processes" type="string"/>
-</adios-group>
-
-<method group="temperature" method="POSIX"/>
-
-<buffer size-MB="2" allocate-time="now"/>
-
-</adios-config>
-EOF
-
-PYTHONPATH=.:$PYTHONPATH python $SRCDIR/adios_read_test.py
-exit $?
diff --git a/wrappers/numpy/test/.svn/text-base/test_adios_write.sh.svn-base b/wrappers/numpy/test/.svn/text-base/test_adios_write.sh.svn-base
deleted file mode 100644
index 2bedb5b..0000000
--- a/wrappers/numpy/test/.svn/text-base/test_adios_write.sh.svn-base
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-function usage {
-    echo "USAGE : `basename $0`"
-}
-
-if [ $# -lt 1 ]  ; then
-    usage
-    exit 1
-fi
-
-SRCDIR=$1
-
-cat << EOF > config.xml
-<?xml version="1.0"?>
-<adios-config host-language="C">
-    <adios-group name="temperature">
-    <var name="NX" type="integer"/>
-    <var name="size" type="integer"/>
-    <var name="rank" type="integer"/>
-    <global-bounds dimensions="size,NX" offsets="rank,0">
-       <var name="temperature" gwrite="t" type="double" dimensions="1,NX"/>
-    </global-bounds>
-    <attribute name="description" path="/temperature" value="Global array written from 'size' processes" type="string"/>
-</adios-group>
-
-<method group="temperature" method="MPI"/>
-
-<buffer size-MB="2" allocate-time="now"/>
-
-</adios-config>
-EOF
-
-PYTHONPATH=.:$PYTHONPATH python $SRCDIR/adios_write_test.py
-exit $?

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



More information about the debian-science-commits mailing list