summaryrefslogtreecommitdiffstats
path: root/core/profile.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/profile.c')
-rw-r--r--core/profile.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/profile.c b/core/profile.c
index 84c77d68b..e9a8b6fe9 100644
--- a/core/profile.c
+++ b/core/profile.c
@@ -1092,12 +1092,17 @@ void calculate_deco_information(struct deco_state *ds, const struct deco_state *
time_clear_ceiling = t1;
}
}
+ entry->surface_gf = 0.0;
for (j = 0; j < 16; j++) {
double m_value = ds->buehlmann_inertgas_a[j] + entry->ambpressure / ds->buehlmann_inertgas_b[j];
+ double surface_m_value = ds->buehlmann_inertgas_a[j] + surface_pressure / ds->buehlmann_inertgas_b[j];
entry->ceilings[j] = deco_allowed_depth(ds->tolerated_by_tissue[j], surface_pressure, dive, 1);
entry->percentages[j] = ds->tissue_inertgas_saturation[j] < entry->ambpressure ?
lrint(ds->tissue_inertgas_saturation[j] / entry->ambpressure * AMB_PERCENTAGE) :
lrint(AMB_PERCENTAGE + (ds->tissue_inertgas_saturation[j] - entry->ambpressure) / (m_value - entry->ambpressure) * (100.0 - AMB_PERCENTAGE));
+ double surface_gf = 100.0 * (ds->tissue_inertgas_saturation[j] - surface_pressure) / (surface_m_value - surface_pressure);
+ if (surface_gf > entry->surface_gf)
+ entry->surface_gf = surface_gf;
}
/* should we do more calculations?
@@ -1499,6 +1504,8 @@ static void plot_string(struct plot_info *pi, struct plot_data *entry, struct me
}
if (entry->rbt)
put_format_loc(b, translate("gettextFromC", "RBT: %umin\n"), DIV_UP(entry->rbt, 60));
+ if (entry->surface_gf > 0)
+ put_format(b, translate("gettextFromC", "Surface GF %.0f%%\n"), entry->surface_gf);
if (entry->ceiling) {
depthvalue = get_depth_units(entry->ceiling, NULL, &depth_unit);
put_format_loc(b, translate("gettextFromC", "Calculated ceiling %.0f%s\n"), depthvalue, depth_unit);