The Drogon Dive Planner

Copyright © 1999 - 2001 Gordon Henderson


DDPLAN is screen based and menu driven. Most of the time you select a menu option by simply pressing it's key. You don't usually need to press the Enter key when selecting a menu choice.

The Main Menu

    D. Plan a dive.

    G. Perform various gas calculations
    F. Perform various cylinder filling calculations

    Q. Quit.

  Choose D, G, F or Q: 

The main menu allows you to make three selections: D to enter dive planning mode, G to enter the gas calculator and F to enter the cylinder filling calculator.

The gas calculator and cylinder filling menus are fairly self-explanatory and won't be discussed further here.

Fast wind through to...

Overview of the planning process

Essentially, to produce a decompression table for your dive, you have to use the built-in editor to edit your dive plan, use the Decompression Gas-Set editor to select your decompression gases (or the Setpoint set editor if using closed circuit), then check that the System Settings are to your liking, then Run the plan and view the output file.

Depending on how you like the output, you may have to go back to the editor to perhaps vary times or gases (or setpoints), maybe even visiting the gas calculations screen to work out a better (or worse!) gas mixture and entering these gases into the decompression gas sets, and so on.

Finally, you validate your plan by entering it into a different desktop software model and seeing what that produces, or if you have more than one decompression program, use each in-turn unil you are absolutely satisfied that everything is OK. If it all appears OK, admire the output and get on with your life. I don't seriously exepct you to actually use this to dive with!

Planning a Dive: A quick tutorial

From the main menu, press D to enter Dive Planning mode. From here, press E to enter the editor. Type L to load in a file and enter test to load the supplied test profile. The screen should look like:

  Step   Depth   Time    Gas           Type   ppO2  ppHe  ppN2   END 
   1    0-> 90   3:55    Trimix 13:50   OC    1.30  5.00  3.70    37
   2        90  20:00(R) Trimix 13:50   OC    1.30  5.00  3.70    37

This is Eric Bakers test dive published in his articles in Immersed magazine. It describes an open circuit dive to 90m on Trimix 13/50. The first line is the descent and the second line is the bottom time. The (R) after the time indicates that this is a Run-Time - A diver following this plan will leave the bottom and start their ascent 20 minutes after leaving the surface. (So he or she would only get 17 minutes actually on the bottom) It is possible to specify bottom time rather than run-time and this will be covered later.

From the editor, press Q to quit back to the Dive Plan menu, then C to inspect and change the system settings. As supplied with DDPLAN 2.15 these should be as follows:

                            Dive RMV: 20 
                            Deco RMV: 15
                        Ascent  rate: 10
                        Descent rate: 23
                     Last stop depth: 3.0
                  Deco stop interval: 3
  Consider Alveolar pH2O, pCO2, etc.: No
             pH2O, pCO2, etc. factor: 0.567
               Gradient factor (low):  30%
              Gradient factor (high):  75%
         Default CC Dive Lo setpoint: 0.70
         Default CC Dive Hi setpoint: 1.30
             Nitrogen Model Filename: zhl16-n2
               Helium Model Filename: zhl16-he
              Gas Switch buffer time: 0
                 First Stop Pad time: 0

By default in DDPLAN, alveolar water vapour pressure, CO2, etc. is not taken into account. To make this plan give the same results as Erik Bakers test then we must enable it. Use the DOWN Arrow key to move the highlighted line down to the line starting "Consider Alveolar ppH2O..." and press the Enter key to change the value. (It will toggle between Yes and No every time you press Enter) Press Q to quit the settings screen and answer N to the save question. (Unless you want to consider Alveolar ppH2O all the time!)

Now press D to edit the decompression gas sets. We are interested in supplied set No. 8. These are the gases Erik used for his test run. It should read

         Set 8
         D  Mix      
        33 Nitrox 36
        21 Nitrox 50
         9 Nitrox 80

This indicates a switch to Nitrox 36 at 33m, then to Nitrox 50 at 21m and finally Nitrox 80 at 9m.

