Scuba Decompression Planner

Educational estimate only — not a dive plan. This page is not validated for in-water use and cannot replace a certified dive computer, recognised tables or appropriate training. If a profile requires decompression, an untrained diver should change the profile rather than follow this schedule.

Introduction to Bühlmann ZH-L16C decompression planning

The Bühlmann ZH-L16C planner estimates what happens to nitrogen during one idealised scuba dive. Enter maximum depth, bottom time, breathing-gas oxygen, gradient factors, altitude and water type. The calculator then reports a no-decompression limit, any required staged stops, oxygen partial pressure, maximum operating depth and the loading of all sixteen modelled tissue compartments.

ZH-L16C is a dissolved-gas model. Its compartments are mathematical time constants, not literal organs, and each has a different nitrogen half-time and tolerated supersaturation line. Gradient factors reduce the model’s raw limits: the low value mainly influences the first stop, while the high value governs the surfacing margin and much of the shallow-stop time.

The calculation assumes a square profile and a fully desaturated, altitude-acclimatised diver. A real computer follows actual depth continuously; this page does not know about cold, exertion, health, buoyancy mistakes or individual susceptibility to decompression sickness. Use the result to study the model, not to authorise a dive.

How to use the scuba profile and gradient-factor inputs

Maximum depth may be entered in metres or feet; feet are converted at 0.3048 m per foot. Bottom time is the elapsed time from leaving the surface until the final ascent begins. The whole interval is treated as time at maximum depth, so a gradual descent receives no multi-level credit.

Oxygen fraction is entered as a percentage: 21 for air or, for example, 32 for EAN32. The remainder is treated as nitrogen. More oxygen generally reduces nitrogen loading, but it also raises oxygen partial pressure and makes the gas unsuitable below its maximum operating depth.

Gradient factor low must not exceed gradient factor high. A setting of 100/100 applies the raw ZH-L16C limits; 30/85 adds a commonly used but not universally appropriate margin. Altitude changes surface pressure, and water type changes pressure gained per metre. Altitude calculations assume full acclimatisation before the dive.

Choose Calculate ascent plan to create the verdict, schedule, profile chart and tissue table. The copy, download and permalink controls become available after a valid calculation. Reset restores the 30 m, 22-minute air example.

Formulas for ZH-L16C pressure and tissue loading

The ZH-L16C formulas begin with surface pressure. For altitude h in metres, the planner uses the International Standard Atmosphere troposphere relation:

Psurf = 1.01325 (12.25577×105h) 5.25588 bar

Ambient pressure adds hydrostatic pressure. Salt water uses 0.1 bar per metre; fresh water uses 33/34 of that value:

Pamb = Psurf + d · kw , kw = 0.1 bar/m (salt)

Water vapour is removed before ambient pressure is multiplied by the nitrogen fraction:

Palv = (PambPH2O) · fN2

At constant depth, each compartment approaches alveolar nitrogen pressure exponentially through the Haldane equation:

P(t) = Palv + (P0Palv) ekt , k = ln2τ

During travel, inspired pressure changes continuously. The Schreiner equation models that change, and the implementation evaluates ascent travel in three-second increments:

P(t) = Palv0 + R (t1k) (Palv0P0Rk) ekt

Bühlmann’s a and b coefficients define the M-value line. The calculator itself uses the published ZH-L16C coefficient table:

M = a + Pambb , a = 2 barτ3 , b = 1.005 1τ

A gradient factor moves the permitted tissue pressure toward ambient pressure. Solving that condition gives the tolerated ambient pressure for each compartment; the highest value establishes the ceiling:

Ptol = Pa·GF GFb+1GF

For a decompression ascent, the selected gradient factor is interpolated from the low setting at the first stop to the high setting at the surface:

GF(d) = GFhigh + (GFlowGFhigh) ddfirst

Oxygen is checked separately through Dalton’s law. The maximum operating depth is the depth at which the chosen oxygen limit is reached:

ppO2 = fO2 · Pamb , MOD = ppmaxfO2Psurf kw

The sixteen nitrogen half-times are 5.0, 8.0, 12.5, 18.5, 27.0, 38.3, 54.3, 77.0, 109.0, 146.0, 187.0, 239.0, 305.0, 390.0, 498.0 and 635.0 minutes. Stops are arranged at 3 m intervals and held in whole-minute increments.

Worked example: 30 m for 22 minutes on air

This worked example uses the form defaults: 30 m in salt water at sea level, 22 minutes on air and gradient factors 30/85. Ambient pressure at the bottom is 1.01325 + 30 × 0.1 = 4.01325 bar. Oxygen partial pressure is therefore about 0.84 bar, while alveolar nitrogen pressure is (4.01325 − 0.0627) × 0.79 = 3.12093 bar.

For the 5-minute compartment, the rate constant is ln 2 ÷ 5, or about 0.13863 min⁻¹. Applying the constant-depth equation for 22 minutes raises that compartment from its initial sea-level nitrogen pressure toward the bottom inspired pressure. The selected low gradient factor then produces a ceiling that rounds to the next 3 m stop interval.

With these defaults, the live output identifies a decompression exposure and builds the ascent one stage at a time. Compare that result with a shorter bottom time or EAN32 to see how nitrogen loading falls. Then inspect oxygen partial pressure: richer nitrox may lengthen the no-stop limit, but it cannot safely be used without respecting its MOD.

Interpreting decompression ceilings, stops and tissue percentages

The result badge distinguishes a no-stop profile from one requiring staged decompression under the selected settings. A no-stop result includes remaining no-stop time and, for dives of at least 10 m, a conventional three-minute safety stop at 5 m. A decompression result lists only stops that require a hold; deeper 3 m stages may clear during travel.

