[Fortran] 纯文本查看 复制代码
SUBROUTINE O2
COMMON /parametersO2/ AaO2, AbO2, XNO2, DLO2, O2MM,PIO2,PaCO0,CVO2
COMMON /parametersCO/ AaCO,AbCO, XNCO, DLCO, COMM, PICO,PaO20,CVCO
COMMON /parametersCO2/AaCO2,AbCO2,XNCO2,DLCO2,CO2MM,PICO2,CVCO2,
+ PaCO20
COMMON /VAR/ QV,QB, QE, QI,Cos,PH
FUNCTION FunO2(X)
COMMON /parametersO2/ AaO2, AbO2, XNO2, DLO2, O2MM,PIO2,PaCO0,CVO2
COMMON /VAR/ QV,QB, QE, QI,Cos ,PH
FunO2 = ( QB*AbO2 + DLO2/Cos*QE*AaO2 / (DLO2/Cos+QE*AaO2) )*X
+ + XNO2*X*QB / (X+O2MM*PaCO0) * ( PTO2(X)**3 + 150*PTO2(X) )
+ / ( PTO2(X)**3 + 150*PTO2(X) + 23400 )
+ - DLO2/Cos*QI*AaO2*PIO2 / (DLO2/Cos+QE*AaO2) - QB*CVO2
END FUNCTION
FUNCTION dFunO2(x)
COMMON /parametersO2/ AaO2, AbO2, XNO2, DLO2, O2MM,PIO2,PaCO0,CVO2
COMMON /parametersCO2/AaCO2,AbCO2,XNCO2,DLCO2,CO2MM,PICO2,CVCO2,
+ PaCO20
COMMON /VAR/ QV,QB, QE, QI,Cos,PH
dFunO2 = ( QB*AbO2 + DLO2/Cos*QE*AaO2 / (DLO2/Cos+QE*AaO2) )
+ + XNO2*QB*O2MM*PaCO0 / (X+O2MM*PaCO0)
+ *( ( PTO2(X)**3 + 150*PTO2(X) )
+ / ( PTO2(X)**3 + 150*PTO2(X) + 23400 ) )
+ + XNO2*QB*X/(X+O2MM*PaCO0)
+ *( ( (3*PTO2(X)**2+150)*( PTO2(X)**3 + 150*PTO2(X) + 23400 )
+ -(3*PTO2(X)**2+150)*(PTO2(X)**3 + 150*PTO2(X)) )
+ *10**( 0.06*( LOG10(4.0/PaCO20) + 0.4*(PH-7.4) ) ) )
+ / ( PTO2(X)**3 + 150*PTO2(X) + 23400 )**2
END FUNCTION
FUNCTION FunPTO2(x)
COMMON /parametersO2/ AaO2, AbO2, XNO2, DLO2, O2MM,PIO2,PaCO0,CVO2
COMMON /parametersCO/ AaCO,AbCO, XNCO, DLCO, COMM, PICO,PaO20,CVCO
COMMON /parametersCO2/AaCO2,AbCO2,XNCO2,DLCO2,CO2MM,PICO2,CVCO2,
+ PaCO20
COMMON /VAR/ QV,QB, QE, QI,Cos,PH
PTO2 = (X+O2MM*PaCO0)
+ *10**( 0.06*(LOG10(4.0/PaCO20) + 0.4*(PH-7.4) ) )
END FUNCTION
FUNCTION ST(x)
ST = ( x**3 + 150*x ) / ( x**3 + 150*x + 23400 )
END FUNCTION
END SUBROUTINE O2