diff --git a/src/parallel_io.c b/src/parallel_io.c index bc8206e97853928685930081d779d8d7fe140768..92e0b282fdf2f1336f4bac327a422a90fcccea5c 100644 --- a/src/parallel_io.c +++ b/src/parallel_io.c @@ -90,24 +90,19 @@ void readArrayBackEnd(hid_t grp, char* name, enum DATA_TYPE type, int N, int dim error( "Compulsory data set '%s' not present in the file." , name ); } else - { - /* message("Optional data set '%s' not present. Zeroing this particle field...", name); */ - + { for(i=0; i<N; ++i) memset(part_c+i*partSize, 0, copySize); - return; } - } + } /* message( "Reading %s '%s' array...", importance == COMPULSORY ? "compulsory": "optional ", name); */ /* Open data space in file */ h_data = H5Dopen2(grp, name, H5P_DEFAULT); if(h_data < 0) - { - error( "Error while opening data space '%s'." , name ); - } + error( "Error while opening data space '%s'." , name ); /* Check data type */ h_type = H5Dget_type(h_data); @@ -121,6 +116,7 @@ void readArrayBackEnd(hid_t grp, char* name, enum DATA_TYPE type, int N, int dim if(temp == NULL) error("Unable to allocate memory for temporary buffer"); + /* Prepare information for hyperslab */ if(dim > 1) { rank = 2; @@ -161,6 +157,9 @@ void readArrayBackEnd(hid_t grp, char* name, enum DATA_TYPE type, int N, int dim /* Free and close everything */ free(temp); + H5Pclose(h_plist_id); + H5Sclose(h_filespace); + H5Sclose(h_memspace); H5Tclose(h_type); H5Dclose(h_data); } @@ -285,10 +284,13 @@ void read_ic_parallel ( char* fileName, double dim[3], struct part **parts, int /* Close particle group */ H5Gclose(h_grp); - /* message("Done Reading particles..."); */ + /* Close property handler */ + H5Pclose(h_plist_id); /* Close file */ H5Fclose(h_file); + + /* message("Done Reading particles..."); */ }