source: trunk/LMDZ.MARS/libf/aeronomars/param_v4_h.F90 @ 2910

Last change on this file since 2910 was 2615, checked in by romain.vande, 3 years ago

LMDZ_MARS RV : Open_MP;
Put all the "save" variables as "!$OMP THREADPRIVATE" in aeronomars

File size: 17.7 KB
Line 
1MODULE param_v4_h
2
3   IMPLICIT NONE
4
5   integer, parameter :: ninter=36
6   integer, parameter :: nabs=13
7   integer, parameter :: nz2=253
8   integer, parameter :: ninter2=16
9   real*8, parameter :: kboltzman = 1.381e-16
10   real*8, parameter :: n_avog = 6.023e23
11   real*8, parameter :: gg = 6.67259e-8
12   real*8, parameter :: masa = 6.4163e26
13   real*8, parameter :: radio = 3390.
14   integer, parameter :: nreact=93
15   integer, parameter :: tapas=42
16
17   real crscabsi2(nabs,16)    !cross section
18   real c1_16(nz2,16)   !Col. int. 1 (o2+o+h2+n) (cm^-2)
19   real c17_24(nz2)     !Col. int. 17-24 (co2+o2+n2+no+co+no2) (cm^-2)
20   real c25_29(nz2)     !Col. int. 25-29 (co2+o2+h2o+h2o2+no+co+no2) (cm^-2)
21   real c30_31(nz2)     !Col. int. 30-31 (co2+o2+h2o+h2o2+no+no2)
22   real c32(nz2)        !col. int. 32 (co2+h2o2+o2+no+no2) (cm^-2)
23   real c33(nz2)        !col. int. 33 (h2o2+o2+no2) (cm^-2)
24   real c34(nz2)        !col. int. 34 (h2o2+o2+o3+no2) (cm^-2)
25   real c35(nz2)        !col. int. 35 (h2o2+o3+no2) (cm^-2)
26   real c36(nz2)        !col. int. 36 (o3+no2) (cm^-2)
27   real co2crsc195(9)
28   real co2crsc295(9)
29   real t0(nz2)
30   real fluxtop(ninter)
31   real freccen(ninter)          !representative wavelenght
32   real jabsifotsintpar(nz2,nabs,ninter)
33   real e107,date_e107(669),e107_tab(669)
34   real coefit0(ninter,nabs),coefit1(ninter,nabs)
35   real coefit2(ninter,nabs)
36   real coefit3(ninter,nabs),coefit4(ninter,nabs)
37
38   !reaction rates
39   real*8 ch2, ch3, ch4, ch5, ch7,ch9,ch10,ch11,ch13,ch14,ch15,ch18
40   real*8 ch19,ch20,ch21,ch22,ch23,ch24,ch30,ch31,ch32,ch33,ch34
41   real*8 ch35,ch36,ch37,ch38,ch39,ch40,ch41,ch42,ch43,ch45
42   real*8 ch46,ch47,ch48,ch49,ch50,ch55,ch56,ch57,ch58,ch59,ch62
43   real*8 ch63,ch64,ch65,ch66,ch67,ch68,ch69,ch70,ch71
44   real*8 ch72,ch73,ch74,ch75,ch76,ch85,ch86,ch87
45   real*8 rcoef(61,3)
46
47   real fluxtophr(ninter)
48   real ct1(ninter),p1(ninter),ct2(ninter),p2(ninter)
49
50   real efdisco2(ninter), efdiso2(ninter), efdish2o(ninter)
51   real efdish2o2(ninter), efdish2(ninter), efdiso3(ninter)
52   real efdiso(ninter), efdisn(ninter), efdish(ninter)
53   real efdisno(ninter), efdisn2(ninter), efdisno2(ninter)
54   real efdisco(ninter)
55   real efionco2(ninter,4)
56   real efiono2(ninter,2)
57   real efionn2(ninter,2)
58   real efionco(ninter,3)
59   real efiono3p(ninter),efionn(ninter)
60   real efionno(ninter),efionh(ninter)
61
62   !photodissociation rates
63   REAL,SAVE,ALLOCATABLE :: jfotsout(:,:,:)
64   REAL,SAVE,ALLOCATABLE :: jdistot(:,:)
65   REAL,SAVE,ALLOCATABLE :: jdistot_b(:,:)
66   REAL,SAVE,ALLOCATABLE :: jion(:,:,:)
67
68!$OMP THREADPRIVATE(jfotsout,jdistot,jdistot_b,jion)
69
70   REAL*8,SAVE,ALLOCATABLE :: Pco2(:,:)
71   REAL*8,SAVE,ALLOCATABLE :: Po2(:,:)
72   REAL*8,SAVE,ALLOCATABLE :: Po3p(:,:)
73   REAL*8,SAVE,ALLOCATABLE :: Pco(:,:)
74   REAL*8,SAVE,ALLOCATABLE :: Ph(:,:)
75   REAL*8,SAVE,ALLOCATABLE :: Poh(:,:)
76   REAL*8,SAVE,ALLOCATABLE :: Pho2(:,:)
77   REAL*8,SAVE,ALLOCATABLE :: Ph2(:,:)
78   REAL*8,SAVE,ALLOCATABLE :: Ph2o(:,:)
79   REAL*8,SAVE,ALLOCATABLE :: Po1d(:,:)
80   REAL*8,SAVE,ALLOCATABLE :: Ph2o2(:,:)
81   REAL*8,SAVE,ALLOCATABLE :: Po3(:,:)
82   REAL*8,SAVE,ALLOCATABLE :: Pn(:,:)
83   REAL*8,SAVE,ALLOCATABLE :: Pno(:,:)
84   REAL*8,SAVE,ALLOCATABLE :: Pno2(:,:)
85   REAL*8,SAVE,ALLOCATABLE :: Pn2(:,:)
86   REAL*8,SAVE,ALLOCATABLE :: Pn2d(:,:)
87   REAL*8,SAVE,ALLOCATABLE :: Pco2plus(:,:)
88   REAL*8,SAVE,ALLOCATABLE :: Poplus(:,:)
89   REAL*8,SAVE,ALLOCATABLE :: Po2plus(:,:)
90   REAL*8,SAVE,ALLOCATABLE :: Pelect(:,:)
91   REAL*8,SAVE,ALLOCATABLE :: Pcoplus(:,:)
92   REAL*8,SAVE,ALLOCATABLE :: Pcplus(:,:)
93   REAL*8,SAVE,ALLOCATABLE :: Pnplus(:,:)
94   REAL*8,SAVE,ALLOCATABLE :: Pnoplus(:,:)
95   REAL*8,SAVE,ALLOCATABLE :: Pn2plus(:,:)
96   REAL*8,SAVE,ALLOCATABLE :: Phplus(:,:)
97   REAL*8,SAVE,ALLOCATABLE :: Phco2plus(:,:)
98   REAL*8,SAVE,ALLOCATABLE :: Pco2tot(:)
99   REAL*8,SAVE,ALLOCATABLE :: Po2tot(:)
100   REAL*8,SAVE,ALLOCATABLE :: Po3ptot(:)
101   REAL*8,SAVE,ALLOCATABLE :: Pcotot(:)
102   REAL*8,SAVE,ALLOCATABLE :: Phtot(:)
103   REAL*8,SAVE,ALLOCATABLE :: Pohtot(:)
104   REAL*8,SAVE,ALLOCATABLE :: Pho2tot(:)
105   REAL*8,SAVE,ALLOCATABLE :: Ph2tot(:)
106   REAL*8,SAVE,ALLOCATABLE :: Ph2otot(:)
107   REAL*8,SAVE,ALLOCATABLE :: Po1dtot(:)
108   REAL*8,SAVE,ALLOCATABLE :: Ph2o2tot(:)
109   REAL*8,SAVE,ALLOCATABLE :: Po3tot(:)
110   REAL*8,SAVE,ALLOCATABLE :: Pntot(:)
111   REAL*8,SAVE,ALLOCATABLE :: Pnotot(:)
112   REAL*8,SAVE,ALLOCATABLE :: Pno2tot(:)
113   REAL*8,SAVE,ALLOCATABLE :: Pn2tot(:)
114   REAL*8,SAVE,ALLOCATABLE :: Pn2dtot(:)
115   REAL*8,SAVE,ALLOCATABLE :: Pco2plustot(:)
116   REAL*8,SAVE,ALLOCATABLE :: Poplustot(:)
117   REAL*8,SAVE,ALLOCATABLE :: Po2plustot(:)
118   REAL*8,SAVE,ALLOCATABLE :: Pelecttot(:)
119   REAL*8,SAVE,ALLOCATABLE :: Pcoplustot(:)
120   REAL*8,SAVE,ALLOCATABLE :: Pcplustot(:)
121   REAL*8,SAVE,ALLOCATABLE :: Pnplustot(:)
122   REAL*8,SAVE,ALLOCATABLE :: Pnoplustot(:)
123   REAL*8,SAVE,ALLOCATABLE :: Pn2plustot(:)
124   REAL*8,SAVE,ALLOCATABLE :: Phplustot(:)
125   REAL*8,SAVE,ALLOCATABLE :: Phco2plustot(:)
126   REAL*8,SAVE,ALLOCATABLE :: Lco2(:,:)
127   REAL*8,SAVE,ALLOCATABLE :: Lo2(:,:)
128   REAL*8,SAVE,ALLOCATABLE :: Lo3p(:,:)
129   REAL*8,SAVE,ALLOCATABLE :: Lco(:,:)
130   REAL*8,SAVE,ALLOCATABLE :: Lh(:,:)
131   REAL*8,SAVE,ALLOCATABLE :: Loh(:,:)
132   REAL*8,SAVE,ALLOCATABLE :: Lho2(:,:)
133   REAL*8,SAVE,ALLOCATABLE :: Lh2(:,:)
134   REAL*8,SAVE,ALLOCATABLE :: Lh2o(:,:)
135   REAL*8,SAVE,ALLOCATABLE :: Lo1d(:,:)
136   REAL*8,SAVE,ALLOCATABLE :: Lh2o2(:,:)
137   REAL*8,SAVE,ALLOCATABLE :: Lo3(:,:)
138   REAL*8,SAVE,ALLOCATABLE :: Ln(:,:)
139   REAL*8,SAVE,ALLOCATABLE :: Lno(:,:)
140   REAL*8,SAVE,ALLOCATABLE :: Lno2(:,:)
141   REAL*8,SAVE,ALLOCATABLE :: Ln2(:,:)
142   REAL*8,SAVE,ALLOCATABLE :: Ln2d(:,:)
143   REAL*8,SAVE,ALLOCATABLE :: Lco2plus(:,:)
144   REAL*8,SAVE,ALLOCATABLE :: Loplus(:,:)
145   REAL*8,SAVE,ALLOCATABLE :: Lo2plus(:,:)
146   REAL*8,SAVE,ALLOCATABLE :: Lelect(:,:)
147   REAL*8,SAVE,ALLOCATABLE :: Lcoplus(:,:)
148   REAL*8,SAVE,ALLOCATABLE :: Lcplus(:,:)
149   REAL*8,SAVE,ALLOCATABLE :: Lnplus(:,:)
150   REAL*8,SAVE,ALLOCATABLE :: Lnoplus(:,:)
151   REAL*8,SAVE,ALLOCATABLE :: Ln2plus(:,:)
152   REAL*8,SAVE,ALLOCATABLE :: Lhplus(:,:)
153   REAL*8,SAVE,ALLOCATABLE :: Lhco2plus(:,:)
154   REAL*8,SAVE,ALLOCATABLE :: Lco2tot(:)
155   REAL*8,SAVE,ALLOCATABLE :: Lo2tot(:)
156   REAL*8,SAVE,ALLOCATABLE :: Lo3ptot(:)
157   REAL*8,SAVE,ALLOCATABLE :: Lcotot(:)
158   REAL*8,SAVE,ALLOCATABLE :: Lhtot(:)
159   REAL*8,SAVE,ALLOCATABLE :: Lohtot(:)
160   REAL*8,SAVE,ALLOCATABLE :: Lho2tot(:)
161   REAL*8,SAVE,ALLOCATABLE :: Lh2tot(:)
162   REAL*8,SAVE,ALLOCATABLE :: Lh2otot(:)
163   REAL*8,SAVE,ALLOCATABLE :: Lo1dtot(:)
164   REAL*8,SAVE,ALLOCATABLE :: Lh2o2tot(:)
165   REAL*8,SAVE,ALLOCATABLE :: Lo3tot(:)
166   REAL*8,SAVE,ALLOCATABLE :: Lntot(:)
167   REAL*8,SAVE,ALLOCATABLE :: Lnotot(:)
168   REAL*8,SAVE,ALLOCATABLE :: Lno2tot(:)
169   REAL*8,SAVE,ALLOCATABLE :: Ln2tot(:)
170   REAL*8,SAVE,ALLOCATABLE :: Ln2dtot(:)
171   REAL*8,SAVE,ALLOCATABLE :: Lco2plustot(:)
172   REAL*8,SAVE,ALLOCATABLE :: Loplustot(:)
173   REAL*8,SAVE,ALLOCATABLE :: Lo2plustot(:)
174   REAL*8,SAVE,ALLOCATABLE :: Lelecttot(:)
175   REAL*8,SAVE,ALLOCATABLE :: Lcoplustot(:)
176   REAL*8,SAVE,ALLOCATABLE :: Lcplustot(:)
177   REAL*8,SAVE,ALLOCATABLE :: Lnplustot(:)
178   REAL*8,SAVE,ALLOCATABLE :: Lnoplustot(:)
179   REAL*8,SAVE,ALLOCATABLE :: Ln2plustot(:)
180   REAL*8,SAVE,ALLOCATABLE :: Lhplustot(:)
181   REAL*8,SAVE,ALLOCATABLE :: Lhco2plustot(:)
182   REAL*8,SAVE,ALLOCATABLE :: tminco2(:)
183   REAL*8,SAVE,ALLOCATABLE :: tmino2(:)
184   REAL*8,SAVE,ALLOCATABLE :: tmino3p(:)
185   REAL*8,SAVE,ALLOCATABLE :: tminco(:)
186   REAL*8,SAVE,ALLOCATABLE :: tminh(:)
187   REAL*8,SAVE,ALLOCATABLE :: tminoh(:)
188   REAL*8,SAVE,ALLOCATABLE :: tminho2(:)
189   REAL*8,SAVE,ALLOCATABLE :: tminh2(:)
190   REAL*8,SAVE,ALLOCATABLE :: tminh2o(:)
191   REAL*8,SAVE,ALLOCATABLE :: tmino1d(:)
192   REAL*8,SAVE,ALLOCATABLE :: tminh2o2(:)
193   REAL*8,SAVE,ALLOCATABLE :: tmino3(:)
194   REAL*8,SAVE,ALLOCATABLE :: tminn(:)
195   REAL*8,SAVE,ALLOCATABLE :: tminno(:)
196   REAL*8,SAVE,ALLOCATABLE :: tminno2(:)
197   REAL*8,SAVE,ALLOCATABLE :: tminn2(:)
198   REAL*8,SAVE,ALLOCATABLE :: tminn2d(:)
199   REAL*8,SAVE,ALLOCATABLE :: tminco2plus(:)
200   REAL*8,SAVE,ALLOCATABLE :: tminoplus(:)
201   REAL*8,SAVE,ALLOCATABLE :: tmino2plus(:)
202   REAL*8,SAVE,ALLOCATABLE :: tmincoplus(:)
203   REAL*8,SAVE,ALLOCATABLE :: tmincplus(:)
204   REAL*8,SAVE,ALLOCATABLE :: tminnplus(:)
205   REAL*8,SAVE,ALLOCATABLE :: tminnoplus(:)
206   REAL*8,SAVE,ALLOCATABLE :: tminn2plus(:)
207   REAL*8,SAVE,ALLOCATABLE :: tminhplus(:)
208   REAL*8,SAVE,ALLOCATABLE :: tminhco2plus(:)
209
210!$OMP THREADPRIVATE(Pco2,Po2,Po3p,Pco,Ph,Poh,Pho2,Ph2,Ph2o,Po1d,Ph2o2,Po3,Pn,Pno,Pno2,Pn2,Pn2d,Pco2plus,Poplus,Po2plus,Pelect,Pcoplus,Pcplus,Pnplus,Pnoplus,Pn2plus,Phplus,Phco2plus,Pco2tot,Po2tot,Po3ptot,Pcotot)
211!$OMP THREADPRIVATE(Phtot,Pohtot,Pho2tot,Ph2tot,Ph2otot,Po1dtot,Ph2o2tot,Po3tot,Pntot,Pnotot,Pno2tot,Pn2tot,Pn2dtot,Pco2plustot,Poplustot,Po2plustot,Pelecttot,Pcoplustot,Pcplustot,Pnplustot,Pnoplustot,Pn2plustot)
212!$OMP THREADPRIVATE(Phplustot,Phco2plustot,Lco2,Lo2,Lo3p,Lco,Lh,Loh,Lho2,Lh2,Lh2o,Lo1d,Lh2o2,Lo3,Ln,Lno,Lno2,Ln2,Ln2d, Lco2plus,Loplus,Lo2plus,Lelect,Lcoplus,Lcplus,Lnplus,Lnoplus,Ln2plus,Lhplus,Lhco2plus,Lco2tot)
213!$OMP THREADPRIVATE(Lo2tot,Lo3ptot,Lcotot,Lhtot,Lohtot,Lho2tot,Lh2tot,Lh2otot,Lo1dtot,Lh2o2tot,Lo3tot,Lntot,Lnotot,Lno2tot,Ln2tot,Ln2dtot,Lco2plustot,Loplustot,Lo2plustot,Lelecttot,Lcoplustot,Lcplustot,Lnplustot)
214!$OMP THREADPRIVATE(Lnoplustot,Ln2plustot,Lhplustot,Lhco2plustot,tminco2,tmino2,tmino3p,tminco,tminh,tminoh,tminho2,tminh2,tminh2o,tmino1d,tminh2o2,tmino3,tminn,tminno,tminno2,tminn2,tminn2d,tminco2plus,tminoplus)
215!$OMP THREADPRIVATE(tmino2plus,tmincoplus,tmincplus,tminnplus,tminnoplus,tminn2plus,tminhplus,tminhco2plus)
216
217   CONTAINS
218
219      SUBROUTINE fill_data_thermos
220
221      IMPLICIT NONE
222
223      ! data for the UV heating tabulation
224
225      crscabsi2(1,1:16) = (/ 5.61031E-19,1.59677E-18,4.7072E-18,&
226          1.48254e-17,2.07445e-17,2.573e-17,2.901e-17,3.083e-17,&
227          3.217e-17,3.539e-17,3.658e-17,3.63e-17,3.41239e-17,&
228          2.71019e-17,4.93677e-17,1.64e-17 /)
229
230      crscabsi2(2,1:16) = (/ 0.27250E-18,0.11650E-17,0.39250E-17,&
231          0.10630E-16,0.15590E-16,0.17180E-16,0.19270E-16,0.22860E-16,&
232          0.24270E-16,0.24440E-16,0.25020E-16,0.26600E-16,0.25400E-16,&
233          0.35800E-16,0.25590E-16,0.16740E-16 /)
234
235      crscabsi2(3,1:16) = (/ 0.2776E-18,0.9792E-18,0.3313E-17,&
236          0.6621E-17,0.8481E-17,0.9146E-17,0.9414E-17,0.1039E-16,&
237          0.1012E-16,0.1033E-16,0.1033E-16,0.1033E-16,0.8268E-17,&
238          0.6563E-17,0.3506E-17,0.3470E-17 /)
239
240      crscabsi2(5,1:16) = (/ .5E-20,.1077607E-19,.5670491E-19,&
241          .3322716E-18,.1054509E-17,.1700005E-17,.3171188E-17,&
242          .4734241E-17,.5108741E-17,.6022236E-17,.6741537E-17,&
243          .7277079E-17,.9070787E-17,.9708916E-17,.4026281E-17,0.0 /)
244
245      crscabsi2(8,1:16) = (/ 0.0, 7.44175e-19, 2.23167e-18,&
246          8.46200e-18,1.18275e-17,1.54900e-17,2.32475e-17,2.41373e-17,&
247          2.55482e-17,2.38431e-17,2.28600e-17,2.35067e-17,2.56000e-17,&
248          2.64636e-17,2.86260e-17,3.26561e-17 /)
249
250      crscabsi2(9,1:16) = (/ 3.48182e-20,3.37038e-19,1.03077e-18,&
251          4.01364e-18,6.45e-18,7.8e-18,1.0e-17,1.13500e-17,1.15500e-17,&
252          1.18000e-17,1.17500e-17,1.16000e-17,1.28667e-17,1.18500e-17,&
253          1.11000e-17,9.50000e-18 /)
254
255      crscabsi2(10,1:16) = (/ 0.0,9.39833e-19,2.87714e-18,&
256          9.66900e-18,1.37063e-17,1.61820e-17,2.30450e-17,2.63373e-17,&
257          2.63773e-17,2.67677e-17,2.64100e-17,2.53000e-17,2.18100e-17,&
258          2.04941e-17,2.28160e-17,2.93550e-17 /)
259
260      crscabsi2(11,1:16) = (/ 0.0,9.58555e-19,2.52767e-18,&
261          8.29700e-18,1.21850e-17,1.40500e-17,1.97025e-17,2.12018e-17,&
262          2.14673e-17,2.20331e-17,2.21500e-17,2.21600e-17,2.33200e-17,&
263          2.67800e-17,2.56400e-17,3.58561e-17 /)
264
265      crscabsi2(12,1:16) = (/ 0.0,1.0e-20,2.5e-20,1.30400e-19,&
266          2.93800e-19,4.36000e-19,8.49400e-19,1.29400e-18,1.40500e-18,&
267          1.67600e-18,1.93400e-18,2.12200e-18,2.75800e-18,3.48400e-18,&
268          4.17200e-18,5.26000e-18 /)
269
270      crscabsi2(13,1:16) = (/ 0.0,1.60e-18,4.99111e-18,1.48496e-17,&
271          2.17395e-17,2.55857e-17,2.87754e-17,3.65571e-17,3.85691e-17,&
272          4.16286e-17,4.15117e-17,4.05901e-17,3.64000e-17,2.99670e-17,&
273          2.46796e-17,2.51789e-17 /)
274
275      freccen(1:ninter)=(/ 3.4,7.5,14.5,23.0,30.3,34.1,&
276           49.6,50.5,52.5,56.0,&
277           59.0,61.5,68.7,73.1,78.4,83.1,92.4,97.5,99.3,100.1,100.7,102.1,&
278           104.5,116.8,121.3,127.0,130.6,153.7,162.8,171.4,&
279           195.6,206.3,222.0,236.0,289.0,600. /)
280
281      co2crsc195(1:9)=(/ 2.05864e-17,5.90557e-20,3.1027e-19,6.70653e-19,&
282           4.55132e-19,8.87122e-20,1.32138e-20,7.22244e-23,2.88002e-26 /)
283
284      co2crsc295(1:9)=(/2.05897e-17,6.71104e-20,3.45509e-19,7.45711e-19,&
285           4.82752e-19,1.11594e-19,1.98308e-20,1.3853e-22,2.1414e-25 /)
286
287      END SUBROUTINE fill_data_thermos
288
289      SUBROUTINE allocate_param_thermos(nlayer)
290
291        IMPLICIT NONE
292
293        INTEGER :: nlayer
294        allocate(jdistot(nabs,nlayer))   
295        allocate(jdistot_b(nabs,nlayer))
296        allocate(jion(nabs,nlayer,4))
297        allocate(jfotsout(ninter,nabs,nlayer))
298        allocate(Pco2(nlayer,nreact))
299        allocate(Po2(nlayer,nreact))
300        allocate(Po3p(nlayer,nreact))
301        allocate(Pco(nlayer,nreact))
302        allocate(Ph(nlayer,nreact))
303        allocate(Poh(nlayer,nreact))
304        allocate(Pho2(nlayer,nreact))
305        allocate(Ph2(nlayer,nreact))
306        allocate(Ph2o(nlayer,nreact))
307        allocate(Po1d(nlayer,nreact))
308        allocate(Ph2o2(nlayer,nreact))
309        allocate(Po3(nlayer,nreact))
310        allocate(Pn(nlayer,nreact))
311        allocate(Pno(nlayer,nreact))
312        allocate(Pno2(nlayer,nreact))
313        allocate(Pn2(nlayer,nreact))
314        allocate(Pn2d(nlayer,nreact))
315        allocate(Pco2plus(nlayer,nreact))
316        allocate(Poplus(nlayer,nreact))
317        allocate(Po2plus(nlayer,nreact))
318        allocate(Pelect(nlayer,nreact))
319        allocate(Pcoplus(nlayer,nreact))
320        allocate(Pcplus(nlayer,nreact))
321        allocate(Pnplus(nlayer,nreact))
322        allocate(Pnoplus(nlayer,nreact))
323        allocate(Pn2plus(nlayer,nreact))
324        allocate(Phplus(nlayer,nreact))
325        allocate(Phco2plus(nlayer,nreact))
326        allocate(Pco2tot(nlayer))
327        allocate(Po2tot(nlayer))
328        allocate(Po3ptot(nlayer))
329        allocate(Pcotot(nlayer))
330        allocate(Phtot(nlayer))
331        allocate(Pohtot(nlayer))
332        allocate(Pho2tot(nlayer))
333        allocate(Ph2tot(nlayer))
334        allocate(Ph2otot(nlayer))
335        allocate(Po1dtot(nlayer))
336        allocate(Ph2o2tot(nlayer))
337        allocate(Po3tot(nlayer))
338        allocate(Pntot(nlayer))
339        allocate(Pnotot(nlayer))
340        allocate(Pno2tot(nlayer))
341        allocate(Pn2tot(nlayer))
342        allocate(Pn2dtot(nlayer))
343        allocate(Pco2plustot(nlayer))
344        allocate(Poplustot(nlayer))
345        allocate(Po2plustot(nlayer))
346        allocate(Pelecttot(nlayer))
347        allocate(Pcoplustot(nlayer))
348        allocate(Pcplustot(nlayer))
349        allocate(Pnplustot(nlayer))
350        allocate(Pnoplustot(nlayer))
351        allocate(Pn2plustot(nlayer))
352        allocate(Phplustot(nlayer))
353        allocate(Phco2plustot(nlayer))
354        allocate(Lco2(nlayer,nreact))
355        allocate(Lo2(nlayer,nreact))
356        allocate(Lo3p(nlayer,nreact))
357        allocate(Lco(nlayer,nreact))
358        allocate(Lh(nlayer,nreact))
359        allocate(Loh(nlayer,nreact))
360        allocate(Lho2(nlayer,nreact))
361        allocate(Lh2(nlayer,nreact))
362        allocate(Lh2o(nlayer,nreact))
363        allocate(Lo1d(nlayer,nreact))
364        allocate(Lh2o2(nlayer,nreact))
365        allocate(Lo3(nlayer,nreact))
366        allocate(Ln(nlayer,nreact))
367        allocate(Lno(nlayer,nreact))
368        allocate(Lno2(nlayer,nreact))
369        allocate(Ln2(nlayer,nreact))
370        allocate(Ln2d(nlayer,nreact))
371        allocate(Lco2plus(nlayer,nreact))
372        allocate(Loplus(nlayer,nreact))
373        allocate(Lo2plus(nlayer,nreact))
374        allocate(Lelect(nlayer,nreact))
375        allocate(Lcoplus(nlayer,nreact))
376        allocate(Lcplus(nlayer,nreact))
377        allocate(Lnplus(nlayer,nreact))
378        allocate(Lnoplus(nlayer,nreact))
379        allocate(Ln2plus(nlayer,nreact))
380        allocate(Lhplus(nlayer,nreact))
381        allocate(Lhco2plus(nlayer,nreact))
382        allocate(Lco2tot(nlayer))
383        allocate(Lo2tot(nlayer))
384        allocate(Lo3ptot(nlayer))
385        allocate(Lcotot(nlayer))
386        allocate(Lhtot(nlayer))
387        allocate(Lohtot(nlayer))
388        allocate(Lho2tot(nlayer))
389        allocate(Lh2tot(nlayer))
390        allocate(Lh2otot(nlayer))
391        allocate(Lo1dtot(nlayer))
392        allocate(Lh2o2tot(nlayer))
393        allocate(Lo3tot(nlayer))
394        allocate(Lntot(nlayer))
395        allocate(Lnotot(nlayer))
396        allocate(Lno2tot(nlayer))
397        allocate(Ln2tot(nlayer))
398        allocate(Ln2dtot(nlayer))
399        allocate(Lco2plustot(nlayer))
400        allocate(Loplustot(nlayer))
401        allocate(Lo2plustot(nlayer))
402        allocate(Lelecttot(nlayer))
403        allocate(Lcoplustot(nlayer))
404        allocate(Lcplustot(nlayer))
405        allocate(Lnplustot(nlayer))
406        allocate(Lnoplustot(nlayer))
407        allocate(Ln2plustot(nlayer))
408        allocate(Lhplustot(nlayer))
409        allocate(Lhco2plustot(nlayer))
410        allocate(tminco2(nlayer))
411        allocate(tmino2(nlayer))
412        allocate(tmino3p(nlayer))
413        allocate(tminco(nlayer))
414        allocate(tminh(nlayer))
415        allocate(tminoh(nlayer))
416        allocate(tminho2(nlayer))
417        allocate(tminh2(nlayer))
418        allocate(tminh2o(nlayer))
419        allocate(tmino1d(nlayer))
420        allocate(tminh2o2(nlayer))
421        allocate(tmino3(nlayer))
422        allocate(tminn(nlayer))
423        allocate(tminno(nlayer))
424        allocate(tminno2(nlayer))
425        allocate(tminn2(nlayer))
426        allocate(tminn2d(nlayer))
427        allocate(tminco2plus(nlayer))
428        allocate(tminoplus(nlayer))
429        allocate(tmino2plus(nlayer))
430        allocate(tmincoplus(nlayer))
431        allocate(tmincplus(nlayer))
432        allocate(tminnplus(nlayer))
433        allocate(tminnoplus(nlayer))
434        allocate(tminn2plus(nlayer))
435        allocate(tminhplus(nlayer))
436        allocate(tminhco2plus(nlayer))
437
438      END SUBROUTINE allocate_param_thermos
439
440END MODULE param_v4_h
Note: See TracBrowser for help on using the repository browser.