-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBLO2.FOR
37 lines (37 loc) · 1.25 KB
/
BLO2.FOR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
C ./ i 0
$STORAGE:2
SUBROUTINE BL O2 (PO2,TEMP,O2 CAP,SO2,DISS O2,COMB O2, O2 TOT,
A PH,PCO2,NKNOWN)
C
C SUBROUTINE BLOOD O2
C CALCULATE BLOOD OXYGEN CONCENTRATIONS. MOSTLY FROM WEST, 1974.
C SOLUBILITY EQN. FROM KELMAN, 1966, RESP. PHYSIOL., 1.335.
C
C BLOOD O2 = DISS O2 + O2 COMB WITH HGB
C DISS O2 = SOLUBILITY * PO2
C COMB O2 = O2 CAP * SO2 (FACTOR OF 100 CONVERTS SO2 FROM PCT)
C
SOL = TEMP * (TEMP * 0.0000013 - 0.0001266) + 0.0059519
IF (NKNOWN .EQ. 2) GO TO 200
C
DISS O2 = SOL * PO2
COMB O2 = O2 CAP * SO2 / 100.0
O2 TOT = DISS O2 + COMB O2
GO TO 9900
C
C CALCULATE PO2 FROM O2 CONCENTRATION, BY ITERATION. ON 1ST APPROX
C ASSUME DISS O2 = 0. 2 ITERATIONS ARE OK FOR SMALL PO2 VALUES,
C BUT AS PO2 INCREASES, SO DOES # OF NEEDED ITERATIONS. WE USE 5.
C ** WARNING ** THIS ALGORITHM BLOWS UP FOR PO2 .GT. 110 (1ST
C APPROX TO SO2 .GT. 100 PCT). HOWEVER, THIS IS SIGNIFICANTLY
C GREATER THAN THE MAX. PIO2 OF 97.5 AT SEA LEVEL.
C
200 SO2 = 100.0 * O2 TOT / O2 CAP
DO 220 J = 1,5
CALL O2 DISS (SO2,PH,PO2,TEMP,PCO2,3)
SO2 = 100.0 * (O2 TOT - PO2) / O2 CAP
220 CONTINUE
C
9900 RETURN
END