diff --git a/src/H5Block.c b/src/H5Block.c
index e52eb97..f484031 100644
--- a/src/H5Block.c
+++ b/src/H5Block.c
@@ -724,6 +724,11 @@ _release_hyperslab (
Define the field layout given the dense index space at the actual
time step.
+ This routine uses an MPI_Allgather, so at large concurrency it should
+ be called as infrequently as possible. For instance, if several timesteps
+ use the same field dimensions, set the layout only once before the
+ first timestep.
+
\return \c H5PART_SUCCESS on success
\c H5PART_ERR_MPI
\c H5PART_ERR_HDF5
diff --git a/test/testframe.c b/test/testframe.c
index 8d83a5c..d4fb73b 100644
--- a/test/testframe.c
+++ b/test/testframe.c
@@ -31,6 +31,7 @@
#include
#include
#include "testframe.h"
+#include "../src/H5PartPrivate.h"
/*
* Definitions for the testing structure.
@@ -652,6 +653,7 @@ test_is_valid(H5PartFile *file)
void
test_open_objects(H5PartFile *file, int max_objects)
{
+#ifndef H5_USE_16_API
ssize_t nopen = H5Fget_obj_count(file->file, H5F_OBJ_ALL);
if (nopen > max_objects)
{
@@ -682,5 +684,6 @@ test_open_objects(H5PartFile *file, int max_objects)
}
free(list);
}
+#endif
}
diff --git a/test/write.c b/test/write.c
index 6eea189..e596459 100644
--- a/test/write.c
+++ b/test/write.c
@@ -198,7 +198,7 @@ static void
test_write_data32(H5PartFile *file, int nparticles, int step)
{
int i,t;
- h5part_int32_t status;
+ h5part_int32_t status, val;
int rank, nprocs;
float *x,*y,*z;
@@ -244,8 +244,11 @@ test_write_data32(H5PartFile *file, int nparticles, int step)
id[i] = i + nparticles*t;
}
- status = H5PartSetStep(file, t);
- RETURN(status, H5PART_SUCCESS, "H5PartSetStep");
+ val = H5PartHasStep(file, t);
+ if (val == 0) {
+ status = H5PartSetStep(file, t);
+ RETURN(status, H5PART_SUCCESS, "H5PartSetStep");
+ }
/* test a two-part write using views */
status = H5PartSetView(file,