9 !__________________________________________________
11 REAL(KIND
=dp
) FUNCTION
ARR3( A0
,B0
, TEMP
)
12 REAL(KIND
=dp
),INTENT(IN) :: TEMP
13 REAL(KIND
=dp
),INTENT(IN):: A0
,B0
14 ARR3
= A0
* EXP(- B0
/TEMP
)
16 !__________________________________________________
18 REAL(KIND
=dp
) FUNCTION
ARR3MS( A0
,B0
,TEMP
,C_M
)
19 REAL(KIND
=dp
), INTENT(IN) :: A0
,B0
20 REAL(KIND
=dp
), INTENT(IN) :: TEMP
,C_M
22 ARR3MS
= C_M
*A0
*(TEMP
/300._dp
)**(-B0
)
24 !__________________________________________________
26 REAL(KIND
=dp
) FUNCTION
TROEMS(k0_300K
,n
,kinf_300K
,m
,TEMP
,C_M
)
30 REAL(KIND
=dp
), INTENT(IN) :: TEMP
! TEMPerature
[K
]
31 REAL(KIND
=dp
), INTENT(IN) :: C_M
! air concentration
[molecules
/cm3
]
32 REAL(KIND
=dp
), INTENT(IN) :: k0_300K
! low pressure limit at
300 K
33 REAL(KIND
=dp
), INTENT(IN) :: n
! exponent for low pressure limit
34 REAL(KIND
=dp
), INTENT(IN) :: kinf_300K
! high pressure limit at
300 K
35 REAL(KIND
=dp
), INTENT(IN) :: m
! exponent for high pressure limit
36 REAL(KIND
=dp
) :: zt_help
, k0_T
, kinf_T
, k_ratio
38 zt_help
= TEMP
/300._dp
39 k0_T
= k0_300K
* zt_help
**(n
) * C_M
! k_0 at current T
40 kinf_T
= kinf_300K
* zt_help
**(m
) ! k_inf at current T
42 TROEMS
= k0_T
/(1._dp
+k_ratio
)*0.6_dp
**(1._dp
/(1._dp
+LOG10(k_ratio
)**2))
45 !__________________________________________________
47 REAL(KIND
=dp
) FUNCTION
TROEEMS(A
, B
, k0_300K
,n
,kinf_300K
,m
,TEMP
,C_M
)
51 REAL(KIND
=dp
), INTENT(IN) :: TEMP
! TEMPerature
[K
]
52 REAL(KIND
=dp
), INTENT(IN) :: C_M
! air concentration
[molecules
/cm3
]
53 REAL(KIND
=dp
), INTENT(IN) :: k0_300K
! low pressure limit at
300 K
54 REAL(KIND
=dp
), INTENT(IN) :: n
! exponent for low pressure limit
55 REAL(KIND
=dp
), INTENT(IN) :: kinf_300K
! high pressure limit at
300 K
56 REAL(KIND
=dp
), INTENT(IN) :: m
! exponent for high pressure limit
57 REAL(KIND
=dp
), INTENT(IN) :: A
, B
58 REAL(KIND
=dp
) :: zt_help
, k0_T
, kinf_T
, k_ratio
, troe
61 zt_help
= TEMP
/300._dp
62 k0_T
= k0_300K
* zt_help
**(n
) * C_M
! k_0 at current T
63 kinf_T
= kinf_300K
* zt_help
**(m
) ! k_inf at current T
65 troe
= k0_T
/(1._dp
+k_ratio
)*0.6_dp
**(1._dp
/(1._dp
+LOG10(k_ratio
)**2))
67 TROEEMS
= A
* EXP( - B
/ TEMP
) * troe
70 !__________________________________________________
73 REAL(KIND
=dp
) FUNCTION
k46( TEMP
, C_M
)
74 REAL(KIND
=dp
), INTENT(IN) :: TEMP
, C_M
75 REAL(KIND
=dp
) :: k0
, k2
, k3
76 k0
=7.2E-15_dp
* EXP(785._dp
/TEMP
)
77 k2
=4.1E-16_dp
* EXP(1440._dp
/TEMP
)
78 k3
=1.9E-33_dp
* EXP(725._dp
/TEMP
)
81 !__________________________________________________
82 REAL(KIND
=dp
) FUNCTION
RK_HO_HNO3( TEMP
, C_M
)
83 REAL(KIND
=dp
), INTENT(IN) :: TEMP
, C_M
84 REAL(KIND
=dp
) :: k1
, k2
, k3
85 k1
=7.2E-15_dp
* EXP(785._dp
/TEMP
)
86 k2
=1.9E-33_dp
* EXP(725._dp
/TEMP
)
87 k3
=4.1E-16_dp
* EXP(1440._dp
/TEMP
)
88 RK_HO_HNO3
=k1
+(C_M
*k2
)/(1+(C_M
*k2
)/k3
)
89 END FUNCTION RK_HO_HNO3
90 !__________________________________________________
91 REAL(KIND
=dp
) FUNCTION
RK_2HO2( TEMP
, C_M
)
92 REAL(KIND
=dp
), INTENT(IN) :: TEMP
, C_M
93 REAL(KIND
=dp
) :: k1
, k2
, k3
94 k1
=2.3E-13_dp
* EXP(600._dp
/TEMP
)
95 k2
=1.7E-33_dp
* EXP(1000._dp
/TEMP
)
98 !__________________________________________________
99 REAL(KIND
=dp
) FUNCTION
RK_2HO2_H2O( TEMP
, C_M
)
100 REAL(KIND
=dp
), INTENT(IN) :: TEMP
, C_M
101 REAL(KIND
=dp
) :: k1
, k2
, k3
102 k1
=2.3E-13_dp
* EXP(600._dp
/TEMP
)
103 k2
=1.7E-33_dp
* EXP(1000._dp
/TEMP
) * C_M
104 k3
=1.4E-21_dp
* EXP(2200._dp
/TEMP
)
105 RK_2HO2_H2O
=(k1
+k2
)*k3
106 END FUNCTION RK_2HO2_H2O
107 !__________________________________________________
108 REAL(KIND
=dp
) FUNCTION
RK_CO_HO( TEMP
, C_M
)
109 REAL(KIND
=dp
), INTENT(IN) :: TEMP
, C_M
110 RK_CO_HO
=1.5e-13 * (1.0 + 8.18e-23 * TEMP
* C_M
)
111 END FUNCTION RK_CO_HO
112 !__________________________________________________
113 REAL(KIND
=dp
) FUNCTION
peroxy(K
,X1
,X2
,X3
,X4
,X5
,X6
,X7
,X8
,X9
,X10
, &
115 REAL(KIND
=dp
), INTENT(IN) :: X1
,X2
,X3
,X4
,X5
,X6
,X7
,X8
,X9
,X10
116 REAL(KIND
=dp
), INTENT(IN) :: TEMP
,C_M
117 INTEGER :: nperox
, I
, J
, K
119 REAL(KIND
=dp
) :: Aperox(nperox
,nperox
),Bperox(nperox
,nperox
)
120 REAL(KIND
=dp
) :: RK_PEROX(nperox
,nperox
)
121 REAL(KIND
=dp
) :: RK_PARAM(nperox
),SPEROX(nperox
)
143 Aperox(10,10)=3.1e-14
157 Aperox(I
,J
)=2.0*SQRT(Aperox(I
,I
)*Aperox(J
,J
))
158 Bperox(I
,J
)=0.5*(Bperox(I
,I
)+Bperox(J
,J
))
172 RK_PEROX(I
,J
)=ARR3(Aperox(I
,J
),-Bperox(I
,J
),TEMP
)
173 RK_PARAM(I
)=RK_PARAM(I
)+RK_PEROX(I
,J
)*SPEROX(J
)
179 !__________________________________________________