[PATCH 05/10] VPM-B: Calculate crushing pressure on descent

Rick Walsh rickmwalsh at gmail.com
Sat Aug 29 05:38:32 PDT 2015


By calculating crushing pressure after the manually entered phase, we were doing
it wrong for multi-level dives.

Signed-off-by: Rick Walsh <rickmwalsh at gmail.com>
---
 planner.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/planner.c b/planner.c
index ae90938..0b5bd9b 100644
--- a/planner.c
+++ b/planner.c
@@ -110,6 +110,9 @@ double interpolate_transition(struct dive *dive, duration_t t0, duration_t t1, d
 		int depth = interpolate(d0.mm, d1.mm, j - t0.seconds, t1.seconds - t0.seconds);
 		tissue_tolerance = add_segment(depth_to_mbar(depth, dive) / 1000.0, gasmix, 1, po2.mbar, dive, prefs.bottomsac);
 	}
+	if (d1.mm > d0.mm)
+		calc_crushing_pressure(depth_to_mbar(d1.mm, &displayed_dive) / 1000.0);
+
 	return tissue_tolerance;
 }
 
@@ -997,7 +1000,6 @@ bool plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool
 		create_dive_from_plan(diveplan, is_planner);
 		return(false);
 	}
-	calc_crushing_pressure(depth_to_mbar(depth, &displayed_dive) / 1000.0);
 	nuclear_regeneration(clock);
 	clear_deco(displayed_dive.surface_pressure.mbar / 1000.0);
 	vpmb_start_gradient();
-- 
2.4.3



More information about the subsurface mailing list