source: trunk/LMDZ.VENUS/libf/phyvenus/photochemistry_venus.F90 @ 2203

Last change on this file since 2203 was 2188, checked in by flefevre, 5 years ago
  • nouvelle version de la photochimie venusienne (calquee sur la version martienne) operationnelle
  • nettoyage de la subroutine d'interface phytrac_chimie.F
File size: 177.0 KB
Line 
1subroutine photochemistry_venus(nz, n_lon, ptimestep, p, t, tr, mumean, sza_input, nesp, iter)
2
3use chemparam_mod
4     
5implicit none
6
7!===================================================================
8!     input:
9!===================================================================
10
11integer, intent(in) :: nz         ! number of atmospheric layers
12integer, intent(in) :: nesp       ! number of tracers in traceur.def
13
14real, dimension(nz) :: p          ! pressure (hpa)
15real, dimension(nz) :: t          ! temperature (k)
16real, dimension(nz) :: mumean     ! mean molecular mass (g/mol)
17real :: ptimestep                 ! physics timestep (s)
18real :: sza_input                 ! solar zenith angle (degrees)
19
20integer :: n_lon                  ! for 1D test
21
22!===================================================================
23!     input/output:
24!===================================================================
25
26real, dimension(nz,nesp) :: tr    ! tracer mixing ratio
27
28!===================================================================
29!     output:
30!===================================================================
31
32integer :: iter(nz)               ! iteration counter
33
34!===================================================================
35!     local:
36!===================================================================
37
38logical, save :: firstcall = .true.
39
40real, dimension(nz)  :: conc      ! total number density (molecule.cm-3)
41real, dimension(nz)  :: surfice1d, surfdust1d
42
43! photolysis lookup table
44
45integer, parameter :: nj = 19, nztable = 201, nsza = 27, nso2 = 13
46real, dimension(nso2,nsza,nztable,nj), save :: jphot
47real, dimension(nztable), save :: table_colair
48real, dimension(nso2,nztable), save :: table_colso2
49real, dimension(nsza), save :: table_sza
50real :: dist_sol
51
52! number densities
53
54real, dimension(nesp)    :: cold  ! number densities at previous timestep (molecule.cm-3)
55real, dimension(nz,nesp) :: c     ! number densities at current timestep (molecule.cm-3)
56real, dimension(nesp)    :: cnew  ! number densities at next timestep (molecule.cm-3)
57     
58! timesteps
59
60real :: ctimestep           ! standard timestep for the chemistry (s)
61real :: dt_guess            ! first-guess timestep (s)
62real :: dt_corrected        ! corrected timestep (s)
63real :: time                ! internal time (between 0 and ptimestep, in s)
64integer :: phychemrat
65
66! reaction rates
67
68integer, parameter :: nb_phot_max       = 30
69integer, parameter :: nb_reaction_3_max = 12
70integer, parameter :: nb_reaction_4_max = 87
71
72real, dimension(nz,nb_phot_max)       :: v_phot
73real, dimension(nz,nb_reaction_3_max) :: v_3
74real, dimension(nz,nb_reaction_4_max) :: v_4
75
76logical,parameter :: hetero_ice  = .false.
77logical,parameter :: hetero_dust = .false.
78
79! matrix
80
81real, dimension(nesp,nesp) :: mat, mat1
82integer, dimension(nesp)   :: indx
83integer                    :: code
84
85! production and loss terms (for first-guess solution only)
86
87real, dimension(nesp) :: prod, loss
88
89! indexes
90
91integer :: i, iesp, iz
92
93if (firstcall) then
94!===================================================================
95!     read photolysis lookup table
96!===================================================================
97
98   call init_chimie(nj, nztable, nsza, nso2, jphot, table_colair, table_colso2, table_sza)
99
100!===================================================================
101!     initialisation of the reaction indexes
102!===================================================================
103
104   call indice(nb_phot_max, nb_reaction_3_max, nb_reaction_4_max)
105
106   firstcall = .false.
107end if
108
109! cloud and dust surfaces set to zero for the moment
110
111surfice1d(:)  = 0.
112surfdust1d(:) = 0.
113     
114!===================================================================
115!   number densities (molecule.cm-3)
116!===================================================================
117
118do iz = 1,nz
119   conc(iz) = p(iz)/(1.38E-19*t(iz))
120   c(iz,:) = tr(iz,:)*conc(iz)
121end do
122     
123!===================================================================
124!    photodissociations         
125!===================================================================
126
127! dist_sol : sun-venus distance (au)
128
129dist_sol = 0.72333
130
131call phot(nj, nztable, nsza, nso2, sza_input, dist_sol, mumean, tr(:,i_co2), tr(:,i_so2),         &
132          jphot, table_colair, table_colso2, table_sza, nz, nb_phot_max, t, p, v_phot)
133
134!===================================================================
135!     reaction rates                                     
136!===================================================================
137                   
138call krates(hetero_ice, hetero_dust, nz, nesp, nj, c, conc, t, p, nb_phot_max, nb_reaction_3_max, &
139            nb_reaction_4_max, v_3, v_4, v_phot, sza_input)
140
141!===================================================================
142!     ctimestep : standard chemical timestep (s), defined as
143!                 the fraction phychemrat of the physical timestep                           
144!===================================================================
145       
146phychemrat = 1
147
148ctimestep  = ptimestep/real(phychemrat)
149
150!===================================================================
151!     loop over levels         
152!===================================================================
153
154do iz = 1,nz
155
156!  initializations
157
158   time = 0.
159   iter(iz) = 0
160   dt_guess = ctimestep
161   cold(:) = c(iz,:)     
162
163!  internal loop for the chemistry
164         
165   do while (time < ptimestep)
166     
167   iter(iz) = iter(iz) + 1
168
169!  first-guess: fill matrix
170
171   call fill_matrix(iz, mat1, prod, loss, c, nesp, nz,                    &
172                    nb_reaction_3_max, nb_reaction_4_max, nb_phot_max,    &
173                    v_phot, v_3, v_4)
174
175!  adaptative evaluation of the sub time step
176
177   call define_dt(nesp, dt_corrected, dt_guess, ctimestep, cold(:), c(iz,:), &
178                  mat1, prod, loss, conc(iz))
179
180   if (time + dt_corrected > ptimestep) then
181      dt_corrected = ptimestep - time
182   end if
183
184!  form the matrix identity + mat*dt_corrected
185
186   mat(:,:) = mat1(:,:)*dt_corrected
187   do iesp = 1,nesp
188      mat(iesp,iesp) = 1. + mat(iesp,iesp)
189   end do
190
191!  solve the linear system  M*Cn+1 = Cn (RHS in cnew, then replaced by solution)
192
193   cnew(:) = c(iz,:)
194
195#ifdef LAPACK
196   call dgesv(nesp,1,mat,nesp,indx,cnew,nesp,code)
197#else
198   write(*,*) "photochemistry error, missing LAPACK routine dgesv"
199   stop
200#endif
201
202!  eliminate small values
203
204   where (cnew(:)/conc(iz) < 1.e-30)
205      cnew(:) = 0.
206   end where
207
208!  update concentrations
209
210   cold(:) = c(iz,:)
211   c(iz,:) = cnew(:)
212   cnew(:) = 0.
213
214!  increment internal time
215
216   time = time + dt_corrected
217   dt_guess = dt_corrected     ! first-guess timestep for next iteration
218
219   end do ! while (time < ptimestep)
220
221!  save mixing ratios
222
223   tr(iz,:)  = max(c(iz,:)/conc(iz), 1.e-30)
224                       
225end do  ! end of loop over vertical levels
226   
227!==================
228!!!!! MODEL 1D !!!! ==> n_lon = 1 !!!!
229!==================
230
231IF(n_lon .EQ. 1) THEN
232PRINT*,'On est en 1D'
233!PRINT*,"DEBUT rate_save"
234CALL rate_save(nz,p(:),t(:),tr(:,:),nesp,v_phot(:,:),v_3(:,:),v_4(:,:))
235!PRINT*,"FIN rate_save"
236END IF
237     
238end subroutine photochemistry_venus
239
240!======================================================================
241
242 subroutine init_chimie(nj, nztable, nsza, nso2, jphot, table_colair, &
243                        table_colso2, table_sza)
244
245!======================================================================
246
247implicit none
248
249! photolysis lookup table
250
251integer, INTENT(IN) :: nj, nztable, nsza, nso2
252real, INTENT(OUT), dimension(nso2,nsza,nztable,nj) :: jphot
253real, INTENT(OUT), dimension(nztable) :: table_colair
254real, INTENT(OUT), dimension(nso2,nztable) :: table_colso2
255real, INTENT(OUT), dimension(nsza) :: table_sza
256
257integer           :: iz, isza, iozo, iso2, ij
258character(len=44) :: jvenus
259
260! lecture de la table des j
261
262jphot(:,:,:,:) = 0.
263
264jvenus = 'jvenus.dat'
265open(30, form = 'formatted', status = 'old', file = jvenus)
266print*,'lecture de jvenus = ', jvenus
267
268do iso2 = 1,nso2
269   do isza = 1,nsza
270      do iz = nztable,1,-1
271         read(30,*) table_colair(iz), table_colso2(iso2,iz), table_sza(isza)
272         read(30,'(7e11.4)') (jphot(iso2,isza,iz,ij), ij = 1,nj)
273         do ij = 1,nj
274            if (jphot(iso2,isza,iz,ij) == 1.E-30) then
275               jphot(iso2,isza,iz,ij) = 0.
276            end if
277         end do
278      end do
279   end do
280end do
281
282close(30)
283print*,'lecture de la table des j ok.'
284
285end subroutine init_chimie
286
287!======================================================================
288
289 subroutine indice(nb_phot_max, nb_reaction_3_max, nb_reaction_4_max)
290
291!================================================================
292! set the "indice" arrays used to fill the jacobian matrix      !
293!----------------------------------------------------------------
294! reaction               type                array              !
295!----------------------------------------------------------------
296! A + hv   --> B + C     photolysis          indice_phot        !
297! A + B    --> C + D     bimolecular         indice_4           !
298! A + A    --> B + C     quadratic           indice_3           !
299! A + C    --> B + C     quenching           indice_phot        !
300! A + ice  --> B + C     heterogeneous       indice_phot        !
301!================================================================
302
303use types_asis
304use chemparam_mod
305 
306implicit none
307
308! input
309
310integer :: nb_phot_max, nb_reaction_3_max, nb_reaction_4_max
311
312! local
313
314integer :: nb_phot, nb_reaction_3, nb_reaction_4
315integer :: i_dummy
316
317allocate (indice_phot(nb_phot_max))
318allocate (indice_3(nb_reaction_3_max))
319allocate (indice_4(nb_reaction_4_max))
320
321i_dummy = 1
322
323nb_phot       = 0
324nb_reaction_3 = 0
325nb_reaction_4 = 0
326
327!===========================================================
328!      O2 + hv -> O + O
329!===========================================================
330
331nb_phot = nb_phot + 1
332
333indice_phot(nb_phot) = z3spec(1.0, i_o2, 2.0, i_o, 0.0, i_dummy)
334
335!===========================================================
336!      O2 + hv -> O + O(1D)
337!===========================================================
338
339nb_phot = nb_phot + 1
340
341indice_phot(nb_phot) = z3spec(1.0, i_o2, 1.0, i_o, 1.0, i_o1d)
342
343!===========================================================
344!      CO2 + hv -> CO + O
345!===========================================================
346
347nb_phot = nb_phot + 1
348
349indice_phot(nb_phot) = z3spec(1.0, i_co2, 1.0, i_co, 1.0, i_o)
350
351!===========================================================
352!      CO2 + hv -> CO + O(1D)
353!===========================================================
354
355nb_phot = nb_phot + 1
356
357indice_phot(nb_phot) = z3spec(1.0, i_co2, 1.0, i_co, 1.0, i_o1d)
358
359!===========================================================
360!      O3 + hv -> O2(Dg) + O(1D)
361!===========================================================
362
363nb_phot = nb_phot + 1
364
365indice_phot(nb_phot) = z3spec(1.0, i_o3, 1.0, i_o2dg, 1.0, i_o1d)
366
367!===========================================================
368!      O3 + hv -> O2 + O
369!===========================================================
370
371nb_phot = nb_phot + 1
372
373indice_phot(nb_phot) = z3spec(1.0, i_o3, 1.0, i_o2, 1.0, i_o)
374
375!===========================================================
376!      H2O + hv -> H + OH
377!===========================================================
378
379nb_phot = nb_phot + 1
380
381indice_phot(nb_phot) = z3spec(1.0, i_h2o, 1.0, i_h, 1.0, i_oh)
382
383!===========================================================
384!      HO2 + hv -> OH + O
385!===========================================================
386
387nb_phot = nb_phot + 1
388
389indice_phot(nb_phot) = z3spec(1.0, i_ho2, 1.0, i_oh, 1.0, i_o)
390
391!===========================================================
392!      H2O2 + hv -> OH + OH
393!===========================================================
394
395nb_phot = nb_phot + 1
396
397indice_phot(nb_phot) = z3spec(1.0, i_h2o2, 2.0, i_oh, 0.0, i_dummy)
398
399!===========================================================
400!      HCl + hv -> H + Cl
401!===========================================================
402
403nb_phot = nb_phot + 1
404
405indice_phot(nb_phot) = z3spec(1.0, i_hcl, 1.0, i_h, 1.0, i_cl)
406
407!===========================================================
408!      Cl2 + hv -> Cl + Cl
409!===========================================================
410
411nb_phot = nb_phot + 1
412
413indice_phot(nb_phot) = z3spec(1.0, i_cl2, 2.0, i_cl, 0.0, i_dummy)
414
415!===========================================================
416!      HOCl + hv -> OH + Cl
417!===========================================================
418
419nb_phot = nb_phot + 1
420
421indice_phot(nb_phot) = z3spec(1.0, i_hocl, 1.0, i_oh, 1.0, i_cl)
422
423!===========================================================
424!      SO2 + hv -> SO + O
425!===========================================================
426
427nb_phot = nb_phot + 1
428
429indice_phot(nb_phot) = z3spec(1.0, i_so2, 1.0, i_so, 1.0, i_o)
430
431!===========================================================
432!      SO + hv -> S + O
433!===========================================================
434
435nb_phot = nb_phot + 1
436
437indice_phot(nb_phot) = z3spec(1.0, i_so, 1.0, i_s, 1.0, i_o)
438
439!===========================================================
440!      SO3 + hv -> SO2 + O
441!===========================================================
442
443nb_phot = nb_phot + 1
444
445indice_phot(nb_phot) = z3spec(1.0, i_so3, 1.0, i_so2, 1.0, i_o)
446
447!===========================================================
448!      ClO + hv -> Cl + O
449!===========================================================
450
451nb_phot = nb_phot + 1
452
453indice_phot(nb_phot) = z3spec(1.0, i_clo, 1.0, i_cl, 1.0, i_o)
454
455!===========================================================
456!      OCS + hv -> CO + S
457!===========================================================
458
459nb_phot = nb_phot + 1
460
461indice_phot(nb_phot) = z3spec(1.0, i_ocs, 1.0, i_co, 1.0, i_s)
462
463!===========================================================
464!      COCl2 + hv -> Cl + Cl + CO
465!===========================================================
466
467nb_phot = nb_phot + 1
468
469indice_phot(nb_phot) = z3spec(1.0, i_cocl2, 2.0, i_cl, 1.0, i_co)
470
471!===========================================================
472!      H2SO4 + hv -> SO3 + H2O
473!===========================================================
474
475nb_phot = nb_phot + 1
476
477indice_phot(nb_phot) = z3spec(1.0, i_h2so4, 1.0, i_so3, 1.0, i_h2o)
478
479!===========================================================
480!      a001 : O + O2 + CO2 -> O3 + CO2
481!===========================================================
482
483nb_reaction_4 = nb_reaction_4 + 1
484
485indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_o2, 1.0, i_o3, 0.0, i_dummy)
486
487!===========================================================
488!      a002 : O + O + CO2 -> O2(Dg) + CO2
489!===========================================================
490
491nb_reaction_3 = nb_reaction_3 + 1
492
493indice_3(nb_reaction_3) = z3spec(2.0, i_o, 1.0, i_o2dg, 0.0, i_dummy)
494
495!===========================================================
496!      a003 : O + O3 -> O2 + O2
497!===========================================================
498
499nb_reaction_4 = nb_reaction_4 + 1
500
501indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_o3, 2.0, i_o2, 0.0, i_dummy)
502
503!===========================================================
504!      b001 : O(1D) + CO2 -> O + CO2
505!===========================================================
506
507nb_phot = nb_phot + 1
508
509indice_phot(nb_phot) = z3spec(1.0, i_o1d, 1.0, i_o, 0.0, i_dummy)
510
511!===========================================================
512!      b002 : O(1D) + H2O -> OH + OH
513!===========================================================
514
515nb_reaction_4 = nb_reaction_4 + 1
516
517indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_h2o, 2.0, i_oh, 0.0, i_dummy)
518
519!===========================================================
520!      b003 : O(1D) + H2 -> OH + H
521!===========================================================
522
523nb_reaction_4 = nb_reaction_4 + 1
524
525indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_h2, 1.0, i_oh, 1.0, i_h)
526
527!===========================================================
528!      b004 : O(1D) + O2 -> O + O2
529!===========================================================
530
531nb_phot = nb_phot + 1
532
533indice_phot(nb_phot) = z3spec(1.0, i_o1d, 1.0, i_o, 0.0, i_dummy)
534
535!===========================================================
536!      b005 : O(1D) + O3 -> O2 + O2
537!===========================================================
538
539nb_reaction_4 = nb_reaction_4 + 1
540
541indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_o3, 2.0, i_o2, 0.0, i_dummy)
542
543!===========================================================
544!      b006 : O(1D) + O3 -> O2 + O + O
545!===========================================================
546
547nb_reaction_4 = nb_reaction_4 + 1
548
549indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_o3, 1.0, i_o2, 2.0, i_o)
550
551!===========================================================
552!      c001 : O + HO2 -> OH + O2
553!===========================================================
554
555nb_reaction_4 = nb_reaction_4 + 1
556
557indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_ho2, 1.0, i_oh, 1.0, i_o2)
558
559!===========================================================
560!      c002 : O + OH -> O2 + H
561!===========================================================
562
563nb_reaction_4 = nb_reaction_4 + 1
564
565indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_oh, 1.0, i_o2, 1.0, i_h)
566
567!===========================================================
568!      c003 : H + O3 -> OH + O2
569!===========================================================
570
571nb_reaction_4 = nb_reaction_4 + 1
572
573indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_o3, 1.0, i_oh, 1.0, i_o2)
574
575!===========================================================
576!      c004 : H + HO2 -> OH + OH
577!===========================================================
578
579nb_reaction_4 = nb_reaction_4 + 1
580
581indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_ho2, 2.0, i_oh, 0.0, i_dummy)
582
583!===========================================================
584!      c005 : H + HO2 -> H2 + O2
585!===========================================================
586
587nb_reaction_4 = nb_reaction_4 + 1
588
589indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_ho2, 1.0, i_h2, 1.0, i_o2)
590
591!===========================================================
592!      c006 : H + HO2 -> H2O + O
593!===========================================================
594
595nb_reaction_4 = nb_reaction_4 + 1
596
597indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_ho2, 1.0, i_h2o, 1.0, i_o)
598
599!===========================================================
600!      c007 : OH + HO2 -> H2O + O2
601!===========================================================
602
603nb_reaction_4 = nb_reaction_4 + 1
604
605indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_ho2, 1.0, i_h2o, 1.0, i_o2)
606
607!===========================================================
608!      c008 : HO2 + HO2 -> H2O2 + O2
609!===========================================================
610
611nb_reaction_3 = nb_reaction_3 + 1
612
613indice_3(nb_reaction_3) = z3spec(2.0, i_ho2, 1.0, i_h2o2, 1.0, i_o2)
614
615!===========================================================
616!      c009 : OH + H2O2 -> H2O + HO2
617!===========================================================
618
619nb_reaction_4 = nb_reaction_4 + 1
620
621indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_h2o2, 1.0, i_h2o, 1.0, i_ho2)
622
623!===========================================================
624!      c010 : OH + H2 -> H2O + H
625!===========================================================
626
627nb_reaction_4 = nb_reaction_4 + 1
628
629indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_h2, 1.0, i_h2o, 1.0, i_h)
630
631!===========================================================
632!      c011 : H + O2 + CO2 -> HO2 + CO2
633!===========================================================
634
635nb_reaction_4 = nb_reaction_4 + 1
636
637indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_o2, 1.0, i_ho2, 0.0, i_dummy)
638
639!===========================================================
640!      c012 : O + H2O2 -> OH + HO2
641!===========================================================
642
643nb_reaction_4 = nb_reaction_4 + 1
644
645indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_h2o2, 1.0, i_oh, 1.0, i_ho2)
646
647!===========================================================
648!      c013 : OH + OH -> H2O + O
649!===========================================================
650
651nb_reaction_3 = nb_reaction_3 + 1
652
653indice_3(nb_reaction_3) = z3spec(2.0, i_oh, 1.0, i_h2o, 1.0, i_o)
654
655!===========================================================
656!      c014 : OH + O3 -> HO2 + O2
657!===========================================================
658
659nb_reaction_4 = nb_reaction_4 + 1
660
661indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_o3, 1.0, i_ho2, 1.0, i_o2)
662
663!===========================================================
664!      c015 : HO2 + O3 -> OH + O2 + O2
665!===========================================================
666
667nb_reaction_4 = nb_reaction_4 + 1
668
669indice_4(nb_reaction_4) = z4spec(1.0, i_ho2, 1.0, i_o3, 1.0, i_oh, 2.0, i_o2)
670
671!===========================================================
672!      c016 : HO2 + HO2 + CO2 -> H2O2 + O2 + CO2
673!===========================================================
674
675nb_reaction_3 = nb_reaction_3 + 1
676
677indice_3(nb_reaction_3) = z3spec(2.0, i_ho2, 1.0, i_h2o2, 1.0, i_o2)
678
679!===========================================================
680!      c017 : OH + OH + CO2 -> H2O2 + CO2
681!===========================================================
682
683nb_reaction_3 = nb_reaction_3 + 1
684
685indice_3(nb_reaction_3) = z3spec(2.0, i_oh, 1.0, i_h2o2, 0.0, i_dummy)
686
687!===========================================================
688!      c018 : H + H + CO2 -> H2 + CO2
689!===========================================================
690
691nb_reaction_3 = nb_reaction_3 + 1
692
693indice_3(nb_reaction_3) = z3spec(2.0, i_h, 1.0, i_h2, 0.0, i_dummy)
694
695!===========================================================
696!      e001 : CO + OH -> CO2 + H
697!===========================================================
698
699nb_reaction_4 = nb_reaction_4 + 1
700
701indice_4(nb_reaction_4) = z4spec(1.0, i_co, 1.0, i_oh, 1.0, i_co2, 1.0, i_h)
702
703!===========================================================
704!      e002 : CO + O + M -> CO2 + M
705!===========================================================
706
707nb_reaction_4 = nb_reaction_4 + 1
708
709indice_4(nb_reaction_4) = z4spec(1.0, i_co, 1.0, i_o, 1.0, i_co2, 0.0, i_dummy)
710
711!===========================================================
712!      f001 : HCl + O(1D) -> OH + Cl
713!===========================================================
714
715nb_reaction_4 = nb_reaction_4 + 1
716
717indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_o1d, 1.0, i_oh, 1.0, i_cl)
718
719!===========================================================
720!      f002 : HCl + O(1D) -> H + ClO
721!===========================================================
722
723nb_reaction_4 = nb_reaction_4 + 1
724
725indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_o1d, 1.0, i_h, 1.0, i_clo)
726
727!===========================================================
728!      f003 : HCl + O -> OH + Cl
729!===========================================================
730
731nb_reaction_4 = nb_reaction_4 + 1
732
733indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_o, 1.0, i_oh, 1.0, i_cl)
734
735!===========================================================
736!      f004 : HCl + OH -> H2O + Cl
737!===========================================================
738
739nb_reaction_4 = nb_reaction_4 + 1
740
741indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_oh, 1.0, i_h2o, 1.0, i_cl)
742
743!===========================================================
744!      f005 : ClO + O -> Cl + O2
745!===========================================================
746
747nb_reaction_4 = nb_reaction_4 + 1
748
749indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_o, 1.0, i_cl, 1.0, i_o2)
750
751!===========================================================
752!      f006 : ClO + OH -> Cl + HO2
753!===========================================================
754
755nb_reaction_4 = nb_reaction_4 + 1
756
757indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_oh, 1.0, i_cl, 1.0, i_ho2)
758
759!===========================================================
760!      f007 : ClO + OH -> HCl + O2
761!===========================================================
762
763nb_reaction_4 = nb_reaction_4 + 1
764
765indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_oh, 1.0, i_hcl, 1.0, i_o2)
766
767!===========================================================
768!      f008 : Cl + H2 -> HCl + H
769!===========================================================
770
771nb_reaction_4 = nb_reaction_4 + 1
772
773indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_h2, 1.0, i_hcl, 1.0, i_h)
774
775!===========================================================
776!      f009 : Cl + O3 -> ClO + O2
777!===========================================================
778
779nb_reaction_4 = nb_reaction_4 + 1
780
781indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_o3, 1.0, i_clo, 1.0, i_o2)
782
783!===========================================================
784!      f010 : Cl + HO2 -> ClO + OH
785!===========================================================
786
787nb_reaction_4 = nb_reaction_4 + 1
788
789indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_ho2, 1.0, i_clo, 1.0, i_oh)
790
791!===========================================================
792!      f011 : Cl + HO2 -> HCl + O2
793!===========================================================
794
795nb_reaction_4 = nb_reaction_4 + 1
796
797indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_ho2, 1.0, i_hcl, 1.0, i_o2)
798
799!===========================================================
800!      f012 : Cl + H2O2 -> HCl + HO2
801!===========================================================
802
803nb_reaction_4 = nb_reaction_4 + 1
804
805indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_h2o2, 1.0, i_hcl, 1.0, i_ho2)
806
807!===========================================================
808!      f013 : Cl + CO + CO2 -> ClCO + CO2
809!===========================================================
810
811nb_reaction_4 = nb_reaction_4 + 1
812
813indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_co, 1.0, i_clco, 0.0, i_dummy)
814
815!===========================================================
816!      f014 : ClCO + CO2 -> Cl + CO + CO2
817!===========================================================
818
819nb_phot = nb_phot + 1
820
821indice_phot(nb_phot) = z3spec(1.0, i_clco, 1.0, i_cl, 1.0, i_co)
822
823!===========================================================
824!      f015 : ClCO + O2 + CO2 -> ClCO3 + CO2
825!===========================================================
826
827nb_reaction_4 = nb_reaction_4 + 1
828
829indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_o2, 1.0, i_clco3, 0.0, i_dummy)
830
831!===========================================================
832!      f016 : 0.5 ClCO3 + 0.5 Cl -> Cl
833!             0.5 ClCO3 + 0.5 Cl -> ClO + CO2
834!===========================================================
835
836nb_reaction_4 = nb_reaction_4 + 1
837
838indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_cl, 1.0, i_cl, 0.0, i_dummy)
839
840nb_reaction_4 = nb_reaction_4 + 1
841
842indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_cl, 1.0, i_clo, 1.0, i_co2)
843
844!===========================================================
845!      f017 : 0.5 ClCO3 + 0.5 O -> Cl
846!             0.5 ClCO3 + 0.5 O -> O2 + CO2
847!===========================================================
848
849nb_reaction_4 = nb_reaction_4 + 1
850
851indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_o, 1.0, i_cl, 0.0, i_dummy)
852
853nb_reaction_4 = nb_reaction_4 + 1
854
855indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_o, 1.0, i_o2, 1.0, i_co2)
856
857!===========================================================
858!      f018 : ClO + HO2 -> HOCl + O2
859!===========================================================
860
861nb_reaction_4 = nb_reaction_4 + 1
862
863indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_ho2, 1.0, i_hocl, 1.0, i_o2)
864
865!===========================================================
866!      f019 : OH + HOCl -> H2O + ClO
867!===========================================================
868
869nb_reaction_4 = nb_reaction_4 + 1
870
871indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_hocl, 1.0, i_h2o, 1.0, i_clo)
872
873!===========================================================
874!      f020 : O + HOCl -> OH + ClO
875!===========================================================
876
877nb_reaction_4 = nb_reaction_4 + 1
878
879indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_hocl, 1.0, i_oh, 1.0, i_clo)
880
881!===========================================================
882!      f021 : Cl + Cl + CO2 -> Cl2 + CO2
883!===========================================================
884
885nb_reaction_3 = nb_reaction_3 + 1
886
887indice_3(nb_reaction_3) = z3spec(2.0, i_cl, 1.0, i_cl2, 0.0, i_dummy)
888
889!===========================================================
890!      f022 : ClCO + O -> Cl + CO2
891!===========================================================
892
893nb_reaction_4 = nb_reaction_4 + 1
894
895indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_o, 1.0, i_cl, 1.0, i_co2)
896
897!===========================================================
898!      f023 : Cl2 + O(1D) -> Cl + ClO
899!===========================================================
900
901nb_reaction_4 = nb_reaction_4 + 1
902
903indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_o1d, 1.0, i_cl, 1.0, i_clo)
904
905!===========================================================
906!      f024 : Cl2 + H -> HCl + Cl
907!===========================================================
908
909nb_reaction_4 = nb_reaction_4 + 1
910
911indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_h, 1.0, i_hcl, 1.0, i_cl)
912
913!===========================================================
914!      f025 : Cl + ClCO -> Cl2 + CO
915!===========================================================
916
917nb_reaction_4 = nb_reaction_4 + 1
918
919indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_clco, 1.0, i_cl2, 1.0, i_co)
920
921!===========================================================
922!      f026 : ClCO + ClCO -> COCl2 + CO
923!===========================================================
924
925nb_reaction_3 = nb_reaction_3 + 1
926
927indice_3(nb_reaction_3) = z3spec(2.0, i_clco, 1.0, i_cocl2, 1.0, i_co)
928
929!===========================================================
930!      f027 : Cl + SO2 + CO2 -> ClSO2 + CO2
931!===========================================================
932
933nb_reaction_4 = nb_reaction_4 + 1
934
935indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_so2, 1.0, i_clso2, 0.0, i_dummy)
936
937!===========================================================
938!      f028 : ClSO2 + O -> SO2 + ClO
939!===========================================================
940
941nb_reaction_4 = nb_reaction_4 + 1
942
943indice_4(nb_reaction_4) = z4spec(1.0, i_clso2, 1.0, i_o, 1.0, i_so2, 1.0, i_clo)
944
945!===========================================================
946!      f029 : ClSO2 + H -> SO2 + HCl
947!===========================================================
948
949nb_reaction_4 = nb_reaction_4 + 1
950
951indice_4(nb_reaction_4) = z4spec(1.0, i_clso2, 1.0, i_h, 1.0, i_so2, 1.0, i_hcl)
952
953!===========================================================
954!      f030 : ClSO2 + ClSO2 -> Cl2 + SO2 + SO2
955!===========================================================
956
957nb_reaction_3 = nb_reaction_3 + 1
958
959indice_3(nb_reaction_3) = z3spec(2.0, i_clso2, 1.0, i_cl2, 2.0, i_so2)
960
961!===========================================================
962!      f031 : Cl + O + CO2 -> ClO + CO2
963!===========================================================
964
965nb_reaction_4 = nb_reaction_4 + 1
966
967indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_o, 1.0, i_clo, 0.0, i_dummy)
968
969!===========================================================
970!      f032 : Cl2 + O -> ClO + Cl
971!===========================================================
972
973nb_reaction_4 = nb_reaction_4 + 1
974
975indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_o, 1.0, i_clo, 1.0, i_cl)
976
977!===========================================================
978!      f033 : ClCO + OH -> HOCl + CO
979!===========================================================
980
981nb_reaction_4 = nb_reaction_4 + 1
982
983indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_oh, 1.0, i_hocl, 1.0, i_co)
984
985!===========================================================
986!      f034 : Cl2 + OH -> Cl + HOCl
987!===========================================================
988
989nb_reaction_4 = nb_reaction_4 + 1
990
991indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_oh, 1.0, i_cl, 1.0, i_hocl)
992
993!===========================================================
994!      f035 : ClCO + O -> CO + ClO
995!===========================================================
996
997nb_reaction_4 = nb_reaction_4 + 1
998
999indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_o, 1.0, i_co, 1.0, i_clo)
1000
1001!===========================================================
1002!      f036 : ClCO + Cl2 -> COCl2 + Cl
1003!===========================================================
1004
1005nb_reaction_4 = nb_reaction_4 + 1
1006
1007indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_cl2, 1.0, i_cocl2, 1.0, i_cl)
1008
1009!===========================================================
1010!      f037 : HCl + H -> H2 + Cl
1011!===========================================================
1012
1013nb_reaction_4 = nb_reaction_4 + 1
1014
1015indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_h, 1.0, i_h2, 1.0, i_cl)
1016
1017!===========================================================
1018!      f038 : ClCO + H -> HCl + CO
1019!===========================================================
1020
1021nb_reaction_4 = nb_reaction_4 + 1
1022
1023indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_h, 1.0, i_hcl, 1.0, i_co)
1024
1025!===========================================================
1026!      f039 : Cl + H + M -> HCl + M
1027!===========================================================
1028
1029nb_reaction_4 = nb_reaction_4 + 1
1030
1031indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_h, 1.0, i_hcl, 0.0, i_dummy)
1032
1033!===========================================================
1034!      g001 : S + O2 -> SO + O
1035!===========================================================
1036
1037nb_reaction_4 = nb_reaction_4 + 1
1038
1039indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_o2, 1.0, i_so, 1.0, i_o)
1040
1041!===========================================================
1042!      g002 : S + O3 -> SO + O2
1043!===========================================================
1044
1045nb_reaction_4 = nb_reaction_4 + 1
1046
1047indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_o3, 1.0, i_so, 1.0, i_o2)
1048
1049!===========================================================
1050!      g003 : SO + O2 -> SO2 + O
1051!===========================================================
1052
1053nb_reaction_4 = nb_reaction_4 + 1
1054
1055indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_o2, 1.0, i_so2, 1.0, i_o)
1056
1057!===========================================================
1058!      g004 : SO + O3 -> SO2 + O2
1059!===========================================================
1060
1061nb_reaction_4 = nb_reaction_4 + 1
1062
1063indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_o3, 1.0, i_so2, 1.0, i_o2)
1064
1065!===========================================================
1066!      g005 : SO + OH -> SO2 + H
1067!===========================================================
1068
1069nb_reaction_4 = nb_reaction_4 + 1
1070
1071indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_oh, 1.0, i_so2, 1.0, i_h)
1072
1073!===========================================================
1074!      g006 : S + OH -> SO + H
1075!===========================================================
1076
1077nb_reaction_4 = nb_reaction_4 + 1
1078
1079indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_oh, 1.0, i_so, 1.0, i_h)
1080
1081!===========================================================
1082!      g007 : SO + O + CO2 -> SO2 + CO2
1083!===========================================================
1084
1085nb_reaction_4 = nb_reaction_4 + 1
1086
1087indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_o, 1.0, i_so2, 0.0, i_dummy)
1088
1089!===========================================================
1090!      g008 : SO + HO2 -> SO2 + OH
1091!===========================================================
1092
1093nb_reaction_4 = nb_reaction_4 + 1
1094
1095indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_ho2, 1.0, i_so2, 1.0, i_oh)
1096
1097!===========================================================
1098!      g009 : SO2 + O + CO2 -> SO3 + CO2
1099!===========================================================
1100
1101nb_reaction_4 = nb_reaction_4 + 1
1102
1103indice_4(nb_reaction_4) = z4spec(1.0, i_so2, 1.0, i_o, 1.0, i_so3, 0.0, i_dummy)
1104
1105!===========================================================
1106!      g010 : S + O + CO2 -> SO + CO2
1107!===========================================================
1108
1109nb_reaction_4 = nb_reaction_4 + 1
1110
1111indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_o, 1.0, i_so, 0.0, i_dummy)
1112
1113!===========================================================
1114!      g011 : SO3 + H2O -> H2SO4
1115!===========================================================
1116
1117nb_reaction_4 = nb_reaction_4 + 1
1118
1119indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_h2o, 1.0, i_h2so4, 0.0, i_dummy)
1120
1121!===========================================================
1122!      g012 : SO + ClO -> SO2 + Cl
1123!===========================================================
1124
1125nb_reaction_4 = nb_reaction_4 + 1
1126
1127indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_clo, 1.0, i_so2, 1.0, i_cl)
1128
1129!===========================================================
1130!      g013 : SO + SO3 -> SO2 + SO2
1131!===========================================================
1132
1133nb_reaction_4 = nb_reaction_4 + 1
1134
1135indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_so3, 2.0, i_so2, 0.0, i_dummy)
1136
1137!===========================================================
1138!      g014 : SO3 + O -> SO2 + O2
1139!===========================================================
1140
1141nb_reaction_4 = nb_reaction_4 + 1
1142
1143indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_o, 1.0, i_so2, 1.0, i_o2)
1144
1145!===========================================================
1146!      g015 : SO + SO + CO2 -> S2O2 + CO2
1147!===========================================================
1148
1149nb_reaction_3 = nb_reaction_3 + 1
1150
1151indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_s2o2, 0.0, i_dummy)
1152
1153!===========================================================
1154!      g016 : S2O2 + CO2 -> SO + SO + CO2
1155!===========================================================
1156
1157nb_phot = nb_phot + 1
1158
1159indice_phot(nb_phot) = z3spec(1.0, i_s2o2, 2.0, i_so, 0.0, i_dummy)
1160
1161!===========================================================
1162!      g017 : 0.5 ClCO3 + 0.5 SO -> Cl 
1163!             0.5 ClCO3 + 0.5 SO -> SO2 + CO2
1164!===========================================================
1165
1166nb_reaction_4 = nb_reaction_4 + 1
1167
1168indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_so, 1.0, i_cl, 0.0, i_dummy)
1169
1170nb_reaction_4 = nb_reaction_4 + 1
1171
1172indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_so, 1.0, i_so2, 1.0, i_co2)
1173
1174!===========================================================
1175!      g018 : S + CO + CO2 -> OCS + CO2
1176!===========================================================
1177
1178nb_reaction_4 = nb_reaction_4 + 1
1179
1180indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_co, 1.0, i_ocs, 0.0, i_dummy)
1181
1182!===========================================================
1183!      g019 : ClCO + S -> OCS + Cl
1184!===========================================================
1185
1186nb_reaction_4 = nb_reaction_4 + 1
1187
1188indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_s, 1.0, i_ocs, 1.0, i_cl)
1189
1190!===========================================================
1191!      g020 : SO2 + OH + CO2 -> HSO3 + CO2
1192!===========================================================
1193
1194nb_reaction_4 = nb_reaction_4 + 1
1195
1196indice_4(nb_reaction_4) = z4spec(1.0, i_so2, 1.0, i_oh, 1.0, i_hso3, 0.0, i_dummy)
1197
1198!===========================================================
1199!      g021 : HSO3 + O2 -> HO2 + SO3
1200!===========================================================
1201
1202nb_reaction_4 = nb_reaction_4 + 1
1203
1204indice_4(nb_reaction_4) = z4spec(1.0, i_hso3, 1.0, i_o2, 1.0, i_ho2, 1.0, i_so3)
1205
1206!===========================================================
1207!      g022 : S + S + CO2 -> S2 + CO2
1208!===========================================================
1209
1210nb_reaction_3 = nb_reaction_3 + 1
1211
1212indice_3(nb_reaction_3) = z3spec(2.0, i_s, 1.0, i_s2, 0.0, i_dummy)
1213
1214!===========================================================
1215!      g023 : S2 + hv -> S + S
1216!===========================================================
1217
1218nb_phot = nb_phot + 1
1219
1220indice_phot(nb_phot) = z3spec(1.0, i_s2, 2.0, i_s, 0.0, i_dummy)
1221
1222!===========================================================
1223!      g024 : S2 + O -> SO + S
1224!===========================================================
1225
1226nb_reaction_4 = nb_reaction_4 + 1
1227
1228indice_4(nb_reaction_4) = z4spec(1.0, i_s2, 1.0, i_o, 1.0, i_so, 1.0, i_s)
1229
1230!===========================================================
1231!      g025 : S + OCS -> S2 + CO
1232!===========================================================
1233
1234nb_reaction_4 = nb_reaction_4 + 1
1235
1236indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_ocs, 1.0, i_s2, 1.0, i_co)
1237
1238!===========================================================
1239!      g026 : OCS + O -> SO + CO
1240!===========================================================
1241
1242nb_reaction_4 = nb_reaction_4 + 1
1243
1244indice_4(nb_reaction_4) = z4spec(1.0, i_ocs, 1.0, i_o, 1.0, i_so, 1.0, i_co)
1245
1246!===========================================================
1247!      g027 : S + SO3 -> SO2 + SO
1248!===========================================================
1249
1250nb_reaction_4 = nb_reaction_4 + 1
1251
1252indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_so3, 1.0, i_so2, 1.0, i_so)
1253
1254!===========================================================
1255!      g028 : S + HO2 -> SO + OH
1256!===========================================================
1257
1258nb_reaction_4 = nb_reaction_4 + 1
1259
1260indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_ho2, 1.0, i_so, 1.0, i_oh)
1261
1262!===========================================================
1263!      g029 : S + ClO -> SO + Cl
1264!===========================================================
1265
1266nb_reaction_4 = nb_reaction_4 + 1
1267
1268indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_clo, 1.0, i_so, 1.0, i_cl)
1269
1270!===========================================================
1271!      g030: h2so4 + h2o -> so3 + h2o + h2o
1272!===========================================================
1273
1274nb_phot = nb_phot + 1
1275
1276indice_phot(nb_phot) = z3spec(1.0, i_h2so4, 1.0, i_so3, 1.0, i_h2o)
1277
1278!===========================================================
1279!      g031: so3 + ocs -> s2o2 +  co2
1280!===========================================================
1281
1282nb_reaction_4 = nb_reaction_4 + 1
1283
1284indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_ocs, 1.0, i_s2o2, 1.0, i_co2)
1285
1286!===========================================================
1287!      g032: s2o2 + ocs -> co + so2 + s2
1288!===========================================================
1289!       decomposee en
1290!       0.5 s2o2 + 0.5 ocs -> co
1291!       0.5 s2o2 + 0.5 ocs -> so2 + s2
1292!===========================================================
1293
1294nb_reaction_4 = nb_reaction_4 + 1
1295
1296indice_4(nb_reaction_4) = z4spec(0.5, i_s2o2, 0.5, i_ocs, 1.0, i_co, 0.0, i_dummy)
1297
1298nb_reaction_4 = nb_reaction_4 + 1
1299
1300indice_4(nb_reaction_4) = z4spec(0.5, i_s2o2, 0.5, i_ocs, 1.0, i_so2, 1.0, i_s2)
1301
1302!===========================================================
1303!      g033: so + so -> so2 + s
1304!===========================================================
1305
1306nb_reaction_3 = nb_reaction_3 + 1
1307
1308indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_so2, 1.0, i_s)
1309
1310!===========================================================
1311!      h001: HO2 + ice -> products
1312!            treated as
1313!            HO2 -> 0.5 H2O + 0.75 O2
1314!===========================================================
1315
1316nb_phot = nb_phot + 1
1317
1318indice_phot(nb_phot) = z3spec(1.0, i_ho2, 0.5, i_h2o, 0.75, i_o2)
1319
1320!===========================================================
1321!      h002: OH + ice -> products
1322!            treated as
1323!            OH -> 0.5 H2O + 0.25 O2
1324!===========================================================
1325
1326nb_phot = nb_phot + 1
1327
1328indice_phot(nb_phot) = z3spec(1.0, i_oh, 0.5, i_h2o, 0.25, i_o2)
1329
1330!===========================================================
1331!      h003: H2O2 + ice -> products
1332!            treated as
1333!            H2O2 -> H2O + 0.5 O2
1334!===========================================================
1335
1336nb_phot = nb_phot + 1
1337
1338indice_phot(nb_phot) = z3spec(1.0, i_h2o2, 1.0, i_h2o, 0.5, i_o2)
1339
1340!===========================================================
1341!      i001: O2(Dg) + CO2 -> O2 + CO2 + hv
1342!===========================================================
1343
1344nb_phot = nb_phot + 1
1345
1346indice_phot(nb_phot) = z3spec(1.0, i_o2dg, 1.0, i_o2, 0.0, i_dummy)
1347
1348!===========================================================
1349!      i002: O2(Dg) -> O2 + hv
1350!===========================================================
1351
1352nb_phot = nb_phot + 1
1353
1354indice_phot(nb_phot) = z3spec(1.0, i_o2dg, 1.0, i_o2, 0.0, i_dummy)
1355
1356!===========================================================
1357!  check dimensions
1358!===========================================================
1359
1360print*, 'nb_phot       = ', nb_phot
1361print*, 'nb_reaction_4 = ', nb_reaction_4
1362print*, 'nb_reaction_3 = ', nb_reaction_3
1363
1364!print*, 'check dimension'
1365if ((nb_phot /= nb_phot_max)             .or.  &
1366    (nb_reaction_3 /= nb_reaction_3_max) .or.  &
1367    (nb_reaction_4 /= nb_reaction_4_max)) then
1368  print*, 'wrong dimensions in indice'
1369  stop
1370end if 
1371
1372end subroutine indice
1373
1374!===========================================================
1375
1376subroutine phot(nj, nztable, nsza, nso2, sza_input, dist_sol, mumean, rmco2, rmso2,                     &
1377                jphot, table_colair, table_colso2, table_sza, nz, nb_phot_max, t, p, v_phot)
1378
1379!===========================================================
1380
1381implicit none
1382
1383integer, INTENT(IN) :: nz
1384integer, INTENT(IN) :: nj, nztable, nsza, nso2
1385
1386real, INTENT(IN), dimension(nz) :: t, p
1387real, INTENT(IN), dimension(nz) :: mumean        ! [g/mol]
1388real, INTENT(IN), dimension(nso2,nsza,nztable,nj) :: jphot
1389real, INTENT(IN), dimension(nso2,nztable) :: table_colso2
1390real, INTENT(IN), dimension(nztable) :: table_colair
1391real, INTENT(IN), dimension(nsza) :: table_sza
1392real, INTENT(IN), dimension(nz) :: rmco2, rmso2
1393real, INTENT(IN) :: sza_input, dist_sol
1394
1395real, dimension(nz,nj) :: j
1396real, dimension(nz) :: coef, col, colso2
1397real, dimension(nso2) :: colref
1398real, dimension(2,2,2) :: poids
1399real :: cicol, cisza, ciso2
1400real :: avogadro, gvenus, dp
1401
1402integer :: indcol, indsza, indso2
1403integer :: isza, iz, i, iso2, ij
1404
1405integer :: nb_phot_max
1406real, dimension(nz,nb_phot_max), INTENT(INOUT) :: v_phot
1407
1408!mugaz    = 43.44E-3
1409avogadro = 6.022E+23
1410gvenus   = 8.87
1411
1412! day/night test
1413
1414if (sza_input <= 95.) then      ! day
1415
1416! interpolation in solar zenith angle
1417
1418indsza = nsza - 1
1419do isza = 1,nsza
1420   if (table_sza(isza) >= sza_input) then
1421      indsza = min(indsza,isza - 1)
1422      indsza = max(indsza, 1)
1423   end if
1424end do
1425
1426cisza = (sza_input - table_sza(indsza))                       &
1427       /(table_sza(indsza + 1) - table_sza(indsza))
1428
1429!    print*, 'indsza    = ', indsza
1430!    print*, 'table_sza = ', table_sza(indsza)
1431!    print*, 'cisza     = ', cisza
1432
1433! co2 and so2 columns
1434
1435coef(nz)   = avogadro/(gvenus*mumean(nz)*1.E-3)*1.E-4
1436col(nz)    = coef(nz)*rmco2(nz)*p(nz)*100.
1437colso2(nz) = coef(nz)*rmso2(nz)*p(nz)*100.
1438
1439do iz = nz-1, 1, -1
1440!   print*,"L2490 new_photochemistry", iz,mumean(iz)
1441   dp = (p(iz) - p(iz+1))*100.
1442   coef(iz)   = avogadro/(gvenus*mumean(iz)*1.E-3)*1.E-4
1443   col(iz)    = col(iz+1) + coef(iz)*(rmco2(iz+1) + rmco2(iz))*0.5*dp
1444   col(iz)    = min(col(iz), table_colair(1))
1445   colso2(iz) = colso2(iz+1) + coef(iz)*(rmso2(iz+1) + rmso2(iz))*0.5*dp
1446   colso2(iz) = min(colso2(iz), table_colso2(nso2,1))
1447end do
1448
1449! loop over altitude
1450
1451do iz = 1,nz
1452
1453! interpolation in co2 column
1454
1455   do i = 1,nztable
1456      if (table_colair(i) < col(iz)) then
1457         cicol = (log(col(iz)) - log(table_colair(i)))           &
1458                /(log(table_colair(i-1)) - log(table_colair(i)))
1459         indcol = i - 1
1460         exit
1461      end if
1462   end do
1463
1464! interpolation in so2 column
1465
1466! initialize indso2 and ciso2 in case colref is never larger
1467! than the gcm so2 column.
1468
1469   indso2 = nso2 - 1
1470   ciso2 = 1.
1471
1472! search for the index indso2 between which interpolate
1473
1474   do iso2 = 1,nso2
1475      colref(iso2) = cicol*table_colso2(iso2,indcol)               &
1476                   + (1.-cicol)*table_colso2(iso2,indcol+1)
1477      if (colref(iso2) > colso2(iz)) then
1478         ciso2 = (colso2(iz) - colref(iso2-1))                     &
1479                /(colref(iso2) - colref(iso2-1))
1480         indso2 = iso2 - 1
1481         exit
1482      end if
1483   end do
1484
1485! 4-dimensional interpolation weights
1486
1487! poids(so2,sza_input,co2)
1488
1489   poids(1,1,1) = (1.-ciso2)*(1.-cisza)*    cicol
1490   poids(1,1,2) = (1.-ciso2)*(1.-cisza)*(1.-cicol)
1491   poids(1,2,1) = (1.-ciso2)*    cisza *    cicol
1492   poids(1,2,2) = (1.-ciso2)*    cisza *(1.-cicol)
1493   poids(2,1,1) =     ciso2 *(1.-cisza)*    cicol
1494   poids(2,1,2) =     ciso2 *(1.-cisza)*(1.-cicol)
1495   poids(2,2,1) =     ciso2 *    cisza *    cicol
1496   poids(2,2,2) =     ciso2 *    cisza *(1.-cicol)
1497
1498! 4-dimensional interpolation in the lookup table
1499
1500   do ij = 1,nj
1501      j(iz,ij) =                                          &
1502      poids(1,1,1)*jphot(indso2  ,indsza  ,indcol  ,ij)   &
1503    + poids(1,1,2)*jphot(indso2  ,indsza  ,indcol+1,ij)   &
1504    + poids(1,2,1)*jphot(indso2  ,indsza+1,indcol  ,ij)   &
1505    + poids(1,2,2)*jphot(indso2  ,indsza+1,indcol+1,ij)   &
1506    + poids(2,1,1)*jphot(indso2+1,indsza  ,indcol  ,ij)   &
1507    + poids(2,1,2)*jphot(indso2+1,indsza  ,indcol+1,ij)   &
1508    + poids(2,2,1)*jphot(indso2+1,indsza+1,indcol  ,ij)   &
1509    + poids(2,2,2)*jphot(indso2+1,indsza+1,indcol+1,ij)
1510   end do
1511
1512end do           ! end of loop over altitude
1513
1514else             ! night
1515   j(:,:) = 0.
1516end if
1517
1518! photodissociation rates numbering in the lookup table
1519
1520!    1     o2 + hv     -> o + o
1521!    2     o2 + hv     -> o + o(1d)
1522!    3     co2 + hv    -> co + o
1523!    4     co2 + hv    -> co + o(1d)
1524!    5     o3 + hv     -> o2(Dg) + o(1d)
1525!    6     o3 + hv     -> o2 + o
1526!    7     h2o + hv    -> h + oh
1527!    8     ho2 + hv    -> oh + o
1528!    9     h2o2 + hv   -> oh + oh
1529!    10    hcl + hv    -> h + cl
1530!    11    cl2 + hv    -> cl + cl
1531!    12    hocl + hv   -> oh + cl
1532!    13    so2 + hv    -> so + o
1533!    14    so + hv     -> s + o
1534!    15    so3 + hv    -> so2 + o
1535!    16    clo + hv    -> cl + o
1536!    17    ocs + hv    -> co + s
1537!    18    cocl2 + hv  -> cl + cl + co
1538!    19    h2so4 + hv  -> so3 + h2o
1539
1540! fill v_phot array
1541
1542do ij = 1,nj
1543   v_phot(:,ij) = j(:,ij)
1544end do
1545
1546!PRINT*,'sza_input: ',sza_input
1547!IF (sza_input.le.40.5 .AND. sza_input.gt.39.5) THEN
1548!open(200, form = 'formatted')
1549!100    format(e20.6)
1550!write(200,100)(v_phot(:,19))
1551!stop
1552!END IF
1553
1554end subroutine phot
1555
1556!======================================================================
1557
1558 subroutine krates(hetero_ice,hetero_dust, nz, nesp, nj, c, conc, t, p, nb_phot_max, nb_reaction_3_max, nb_reaction_4_max, v_3, v_4, v_phot,sza_input)
1559 
1560!================================================================
1561! compute reaction rates                                        !
1562!----------------------------------------------------------------
1563! reaction               type                array              !
1564!----------------------------------------------------------------
1565! A + B    --> C + D     bimolecular         v_4                !
1566! A + A    --> B + C     quadratic           v_3                !
1567! A + C    --> B + C     quenching           v_phot             !
1568! A + ice  --> B + C     heterogeneous       v_phot             !
1569!================================================================
1570
1571
1572 USE chemparam_mod
1573implicit none
1574
1575real, INTENT(IN), dimension(nz)  :: t, p, conc
1576integer, INTENT(IN) :: nesp, nj, nz
1577real, INTENT(IN) :: sza_input
1578integer :: iz
1579logical, INTENT(IN) :: hetero_ice, hetero_dust
1580real    :: ak0, ak1, xpo, rate, pi, gam, bid
1581real    :: k1a0, k1b0, k1ainf, k1a, k1b, fc, fx, x, y
1582real, dimension(nz)  :: surfice1d, surfdust1d
1583real, dimension(nz) :: deq
1584real, dimension(nz) :: a001, a002, a003,                           &
1585                       b001, b002, b003, b004, b005, b006, b007,   &
1586                       b008, b009,                                 &
1587                       c001, c002, c003, c004, c005, c006, c007,   &
1588                       c008, c009, c010, c011, c012, c013, c014,   &
1589                       c015, c016, c017, c018,                     &
1590                       d001, d002, d003,                           &
1591                       e001, e002, e003, e004, e005, e006, e007,   &
1592                       e008, e009, e010, e011, e012, e013, e014,   &
1593                       e015, e016, e017, e018, e019, e020, e021,   &
1594                       e022, e023, e024, e025, e026, e027, e028,   &
1595                       e029, e030, e031, e032, e033, e034, e035,   &
1596                       e036, e037, e038, e039, e040, e041, e042,   &
1597                       e043,                                       &
1598                       f001, f002, f003, f004, f005, f006, f007,   &
1599                       f008, f009, f010, f011, f012, f013, f014,   &
1600                       f015, f016, f017, f018, f019, f020, f021,   &
1601                       f022, f023, f024, f025, f026, f027, f028,   &
1602                       f029, f030, f031, f032, f033, f034, f035,   &
1603                       f036, f037, f038, f039,                     &
1604                       g001, g002, g003, g004, g005, g006, g007,   &
1605                       g008, g009, g010, g011, g012, g013, g014,   &
1606                       g015, g016, g017, g018, g019, g020, g021,   &
1607                       g022, g023, g024, g025, g026, g027, g028,   &
1608                       g029, g030, g031, g032, g033,               &
1609                       h001, h002, h003,                           &
1610                       i001, i002
1611
1612real, INTENT(IN), dimension(nz,nesp) :: c
1613
1614integer :: nb_phot_max, nb_reaction_3_max, nb_reaction_4_max, nb_reaction_3, nb_reaction_4, nb_phot
1615
1616real, dimension(nz,nb_phot_max) :: v_phot
1617real, dimension(nz,nb_reaction_3_max) :: v_3
1618real, dimension(nz,nb_reaction_4_max) :: v_4
1619
1620pi = acos(-1.)
1621
1622nb_phot       = nj
1623nb_reaction_3 = 0
1624nb_reaction_4 = 0
1625
1626!----------------------------------------------------------------------
1627!        reactions avec ox
1628!----------------------------------------------------------------------
1629
1630!---  a001: o + o2 + co2 -> o3 + co2
1631
1632!     jpl 2003
1633
1634      a001(:) = 2.5*6.0E-34*(t(:)/300.)**(-2.4)*conc(:)
1635
1636      nb_reaction_4 = nb_reaction_4 + 1
1637      v_4(:,nb_reaction_4) = a001(:)
1638
1639!---  a002: o + o + co2 -> o2 + co2
1640
1641!     Tsang and Hampson, J. Chem. Phys. Ref. Data, 15, 1087, 1986
1642
1643!     a002(:) = 2.5*5.2E-35*exp(900./t(:))*conc(:)
1644
1645!     Campbell and Gray, Chem. Phys. Lett., 18, 607, 1973
1646
1647      a002(:) = 2.5*9.46E-34*exp(485./t(:))*conc(:) ! nist expression
1648
1649      nb_reaction_3 = nb_reaction_3 + 1
1650      v_3(:,nb_reaction_3) = a002(:)
1651
1652!---  a003: o + o3 -> o2 + o2
1653
1654!     jpl 2003
1655
1656      a003(:) = 8.0E-12*exp(-2060./t(:))
1657
1658      nb_reaction_4 = nb_reaction_4 + 1
1659      v_4(:,nb_reaction_4) = a003(:)
1660
1661!----------------------------------------------------------------------
1662!        reactions avec o(1d)
1663!----------------------------------------------------------------------
1664
1665!---  b001: o(1d) + co2  -> o + co2
1666
1667!     jpl 2006
1668
1669      b001(:) = 7.5E-11*exp(115./t(:))
1670
1671      nb_phot = nb_phot + 1
1672      v_phot(:,nb_phot) = b001(:)*c(:,i_co2)
1673
1674!---  b002: o(1d) + h2o  -> oh + oh
1675
1676!     jpl 2006
1677 
1678      b002(:) = 1.63E-10*exp(60./t(:))
1679     
1680      nb_reaction_4 = nb_reaction_4 + 1
1681      v_4(:,nb_reaction_4) = b002(:)
1682
1683!---  b003: o(1d) + h2  -> oh + h
1684
1685!     jpl 2003
1686!      b003(:) = 1.1E-10
1687
1688!      jpl 2016     
1689      b003(:) = 1.2E-10
1690
1691      nb_reaction_4 = nb_reaction_4 + 1
1692      v_4(:,nb_reaction_4) = b003(:)
1693
1694!---  b004: o(1d) + o2  -> o + o2
1695
1696!     jpl 2006
1697
1698      b004(:) = 3.3E-11*exp(55./t(:))
1699
1700      nb_phot = nb_phot + 1
1701      v_phot(:,nb_phot) = b004(:)*c(:,i_o2)
1702   
1703!---  b005: o(1d) + o3  -> o2 + o2
1704
1705!     jpl 2003
1706
1707      b005(:) = 1.2E-10
1708
1709      nb_reaction_4 = nb_reaction_4 + 1
1710      v_4(:,nb_reaction_4) = b005(:)
1711   
1712!---  b006: o(1d) + o3  -> o2 + o + o
1713
1714!     jpl 2003
1715
1716      b006(:) = 1.2E-10
1717
1718      nb_reaction_4 = nb_reaction_4 + 1
1719      v_4(:,nb_reaction_4) = b006(:)
1720   
1721!----------------------------------------------------------------------
1722!        reactions des hox   
1723!----------------------------------------------------------------------
1724
1725!---  c001: o + ho2 -> oh + o2
1726
1727!     jpl 2003
1728
1729      c001(:) = 3.0E-11*exp(200./t(:))
1730
1731      nb_reaction_4 = nb_reaction_4 + 1
1732      v_4(:,nb_reaction_4) = c001(:)
1733
1734!---  c002: o + oh -> o2 + h
1735
1736!     jpl 2003
1737!      c002(:) = 2.2E-11*exp(120./t(:))
1738
1739!     jpl 2016 
1740      c002(:) = 1.8E-11*exp(180./t(:))
1741
1742      nb_reaction_4 = nb_reaction_4 + 1
1743      v_4(:,nb_reaction_4) = c002(:)
1744
1745!---  c003: h + o3 -> oh + o2
1746
1747!     jpl 2003
1748
1749      c003(:) = 1.4E-10*exp(-470./t(:))
1750
1751      nb_reaction_4 = nb_reaction_4 + 1
1752      v_4(:,nb_reaction_4) = c003(:)
1753
1754!---  c004: h + ho2 -> oh + oh
1755
1756!     jpl 2006
1757
1758      c004(:) = 7.2E-11
1759
1760      nb_reaction_4 = nb_reaction_4 + 1
1761      v_4(:,nb_reaction_4) = c004(:)
1762
1763!---  c005: h + ho2 -> h2 + o2
1764
1765!     jpl 2006
1766
1767      c005(:) = 6.9E-12
1768
1769      nb_reaction_4 = nb_reaction_4 + 1
1770      v_4(:,nb_reaction_4) = c005(:)
1771
1772!---  c006: h + ho2 -> h2o + o
1773
1774!     jpl 2006
1775
1776      c006(:) = 1.6E-12
1777
1778      nb_reaction_4 = nb_reaction_4 + 1
1779      v_4(:,nb_reaction_4) = c006(:)
1780
1781!---  c007: oh + ho2 -> h2o + o2
1782
1783!     jpl 2003
1784
1785      c007(:) = 4.8E-11*exp(250./t(:))
1786
1787      nb_reaction_4 = nb_reaction_4 + 1
1788      v_4(:,nb_reaction_4) = c007(:)
1789
1790!---  c008: ho2 + ho2 -> h2o2 + o2
1791
1792!     jpl 2006
1793
1794!     c008(:) = 3.5E-13*exp(430./t(:))
1795
1796!     christensen et al., grl, 13, 2002
1797!      c008(:) = 1.5E-12*exp(19./t(:))
1798
1799!     jpl 2016
1800      c008(:) = 3.0E-13*exp(460./t(:))
1801
1802      nb_reaction_3 = nb_reaction_3 + 1
1803      v_3(:,nb_reaction_3) = c008(:)
1804
1805!---  c009: oh + h2o2 -> h2o + ho2
1806
1807!     jpl 2006
1808
1809      c009(:) = 1.8E-12
1810
1811      nb_reaction_4 = nb_reaction_4 + 1
1812      v_4(:,nb_reaction_4) = c009(:)
1813
1814!---  c010: oh + h2 -> h2o + h
1815
1816!     jpl 2006
1817
1818      c010(:) = 2.8E-12*exp(-1800./t(:))
1819
1820      nb_reaction_4 = nb_reaction_4 + 1
1821      v_4(:,nb_reaction_4) = c010(:)
1822
1823!---  c011: h + o2 + co2 -> ho2 + co2
1824
1825!     jpl 2006
1826
1827      do iz = 1,nz
1828         ak0 = 2.5*4.4E-32*(t(iz)/300.)**(-1.3)
1829         ak1 = 4.7E-11*(t(iz)/300.)**(-0.2)
1830
1831         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
1832         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
1833         c011(iz) = rate*0.6**xpo
1834      end do
1835
1836      nb_reaction_4 = nb_reaction_4 + 1
1837      v_4(:,nb_reaction_4) = c011(:)
1838
1839!---  c012: o + h2o2 -> oh + ho2
1840
1841!     jpl 2003
1842
1843      c012(:) = 1.4E-12*exp(-2000./t(:))
1844
1845      nb_reaction_4 = nb_reaction_4 + 1
1846      v_4(:,nb_reaction_4) = c012(:)
1847
1848!---  c013: oh + oh -> h2o + o
1849
1850!     jpl 2006
1851
1852      c013(:) = 1.8E-12
1853
1854      nb_reaction_3 = nb_reaction_3 + 1
1855      v_3(:,nb_reaction_3) = c013(:)
1856
1857!---  c014: oh + o3 -> ho2 + o2
1858
1859!     jpl 2003
1860
1861      c014(:) = 1.7E-12*exp(-940./t(:))
1862
1863      nb_reaction_4 = nb_reaction_4 + 1
1864      v_4(:,nb_reaction_4) = c014(:)
1865
1866!---  c015: ho2 + o3 -> oh + o2 + o2
1867
1868!     jpl 2003
1869
1870      c015(:) = 1.0E-14*exp(-490./t(:))
1871
1872      nb_reaction_4 = nb_reaction_4 + 1
1873      v_4(:,nb_reaction_4) = c015(:)
1874
1875!---  c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
1876
1877!     jpl 2003
1878!      c016(:) = 2.5*1.7E-33*exp(1000./t(:))*conc(:)
1879
1880!     jpl 2016
1881      c016(:) = 2.5*2.1E-33*exp(920./t(:))*conc(:)
1882
1883      nb_reaction_3 = nb_reaction_3 + 1
1884      v_3(:,nb_reaction_3) = c016(:)
1885
1886!---  c017: oh + oh + co2 -> h2o2 + co2
1887
1888!     jpl 2003
1889
1890      do iz = 1,nz
1891         ak0 = 2.5*6.9E-31*(t(iz)/300.)**(-1.0)
1892         ak1 = 2.6E-11*(t(iz)/300.)**(0.0)
1893
1894         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
1895         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
1896         c017(iz) = rate*0.6**xpo
1897      end do
1898
1899      nb_reaction_3 = nb_reaction_3 + 1
1900      v_3(:,nb_reaction_3) = c017(:)
1901
1902!---  c018: h + h + co2 -> h2 + co2
1903
1904!     baulch et al., 2005
1905
1906      c018(:) = 2.5*1.8E-30*(t(:)**(-1.0))*conc(:)
1907
1908      nb_reaction_3 = nb_reaction_3 + 1
1909      v_3(:,nb_reaction_3) = c018(:)
1910
1911!----------------------------------------------------------------------
1912!        reactions des composes azotes
1913!----------------------------------------------------------------------
1914
1915!---  d001: no2 + o -> no + o2
1916
1917!     jpl 2006
1918
1919      d001(:) = 5.1E-12*exp(210./t(:))
1920
1921!---  d002: no + o3 -> no2 + o2
1922
1923!     jpl 2006
1924
1925      d002(:) = 3.0E-12*exp(-1500./t(:))
1926
1927!---  d003: no + ho2 -> no2 + oh
1928
1929!     jpl 2006
1930
1931      d003(:) = 3.5E-12*exp(250./t(:))
1932
1933!----------------------------------------------------------------------
1934!        reactions des composes carbones
1935!----------------------------------------------------------------------
1936
1937!---  e001: oh + co -> co2 + h
1938
1939!     jpl 2003
1940
1941!     e001(:) = 1.5E-13*(1 + 0.6*p(:)/1013.)
1942
1943!     mccabe et al., grl, 28, 3135, 2001
1944
1945!     e001(:) = 1.57E-13 + 3.54E-33*conc(:)
1946
1947!     jpl 2006
1948
1949!     ak0 = 1.5E-13*(t(:)/300.)**(0.6)
1950!     ak1 = 2.1E-9*(t(:)/300.)**(6.1)
1951!     rate1 = ak0/(1. + ak0/(ak1/conc(:)))
1952!     xpo1 = 1./(1. + alog10(ak0/(ak1/conc(:)))**2)
1953
1954!     ak0 = 5.9E-33*(t(:)/300.)**(-1.4)
1955!     ak1 = 1.1E-12*(t(:)/300.)**(1.3)
1956!     rate2 = (ak0*conc(:))/(1. + ak0*conc(:)/ak1)
1957!     xpo2 = 1./(1. + alog10((ak0*conc(:))/ak1)**2)
1958
1959!     e001(:) = rate1*0.6**xpo1 + rate2*0.6**xpo2
1960
1961!     joshi et al., 2006
1962
1963      do iz = 1,nz
1964         k1a0 = 1.34*2.5*conc(iz)                                &
1965               *1/(1/(3.62E-26*t(iz)**(-2.739)*exp(-20./t(iz)))  &
1966               + 1/(6.48E-33*t(iz)**(0.14)*exp(-57./t(iz))))     ! corrige de l'erreur publi
1967         k1b0 = 1.17E-19*t(iz)**(2.053)*exp(139./t(iz))          &
1968              + 9.56E-12*t(iz)**(-0.664)*exp(-167./t(iz))
1969         k1ainf = 1.52E-17*t(iz)**(1.858)*exp(28.8/t(iz))        &
1970                + 4.78E-8*t(iz)**(-1.851)*exp(-318./t(iz))
1971         x = k1a0/(k1ainf - k1b0)
1972         y = k1b0/(k1ainf - k1b0)
1973         fc = 0.628*exp(-1223./t(iz)) + (1. - 0.628)*exp(-39./t(iz))  &
1974            + exp(-t(iz)/255.)
1975         fx = fc**(1./(1. + (alog(x))**2))                   ! corrige de l'erreur publi
1976         k1a = k1a0*((1. + y)/(1. + x))*fx
1977         k1b = k1b0*(1./(1.+x))*fx
1978
1979         e001(iz) = k1a + k1b
1980      end do
1981
1982      nb_reaction_4 = nb_reaction_4 + 1
1983      v_4(:,nb_reaction_4) = e001(:)
1984
1985!---  e002: o + co + m -> co2 + m
1986
1987!     tsang and hampson, 1986.
1988
1989      e002(:) = 2.5*6.5E-33*exp(-2184./t(:))*conc(:)
1990
1991      nb_reaction_4 = nb_reaction_4 + 1
1992      v_4(:,nb_reaction_4) = e002(:)
1993
1994!----------------------------------------------------------------------
1995!        reactions des composes chlores
1996!----------------------------------------------------------------------
1997
1998!---  f001: hcl + o(1d) -> oh + cl
1999
2000!     jpl 2011
2001
2002      f001(:) = 1.0E-10
2003
2004      nb_reaction_4 = nb_reaction_4 + 1
2005      v_4(:,nb_reaction_4) = f001(:)
2006
2007!---  f002: hcl + o(1d) -> h + clo
2008
2009!     jpl 2011
2010
2011      f002(:) = 3.6E-11
2012     
2013      nb_reaction_4 = nb_reaction_4 + 1
2014      v_4(:,nb_reaction_4) = f002(:)
2015
2016!---  f003: hcl + o -> oh + cl
2017
2018!     jpl 2006
2019
2020      f003(:) = 1.0E-11*exp(-3300./t(:))
2021
2022      nb_reaction_4 = nb_reaction_4 + 1
2023      v_4(:,nb_reaction_4) = f003(:)
2024
2025!---  f004: hcl + oh -> h2o + cl
2026
2027!     jpl 2006
2028!      f004(:) = 2.6E-12*exp(-350./t(:))
2029
2030!     jpl 2016
2031      f004(:) = 1.8E-12*exp(-250./t(:))
2032
2033      nb_reaction_4 = nb_reaction_4 + 1
2034      v_4(:,nb_reaction_4) = f004(:)
2035
2036!---  f005: clo + o -> cl + o2
2037
2038!     jpl 2006
2039
2040      f005(:) = 2.8E-11*exp(85./t(:))
2041
2042      nb_reaction_4 = nb_reaction_4 + 1
2043      v_4(:,nb_reaction_4) = f005(:)
2044
2045!---  f006: clo + oh -> cl + ho2
2046
2047!     jpl 2006
2048
2049      f006(:) = 7.4E-12*exp(270./t(:))
2050
2051      nb_reaction_4 = nb_reaction_4 + 1
2052      v_4(:,nb_reaction_4) = f006(:)
2053
2054!---  f007: clo + oh -> hcl + o2
2055
2056!     jpl 2006
2057
2058      f007(:) = 6.0E-13*exp(230./t(:))
2059
2060      nb_reaction_4 = nb_reaction_4 + 1
2061      v_4(:,nb_reaction_4) = f007(:)
2062
2063!---  f008: cl + h2 -> hcl + h
2064
2065!     jpl 2006
2066
2067      f008(:) = 3.05E-11*exp(-2270./t(:))
2068
2069      nb_reaction_4 = nb_reaction_4 + 1
2070      v_4(:,nb_reaction_4) = f008(:)
2071
2072!---  f009: cl + o3 -> clo + o2
2073
2074!     jpl 2006
2075
2076      f009(:) = 2.3E-11*exp(-200./t(:))
2077
2078      nb_reaction_4 = nb_reaction_4 + 1
2079      v_4(:,nb_reaction_4) = f009(:)
2080
2081!---  f010: cl + ho2 -> clo + oh
2082
2083!     jpl 2006
2084!      f010(:) = 4.1E-11*exp(-450./t(:))
2085
2086!     jpl 2016
2087      f010(:) = 3.6E-11*exp(-375./t(:))
2088     
2089      nb_reaction_4 = nb_reaction_4 + 1
2090      v_4(:,nb_reaction_4) = f010(:)
2091
2092!---  f011: cl + ho2 -> hcl + o2
2093
2094!     jpl 2006
2095!      f011(:) = 1.8E-11*exp(170./t(:))
2096
2097!     jpl 2016
2098      f011(:) = 1.4E-11*exp(270./t(:))
2099
2100      nb_reaction_4 = nb_reaction_4 + 1
2101      v_4(:,nb_reaction_4) = f011(:)
2102
2103!---  f012: cl + h2o2 -> hcl + ho2
2104
2105!     jpl 2006
2106
2107      f012(:) = 1.1E-11*exp(-980./t(:))
2108
2109      nb_reaction_4 = nb_reaction_4 + 1
2110      v_4(:,nb_reaction_4) = f012(:)
2111
2112!---  f013: cl + co + co2 -> clco + co2
2113
2114!     jpl 2011 + nicovich et al., j. phys. chem., 1990
2115
2116      f013(:) = 3.2*1.3E-33*(t(:)/300.)**(-3.8)*conc(:)
2117
2118      nb_reaction_4 = nb_reaction_4 + 1
2119      v_4(:,nb_reaction_4) = f013(:)
2120
2121!---  f014: clco + co2 -> cl + co + co2
2122
2123!     jpl 2011
2124
2125!     deq(:) = 3.2*3.5E-25*exp(3730./t(:))
2126
2127!     mills, 1998
2128
2129      deq(:) = 1.6E-25*exp(4000./t(:))
2130
2131      f014(:) = f013(:)/(deq(:)*conc(:))
2132
2133      nb_phot = nb_phot + 1
2134      v_phot(:,nb_phot) = f014(:)*conc(:)
2135
2136!     do iz = 1, nz
2137!     print*, z(iz), t(iz), f013(iz), f014(iz), v_phot(iz,nb_phot)
2138!     end do
2139!     stop
2140
2141!---  f015: clco + o2 + m -> clco3 + m
2142
2143!     yung and demore, icarus, 51, 199-247, 1982.
2144
2145      f015(:) = 5.7E-15*exp(500./t(:))*conc(:)   &
2146               /(1.e17 + 0.05*conc(:))
2147
2148      nb_reaction_4 = nb_reaction_4 + 1
2149      v_4(:,nb_reaction_4) = f015(:)
2150
2151!---  f016: clco3 + cl -> cl + clo + co2
2152
2153!     yung and demore, icarus, 51, 199-247, 1982.
2154
2155!     decomposee en :
2156!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
2157!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
2158
2159      f016(:) = 1.0E-11
2160
2161      nb_reaction_4 = nb_reaction_4 + 1
2162      v_4(:,nb_reaction_4) = f016(:)
2163
2164      nb_reaction_4 = nb_reaction_4 + 1
2165      v_4(:,nb_reaction_4) = f016(:)
2166
2167!---  f017: clco3 + o -> cl + o2 + co2
2168
2169!     yung and demore, icarus, 51, 199-247, 1982.
2170
2171!     decomposee en :
2172!     0.5 clco3 + 0.5 o -> cl
2173!     0.5 clco3 + 0.5 o -> o2 + co2
2174
2175      f017(:) = 1.0E-11
2176
2177      nb_reaction_4 = nb_reaction_4 + 1
2178      v_4(:,nb_reaction_4) = f017(:)
2179
2180      nb_reaction_4 = nb_reaction_4 + 1
2181      v_4(:,nb_reaction_4) = f017(:)
2182
2183!---  f018: clo + ho2  -> hocl + o2
2184
2185      f018(:) = 2.7E-12*exp(220./t(:))
2186
2187      nb_reaction_4 = nb_reaction_4 + 1
2188      v_4(:,nb_reaction_4) = f018(:)
2189
2190!---  f019: oh + hocl -> h2o + clo
2191
2192      f019(:) = 3.0E-12*exp(-500./t(:))
2193
2194      nb_reaction_4 = nb_reaction_4 + 1
2195      v_4(:,nb_reaction_4) = f019(:)
2196
2197!---  f020: o + hocl -> oh + clo
2198
2199      f020(:) = 1.7E-13
2200
2201      nb_reaction_4 = nb_reaction_4 + 1
2202      v_4(:,nb_reaction_4) = f020(:)
2203
2204!---  f021: cl + cl + co2 -> cl2 + co2
2205
2206!     donohoue et al., j. phys. chem. a, 109, 7732-7741, 2005
2207
2208!     f021(:) = 2.5*8.4E-33*exp(850.*(1./t(:) - 1./298.))*conc(:)
2209
2210!     valeur utilisee par Zhang et al., 2011:
2211
2212      f021(:) = 2.6E-33*exp(900./t(:))*conc(:)
2213
2214      nb_reaction_3 = nb_reaction_3 + 1
2215      v_3(:,nb_reaction_3) = f021(:)
2216
2217!---  f022: clco + o -> cl + co2
2218
2219!     yung et al., icarus, 1982 (estimated)
2220
2221      f022(:) = 3.0E-11
2222
2223      nb_reaction_4 = nb_reaction_4 + 1
2224      v_4(:,nb_reaction_4) = f022(:)
2225
2226!---  f023: cl2 + o(1d) -> cl + clo
2227
2228!     jpl 2011
2229
2230      f023(:) = 2.0E-10
2231
2232      nb_reaction_4 = nb_reaction_4 + 1
2233      v_4(:,nb_reaction_4) = f023(:)
2234
2235!---  f024: cl2 + h  -> hcl + cl
2236
2237!     baulch et al., j. phys. chem. ref. data, 1981
2238
2239      f024(:) = 1.43E-10*exp(-591./t(:))
2240
2241      nb_reaction_4 = nb_reaction_4 + 1
2242      v_4(:,nb_reaction_4) = f024(:)
2243
2244!---  f025: cl + clco  -> cl2 + co
2245
2246!     baulch et al., j. phys. chem. ref. data, 1981
2247
2248      f025(:) = 2.16E-9*exp(-1670./t(:))
2249
2250      nb_reaction_4 = nb_reaction_4 + 1
2251      v_4(:,nb_reaction_4) = f025(:)
2252
2253!---  f026: clco + clco  -> cocl2 + co
2254
2255!     zhang et al., icarus, 2011 (estimated)
2256
2257      f026(:) = 5.0E-11
2258
2259      nb_reaction_3 = nb_reaction_3 + 1
2260      v_3(:,nb_reaction_3) = f026(:)
2261
2262!---  f027: cl + so2 + co2  -> clso2 + co2
2263
2264!     mills, phd, 1998
2265
2266      f027(:) = 1.3E-34*exp(940./t(:))*conc(:)
2267
2268      nb_reaction_4 = nb_reaction_4 + 1
2269      v_4(:,nb_reaction_4) = f027(:)
2270
2271!---  f028: clso2 + o  -> so2 + clo
2272
2273!     mills, phd, 1998
2274
2275      f028(:) = 1.0E-11
2276
2277      nb_reaction_4 = nb_reaction_4 + 1
2278      v_4(:,nb_reaction_4) = f028(:)
2279
2280!---  f029: clso2 + h  -> so2 + hcl
2281
2282!     mills, phd, 1998
2283
2284      f029(:) = 1.0E-11
2285
2286      nb_reaction_4 = nb_reaction_4 + 1
2287      v_4(:,nb_reaction_4) = f029(:)
2288
2289!---  f030: clso2 + clso2  -> cl2 + so2 + so2
2290
2291!     moses et al. 2002
2292
2293      f030(:) = 5.0E-13
2294
2295      nb_reaction_3 = nb_reaction_3 + 1
2296      v_3(:,nb_reaction_3) = f030(:)
2297
2298!---  f031: cl + o + co2  -> clo + co2
2299
2300!     yung and demore, 1999 (estimated)
2301
2302      f031(:) = 5.0E-32*conc(:)
2303
2304      nb_reaction_4 = nb_reaction_4 + 1
2305      v_4(:,nb_reaction_4) = f031(:)
2306
2307!---  f032: cl2 + o -> clo + cl
2308
2309!     mills, phd, 1998
2310
2311      f032(:) = 7.4E-12*exp(-1650./t(:))
2312
2313      nb_reaction_4 = nb_reaction_4 + 1
2314      v_4(:,nb_reaction_4) = f032(:)
2315
2316!---  f033: clco + oh -> hocl + co
2317
2318!     mills, phd, 1998
2319
2320      f033(:) = 1.5E-10
2321
2322      nb_reaction_4 = nb_reaction_4 + 1
2323      v_4(:,nb_reaction_4) = f033(:)
2324
2325!---  f034: cl2 + oh -> cl + hocl
2326
2327!     jpl 2011
2328
2329      f034(:) = 2.6E-12*exp(-1100./t(:))
2330
2331      nb_reaction_4 = nb_reaction_4 + 1
2332      v_4(:,nb_reaction_4) = f034(:)
2333
2334!---  f035: clco + o -> co + clo
2335
2336!     yung and demore, 1982
2337
2338      f035(:) = 3.0E-12
2339
2340      nb_reaction_4 = nb_reaction_4 + 1
2341      v_4(:,nb_reaction_4) = f035(:)
2342
2343!---  f036: clco + cl2 -> cocl2 + cl
2344
2345!     ohta, bull. chem. soc. jpn., 1983
2346
2347      f036(:) = 6.45E-2*f015(:)
2348
2349      nb_reaction_4 = nb_reaction_4 + 1
2350      v_4(:,nb_reaction_4) = f036(:)
2351
2352!---  f037: hcl + h -> h2 + cl
2353
2354!     mills, phd, 1998
2355
2356      f037(:) = 1.5E-11*exp(-1750./t(:))
2357
2358      nb_reaction_4 = nb_reaction_4 + 1
2359      v_4(:,nb_reaction_4) = f037(:)
2360
2361!---  f038: clco + h -> hcl + co
2362
2363!     yung and demore, 1982
2364
2365      f038(:) = 1.0E-11
2366
2367      nb_reaction_4 = nb_reaction_4 + 1
2368      v_4(:,nb_reaction_4) = f038(:)
2369
2370!---  f039: cl + h + m -> hcl + m
2371
2372!     yung and demore, 1982 (estimate)
2373
2374      f039(:) = 1.0E-32*conc(:)
2375
2376      nb_reaction_4 = nb_reaction_4 + 1
2377      v_4(:,nb_reaction_4) = f039(:)
2378
2379!----------------------------------------------------------------------
2380!        reactions des composes soufres
2381!----------------------------------------------------------------------
2382
2383!---  g001: s + o2 -> so + o
2384
2385!      g001(:) = 2.3E-12
2386
2387!     jpl 2016
2388      g001(:) = 1.6E-12*exp(100./t(:))
2389
2390      nb_reaction_4 = nb_reaction_4 + 1
2391      v_4(:,nb_reaction_4) = g001(:)
2392
2393!---  g002: s + o3 -> so + o2
2394
2395      g002(:) = 1.2E-11
2396
2397      nb_reaction_4 = nb_reaction_4 + 1
2398      v_4(:,nb_reaction_4) = g002(:)
2399
2400!---  g003: so + o2 -> so2 + o
2401
2402!      g003(:) = 1.25E-13*exp(-2190./t(:))
2403
2404!     jpl 2016
2405       g003(:) = 1.6E-13*exp(-2280./t(:))
2406
2407      nb_reaction_4 = nb_reaction_4 + 1
2408      v_4(:,nb_reaction_4) = g003(:)
2409
2410!---  g004: so + o3 -> so2 + o2
2411
2412      g004(:) = 3.4E-12*exp(-1100./t(:))
2413
2414      nb_reaction_4 = nb_reaction_4 + 1
2415      v_4(:,nb_reaction_4) = g004(:)
2416
2417!---  g005: so + oh -> so2 + h
2418
2419      g005(:) = 2.7E-11*exp(335./t(:))
2420
2421      nb_reaction_4 = nb_reaction_4 + 1
2422      v_4(:,nb_reaction_4) = g005(:)
2423
2424!---  g006: s + oh -> so + h
2425
2426      g006(:) = 6.6E-11
2427
2428      nb_reaction_4 = nb_reaction_4 + 1
2429      v_4(:,nb_reaction_4) = g006(:)
2430
2431!---  g007: so + o + co2 -> so2 + co2
2432
2433!     singleton and cvetanovic, j. phys. chem. ref. data, 1988
2434!     measured with co2 as third body
2435
2436      do iz = 1,nz
2437         ak0 = 4.2E-30
2438         ak1 = 5.3E-11
2439
2440         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2441         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2442         g007(iz) = rate*0.6**xpo
2443      end do
2444
2445      nb_reaction_4 = nb_reaction_4 + 1
2446      v_4(:,nb_reaction_4) = g007(:)
2447
2448!---  g008: so + ho2 -> so2 + oh
2449
2450      g008(:) = 2.8E-11
2451
2452      nb_reaction_4 = nb_reaction_4 + 1
2453      v_4(:,nb_reaction_4) = g008(:)
2454
2455!---  g009: so2 + o + co2 -> so3 + co2
2456
2457!     jpl 2011
2458!     Naido 2005
2459
2460!      do iz = 1,nz
2461!         ak0 = 2.5*1.8E-33*(t(iz)/300.)**(2.0)
2462!         ak1 = 4.2E-14*(t(iz)/300.)**(1.8)
2463
2464!         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2465!         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2466!         g009(iz) = rate*0.6**xpo
2467!         g009(iz) = 0.0E+0
2468!      end do
2469
2470      do iz = 1,nz
2471         ak0 = 5.*9.5*1.E-23*(t(iz)**(-3.0))*EXP(-2400./t(iz))
2472         ak1 = 6.1*1.E-13*EXP(-850./t(iz))
2473         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2474         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2475         fc = 0.558*EXP(-t(iz)/316.)+0.442*EXP(-t(iz)/7442.)
2476         g009(iz) = rate*fc**xpo
2477!         g009(iz) = 0.0E+0
2478      end do
2479
2480      nb_reaction_4 = nb_reaction_4 + 1
2481      v_4(:,nb_reaction_4) = g009(:)
2482
2483!---  g010: s + o + co2 -> so + co2
2484
2485!     zhang et al., icarus, 2011
2486
2487      g010(:) = 1.5E-34*exp(900./t(:))*conc(:)
2488
2489      nb_reaction_4 = nb_reaction_4 + 1
2490      v_4(:,nb_reaction_4) = g010(:)
2491
2492!---  g011: so3 + h2o + M -> h2so4 + M
2493!---  avec M = h2o
2494
2495      DO iz=1,nz
2496!     jpl 2011
2497!      g011(:) = 8.5E-21*exp(6540./t(:))*c(:,i_h2o)
2498      g011(iz) = 2.26E-23*MAX(t(iz),100.)*exp(6540./MAX(t(iz),100.)) &
2499                *c(iz,i_h2o)
2500      g011(iz) = g011(iz)*1.0E-20
2501!      g011(:) = 0. ! SANS H2SO4
2502      ENDDO
2503
2504      nb_reaction_4 = nb_reaction_4 + 1
2505      v_4(:,nb_reaction_4) = g011(:)
2506
2507!---  g012: so + clo -> so2 + cl
2508
2509!     jpl 2011
2510
2511      g012(:) = 2.8E-11
2512
2513      nb_reaction_4 = nb_reaction_4 + 1
2514      v_4(:,nb_reaction_4) = g012(:)
2515
2516!---  g013: so + so3 -> so2 + so2
2517
2518!     chung et al., int. j. chem. kinet., 1975
2519
2520      g013(:) = 2.0E-15
2521
2522      nb_reaction_4 = nb_reaction_4 + 1
2523      v_4(:,nb_reaction_4) = g013(:)
2524
2525!---  g014: so3 + o -> so2 + o2
2526
2527!     jacob and winkler, j. chem. soc. faraday trans. 1, 1972
2528
2529      g014(:) = 2.32E-16*exp(-487./t(:))
2530
2531      nb_reaction_4 = nb_reaction_4 + 1
2532      v_4(:,nb_reaction_4) = g014(:)
2533
2534!---  g015: so + so + co2 -> s2o2 + co2
2535
2536!     herron and huie, chem. phys. lett., 1980.
2537
2538      do iz = 1,nz
2539         ak0 = 2.5*4.4E-31
2540         ak1 = 1.0E-11
2541
2542         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2543         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2544         g015(iz) = rate*0.6**xpo
2545      end do
2546
2547      nb_reaction_3 = nb_reaction_3 + 1
2548      v_3(:,nb_reaction_3) = g015(:)
2549
2550!---  g016: s2o2 + co2 -> so + so + co2
2551
2552!     mills, phd, 1998
2553
2554      deq(:) = 2.5*1.0E-28*exp(6000./t(:))
2555
2556      g016(:) = g015(:)/(deq(:)*conc(:))
2557
2558      nb_phot = nb_phot + 1
2559      v_phot(:,nb_phot) = g016(:)*conc(:)
2560
2561!---  g017: clco3 + so -> cl + so2 + co2
2562
2563!     mills, phd, 1998
2564
2565!     decomposee en :
2566!     0.5 clco3 + 0.5 so -> cl
2567!     0.5 clco3 + 0.5 so -> so2 + co2
2568
2569      g017(:) = 1.0E-11
2570
2571      nb_reaction_4 = nb_reaction_4 + 1
2572      v_4(:,nb_reaction_4) = g017(:)
2573
2574      nb_reaction_4 = nb_reaction_4 + 1
2575      v_4(:,nb_reaction_4) = g017(:)
2576
2577!---  g018: s + co + co2 -> ocs + co2
2578
2579!     zhang et al., icarus, 2011 (estimate?)
2580
2581      g018(:) = 2.5*4.0E-33*exp(-1940./t(:))*conc(:)
2582     
2583!      g018(:) = 0.0E+0
2584
2585      nb_reaction_4 = nb_reaction_4 + 1
2586      v_4(:,nb_reaction_4) = g018(:)
2587
2588!---  g019: clco + s -> ocs + cl
2589
2590!     zhang et al., icarus, 2011
2591
2592      g019(:) = 3.0E-12
2593
2594!      g019(:) = 0.0E+0
2595
2596      nb_reaction_4 = nb_reaction_4 + 1
2597      v_4(:,nb_reaction_4) = g019(:)
2598
2599!---  g020: so2 + oh + co2 -> hso3 + co2
2600
2601!     jpl 2011
2602
2603      do iz = 1,nz
2604         ak0 = 2.5*3.3E-31*(t(iz)/300.)**(-4.3)
2605         ak1 = 1.6E-12
2606
2607         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2608         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2609         g020(iz) = rate*0.6**xpo
2610      end do
2611
2612      nb_reaction_4 = nb_reaction_4 + 1
2613      v_4(:,nb_reaction_4) = g020(:)
2614
2615!---  g021: hso3 + o2 -> ho2 + so3
2616
2617!     jpl 2011
2618
2619      g021(:) = 1.3E-12*exp(-330./t(:))
2620
2621      nb_reaction_4 = nb_reaction_4 + 1
2622      v_4(:,nb_reaction_4) = g021(:)
2623
2624!---  g022: s + s + co2 -> s2 + co2
2625
2626!     nicholas et al., j. chem. soc. faraday trans. 1, 1979
2627
2628      do iz = 1,nz
2629         ak0 = 1.19E-29
2630         ak1 = 1.0E-10
2631
2632         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2633         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2634         g022(iz) = rate*0.6**xpo
2635      end do
2636
2637      nb_reaction_3 = nb_reaction_3 + 1
2638      v_3(:,nb_reaction_3) = g022(:)
2639
2640!---  g023: s2 + co2 -> s + s + co2
2641
2642!     chase et al., 1985
2643
2644!      deq(:) = 2.68E-25*exp(50860./t(:))
2645
2646!      g023(:) = g022(:)/(deq(:)*conc(:))
2647
2648!      nb_phot = nb_phot + 1
2649!      v_phot(:,nb_phot) = g023(:)*conc(:)
2650
2651!     Changement pour g023 ==> s2 + hv -> s + s
2652!     Pas encore inclu dans la table jphot
2653
2654!     Pas de photodissociation sous le nuage photochimique
2655      g023(1:28)  = 0.0E+0
2656
2657!     Dependance en sza pour la photodissociation
2658!     moins de W.m-2     
2659      IF (sza_input.LT.90.0) THEN
2660        g023(29:50) = 6.5E-3*COS(sza_input*pi/180.0)
2661      ELSE
2662        g023(29:50) = 0.0E+0
2663      END IF
2664           
2665      nb_phot = nb_phot + 1
2666     
2667      v_phot(:,nb_phot) = g023(:)
2668
2669!---  g024: s2 + o -> so + s
2670
2671!     zhang et al., icarus, 2011
2672
2673      g024(:) = 2.2E-11*exp(-84./t(:))
2674
2675      nb_reaction_4 = nb_reaction_4 + 1
2676      v_4(:,nb_reaction_4) = g024(:)
2677
2678!---  g025: s + ocs -> s2 +  co
2679
2680!     lu et al., j. chem. phys., 2006
2681
2682      g025(:) = 6.63E-20*(t(:)**2.57)*exp(-1180./t(:))
2683     
2684!      g025(:) = 0.0E+0
2685
2686      nb_reaction_4 = nb_reaction_4 + 1
2687      v_4(:,nb_reaction_4) = g025(:)
2688
2689!---  g026: ocs + o -> so + co
2690
2691!     atkinson et al., 2004
2692
2693      g026(:) = 1.60E-11*exp(-2150./t(:))
2694
2695      nb_reaction_4 = nb_reaction_4 + 1
2696      v_4(:,nb_reaction_4) = g026(:)
2697
2698!---  g027: s + so3 -> so2 +  so
2699
2700!     moses et al., 2002
2701
2702      g027(:) = 1.0E-16
2703
2704      nb_reaction_4 = nb_reaction_4 + 1
2705      v_4(:,nb_reaction_4) = g027(:)
2706
2707!---  g028: s + ho2 -> so +  oh
2708
2709!     yung and demore, 1982
2710
2711      g028(:) = 3.0E-11*exp(200./t(:))
2712
2713      nb_reaction_4 = nb_reaction_4 + 1
2714      v_4(:,nb_reaction_4) = g028(:)
2715
2716!---  g029: s + clo -> so +  cl
2717
2718!     moses et al., 2002
2719
2720      g029(:) = 4.0E-11
2721
2722      nb_reaction_4 = nb_reaction_4 + 1
2723      v_4(:,nb_reaction_4) = g029(:)
2724
2725!---  g030: h2so4 + h2o -> so3 + h2o + h2o
2726
2727!     krasnopolsky , 2007
2728
2729      g030(:) = 7.0E-14*exp(-5170./t(:))
2730
2731!      g030(:) = g011(:)/(deq(:)*c(:,i_h2o))
2732!      g030(:) = 0.0E+0
2733
2734      nb_phot = nb_phot + 1
2735      v_phot(:,nb_phot) = g030(:)*c(:,i_h2o)
2736 !     v_phot(:,nb_phot) = 0.0E+0
2737     
2738!---  g031: so3 + ocs -> s2o2 +  co2
2739
2740!     krasnopolsky , 2007
2741
2742      g031(:) = 1.0E-11*exp(-10000./t(:))
2743!      g031(:) = 0.0E+0
2744     
2745      nb_reaction_4 = nb_reaction_4 + 1
2746      v_4(:,nb_reaction_4) = g031(:)
2747     
2748!---  g032: s2o2 + ocs -> co + so2 + s2
2749
2750!       decomposee en
2751!       0.5 s2o2 + 0.5 ocs -> co
2752!       0.5 s2o2 + 0.5 ocs -> so2 + s2
2753
2754!     krasnopolsky , 2007
2755
2756      g032(:) = 1.0E-20
2757!      g032(:) = 0.0E+0
2758     
2759      nb_reaction_4 = nb_reaction_4 + 1
2760      v_4(:,nb_reaction_4) = g032(:)
2761     
2762      nb_reaction_4 = nb_reaction_4 + 1
2763      v_4(:,nb_reaction_4) = g032(:)
2764
2765!      g033: so + so -> so2 + s
2766!  Krasnopolsky 2012 from Martinez & Heron 1983 or Moses et al 2002
2767
2768!      g033(:) = 3.5E-15
2769      g033(:) =1.0E-12*exp(-1700.0/t(:))
2770     
2771      nb_reaction_3 = nb_reaction_3 + 1
2772      v_3(:,nb_reaction_3) = g033(:)
2773           
2774!----------------------------------------------------------------------
2775!     heterogeneous chemistry
2776!----------------------------------------------------------------------
2777
2778      if (hetero_ice) then
2779
2780!        k = (surface*v*gamma)/4 (s-1)
2781!        v = 100*sqrt(8rt/(pi*m))  (cm s-1)
2782 
2783!---     h001: ho2 + ice -> products
2784 
2785!        cooper and abbatt, 1996: gamma = 0.025
2786     
2787         gam = 0.025
2788         h001(:) = surfice1d(:)*1.E-8       &
2789                   *100.*sqrt(8.*8.31*t(:)/(33.E-3*pi))*gam/4.
2790 
2791!        h002: oh + ice -> products
2792 
2793!        cooper and abbatt, 1996: gamma = 0.03
2794 
2795         gam = 0.03
2796         h002(:) = surfice1d(:)*1.E-8       &
2797                   *100.*sqrt(8.*8.31*t(:)/(17.E-3*pi))*gam/4.
2798
2799!---     h003: h2o2 + ice -> products
2800 
2801!        gamma = 0.    test value
2802 
2803         gam = 0.
2804         h003(:) = surfice1d(:)*1.E-8        &
2805                   *100.*sqrt(8.*8.31*t(:)/(34.E-3*pi))*gam/4.
2806      else
2807         h001(:) = 0.
2808         h002(:) = 0.
2809         h003(:) = 0.
2810      end if
2811
2812      nb_phot = nb_phot + 1
2813      v_phot(:,nb_phot) = h001(:)
2814
2815      nb_phot = nb_phot + 1
2816      v_phot(:,nb_phot) = h002(:)
2817
2818      nb_phot = nb_phot + 1
2819      v_phot(:,nb_phot) = h003(:)
2820
2821!     do iz = 1,nz
2822!        print*, z(iz), surfice1d(iz), h001(iz), h002(iz)
2823!     end do
2824!     stop
2825
2826!     print*, 'krates : nb_phot       = ', nb_phot
2827!     print*, 'krates : nb_reaction_4 = ', nb_reaction_4
2828!     print*, 'krates : nb_reaction_3 = ', nb_reaction_3
2829!     stop
2830
2831!----------------------------------------------------------------------
2832!     reactions avec 02(Dg)
2833!----------------------------------------------------------------------
2834
2835!---     i001: O2(Dg) + CO2 -> O2 + CO2 + hv
2836
2837!        Krasnopolsky (2010a)
2838
2839      i001(:) = 1.E-20
2840
2841      nb_phot = nb_phot + 1
2842      v_phot(:,nb_phot) = i001(:)*c(:,i_co2)
2843
2844!---     i002: O2(Dg) -> O2 + hv
2845
2846!        Lafferty et al; (1998)
2847
2848      i002(:) = 2.2E-4
2849
2850      nb_phot = nb_phot + 1
2851      v_phot(:,nb_phot) = i002(:)
2852
2853return
2854end subroutine krates
2855
2856!======================================================================
2857
2858 subroutine fill_matrix(ilev, mat, prod, loss, c, nesp, nlayer,            &
2859                        nb_reaction_3_max, nb_reaction_4_max, nb_phot_max, &
2860                        v_phot, v_3, v_4)
2861
2862!======================================================================
2863! filling of the jacobian matrix
2864!======================================================================
2865
2866use types_asis
2867
2868implicit none
2869
2870! input
2871
2872integer             :: ilev    ! level index
2873integer             :: nesp    ! number of species in the chemistry
2874integer, intent(in) :: nlayer  ! number of atmospheric layers
2875integer, intent(in) :: nb_reaction_3_max
2876                               ! number of quadratic reactions
2877integer, intent(in) :: nb_reaction_4_max
2878                               ! number of bimolecular reactions
2879integer, intent(in) :: nb_phot_max
2880                               ! number of processes treated numerically as photodissociations
2881
2882real, dimension(nlayer,nesp)              :: c    ! number densities
2883real, dimension(nlayer,      nb_phot_max) :: v_phot
2884real, dimension(nlayer,nb_reaction_3_max) :: v_3
2885real, dimension(nlayer,nb_reaction_4_max) :: v_4
2886
2887! output
2888
2889real, dimension(nesp,nesp), intent(out) :: mat  ! matrix
2890real, dimension(nesp), intent(out)      :: prod, loss
2891
2892! local
2893
2894integer :: iesp
2895integer :: ind_phot_2,ind_phot_4,ind_phot_6
2896integer :: ind_3_2,ind_3_4,ind_3_6
2897integer :: ind_4_2,ind_4_4,ind_4_6,ind_4_8
2898integer :: iphot,i3,i4
2899
2900real :: eps, eps_4  ! implicit/explicit coefficient
2901
2902! initialisations
2903
2904mat(:,:) = 0.
2905prod(:)  = 0.
2906loss(:)  = 0.
2907
2908! photodissociations
2909! or reactions a + c -> b + c
2910! or reactions a + ice -> b + c
2911
2912do iphot = 1,nb_phot_max
2913
2914  ind_phot_2 = indice_phot(iphot)%z2
2915  ind_phot_4 = indice_phot(iphot)%z4
2916  ind_phot_6 = indice_phot(iphot)%z6
2917
2918  mat(ind_phot_2,ind_phot_2) = mat(ind_phot_2,ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot)
2919  mat(ind_phot_4,ind_phot_2) = mat(ind_phot_4,ind_phot_2) - indice_phot(iphot)%z3*v_phot(ilev,iphot)
2920  mat(ind_phot_6,ind_phot_2) = mat(ind_phot_6,ind_phot_2) - indice_phot(iphot)%z5*v_phot(ilev,iphot)
2921
2922  loss(ind_phot_2) = loss(ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot)
2923  prod(ind_phot_4) = prod(ind_phot_4) + indice_phot(iphot)%z3*v_phot(ilev,iphot)*c(ilev,ind_phot_2)
2924  prod(ind_phot_6) = prod(ind_phot_6) + indice_phot(iphot)%z5*v_phot(ilev,iphot)*c(ilev,ind_phot_2)
2925
2926end do
2927
2928! reactions a + a -> b + c
2929
2930do i3 = 1,nb_reaction_3_max
2931
2932  ind_3_2 = indice_3(i3)%z2
2933  ind_3_4 = indice_3(i3)%z4
2934  ind_3_6 = indice_3(i3)%z6
2935
2936  mat(ind_3_2,ind_3_2) = mat(ind_3_2,ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2)
2937  mat(ind_3_4,ind_3_2) = mat(ind_3_4,ind_3_2) - indice_3(i3)%z3*v_3(ilev,i3)*c(ilev,ind_3_2)
2938  mat(ind_3_6,ind_3_2) = mat(ind_3_6,ind_3_2) - indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2)
2939
2940  loss(ind_3_2) = loss(ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2)
2941  prod(ind_3_4) = prod(ind_3_4) + indice_3(i3)%z3*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2)
2942  prod(ind_3_6) = prod(ind_3_6) + indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2)
2943
2944end do
2945
2946! reactions a + b -> c + d
2947
2948eps = 1.d-10
2949
2950do i4 = 1,nb_reaction_4_max
2951
2952  ind_4_2 = indice_4(i4)%z2
2953  ind_4_4 = indice_4(i4)%z4
2954  ind_4_6 = indice_4(i4)%z6
2955  ind_4_8 = indice_4(i4)%z8
2956
2957  eps_4 = abs(c(ilev,ind_4_2))/(abs(c(ilev,ind_4_2)) + abs(c(ilev,ind_4_4)) + eps)
2958  eps_4 = min(eps_4,1.0)
2959
2960  mat(ind_4_2,ind_4_2) = mat(ind_4_2,ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
2961  mat(ind_4_2,ind_4_4) = mat(ind_4_2,ind_4_4) + indice_4(i4)%z1*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)
2962  mat(ind_4_4,ind_4_2) = mat(ind_4_4,ind_4_2) + indice_4(i4)%z3*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
2963  mat(ind_4_4,ind_4_4) = mat(ind_4_4,ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)   
2964  mat(ind_4_6,ind_4_2) = mat(ind_4_6,ind_4_2) - indice_4(i4)%z5*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
2965  mat(ind_4_6,ind_4_4) = mat(ind_4_6,ind_4_4) - indice_4(i4)%z5*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)
2966  mat(ind_4_8,ind_4_2) = mat(ind_4_8,ind_4_2) - indice_4(i4)%z7*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
2967  mat(ind_4_8,ind_4_4) = mat(ind_4_8,ind_4_4) - indice_4(i4)%z7*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)
2968
2969
2970  loss(ind_4_2) = loss(ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*c(ilev,ind_4_4)
2971  loss(ind_4_4) = loss(ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*c(ilev,ind_4_2)
2972  prod(ind_4_6) = prod(ind_4_6) + indice_4(i4)%z5*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4)
2973  prod(ind_4_8) = prod(ind_4_8) + indice_4(i4)%z7*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4)
2974
2975end do
2976
2977end subroutine fill_matrix
2978
2979!================================================================
2980
2981 subroutine define_dt(nesp, dtnew, dtold, ctimestep, cold, ccur, mat1, &
2982                      prod, loss, dens)
2983
2984!================================================================
2985! iterative evaluation of the appropriate time step dtnew
2986! according to curvature criterion based on
2987! e = 2 Rtol [r Cn+1 -(1-r) Cn + Cn-1 ]/[(1+r) Cn]
2988! with r = (tn - tn-1)/(tn+1 - tn)
2989!================================================================
2990
2991implicit none
2992
2993! input
2994
2995integer :: nesp  ! number of species in the chemistry
2996
2997real :: dtold, ctimestep
2998real, dimension(nesp)      :: cold, ccur
2999real, dimension(nesp,nesp) :: mat1
3000real, dimension(nesp)      :: prod, loss
3001real                       :: dens
3002
3003! output
3004
3005real :: dtnew
3006
3007! local
3008
3009real, dimension(nesp)      :: cnew
3010real, dimension(nesp,nesp) :: mat
3011real :: atol, ratio, e, es, coef
3012
3013integer                  :: code, iesp, iter
3014integer, dimension(nesp) :: indx
3015integer :: imax
3016
3017real :: dttest
3018
3019! parameters
3020
3021real, parameter    :: dtmin   = 10.      ! minimum time step (s)
3022real, parameter    :: vmrtol  = 1.e-11   ! absolute tolerance on vmr
3023real, parameter    :: rtol    = 0.05     ! rtol recommended value : 0.1-0.02
3024integer, parameter :: niter   = 3        ! number of iterations
3025real, parameter    :: coefmax = 2.
3026real, parameter    :: coefmin = 0.1
3027logical            :: fast_guess = .true.
3028
3029dttest = dtold   ! dttest = dtold = dt_guess
3030
3031atol = vmrtol*dens ! absolute tolerance in molecule.cm-3
3032
3033do iter = 1,niter
3034
3035if (fast_guess) then
3036
3037! first guess : fast semi-implicit method
3038
3039   do iesp = 1, nesp
3040      cnew(iesp) = (ccur(iesp) + prod(iesp)*dttest)/(1. + loss(iesp)*dttest)
3041   end do
3042
3043else
3044
3045! first guess : form the matrix identity + mat*dt_guess
3046
3047   mat(:,:) = mat1(:,:)*dttest
3048   do iesp = 1,nesp
3049      mat(iesp,iesp) = 1. + mat(iesp,iesp)
3050   end do
3051
3052! form right-hand side (RHS) of the system
3053
3054   cnew(:) = ccur(:)
3055
3056! solve the linear system  M*Cn+1 = Cn (RHS in cnew, then replaced by solution)
3057
3058#ifdef LAPACK
3059   call dgesv(nesp,1,mat,nesp,indx,cnew,nesp,code)
3060#else
3061   write(*,*) "photochemistry error, missing LAPACK routine dgesv"
3062   stop
3063#endif
3064
3065end if
3066
3067! ratio old/new subtimestep
3068
3069ratio = dtold/dttest
3070
3071! e : local error indicator
3072
3073e = 0.
3074
3075do iesp = 1,nesp
3076   es = 2.*abs((ratio*cnew(iesp) - (1. + ratio)*ccur(iesp) + cold(iesp))   &
3077         /(1. + ratio)/max(ccur(iesp)*rtol,atol))
3078
3079   if (es > e) then
3080      e = es
3081      imax = iesp
3082   end if
3083end do
3084
3085! timestep correction
3086
3087coef = max(coefmin, min(coefmax,0.8/sqrt(e)))
3088
3089dttest = max(dtmin,dttest*coef)
3090dttest = min(ctimestep,dttest)
3091
3092end do ! iter
3093
3094! new timestep
3095
3096dtnew = dttest
3097
3098end subroutine define_dt
3099
3100!======================================================================
3101
3102      SUBROUTINE  rate_save(            &
3103                           n_lev,       &
3104                           pres,        &
3105                           temperature, &
3106                           traceur,     &
3107                           nq_max,      &
3108                           vphot,       &
3109                           v3,          &
3110                           v4)     
3111!==================
3112!!!!! MODEL 1D !!!! ==> n_lon = 1 !!!!
3113!==================
3114! Ici on a les variables pour le modele 1D, surtout pour la sauvegarde des taux de prod/consom
3115!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3116!PENSER a changer les conditions de time_tot
3117!time_tot=nbr_pdt*(nbr_jour-1)
3118!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3119
3120      USE chemparam_mod
3121      IMPLICIT none
3122           
3123
3124!INTEGER, PARAMETER :: time_tot=6000*1
3125
3126INTEGER :: unit_loc, ierr_loc           ! unite de lecture de "rcm1d.def"
3127     
3128INTEGER, SAVE :: time_tot,nbr_pdt,nbr_jour
3129INTEGER, SAVE :: cpt_time, cpt_time_rate
3130DOUBLE PRECISION, DIMENSION(n_lev,126) :: rate_day
3131DOUBLE PRECISION, DIMENSION(n_lev,126) :: rate_night
3132DOUBLE PRECISION :: rate_local
3133DOUBLE PRECISION :: concentration(n_lev)
3134DOUBLE PRECISION :: pres(n_lev)
3135DOUBLE PRECISION :: temperature(n_lev)
3136DOUBLE PRECISION :: traceur(n_lev,nq_max)
3137     
3138INTEGER :: n_lev, nq_max
3139INTEGER :: i_lev, i_react, i_v
3140
3141INTEGER :: i
3142 
3143LOGICAL, SAVE :: f_call = .true.
3144
3145integer, parameter :: nb_phot_max = 31
3146integer, parameter :: nb_reaction_3_max = 11
3147integer, parameter :: nb_reaction_4_max = 84
3148     
3149real, dimension(n_lev,nb_phot_max) :: vphot
3150real, dimension(n_lev,nb_reaction_3_max) :: v3
3151real, dimension(n_lev,nb_reaction_4_max) :: v4
3152
3153!PRINT*,"DEBUT subroutine rate_save"
3154
3155
3156      IF (f_call) THEN
3157! ------------------------------------------------------
3158!  Lecture des parametres dans "rcm1d.def"
3159! ------------------------------------------------------
3160
3161!   Opening parameters file "rcm1d.def"
3162!   ---------------------------------------
3163      unit_loc =98
3164      OPEN(unit_loc,file='rcm1d.def',status='old',form='formatted'  &
3165          ,iostat=ierr_loc)
3166
3167      IF(ierr_loc.ne.0) THEN
3168        write(*,*) 'Problem to open "rcm1d.def'
3169        write(*,*) 'Is it there ?'
3170        stop
3171      ELSE
3172        write(*,*) 'open rcm1d.def success '
3173      END IF
3174
3175      do i=1, 2
3176        read (unit_loc, *)
3177      end do
3178
3179      PRINT *,'nombre de pas de temps par jour ?'
3180      READ(unit_loc,*) nbr_pdt
3181      print*,nbr_pdt
3182
3183      PRINT *,'nombre de jours simules ?'
3184      READ(unit_loc,*) nbr_jour
3185      print*,nbr_jour
3186     
3187 
3188     
3189      time_tot = nbr_pdt*(nbr_jour-1)
3190      PRINT *,'nombre de PdT avant calcul des taux production/consommation ?'
3191      PRINT*,time_tot
3192     
3193      PRINT*,'nlev',n_lev
3194           
3195         cpt_time = 1
3196         cpt_time_rate = 1
3197         f_call = .false.
3198         PRINT*,"f_call: ",f_call
3199         rate_night(:,:)=0.
3200         rate_day(:,:)=0.
3201     
3202      END IF           
3203     
3204!      PRINT*,"P        T"
3205!      PRINT*,pres,temperature
3206             
3207      IF (cpt_time .GE. time_tot) THEN
3208
3209!       PRINT*,'cpt_time',cpt_time
3210             
3211         DO i_lev=1, n_lev
3212         concentration(i_lev) = pres(i_lev)/(1.3806488E-19 * temperature(i_lev))     
3213         END DO
3214         
3215         IF (((cpt_time_rate .GE. 1).AND.(cpt_time_rate .LE. (nbr_pdt/4))).OR. &
3216         (cpt_time_rate .GT. (3*(nbr_pdt/4)))) THEN
3217         
3218!===============================
3219!        !!!! NUIT !!!!
3220!===============================
3221!       PRINT*,'NUIT'
3222       
3223           DO i_lev=1, n_lev
3224           i_react=1
3225           i_v=1
3226!===============================
3227!    1     o2 + hv     -> o + o
3228!===============================
3229                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
3230                rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3231                i_react=i_react+1
3232                i_v=i_v+1
3233!===============================
3234!    2     o2 + hv     -> o + o(1d)
3235!===============================
3236                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
3237                rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3238                i_react=i_react+1
3239                i_v=i_v+1
3240!===============================
3241!    3     co2 + hv    -> co + o
3242!===============================
3243            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
3244            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3245            i_react=i_react+1
3246                i_v=i_v+1
3247!===============================
3248!    4     co2 + hv    -> co + o(1d)
3249!===============================
3250            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
3251            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3252            i_react=i_react+1
3253                i_v=i_v+1
3254!===============================
3255!    5     o3 + hv     -> o2(Dg) + o(1d)
3256!===============================
3257            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
3258            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3259            i_react=i_react+1
3260                i_v=i_v+1
3261!===============================
3262!    6     o3 + hv     -> o2 + o
3263!===============================
3264            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
3265            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3266            i_react=i_react+1
3267                i_v=i_v+1
3268!===============================
3269!    7     h2o + hv    -> h + oh
3270!===============================
3271            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o)*concentration(i_lev)
3272            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3273            i_react=i_react+1
3274                i_v=i_v+1
3275!===============================
3276!    8     ho2 + hv    -> oh + o
3277!===============================
3278            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev)
3279            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3280            i_react=i_react+1
3281                i_v=i_v+1
3282!===============================
3283!    9     h2o2 + hv   -> oh + oh
3284!===============================
3285            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o2)*concentration(i_lev)
3286            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3287            i_react=i_react+1
3288                i_v=i_v+1
3289!===============================
3290!    10    hcl + hv    -> h + cl
3291!===============================
3292            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev)
3293            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3294            i_react=i_react+1
3295                i_v=i_v+1
3296!===============================
3297!    11    cl2 + hv    -> cl + cl
3298!===============================
3299            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev)
3300            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3301            i_react=i_react+1
3302                i_v=i_v+1
3303!===============================
3304!    12    hocl + hv   -> oh + cl
3305!===============================
3306            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev)
3307            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3308            i_react=i_react+1
3309                i_v=i_v+1
3310!===============================
3311!    13    so2 + hv    -> so + o
3312!===============================
3313            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev)
3314            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3315            i_react=i_react+1
3316                i_v=i_v+1
3317!===============================
3318!    14    so + hv     -> s + o
3319!===============================
3320            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev)
3321            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3322            i_react=i_react+1
3323                i_v=i_v+1
3324!===============================
3325!    15    so3 + hv    -> so2 + o
3326!===============================
3327            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev)
3328            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3329            i_react=i_react+1
3330                i_v=i_v+1
3331!===============================
3332!    16    clo + hv    -> cl + o
3333!===============================
3334            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev)
3335            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3336            i_react=i_react+1
3337                i_v=i_v+1
3338!===============================
3339!    17    ocs + hv    -> co + s
3340!===============================
3341            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ocs)*concentration(i_lev)
3342            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3343            i_react=i_react+1
3344                i_v=i_v+1
3345!===============================
3346!    18    cocl2 + hv  -> cl + cl + co
3347!===============================
3348            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cocl2)*concentration(i_lev)
3349            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3350            i_react=i_react+1
3351                i_v=i_v+1
3352!===============================
3353!    19    h2so4 + hv  -> so3 + h2o
3354!===============================
3355            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2so4)*concentration(i_lev)
3356            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3357            i_react=i_react+1
3358                i_v=i_v+1
3359!===============================
3360!--- 20 b001 o(1d) + co2 -> o + co2
3361!===============================
3362            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
3363            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3364            i_react=i_react+1
3365                i_v=i_v+1
3366!===============================
3367!--- 21 b004 o(1d) + o2 -> o + o2
3368!===============================
3369            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
3370            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3371            i_react=i_react+1
3372                i_v=i_v+1
3373!===============================
3374!--- 22 f014 clco + co2 -> cl + co + co2
3375!===============================
3376            rate_local = vphot(i_lev,22)*traceur(i_lev,i_clco)*concentration(i_lev)
3377            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3378            i_react=i_react+1
3379                i_v=i_v+1
3380!===============================
3381!--- 23 g016 s2o2 + co2 -> 2so + co2
3382!===============================
3383            rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)
3384            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3385            i_react=i_react+1
3386                i_v=i_v+1
3387!===============================
3388!--- 24 g023 s2 + co2 -> 2s + co2
3389!===============================
3390            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
3391            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3392            i_react=i_react+1
3393                i_v=i_v+1
3394!===============================
3395!--- 25 h001 ICE
3396!===============================
3397            i_react=i_react+1
3398                i_v=i_v+1
3399!===============================
3400!--- 26 h002 ICE
3401!===============================
3402            i_react=i_react+1
3403                i_v=i_v+1 
3404!===============================
3405!--- 27 h003 ICE
3406!===============================
3407            i_react=i_react+1
3408                i_v=i_v+1 
3409!===============================
3410!---  30 i001 o2(Dg) + CO2 -> O2 + CO2 + hv
3411!===============================
3412            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
3413            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3414            i_react=i_react+1
3415                i_v=i_v+1
3416!===============================
3417!--- 31 i002 o2(Dg) -> O2 + hv
3418!===============================
3419            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
3420            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3421            i_react=i_react+1
3422                i_v=i_v+1
3423
3424! DEBUT DES REACTION V3
3425                i_v = i_v - nb_phot_max
3426!===============================
3427!--- 32 a002: o + o + co2 -> o2 + co2
3428!===============================
3429            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
3430            *traceur(i_lev,i_o)*concentration(i_lev)
3431            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3432            i_react=i_react+1
3433                i_v=i_v+1
3434!===============================
3435!--- 33 c008: ho2 + ho2 -> h2o2 + o2
3436!===============================
3437            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
3438            *traceur(i_lev,i_ho2)*concentration(i_lev)
3439            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3440            i_react=i_react+1
3441                i_v=i_v+1
3442!===============================
3443!--- 34 c013: oh + oh -> h2o + o
3444!===============================
3445            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3446            *traceur(i_lev,i_oh)*concentration(i_lev)
3447            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3448            i_react=i_react+1
3449                i_v=i_v+1
3450!===============================
3451!--- 35 c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
3452!===============================
3453            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
3454            *traceur(i_lev,i_ho2)*concentration(i_lev)
3455            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3456            i_react=i_react+1
3457                i_v=i_v+1
3458!===============================
3459!--- 36 c017: oh + oh + co2 -> h2o2 + co2
3460!===============================
3461            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3462            *traceur(i_lev,i_oh)*concentration(i_lev)
3463            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3464            i_react=i_react+1
3465                i_v=i_v+1
3466!===============================
3467!--- 37 c018: h + h + co2 -> h2 + co2
3468!===============================
3469            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
3470            *traceur(i_lev,i_h)*concentration(i_lev)
3471            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3472            i_react=i_react+1
3473                i_v=i_v+1
3474!===============================
3475!--- 38 f021: cl + cl + co2 -> cl2 + co2
3476!===============================
3477            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3478            *traceur(i_lev,i_cl)*concentration(i_lev)
3479            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3480            i_react=i_react+1
3481                i_v=i_v+1
3482!===============================
3483!--- 39 f026: clco + clco  -> cocl2 + co
3484!===============================
3485            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
3486            *traceur(i_lev,i_clco)*concentration(i_lev)
3487            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3488            i_react=i_react+1
3489                i_v=i_v+1
3490!===============================
3491!--- 40 f030: clso2 + clso2  -> cl2 + so2 + so2
3492!===============================
3493            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
3494            *traceur(i_lev,i_clso2)*concentration(i_lev)
3495            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3496            i_react=i_react+1
3497                i_v=i_v+1
3498!===============================
3499!--- 41 g015: so + so + co2 -> s2o2 + co2
3500!===============================
3501            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
3502            *traceur(i_lev,i_so)*concentration(i_lev)
3503            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3504            i_react=i_react+1
3505                i_v=i_v+1
3506!===============================
3507!--- 42 g022: s + s + co2 -> s2 + co2
3508!===============================
3509            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
3510            *traceur(i_lev,i_s)*concentration(i_lev)
3511            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3512            i_react=i_react+1
3513                i_v=i_v+1
3514
3515! DEBUT DES REACTION V4
3516
3517                i_v = i_v - nb_reaction_3_max
3518
3519!===============================
3520!--- 43 a001: o + o2 + co2 -> o3 + co2
3521!===============================
3522            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
3523            *traceur(i_lev,i_o)*concentration(i_lev)
3524            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3525            i_react=i_react+1
3526                i_v=i_v+1
3527!===============================
3528!--- 44 a003: o + o3 -> o2 + o2
3529!===============================
3530            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
3531            *traceur(i_lev,i_o)*concentration(i_lev) 
3532            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3533            i_react=i_react+1
3534                i_v=i_v+1
3535!===============================
3536!--- 45 b002: o(1d) + h2o  -> oh + oh
3537!===============================
3538            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
3539            *traceur(i_lev,i_h2o)*concentration(i_lev) 
3540            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3541            i_react=i_react+1
3542                i_v=i_v+1
3543!===============================
3544!--- 46 b003: o(1d) + h2  -> oh + h
3545!===============================
3546            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
3547            *traceur(i_lev,i_h2)*concentration(i_lev) 
3548            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3549            i_react=i_react+1
3550                i_v=i_v+1
3551!===============================
3552!--- 47 b005: o(1d) + o3  -> o2 + o2
3553!===============================
3554            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
3555            *traceur(i_lev,i_o3)*concentration(i_lev)
3556            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3557            i_react=i_react+1
3558                i_v=i_v+1
3559!===============================
3560!--- 48 b006: o(1d) + o3  -> o2 + o + o
3561!===============================
3562            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
3563            *traceur(i_lev,i_o3)*concentration(i_lev)
3564            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3565            i_react=i_react+1
3566                i_v=i_v+1
3567!===============================
3568!--- 49 c001: o + ho2 -> oh + o2
3569!===============================
3570            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
3571            *traceur(i_lev,i_ho2)*concentration(i_lev)
3572            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3573            i_react=i_react+1
3574                i_v=i_v+1
3575!===============================
3576!--- 50 c002: o + oh -> o2 + h
3577!===============================
3578            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
3579            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3580            i_react=i_react+1
3581                i_v=i_v+1
3582!===============================
3583!--- 51 c003: h + o3 -> oh + o2
3584!===============================
3585            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
3586            *traceur(i_lev,i_o3)*concentration(i_lev)
3587            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3588            i_react=i_react+1
3589                i_v=i_v+1
3590!===============================
3591!--- 52 c004: h + ho2 -> oh + oh
3592!===============================
3593            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
3594            *traceur(i_lev,i_ho2)*concentration(i_lev)
3595            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3596            i_react=i_react+1
3597                i_v=i_v+1
3598!===============================
3599!--- 53 c005: h + ho2 -> h2 + o2
3600!===============================
3601            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
3602            *traceur(i_lev,i_ho2)*concentration(i_lev)
3603            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3604            i_react=i_react+1
3605                i_v=i_v+1
3606!===============================
3607!--- 54 c006: h + ho2 -> h2o + o
3608!===============================
3609            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
3610            *traceur(i_lev,i_ho2)*concentration(i_lev)
3611            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3612            i_react=i_react+1
3613                i_v=i_v+1
3614!===============================
3615!--- 55 c007: oh + ho2 -> h2o + o2
3616!===============================
3617            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3618            *traceur(i_lev,i_ho2)*concentration(i_lev)
3619            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3620            i_react=i_react+1
3621                i_v=i_v+1
3622!===============================
3623!--- 56 c009: oh + h2o2 -> h2o + ho2
3624!===============================
3625            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3626            *traceur(i_lev,i_h2o2)*concentration(i_lev)
3627            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3628            i_react=i_react+1
3629                i_v=i_v+1
3630!===============================
3631!--- 57 c010: oh + h2 -> h2o + h
3632!===============================
3633            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3634            *traceur(i_lev,i_h2)*concentration(i_lev)
3635            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3636            i_react=i_react+1
3637                i_v=i_v+1
3638!===============================
3639!--- 58 c011: h + o2 + co2 -> ho2 + co2
3640!===============================
3641            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
3642            *traceur(i_lev,i_h)*concentration(i_lev)
3643            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3644            i_react=i_react+1
3645                i_v=i_v+1
3646!===============================
3647!--- 59 c012: o + h2o2 -> oh + ho2
3648!===============================
3649            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
3650            *traceur(i_lev,i_h2o2)*concentration(i_lev)
3651            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3652            i_react=i_react+1
3653                i_v=i_v+1
3654!===============================
3655!--- 60 c014: oh + o3 -> ho2 + o2
3656!===============================
3657            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3658            *traceur(i_lev,i_o3)*concentration(i_lev)
3659            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3660            i_react=i_react+1
3661                i_v=i_v+1
3662!===============================
3663!--- 61 c015: ho2 + o3 -> oh + o2 + o2
3664!===============================
3665            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
3666            *traceur(i_lev,i_ho2)*concentration(i_lev)
3667            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3668            i_react=i_react+1
3669                i_v=i_v+1
3670!===============================
3671!--- 62 e001: oh + co -> co2 + h
3672!===============================
3673            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
3674            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3675            i_react=i_react+1
3676                i_v=i_v+1
3677!===============================
3678!--- 63 e002: o + co + m -> co2 + m
3679!===============================
3680            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
3681            *traceur(i_lev,i_co)*concentration(i_lev)
3682            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3683            i_react=i_react+1
3684                i_v=i_v+1
3685!===============================
3686!--- 64 f001: hcl + o(1d) -> oh + cl
3687!===============================
3688            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
3689            *traceur(i_lev,i_o1d)*concentration(i_lev)
3690            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3691            i_react=i_react+1
3692                i_v=i_v+1
3693!===============================
3694!--- 65 f002: hcl + o(1d) -> h + clo
3695!===============================
3696            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
3697            *traceur(i_lev,i_o1d)*concentration(i_lev)
3698            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3699            i_react=i_react+1
3700                i_v=i_v+1
3701!===============================
3702!--- 66 f003: hcl + o -> oh + cl
3703!===============================
3704            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
3705            *traceur(i_lev,i_o)*concentration(i_lev)
3706            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3707            i_react=i_react+1
3708                i_v=i_v+1
3709!===============================
3710!--- 67 f004: hcl + oh -> h2o + cl
3711!===============================
3712            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
3713            *traceur(i_lev,i_oh)*concentration(i_lev)
3714            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3715            i_react=i_react+1
3716                i_v=i_v+1
3717!===============================
3718!--- 68 f005: clo + o -> cl + o2
3719!===============================
3720            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
3721            *traceur(i_lev,i_o)*concentration(i_lev)
3722            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3723            i_react=i_react+1
3724                i_v=i_v+1
3725!===============================
3726!--- 69 f006: clo + oh -> cl + ho2
3727!===============================
3728            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
3729            *traceur(i_lev,i_oh)*concentration(i_lev)
3730            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3731            i_react=i_react+1
3732                i_v=i_v+1
3733!===============================
3734!--- 70 f007: clo + oh -> hcl + o2
3735!===============================
3736            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
3737            *traceur(i_lev,i_oh)*concentration(i_lev)
3738            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3739            i_react=i_react+1
3740                i_v=i_v+1
3741!===============================
3742!--- 71 f008: cl + h2 -> hcl + h
3743!===============================
3744            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3745            *traceur(i_lev,i_h2)*concentration(i_lev)
3746            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3747            i_react=i_react+1
3748                i_v=i_v+1
3749!===============================
3750!--- 72 f009: cl + o3 -> clo + o2
3751!===============================
3752            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3753            *traceur(i_lev,i_o3)*concentration(i_lev)
3754            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3755            i_react=i_react+1
3756                i_v=i_v+1
3757!===============================
3758!--- 73 f010: cl + ho2 -> clo + oh
3759!===============================
3760            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3761            *traceur(i_lev,i_ho2)*concentration(i_lev)
3762            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3763            i_react=i_react+1
3764                i_v=i_v+1
3765!===============================
3766!--- 74 f011: cl + ho2 -> hcl + o2
3767!===============================
3768            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3769            *traceur(i_lev,i_ho2)*concentration(i_lev)
3770            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3771            i_react=i_react+1
3772                i_v=i_v+1
3773!===============================
3774!--- 75 f012: cl + h2o2 -> hcl + ho2
3775!===============================
3776            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3777            *traceur(i_lev,i_h2o2)*concentration(i_lev)
3778            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3779            i_react=i_react+1
3780                i_v=i_v+1
3781!===============================
3782!--- 76 f013: cl + co + co2 -> clco + co2
3783!===============================
3784            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3785            *traceur(i_lev,i_co)*concentration(i_lev)
3786            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3787            i_react=i_react+1
3788                i_v=i_v+1
3789!===============================
3790!--- 77 f015: clco + o2 + m -> clco3 + m
3791!===============================
3792                rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
3793            *traceur(i_lev,i_clco)*concentration(i_lev)
3794            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3795            i_react=i_react+1
3796                i_v=i_v+1
3797!===============================
3798!--- 78 & 79 f016: clco3 + cl -> cl + clo + co2
3799!===============================
3800!     decomposee en :
3801!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
3802!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
3803            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
3804            *traceur(i_lev,i_cl)*concentration(i_lev)
3805            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3806            i_react=i_react+1
3807                i_v=i_v+1
3808           
3809            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
3810            *traceur(i_lev,i_cl)*concentration(i_lev)
3811            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3812            i_react=i_react+1
3813                i_v=i_v+1
3814!===============================
3815!--- 80 & 81 f017: clco3 + o -> cl + o2 + co2
3816!===============================
3817!     decomposee en :
3818!     0.5 clco3 + 0.5 o -> cl
3819!     0.5 clco3 + 0.5 o -> o2 + co2
3820            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
3821            *traceur(i_lev,i_o)*concentration(i_lev)
3822            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3823            i_react=i_react+1
3824                i_v=i_v+1
3825           
3826            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
3827            *traceur(i_lev,i_o)*concentration(i_lev)
3828            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3829            i_react=i_react+1
3830                i_v=i_v+1
3831!===============================
3832!--- 82 f018: clo + ho2  -> hocl + o2
3833!===============================
3834            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
3835            *traceur(i_lev,i_ho2)*concentration(i_lev) 
3836            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3837            i_react=i_react+1
3838                i_v=i_v+1
3839!===============================
3840!--- 83 f019: oh + hocl -> h2o + clo
3841!===============================
3842            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
3843            *traceur(i_lev,i_hocl)*concentration(i_lev) 
3844            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3845            i_react=i_react+1
3846                i_v=i_v+1
3847!===============================
3848!--- 84 f020: o + hocl -> oh + clo
3849!===============================
3850            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev) &
3851            *traceur(i_lev,i_o)*concentration(i_lev) 
3852            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3853            i_react=i_react+1
3854                i_v=i_v+1
3855!===============================
3856!--- 85 f022: clco + o -> cl + co2
3857!===============================
3858            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
3859            *traceur(i_lev,i_o)*concentration(i_lev) 
3860            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3861            i_react=i_react+1
3862                i_v=i_v+1
3863!===============================
3864!--- 86 f023: cl2 + o(1d) -> cl + clo
3865!===============================
3866            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
3867            *traceur(i_lev,i_o1d)*concentration(i_lev) 
3868            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3869            i_react=i_react+1
3870                i_v=i_v+1
3871!===============================
3872!--- 87 f024: cl2 + h  -> hcl + cl
3873!==============================
3874            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
3875            *traceur(i_lev,i_h)*concentration(i_lev) 
3876            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3877            i_react=i_react+1
3878                i_v=i_v+1
3879!===============================
3880!--- 88 f025: cl + clco  -> cl2 + co
3881!===============================
3882            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3883            *traceur(i_lev,i_clco)*concentration(i_lev) 
3884            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3885            i_react=i_react+1
3886                i_v=i_v+1
3887!===============================
3888!--- 89 f027: cl + so2 + co2  -> clso2 + co2
3889!===============================
3890            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
3891            *traceur(i_lev,i_cl)*concentration(i_lev) 
3892            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3893            i_react=i_react+1
3894                i_v=i_v+1
3895!===============================
3896!--- 90 f028: clso2 + o  -> so2 + clo
3897!===============================
3898            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
3899            *traceur(i_lev,i_o)*concentration(i_lev) 
3900            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3901            i_react=i_react+1
3902                i_v=i_v+1
3903!===============================
3904!--- 91 f029: clso2 + h  -> so2 + hcl
3905!===============================
3906            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
3907            *traceur(i_lev,i_h)*concentration(i_lev) 
3908            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3909            i_react=i_react+1
3910                i_v=i_v+1
3911!===============================
3912!--- 92 f031: cl + o + co2  -> clo + co2
3913!===============================
3914            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3915            *traceur(i_lev,i_o)*concentration(i_lev) 
3916            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3917            i_react=i_react+1
3918                i_v=i_v+1
3919!===============================
3920!--- 93 f032: cl2 + o -> clo + cl
3921!===============================
3922            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
3923            *traceur(i_lev,i_o)*concentration(i_lev) 
3924            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3925            i_react=i_react+1
3926                i_v=i_v+1
3927!===============================
3928!--- 94 f033: clco + oh -> hocl + co
3929!===============================
3930            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
3931            *traceur(i_lev,i_oh)*concentration(i_lev) 
3932            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3933            i_react=i_react+1
3934                i_v=i_v+1
3935!===============================
3936!--- 95 f034: cl2 + oh -> cl + hocl
3937!===============================
3938            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
3939            *traceur(i_lev,i_oh)*concentration(i_lev) 
3940            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3941            i_react=i_react+1
3942                i_v=i_v+1
3943!===============================
3944!--- 96 f035: clco + o -> co + clo
3945!===============================
3946            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
3947            *traceur(i_lev,i_o)*concentration(i_lev) 
3948            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3949            i_react=i_react+1
3950                i_v=i_v+1
3951!===============================
3952!--- 97 f036: clco + cl2 -> cocl2 + cl
3953!===============================
3954            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
3955            *traceur(i_lev,i_clco)*concentration(i_lev) 
3956            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3957            i_react=i_react+1
3958                i_v=i_v+1
3959!===============================
3960!--- 98 f037: hcl + h -> h2 + cl
3961!===============================
3962            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
3963            *traceur(i_lev,i_h)*concentration(i_lev) 
3964            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3965            i_react=i_react+1
3966                i_v=i_v+1
3967!===============================
3968!--- 99 f038: clco + h -> hcl + co
3969!===============================
3970            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
3971            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3972            i_react=i_react+1
3973                i_v=i_v+1
3974!===============================
3975!--- 100 f039: cl + h + m -> hcl + m
3976!===============================
3977            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
3978            *traceur(i_lev,i_h)*concentration(i_lev) 
3979            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3980            i_react=i_react+1
3981                i_v=i_v+1
3982!===============================
3983!--- 101 g001: s + o2 -> so + o
3984!===============================
3985            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
3986            *traceur(i_lev,i_o2)*concentration(i_lev) 
3987            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3988            i_react=i_react+1
3989                i_v=i_v+1
3990!===============================
3991!--- 102 g002: s + o3 -> so + o2
3992!===============================
3993            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
3994            *traceur(i_lev,i_o3)*concentration(i_lev) 
3995            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
3996            i_react=i_react+1
3997                i_v=i_v+1
3998!===============================
3999!--- 103 g003: so + o2 -> so2 + o
4000!===============================
4001             rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4002            *traceur(i_lev,i_o2)*concentration(i_lev) 
4003            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4004            i_react=i_react+1
4005                i_v=i_v+1
4006!===============================
4007!--- 104 g004: so + o3 -> so2 + o2
4008!===============================
4009            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4010            *traceur(i_lev,i_o3)*concentration(i_lev) 
4011            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4012            i_react=i_react+1
4013                i_v=i_v+1
4014!===============================
4015!--- 105 g005: so + oh -> so2 + h
4016!===============================
4017            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4018            *traceur(i_lev,i_oh)*concentration(i_lev) 
4019            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4020            i_react=i_react+1
4021                i_v=i_v+1
4022!===============================
4023!--- 106 g006: s + oh -> so + h
4024!===============================
4025            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4026            *traceur(i_lev,i_oh)*concentration(i_lev) 
4027            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4028            i_react=i_react+1
4029                i_v=i_v+1
4030!===============================
4031!--- 107 g007: so + o + co2 -> so2 + co2
4032!===============================
4033            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4034            *traceur(i_lev,i_o)*concentration(i_lev) 
4035            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4036            i_react=i_react+1
4037                i_v=i_v+1
4038!===============================
4039!--- 108 g008: so + ho2 -> so2 + oh
4040!===============================
4041            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4042            *traceur(i_lev,i_ho2)*concentration(i_lev) 
4043            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4044            i_react=i_react+1
4045                i_v=i_v+1
4046!===============================
4047!--- 109 g009: so2 + o + co2 -> so3 + co2
4048!===============================
4049            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
4050            *traceur(i_lev,i_o)*concentration(i_lev) 
4051            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4052            i_react=i_react+1
4053                i_v=i_v+1
4054!===============================
4055!--- 110 g010: s + o + co2 -> so + co2
4056!===============================
4057            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4058            *traceur(i_lev,i_o)*concentration(i_lev) 
4059            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4060            i_react=i_react+1
4061                i_v=i_v+1
4062!===============================
4063!--- 111 g011: so3 + h2o -> h2so4
4064!===============================
4065            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
4066            *traceur(i_lev,i_h2o)*concentration(i_lev) 
4067            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4068            i_react=i_react+1
4069                i_v=i_v+1
4070!===============================
4071!--- 112 g012: so + clo -> so2 + cl
4072!===============================
4073            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4074            *traceur(i_lev,i_clo)*concentration(i_lev) 
4075            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4076            i_react=i_react+1
4077                i_v=i_v+1
4078!===============================
4079!--- 113 g013: so + so3 -> so2 + so2
4080!===============================
4081            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4082            *traceur(i_lev,i_so3)*concentration(i_lev) 
4083            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4084            i_react=i_react+1
4085                i_v=i_v+1
4086!===============================
4087!--- 114 g014: so3 + o -> so2 + o2
4088!===============================
4089            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
4090            *traceur(i_lev,i_o)*concentration(i_lev) 
4091            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4092            i_react=i_react+1
4093                i_v=i_v+1
4094!===============================
4095!--- 115 & 116 g017: clco3 + so -> cl + so2 + co2
4096!===============================
4097!     decomposee en :
4098!     0.5 clco3 + 0.5 so -> cl
4099!     0.5 clco3 + 0.5 so -> so2 + co2
4100            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
4101            *traceur(i_lev,i_so)*concentration(i_lev) 
4102            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4103            i_react=i_react+1
4104                i_v=i_v+1
4105           
4106            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
4107            *traceur(i_lev,i_so)*concentration(i_lev) 
4108            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4109            i_react=i_react+1
4110                i_v=i_v+1
4111!===============================
4112!--- 117 g018: s + co + co2 -> ocs + co2
4113!===============================
4114            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4115            *traceur(i_lev,i_co)*concentration(i_lev) 
4116            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4117            i_react=i_react+1
4118                i_v=i_v+1
4119!===============================
4120!--- 118 g019: clco + s -> ocs + cl
4121!===============================
4122            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
4123            *traceur(i_lev,i_s)*concentration(i_lev) 
4124            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4125            i_react=i_react+1
4126                i_v=i_v+1
4127!===============================
4128!--- 119 g020: so2 + oh + co2 -> hso3 + co2
4129!===============================
4130            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
4131            *traceur(i_lev,i_oh)*concentration(i_lev) 
4132            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4133            i_react=i_react+1
4134                i_v=i_v+1
4135!===============================
4136!--- 120 g021: hso3 + o2 -> ho2 + so3
4137!===============================
4138            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
4139            *traceur(i_lev,i_hso3)*concentration(i_lev) 
4140            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4141            i_react=i_react+1
4142                i_v=i_v+1
4143!===============================
4144!--- 121 g024: s2 + o -> so + s
4145!===============================
4146            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev) &
4147            *traceur(i_lev,i_o)*concentration(i_lev) 
4148            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4149            i_react=i_react+1
4150                i_v=i_v+1
4151!===============================
4152!--- 122 g025: s + ocs -> s2 +  co
4153!===============================
4154            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4155            *traceur(i_lev,i_ocs)*concentration(i_lev) 
4156            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4157            i_react=i_react+1
4158                i_v=i_v+1
4159!===============================
4160!--- 123 g026: ocs + o -> so + co
4161!===============================
4162            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
4163            *traceur(i_lev,i_ocs)*concentration(i_lev) 
4164            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4165            i_react=i_react+1
4166                i_v=i_v+1
4167!===============================
4168!--- 124 g027: s + so3 -> so2 +  so
4169!===============================
4170            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4171            *traceur(i_lev,i_so3)*concentration(i_lev) 
4172            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4173            i_react=i_react+1
4174                i_v=i_v+1
4175!===============================
4176!--- 125 g028: s + ho2 -> so +  oh
4177!===============================
4178            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4179            *traceur(i_lev,i_ho2)*concentration(i_lev) 
4180            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4181            i_react=i_react+1
4182                i_v=i_v+1
4183!===============================
4184!--- 126 g029: s + clo -> so +  cl
4185!===============================
4186            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4187            *traceur(i_lev,i_clo)*concentration(i_lev) 
4188            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4189            i_react=i_react+1
4190                i_v=i_v+1   
4191           END DO       
4192         ELSE
4193!===============================         
4194!        !!!! JOUR !!!!
4195!===============================
4196!       PRINT*,'JOUR'
4197       
4198           DO i_lev=1, n_lev
4199           i_react=1
4200           i_v=1
4201!===============================
4202!    1     o2 + hv     -> o + o
4203!===============================
4204                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
4205                rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4206                i_react=i_react+1
4207                i_v=i_v+1
4208!===============================
4209!    2     o2 + hv     -> o + o(1d)
4210!===============================
4211                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
4212                rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4213                i_react=i_react+1
4214                i_v=i_v+1
4215!===============================
4216!    3     co2 + hv    -> co + o
4217!===============================
4218            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
4219            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4220            i_react=i_react+1
4221                i_v=i_v+1
4222!===============================
4223!    4     co2 + hv    -> co + o(1d)
4224!===============================
4225            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
4226            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4227            i_react=i_react+1
4228                i_v=i_v+1
4229!===============================
4230!    5     o3 + hv     -> o2(Dg) + o(1d)
4231!===============================
4232            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
4233            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4234            i_react=i_react+1
4235                i_v=i_v+1
4236!===============================
4237!    6     o3 + hv     -> o2 + o
4238!===============================
4239            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
4240            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4241            i_react=i_react+1
4242                i_v=i_v+1
4243!===============================
4244!    7     h2o + hv    -> h + oh
4245!===============================
4246            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o)*concentration(i_lev)
4247            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4248            i_react=i_react+1
4249                i_v=i_v+1
4250!===============================
4251!    8     ho2 + hv    -> oh + o
4252!===============================
4253            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev)
4254            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4255            i_react=i_react+1
4256                i_v=i_v+1
4257!===============================
4258!    9     h2o2 + hv   -> oh + oh
4259!===============================
4260            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o2)*concentration(i_lev)
4261            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4262            i_react=i_react+1
4263                i_v=i_v+1
4264!===============================
4265!    10    hcl + hv    -> h + cl
4266!===============================
4267            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev)
4268            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4269            i_react=i_react+1
4270                i_v=i_v+1
4271!===============================
4272!    11    cl2 + hv    -> cl + cl
4273!===============================
4274            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev)
4275            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4276            i_react=i_react+1
4277                i_v=i_v+1
4278!===============================
4279!    12    hocl + hv   -> oh + cl
4280!===============================
4281            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev)
4282            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4283            i_react=i_react+1
4284                i_v=i_v+1
4285!===============================
4286!    13    so2 + hv    -> so + o
4287!===============================
4288            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev)
4289            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4290            i_react=i_react+1
4291                i_v=i_v+1
4292!===============================
4293!    14    so + hv     -> s + o
4294!===============================
4295            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev)
4296            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4297            i_react=i_react+1
4298                i_v=i_v+1
4299!===============================
4300!    15    so3 + hv    -> so2 + o
4301!===============================
4302            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev)
4303            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4304            i_react=i_react+1
4305                i_v=i_v+1
4306!===============================
4307!    16    clo + hv    -> cl + o
4308!===============================
4309            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev)
4310            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4311            i_react=i_react+1
4312                i_v=i_v+1
4313!===============================
4314!    17    ocs + hv    -> co + s
4315!===============================
4316            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ocs)*concentration(i_lev)
4317            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4318            i_react=i_react+1
4319                i_v=i_v+1
4320!===============================
4321!    18    cocl2 + hv  -> cl + cl + co
4322!===============================
4323            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cocl2)*concentration(i_lev)
4324            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4325            i_react=i_react+1
4326                i_v=i_v+1
4327!===============================
4328!    19    h2so4 + hv  -> so3 + h2o
4329!===============================
4330            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2so4)*concentration(i_lev)
4331            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4332            i_react=i_react+1
4333                i_v=i_v+1
4334!===============================
4335!    20     o(1d) + co2 -> o + co2
4336!===============================
4337            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
4338            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4339            i_react=i_react+1
4340                i_v=i_v+1
4341!===============================
4342!    21    o(1d) + o2 -> o + o2
4343!===============================
4344            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
4345            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4346            i_react=i_react+1
4347                i_v=i_v+1
4348!===============================
4349!    22    clco + co2 -> cl + co + co2
4350!===============================
4351            rate_local = vphot(i_lev,22)*traceur(i_lev,i_clco)*concentration(i_lev)
4352            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4353            i_react=i_react+1
4354                i_v=i_v+1
4355!===============================
4356!    23    s2o2 + co2 -> 2so + co2
4357!===============================
4358            rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)
4359            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4360            i_react=i_react+1
4361                i_v=i_v+1
4362!===============================
4363!    24    s2 + co2 -> 2s + co2
4364!===============================
4365            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
4366            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4367            i_react=i_react+1
4368                i_v=i_v+1
4369!===============================
4370!    25    ICE
4371!===============================
4372            i_react=i_react+1
4373                i_v=i_v+1
4374!===============================
4375!    26    ICE
4376!===============================
4377            i_react=i_react+1
4378                i_v=i_v+1 
4379!===============================
4380!    27    ICE
4381!===============================
4382            i_react=i_react+1
4383                i_v=i_v+1 
4384!===============================
4385!    28    ICE
4386!===============================
4387            i_react=i_react+1
4388                i_v=i_v+1 
4389!===============================
4390!    29    ICE
4391!===============================
4392            i_react=i_react+1
4393                i_v=i_v+1 
4394!===============================
4395!    30    o2(Dg) + CO2 -> O2 + CO2 + hv
4396!===============================
4397            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
4398            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4399            i_react=i_react+1
4400                i_v=i_v+1
4401!===============================
4402!    31    o2(Dg) -> O2 + hv
4403!===============================
4404            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
4405            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4406            i_react=i_react+1
4407                i_v=i_v+1
4408               
4409! DEBUT DES REACTION V3
4410                i_v = i_v - nb_phot_max
4411!===============================
4412!--- 32 a002: o + o + co2 -> o2 + co2
4413!===============================
4414            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
4415            *traceur(i_lev,i_o)*concentration(i_lev)
4416            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4417            i_react=i_react+1
4418                i_v=i_v+1
4419!===============================
4420!--- 33 c008: ho2 + ho2 -> h2o2 + o2
4421!===============================
4422            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
4423            *traceur(i_lev,i_ho2)*concentration(i_lev)
4424            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4425            i_react=i_react+1
4426                i_v=i_v+1
4427!===============================
4428!--- 34 c013: oh + oh -> h2o + o
4429!===============================
4430            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4431            *traceur(i_lev,i_oh)*concentration(i_lev)
4432            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4433            i_react=i_react+1
4434                i_v=i_v+1
4435!===============================
4436!--- 35 c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
4437!===============================
4438            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
4439            *traceur(i_lev,i_ho2)*concentration(i_lev)
4440            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4441            i_react=i_react+1
4442                i_v=i_v+1
4443!===============================
4444!--- 36 c017: oh + oh + co2 -> h2o2 + co2
4445!===============================
4446            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4447            *traceur(i_lev,i_oh)*concentration(i_lev)
4448            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4449            i_react=i_react+1
4450                i_v=i_v+1
4451!===============================
4452!--- 37 c018: h + h + co2 -> h2 + co2
4453!===============================
4454            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
4455            *traceur(i_lev,i_h)*concentration(i_lev)
4456            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4457            i_react=i_react+1
4458                i_v=i_v+1
4459!===============================
4460!--- 38 f021: cl + cl + co2 -> cl2 + co2
4461!===============================
4462            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4463            *traceur(i_lev,i_cl)*concentration(i_lev)
4464            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4465            i_react=i_react+1
4466                i_v=i_v+1
4467!===============================
4468!--- 39 f026: clco + clco  -> cocl2 + co
4469!===============================
4470            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
4471            *traceur(i_lev,i_clco)*concentration(i_lev)
4472            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4473            i_react=i_react+1
4474                i_v=i_v+1
4475!===============================
4476!--- 40 f030: clso2 + clso2  -> cl2 + so2 + so2
4477!===============================
4478            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
4479            *traceur(i_lev,i_clso2)*concentration(i_lev)
4480            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4481            i_react=i_react+1
4482                i_v=i_v+1
4483!===============================
4484!--- 41 g015: so + so + co2 -> s2o2 + co2
4485!===============================
4486            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4487            *traceur(i_lev,i_so)*concentration(i_lev)
4488            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4489            i_react=i_react+1
4490                i_v=i_v+1
4491!===============================
4492!--- 42 g022: s + s + co2 -> s2 + co2
4493!===============================
4494            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4495            *traceur(i_lev,i_s)*concentration(i_lev)
4496            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4497            i_react=i_react+1
4498                i_v=i_v+1
4499
4500! DEBUT DES REACTION V4
4501
4502                i_v = i_v - nb_reaction_3_max
4503
4504!===============================
4505!--- 43 a001: o + o2 + co2 -> o3 + co2
4506!===============================
4507            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
4508            *traceur(i_lev,i_o)*concentration(i_lev)
4509            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4510            i_react=i_react+1
4511                i_v=i_v+1
4512!===============================
4513!--- 44 a003: o + o3 -> o2 + o2
4514!===============================
4515            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
4516            *traceur(i_lev,i_o)*concentration(i_lev) 
4517            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4518            i_react=i_react+1
4519                i_v=i_v+1
4520!===============================
4521!--- 45 b002: o(1d) + h2o  -> oh + oh
4522!===============================
4523            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
4524            *traceur(i_lev,i_h2o)*concentration(i_lev) 
4525            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4526            i_react=i_react+1
4527                i_v=i_v+1
4528!===============================
4529!--- 46 b003: o(1d) + h2  -> oh + h
4530!===============================
4531            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
4532            *traceur(i_lev,i_h2)*concentration(i_lev) 
4533            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4534            i_react=i_react+1
4535                i_v=i_v+1
4536!===============================
4537!--- 47 b005: o(1d) + o3  -> o2 + o2
4538!===============================
4539            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
4540            *traceur(i_lev,i_o3)*concentration(i_lev)
4541            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4542            i_react=i_react+1
4543                i_v=i_v+1
4544!===============================
4545!--- 48 b006: o(1d) + o3  -> o2 + o + o
4546!===============================
4547            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
4548            *traceur(i_lev,i_o3)*concentration(i_lev)
4549            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4550            i_react=i_react+1
4551                i_v=i_v+1
4552!===============================
4553!--- 49 c001: o + ho2 -> oh + o2
4554!===============================
4555            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
4556            *traceur(i_lev,i_ho2)*concentration(i_lev)
4557            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4558            i_react=i_react+1
4559                i_v=i_v+1
4560!===============================
4561!--- 50 c002: o + oh -> o2 + h
4562!===============================
4563            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
4564            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4565            i_react=i_react+1
4566                i_v=i_v+1
4567!===============================
4568!--- 51 c003: h + o3 -> oh + o2
4569!===============================
4570            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
4571            *traceur(i_lev,i_o3)*concentration(i_lev)
4572            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4573            i_react=i_react+1
4574                i_v=i_v+1
4575!===============================
4576!--- 52 c004: h + ho2 -> oh + oh
4577!===============================
4578            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
4579            *traceur(i_lev,i_ho2)*concentration(i_lev)
4580            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4581            i_react=i_react+1
4582                i_v=i_v+1
4583!===============================
4584!--- 53 c005: h + ho2 -> h2 + o2
4585!===============================
4586            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
4587            *traceur(i_lev,i_ho2)*concentration(i_lev)
4588            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4589            i_react=i_react+1
4590                i_v=i_v+1
4591!===============================
4592!--- 54 c006: h + ho2 -> h2o + o
4593!===============================
4594            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
4595            *traceur(i_lev,i_ho2)*concentration(i_lev)
4596            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4597            i_react=i_react+1
4598                i_v=i_v+1
4599!===============================
4600!--- 55 c007: oh + ho2 -> h2o + o2
4601!===============================
4602            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4603            *traceur(i_lev,i_ho2)*concentration(i_lev)
4604            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4605            i_react=i_react+1
4606                i_v=i_v+1
4607!===============================
4608!--- 56 c009: oh + h2o2 -> h2o + ho2
4609!===============================
4610            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4611            *traceur(i_lev,i_h2o2)*concentration(i_lev)
4612            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4613            i_react=i_react+1
4614                i_v=i_v+1
4615!===============================
4616!--- 57 c010: oh + h2 -> h2o + h
4617!===============================
4618            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4619            *traceur(i_lev,i_h2)*concentration(i_lev)
4620            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4621            i_react=i_react+1
4622                i_v=i_v+1
4623!===============================
4624!--- 58 c011: h + o2 + co2 -> ho2 + co2
4625!===============================
4626            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
4627            *traceur(i_lev,i_h)*concentration(i_lev)
4628            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4629            i_react=i_react+1
4630                i_v=i_v+1
4631!===============================
4632!--- 59 c012: o + h2o2 -> oh + ho2
4633!===============================
4634            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
4635            *traceur(i_lev,i_h2o2)*concentration(i_lev)
4636            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4637            i_react=i_react+1
4638                i_v=i_v+1
4639!===============================
4640!--- 60 c014: oh + o3 -> ho2 + o2
4641!===============================
4642            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4643            *traceur(i_lev,i_o3)*concentration(i_lev)
4644            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4645            i_react=i_react+1
4646                i_v=i_v+1
4647!===============================
4648!--- 61 c015: ho2 + o3 -> oh + o2 + o2
4649!===============================
4650            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
4651            *traceur(i_lev,i_ho2)*concentration(i_lev)
4652            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4653            i_react=i_react+1
4654                i_v=i_v+1
4655!===============================
4656!--- 62 e001: oh + co -> co2 + h
4657!===============================
4658            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
4659            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4660            i_react=i_react+1
4661                i_v=i_v+1
4662!===============================
4663!--- 63 e002: o + co + m -> co2 + m
4664!===============================
4665            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
4666            *traceur(i_lev,i_co)*concentration(i_lev)
4667            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4668            i_react=i_react+1
4669                i_v=i_v+1
4670!===============================
4671!--- 64 f001: hcl + o(1d) -> oh + cl
4672!===============================
4673            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
4674            *traceur(i_lev,i_o1d)*concentration(i_lev)
4675            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4676            i_react=i_react+1
4677                i_v=i_v+1
4678!===============================
4679!--- 65 f002: hcl + o(1d) -> h + clo
4680!===============================
4681            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
4682            *traceur(i_lev,i_o1d)*concentration(i_lev)
4683            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4684            i_react=i_react+1
4685                i_v=i_v+1
4686!===============================
4687!--- 66 f003: hcl + o -> oh + cl
4688!===============================
4689            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
4690            *traceur(i_lev,i_o)*concentration(i_lev)
4691            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4692            i_react=i_react+1
4693                i_v=i_v+1
4694!===============================
4695!--- 67 f004: hcl + oh -> h2o + cl
4696!===============================
4697            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
4698            *traceur(i_lev,i_oh)*concentration(i_lev)
4699            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4700            i_react=i_react+1
4701                i_v=i_v+1
4702!===============================
4703!--- 68 f005: clo + o -> cl + o2
4704!===============================
4705            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
4706            *traceur(i_lev,i_o)*concentration(i_lev)
4707            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4708            i_react=i_react+1
4709                i_v=i_v+1
4710!===============================
4711!--- 69 f006: clo + oh -> cl + ho2
4712!===============================
4713            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
4714            *traceur(i_lev,i_oh)*concentration(i_lev)
4715            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4716            i_react=i_react+1
4717                i_v=i_v+1
4718!===============================
4719!--- 70 f007: clo + oh -> hcl + o2
4720!===============================
4721            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
4722            *traceur(i_lev,i_oh)*concentration(i_lev)
4723            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4724            i_react=i_react+1
4725                i_v=i_v+1
4726!===============================
4727!--- 71 f008: cl + h2 -> hcl + h
4728!===============================
4729            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4730            *traceur(i_lev,i_h2)*concentration(i_lev)
4731            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4732            i_react=i_react+1
4733                i_v=i_v+1
4734!===============================
4735!--- 72 f009: cl + o3 -> clo + o2
4736!===============================
4737            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4738            *traceur(i_lev,i_o3)*concentration(i_lev)
4739            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4740            i_react=i_react+1
4741                i_v=i_v+1
4742!===============================
4743!--- 73 f010: cl + ho2 -> clo + oh
4744!===============================
4745            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4746            *traceur(i_lev,i_ho2)*concentration(i_lev)
4747            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4748            i_react=i_react+1
4749                i_v=i_v+1
4750!===============================
4751!--- 74 f011: cl + ho2 -> hcl + o2
4752!===============================
4753            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4754            *traceur(i_lev,i_ho2)*concentration(i_lev)
4755            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4756            i_react=i_react+1
4757                i_v=i_v+1
4758!===============================
4759!--- 75 f012: cl + h2o2 -> hcl + ho2
4760!===============================
4761            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4762            *traceur(i_lev,i_h2o2)*concentration(i_lev)
4763            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4764            i_react=i_react+1
4765                i_v=i_v+1
4766!===============================
4767!--- 76 f013: cl + co + co2 -> clco + co2
4768!===============================
4769            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4770            *traceur(i_lev,i_co)*concentration(i_lev)
4771            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4772            i_react=i_react+1
4773                i_v=i_v+1
4774!===============================
4775!--- 77 f015: clco + o2 + m -> clco3 + m
4776!===============================
4777                rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
4778            *traceur(i_lev,i_clco)*concentration(i_lev)
4779            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4780            i_react=i_react+1
4781                i_v=i_v+1
4782!===============================
4783!--- 78 & 79 f016: clco3 + cl -> cl + clo + co2
4784!===============================
4785!     decomposee en :
4786!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
4787!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
4788            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
4789            *traceur(i_lev,i_cl)*concentration(i_lev)
4790            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4791            i_react=i_react+1
4792                i_v=i_v+1
4793           
4794            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
4795            *traceur(i_lev,i_cl)*concentration(i_lev)
4796            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4797            i_react=i_react+1
4798                i_v=i_v+1
4799!===============================
4800!--- 80 & 81 f017: clco3 + o -> cl + o2 + co2
4801!===============================
4802!     decomposee en :
4803!     0.5 clco3 + 0.5 o -> cl
4804!     0.5 clco3 + 0.5 o -> o2 + co2
4805            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
4806            *traceur(i_lev,i_o)*concentration(i_lev)
4807            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4808            i_react=i_react+1
4809                i_v=i_v+1
4810           
4811            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
4812            *traceur(i_lev,i_o)*concentration(i_lev)
4813            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4814            i_react=i_react+1
4815                i_v=i_v+1
4816!===============================
4817!--- 82 f018: clo + ho2  -> hocl + o2
4818!===============================
4819            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
4820            *traceur(i_lev,i_ho2)*concentration(i_lev) 
4821            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4822            i_react=i_react+1
4823                i_v=i_v+1
4824!===============================
4825!--- 83 f019: oh + hocl -> h2o + clo
4826!===============================
4827            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
4828            *traceur(i_lev,i_hocl)*concentration(i_lev) 
4829            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4830            i_react=i_react+1
4831                i_v=i_v+1
4832!===============================
4833!--- 84 f020: o + hocl -> oh + clo
4834!===============================
4835            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev) &
4836            *traceur(i_lev,i_o)*concentration(i_lev) 
4837            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4838            i_react=i_react+1
4839                i_v=i_v+1
4840!===============================
4841!--- 85 f022: clco + o -> cl + co2
4842!===============================
4843            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
4844            *traceur(i_lev,i_o)*concentration(i_lev) 
4845            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4846            i_react=i_react+1
4847                i_v=i_v+1
4848!===============================
4849!--- 86 f023: cl2 + o(1d) -> cl + clo
4850!===============================
4851            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
4852            *traceur(i_lev,i_o1d)*concentration(i_lev) 
4853            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4854            i_react=i_react+1
4855                i_v=i_v+1
4856!===============================
4857!--- 87 f024: cl2 + h  -> hcl + cl
4858!==============================
4859            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
4860            *traceur(i_lev,i_h)*concentration(i_lev) 
4861            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4862            i_react=i_react+1
4863                i_v=i_v+1
4864!===============================
4865!--- 88 f025: cl + clco  -> cl2 + co
4866!===============================
4867            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4868            *traceur(i_lev,i_clco)*concentration(i_lev) 
4869            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4870            i_react=i_react+1
4871                i_v=i_v+1
4872!===============================
4873!--- 89 f027: cl + so2 + co2  -> clso2 + co2
4874!===============================
4875            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
4876            *traceur(i_lev,i_cl)*concentration(i_lev) 
4877            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4878            i_react=i_react+1
4879                i_v=i_v+1
4880!===============================
4881!--- 90 f028: clso2 + o  -> so2 + clo
4882!===============================
4883            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
4884            *traceur(i_lev,i_o)*concentration(i_lev) 
4885            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4886            i_react=i_react+1
4887                i_v=i_v+1
4888!===============================
4889!--- 91 f029: clso2 + h  -> so2 + hcl
4890!===============================
4891            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
4892            *traceur(i_lev,i_h)*concentration(i_lev) 
4893            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4894            i_react=i_react+1
4895                i_v=i_v+1
4896!===============================
4897!--- 92 f031: cl + o + co2  -> clo + co2
4898!===============================
4899            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4900            *traceur(i_lev,i_o)*concentration(i_lev) 
4901            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4902            i_react=i_react+1
4903                i_v=i_v+1
4904!===============================
4905!--- 93 f032: cl2 + o -> clo + cl
4906!===============================
4907            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
4908            *traceur(i_lev,i_o)*concentration(i_lev) 
4909            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4910            i_react=i_react+1
4911                i_v=i_v+1
4912!===============================
4913!--- 94 f033: clco + oh -> hocl + co
4914!===============================
4915            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
4916            *traceur(i_lev,i_oh)*concentration(i_lev) 
4917            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4918            i_react=i_react+1
4919                i_v=i_v+1
4920!===============================
4921!--- 95 f034: cl2 + oh -> cl + hocl
4922!===============================
4923            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
4924            *traceur(i_lev,i_oh)*concentration(i_lev) 
4925            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4926            i_react=i_react+1
4927                i_v=i_v+1
4928!===============================
4929!--- 96 f035: clco + o -> co + clo
4930!===============================
4931            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
4932            *traceur(i_lev,i_o)*concentration(i_lev) 
4933            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4934            i_react=i_react+1
4935                i_v=i_v+1
4936!===============================
4937!--- 97 f036: clco + cl2 -> cocl2 + cl
4938!===============================
4939            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
4940            *traceur(i_lev,i_clco)*concentration(i_lev) 
4941            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4942            i_react=i_react+1
4943                i_v=i_v+1
4944!===============================
4945!--- 98 f037: hcl + h -> h2 + cl
4946!===============================
4947            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
4948            *traceur(i_lev,i_h)*concentration(i_lev) 
4949            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4950            i_react=i_react+1
4951                i_v=i_v+1
4952!===============================
4953!--- 99 f038: clco + h -> hcl + co
4954!===============================
4955            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
4956            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4957            i_react=i_react+1
4958                i_v=i_v+1
4959!===============================
4960!--- 100 f039: cl + h + m -> hcl + m
4961!===============================
4962            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
4963            *traceur(i_lev,i_h)*concentration(i_lev) 
4964            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4965            i_react=i_react+1
4966                i_v=i_v+1
4967!===============================
4968!--- 101 g001: s + o2 -> so + o
4969!===============================
4970            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4971            *traceur(i_lev,i_o2)*concentration(i_lev) 
4972            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4973            i_react=i_react+1
4974                i_v=i_v+1
4975!===============================
4976!--- 102 g002: s + o3 -> so + o2
4977!===============================
4978            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
4979            *traceur(i_lev,i_o3)*concentration(i_lev) 
4980            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4981            i_react=i_react+1
4982                i_v=i_v+1
4983!===============================
4984!--- 103 g003: so + o2 -> so2 + o
4985!===============================
4986             rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4987            *traceur(i_lev,i_o2)*concentration(i_lev) 
4988            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4989            i_react=i_react+1
4990                i_v=i_v+1
4991!===============================
4992!--- 104 g004: so + o3 -> so2 + o2
4993!===============================
4994            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
4995            *traceur(i_lev,i_o3)*concentration(i_lev) 
4996            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
4997            i_react=i_react+1
4998                i_v=i_v+1
4999!===============================
5000!--- 105 g005: so + oh -> so2 + h
5001!===============================
5002            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5003            *traceur(i_lev,i_oh)*concentration(i_lev) 
5004            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5005            i_react=i_react+1
5006                i_v=i_v+1
5007!===============================
5008!--- 106 g006: s + oh -> so + h
5009!===============================
5010            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5011            *traceur(i_lev,i_oh)*concentration(i_lev) 
5012            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5013            i_react=i_react+1
5014                i_v=i_v+1
5015!===============================
5016!--- 107 g007: so + o + co2 -> so2 + co2
5017!===============================
5018            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5019            *traceur(i_lev,i_o)*concentration(i_lev) 
5020            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5021            i_react=i_react+1
5022                i_v=i_v+1
5023!===============================
5024!--- 108 g008: so + ho2 -> so2 + oh
5025!===============================
5026            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5027            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5028            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5029            i_react=i_react+1
5030                i_v=i_v+1
5031!===============================
5032!--- 109 g009: so2 + o + co2 -> so3 + co2
5033!===============================
5034            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5035            *traceur(i_lev,i_o)*concentration(i_lev) 
5036            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5037            i_react=i_react+1
5038                i_v=i_v+1
5039!===============================
5040!--- 110 g010: s + o + co2 -> so + co2
5041!===============================
5042            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5043            *traceur(i_lev,i_o)*concentration(i_lev) 
5044            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5045            i_react=i_react+1
5046                i_v=i_v+1
5047!===============================
5048!--- 111 g011: so3 + h2o -> h2so4
5049!===============================
5050            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
5051            *traceur(i_lev,i_h2o)*concentration(i_lev) 
5052            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5053            i_react=i_react+1
5054                i_v=i_v+1
5055!===============================
5056!--- 112 g012: so + clo -> so2 + cl
5057!===============================
5058            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5059            *traceur(i_lev,i_clo)*concentration(i_lev) 
5060            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5061            i_react=i_react+1
5062                i_v=i_v+1
5063!===============================
5064!--- 113 g013: so + so3 -> so2 + so2
5065!===============================
5066            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5067            *traceur(i_lev,i_so3)*concentration(i_lev) 
5068            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5069            i_react=i_react+1
5070                i_v=i_v+1
5071!===============================
5072!--- 114 g014: so3 + o -> so2 + o2
5073!===============================
5074            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
5075            *traceur(i_lev,i_o)*concentration(i_lev) 
5076            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5077            i_react=i_react+1
5078                i_v=i_v+1
5079!===============================
5080!--- 115 & 116 g017: clco3 + so -> cl + so2 + co2
5081!===============================
5082!     decomposee en :
5083!     0.5 clco3 + 0.5 so -> cl
5084!     0.5 clco3 + 0.5 so -> so2 + co2
5085            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5086            *traceur(i_lev,i_so)*concentration(i_lev) 
5087            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5088            i_react=i_react+1
5089                i_v=i_v+1
5090           
5091            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5092            *traceur(i_lev,i_so)*concentration(i_lev) 
5093            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5094            i_react=i_react+1
5095                i_v=i_v+1
5096!===============================
5097!--- 117 g018: s + co + co2 -> ocs + co2
5098!===============================
5099            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5100            *traceur(i_lev,i_co)*concentration(i_lev) 
5101            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5102            i_react=i_react+1
5103                i_v=i_v+1
5104!===============================
5105!--- 118 g019: clco + s -> ocs + cl
5106!===============================
5107            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5108            *traceur(i_lev,i_s)*concentration(i_lev) 
5109            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5110            i_react=i_react+1
5111                i_v=i_v+1
5112!===============================
5113!--- 119 g020: so2 + oh + co2 -> hso3 + co2
5114!===============================
5115            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5116            *traceur(i_lev,i_oh)*concentration(i_lev) 
5117            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5118            i_react=i_react+1
5119                i_v=i_v+1
5120!===============================
5121!--- 120 g021: hso3 + o2 -> ho2 + so3
5122!===============================
5123            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5124            *traceur(i_lev,i_hso3)*concentration(i_lev) 
5125            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5126            i_react=i_react+1
5127                i_v=i_v+1
5128!===============================
5129!--- 121 g024: s2 + o -> so + s
5130!===============================
5131            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev) &
5132            *traceur(i_lev,i_o)*concentration(i_lev) 
5133            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5134            i_react=i_react+1
5135                i_v=i_v+1
5136!===============================
5137!--- 122 g025: s + ocs -> s2 +  co
5138!===============================
5139            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5140            *traceur(i_lev,i_ocs)*concentration(i_lev) 
5141            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5142            i_react=i_react+1
5143                i_v=i_v+1
5144!===============================
5145!--- 123 g026: ocs + o -> so + co
5146!===============================
5147            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5148            *traceur(i_lev,i_ocs)*concentration(i_lev) 
5149            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5150            i_react=i_react+1
5151                i_v=i_v+1
5152!===============================
5153!--- 124 g027: s + so3 -> so2 +  so
5154!===============================
5155            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5156            *traceur(i_lev,i_so3)*concentration(i_lev) 
5157            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5158            i_react=i_react+1
5159                i_v=i_v+1
5160!===============================
5161!--- 125 g028: s + ho2 -> so +  oh
5162!===============================
5163            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5164            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5165            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5166            i_react=i_react+1
5167                i_v=i_v+1
5168!===============================
5169!--- 126 g029: s + clo -> so +  cl
5170!===============================
5171            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5172            *traceur(i_lev,i_clo)*concentration(i_lev) 
5173            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5174            i_react=i_react+1
5175                i_v=i_v+1
5176           END DO
5177         END IF
5178         cpt_time_rate = cpt_time_rate + 1
5179     
5180      END IF
5181           
5182      IF (cpt_time .EQ. (time_tot+nbr_pdt)) THEN
5183               OPEN(100,file='profile_rate_day.csv')
5184               DO i_lev=1,n_lev
5185               write (100,"(128(e15.8,','))")pres(i_lev), temperature(i_lev), (rate_day(i_lev,i_react),i_react=1,126)
5186               END DO
5187               
5188               OPEN(101,file='profile_rate_night.csv')
5189               DO i_lev=1,n_lev
5190               write (101,"(128(e15.8,','))") pres(i_lev), temperature(i_lev), (rate_night(i_lev,i_react),i_react=1,126)
5191               END DO
5192               
5193               OPEN(102,file='profile_rate_fullday.csv')
5194               rate_day=(rate_day+rate_night)/2.
5195               DO i_lev=1,n_lev
5196               write (102,"(128(e15.8,','))") pres(i_lev), temperature(i_lev), (rate_day(i_lev,i_react),i_react=1,126)
5197               END DO
5198               
5199               PRINT*,"pression top",pres(n_lev)
5200               PRINT*,"temp top",temperature(n_lev)
5201               
5202      END IF
5203     
5204      cpt_time = cpt_time + 1
5205     
5206      END     
Note: See TracBrowser for help on using the repository browser.