165
|
1 // **************************************************************
|
|
2 // OSTC - diving computer code
|
|
3 // Copyright (C) 2008 HeinrichsWeikamp GbR
|
|
4 //
|
|
5 // This program is free software: you can redistribute it and/or modify
|
|
6 // it under the terms of the GNU General Public License as published by
|
|
7 // the Free Software Foundation, either version 3 of the License, or
|
|
8 // (at your option) any later version.
|
|
9 //
|
|
10 // This program is distributed in the hope that it will be useful,
|
|
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13 // GNU General Public License for more details.
|
|
14 //
|
|
15 // You should have received a copy of the GNU General Public License
|
|
16 // along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17 //
|
|
18 // HISTORY
|
|
19 // 2011-01-20; jDG Cleanup addressing.
|
|
20 //
|
|
21 // **************************************************************
|
|
22
|
|
23 rom const float buhlmann_a[32] =
|
|
24 { // ??? Data ZH-L16A, from Tauchmedizin 1995 ???
|
|
25 //---a for N2 ----------------------------------------------------------------
|
|
26 1.2599, /// WARNING ZH-L16c-1990 gives different values: 1.3318
|
|
27 1.0000, /// ... 1.0048
|
|
28 0.8618, /// ... 0.8653
|
|
29 0.7562, /// ... 0.7520
|
|
30 0.6200, /// ... 0.6194
|
|
31 0.5043, /// ... 0.5043
|
|
32 0.4410, /// ... 0.4396
|
|
33 0.4000, /// ... 0.3977
|
|
34 0.3750, /// ... 0.3701
|
|
35 0.3500, /// ... 0.3456
|
|
36 0.3295, /// ... 0.3269
|
|
37 0.3065, /// ... 0.3065
|
|
38 0.2835, /// ... 0.2848
|
|
39 0.2610, /// ... 0.2622
|
|
40 0.2480, /// ... 0.2486
|
|
41 0.2327, /// ... 0.2341
|
|
42 //---- a of He ---------------------------------------------------------------
|
|
43 1.7424, /// ... 1,7443
|
|
44 1.3830, /// ... 1,3800
|
|
45 1.1919, /// ... 1,1879
|
|
46 1.0458, /// ... 1,0455
|
|
47 .9220, /// ... 0,9211
|
|
48 .8205, /// ... 0,8232
|
|
49 .7305, /// ... 0,7321
|
|
50 .6502, /// ... 0,6508
|
|
51 .5950, /// ... 0,5981
|
|
52 .5545, /// ... 0,5568
|
|
53 .5333, /// ... 0,5285
|
|
54 .5189, /// ... 0,5178
|
|
55 .5181, /// ... 0,5137
|
|
56 .5176, /// ... 0,5196
|
|
57 .5172, /// ... 0,5150
|
|
58 .5119 /// ... 0,5109
|
|
59 };
|
|
60
|
|
61 rom const float buhlmann_b[] =
|
|
62 {
|
|
63 //---- b for N2 --------------------------------------------------------------
|
|
64 0.5050, /// WARNING ZH-L16c gives a different value: 0.5241
|
|
65 0.6514, /// All the other values matches ZH-L16c-1990
|
|
66 0.7222,
|
|
67 0.7825,
|
|
68 0.8126,
|
|
69 0.8434,
|
|
70 0.8693,
|
|
71 0.8910,
|
|
72 0.9092,
|
|
73 0.9222,
|
|
74 0.9319,
|
|
75 0.9403,
|
|
76 0.9477,
|
|
77 0.9544,
|
|
78 0.9602,
|
|
79 0.9653,
|
|
80 //---- b for He --------------------------------------------------------------
|
|
81 0.4245,
|
|
82 0.5747,
|
|
83 0.6527,
|
|
84 0.7223,
|
|
85 0.7582,
|
|
86 0.7957,
|
|
87 0.8279,
|
|
88 0.8553,
|
|
89 0.8757,
|
|
90 0.8903,
|
|
91 0.8997,
|
|
92 0.9073,
|
|
93 0.9122,
|
|
94 0.9171,
|
|
95 0.9217,
|
|
96 0.9267
|
|
97 };
|
|
98
|
|
99 rom const float buhlmann_t05[] =
|
|
100 {
|
|
101 //---- half-life for N2 ------------------------------------------------------
|
|
102 -5.77078, // 4 min * -1/ln(2)
|
|
103 -11.54156,
|
|
104 -17.31234,
|
|
105 -25.96851,
|
|
106 -38.95277,
|
|
107 -56.26511,
|
|
108 -79.34823,
|
|
109 -111.08752,
|
|
110 -157.25376,
|
|
111 -210.63348,
|
|
112 -269.78397,
|
|
113 -344.80411,
|
|
114 -440.02199,
|
|
115 -562.65107,
|
|
116 -718.46213,
|
|
117 -916.11135, // 635 min * -1/ln(2)
|
|
118 //---- half-life for He ------------------------------------------------------
|
|
119 -2.178469512, // 1.51 min * -1/ln(2)
|
|
120 -4.356939024,
|
|
121 -6.809520594,
|
|
122 -10.08443834,
|
|
123 -14.72991637,
|
|
124 -20.89022419,
|
|
125 -29.61852919,
|
|
126 -41.99685264,
|
|
127 -59.43903569,
|
|
128 -79.62233931,
|
|
129 -101.9841124,
|
|
130 -130.33307,
|
|
131 -166.3283113,
|
|
132 -212.6821029,
|
|
133 -271.5729145,
|
|
134 -346.2900907 // 240,03 * -1/ln(2)
|
|
135 };
|
|
136
|
|
137 rom const float buhlmann_ht[] =
|
|
138 {
|
|
139 //---- N2 --------------------------------------------------------------------
|
|
140 4, // Compartiment length, in minute, for nitrogen.
|
|
141 8,
|
|
142 12,
|
|
143 18,
|
|
144 27,
|
|
145 39,
|
|
146 55,
|
|
147 77,
|
|
148 109,
|
|
149 146,
|
|
150 187,
|
|
151 239,
|
|
152 305,
|
|
153 390,
|
|
154 498,
|
|
155 635,
|
|
156 //---- He --------------------------------------------------------------------
|
|
157 1.51, // Compartiment half-life, in minute, for helium.
|
|
158 3.02,
|
|
159 4.72,
|
|
160 6.99,
|
|
161 10.21,
|
|
162 14.48,
|
|
163 20.53,
|
|
164 29.11,
|
|
165 41.20,
|
|
166 55.19,
|
|
167 70.69,
|
|
168 90.34,
|
|
169 115.29,
|
|
170 147.42,
|
|
171 188.24,
|
|
172 240.03
|
|
173 };
|
|
174
|
|
175 rom const float e2secs[] =
|
|
176 {
|
|
177 //---- N2 --------------------------------------------------------------------
|
|
178 5.7596E-03, // und zwar 1 - 2^(-2sec/HT)
|
|
179 2.8839E-03,
|
|
180 1.8467e-03,
|
|
181 1.2481e-03,
|
|
182 8.5537E-04,
|
|
183 6.0308E-04,
|
|
184 4.2541E-04,
|
|
185 3.0002E-04,
|
|
186 2.1195E-04,
|
|
187 1.5824E-04,
|
|
188 1.2355E-04,
|
|
189 9.6669E-05,
|
|
190 7.5751E-05,
|
|
191 5.92E-05,
|
|
192 4.64E-05,
|
|
193 3.64E-05,
|
|
194 //---- He --------------------------------------------------------------------
|
|
195 0.01518479275,
|
|
196 0.007621439546,
|
|
197 0.004883145696,
|
|
198 0.003299965996,
|
|
199 0.002260409686,
|
|
200 0.00159437032,
|
|
201 0.001124788578,
|
|
202 0.0007933953673,
|
|
203 0.0005606414716,
|
|
204 0.0004185553604,
|
|
205 0.0003267948866,
|
|
206 0.0002557222899,
|
|
207 0.0002003867723,
|
|
208 0.0001567161546,
|
|
209 0.0001227342122,
|
|
210 9.625377675E-5
|
|
211 };
|
|
212
|
|
213 rom const float e1min[] =
|
|
214 {
|
|
215 //---- N2 --------------------------------------------------------------------
|
|
216 0.1591036, // Integration constant for 1 minute,
|
|
217 0.08299596, // ie. 1 - 2^(-1/ht)
|
|
218 0.053942353,
|
|
219 0.036774196,
|
|
220 0.02534539,
|
|
221 0.017935055,
|
|
222 0.012684012,
|
|
223 8.961515534E-3,
|
|
224 6.338971845E-3,
|
|
225 4.73633146E-3,
|
|
226 3.699808187E-3,
|
|
227 2.89599589E-3,
|
|
228 2.270033275E-3,
|
|
229 1.775722E-3,
|
|
230 1.390893611E-3,
|
|
231 1.090974815E-3,
|
|
232 //---- e 1min He -------------------------------------------------------------
|
|
233 0.368108684,
|
|
234 0.2050840824,
|
|
235 0.1365792957,
|
|
236 0.09440463235,
|
|
237 0.06563586265,
|
|
238 0.04674161154,
|
|
239 0.03319905126,
|
|
240 0.02353005571,
|
|
241 0.0166832282,
|
|
242 0.01248075064,
|
|
243 0.009757532198,
|
|
244 0.007643290133,
|
|
245 0.005994168431,
|
|
246 0.004690816669,
|
|
247 0.003675481163,
|
|
248 0.002883586737
|
|
249 };
|
|
250
|
|
251 rom const float e10min[] =
|
|
252 {
|
|
253 //---- N2 --------------------------------------------------------------------
|
|
254 // Die 10 min Werte in float Notation:
|
|
255 // und zwar 1 - 2^(-10/ht)
|
|
256 0.823223, // 1 - 2^(-10/4.0)
|
|
257 0.579552,
|
|
258 0.425651,
|
|
259 0.312487,
|
|
260 0.226416,
|
|
261 0.165547,
|
|
262 0.11984,
|
|
263 0.0860863,
|
|
264 0.0616117,
|
|
265 0.0463665,
|
|
266 0.0363881,
|
|
267 0.0285855,
|
|
268 0.0224698,
|
|
269 0.017616,
|
|
270 0.0138222,
|
|
271 0.0108563,
|
|
272 //---- He --------------------------------------------------------------------
|
|
273 0.989851,
|
|
274 0.899258,
|
|
275 0.769737,
|
|
276 0.629027,
|
|
277 0.492821,
|
|
278 0.380407,
|
|
279 0.286538,
|
|
280 0.211886,
|
|
281 0.154849,
|
|
282 0.118026,
|
|
283 0.0934005,
|
|
284 0.0738569,
|
|
285 0.0583504,
|
|
286 0.0459303,
|
|
287 0.0361528,
|
|
288 0.0284646,
|
|
289 };
|
|
290
|