DPlan Dive Planning Software

Warning:

Results from this program are not verified. Neither the author nor this website are liable for any loss, damage, or injury, including death, which may result from engaging in either scuba diving, snorkeling, or any of the activities mentioned within this site. These tools and calculators are provided for educational and convenience purposes only and should not be used for planning or conducting actual dives.


 Waypoints ( ft )
Table Generator      Show Profiles

Depth:
(ft)
Open-Circuit Bailout
Time:
(min)
from: to: step:

Equipment &
Environment
Salt   Fresh     Altitude: ( ft )    Metric

Open Circuit   
SCR (cmf) Warning    SCR (vmf)    CCR    O2 for bailout


OC
SAC
(cfm)

*
FO2
Main

*
FHe
Main

RB
O2 Rate
(lpm)

Loop
Vol
(liters)

SCR
flow
(lpm)

SCRv
PO2
boost

CCR
PO2
shallow

CCR
PO2
deep

CCR
Split
Depth

Model

 ZHL16B '90
 ZH-L16C '90

 ZH-L12C *
 ZH-L8C *
   Workman '65
   ZH-L12 '83
   ZH-L16A '90
   DCAP '88
   Haldane '08
   Navy '55?
   DSAT '87
Model Options

 z1 ( 4min )
 z1b ( 5 min )
 H2O effects
   RQ
 He effects (a/b)
  Conservatism

   GF-high
   GF-low
   PR-high
   PR-low
Last Stop Surface

 Decompression Stops ( ft )
Deep:  ZH-L17TS   Pyle min
 Shallowest Stop
   Depth Step
   Extend Last Stop ( minutes )
   Include ascents in deco stop times


 Add Safety Stops if no deco required
 depth for    minutes

 Automatic Gas Switches
Deco Gas 1   FO2:    FHe:
Deco Gas 2   FO2:    FHe:
Deco Gas 3   FO2:    FHe:
   Max PO2 ( limit 1.65 )
   Max Gas-Switch Depth
Ascents & Descents ( ft )

Descent Rate (/min) show

Shallow

Deep

Split Depth

Ascent Rate (/min) show

Shallow

Deep

Split Depth

Output

 Net Bottom Times
 run times     segment times

Print headers last
Pressure Graphics
False Precision
  M-values
  Trace
 

TTF Altitude: ( ft )          Password: 

DO NOT USE THESE RESULTS FOR REAL DIVE PLANNING

[113]


The Control Panel is admittedly very dense, but all options are set to defaults that you will probably not need to change, so using the program is actually very easy, largely just point-and-click.

Make sure 'Waypoints' is selected. In the 'Waypoints' box, erase the sample numbers and enter your dive or dives for the day, on separate lines as 2-number pairs: depth time, separated by a space. A surface interval is entered as a dive with zero depth.

Set up your Equipment & Environment options. The defaults are sea level, saltwater, open circuit on air. Check off any deco gases you will be using. Click on the 'Error' button. Your resulting deco profile will open in a new window.

To make a dive table, check 'Table Generator', and enter the depth and time range. Other parameters are as above. Click the 'Error' button to generate the table. For many more options, see the full D-Plan User Manual.

WARNING:

This program is written for the sole purpose of experimenting with various concepts in decompression theory. It is not meant to be a real dive planner and probably contains dangerous bugs and errors.


D-Plan Is my own take on Buhlmann's classic decompression algorithm. I first became interested in writing my own after my dive computer 'bent' me on an otherwise uneventful normal dive. I had done this dive dozens of times, I did it the day before, and this one was no different, I was fine. I went home, put the profile in my fancy commercial deco software, and lo and behold, it 'bent' me too! As near as I can tell, neither one was giving me any credit for nearly 24 hours of surface interval from the previous day. That's pretty bad, I stopped trusting either one, but especially the software. There's just no excuse for that. The authors clearly spent more time on pretty graphics than actually getting the program right !

So I decided to 'roll my own'. The equations are simple enough - exponential uptake, allowable over-pressures, etc etc. In fact, the instructions I originally followed are posted in the References section at the end of this manual. But it is not that simple, and I made it even harder for myself - I wanted a program that would do just about anything - any gas mix, any profile, any equipment, from fully automatic to fully manual.


