#include RADMKA.spc #include RADMKA.eqn #include ../boxmox/wrapper #include ../boxmox/setup #LOOKATALL #INLINE F90_GLOBAL ! global variables used by special rate constants of this mechanism ! air concentration (molecules/cm3) REAL(KIND=dp) :: c_m REAL(KIND=dp), ALLOCATABLE :: HET(:) #ENDINLINE #INLINE F90_INIT ! 1E-03 * (1.0/28.97) * 6.022e23 * air density c_m = 2.078702e+19 * 1.25 ALLOCATE(HET(1)) HET(:) = 0.0 #ENDINLINE #INLINE F90_RATES !C !C********************************************************************* !C Die Funktion TROE bestimmt die Werte der Troefunktion !C nach Stockwell et al. [2], !C die die Druckabhaengigkeit von Reaktionskonstanten durch eine !C quasi-bimolekulare Reaktionskonstante beschreibt. !C********************************************************************* !C ! !~~~> Simplified Arrhenius, with two arguments !~~~> Note: The argument B0 has a changed sign when compared to ARR ! EMPA, original KPP style REAL FUNCTION ARR2E( A0,B0 ) REAL(dp) A0,B0 ARR2E = DBLE(A0) * EXP( DBLE(B0)/TEMP ) END FUNCTION ARR2E ! REAL FUNCTION TROE_EMPA( K0300, Q, KU300, R, M, T ) !C CALCULATION OF RATE CONSTANTS FOR TROE REACTIONS ! IMPLICIT REAL(dp) (A-Z) REAL(dp) :: K0300, Q, KU300, R, M, T REAL(dp) :: tt, k0, ku, k0m, kk, lgkk, e, f TT= T / 3.D2 K0= K0300 / TT**Q KU= KU300 / TT**R K0M= K0 * M KK= K0M / KU LGKK=0.434294481D0 * LOG(KK) E=1.D0 / ( 1.D0 + LGKK*LGKK ) F=0.6D0 ** E TROE_EMPA= F * K0M / ( 1.D0 + KK ) END FUNCTION TROE_EMPA !C !C********************************************************************** !C Die Funktion EQT [2] bestimmt die Reaktionskonstanten fuer !C HNO4 --> H2O + NO2 und N2O5 --> NO2 + NO3 !C********************************************************************** !C FUNCTION EQT( K0300, Q, KU300, R, M, T, A, B ) !IMPLICIT REAL(dp) (A-Z) REAL(dp) :: K0300, Q, KU300, R, M, T, A, B, EQT REAL(dp) :: kh KH= TROE_EMPA( K0300, Q, KU300, R, M, T ) EQT= KH * A *DEXP( -B / T ) END FUNCTION EQT !C !C********************************************************************** !C Die Funktion SPEZ bestimmt die Reaktionskonstante fuer !C HNO3 + HO --> H2O + NO3 !C********************************************************************** !C FUNCTION SPEZ(A0,B0,A2,B2,A3,B3,M,T) !C SPECIAL RATE CONSTANTS !IMPLICIT REAL(dp) (A-Z) REAL(dp) :: A0,B0,A2,B2,A3,B3,M,T, SPEZ REAL(dp) :: k0, k2, k3 K0=A0*DEXP(B0/T) K2=A2*DEXP(B2/T) K3=A3*M*DEXP(B3/T) SPEZ= K0 + K3 / ( 1D0 + K3/K2 ) END FUNCTION SPEZ #ENDINLINE