If it is any use for anyone, I wrote this short C program to calculate depth
limits with any given setting of a non-automatic semi-closed circuit mixture
rebreather with one sort of gas. I apologize for any algebra or computer
programming errors in it.
#include <stdio.h>
#include <std.h>
/*-----*/
double ask(char*s) {double x; static char buf[512]; X: printf(s); gets(buf);
if(sscanf(buf,"%lf",&x)<1) goto X; return x;}
/*-----*/
int yesno(char*s) {char c,d; do{printf("%s",s); c=d=getchar();
while(d!='\n') d=getchar(); if(c=='Y'?1:c=='y') return 1;
if(c=='N'?1:c=='n') return 0; printf("(answer 'yes' or 'no') ");} while(1);}
/*-----*/
main(){double cylflow,cylox,oxused,bagox,pres,x,y,p1,p2;
puts("[semi-closed circuit rebreather with one sort of gas]");
AGAIN: cylflow=ask("gas flow from cylinder (litres/minute)?");
do cylox=ask("%% oxygen in cylinder?")/100; while(cylox < 0 ?: cylox > 1);
oxused=ask("oxygen used by diver (litres/minute)?");
x = cylflow * cylox - oxused; y = cylflow - oxused;
if(x <= 0) {puts("anoxia"); goto END;}
bagox = x / y; /* = oxygen overflowed / total gas overflowed */
printf("%5.2f%% oxygen in bag, ",bagox*100);
p1 = (0.2 / bagox - 1) * 10; /* lower limit */
p2 = (1.4 / bagox - 1) * 10; /* upper limit */
printf("allowed depth range = %7.4f to %7.4f meters\n",p1,p2);
printf("%5.2f%% of the oxygen has been used rather than overflowed\n",
oxused/cylflow/cylox*100);
END: if(yesno("another run?")) goto AGAIN;}
Navigate by Author:
[Previous]
[Next]
[Author Search Index]
Navigate by Subject:
[Previous]
[Next]
[Subject Search Index]
[Send Reply] [Send Message with New Topic]
[Search Selection] [Mailing List Home] [Home]