diff --git a/src/common_io.c b/src/common_io.c index 2842fad78d9b55af12d9e68f064564d271a3f00a..1289e0a4139dbd7a5d404ebcaae50e7c92d1dcc6 100644 --- a/src/common_io.c +++ b/src/common_io.c @@ -489,8 +489,8 @@ void io_write_cell_offsets(hid_t h_grp, const int cdim[3], MPI_COMM_WORLD); #endif - message("offsets=%lld %lld", offset_part[0], offset_part[1]); - message("counts=%lld %lld", count_part[0], count_part[1]); + /* Only rank 0 actually writes */ + if (nodeID != 0) return; /* Write some meta-information first */ hid_t h_subgrp = diff --git a/src/parallel_io.c b/src/parallel_io.c index 611e4af99f138a557719b505f0891c345025e41e..170c1c67dd0e1396d9a360cf4fe9052af2d87bf2 100644 --- a/src/parallel_io.c +++ b/src/parallel_io.c @@ -1282,6 +1282,21 @@ void write_output_parallel(struct engine* e, const char* baseName, snprintf(fileName, FILENAME_BUFFER_SIZE, "%s_%04i.hdf5", baseName, e->snapshot_output_count); + if (nodeID == 0) { + h_file = H5Fopen(fileName, H5F_ACC_RDWR, H5P_DEFAULT); + if (h_file < 0) + error("Error while opening file '%s' on rank %d.", fileName, mpi_rank); + } else { + h_file = 0; + } + + io_write_cell_offsets(h_file, e->s->cdim, e->s->cells_top, e->s->nr_cells, + e->s->width, e->nodeID, N_total, offset); + + if (nodeID == 0) { + H5Fclose(h_file); + } + /* Prepare some file-access properties */ hid_t plist_id = H5Pcreate(H5P_FILE_ACCESS);