1 C User-defined Rate Law functions
2 C Note: the default argument type for rate laws, as read from the equations file, is single precision
3 C but all the internal calculations are performed in REAL*8
6 KPP_REAL
FUNCTION ARR
( A0
,B0
,C0
)
7 INCLUDE
'KPP_ROOT_Parameters.h'
8 INCLUDE
'KPP_ROOT_Global.h'
11 ARR
= DBLE
(A0
) * EXP
(-DBLE
(B0
)/TEMP
) * (TEMP
/300.0D0
)**DBLE
(C0
)
17 C Simplified Arrhenius, with two arguments
18 C Note: The argument B0 has a changed sign when compared to ARR
19 KPP_REAL
FUNCTION ARR2
( A0
,B0
)
20 INCLUDE
'KPP_ROOT_Parameters.h'
21 INCLUDE
'KPP_ROOT_Global.h'
24 ARR2
= DBLE
(A0
) * EXP
( DBLE
(B0
)/TEMP
)
29 KPP_REAL
FUNCTION EP2
(A0
,C0
,A2
,C2
,A3
,C3
)
30 INCLUDE
'KPP_ROOT_Parameters.h'
31 INCLUDE
'KPP_ROOT_Global.h'
33 REAL A0
,C0
,A2
,C2
,A3
,C3
36 K0
= DBLE
(A0
) * EXP
(-DBLE
(C0
)/TEMP
)
37 K2
= DBLE
(A2
) * EXP
(-DBLE
(C2
)/TEMP
)
38 K3
= DBLE
(A3
) * EXP
(-DBLE
(C3
)/TEMP
)
40 EP2
= K0
+ K3
/(1.0d0
+K3
/K2
)
46 KPP_REAL
FUNCTION EP3
(A1
,C1
,A2
,C2
)
47 INCLUDE
'KPP_ROOT_Parameters.h'
48 INCLUDE
'KPP_ROOT_Global.h'
53 K1
= DBLE
(A1
) * EXP
(-DBLE
(C1
)/TEMP
)
54 K2
= DBLE
(A2
) * EXP
(-DBLE
(C2
)/TEMP
)
55 EP3
= K1
+ K2*
(1.0d6*CFACTOR
)
61 KPP_REAL
FUNCTION FALL
( A0
,B0
,C0
,A1
,B1
,C1
,CF
)
62 INCLUDE
'KPP_ROOT_Parameters.h'
63 INCLUDE
'KPP_ROOT_Global.h'
65 REAL A0
,B0
,C0
,A1
,B1
,C1
,CF
68 K0
= DBLE
(A0
) * EXP
(-DBLE
(B0
)/TEMP
)* (TEMP
/300.0D0
)**DBLE
(C0
)
69 K1
= DBLE
(A1
) * EXP
(-DBLE
(B1
)/TEMP
)* (TEMP
/300.0D0
)**DBLE
(C1
)
72 FALL
= (K0
/(1.0d0
+K1
))*
73 * DBLE
(CF
)**(1.0d0
/(1.0d0
+(DLOG10
(K1
))**2))