From ff8cb4a0e88a5bca42dfe04e09885a6683733e74 Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <matthieu.schaller@durham.ac.uk>
Date: Wed, 9 May 2018 10:12:58 +0200
Subject: [PATCH] Always write the cosmological meta-data block in snapshots.
 Set a flag to 1 if the run was indeed cosmological.

---
 src/parallel_io.c | 16 +++++++++-------
 src/serial_io.c   | 16 +++++++++-------
 src/single_io.c   | 16 +++++++++-------
 3 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/src/parallel_io.c b/src/parallel_io.c
index 81c70ab43d..8d5a97a2ad 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -947,13 +947,15 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6],
   }
 
   /* Print the gravity parameters */
-  if (e->policy & engine_policy_cosmology) {
-    h_grp =
-        H5Gcreate(h_file, "/Cosmology", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-    if (h_grp < 0) error("Error while creating cosmology group");
-    cosmology_write_model(h_grp, e->cosmology);
-    H5Gclose(h_grp);
-  }
+  h_grp =
+      H5Gcreate(h_file, "/Cosmology", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+  if (h_grp < 0) error("Error while creating cosmology group");
+  if (e->policy & engine_policy_cosmology)
+    io_write_attribute_i(h_grp, "Cosmological run", 1);
+  else
+    io_write_attribute_i(h_grp, "Cosmological run", 0);
+  cosmology_write_model(h_grp, e->cosmology);
+  H5Gclose(h_grp);
 
   /* Print the runtime parameters */
   h_grp =
diff --git a/src/serial_io.c b/src/serial_io.c
index a0a773534c..ab08537948 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -854,13 +854,15 @@ void write_output_serial(struct engine* e, const char* baseName,
     }
 
     /* Print the cosmological model */
-    if (e->policy & engine_policy_cosmology) {
-      h_grp = H5Gcreate(h_file, "/Cosmology", H5P_DEFAULT, H5P_DEFAULT,
-                        H5P_DEFAULT);
-      if (h_grp < 0) error("Error while creating cosmology group");
-      cosmology_write_model(h_grp, e->cosmology);
-      H5Gclose(h_grp);
-    }
+    h_grp =
+        H5Gcreate(h_file, "/Cosmology", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+    if (h_grp < 0) error("Error while creating cosmology group");
+    if (e->policy & engine_policy_cosmology)
+      io_write_attribute_i(h_grp, "Cosmological run", 1);
+    else
+      io_write_attribute_i(h_grp, "Cosmological run", 0);
+    cosmology_write_model(h_grp, e->cosmology);
+    H5Gclose(h_grp);
 
     /* Print the runtime parameters */
     h_grp =
diff --git a/src/single_io.c b/src/single_io.c
index f6619d7c7f..f5b7d33187 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -706,13 +706,15 @@ void write_output_single(struct engine* e, const char* baseName,
   }
 
   /* Print the cosmological model  */
-  if (e->policy & engine_policy_cosmology) {
-    h_grp =
-        H5Gcreate(h_file, "/Cosmology", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-    if (h_grp < 0) error("Error while creating cosmology group");
-    cosmology_write_model(h_grp, e->cosmology);
-    H5Gclose(h_grp);
-  }
+  h_grp =
+      H5Gcreate(h_file, "/Cosmology", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+  if (h_grp < 0) error("Error while creating cosmology group");
+  if (e->policy & engine_policy_cosmology)
+    io_write_attribute_i(h_grp, "Cosmological run", 1);
+  else
+    io_write_attribute_i(h_grp, "Cosmological run", 0);
+  cosmology_write_model(h_grp, e->cosmology);
+  H5Gclose(h_grp);
 
   /* Print the runtime parameters */
   h_grp =
-- 
GitLab