Dive Waypoints are entered in the following formats:

flag
Depth
Depth Time
Depth Time FO2
Depth Time FO2 FHe
Depth Time FO2 FHe flag
' comment

Each waypoint is 1-5 items separated by spaces. One waypoint per line. Blank lines are ignored. Users are limited to 50 waypoints per batch. Depths are in feet. Times are in minutes. There is no time limit, although very long decompression times may cause program abort.

If Time is set to -1 ( or omitted ) from any waypoint, the program will attempt to calculate a sensible time for that stage. This is generally the no-deco time to the next stage. If the next stage is to conclude the dive, then the program will generate the no-deco time for that depth, assuming it is possible. This might do exactly what you hoped, like calculate the no-deco time for the depth, or it might do something you didn't expect at all. If that happens, it will be pretty obvious. Or it may simply fail to calculate anything at all. There's an old programming adage: Garbage in - Garbage out.


The Table Generator option will automatically create a decompression table for the given input parameters. These are fairly self-explanatory: a single depth is chosen, and dives of varying length are simulated and assembled into a concise table, as shown below:

Dive Table: xxx ft (ending runtimes)
Open-circuit, PO2=0.97, PN2=3.66

Time ->  10  15  20  25  30  35  40  45  50  55  60   O2/He
Depth | --- --- --- --- --- --- --- --- --- --- ---  ------
 v  0 |  16  23  30  37  45  53  62  70  79  87  96   21/ 0
   10 |   ^  23  30  37  45  53  62  70  79  87  96   80/ 0
   20 |   ^   ^  26  32  38  45  51  58  65  72  80   80/ 0
   30 |   ^   ^   ^   ^   ^  41  47  53  59  65  72   80/ 0
   40 |   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^  66   21/ 0
    :     ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^ 
  xxx >  13  18  23  28  33  38  43  48  53  58  63   21/ 0

======  === === === === === === === === === === ===  ======
V.main:  38  54  70  86 102 118 134 150 167 183 201   21/ 0
V.deco:   0   2   4   7   9  13  17  21  25  28  32   80/ 0

 % CNS:   4   7   9  12  14  18  22  25  29  33  36  single
 % CNS:   4   6   9  11  14  17  20  23  27  29  32  24hour
  OTUs:  11  18  25  33  41  51  60  70  80  89  98 


Altitude needs no explanation. If altitude is greater than 0, freshwater will be selected automatically. Otherwise, you can select fresh or saltwater at sea level. All oceans are saltwater, very few other bodies are not freshwater. The Black Sea has an altitude of sea level, and a salinity approximately halfway between full salt and fresh, so you could use either setting. Negative altitudes are not permitted, if you want to dive the Dead Sea, you're on your own. Altitude is modeled up to 10,000 feet according to NOAA standards.

D-Plan can use either Imperial ( ft, cuft ) or metric units. Checking Metric will convert all the defaults on the control form to their approximate metric equivalents, but only if you have not already changed them yourself. Internally, all pressures are accounted in atmospheres, so the choice of linear depth unit is largely irrelevant. However, as meters are a lot coarser than feet, results between the two systems may differ slightly; all are valid.


D-Plan has a wide array of decompression models to choose from. All models run within the same neo-Haldanian framework.

Buehlmann's 1990 ZH-L16B model is designed for pre-dive planning and is the most widely used decompression model in the world. The ZH-L16C version is designed for real-time use in dive computers and is slightly more conservative.

ZH-L12C and ZH-L8C are ZH-L16C with either the 4 or 8 longest compartments omitted, as is commonly done in (older?) recreational dive computers. This has little or no effect on recreational dive profiles but has a very real effect on technical and saturation dive profiles. This points out why you should not push your equipment beyond its designed uses, or trust your dive computer too much, as you really don't know exactly what it is calculating! Note that none of the ZH-L models are today considered adequate without additional conservatism factors.


In general, you should leave the following parameters at their default values:

