diff --git a/src/H5Block.c b/src/H5Block.c index 200794f..7670b08 100644 --- a/src/H5Block.c +++ b/src/H5Block.c @@ -1411,6 +1411,9 @@ _H5Block_write_data ( struct H5BlockStruct *b = f->block; #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR == 8 + htri_t exists = H5Lexists ( b->field_group_id, name, H5P_DEFAULT ); + if ( exists > 0 ) return HANDLE_H5D_EXISTS_ERR ( name, f->timestep ); + dataset = H5Dcreate2 ( b->field_group_id, name, diff --git a/src/H5MultiBlock.c b/src/H5MultiBlock.c index 01479da..e3da7a9 100644 --- a/src/H5MultiBlock.c +++ b/src/H5MultiBlock.c @@ -57,7 +57,7 @@ #ifdef PARALLEL_IO -#define HALO_EXCHANGE_METHOD _halo_exchange_buffers +#define HALO_EXCHANGE_METHOD _halo_exchange_vectors /******************************************************************************* * Static functions @@ -176,8 +176,8 @@ _nth_root_int_divisor (const int m, const int n) int i, root; double p; - p = 1.0 / (double) n; - root = (int) ceil ( pow ((double) m, p) ); + p = 1.0 / (double)n; + root = (int) ceil ( pow ( (double)m, p ) ); for (i=root; i<=m; i++) { if (m % i == 0) return i; @@ -541,6 +541,9 @@ _halo_exchange_buffers ( struct H5MultiBlockStruct *mb = f->multiblock; + if ( f->myproc == 0 ) _H5Part_print_info ( + "Using halo exchange method _halo_exchange_buffers"); + bufsize = count * blocklen; ibufsize = (int)bufsize; if ( (h5part_int64_t)ibufsize != bufsize ) return HANDLE_MPI_INT64_ERR; @@ -599,6 +602,9 @@ _halo_exchange_vectors ( h5part_int64_t herr; MPI_Datatype halo_vector; + if ( f->myproc == 0 ) _H5Part_print_info ( + "Using halo exchange method _halo_exchange_vectors"); + icount = (int)count; if ( (h5part_int64_t)icount != count ) return HANDLE_MPI_INT64_ERR; diff --git a/src/H5Part.c b/src/H5Part.c index 2a4d8ae..a444b8f 100644 --- a/src/H5Part.c +++ b/src/H5Part.c @@ -744,6 +744,9 @@ _write_data ( name, (long long)f->timestep ); #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR == 8 + htri_t exists = H5Lexists ( f->timegroup, name, H5P_DEFAULT ); + if ( exists > 0 ) return HANDLE_H5D_EXISTS_ERR ( name, f->timestep ); + dataset_id = H5Dcreate2 ( f->timegroup, name, diff --git a/src/H5PartErrors.h b/src/H5PartErrors.h index a19c5b2..0877e1e 100644 --- a/src/H5PartErrors.h +++ b/src/H5PartErrors.h @@ -165,6 +165,13 @@ "Cannot create dataset for name \"%s\", step \"%lld\".", \ s, (long long) n ); +#define HANDLE_H5D_EXISTS_ERR( s, n ) \ + (*_err_handler) ( \ + _H5Part_get_funcname(), \ + H5PART_ERR_HDF5, \ + "Dataset already exists with name \"%s\", step \"%lld\".", \ + s, (long long) n ); + #define HANDLE_H5D_GET_SPACE_ERR \ (*_err_handler) ( \ _H5Part_get_funcname(), \