diff --git a/src/parallel_io.c b/src/parallel_io.c
index 5d10cf03137937a4b89db68218bb723d3a282c59..0da34d4dad114db0920c8e8f3bb617295ff3da96 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -677,6 +677,8 @@ void write_output_parallel(struct engine* e, const char* baseName,
   writeAttribute(h_grp, "BoxSize", DOUBLE, e->s->dim, 3);
   double dblTime = e->time;
   writeAttribute(h_grp, "Time", DOUBLE, &dblTime, 1);
+  int dimension = (int)hydro_dimension;
+  writeAttribute(h_grp, "Dimension", INT, &dimension, 1);
 
   /* GADGET-2 legacy values */
   /* Number of particles of each type */
diff --git a/src/serial_io.c b/src/serial_io.c
index a9213819d4816a08614b82264ab463cecc060419..6e26be1a33fbc2c74ae1b8f7af2b83db285c962e 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -739,6 +739,8 @@ void write_output_serial(struct engine* e, const char* baseName,
     writeAttribute(h_grp, "BoxSize", DOUBLE, e->s->dim, 3);
     double dblTime = e->time;
     writeAttribute(h_grp, "Time", DOUBLE, &dblTime, 1);
+    int dimension = (int)hydro_dimension;
+    writeAttribute(h_grp, "Dimension", INT, &dimension, 1);
 
     /* GADGET-2 legacy values */
     /* Number of particles of each type */
diff --git a/src/single_io.c b/src/single_io.c
index df741ac22335fc05ec1ac334636a897e6def3e96..6cb7e830209b0d58919fe6f529f675b4c611a51d 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -592,6 +592,8 @@ void write_output_single(struct engine* e, const char* baseName,
   writeAttribute(h_grp, "BoxSize", DOUBLE, e->s->dim, 3);
   double dblTime = e->time;
   writeAttribute(h_grp, "Time", DOUBLE, &dblTime, 1);
+  int dimension = (int)hydro_dimension;
+  writeAttribute(h_grp, "Dimension", INT, &dimension, 1);
 
   /* GADGET-2 legacy values */
   /* Number of particles of each type */