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

Last change on this file since 2745 was 2622, checked in by slebonnois, 3 years ago

SL: VENUS update (i) bug correction (2 bugs, phytrac and physiq), affected meam molec mass computations... (ii) updates for VCD 2.0 (iii) aeropacity: for latitudinal variations of the cloud distribution

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