From e48aa70dc05d3e21c684cc8fea8031db75e7be79 Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <matthieu.schaller@durham.ac.uk>
Date: Wed, 16 Mar 2016 12:08:40 +0000
Subject: [PATCH] Implemented serial i/o reads

---
 examples/main.c | 2 +-
 src/common_io.h | 3 +++
 src/serial_io.c | 5 ++++-
 src/serial_io.h | 3 ++-
 src/single_io.c | 3 ---
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/examples/main.c b/examples/main.c
index c88f92a07a..f747b6cb76 100644
--- a/examples/main.c
+++ b/examples/main.c
@@ -359,7 +359,7 @@ int main(int argc, char *argv[]) {
   read_ic_parallel(ICfileName, dim, &parts, &Ngas, &periodic, myrank, nr_nodes,
                    MPI_COMM_WORLD, MPI_INFO_NULL);
 #else
-  read_ic_serial(ICfileName, dim, &parts, &Ngas, &periodic, myrank, nr_nodes,
+  read_ic_serial(ICfileName, dim, &parts, &gparts, &Ngas, &Ngpart, &periodic, myrank, nr_nodes,
                  MPI_COMM_WORLD, MPI_INFO_NULL);
 #endif
 #else
diff --git a/src/common_io.h b/src/common_io.h
index 2623a03f9a..426fa6a01e 100644
--- a/src/common_io.h
+++ b/src/common_io.h
@@ -70,6 +70,9 @@ enum PARTICLE_TYPE {
   NUM_PARTICLE_TYPES
 };
 
+#define FILENAME_BUFFER_SIZE 150
+#define PARTICLE_GROUP_BUFFER_SIZE 20
+
 hid_t hdf5Type(enum DATA_TYPE type);
 size_t sizeOfType(enum DATA_TYPE type);
 
diff --git a/src/serial_io.c b/src/serial_io.c
index 8068d02db0..0d64db482a 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -390,6 +390,9 @@ void writeArrayBackEnd(hid_t grp, char* fileName, FILE* xmfFile, char* name,
 
 /* Import the right hydro definition */
 #include "hydro_io.h"
+/* Import the right gravity definition */
+#include "gravity_io.h"
+
 
 /**
  * @brief Reads an HDF5 initial condition file (GADGET-3 type)
@@ -499,7 +502,7 @@ void read_ic_serial(char* fileName, double dim[3], struct part** parts,
   bzero(*parts, *Ngas * sizeof(struct part));
 
   /* Allocate memory to store all particles */
-  Ndm = N[1];
+  const size_t Ndm = N[1];
   *Ngparts = N[1] + N[0];
   if (posix_memalign((void*)gparts, gpart_align, *Ngparts * sizeof(struct gpart)) != 0)
     error("Error while allocating memory for gravity particles");
diff --git a/src/serial_io.h b/src/serial_io.h
index 95f09f5977..6cb48d26db 100644
--- a/src/serial_io.h
+++ b/src/serial_io.h
@@ -32,7 +32,8 @@
 #if defined(HAVE_HDF5) && defined(WITH_MPI) && !defined(HAVE_PARALLEL_HDF5)
 
 void read_ic_serial(char* fileName, double dim[3], struct part** parts,
-                    size_t* N, int* periodic, int mpi_rank, int mpi_size,
+		    struct gpart** gparts, size_t* Ngas, size_t* Ngparts,
+                    int* periodic, int mpi_rank, int mpi_size,
                     MPI_Comm comm, MPI_Info info);
 
 void write_output_serial(struct engine* e, struct UnitSystem* us, int mpi_rank,
diff --git a/src/single_io.c b/src/single_io.c
index 32a4b374a7..373d685174 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -39,9 +39,6 @@
 #include "common_io.h"
 #include "error.h"
 
-#define FILENAME_BUFFER_SIZE 150
-#define PARTICLE_GROUP_BUFFER_SIZE 20
-
 /*-----------------------------------------------------------------------------
  * Routines reading an IC file
  *-----------------------------------------------------------------------------*/
-- 
GitLab