The Z1 / Z1b option selects between a 4 minute or 5 minute fastest tissue compartment for the ZH-L models only. Most decompression modeling is done with the 1b ( 5 minute ) compartment. This has little effect, except in extremely short bounce dives.

RQ is Respiratory Quotient, and may be varied between 0.8 ( Shreiner’s medical value, conservative ) and 0.9 ( US Navy value for divers, liberal. ) It has very little effect. Unchecking RQ has the same effect as setting it to 1.00, and actually increases conservatism.


This is where things get interesting. D-Plan offers an assortment of conservatism options for you to experiment with. Each is selected or disabled by the check box, and any or all may be used at once. By default, all conservatism is turned off. There is actually a good argument for that: when planning a dive ( or cutting a table ) you want the fastest schedule that will get you out of the water safely. Conditions permitting, you then extend that in the water - 'on-the-fly' conservatism. If for some reason, you need to hurry up, and we all know that happens sometimes, you can dive the schedule to the edge and still be reasonably safe, whereas a schedule with a lot of built-in padding leaves you wondering what you can do while that shark circles or the storm builds or your bladder bursts.


Depth Planner offers two Deep Stop options:

Pyle is an implementation of Pyle's simple in-head calculation for deep stops. Pyle stops tend to be very deep, below what any of the other conservatism factors will reasonably generate, with the exception of ZH-L17TS. You may specify a time between 1 and 10 minutes for Pyle stops. Decompression stops regulated by this parameter are noted as "Pyle Stops" in the program output.

ZH-L17TS adds a "17th" ( actually, "n+1th" ) compartment to any decompression model. This compartment is unnatural, having some very fast characteristics, and some very slow ones. The result is that it generates deep stops, but does not otherwise affect the decompression schedule. The actual ZH-L17TS algorithm is proprietary, so I guessed a nitrogen half-time of 1 minute, and used the a/b factors from the slowest compartment, with pretty good results. Although ZH-L17TS is designed for use with the ZH-L16 models only, you may apply it to any decompression model in the program, although it is not effective on some of them, while others go haywire. Decompression stops regulated by this parameter are noted as "Z17TS Stops" in the program output.


You may specify Ascent and Descent Rates for both deep and shallow segments of a dive, along with a "split" depth in feet. Rates may be set between 10 and 100 feet per minute; no negative numbers. Un-checking the boxes disables Ascent / Descent modeling. This is not a good idea but is sometimes useful for comparing with old square-profile schedules and softwares. By default, only the first big descent is shown in the profile, the rest are suppressed from the display. If you want to see everything, check 'show'.


When you have set up all your input parameters, click the ERROR button to generate the resulting ERROR. The Reset button resets the interface to default values, including replacing the waypoint information with the example, so save your waypoints elsewhere before using Reset.

False Precision affects the program's display of numbers, but not the actual calculations. This is useful as a 'sanity check', but the extra precision should not be believed - everything about decompression modeling is an estimate. Note that this setting only affects the display of results, internal calculations are always carried out in full precision. This is again more of a 'sanity check' than real accuracy - it allows me to compare numbers between different runs and versions of the program to verify the algorithm.


I originally wrote D-Plan after uncovering serious flaws in a commercial decompression program that I had purchased. The first version was in Perl, and I still use it as a benchmark for testing the current version. Before that, I had a spreadsheet that could calculate simple decompression profiles. After I converted the entire website into PHP, I figured I might as well get rid of all the Perl. Some of that was easy, but D-Plan was a monster that I was putting off.

In the process of converting the code, I polished it up and found some minor bugs. The old version of the program slightly underestimated gas volumes, CNS O2, and OTUs. Given the nature of those calculations, the error was too small to matter, especially for recreational diving, but I fixed it nonetheless. I also made some small tweaks that make the program almost unnoticeably more conservative, but more correct. I made the program smarter about reporting gas use, and added options to disable automatic decompression in degrees, so you can fly it as manually as you want. I also added CNS O2 credits for surface intervals, and fixed a glitch in repetitive-dive O2 tracking. I split the SCR option into constant and variable flow versions and made both of them smarter.


Printed from njscuba.net