diff options
Diffstat (limited to 'core/profile.c')
-rw-r--r-- | core/profile.c | 7 |
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); |