From 0586f739eab656e3b64bf55e5d7a3dfdc64954b3 Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <schaller@strw.leidenuniv.nl>
Date: Thu, 23 May 2019 20:49:56 +0200
Subject: [PATCH] Avoid floating-point exception when writing out the unit
 conversion factor.

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

diff --git a/src/parallel_io.c b/src/parallel_io.c
index 489b2fd920..7ba28d6f50 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -441,7 +441,8 @@ void prepareArray(struct engine* e, hid_t grp, char* fileName, FILE* xmfFile,
   io_write_attribute_s(h_data, "Expression for physical CGS units", buffer);
 
   /* Write the actual number this conversion factor corresponds to */
-  const float factor = units_cgs_conversion_factor(snapshot_units, props.units);
+  const double factor =
+      units_cgs_conversion_factor(snapshot_units, props.units);
   io_write_attribute_d(
       h_data,
       "Conversion factor to CGS (not including cosmological corrections)",
diff --git a/src/serial_io.c b/src/serial_io.c
index 8f2c011061..9ea2b0f07f 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -326,7 +326,8 @@ void prepareArray(const struct engine* e, hid_t grp, char* fileName,
   io_write_attribute_s(h_data, "Expression for physical CGS units", buffer);
 
   /* Write the actual number this conversion factor corresponds to */
-  const float factor = units_cgs_conversion_factor(snapshot_units, props.units);
+  const double factor =
+      units_cgs_conversion_factor(snapshot_units, props.units);
   io_write_attribute_d(
       h_data,
       "Conversion factor to CGS (not including cosmological corrections)",
diff --git a/src/single_io.c b/src/single_io.c
index 5476187888..afce1e1e6e 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -338,7 +338,8 @@ void writeArray(const struct engine* e, hid_t grp, char* fileName,
   io_write_attribute_s(h_data, "Expression for physical CGS units", buffer);
 
   /* Write the actual number this conversion factor corresponds to */
-  const float factor = units_cgs_conversion_factor(snapshot_units, props.units);
+  const double factor =
+      units_cgs_conversion_factor(snapshot_units, props.units);
   io_write_attribute_d(
       h_data,
       "Conversion factor to CGS (not including cosmological corrections)",
-- 
GitLab