[PATCH 1/3] Add function to calculate gas maximum narcotic depth

Rick Walsh rickmwalsh at gmail.com
Tue May 31 02:31:46 PDT 2016


Signed-off-by: Rick Walsh <rickmwalsh at gmail.com>
---
 core/dive.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/core/dive.h b/core/dive.h
index 5988990..6910eb2 100644
--- a/core/dive.h
+++ b/core/dive.h
@@ -481,6 +481,17 @@ static inline depth_t gas_mod(struct gasmix *mix, pressure_t po2_limit, struct d
 	return rounded_depth;
 }
 
+/* Maximum narcotic depth rounded to multiples of roundto mm */
+static inline depth_t gas_mnd(struct gasmix *mix, int end, struct dive *dive, int roundto) {
+	depth_t rounded_depth;
+	pressure_t ppo2n2;
+	ppo2n2.mbar = depth_to_mbar(end, dive);
+
+	double maxambient = ppo2n2.mbar / (1 - get_he(mix) / 1000.0);
+	rounded_depth.mm = rint(mbar_to_depth(maxambient, dive) / roundto) * roundto;
+	return rounded_depth;
+}
+
 #define SURFACE_THRESHOLD 750 /* somewhat arbitrary: only below 75cm is it really diving */
 
 /* this is a global spot for a temporary dive structure that we use to
-- 
2.5.5



More information about the subsurface mailing list