Press Q to quit the decompression gas set editor, then R to run the profile. You will be asked a set of questions before the profile is actually run: Answer N to the repeat dive question, Y to the gradient factor question, 8 to the Decompression gas set question, N to the intermediate stops question and finally the profile will be calculated.

  Preparing to run the dive:
    Buhlmann or (when it's finally coded VPM) .. [B]? Buhlmann
    Is this a repetitive dive .................. [N]? No
    Enable Gradient Factor conservatism ........ [Y]? Yes
    Do intermediate stops? ..................... [Y]? Yes
    Decompression gas set (0 for none) ......... [0]? 8

  Running profile ... Done. Output file is test.txt

  No ascent violations were detected.

             Dive time:  0:20:00
    Ascent & Deco time:  1:35:18
        Total run time:  1:55:18

At this stage DDPLAN will ask you if you wish to save the current tissue values for a repeat dive. Answer N for the time being. DDPLAN will then display the output from the run on your screen. You can use the space-bar or the up and doqn arrow keys to view the file. Press Q when finished viewing.

The actual output is stored in a file called test.txt. You can look at this with an editor (Eg. notepad in the Win9x/NT world or vi or emacs in the Unix world), or use the built-in file viewer. Press V from the Dive Plan menu. In the file viewer, use the Up and Down arrow keys to scroll the screen one line at a time, or the Page Up and Page Down keys to scroll it a screenfull at a time. Press Q to exit the viewer. Assuming Gradient Factors were enabled and set to 30% and 75% and you enabled alveolar water vapour pressure, etc. then you should get a run time of exactly 115 minutes to the end of the 3m stop.

Now go back into the Editor and press Control-E to erase the profile and load testcc. This is effectively the same profile but using a closed circuit rebreather, set to the low setpoint (0.7) for the descent and 1.3 for the bottom time. Exit the editor with Q as before and run the profile. Answer the same questions as before, but reply 0 to the OC decompression gas set question and 0 to the CC Decompression setpoint set question. This time the total run time to leaving the 3m stop should be 109 minutes. Viewing the profile will show not the diluent gas used, but the calculated gas in the loop as if it were an open circuit gas.

The Dive-Profile Editor

This screen allows you to enter a dive profile. The editor has built-in help, which you can access at any time by pressing the ? key.

For the most part, you will want to simply use the A command to add new lines to the profile.

Each line in the profile consists on a starting depth and an ending depth. Then there is optionally a time and time type (if it's a constant depth section), then the gas used, open circuit or closed circuit and finally the setpoint if it's a closed circuit section of the dive profile. Finally, it will ask OK? and you can either enter Y or N for yes or no. If you answer yes, the line will be added into the profile.

Time Type: Run Time or Seg Time: If you press R to specify a run time then that is the time that you must leave that stop at. If you press S to specify a segment time, then that will represent the time of that segment. Note that if you specify a segment time, the actual time spent at that depth will be rounded up to the nearest whole minute. So if your descent time was 1 minute and 1 second and you specified 20 minutes for the segment time, you will actually leave the bottom after 20 minutes plus 59 seconds.

When entering values, you may be prompted for a default value enclosed in [square brackets]. To use this default value, just press the Enter key.

Note: The very first line in your profile must start at depth 0, and there can be no gaps in the depth between lines.

To make changes to a line, use the UP and DOWN arrow keys to move the highlight to the line you wish to change, then you can press E (or Enter) to edit that line.

You can load an existing profile with the L command and save your current profile with the S command. If you don't give a filename, then the name "default" will be used. You can only load a new file from disk if there are no lines in the current profile. Use Control-E to erase the profile, or delete every line individually.

The Settings Screen

Entering C from the Dive Plan menu let you change the various system settings.

The default settings:

                            Dive RMV: 20 
                            Deco RMV: 15
                        Ascent  rate: 10
                        Descent rate: 23
                     Last stop depth: 3.0
                  Deco stop interval: 3
  Consider Alveolar pH2O, pCO2, etc.: No
             pH2O, pCO2, etc. factor: 0.567
               Gradient factor (low):  30%
              Gradient factor (high):  75%
         Default CC Dive Lo setpoint: 0.70
         Default CC Dive Hi setpoint: 1.30
             Nitrogen Model Filename: zhl16-n2
               Helium Model Filename: zhl16-he
              Gas Switch buffer time: 0
                 First Stop Pad time: 0

You use the up and down arrow keys to select a setting, then press the Enter key to change it.

The settings:

  • Dive RMV:
  • Deco RMV:
    These represent the respritory minute volume, expressed in litres per minute. They are used in the Open-Curuit gas calculations.
  • Ascent Rate:
  • Descent Rate:
    These represent your chosen rate of ascent or descent in metres per minute.
  • Last stop depth:
    This is your chosen shallowest stop in metres. Some people prefer to do their last stop at 6m or even 4.5m instead of the default value of 3m.
  • Deco stop interval:
    This is how close together you want your decompression stops.
  • Consider Alveolar ppH2O, pCO2, etc.:
  • pH2O, pCO2, etc. factor:
    Take into consideration the effects of water vapour, CO2 and other gases in the inspired gas as it enters your lungs. See Erik Bakers articles for more details.
  • Gradient factor (low):
  • Gradient factor (high):
    Use Gradient Factors to introduce deep stops into your decompression. Again, see Erik Bakers articles for more details.
  • Default CC Dive Lo setpoint:
  • Default CC Dive Hi setpoint:
    The default setpoints you are prompted with when planning a closed circuit dive.
  • Nitrogen Model Filename:
  • Helium Model Filename:
    The filenames of the model files. If you have your own compartment models and you think you know what you are doing then you can put the model files into the data directory and activate them here.
  • Gas Switch buffer time:
    Some people think that you should spend at least a minute and sometimes two when you make a gas switch before leaving that stop and moving onto the next. This parameter gives an add-on factor to your stops in extra minutes.
  • First Stop Pad time:
    If you are a bit slow on the ascent, you can find yourself lagging behind your run-time. This adds time (in minutes) onto your very first decompression stop to give you a bit of breathing space. If does of-course add to your overall dive time!

Decompression Gas Sets

DDPLAN has a concept of decompression gas sets. A gas set is a table of gases and depths which will be used during decompression. DDPLAN can manage 8 different gas sets, each gas set can contain up to 6 different gases.

If you are planning a closed circuit dive, then the same gas sets are used to switch diluent gases during the ascent.

Editing a gas set is reasonably straightforward. Press D from the Dive Plan menu and you will be presented with a screen containing the different gas sets. The default set is shown below:

      Set 1            Set 2            Set 3            Set 4
      D  Mix           D  Mix           D  Mix           D  Mix      
  1  21 Nitrox 50                      99 Trimix 14/55  99 Trimix 14/55
  2   6 Oxygen                         33 Trimix 35/30  33 Nitrox 35
  3                                    21 Trimix 50/20  21 Nitrox 50
  4                                     6 Oxygen         6 Oxygen

      Set 5            Set 6            Set 7            Set 8
      D  Mix           D  Mix           D  Mix           D  Mix      
  1                                                     33 Nitrox 36
  2                                                     21 Nitrox 50
  3                                                      9 Nitrox 80

These sets are just for example only, you may need to edit them to your own dive plans, however set 8 is the gas set used by Erik Bakers example dive profile.

To edit a set, enter it's number, then you have a few commands to add a new entry or delete an existing entry. The set is automatically sorted in depth order.

Note:The depth for each gas change must be a multiple of the stop depth! If your stop depth is (say) 4m and you specify a gas switch at 21m, then that gas switch will be ignored! This may be changed in a future version of DDPLAN.

The gas sets are automatically saved when you exit the screen back to the Dive Plan menu.

Closed Circuit Setpoint Sets

Similar to the decompression gas sets, the setpoint sets allow you to specify a set of ppO2 setpoints for use during closed circuit decompression. As with the Decompression Gas Sets, DDPLAN can maintain 8 sets of up to six setpoints each.

Editing is done in exactly the same manner as the Decompression Gas Sets.

Running a Profile

Once you have entered your dive profile with the editor, selected and edited your decompression gas sets (which also double as diluent changes if you want to change closed circuit diluent on ascent), edited your setpoint sets if on closed circuit and checked the system settings, you can ``run'' your dive through the calculator.

Before the dive is calculated, there are a few questions that are asked. You can simply press the Enter key to accept the defaults in []'s, or type in a new value. The questions asked are as follows:

  Preparing to run the dive:
    Buhlmann or (when it's finally coded VPM) .. [B]?
This version of DDPLAN is a pre-release to the version supporting the VPM algorithm. For the time being, you can only enter B, or press the ENTER key here.
    Is this a repetitive dive .................. [N]? 
DDPLAN is capable of keeping track of your tissue states between dives. Type Y or N here. If you are doing a repetitive dive, then DDPLAN will ask:
      Surface interval (hours) .............. [ 0.0]? 
and you should enter your surface interval in decimal hours. (Eg. 3.5 for 3 hours and thirty minutes).
    Enable Gradient Factor conservatism ........ [N]? 
This lets you turn on or off Erik Bakers Gradient Factor conservatism. The conservatism is controlled by 2 parameters which you can change in the settings page.
    Do intermediate stops? ..................... [Y]? 
Very occasionally, there will be a gap in the stops - Eg. the deepest stop might then jump up 6m or 9m the next stop. This option (on by default) forces all intermediate stops to happen.
    Decompression gas set (0 for none) ......... [0]? 
This allows you to select which decompression gas set to use on the ascent. (Or which diluent gas set if you are diving on closed circuit). Enter 0 to 8.
    CC Decompression setpoint set (0 for none) . [0]? 
If your dive has any closed circuit segments in it then you will be asked this question. Enter the number of the setpoint set you wish to use for decompression, or zero for none.

The profile will then be calculated and you will be given the option of saving the current tissue states for the next dive. Note: as of version 2.00 of DDPLAN, you can only have one stored tissue profile, so if you are using the same PC for more than 1 person to calculate their dive plan, then unless you perform some creative file renaming or moving you won't be able to use DDPLAN in this way)

Once the profile has been run, you can view the output file. Use the V key from the menu or use an external file viewer program like notepad (under Win9x/NT) or more or an editor like VI or Emacs under Unix.

Generating a Table

To make DDPLAN generate a table (or set of tables), you need to do three things. Firstly, you need to use the editor to create a sample profile, then you need to input the start and ending depth and time parameters, then finally enter information regarding the formatting of the output file.

It's important to note at this stage that DDPLAN outputs tables in HTML format. Using a web browser (eg. Netscape), you can easily print the tables, then if required laminate them to take diving with you.

Running through an example should make the process a little clearer.

Firstly, we need to decided what sort of table we are after and use the editor to create a sample dive plan. As of DDPLAN 2.10, this plan must be two lines long for a normal open or closed circuit dive. (it can also be 3 lines long for a CC to OC bail-out table, but we'll cover that later)

The first line of the plan must be the descent to the target depth, the second line the time at the target depth. Don't worry too much about the actual time or depth as these will be chosen later in the table generation section. All we really need to do is specify the bottom gas and if it's an open or closed circuit dive.

Eg. We want to produce a table for open circuit air diving at 42 metres in the time span from 15 to 45 minutes in 3 minutes increments and decompress on 80% Nitrox at 9 metres.

The edit screen might look like:

  Step   Depth   Time    Gas           Type   ppO2  ppHe  ppN2   END 
   1    0-> 42   1:24    Air            OC    1.09  0.00  4.11    42
   2        42  15:00(R) Air            OC    1.09  0.00  4.11    42

The first thing we need to to is to make sure the output is reasonable for a single run. So quit the editor and press R to run your sample profile. Enter the parameters as required, remember to use the gas-set editor to edit a gas set which contains 80% Nitrox for decompression to be used at 9m.

View the output and make suse it looks reasonable. For a 15 minute dive to 42m, decompressing on 80% Nitrox at 9m, we should be looking at a t0tal run-time of about 27 minutes, assuming the default settings.

Now press T to run a table. The first few questions are identical to the normal single run questions - answer them as you feel are appropriate for the dive, as above.

You'll then be asked questions about the table generation. The questions and default values are shown below:

    Start depth .............................. [ 30]? 42
      End depth .............................. [ 51]? 42
    Depth increment .......................... [  3]? 
    Start time ............................... [ 18]? 15
      End time ............................... [ 45]? 
    Time increment ........................... [  3]? 

At these questions, you can answer 42 for the start and end depth (leave the increment at 3, it doesn't really matter for this table), you'll have to enter 15 for the start time, the others are OK.

Finally, there are a set of questions regarding the actual output:

    Output CNS data   [Y]? Yes. Output OTU data   [N]? No
    Split table depth ..... [  0]? 
    Deepest table stop .... [  0]? 
    Table cell width ...... [  0]? 
    Font size ............. [  2]? 
    Table Title ........... [default]?

You can leave these at the defaults for now, we'll look at them later.

The table will now be generated and the output filename will be given. Use a web browser (eg. Netscape) to view the resulting file, which might look similar to this:

  42m   default   42m  
Gas ppO2 D\RT 15 18 21 24 27 30 33 36 39 42 45
Air   24                     2/ 47
Air   21       3/ 27 3/ 30 3/ 33 3/ 36 3/ 39 4/ 43 5/ 47 2/ 49
Air   18 3/ 18 3/ 21 3/ 24 1/ 28 1/ 31 1/ 34 3/ 39 4/ 43 4/ 47 4/ 51 5/ 54
Air   15 1/ 19 1/ 22 2/ 26 1/ 29 3/ 34 4/ 38 3/ 42 4/ 47 5/ 52 6/ 57 6/ 60
Air   12 1/ 20 2/ 24 3/ 29 4/ 33 4/ 38 5/ 43 7/ 49 7/ 54 7/ 59 8/ 65 9/ 69
Nx 80   9 1/ 21 2/ 26 2/ 31 3/ 36 4/ 42 4/ 47 4/ 53 5/ 59 6/ 65 7/ 72 7/ 76
Nx 80   6 2/ 23 3/ 29 4/ 35 4/ 40 4/ 46 5/ 52 7/ 60 8/ 67 9/ 74 9/ 81 11/ 87
Nx 80   3 4/ 27 4/ 33 5/ 40 8/ 48 10/ 56 11/ 63 13/ 73 14/ 81 15/ 89 18/ 99 19/106
CNS% 10 13 15 18 21 24 27 30 33 37 40
    DDPLAN v2.15   Gradient Factors: 30/75      

The table will be generated according to the values in the settings screen and the run parameters (ie. Gradient Factors on or off, decompression gas set used, etc.)

Understanding the table:

The first column is the gas breathed. This will either be the open circuit gas, or the diluent in a closed circuit rebreater. The next column is the ppO2. This is blank if not on a closed circuit rebreather. The third column headed D/RT is the depth of the stop. To the right of this on the top row is the Run-Time of the dive.

For each Run-Time, reading down gives you 2 numbers. Eg. the 18 minute Run-Time column reads (above) 3/21 against the 21 metre row. These numbers are the segment time and the run time respectively. Ie. in this example, the time to leave the bottom (42 metres), get to the first stop (at 21 metres) and do the stop is 3 minutes, you are then expected to leave the stop when your dive timer reads 21 minutes.

Playing with this, will give you a feel for the basic features of table generation.

Output Options:

The 5 final questions give you some control over the output produced.

    Split table depth ..... [  0]? 

The lets you split the table at a selected depth. On very long profiles, you might want to split the table to produce a double-sided output. Enter the depth here where you want the table to split at. Entering zero (the default) doesn't produce a split table. Note that the split has to be at a multiple of the stop depth (ie. every 3 metres by default)

    Deepest table stop .... [  0]? 

This pads out the table so that every table can have the same number of rows. This lets you print them out all to be the same height which might make then look better when you stick 2 back to back and laminate them. The way to work out the deepest stop is to run it as normal and view it with a web browser, work out the deepest stop on the deepest table, longest run-time and enter that depth here.

    Table cell width ...... [  0]? 

This outputs a width instruction to the HTML table output. You can fix the width to make each table the same width. Note that some browsers re-render the page for printing, so it can look good on the screen and subsequently not look so good on the printer. Experimentation is the key here. ``30'' is a good starting number. Zero doesn't output a width instruction.

    Font size ............. [  2]? 

This lets you specify the size of the font used in the output. Might be useful for making big tables fit onto the screen, or small tables bigger. The default value of 2 ought to be OK for most applications.

    Table Title ........... [default]?

This is the title of the table. It defaults to the name of the last file edited, or the string ``default'' if you are starting anew.

Generating a Bail-Out Table:

You can use DDPLAN to generate a table which will let you bail-out to open circuit from a closed circuit dive. To do this, you need to edit in a third line to the profile. This line should be an open circuit line with a segment time of zero (this is important - make sure it's a segment time and not a run time!). Eg:

  Step   Depth   Time    Gas           Type   ppO2  ppHe  ppN2   END 
   1    0-> 60   2:00    Trimix 10/50   CC    0.70  3.50  2.80    25
   2        60  30:00(R) Trimix 10/50   CC    1.30  3.17  2.53    22
   3        60   0:00(S) Trimix 10/50   OC    0.70  3.50  2.80    25

Assuming here that you are bailing out to Trimix 10/50. If you had (Eg) 35% and 80% available to you and you had edited these into a gas set, then your table for 60 metres for various times might look like:

  60m   Test   60m  
Gas ppO2 D\RT 15 18 21 24 27 30
10/50   36   3/ 21 3/ 24 3/ 27 3/ 30 4/ 34
Nx 35   33 5/ 20 3/ 24 3/ 27 3/ 30 3/ 33 3/ 37
Nx 35   30   1/ 25 1/ 28 1/ 31 1/ 34 1/ 38
Nx 35   27   1/ 26 1/ 29 1/ 32 1/ 35 1/ 39
Nx 35   24 1/ 21 1/ 27 1/ 30 1/ 33 1/ 36 1/ 40
Nx 35   21 1/ 22 1/ 28 1/ 31 1/ 34 1/ 37 1/ 41
Nx 35   18 1/ 23 1/ 29 1/ 32 1/ 35 1/ 38 1/ 42
Nx 35   15 1/ 24 1/ 30 1/ 33 1/ 36 2/ 40 4/ 46
Nx 35   12 1/ 25 1/ 31 1/ 34 3/ 39 4/ 44 4/ 50
Nx 80   9 3/ 28 3/ 34 4/ 38 4/ 43 5/ 49 6/ 56
Nx 80   6 9/ 37 13/ 47 17/ 55 19/ 62 22/ 71 26/ 82
    DDPLAN v2.10   Gradient Factors: 20/100      

Of note here is the time for the 15 minute run time - You'd have to switch from 10/50 to Nitrox 35 at 33 metres, then your next stop would be 24 metres. There are no intermediate stops.

NOTE: What the table generator does is to ``edit'' the dive profile (you can check this by going into the editor and you'll see the profile has been changed to the last table generated!) then running it and outputting the table.

Although additional checks have been put into version 2.15, DDPLAN isn't that clever about the contents of the editor screen when generating tables. In particular, it won't (yet) check that the profile is reasonably sane. With just about everything in the computing world: GIGO is the rule of the day. (Garbage In, Garbage Out). Make sure you have a sensible 2 or 3 line profile loaded. It's also important that the time in the third line if generating a bail-out plan is a segment time and not a run-time.

Go back to the main menu.

Gordon Henderson