# HG changeset patch # User jDG # Date 1368009688 -7200 # Node ID d36f060e8203a1c9fcb3e23d3700f1ac29690a19 # Parent 74878be38d4cccfd75a270bb0f17bf4717cf3477 bugfix CNS compute: NOAA tables are in ATA, not bar. diff -r 74878be38d4c -r d36f060e8203 code_part1/OSTC_code_c_part2/p2_deco.c --- a/code_part1/OSTC_code_c_part2/p2_deco.c Wed May 08 11:33:26 2013 +0200 +++ b/code_part1/OSTC_code_c_part2/p2_deco.c Wed May 08 12:41:28 2013 +0200 @@ -2155,27 +2155,33 @@ time_factor = 30.0f; else if( char_I_step_is_1min == 2 ) time_factor = 300.0f; - + //------------------------------------------------------------------------ + // Don't increase CNS below 0.5 bar, but keep it steady. if (char_I_actual_ppO2 < 50) ; // no changes + //------------------------------------------------------------------------ + // Below (and including) 1.60 bar else if (char_I_actual_ppO2 < 60) - CNS_fraction += time_factor/(-540.0 * char_I_actual_ppO2 + 54000.0); + CNS_fraction += time_factor/(-533.07 * char_I_actual_ppO2 + 54000.0); else if (char_I_actual_ppO2 < 70) - CNS_fraction += time_factor/(-450.0 * char_I_actual_ppO2 + 48600.0); + CNS_fraction += time_factor/(-444.22 * char_I_actual_ppO2 + 48600.0); else if (char_I_actual_ppO2 < 80) - CNS_fraction += time_factor/(-360.0 * char_I_actual_ppO2 + 42300.0); + CNS_fraction += time_factor/(-355.38 * char_I_actual_ppO2 + 42300.0); else if (char_I_actual_ppO2 < 90) - CNS_fraction += time_factor/(-270.0 * char_I_actual_ppO2 + 35100.0); + CNS_fraction += time_factor/(-266.53 * char_I_actual_ppO2 + 35100.0); else if (char_I_actual_ppO2 < 110) - CNS_fraction += time_factor/(-180.0 * char_I_actual_ppO2 + 27000.0); + CNS_fraction += time_factor/(-177.69 * char_I_actual_ppO2 + 27000.0); else if (char_I_actual_ppO2 < 150) - CNS_fraction += time_factor/( -90.0 * char_I_actual_ppO2 + 17100.0); - else if (char_I_actual_ppO2 < 160) - CNS_fraction += time_factor/(-225.0 * char_I_actual_ppO2 + 37350.0); + CNS_fraction += time_factor/( -88.84 * char_I_actual_ppO2 + 17100.0); else if (char_I_actual_ppO2 < 165) - CNS_fraction += time_factor*0.000755; // Arieli et all.(2002): Modeling pulmonary and CNS O2 toxicity... Formula (A1) based on value for 1.55 and c=20 - else if (char_I_actual_ppO2 < 170) - CNS_fraction += time_factor*0.00102; // example calculation: Sqrt((1.7/1.55)^20)*0.000404 + CNS_fraction += time_factor/(-222.11 * char_I_actual_ppO2 + 37350.0); + //------------------------------------------------------------------------ + // Arieli et all.(2002): Modeling pulmonary and CNS O2 toxicity: + // J Appl Physiol 92: 248–256, 2002, doi:10.1152/japplphysiol.00434.2001 + // Formula (A1) based on value for 1.55 and c=20 + // example calculation: Sqrt((1.7/1.55)^20)*0.000404 + else if (char_I_actual_ppO2 < 170) + CNS_fraction += time_factor*0.00102; else if (char_I_actual_ppO2 < 175) CNS_fraction += time_factor*0.00136; else if (char_I_actual_ppO2 < 180)