The variable deco_time is used for the CVA iterations to calculate the VPM-B
ceiling. Only positive values should be allowed, otherwise we can get some odd
results in a few cases, such as ceilings being calculated when they shouldn't.

Signed-off-by: Rick Walsh <[email protected]>
---

This patch corrects the bug reported by John Van Ostrand, where a more 
conservative ceiling was calculated for a real dive with VPM-B +0 compared to 
VPM-B +1, which was illogical.

 core/profile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/profile.c b/core/profile.c
index 72c5e02..35b5e42 100644
--- a/core/profile.c
+++ b/core/profile.c
@@ -1035,7 +1035,7 @@ void calculate_deco_information(struct dive *dive, struct 
divecomputer *dc, stru
                        // Do we need to update deco_time?
                        if (final_tts > 0)
                                deco_time = pi->maxtime + final_tts - 
time_deep_ceiling;
-                       else if (time_clear_ceiling > 0)
+                       else if (time_clear_ceiling > time_deep_ceiling)
                                deco_time = time_clear_ceiling - 
time_deep_ceiling;
                        vpmb_next_gradient(deco_time, surface_pressure / 
1000.0);
                        final_tts = 0;
-- 
2.5.5

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to