Compare commits

...

15 Commits

Author SHA1 Message Date
Marc Howison 39cee80bc7 1.6.5 release: Fixed several build errors reported by Iuri Prilepov on Ubuntu 11.04. 2011-09-23 14:47:11 +00:00
gsell 819ddc4704 work around to use env.vars removed 2011-08-15 14:08:08 +00:00
gsell 3894452bc9 target 'clean' replaced with 'clean-local' 2011-08-15 13:27:48 +00:00
gsell 58be7a8318 ignore property edited 2011-08-15 10:15:29 +00:00
gsell 9a06157427 config.{guess,sub} removed from repo 2011-08-15 10:11:37 +00:00
gsell a44e2b6a05 missing H5P_DEFAULT added to H5Gopen() if 1.8 API is used 2011-08-15 10:08:58 +00:00
gsell ac8d16c0b6 libtoolize must be called first, use try 'glibtoolize' if 'libtoolize dosn't exists 2011-08-15 09:36:43 +00:00
gsell 6c944f2b16 meaningless comment removed 2011-08-15 09:34:15 +00:00
Marc Howison b1aa655b22 1.6.3 release 2011-07-25 14:09:43 +00:00
Marc Howison efb1e39233 more fixes to the new libtool build system 2011-07-19 01:31:21 +00:00
Marc Howison 5b611ab155 new build system for both H5hut and H5Part; preparing 1.6.3 release of H5Part 2011-07-16 18:30:25 +00:00
Marc Howison 66449ee44d fixed mismatched function names and uncorrected indices in Fortran API; incorporated bug report for Fortran test 2011-02-01 16:36:00 +00:00
Marc Howison d368a60202 bug fixes in Fortran API for 1.6.2 2010-07-28 21:44:48 +00:00
Marc Howison 6b4b556ff1 removed H5PartSetViewEmpty and enabled 0 as input to H5PartSetNumParticles 2010-06-29 16:39:29 +00:00
Marc Howison 0857443617 fixed spelling errors in NEWS 2010-06-11 17:48:42 +00:00
30 changed files with 628 additions and 3769 deletions
+3 -2
View File
@@ -9,8 +9,6 @@
/NEWS -text
/README -text
/autogen.sh -text
/config.guess -text
/config.sub -text
/configure-crayxt -text
/configure.ac -text
/depcomp -text
@@ -18,6 +16,9 @@ doc/Doxyfile -text
doc/H5X_File_Format.txt -text
doc/Makefile.am -text
doc/doxyfooter -text
examples/core_vfd.c -text
examples/fields.c -text
examples/particles.c -text
examples/simplef.F90 -text
examples/stridedf.F90 -text
examples/write_setview.c -text
+13
View File
@@ -0,0 +1,13 @@
/Makefile.in
/aclocal.m4
/autom4te.cache
/build
/config.h.in
/configure
doc/Makefile.in
/ltmain.sh
/m4
src/H5PartF.h
src/Makefile.in
test/Makefile.in
tools/Makefile.in
+1 -4
View File
@@ -1,5 +1,4 @@
# Trial by Antino Kim
# Top level Makefile.am
ACLOCAL_AMFLAGS=-I m4
SUBDIRS = \
doc \
@@ -7,8 +6,6 @@ SUBDIRS = \
test \
tools
EXTRA_DIST = configure-crayxt
MAINTAINERCLEANFILES = \
config.h \
config.log \
+42 -4
View File
@@ -1,3 +1,41 @@
#### H5PART 1.6.5 ############################################################
Fixed several build errors reported by Iuri Prilepov on Ubuntu 11.04.
#### H5PART 1.6.4 ############################################################
Fixed bug where H5PartSetViewIndices was not setting an empty view when the
number of elements is 0.
Set a threshold on the HDF5 alignment parameter so that small metadata writes
are not aligned, which causes large gaps in the file.
#### H5PART 1.6.3 ############################################################
New build system uses libtool and can build shared libraries.
Fixed a bug that incorrectly identifies the number of selected points in a view
when using H5PartSetViewIndices.
Fixed bug in Fortran test reported by several people, as well as several
incorrect views set in the C test that were causing segfaults.
Fixed name mismatches in the Fortran interface, and an off-by-one indexing
problem.
#### H5PART 1.6.2 ############################################################
Removed H5PartSetViewEmpty
--------------------------
An empty view can now be selected with:
H5PartSetNumParticles(file, 0);
Bug Fixes to Attribute Calls in Fortran API
-------------------------------------------
Fixed a problem where attribute values were reverting to zero.
#### H5PART 1.6.1 ############################################################
Chunking in the H5Part API
@@ -12,7 +50,7 @@ on disk.
All Steps Available on Write
----------------------------
Previously, existing steps in a file were only accessable in read-only mode.
Previously, existing steps in a file were only accessible in read-only mode.
Now, all steps are available in all modes, including write-truncate and
write-append. Thus, it is now possible to overwrite existing data in write
mode. To help alert the user to this possibility, a warning is issued every
@@ -23,9 +61,9 @@ New Throttling Routine
----------------------
Previously, a throttle factor of N meant that for P processors, the total
number of P writes were divided into N batchs of P/N writes.
number of P writes were divided into N batches of P/N writes.
To better accomodate round-robin lustre striping, the new policy is to
To better accommodate round-robin lustre striping, the new policy is to
execute P/N batches of N writes. Thus, matching N to the number of stripes
results in the desirable 1-1 matching of writers to stripes.
@@ -160,7 +198,7 @@ calls.
Previously, a user could overrun internal buffers for dataset names. Now, a
fixed limit of 64 chars is imposed. Dataset names that are longer than this are
truncated and a warning is printed. We expect that most users are using
short canoncical names like x, px, id, etc.
short canonical names like x, px, id, etc.
Changes to Existing API
-----------------------
+26 -24
View File
@@ -1,46 +1,48 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
ACLOCAL_FLAGS="-I m4 $ACLOCAL_FLAGS"
LIBTOOLIZE_FLAGS="--force $LIBTOOLIZE_FLAGS"
AUTOMAKE_FLAGS="--add-missing --copy --foreign $AUTOMAKE_FLAGS"
LIBTOOLIZE=`which libtoolize`
if [ "$LIBTOOLIZE" = "" ]; then
LIBTOOLIZE=`which glibtoolize`
fi
if [ "$LIBTOOLIZE" = "" ]; then
echo "libtoolize not found" 1>&2
exit 1
fi
echo "+ making misc files ..."
touch NEWS README AUTHORS ChangeLog
echo
echo
$LIBTOOLIZE $LIBTOOLIZE_FLAGS || {
echo "libtoolize failed"
exit 1
}
echo
echo "+ running aclocal ..."
aclocal $ACLOCAL_FLAGS || {
echo
echo "aclocal failed - check that all needed development files are present on system"
exit 1
echo "aclocal failed - check that all needed development files are present on system"
exit 1
}
echo
echo
echo
echo
echo "+ running autoheader ... "
autoheader || {
echo
echo "autoheader failed"
exit 1
echo "autoheader failed"
exit 1
}
echo
echo
echo
echo "+ running autoconf ... "
autoconf || {
echo
echo "autoconf failed"
exit 1
echo "autoconf failed"
exit 1
}
echo
echo
echo
echo "+ running automake ... "
automake -a -c --foreign || {
echo
echo "automake failed"
exit 1
automake $AUTOMAKE_FLAGS || {
echo "automake failed"
exit 1
}
echo
echo
echo
-1469
View File
File diff suppressed because it is too large Load Diff
Vendored
-1563
View File
File diff suppressed because it is too large Load Diff
+7 -5
View File
@@ -1,18 +1,20 @@
#!/bin/sh
F90=gfortran
./configure \
$@ \
--enable-parallel \
--enable-fortran \
--enable-tools \
CC=cc CXX=CC FC=pgf90 \
CC=cc CXX=CC FC=$F90 \
MPICC=cc MPICXX=CC MPIFC=ftn
sed -e 's/pgf90/ftn/g' <Makefile > newMakefile
sed -e 's/$F90/ftn/g' <Makefile > newMakefile
mv newMakefile Makefile
sed -e 's/pgf90/ftn/g' <src/Makefile > newMakefile
sed -e 's/$F90/ftn/g' <src/Makefile > newMakefile
mv newMakefile src/Makefile
sed -e 's/pgf90/ftn/g' <test/Makefile > newMakefile
sed -e 's/$F90/ftn/g' <test/Makefile > newMakefile
mv newMakefile test/Makefile
sed -e 's/pgf90/ftn/g' <tools/Makefile > newMakefile
sed -e 's/$F90/ftn/g' <tools/Makefile > newMakefile
mv newMakefile tools/Makefile
+184 -472
View File
@@ -1,18 +1,24 @@
# Every configure script must call AC_INIT before doing anything else.
# AC_INIT (package, version, [bug-report], [tarname])
AC_INIT([H5Part], [1.6.1], [h5part@lists.psi.ch], H5Part)
AC_INIT([H5Part], [1.6.5], [h5part@lists.psi.ch], H5Part)
# Ensure that a recent enough version of Autoconf is being used.
# If the version of Autoconf being used to create configure is earlier than version,
# print an error message to the standard error output and do not create configure.
#AC_PREREQ(2.59)
AC_PREREQ(2.59)
# should be called right after AC_INIT.
# configure scripts can create a C header file containing `#define' directives.
# The AC_CONFIG_HEADERS macro selects this kind of output.
AC_CONFIG_HEADER(config.h)
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_MACRO_DIR([m4])
# AM_INIT_AUTOMAKE is required to use autoconf with automake
AM_INIT_AUTOMAKE
BUILD_LIBS='libH5Part'
BUILD_TESTS='test'
###############################################################################
################# --enable-xxx and --with-xxx Argument ########################
@@ -21,32 +27,20 @@ AC_CONFIG_HEADER(config.h)
AC_ARG_ENABLE(
[debug],
[AC_HELP_STRING([--enable-debug],
[Compile with debug support [default=no]])],
[Compile with debug flags [default=no]])],
[USE_DEBUG=$enableval])
AC_ARG_ENABLE(
[shared],
[AC_HELP_STRING([--enable-shared],
[Compile with shared library support [default=no]])],
[USE_SHARED=$enableval])
AC_ARG_ENABLE(
[64],
[AC_HELP_STRING([--enable-64],
[Compile using 64-bit flags [default=no]])],
[USE_64=$enableval])
AC_ARG_ENABLE(
[fortran],
[AC_HELP_STRING([--enable-fortran],
[AC_HELP_STRING([--enable-fortran],
[Compile the Fortran interface [default=no]])],
[USE_FORTRAN=$enableval])
[USE_FORTRAN=$enableval])
AC_ARG_ENABLE(
[parallel],
[AC_HELP_STRING([--enable-parallel],
[AC_HELP_STRING([--enable-parallel],
[Compile the MPI/IO interface [default=no]])],
[USE_PARALLEL=$enableval])
[USE_PARALLEL=$enableval])
AC_ARG_ENABLE(
[tools],
@@ -55,35 +49,11 @@ AC_ARG_ENABLE(
[USE_TOOLS=$enableval])
AC_ARG_WITH(
[mpipath],
[AC_HELP_STRING([--with-mpipath],
[path to MPI installation [default=""]])],
[MPIPATH=$withval], [MPIPATH=""])
AC_ARG_WITH(
[hdf5path],
[AC_HELP_STRING([--with-hdf5path],
[hdf5],
[AC_HELP_STRING([--with-hdf5],
[path to HDF5 installation [default=""]])],
[HDF5PATH=$withval], [HDF5PATH=""])
###############################################################################
################# A SIMPLE WORK AROUND TO USE ENV. VARS #######################
###############################################################################
SAVE_CC=$CC
SAVE_CXX=$CXX
SAVE_FC=$FC
SAVE_MPICC=$MPICC
SAVE_MPICXX=$MPICXX
SAVE_MPIFC=$MPIFC
SAVE_MPILIB=$MPILIB
SAVE_MPIINC=$MPIINC
SAVE_CFLAGS=$CFLAGS
SAVE_FFLAGS=$FFLAGS
SAVE_MPIROOT=$MPIROOT
SAVE_HDF5ROOT=$HDF5ROOT
SAVE_LDFLAGS=$LDFLAGS
###############################################################################
############### PATH SERACH FUNCTION - to be used later... ####################
###############################################################################
@@ -96,35 +66,26 @@ SAVE_LDFLAGS=$LDFLAGS
# @enddesc
#@@*/
PATH_Search()
{
eval $1=""
if test $# -lt 4 ; then
h5part_basedir=""
else
h5part_basedir="$4/"
fi
for h5part_place in $2
do
echo -n "looking in $h5part_place ... $ac_c" #1>&6
if test -r "$h5part_basedir$h5part_place/$3" ; then
echo "$ac_t"" found" #1>&6
eval $1="$h5part_place"
break
fi
if test -d "$h5part_basedir$h5part_place/$3" ; then
echo "$ac_t"" found" #1>&6
eval $1="$h5part_place"
break
fi
echo "$ac_t"" no" #1>&6
done
return
PATH_Search() {
eval $1=""
if test $# -lt 4 ; then
h5part_basedir=""
else
h5part_basedir="$4/"
fi
for h5part_place in $2; do
AC_MSG_CHECKING([looking in $h5part_place ... ])
if test -r "$h5part_basedir$h5part_place/$3" ; then
AC_MSG_RESULT([found])
eval $1="$h5part_place"
break
fi
AC_MSG_RESULT([no])
done
return
}
###############################################################################
############# MISC SETTINGS INCLUDING C & C++ COMPILER SETTING ################
###############################################################################
@@ -132,82 +93,37 @@ PATH_Search()
# individual parts host_cpu, host_vendor, and host_os.
AC_CANONICAL_HOST
AC_PROG_MAKE_SET
uname=`uname -s`
if test $uname = "AIX"; then
AC_MSG_CHECKING([if system is AIX])
AC_MSG_RESULT([OK])
# If on AIX, define _ALL_SOURCE. Allows the use of some BSD functions.
# Should be called before any macros that run the C compiler.
AC_AIX
fi
# DAVINCI SPECIFIC!!!
if test `uname -n` = "davinci"; then
echo "DAVINCI SPECIFIC TESTING FOR STDC++ LIBRARY!"
PATH_Search STDCXX_CHECK '/usr/lib64 /usr/lib' libstdc++.a
# if STDCXX_CHECK is set...
if test "$STDCXX_CHECK" = "/usr/lib64"; then
echo "STDCXX setting ..."
echo "STDCXX_CHECK = $STDCXX_CHECK ..."
STDCXX="-L/usr/lib64 -lstdc++"
echo "STDCXX = $STDCXX ..."
elif test "$STDCXX_CHECK" = "/usr/lib"; then
echo "STDCXX setting ..."
echo "STDCXX_CHECK = $STDCXX_CHECK ..."
STDCXX="-L/usr/lib -lstdc++"
echo "STDCXX = $STDCXX ..."
fi
fi
# Determine a C compiler to use.
# Determine a C/C++ compiler to use.
# If CC is not already set in the environment, check for gcc and cc, then
# for other C compilers.
# Set output variable CC to the name of the compiler found.
AC_PROG_CC(pgcc pathcc icc cc_r gcc cc)
if test "x$USE_PARALLEL" = "xyes"; then
CCOMPILERS="mpicc cc"
CXXCOMPILERS="mpic++ mpicxx CC"
else
CCOMPILERS="pgcc pathcc icc gcc cc_r cc"
CXXCOMPILERS="pgCC pathCC icpc g++"
fi
# AC_PROG_CC doesn't pick up cc_r in Bassi. The following AC_PATH_PROGS
# is the fix.
AC_PATH_PROGS([BAS_CC], [cc_r], [], [$PATH])
# if BAS_CC not empty
if test -n "$BAS_CC"; then
echo "CC setting for Bassi ..."
CC=$BAS_CC
echo "CC = $CC ..."
fi
# Determine a C++ compiler to use.
# Check if the environment variable CXX or CCC (in that order) is set;
# if so, then set output variable CXX to its value.
# Otherwise, if the macro is invoked without an argument,
# then search for a C++ compiler under the likely names (first g++ and c++
# then other names).
# If none of those checks succeed, then as a last resort set CXX to g++.
AC_PROG_CXX(pgCC pathCC icc cc_r g++ gcc cc)
AC_PROG_CC($CCOMPILERS)
# Only need C++ for some of the tools
#if test "x$USE_TOOLS" = "xyes"; then
AC_PROG_CXX($CXXCOMPILERS)
#fi
# Set output variable INSTALL to the path of a BSD-compatible install program,
# if one is found in the current PATH.
# Otherwise, set INSTALL to `dir/install-sh -c`
AC_PROG_INSTALL
# AM_INIT_AUTOMAKE is required to use autoconf with automake
AM_INIT_AUTOMAKE()
AC_PROG_RANLIB
AC_PROG_AWK
# Default prefix for bindir, etc... (eg >> ./build/bin)
AC_PREFIX_DEFAULT(`pwd`/build)
# AC_DEFINE_UNQUOTED (variable, value, [description])
# Define the C preprocessor variable variable to value
# Use this macro instead of AC_DEFINE when variable or value is a shell variable.
@@ -218,7 +134,6 @@ AC_DEFINE_UNQUOTED(MY_GNUNAME, "${host_cpu}-${host_vendor}-${host_os}", "")
AC_DEFINE_UNQUOTED(MY_UNAME, "$uname", "")
###############################################################################
######################## CONFIGURE LINE OPTIONS ###############################
###############################################################################
@@ -228,216 +143,92 @@ AC_MSG_CHECKING([if debug is enabled])
if test "X$USE_DEBUG" = "Xyes"; then
AC_MSG_RESULT([yes])
CFLAGS="$CFLAGS -g"
CXXFLAGS="$CXXFLAGS -g"
FFLAGS="$FFLAGS -g"
else
AC_MSG_RESULT([no])
fi
# shared library
AC_MSG_CHECKING([if shared libraries are enabled])
if test "X$USE_SHARED" = "Xyes"; then
AC_MSG_RESULT([yes])
CFLAGS="$CFLAGS -fPIC"
FFLAGS="$FFLAGS -fPIC"
else
AC_MSG_RESULT([no])
fi
###################### 64-bit compilation enabled #############################
AC_MSG_CHECKING([if 64-bit compilation is enabled])
# If --enable-64 is set in the configure line
if test "X$USE_64:/f90
" = "Xyes"; then
AC_MSG_RESULT([yes])
if test $uname = "AIX"; then
CFLAGS="$CFLAGS -q64"
FFLAGS="$FFLAGS -q64"
fi
if test $uname = "IRIX64"; then
CFLAGS="$CFLAGS -64"
FFLAGS="$FFLAGS -64 -fPIC -fno-second-underscore"
fi
else
AC_MSG_RESULT([no])
fi
############################ fortran enabled ##################################
AC_MSG_CHECKING([if fortran interface enabled])
if test "X$USE_FORTRAN" = "Xyes"; then
AC_MSG_RESULT([yes])
AC_MSG_RESULT([yes])
LIB_FORTRAN="libH5PartF.la"
BUILD_LIBS="$BUILD_LIBS libH5PartF"
BUILD_TESTS="$BUILD_TESTS testf"
AC_PROG_FC(pgf90 ifort xlf_r pathf90 g95 g90 ftn gfortran)
if test -z "$FC" ; then
AC_MSG_ERROR([Cannot find a fortran compiler!!!])
exit 1
fi
if test "X$USE_PARALLEL" = "Xyes"; then
AC_PROG_FC(mpif90 mpif77 ftn)
else
AC_PROG_FC(pgf90 pathf90 ifort ftn xlf_r g95 g90 gfortran)
fi
if test ! $uname = "AIX"; then
FFLAGS="${FFLAGS} -fPIC"
fi
if test -z "$FC" ; then
AC_MSG_ERROR([Cannot find a Fortran compiler!])
exit 1
fi
if test $FC = "g90"; then
FFLAGS="${FFLAGS} -fno-second-underscore"
fi
if test $FC = "g90"; then
FFLAGS="${FFLAGS} -fno-second-underscore"
fi
if test $FC = "g95"; then
FFLAGS="${FFLAGS} -fno-second-underscore"
fi
if test $FC = "g95"; then
FFLAGS="${FFLAGS} -fno-second-underscore"
fi
if test $FC = "gfortran"; then
FFLAGS="${FFLAGS} -DHAVE_GFORTRAN"
fi
AC_MSG_CHECKING([symbol convention in object files])
`cd src && rm -f TestUnderscore.o TestUnderscoreC.o TestUnderscore`
`cd src && ${FC} ${FFLAGS} -c TestUnderscore.f`
`cd src && ${CC} ${CFLAGS} -c TestUnderscoreC.c`
`cd src && ${FC} ${FFLAGS} -o TestUnderscore TestUnderscore.o TestUnderscoreC.o`
AC_MSG_CHECKING([symbol convention in object files])
`cd src && rm -f TestUnderscore.o TestUnderscoreC.o TestUnderscore`
`cd src && ${FC} ${FFLAGS} -c TestUnderscore.f`
`cd src && ${CC} ${CFLAGS} -c TestUnderscoreC.c`
`cd src && ${FC} ${FFLAGS} -o TestUnderscore TestUnderscore.o TestUnderscoreC.o -lc`
if test -f src/TestUnderscore ; then
UNDERSCORE_H=Underscore.h
`cd src && ./TestUnderscore > Underscore.h`
AC_MSG_RESULT([ok])
else
AC_MSG_RESULT([nok])
AC_MSG_ERROR([Cannot determine the symbon convention for Fortran object files!])
exit 1
fi
if test -f src/TestUnderscore ; then
UNDERSCORE_H=Underscore.h
`cd src && ./TestUnderscore > Underscore.h`
AC_MSG_RESULT([ok])
else
AC_MSG_RESULT([nok])
AC_MSG_ERROR([Cannot build fortran executables!!!])
exit 1
fi
else
AC_MSG_RESULT([no])
AC_MSG_RESULT([no])
fi
# Disable shared libraries by default: can be enabled with --enable-shared
LT_INIT([disable-shared])
AC_PROG_LIBTOOL
######################## parallel interface enabled ###########################
AC_MSG_CHECKING([if parallel interface enabled])
if test "X$USE_PARALLEL" = "Xyes"; then
AC_MSG_RESULT([yes])
AC_MSG_RESULT([yes])
CFLAGS="${CFLAGS} -DPARALLEL_IO -DH5_HAVE_PARALLEL -DMPICH_IGNORE_CXX_SEEK"
CFLAGS="${CFLAGS} -DPARALLEL_IO -DMPICH_IGNORE_CXX_SEEK"
CXXFLAGS="${CXXFLAGS} -DPARALLEL_IO -DMPICH_IGNORE_CXX_SEEK"
FFLAGS="${FFLAGS} -DPARALLEL_IO"
AC_MSG_CHECKING([if we can compile MPI code without setting flags])
AC_TRY_LINK([#include "mpi.h"], [
MPI_Comm comm;
int n;
MPI_Comm_size( comm, &n ); ],
[echo 'yes'; r='yes'], [echo "no"; r='no'] )
AC_MSG_CHECKING([if we can compile MPI code without setting flags])
AC_TRY_LINK([#include "mpi.h"], [
MPI_Comm comm;
int n;
MPI_Comm_size( comm, &n ); ],
[AC_MSG_RESULT([yes]); r='yes'], [AC_MSG_RESULT([no]); r='no'] )
if test "X$r" = "Xno"; then
AC_PATH_PROGS([MPICC], [mpicc mpcc_r], [], [$PATH])
AC_PATH_PROGS([MPICXX], [mpicxx mpcc_r], [], [$PATH])
if test -z "$MPICC" -o -z "$MPICXX"; then
AC_MSG_CHECKING([for MPI root ])
AC_MSG_RESULT([])
if test -n "$MPIROOT"; then
P=${MPIROOT}
elif test -n "$MPIHOME"; then
P=${MPIHOME}
elif test -n "$MPIPATH"; then
P=${MPIPATH}
else
P=''
P="$P /usr"
P="$P /usr/local"
P="$P /usr/local/mpi"
P="$P /usr/local/packages/mpi"
P="$P /usr/local/mpich2"
P="$P /usr/local/mpich"
P="$P /opt/xt-mpt/default/mpich2-64/P2"
fi
PATH_Search MPIROOT "$P" include/mpi.h
if test ! -n "$MPIROOT"; then
AC_MSG_ERROR([Cannot determine MPI root!!!])
exit 1
fi
if test -e "${MPIROOT}/bin/mpicc"; then
MPICC=${MPIROOT}/bin/mpicc
fi
if test -e "${MPIROOT}/bin/mpicxx"; then
MPICXX=${MPIROOT}/bin/mpicxx
fi
if test "X$r" = "Xno"; then
AC_MSG_ERROR([MPI wrapper can't compile or link MPI program! Please set the INCLUDE and LIBS variables manually.])
exit 1
fi
if test -z "$MPICC" -o -z "$MPICXX"; then
MPIINC="${MPIINC} -I${MPIROOT}/include"
FFLAGS="${FFLAGS} -I${MPIROOT}/include"
AC_MSG_CHECKING([for name of MPI lib ])
if test -e ${MPIROOT}/lib/libmpi.a; then
MPILIB="-L${MPIROOT}/lib -lmpi"
elif test -e ${MPIROOT}/lib/libmpi.so; then
MPILIB="-L${MPIROOT}/lib -lmpi"
elif test -e ${MPIROOT}/lib/libmpich.a; then
MPILIB="-L${MPIROOT}/lib -lmpich"
elif test -e ${MPIROOT}/lib/libmpich.so; then
MPILIB="-L${MPIROOT}/lib -lmpich"
else
AC_MSG_RESULT([not found])
exit 1
fi
AC_MSG_RESULT([${MPILIB}])
fi
if test -n "$MPICC"; then
CC=${MPICC}
fi
if test -n "$MPICXX"; then
CXX=${MPICXX}
fi
fi
H5P_LIB_NAME="-lpH5Part"
MTARGET="libpH5Part.a"
TTARGET="test"
# parallel + fortran
if test "X$USE_FORTRAN" = "Xyes"; then
AC_PATH_PROGS([MPIFC], [mpxlf_r mpif90], [], [$PATH])
FFLAGS="${FFLAGS} -DPARALLEL_IO"
if test -z "${MPIFC}" ; then
if test -e "${MPIROOT}/bin/mpif90"; then
MPIFC=${MPIROOT}/bin/mpif90
fi
fi
# if MPIFC empty
if test ! -n "$MPIFC"; then
AC_MSG_CHECKING([ No MPIFC detected. Setting MPIFC to FC.])
MPIFC=$FC
echo "MPIFC = $MPIFC ..."
fi
if test -n "$MPIFC"; then
FC=${MPIFC}
fi
H5P_LIB_NAME="-lpH5PartF"
MTARGET="${MTARGET} libpH5PartF.a"
TTARGET="${TTARGET} testf"
fi
else # --enable-parallel=no
AC_MSG_RESULT([no])
H5P_LIB_NAME="-lH5Part"
MTARGET="libH5Part.a"
TTARGET="test"
if test "X$USE_FORTRAN" = "Xyes"; then
H5P_LIB_NAME="-lH5PartF"
MTARGET="${MTARGET} libH5PartF.a"
TTARGET="${TTARGET} testf"
fi
AC_MSG_RESULT([no])
fi
######################## tools enabled ###########################
AC_MSG_CHECKING([whether tools are enabled])
if test "X$USE_TOOLS" = "Xyes"; then
AC_MSG_RESULT([yes])
@@ -450,171 +241,96 @@ else
AC_MSG_RESULT([no])
fi
###############################################################################
######################### PATH CHECKING & SETTING #############################
###############################################################################
AC_MSG_CHECKING([for HDF5 root ])
AC_MSG_RESULT([])
if test -n "${HDF5ROOT}"; then
P=${HDF5ROOT}
if test -n "${HDF5PATH}" ; then
P=${HDF5PATH}
elif test -n "${HDF5ROOT}"; then
P=${HDF5ROOT}
elif test -n "${HDF5HOME}" ; then
P=${HDF5HOME}
elif test -n "${HDF5PATH}" ; then
P=${HDF5PATH}
P=${HDF5HOME}
elif test -n "${HDF5_DIR}" ; then
P=${HDF5_DIR}
else
P=''
P="$P /usr"
P="$P /usr/local"
P="$P /usr/local/hdf5"
P="$P /usr/local/packages/hdf5"
P="$P /apps/hdf5"
if test "X$USE_PARALLEL" = "Xyes"; then
P="$P /usr/local/phdf5"
P="$P /usr/local/hdf5/hdf5_par"
if test "X$USE_64" = "Xyes"; then
P="$P /usr/common/usg/hdf5/64/default/parallel"
else
P="$P /usr/common/usg/hdf5/32/default/parallel"
fi
else
P="$P /usr/local/hdf5/hdf5_serial"
if test "X$USE_64" = "Xyes"; then
P="$P /usr/common/usg/hdf5/64/default/serial"
else
P="$P /usr/common/usg/hdf5/32/default/serial"
fi
fi
P=''
P="$P /usr"
P="$P /usr/local"
P="$P /usr/local/hdf5"
P="$P /usr/local/packages/hdf5"
P="$P /apps/hdf5"
P="$P /opt/hdf5"
fi
PATH_Search HDF5ROOT "$P" include/hdf5.h
if test -z "$HDF5ROOT"; then
AC_MSG_ERROR([Cannot determine HDF5 root!!!])
exit 1
AC_MSG_ERROR([Cannot find an HDF5 library!])
exit 1
fi
INCLUDES="$INCLUDES -I$HDF5ROOT/include"
LDFLAGS="$LDFLAGS -L$HDF5ROOT/lib"
LIBS="$LIBS -lhdf5"
AC_MSG_CHECKING([if we need to link to libsz ])
if test -n "$HDF5ROOT"; then
if test -f $HDF5ROOT/lib/libsz.a; then
AC_MSG_RESULT([yes])
SZLIB="-L$HDF5ROOT/lib/ -lsz"
else
AC_MSG_RESULT([no])
SZLIB=""
fi
if test -f $HDF5ROOT/lib/libsz.a; then
AC_MSG_RESULT([yes])
LDFLAGS="$LDFLAGS -L$HDF5ROOT/lib"
LIBS="$LIBS -lsz"
else
AC_MSG_RESULT([no])
fi
fi
AC_MSG_CHECKING([for static zlib root ])
echo
PATH_Search ZLIBROOT '/apps/zlib' lib/libz.a
if test -n "$ZLIBROOT"; then
LDFLAGS="$LDFLAGS -L$ZLIBROOT/lib"
fi
FCFLAGS=${FFLAGS}
CXXFLAGS=${CFLAGS}
LIBS="$LIBS -lz -lm"
###############################################################################
#################### MISC SETTINGS - path, flags, etc #########################
###############################################################################
# Checks for header files.
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
H5P_LIB_LOC=`pwd`/src
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_TYPE_INT64_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
###############################################################################
################# A SIMPLE WORK AROUND TO USE ENV. VARS #######################
###############################################################################
#if there was an external input for the variable...
if test -n "$SAVE_CC"; then
CC=$SAVE_CC
fi
if test -n "$SAVE_CXX"; then
CXX=$SAVE_CXX
fi
if test -n "$SAVE_FC"; then
FC=$SAVE_FC
fi
if test -n "$SAVE_MPICC"; then
MPICC=$SAVE_MPICC
fi
if test -n "$SAVE_MPICXX"; then
MPICXX=$SAVE_MPICXX
fi
if test -n "$SAVE_MPIFC"; then
MPIFC=$SAVE_MPIFC
fi
if test -n "$SAVE_MPILIB"; then
MPILIB=$SAVE_MPILIB
fi
if test -n "$SAVE_MPIINC"; then
MPIINC=$SAVE_MPIINC
fi
if test -n "$SAVE_CFLAGS"; then
CFLAGS="$SAVE_CFLAGS ${CFLAGS}"
fi
if test -n "$SAVE_FFLAGS"; then
FFLAGS=$SAVE_FFLAGS
fi
if test -n "$SAVE_MPIROOT"; then
MPIROOT=$SAVE_MPIROOT
fi
if test -n "$SAVE_HDF5ROOT"; then
HDF5ROOT=$SAVE_HDF5ROOT
fi
if test -n "$SAVE_LDFLAGS"; then
LDFLAGS=$SAVE_LDFLAGS
fi
# Checks for library functions.
AC_FUNC_MALLOC
AC_CHECK_FUNCS([memset pow strchr strdup])
###############################################################################
############## EXPORTING VARIABLES & CREATING OUTPUT FILES ####################
###############################################################################
# AC_SUBST (variable, [value])
# Create an output variable from a shell variable.
# Make AC_OUTPUT substitute the variable variable into output files (typically one or more `Makefile's).
# This means that AC_OUTPUT will replace instances of `@variable@' in input files with the value that
# the shell variable variable has when AC_OUTPUT is called.
# This value of variable should not contain literal newlines.
# If value is given, in addition assign it to variable.
AC_SUBST(MPIROOT)
AC_SUBST(HDF5ROOT)
AC_SUBST(MPIINC)
AC_SUBST(MPILIB)
AC_SUBST(MPICC)
AC_SUBST(MPICXX)
AC_SUBST(MPIFC)
AC_SUBST(MTARGET)
AC_SUBST(TTARGET)
AC_SUBST(SZLIB)
# Create an output variable from a shell variable. Make AC_OUTPUT substitute
# the variable variable into output files (typically one or more `Makefile's).
# This means that AC_OUTPUT will replace instances of `@variable@' in input
# files with the value that the shell variable variable has when AC_OUTPUT is
# called. This value of variable should not contain literal newlines. If
# value is given, in addition assign it to variable.
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(FFLAGS)
AC_SUBST(STDCXX)
AC_SUBST(H5P_LIB_LOC)
AC_SUBST(H5P_LIB_NAME)
AC_SUBST(UNDERSCORE_H)
AC_SUBST(BUILD_TOOLS)
AC_SUBST(INCLUDES)
AC_SUBST(LDFLAGS)
AC_SUBST(LIBS)
AC_SUBST(UNDERSCORE_H)
AC_SUBST(LIB_FORTRAN)
AC_SUBST(BUILD_TESTS)
AC_SUBST(BUILD_TOOLS)
# Make AC_OUTPUT create each `file' by copying an input file (by default `file.in'),
# substituting the output variable values.
AC_CONFIG_FILES([
Makefile
doc/Makefile
src/Makefile
test/Makefile
tools/Makefile
Makefile
src/Makefile
doc/Makefile
test/Makefile
tools/Makefile
])
AC_OUTPUT
@@ -622,27 +338,23 @@ AC_OUTPUT
###############################################################################
########################## PRINTING SUMMARY ###################################
###############################################################################
echo
echo
echo "Summary for `(hostname || uname -n) 2>/dev/null | sed 1q`:"
echo
echo "Host OS: $host_os"
echo "Host CPU: $host_cpu"
echo "Host vendor: $host_vendor"
echo "Build libraries: $MTARGET"
echo "Build test programs: $TTARGET"
echo "Build tools: $BUILD_TOOLS"
echo "CC = $CC"
echo "CXX = $CXX"
echo "FC = $FC"
echo "MPICC = $MPICC"
echo "MPICXX = $MPICXX"
echo "MPIFC = $MPIFC"
echo "CFLAGS = $CFLAGS"
echo "FFLAGS = $FFLAGS"
echo "MPILIB = $MPILIB"
echo "MPIINC = $MPIINC"
echo "MPIROOT = $MPIROOT"
echo "HDF5ROOT = $HDF5ROOT"
echo "LDFLAGS = $LDFLAGS"
echo
AC_MSG_RESULT([ ])
AC_MSG_RESULT([Summary:])
AC_MSG_RESULT([ ])
AC_MSG_RESULT([Host OS: $host_os])
AC_MSG_RESULT([Host CPU: $host_cpu])
AC_MSG_RESULT([Host vendor: $host_vendor])
AC_MSG_RESULT([Build libraries: $BUILD_LIBS])
AC_MSG_RESULT([Build test programs: $BUILD_TESTS])
AC_MSG_RESULT([Build tools: $BUILD_TOOLS])
AC_MSG_RESULT([CC = $CC])
AC_MSG_RESULT([CXX = $CXX])
AC_MSG_RESULT([FC = $FC])
AC_MSG_RESULT([CFLAGS = $CFLAGS])
AC_MSG_RESULT([CXXFLAGS = $CXXFLAGS])
AC_MSG_RESULT([FFLAGS = $FFLAGS])
AC_MSG_RESULT([INCLUDES = $INCLUDES])
AC_MSG_RESULT([LDFLAGS = $LDFLAGS])
AC_MSG_RESULT([LIBS = $LIBS])
AC_MSG_RESULT([HDF5ROOT = $HDF5ROOT])
AC_MSG_RESULT([ ])
+51
View File
@@ -0,0 +1,51 @@
#include <stdlib.h>
#include <assert.h>
#include <mpi.h>
#include <H5Part.h>
#define DATASIZE 32
int main(int argc, char** argv)
{
int i, rank, nprocs;
h5part_int32_t data[DATASIZE];
h5part_int64_t stat;
H5PartFile *file;
// initialize MPI
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
H5PartSetVerbosityLevel(H5PART_VERB_DEBUG);
char filename[8];
sprintf (filename, "%d.h5", rank);
file = H5PartOpenFileParallel(
filename,
H5PART_WRITE | H5PART_VFD_CORE,
MPI_COMM_SELF);
assert (file != NULL);
stat = H5PartSetStep(file, 0);
assert (stat == H5PART_SUCCESS);
stat = H5PartSetNumParticles(file, DATASIZE);
assert (stat == H5PART_SUCCESS);
// create fake data
for (i=0; i<DATASIZE; i++) {
data[i] = i + rank * DATASIZE;
}
// write the data
stat = H5PartWriteDataInt32(file, "data", data);
assert (stat == H5PART_SUCCESS);
H5PartCloseFile(file);
MPI_Finalize();
return EXIT_SUCCESS;
}
+45
View File
@@ -0,0 +1,45 @@
#include <stdlib.h>
#include <assert.h>
#include <mpi.h>
#include <H5Part.h>
#define XSIZE 8
#define YSIZE 8
#define ZSIZE 8
#define DATASIZE XSIZE*YSIZE*ZSIZE
#define H5OpenFileParallel H5PartOpenFileParallel
#define H5SetStep H5PartSetStep
#define H5Block3dSetLayout H5BlockDefine3DFieldLayout
#define H5CloseFile H5PartCloseFile
int main(int argc, char** argv)
{
int rank, nprocs;
h5part_float64_t ex[DATASIZE];
h5part_float64_t ey[DATASIZE];
h5part_float64_t ez[DATASIZE];
h5part_float64_t q[DATASIZE];
h5part_int64_t nparticles = DATASIZE;
H5PartFile *file;
// initialize MPI
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
H5PartSetVerbosityLevel(H5PART_VERB_DEBUG);
file = H5OpenFileParallel("fields.h5", H5PART_WRITE, MPI_COMM_WORLD);
H5SetStep(file, 0);
H5Block3dSetLayout(file,
rank*XSIZE, (rank+1)*XSIZE - 1,
0, YSIZE - 1,
0, ZSIZE - 1);
H5Block3dWriteScalarFieldFloat64(file, "Q", q);
H5Block3dWrite3dVectorFieldFloat64(file, "E", ex, ez, ey);
H5CloseFile(file);
MPI_Finalize();
return EXIT_SUCCESS;
}
+41
View File
@@ -0,0 +1,41 @@
#include <stdlib.h>
#include <assert.h>
#include <mpi.h>
#include <H5Part.h>
#define DATASIZE 32
int main(int argc, char** argv)
{
int rank, nprocs;
h5part_float64_t x[DATASIZE];
h5part_float64_t y[DATASIZE];
h5part_float64_t z[DATASIZE];
h5part_float64_t px[DATASIZE];
h5part_float64_t py[DATASIZE];
h5part_float64_t pz[DATASIZE];
h5part_int64_t nparticles = DATASIZE;
H5PartFile *file;
// initialize MPI
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
H5PartSetVerbosityLevel(H5PART_VERB_DEBUG);
file = H5PartOpenFileParallel("particles.h5", H5PART_WRITE, MPI_COMM_WORLD);
H5PartSetStep(file, 0);
H5PartSetNumParticles(file, nparticles);
H5PartWriteDataFloat64(file, "x", x);
H5PartWriteDataFloat64(file, "y", y);
H5PartWriteDataFloat64(file, "z", z);
H5PartWriteDataFloat64(file, "px", px);
H5PartWriteDataFloat64(file, "py", py);
H5PartWriteDataFloat64(file, "pz", pz);
H5PartCloseFile(file);
MPI_Finalize();
return EXIT_SUCCESS;
}
+7
View File
@@ -8,12 +8,15 @@ program H5PartTest
integer*8 :: file_id, status, npoints, i
real*8, allocatable :: particles(:)
integer*8, allocatable :: id(:)
real*8 :: r8val
integer*8 :: i8val
comm = MPI_COMM_WORLD
call mpi_init(ierr)
call mpi_comm_rank(comm, rank, ierr)
! open the a file for parallel writing
file_id = h5pt_set_verbosity_level(5)
file_id = h5pt_openw_par('test.h5', comm)
! in the Fortran API, time steps start at 1
@@ -22,6 +25,10 @@ program H5PartTest
! write an attribute to the file
status = h5pt_writefileattrib_string(file_id, 'desc', 'This is a test.')
r8val = 0.5
i8val = 1
status = h5pt_writefileattrib_r8(file_id, 'double', r8val, i8val)
! create fake data
npoints = 99
allocate(particles(npoints), id(npoints))
+4 -4
View File
@@ -365,7 +365,7 @@ h5bl_has_fielddata (
}
h5part_int64_t
h5b_3d_get_field_spacing (
h5bl_3d_get_field_spacing (
h5part_int64_t *f,
const char *field_name,
h5part_float64_t *x,
@@ -386,7 +386,7 @@ h5b_3d_get_field_spacing (
}
h5part_int64_t
h5b_3d_set_field_spacing (
h5bl_3d_set_field_spacing (
h5part_int64_t *f,
const char *field_name,
const h5part_float64_t *x,
@@ -407,7 +407,7 @@ h5b_3d_set_field_spacing (
}
h5part_int64_t
h5b_3d_get_field_origin (
h5bl_3d_get_field_origin (
h5part_int64_t *f,
const char *field_name,
h5part_float64_t *x,
@@ -428,7 +428,7 @@ h5b_3d_get_field_origin (
}
h5part_int64_t
h5b_3d_set_field_origin (
h5bl_3d_set_field_origin (
h5part_int64_t *f,
const char *field_name,
const h5part_float64_t *x,
+2 -2
View File
@@ -567,10 +567,10 @@ _halo_exchange_buffers (
ibufsize = (int)bufsize;
if ( (h5part_int64_t)ibufsize != bufsize ) return HANDLE_MPI_INT64_ERR;
send_buffer = malloc ( bufsize );
send_buffer = (char*) malloc ( bufsize );
if ( send_buffer == NULL ) return HANDLE_H5PART_NOMEM_ERR;
recv_buffer = malloc ( bufsize );
recv_buffer = (char*) malloc ( bufsize );
if ( recv_buffer == NULL ) return HANDLE_H5PART_NOMEM_ERR;
/* forward */
+75 -95
View File
@@ -199,7 +199,7 @@ _H5Part_open_file (
{
/* extend the btree size so that metadata pieces are
* close to the alignment value */
if ( align > 0 )
if ( align > 16384 )
{
unsigned int btree_ik = (align - 4096) / 96;
unsigned int btree_bytes = 64 + 96*btree_ik;
@@ -252,7 +252,7 @@ _H5Part_open_file (
}
} else if (flags & H5PART_VFD_CORE) {
_H5Part_print_info ( "Selecting CORE VFD" );
if (H5Pset_fapl_core ( f->access_prop, comm, 0 ) < 0) {
if (H5Pset_fapl_core ( f->access_prop, align, 1 ) < 0) {
HANDLE_H5P_SET_FAPL_ERR;
goto error_cleanup;
}
@@ -291,9 +291,9 @@ _H5Part_open_file (
if ( align != 0 ) {
_H5Part_print_info (
"Setting HDF5 alignment to %ld bytes",
"Setting HDF5 alignment to %ld bytes with threshold at half that many bytes",
align );
if (H5Pset_alignment ( f->access_prop, 0, align ) < 0) {
if (H5Pset_alignment ( f->access_prop, align/2, align ) < 0) {
HANDLE_H5P_SET_FAPL_ERR;
goto error_cleanup;
}
@@ -713,7 +713,11 @@ _set_num_particles (
register int i;
#endif
#ifdef PARALLEL_IO
if ( nparticles < 0 )
#else
if ( nparticles <= 0 )
#endif
return HANDLE_H5PART_INVALID_ERR ( "nparticles", nparticles );
/* prevent invalid stride value */
@@ -726,6 +730,8 @@ _set_num_particles (
stride = (hsize_t) _stride;
}
if ( nparticles == 0 ) stride = 1;
#ifndef PARALLEL_IO
/*
if we are not using parallel-IO, there is enough information
@@ -751,11 +757,14 @@ _set_num_particles (
f->nparticles = (hsize_t) nparticles;
/* declare local memory datasize with striding */
count = f->nparticles * stride;
f->memshape = H5Screate_simple ( 1, &count, &dmax );
if ( f->memshape < 0 )
return HANDLE_H5S_CREATE_SIMPLE_ERR ( f->nparticles );
if ( f->nparticles > 0 )
{
/* declare local memory datasize with striding */
count = f->nparticles * stride;
f->memshape = H5Screate_simple ( 1, &count, &dmax );
if ( f->memshape < 0 )
return HANDLE_H5S_CREATE_SIMPLE_ERR ( f->nparticles );
}
/* we need a hyperslab selection if there is striding
* (otherwise, the default H5S_ALL selection is ok)
@@ -796,7 +805,7 @@ _set_num_particles (
*/
ret = MPI_Allgather (
&nparticles, 1, MPI_LONG_LONG,
(void*)&nparticles, 1, MPI_LONG_LONG,
f->pnparticles, 1, MPI_LONG_LONG,
f->comm );
if ( ret != MPI_SUCCESS) return HANDLE_MPI_ALLGATHER_ERR;
@@ -833,12 +842,16 @@ _set_num_particles (
count = nparticles;
stride = 1;
herr = H5Sselect_hyperslab (
f->diskshape,
H5S_SELECT_SET,
&start,
&stride,
&count, NULL );
if ( count > 0 ) {
herr = H5Sselect_hyperslab (
f->diskshape,
H5S_SELECT_SET,
&start,
&stride,
&count, NULL );
} else {
herr = H5Sselect_none ( f->diskshape );
}
if ( herr < 0 ) return HANDLE_H5S_SELECT_HYPERSLAB_ERR;
#endif
@@ -1634,9 +1647,9 @@ H5PartWriteStepAttrib (
h5part_int64_t herr = _H5Part_write_step_attrib (
f,
name,
(const hid_t)type,
(hid_t)type,
data,
nelem );
(hsize_t)nelem );
if ( herr < 0 ) return herr;
return H5PART_SUCCESS;
@@ -1678,9 +1691,9 @@ H5PartWriteFileAttrib (
h5part_int64_t herr = _H5Part_write_file_attrib (
f,
name,
(const hid_t)type,
(hid_t)type,
data,
nelem );
(hsize_t)nelem );
if ( herr < 0 ) return herr;
return H5PART_SUCCESS;
@@ -2269,7 +2282,12 @@ _H5Part_get_num_objects_matching_pattern (
data.pattern = pattern;
#ifdef H5PART_HAVE_HDF5_18
hid_t child_id = H5Gopen( group_id, group_name, H5P_DEFAULT );
hid_t child_id = H5Gopen( group_id, group_name
#ifndef H5_USE_16_API
, H5P_DEFAULT
#endif
);
if ( child_id < 0 ) return child_id;
herr = H5Literate( child_id, H5_INDEX_NAME, H5_ITER_INC, 0,
_H5Part_iteration_operator2, &data );
@@ -2314,7 +2332,11 @@ _H5Part_get_object_name (
data.len = (size_t)len_obj_name;
#ifdef H5PART_HAVE_HDF5_18
hid_t child_id = H5Gopen ( group_id, group_name, H5P_DEFAULT );
hid_t child_id = H5Gopen ( group_id, group_name
#ifndef H5_USE_16_API
, H5P_DEFAULT
#endif
);
if ( child_id < 0 ) return child_id;
herr = H5Literate ( child_id, H5_INDEX_NAME, H5_ITER_INC, 0,
_H5Part_iteration_operator2, &data );
@@ -2567,7 +2589,30 @@ _H5Part_get_num_particles (
0,
dataset_name, H5PART_DATANAME_LEN );
if ( herr < 0 ) return herr;
/* returns 0 if there are no datasets on disk */
/* if a view exists, use its size as the number of particles */
if ( _H5Part_has_view ( f ) )
{
nparticles = H5Sget_select_npoints ( f->diskshape );
if ( nparticles < 0 ) return HANDLE_H5S_GET_SELECT_NPOINTS_ERR;
_H5Part_print_debug (
"Found %lld points with H5Sget_select_npoints",
(long long)nparticles );
#if 0 // this does not work for indices
/* double check that the size of the diskshape agrees with
* the size of the view */
if ( nparticles != f->viewend - f->viewstart + 1 ) {
_H5Part_print_warn (
"Number of particles (%lld) does not agree "
"with view range.", (long long)nparticles );
return HANDLE_H5PART_BAD_VIEW_ERR (
f->viewstart, f->viewend);
}
#endif
}
/* herr is 0 if there are no datasets on disk */
else if ( herr == 0 )
{
/* try to recover number of particles from a previous
@@ -2596,29 +2641,6 @@ _H5Part_get_num_particles (
return 0;
}
}
/* if a view exists, use its size as the number of particles */
if ( _H5Part_has_view ( f ) )
{
nparticles = H5Sget_select_npoints ( f->diskshape );
if ( nparticles < 0 ) return HANDLE_H5S_GET_SELECT_NPOINTS_ERR;
_H5Part_print_debug (
"Found %lld points with H5Sget_select_npoints",
(long long)nparticles );
#if 0 // this does not work for indices
/* double check that the size of the diskshape agrees with
* the size of the view */
if ( nparticles != f->viewend - f->viewstart + 1 ) {
_H5Part_print_warn (
"Number of particles (%lld) does not agree "
"with view range.", (long long)nparticles );
return HANDLE_H5PART_BAD_VIEW_ERR (
f->viewstart, f->viewend);
}
#endif
}
/* otherwise, report all particles on disk in the first dataset
* for this timestep */
else
@@ -2772,10 +2794,7 @@ _set_view (
end==-1 to mean end of file
*/
total = (hsize_t) _H5Part_get_num_particles ( f );
if ( total < 0 ) {
return HANDLE_H5PART_GET_NUM_PARTICLES_ERR ( total );
}
else if ( total == 0 ) {
if ( total == 0 ) {
/* No datasets have been created yet and no veiws are set.
* We have to leave the view empty because we don't know how
* many particles there should be! */
@@ -2840,9 +2859,9 @@ _set_view_indices (
herr = _reset_view ( f );
if ( herr < 0 ) return herr;
if ( indices == NULL ) {
if ( indices == NULL || nelems < 0 ) {
_H5Part_print_warn (
"View indices array is null: reseting view." );
"View indices array is null or size is < 0: reseting view." );
return H5PART_SUCCESS;
}
@@ -2854,10 +2873,7 @@ _set_view_indices (
end==-1 to mean end of file
*/
total = (hsize_t) _H5Part_get_num_particles ( f );
if ( total < 0 ) {
return HANDLE_H5PART_GET_NUM_PARTICLES_ERR ( total );
}
else if ( total == 0 ) {
if ( total == 0 ) {
/* No datasets have been created yet and no veiws are set.
* We have to leave the view empty because we don't know how
* many particles there should be! */
@@ -2868,15 +2884,7 @@ _set_view_indices (
if ( total == 0 ) return H5PART_SUCCESS;
/* check length of list */
if ( nelems < 0 ) {
_H5Part_print_warn (
"Array of view indices has length < 0: "
"resetting view.");
f->nparticles = 0;
} else {
f->nparticles = (hsize_t) nelems;
}
f->nparticles = (hsize_t) nelems;
/* declare overall data size but then will select a subset */
f->diskshape = H5Screate_simple ( 1, &total, NULL );
@@ -2982,34 +2990,6 @@ H5PartSetViewIndices (
return _set_view_indices ( f, indices, nelems );
}
/*!
\ingroup h5part_model
In MPI-IO collective mode, all MPI tasks must participate in I/O
operations. \c H5PartSetViewEmpty() allows a task to participate
but with an empty view of the file, so that it contributes no data
to the I/O operation.
\return \c H5PART_SUCCESS or error code
*/
h5part_int64_t
H5PartSetViewEmpty (
H5PartFile *f /*!< [in] Handle to open file */
) {
SET_FNAME ( "H5PartSetViewEmpty" );
CHECK_FILEHANDLE( f );
if ( f->timegroup < 0 ) {
h5part_int64_t herr = _H5Part_set_step ( f, 0 );
if ( herr < 0 ) return herr;
}
/* using a null indices list will set an empty view */
return _set_view_indices ( f, NULL, 0 );
}
/*!
\ingroup h5part_model
@@ -3157,7 +3137,7 @@ _read_data (
) {
h5part_int64_t herr;
hsize_t ndisk, nread, nmem;
hssize_t ndisk, nread, nmem;
hid_t dataset_id;
hid_t space_id;
hid_t memspace_id;
@@ -3219,7 +3199,7 @@ _read_data (
if ( f->memshape != H5S_ALL )
{
nmem = H5Sget_select_npoints ( f->memshape );
nmem = H5Sget_simple_extent_npoints ( f->memshape );
if ( nmem < 0 ) return HANDLE_H5S_GET_SELECT_NPOINTS_ERR;
/* make sure the memory space selected by the view has
-8
View File
@@ -265,14 +265,6 @@ INTEGER*8 FUNCTION h5pt_setview_indices (filehandle,indices,nelem)
INTEGER*8, INTENT(IN) :: nelem !< number of particles in the list
END FUNCTION
!> \ingroup h5partf_model
!! See \ref H5PartSetViewEmpty
!! \return 0 on success or error code
!<
INTEGER*8 FUNCTION h5pt_setview_empty (filehandle)
INTEGER*8, INTENT(IN) :: filehandle !< the handle returned during file open
END FUNCTION
!> \ingroup h5partf_model
!! See \ref H5PartResetView
!! \return 0 on success or error code
+2 -7
View File
@@ -16,10 +16,10 @@ extern "C" {
#include "H5MultiBlock.h"
#endif
#define H5PART_VER_STRING "1.6.2"
#define H5PART_VER_STRING "1.6.5"
#define H5PART_VER_MAJOR 1
#define H5PART_VER_MINOR 6
#define H5PART_VER_RELEASE 2
#define H5PART_VER_RELEASE 5
/* error values */
#define H5PART_SUCCESS 0
@@ -220,11 +220,6 @@ H5PartSetViewIndices (
h5part_int64_t nelems /*!< [in] Size of list */
);
h5part_int64_t
H5PartSetViewEmpty (
H5PartFile *f
);
h5part_int64_t
H5PartGetView (
H5PartFile *f,
+30 -30
View File
@@ -23,7 +23,7 @@ h5pt_writefileattrib_r8 (
h5part_int64_t *f,
const char *name,
const h5part_float64_t *data,
const h5part_float64_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -39,9 +39,9 @@ h5pt_writefileattrib_r8 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writefileattrib_r8 F77NAME ( \
h5pt_writefileattrib_r8_, \
H5PT_WRITEFILEATTRIB_R8 )
#define h5pt_readfileattrib_r8 F77NAME ( \
h5pt_readfileattrib_r8_, \
H5PT_READFILEATTRIB_R8 )
#endif
h5part_int64_t
@@ -74,7 +74,7 @@ h5pt_writefileattrib_r4 (
h5part_int64_t *f,
const char *name,
const h5part_float32_t *data,
const h5part_float32_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -90,9 +90,9 @@ h5pt_writefileattrib_r4 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writefileattrib_r4 F77NAME ( \
h5pt_writefileattrib_r4_, \
H5PT_WRITEFILEATTRIB_R4 )
#define h5pt_readfileattrib_r4 F77NAME ( \
h5pt_readfileattrib_r4_, \
H5PT_READFILEATTRIB_R4 )
#endif
h5part_int64_t
@@ -141,9 +141,9 @@ h5pt_writefileattrib_i8 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writefileattrib_i8 F77NAME ( \
h5pt_writefileattrib_i8_, \
H5PT_WRITEFILEATTRIB_I8 )
#define h5pt_readfileattrib_i8 F77NAME ( \
h5pt_readfileattrib_i8_, \
H5PT_READFILEATTRIB_I8 )
#endif
h5part_int64_t
@@ -176,7 +176,7 @@ h5pt_writefileattrib_i4 (
h5part_int64_t *f,
const char *name,
const h5part_int32_t *data,
const h5part_int32_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -192,9 +192,9 @@ h5pt_writefileattrib_i4 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writefileattrib_i4 F77NAME ( \
h5pt_writefileattrib_i4_, \
H5PT_WRITEFILEATTRIB_I4 )
#define h5pt_readfileattrib_i4 F77NAME ( \
h5pt_readfileattrib_i4_, \
H5PT_READFILEATTRIB_I4 )
#endif
h5part_int64_t
@@ -227,7 +227,7 @@ h5pt_writestepattrib_r8 (
h5part_int64_t *f,
const char *name,
const h5part_float64_t *data,
const h5part_float64_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -243,9 +243,9 @@ h5pt_writestepattrib_r8 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writestepattrib_r8 F77NAME ( \
h5pt_writestepattrib_r8_, \
H5PT_WRITESTEPATTRIB_R8 )
#define h5pt_readstepattrib_r8 F77NAME ( \
h5pt_readstepattrib_r8_, \
H5PT_READSTEPATTRIB_R8 )
#endif
h5part_int64_t
@@ -278,7 +278,7 @@ h5pt_writestepattrib_r4 (
h5part_int64_t *f,
const char *name,
const h5part_float32_t *data,
const h5part_float32_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -294,9 +294,9 @@ h5pt_writestepattrib_r4 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writestepattrib_r4 F77NAME ( \
h5pt_writestepattrib_r4_, \
H5PT_WRITESTEPATTRIB_R4 )
#define h5pt_readstepattrib_r4 F77NAME ( \
h5pt_readstepattrib_r4_, \
H5PT_READSTEPATTRIB_R4 )
#endif
h5part_int64_t
@@ -345,9 +345,9 @@ h5pt_writestepattrib_i8 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writestepattrib_i8 F77NAME ( \
h5pt_writestepattrib_i8_, \
H5PT_WRITESTEPATTRIB_I8 )
#define h5pt_readstepattrib_i8 F77NAME ( \
h5pt_readstepattrib_i8_, \
H5PT_READSTEPATTRIB_I8 )
#endif
h5part_int64_t
@@ -380,7 +380,7 @@ h5pt_writestepattrib_i4 (
h5part_int64_t *f,
const char *name,
const h5part_int32_t *data,
const h5part_int32_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -396,9 +396,9 @@ h5pt_writestepattrib_i4 (
}
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_writestepattrib_i4 F77NAME ( \
h5pt_writestepattrib_i4_, \
H5PT_WRITESTEPATTRIB_I4 )
#define h5pt_readstepattrib_i4 F77NAME ( \
h5pt_readstepattrib_i4_, \
H5PT_READSTEPATTRIB_I4 )
#endif
h5part_int64_t
+1 -14
View File
@@ -100,9 +100,6 @@
#define h5pt_setview_indices F77NAME ( \
h5pt_setview_indices_, \
H5PT_SETVIEW_INDICES )
#define h5pt_setview_empty F77NAME ( \
h5pt_setview_empty_, \
H5PT_SETVIEW_EMPTY )
#define h5pt_resetview F77NAME ( \
h5pt_resetview_, \
H5PT_RESETVIEW )
@@ -626,7 +623,7 @@ h5pt_setview (
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
return H5PartSetView ( filehandle, *start, *end );
return H5PartSetView ( filehandle, (*start)-1, (*end)-1 );
}
h5part_int64_t
@@ -641,16 +638,6 @@ h5pt_setview_indices (
return H5PartSetViewIndices ( filehandle, indices, *nelem );
}
h5part_int64_t
h5pt_setview_empty (
const h5part_int64_t *f
) {
H5PartFile *filehandle = (H5PartFile*)(size_t)*f;
return H5PartSetViewEmpty ( filehandle );
}
h5part_int64_t
h5pt_resetview (
const h5part_int64_t *f
+18
View File
@@ -116,6 +116,24 @@ _H5Part_write_attrib (
const hsize_t attrib_nelem
);
h5part_int64_t
_H5Part_write_file_attrib (
H5PartFile *f,
const char *name,
const hid_t type,
const void *value,
const hsize_t nelem
);
h5part_int64_t
_H5Part_write_step_attrib (
H5PartFile *f,
const char *name,
const hid_t type,
const void *value,
const hsize_t nelem
);
h5part_int64_t
_H5Part_get_attrib_info (
hid_t id,
+1 -3
View File
@@ -19,11 +19,9 @@ __attribute__ ((format (printf, 3, 4)))
#endif
;
#ifndef MPI_INCLUDED
#ifndef OPEN_MPI
#ifndef PARALLEL_IO
typedef unsigned long MPI_Comm;
#endif
#endif
#define H5PART_STEPNAME_LEN 64
#define H5PART_DATANAME_LEN 64
+13 -14
View File
@@ -2,8 +2,6 @@
OBJEXT=o
INCLUDES = -I@HDF5ROOT@/include @MPIINC@
EXTRA_HEADERS = H5PartPrivate.h \
H5BlockPrivate.h \
H5MultiBlockPrivate.h \
@@ -25,10 +23,10 @@ EXTRA_DIST = TestUnderscoreC.c \
nodist_include_HEADERS = H5PartF.h @UNDERSCORE_H@
# What to build... Will be determined by configure script.
lib_LIBRARIES = @MTARGET@
lib_LTLIBRARIES = libH5Part.la @LIB_FORTRAN@
# Listing of all possible targets that I may build.
EXTRA_LIBRARIES = libH5Part.a libH5PartF.a
EXTRA_LTLIBRARIES = libH5PartF.la
# Header files that I wish to install in $(prefix)/include
include_HEADERS = H5Part.h \
@@ -47,27 +45,28 @@ include_HEADERS = H5Part.h \
@UNDERSCORE_H@
# Listing of sources
libH5Part_a_SOURCES = H5Part.c \
libH5Part_la_SOURCES = H5Part.c \
H5PartAttrib.c \
H5Block.c \
H5BlockReadWrite.c \
H5MultiBlock.c \
H5MultiBlockReadWrite.c
libH5PartF_a_SOURCES = $(libH5Part_a_SOURCES) \
libH5Part_la_LDFLAGS = -version-info 0:0:0
libH5PartF_la_SOURCES = H5Part.c \
H5PartAttrib.c \
H5Block.c \
H5BlockReadWrite.c \
H5MultiBlock.c \
H5MultiBlockReadWrite.c \
H5PartF.c \
H5PartAttribF.c \
H5BlockF.c \
H5BlockReadWriteF.c
libH5PartF_la_LDFLAGS = -version-info 0:0:0 -rpath '$(libdir)'
H5PartF.h: H5Part.f90 H5PartAttrib.f90 H5Block.f90 H5BlockReadWrite.f90
awk '/INTEGER\*8 FUNCTION/{print "\t" $$1 " " $$3}' $^ >$@
libpH5Part.a: libH5Part.a
$(RM) $@
ln -s $^ $@
libpH5PartF.a: libH5PartF.a
$(RM) $@
ln -s $^ $@
+4 -4
View File
@@ -113,7 +113,7 @@ h5pt_write#LEVELLC#attrib_#TYPE_F90_ABV# (
h5part_int64_t *f,
const char *name,
const h5part_#TYPE_H5P#_t *data,
const h5part_#TYPE_H5P#_t *nelem,
const h5part_int64_t *nelem,
const int l_name
) {
@@ -143,9 +143,9 @@ END FUNCTION
read_attr_fc = """
#if ! defined(F77_NO_UNDERSCORE)
#define h5pt_write#LEVELLC#attrib_#TYPE_F90_ABV# F77NAME ( \\
h5pt_write#LEVELLC#attrib_#TYPE_F90_ABV#_, \\
H5PT_WRITE#LEVELUC#ATTRIB_#TYPE_F90_ABVC# )
#define h5pt_read#LEVELLC#attrib_#TYPE_F90_ABV# F77NAME ( \\
h5pt_read#LEVELLC#attrib_#TYPE_F90_ABV#_, \\
H5PT_READ#LEVELUC#ATTRIB_#TYPE_F90_ABVC# )
#endif
h5part_int64_t
+7 -8
View File
@@ -2,15 +2,12 @@
OBJEXT=o
HDFLIB = -L@HDF5ROOT@/lib -lhdf5 -lz @SZLIB@
LIBS = -L@H5P_LIB_LOC@ @H5P_LIB_NAME@ $(HDFLIB) -lm
INCLUDES = -I../src @INCLUDES@
INCLUDES = -I@H5P_LIB_LOC@ -I@HDF5ROOT@/include @MPIINC@
noinst_PROGRAMS = @TTARGET@
noinst_PROGRAMS = @BUILD_TESTS@
TESTS_ENVIRONMENT = env LD_LIBRARY_PATH=@HDF5ROOT@/lib:$(LD_LIBRARY_PATH)
TESTS = @TTARGET@
TESTS = @BUILD_TESTS@
EXTRA_PROGRAMS = test testf
@@ -20,9 +17,11 @@ test_SOURCES = test.c \
read.c \
testframe.h \
params.h
test_LDADD = ../src/libH5Part.la
testf_SOURCES = testf.F90
testf_LDADD = ../src/libH5PartF.la
clean: clean-am
rm -f *.h5
clean-local:
$(RM) -f *.h5
+28 -22
View File
@@ -1,3 +1,4 @@
#include <string.h>
#include <H5Part.h>
#include "testframe.h"
@@ -175,10 +176,6 @@ test_read_data64(H5PartFile *file, int nparticles, int step)
status = H5PartSetView(file, start, end);
RETURN(status, H5PART_SUCCESS, "H5PartSetView");
status = H5PartReadDataFloat64(file, "x", x);
RETURN(status, H5PART_SUCCESS, "H5PartReadDataFloat64");
FVALUE(x[rank], (double)(start+rank+nparticles*t), "x data");
val = H5PartGetView(file, &start, &end);
IVALUE(val, nprocs*nparticles-start, "particle count");
IVALUE(start, rank, "view start");
@@ -187,51 +184,60 @@ test_read_data64(H5PartFile *file, int nparticles, int step)
status = H5PartSetView(file, -1, -1);
RETURN(status, H5PART_SUCCESS, "H5PartSetView");
status = H5PartSetView(file, 0, nparticles-1);
RETURN(status, H5PART_SUCCESS, "H5PartSetView");
val = H5PartGetNumParticles(file);
IVALUE(val, nparticles, "particle count");
status = H5PartReadDataFloat64(file, "x", x);
RETURN(status, H5PART_SUCCESS, "H5PartReadDataFloat64");
IVALUE(x[rank], (double)(rank+nparticles*t), "x data");
status = H5PartResetView(file);
RETURN(status, H5PART_SUCCESS, "H5PartResetView");
val = H5PartGetNumParticles(file);
IVALUE(val, nprocs*nparticles, "particle count");
indices[0] = rank*2 + 0;
indices[1] = rank*2 + 3;
indices[2] = rank*2 + 9;
indices[3] = rank*2 + 7;
status = H5PartSetViewIndices(file, indices, -1);
RETURN(status, H5PART_SUCCESS, "H5PartSetViewIndices");
status = H5PartReadDataFloat64(file, "x", x);
RETURN(status, H5PART_SUCCESS, "H5PartReadDataFloat64");
FVALUE(x[2*rank], (double)(2*rank+nparticles*t), "x data");
status = H5PartResetView(file);
RETURN(status, H5PART_SUCCESS, "H5PartResetView");
status = H5PartSetViewIndices(file, indices, 4);
RETURN(status, H5PART_SUCCESS, "H5PartSetViewIndices");
val = H5PartGetNumParticles(file);
IVALUE(val, 4, "particle count");
status = H5PartReadDataFloat64(file, "x", x);
double x2[4];
status = H5PartReadDataFloat64(file, "x", x2);
RETURN(status, H5PART_SUCCESS, "H5PartReadDataFloat64");
FVALUE(x[2], (double)(rank*2+9+nparticles*t), "x data");
FVALUE(x2[0], (double)(2*rank+0+nparticles*t), "x data");
FVALUE(x2[1], (double)(2*rank+3+nparticles*t), "x data");
FVALUE(x2[2], (double)(2*rank+9+nparticles*t), "x data");
FVALUE(x2[3], (double)(2*rank+7+nparticles*t), "x data");
val = H5PartGetNumParticles(file);
IVALUE(val, 4, "particle count");
status = H5PartSetViewIndices(file, NULL, 4);
status = H5PartSetViewIndices(file, indices, -1);
RETURN(status, H5PART_SUCCESS, "H5PartSetViewIndices");
status = H5PartReadDataFloat64(file, "x", x);
RETURN(status, H5PART_SUCCESS, "H5PartReadDataFloat64");
val = H5PartGetNumParticles(file);
IVALUE(val, nprocs*nparticles, "particle count");
status = H5PartSetCanonicalView(file);
RETURN(status, H5PART_SUCCESS, "H5PartSetCanonicalView");
val = H5PartGetNumParticles(file);
IVALUE(val, nparticles, "particle count");
status = H5PartReadParticleStep (
file, t, x, y, z, px, py, pz, id);
RETURN(status, H5PART_SUCCESS, "H5PartReadParticleStep");
status = H5PartSetViewIndices(file, NULL, 4);
RETURN(status, H5PART_SUCCESS, "H5PartSetViewIndices");
for (i=0; i<nparticles; i++)
{
FVALUE(x[i] , 0.0 + (double)(i+nparticles*t), " x data");
+5 -5
View File
@@ -7,9 +7,9 @@ program H5PartTest
include 'H5PartF.h'
#ifdef PARALLEL_IO
integer :: comm, ierr, i
integer*8 :: file_id, status, npoints
integer :: comm, ierr
#endif
integer*8 :: file_id, status, npoints, i
real*8, allocatable :: x(:),y(:),z(:),px(:),py(:),pz(:)
integer*8, allocatable :: id(:)
@@ -18,10 +18,10 @@ program H5PartTest
comm = MPI_COMM_WORLD
#endif
! this enables level 3 ("info") messages to be
! this enables level 4 ("debug") messages to be
! printed by the H5Part library
! (3_8 is the literal for an integer*8 with value 3)
status = h5pt_set_verbosity_level (3_8)
! (4_8 is the literal for an integer*8 with value 4)
status = h5pt_set_verbosity_level (4_8)
! open the a file called 'test.h5' in parallel for writing
#ifdef PARALLEL_IO
+2 -2
View File
@@ -536,7 +536,7 @@ TestPrintf(const char *format, ...)
int nproc;
MPI_Comm_rank(MPI_COMM_WORLD, &nproc);
if ( nproc == 0 || VERBOSE_HI ) {
char *format2 = malloc(strlen(format)+8);
char *format2 = (char*)malloc(strlen(format)+8);
sprintf(format2, "[%d] %s", nproc, format);
va_start(arglist, format);
ret_value = vprintf(format2, arglist);
@@ -570,7 +570,7 @@ TestErrPrintf(const char *format, ...)
int nproc;
MPI_Comm_rank(MPI_COMM_WORLD, &nproc);
if ( nproc == 0 || VERBOSE_HI ) {
char *format2 = malloc(strlen(format)+8);
char *format2 = (char*)malloc(strlen(format)+8);
sprintf(format2, "[%d] %s", nproc, format);
va_start(arglist, format);
ret_value = vfprintf(stderr, format2, arglist);
+2
View File
@@ -6,6 +6,8 @@
#ifndef _H5PART_TESTFRAME_H_
#define _H5PART_TESTFRAME_H_
#include <string.h>
#ifdef PARALLEL_IO
#define OPEN(file,mode) \
H5PartOpenFileParallel(file,mode,MPI_COMM_WORLD)
+14 -8
View File
@@ -2,10 +2,7 @@
OBJEXT=o
HDFLIB = -L@HDF5ROOT@/lib -lhdf5 -lz @SZLIB@
LIBS = -L@H5P_LIB_LOC@ @H5P_LIB_NAME@ $(HDFLIB) -lm @STDCXX@
INCLUDES = -I@H5P_LIB_LOC@ -I@HDF5ROOT@/include @MPIINC@
INCLUDES = -I../src @INCLUDES@
# What to build... make install will place these files in the $(prefix)/bin directory.
bin_PROGRAMS = @BUILD_TOOLS@
@@ -19,8 +16,17 @@ EXTRA_PROGRAMS = h5pAttrib \
# Listing of sources
h5pAttrib_SOURCES = h5pAttrib.cc
h5pToGNUplot_SOURCES = h5pToGNUplot.cc
homdynToH5p_SOURCES = homdynToH5p.cc
H5PartBench_SOURCES = H5PartBench.c
H5BlockBench_SOURCES = H5BlockBench.c
h5pAttrib_LDADD = ../src/libH5Part.la
h5pToGNUplot_SOURCES = h5pToGNUplot.cc
h5pToGNUplot_LDADD = ../src/libH5Part.la
homdynToH5p_SOURCES = homdynToH5p.cc
homdynToH5p_LDADD = ../src/libH5Part.la
H5PartBench_SOURCES = H5PartBench.c
H5PartBench_LDADD = ../src/libH5Part.la
H5BlockBench_SOURCES = H5BlockBench.c
H5BlockBench_LDADD = ../src/libH5Part.la