Varying Permeability Model
Decompression Programs
Open source Mathematica, VBA, and BASIC  programs

Copyright 1995 - 2004 by Eric Maiken

VPM Site Map 

Multigas VPM   Nitrox VPM   Rebreather VPM   BASIC VPM  

VPM Decompression Program Downloads

The programs available on this site were the first bubble model programs to be used for sport mixed-gas decompression diving. They were the original deep-stop decompression programs used by technical divers. First used for oxygen-driven decompression from air and nitrox diving in 1992, VPM field deployment predated release of commercial deep stop programs such as GF-driven Decoplanner in 1998, or most recently, the RGBM-based GAP in 2003. A lot has changed over the past decade, and deep stops are now standard ascent procedure. For my own decompression diving, I use commercial VPM-B based software available on the VPM Links page.

In many senses, the programs on this site are obsolete for computing diving ascents. I have not actively worked on the code since 2000, and they do not implement the multi-diving extensions to the VPM that David Yount, Erik Baker, and I detailed in our publications. Nonetheless, if you are interested in how a decompression calculation is made, I hope that the programs prove useful in illustrating the links between inputs, intermediate computations, and ultimately the output of a decompression schedule.

Latest News

The current state-of-the-art in VPM calculations is Erik Baker's open source code FORTRAN program, which incorporates many of the issues we explored during our collaboration with Prof. David Yount. Erik has done further work on the VPM algorithm, with VPM-B, the latest version.  Erik's source code is available from the VPM Links page. 

Just the Facts!
If you just want to see some Nitrox VPM ascent schedules, then try the Excel-based VPM programs.

Who Knows What Lies Below?
The following experimental diving decompression programs were created utilizing different  interpreted programming languages, including Mathematica, Visual Basic for Applications, and QuickBasic.
These are NOT simple decompression calculators, but a starting point for divers who want to learn the details of how deco stops are set by the VPM. 

In all cases, the source code list is available rather than just compiled programs, so in addition to observing the differences between ascents calculated by the VPM and traditional supersaturation models (ie: nearly every other publicly available decompression program), you can compare the algorithms. 

Full Mixed Gas VPM Decompression Program
MultiGasVPM (Mathematica)

Requires the Mathematica program to run, but can be viewed with a free reader.  Decompression schedules can be calculated for multiple inert gasses, as well as for dives into the impermeable regime.

Prior to my tek95 presentation, I dived 60 dives based on trimix, air, nitrox, and oxygen gases, with decompression schedules calculated by this program.

BASIC and VBA Programs

BUG ALERT: The following BASIC programs should have the minimum ascent time set to a value > 0 for non-decompression dives. This does not affect any calculation that displays a decompression time > 3 min
Technical details are discussed in the VPMechanics9 notebook under the VPM Technical Publications page.

When using the BASIC nitrox programs, adhere to the following model assumptions when making inputs:

  • The decompressing object is gelatin, a rat or salmon as detailed in the scientific literature.
  • Maximum dive pressure is P< 8 Atmospheres. Only a stroke would dive this deep on air anyway.
  • Single dive per day.
  • No-stop times are calibrated to be comparable to the old USN tables.
  • Nitrox, Oxygen or air breathing gases.
  • Multilevel dive depths should be in order of deepest first.
  • The surface is at sea level. Wienke details how to convert the VPM to altitude diving.

Excel  VPM.xls (Visual Basic for Applications)

A graphical interface is used with an excel spreadsheet for I/O into this VBA program. You need the full installations of Excel 8.0/Office '97 or Excel 9.0/Office 2000 for this to run.

Excel  RebreatherVPM.xls (Visual Basic for Applications)

The VPM algorithm adapted to closed circuit diving using the same VBA program as VPM.xls. You need the full installations of Excel 8.0/Office '97 or Excel 9.0/Office 2000 for this to run.

The Original VPM.txt (DOS BASIC)

The text version of this file is the most straight-forward of the VPM programs --regardless of whether you run the program, the code list should be the easiest to understand. The program has a DOS interface, and runs on the Microsoft program QuickBASIC.


Please let me know if you find inconsistencies, have problems running a program, etc. I'll do my best to incorporate suggestions and pass on information via this page.