The first stop and total stop time are model outputs, not promises of safety. The profile chart shows depth against runtime, while the tissue table reports each compartment’s nitrogen pressure, raw surfacing M-value, gradient-factor-adjusted limit and percentage of that adjusted limit. The compartment closest to its limit is the leading compartment.

Oxygen warnings are independent of decompression status. A low nitrogen obligation does not make an excessive ppO₂ acceptable. The planner warns above 1.4 bar and again above 1.6 bar, but exposure duration, workload and training still matter.

Comparison of ZH-L16C no-stop limits with US Navy Revision 7

This comparison shows why model names and settings belong beside every no-stop number. The Bühlmann columns assume air, sea level, salt water and a 9 m/min ascent; the Navy column comes from Revision 7 Table 9-7.

No-stop limits in minutes for selected air depths
Depth (fsw) Depth (m) USN Rev 7 ZH-L16C GF 100/100 ZH-L16C GF 30/85
4012.2163176.7123.5
5015.29289.569.0
6018.36360.345.1
7021.34842.631.8
8024.43931.723.0
9027.43324.118.2
10030.52519.414.4
11033.52016.211.8
12036.61513.59.9
13039.61211.48.4

The models are close at some depths and materially different at others because they use different algorithms, evidence and rounding rules. Gradient factors reduce the Bühlmann limits further. None of these columns predicts an individual diver’s outcome with certainty.

Assumptions and limitations of this decompression estimate

The principal limitation is the square-profile assumption. The calculator treats the entire bottom time as maximum-depth exposure, starts all compartments in equilibrium with surface air and models only one nitrogen–oxygen gas. It provides no repetitive-dive, surface-interval, residual-nitrogen, helium, gas-switch or oxygen-decompression calculation.

The model cannot account for cold, exertion, dehydration, age, body composition, a patent foramen ovale, bubble formation or illness. It also cannot know whether the diver has enough gas, buoyancy control, redundancy or team support to complete a stop. Decompression sickness remains possible after profiles that a model accepts.

Numerically, travel is integrated in 0.05-minute steps, stops use 3 m intervals and hold times round to whole minutes. Inputs above 100 m, 360 minutes or 4,500 m altitude are rejected. These limits prevent extreme extrapolation; they do not define a safe operating range.

  • Single dive: start fully desaturated and acclimatised to the entered altitude.
  • Nitrogen only: do not use this page for trimix, heliox or gas switching.
  • Education only: use trained procedures and validated planning equipment for real dives.

Common questions about ZH-L16C planning

Which decompression model does this planner use?

The planner uses the sixteen nitrogen compartments and published coefficients of Bühlmann ZH-L16C, together with Haldane and Schreiner gas loading and gradient factors.

What do gradient factor low and high change?

Gradient factor low mainly affects the depth of the first stop. Gradient factor high controls the permitted surfacing margin and therefore strongly affects shallow-stop duration.

How is the no-decompression limit calculated?

The planner searches for the longest square-profile bottom time from which an ascent at 9 metres per minute remains inside the selected gradient-factor limits.

Why can the result differ from agency or Navy tables?

Tables and computers can use different models, coefficients, ascent assumptions, rounding rules and safety margins. Agreement between two outputs does not validate either one for a particular diver.

Does the planner handle altitude, repetitive dives or helium?

Altitude is included for a fully acclimatised diver. Repetitive dives, residual nitrogen, surface intervals, helium and gas switches are not modelled.

Can I dive the generated schedule?

No. The output is an educational estimate, not a validated dive plan. Use appropriate training, a certified dive computer and a proven planning tool.

Sources for the Bühlmann coefficients and diving constants

The implementation and comparison values draw on the following primary and technical references:

If this educational implementation conflicts with an authoritative source or a correctly configured certified computer, do not rely on this page.

Dive profile and model settings

All fields are required. Defaults describe a single sea-level air dive planned at gradient factors 30/85.

Deepest point of the profile. Maximum 100 m (330 ft).

Feet are converted at exactly 0.3048 m per foot.

Elapsed time from leaving the surface until the final ascent begins. Maximum 360 minutes.

Enter 21 for air or the analysed percentage for nitrox. The balance is treated as nitrogen.

Primarily controls the first stop depth. It cannot exceed GF high.

Controls the surfacing margin. Use 100/100 to inspect raw ZH-L16C.

Elevation of the water surface, assuming full acclimatisation.

Water density changes pressure gained per metre.

Computed Bühlmann ascent plan

Enter a profile and press Calculate ascent plan. The default scenario is 30 m for 22 minutes on air at gradient factors 30/85.
The stop schedule, profile drawing and sixteen-compartment loading table will appear after calculation.

Copy, download and permalink messages appear here.

Mini-game: Nail the Decompression Stop

This optional arcade exercise uses the same ZH-L16C engine. Guide the diver to the stop band, hold steady for the compressed target time and then surface. Use a pointer, touch, the arrow keys or W and S. The game illustrates controlled ascent; it does not teach or validate an in-water procedure.

Score0
Time left75s
Streak0
Profile0
ProgressStart the run
Your browser does not support the scuba decompression stop mini-game canvas.

Start game

Move the diver to the glowing stop band, hold position for the required time and surface without triggering a rate alarm.

Best score: 0

Educational takeaway: the game uses the calculator engine, but its hold times and controls are compressed for play.

Embed this calculator

Copy and paste the HTML below to add the Scuba Decompression Planner | Bühlmann ZH-L16C Stop Times to your website.