Decompression Algorithms: ZHL-16C, RGBM, and VPM
June 12, 2025 · 7 min read
Part 2 of 3 — Part 1: How Dive Computers Work · Part 3: Reading Your Computer in Real Time
The Two Families of Decompression Model
Every dive computer algorithm belongs to one of two fundamentally different families: dissolved-gas models and bubble models.
Dissolved-gas models — ZHL-16C being the dominant example — track inert gas dissolved in tissue compartments. They infer bubble risk through M-values: maximum tolerable gas tensions above which bubble formation becomes statistically likely. The model never directly calculates bubbles. It reasons about them indirectly.
Bubble models — RGBM and VPM — go one step further. They model the population of microscopic bubble nuclei present in tissues, simulate how those nuclei grow or shrink under changing pressure, and limit ascent based on the volume of free gas phase accumulating rather than dissolved gas tension alone. The physics are different. The output often is not — more on that below.
ZHL-16C: The Published Standard
Albert Bühlmann published the ZH-L16 algorithm at the University Hospital Zürich in 1983 and revised it through 1992. For the first time, a decompression algorithm had published coefficient tables — M₀ and ΔM for each of 16 tissue compartments, covering half-times from 4 minutes to 635 minutes. Any manufacturer could implement it, audit it, and compare results. That transparency made it the foundation of the modern technical diving computer.
Three variants exist, each progressively more refined:
| Variant | Change | Common use |
|---|---|---|
| ZHL-16A | Original published values | Historical; most permissive |
| ZHL-16B | Altitude corrections added | Corrects M-values when atmospheric pressure is below 1 bar |
| ZHL-16C | Further refined M-values, validated against real diving outcomes | Current technical diving standard |
ZHL-16C is used by Shearwater (all models), Suunto EON Steel, and Oceanic VTX, among others. When divers discuss gradient factors, ceiling calculations, or tissue loading percentages, ZHL-16C is the algorithm underneath.
One non-standard variant worth knowing: Scubapro's ADT (Adaptive Decompression Technology) in the Galileo series. ADT dynamically tightens M-values in real time based on heart rate, water temperature, and repetitive dive history. It is automatic and not user-configurable — the philosophy is opposite to gradient factors. Where GF users set conservatism manually before the dive, ADT adjusts it continuously during the dive based on physiological inputs. Neither approach has been shown definitively superior; they represent different judgements about where human decision-making should sit in the loop.
RGBM: Bubble Nuclei Physics
Bruce Wienke developed the Reduced Gradient Bubble Model at Los Alamos National Laboratory from 1995 onward. The first commercial license went to Uwatec (now Scubapro). Today RGBM also runs in Mares and some Suunto models (Suunto uses a proprietary implementation; Uwatec/Scubapro uses Wienke's directly).
Where ZHL-16C tracks dissolved gas only, RGBM explicitly models a seed population of bubble nuclei distributed across tissues. The distribution is exponential — smaller seeds vastly outnumber larger ones, consistent with laboratory gelatin studies. Each seed has a radius. When supersaturation reaches a critical level for a given radius, that nucleus begins to grow. RGBM tracks whether the cumulative free-phase volume across tissues approaches a critical threshold; when it does, the algorithm slows or stops ascent.
The practical consequence that matters most: RGBM explicitly carries residual bubble nuclei forward between dives in a repetitive series. A second dive is computed with the nuclei population from the first dive still present. The required decompression on dive 2 is longer than ZHL-16C would require, because the model knows the starting condition is not clean tissue. ZHL-16C handles repetitive dives through residual dissolved gas only — it cannot account for nuclei seeded by the previous dive.
One thing RGBM does not have: user-configurable gradient factors. The conservatism is encoded in the bubble physics equations — seed distribution, critical radius, phase volume threshold. There is no dial to adjust. Divers either accept the algorithm's outputs or they do not.
VPM-B: The Desktop Standard
David Yount at the University of Hawaii developed the Varying Permeability Model from gelatin bubble nucleation experiments in the 1980s. Ross Hoffman later extended it to the VPM-B variant used in practice.
"Varying permeability" refers to the changing ability of a bubble membrane to pass gas. Small bubbles have high surface tension (high internal pressure, low permeability to growth). As a bubble grows, surface tension decreases and it becomes more permeable — growth accelerates. VPM models this physics explicitly.
The critical parameter is initial excitation radius, approximately 0.7 µm at surface pressure. Greater descent pressure crushes nuclei further, effectively reducing their radius. Smaller nuclei tolerate less supersaturation. This means VPM automatically tightens gradient limits for deeper profiles — a diver going to 60 m gets a more conservative schedule than the dissolved-gas model would suggest, not because of a rule applied to depth, but because the physics of nuclei compression at that pressure demands it.
VPM-B has a conservatism parameter (integer 0 to 5+, analogous in effect to lowering GF settings in ZHL-16C). It tends to produce slightly longer intermediate-depth stops compared to RGBM for the same profile, with similar total decompression time.
The important constraint: VPM-B runs only in desktop decompression planning software — primarily Subsurface (open-source, with VPM-B as its default algorithm) and MultiDeco. No commercially available wrist computer implements VPM-B. Divers using VPM-B plans carry printed schedules and dive them to the letter.
What the Outcome Data Shows
Los Alamos National Laboratory ran a comparison across 11,738 identical dive profiles, computing predicted DCS incidence for ZHL-16C and RGBM side by side. ZHL-16C produced 0.0135 DCS events per dive; RGBM produced 0.0175 DCS events per dive. The difference is not statistically significant.
This is a meaningful result. RGBM models more complex physics, explicitly accounts for bubble nuclei, and handles repetitive dives differently — but its real-world DCS outcomes are equivalent to ZHL-16C in controlled comparison. The additional modelling does not produce a safety advantage detectable in incident data. Both algorithms deliver acceptable outcomes in practice.
What this does not say: that the algorithms are equivalent in all edge cases, or under extreme repetitive exposures, or on very deep trimix profiles. The comparison was across a defined profile set. Outside that envelope, the evidence thins.
Team Diving Across Different Algorithms
When a team of divers uses different computers running different algorithms, the decompression schedules will differ. Standard practice: before the dive, compare schedules and identify the most conservative one. All team members follow that schedule throughout — everyone waits at each stop until every computer has cleared.
This "ratchet effect" moves only in one direction. A stop cannot be shorter than the longest requirement in the team. If you are planning a technical dive with mixed algorithm computers, running the dive profiles in Subsurface before you get in the water lets you spot divergences before they become in-water decisions.
References
- Bühlmann AA. Decompression — Decompression Sickness. Springer-Verlag, 1984 (revised 1992).
- Wienke BR. Basic Diving Physics and Application. Best Publishing, 1994.
- Wienke BR, O'Leary TR. Understanding Modern Dive Computers and Operation. Springer, 2018. DOI: 10.1007/978-3-319-94054-0
- Yount DE, Hoffman DC. On the use of a bubble formation model to calculate diving tables. Aviat Space Environ Med. 1986;57(2):149–156.
- NEDU TR 11-06. An Evaluation of Decompression Algorithms for Use in a Fleet Dive Computer. US Navy Experimental Diving Unit, 2011.
Train With Me
Algorithm selection and dive computer configuration are covered in every technical and CCR course I teach. Enquire about training →
Share this post