Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / chem / module_data_radm2.F
blobbe594a88d3d9b8d8966873ffef11a49dfe9678e0
1 !WRF:MODEL_LAYER:CHEMICS
3     MODULE module_data_radm2
4       IMPLICIT NONE
5       REAL, PARAMETER ::  epsilc = 1.E-16
7 !--- for radm solver
8 ! .. Parameters ..
9       INTEGER, PARAMETER :: ldiag = 18, lpred = 39, lss = 2, &
10         lump = 4, naqre = 70,  nreacj = 21, nreack = 140, &
11         ntroe = 7, numchem_radm = 41
12       INTEGER, PARAMETER :: lspec = lpred + lss
13       INTEGER, DIMENSION(1:NTROE) :: itroe = (/11, 22, 10, 15, 21, 24, 28/)
17       INTEGER, PARAMETER :: lso2=1
18       INTEGER, PARAMETER :: lsulf=2
19       INTEGER, PARAMETER :: lno2=3
20       INTEGER, PARAMETER :: lno=4
21       INTEGER, PARAMETER :: lo3=5
22       INTEGER, PARAMETER :: lhno3=6
23       INTEGER, PARAMETER :: lh2o2=7
24       INTEGER, PARAMETER :: lald=8
25       INTEGER, PARAMETER :: lhcho=9
26       INTEGER, PARAMETER :: lop1=10
27       INTEGER, PARAMETER :: lop2=11
28       INTEGER, PARAMETER :: lpaa=12
29       INTEGER, PARAMETER :: lora1=13
30       
31       INTEGER, PARAMETER :: lora2=14
32       INTEGER, PARAMETER :: lnh3=15
33       INTEGER, PARAMETER :: ln2o5=16
34       INTEGER, PARAMETER :: lno3=17
35       INTEGER, PARAMETER :: lpan=18
36       INTEGER, PARAMETER :: lhc3=19
37       INTEGER, PARAMETER :: lhc5=20
38       INTEGER, PARAMETER :: lhc8=21
39       
40       INTEGER, PARAMETER :: leth=22
41       INTEGER, PARAMETER :: lco=23
42       INTEGER, PARAMETER :: lol2=24
43       INTEGER, PARAMETER :: lolt=25
44       INTEGER, PARAMETER :: loli=26
45       INTEGER, PARAMETER :: ltol=27
46       INTEGER, PARAMETER :: lxyl=28
47       INTEGER, PARAMETER :: laco3=29
48       
49       INTEGER, PARAMETER :: ltpan=30
50       INTEGER, PARAMETER :: lhono=31
51       INTEGER, PARAMETER :: lhno4=32
52       INTEGER, PARAMETER :: lket=33
53       INTEGER, PARAMETER :: lgly=34
54       INTEGER, PARAMETER :: lmgly=35
55       INTEGER, PARAMETER :: ldcb=36
56       INTEGER, PARAMETER :: lonit=37
57       
58       INTEGER, PARAMETER :: lcsl=38
59       INTEGER, PARAMETER :: liso=39
60       INTEGER, PARAMETER :: lho=40
61       INTEGER, PARAMETER :: lho2=41
62 ! parameters for timestep, integration
63       INTEGER, DIMENSION(1:lpred) :: intgrt = (/1, 1, 1, 0, 1, &
64                                  1, 0, 1, 1, 1, 1, 1, 1, 1, 1, &
65                                  0, 1, 0, 1, 1, 1, 1, 1, 1, 1, &
66                                  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, &
67                                                    1, 1, 1, 1 /)
68 !     INTEGER, DIMENSION(1:lspec) ::  qdtc  = (/0, 0, 1, 0, 1, &
69 !                                0, 1, 0, 1, 0, 0, 0, 1, 0, 0, &
70 !                                1, 1, 1, 0, 0, 0, 0, 0, 0, 0, &
71 !                                0, 0, 0, 1, 1, 1, 1, 0, 0, 0, &
72 !                                            0, 0, 0, 0, 0, 0 /)
73       INTEGER, DIMENSION(1:lspec) ::  qdtc  = (/1, 1, 1, 0, 1, &
74                                  1, 0, 1, 1, 1, 1, 1, 1, 1, 1, &
75                                  0, 1, 0, 1, 1, 1, 1, 1, 1, 1, &
76                                  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, &
77                                              1, 1, 1, 1, 0, 0 /)
78 ! max, min values,
79       INTEGER :: itrdu
81       REAL, DIMENSION(1:lspec) :: cmin =(/(1.E-16,itrdu=1,lspec)/)
83       REAL, DIMENSION(1:lspec) :: cmax=(/1.,  1.,  1.,   1., .2, &
84                 3., .05, .01, .01, .01, .05, .01, .05,  .05,.05, &
85                 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,   1., 1., &
86                 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,.0001, .1, &
87                                     1., .001, .01, .01, .01, .01/) 
92       INTEGER, PARAMETER :: lo3p=1
93       INTEGER, PARAMETER :: lo1d=2
94       INTEGER, PARAMETER :: ltco3=3
95       INTEGER, PARAMETER :: lhc3p=4
96       INTEGER, PARAMETER :: lhc5p=5
97       INTEGER, PARAMETER :: lhc8p=6
98        
99       INTEGER, PARAMETER :: lol2p=7
100       INTEGER, PARAMETER :: loltp=8
101       INTEGER, PARAMETER :: lolip=9
102       INTEGER, PARAMETER :: ltolp=10
103       INTEGER, PARAMETER :: lxylp=11
104       INTEGER, PARAMETER :: lethp=12
105       INTEGER, PARAMETER :: lketp=13
106       INTEGER, PARAMETER :: loln=14
107        
108       INTEGER, PARAMETER :: lxo2=15
109       INTEGER, PARAMETER :: lxno2=16
110       INTEGER, PARAMETER :: lxho=17
111       INTEGER, PARAMETER :: lmo2=18
114       INTEGER, PARAMETER ::  lnox=1
115       INTEGER, PARAMETER ::  lhox=2
116       INTEGER, PARAMETER ::  lpao3=3
117       INTEGER, PARAMETER ::  ln2n3=4
118 ! ..
119       REAL, PARAMETER ::  ch4=1.7
120       REAL, PARAMETER ::  co2=350.
121       REAL, PARAMETER ::  n2=7.81E5
122       REAL, PARAMETER ::  o2=2.09E5
123       REAL, PARAMETER ::  pi=3.141592654
125 ! ..
126       REAL :: afac(2), &
127         bfac(2),  const(3), eor(nreack), &
128         thafac(nreack), &
129         xk0300(ntroe), &
130         xkf300(ntroe), xmtroe(ntroe), xntroe(ntroe)
132 ! ..
133 ! .. Data Statements ..
134       DATA thafac/0.00, 6.50E-12, 1.80E-11, 3.20E-11, 2.20E-10, 2.00E-12, &
135         1.60E-12, 1.10E-14, 3.70E-12, 4*0.00, 3.30E-12, 0.00, 3.30E-19, &
136         1.40E-13, 1.70E-11, 2.50E-14, 2.50E-12, 2*0.00, 2.00E-21, 2*0.00, &
137         1.30E-12, 4.60E-11, 2*0.00, 6.95E-18, 1.37E-17, 1.59E-11, 1.73E-11, &
138         3.64E-11, 2.15E-12, 5.32E-12, 1.07E-11, 2.10E-12, 1.89E-11, 4.00E-11, &
139         9.00E-12, 6.87E-12, 1.20E-11, 1.15E-11, 1.70E-11, 2.80E-11, 1.00E-11, &
140         1.00E-11, 1.00E-11, 6.85E-18, 1.55E-11, 2.55E-11, 2.80E-12, 1.95E+16, &
141         4.70E-12, 1.95E+16, 4.20E-12, 4.20E-12, 0.00, 4.20E-12, 0.00, &
142         4.20E-12, 0.00, 10*4.20E-12, 6.00E-13, 1.40E-12, 6.00E-13, 1.40E-12, &
143         1.40E-12, 2.20E-11, 2.00E-12, 1.00E-11, 3.23E-11, 5.81E-13, 1.20E-14, &
144         1.32E-14, 7.29E-15, 1.23E-14, 14*7.70E-14, 1.90E-13, 1.40E-13, &
145         4.20E-14, 3.40E-14, 2.90E-14, 1.40E-13, 1.40E-13, 1.70E-14, 1.70E-14, &
146         9.60E-13, 1.70E-14, 1.70E-14, 9.60E-13, 3.40E-13, 1.00E-13, 8.40E-14, &
147         7.20E-14, 3.40E-13, 3.40E-13, 4.20E-14, 4.20E-14, 1.19E-12, 4.20E-14, &
148         4.20E-14, 1.19E-12, 7.70E-14, 1.70E-14, 4.20E-14, 3.60E-16, 4.20E-12, &
149         4.20E-12, 7.70E-14, 1.70E-14, 4.20E-14, 3.60E-16, 0.00, 1.70E-14, &
150         4.20E-14, 3.60E-16/
151 ! ..
152 ! constants for RADM2 rate coefficients
153       DATA eor/0., -120., -110., -70., 0., 1400., 940., 500., -240., 0., 0., &
154         0., 0., 200., 0., -530., 2500., -150., 1230., 0., 0., 0., 0., 0., 0., &
155         -380., -230., 0., 0., 1280., 444., 540., 380., 380., -411., -504., &
156         -549., -322., -116., 0., 0., -256., 745., 0., 0., 0., 0., 0., 0., &
157         444., 540., -409., -181., 13543., 0., 13543., -180., -180., 0., -180., &
158         0., -180., 0., -180., -180., -180., -180., -180., -180., -180., -180., &
159         -180., -180., 2058., 1900., 2058., 1900., 1900., 0., 2923., 1895., &
160         975., 0., 2633., 2105., 1136., 2013., -1300., -1300., -1300., -1300., &
161         -1300., -1300., -1300., -1300., -1300., -1300., -1300., -1300., &
162         -1300., -1300., 25* -220., -1300., -220., -220., -220., -180., -180., &
163         -1300., -220., -220., 0., 0., -220., -220., -220./
165       DATA xk0300/1.8E-31, 2.2E-30, 1.8E-31, 7.E-31, 2.2E-30, 2.6E-30, 3.E-31/
166       DATA xntroe/3.2, 4.3, 3.2, 2.6, 4.3, 3.2, 3.3/
167       DATA xkf300/4.7E-12, 1.5E-12, 4.7E-12, 1.5E-11, 1.5E-12, 2.4E-11, &
168         1.5E-12/
169       DATA xmtroe/1.4, 0.5, 1.4, 2*.5, 1.3, 0./
170       DATA afac/2.1E-27, 1.1E-27/
171       DATA bfac/10900., 11200./
172       DATA const/7.34E21, 4.4E17, 3.23E33/
174     END MODULE module_data_radm2