source: trunk/LMDZ.VENUS/libf/phyvenus/new_photochemistry_venus.F90 @ 1723

Last change on this file since 1723 was 1621, checked in by emillour, 8 years ago

Further work on full dynamics/physics separation.

LMDZ.COMMON:

  • added phy_common/vertical_layers_mod.F90 to store information on vertical grid. This is where routines in the physics should get the information.
  • The contents of vertical_layers_mod intialized via dynphy_lonlat/inigeomphy_mod.F90.

LMDZ.MARS:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • created an "ini_tracer_mod" routine in module "tracer_mod" for a cleaner initialization of the later.
  • removed some purely dynamics-related outputs (etot0, zoom parameters, etc.) from diagfi.nc and stats.nc outputs as these informations are not available in the physics.

LMDZ.GENERIC:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • added nqtot to tracer_h.F90.
  • removed some purely dynamics-related outputs (etot0, zoom parameters, etc.) from diagfi.nc and stats.nc outputs as these informations are not available in the physics.

LMDZ.VENUS:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • added infotrac_phy.F90 to store information on tracers in the physics. Initialized via iniphysiq.
  • added cpdet_phy_mod.F90 to store t2tpot etc. functions to be used in the physics. Initialized via iniphysiq. IMPORTANT: there are some hard-coded constants! These should match what is in cpdet_mod.F90 in the dynamics.
  • got rid of references to moyzon_mod module within the physics. The required variables (tmoy, plevmoy) are passed to the physics as arguments to physiq.

LMDZ.TITAN:

  • added infotrac_phy.F90 to store information on tracers in the physics. Initialized via iniphysiq.
  • added cpdet_phy_mod.F90 to store t2tpot etc. functions to be used in the physics.
  • Extra work required to completely decouple physics and dynamics: moyzon_mod should be cleaned up and information passed from dynamics to physics as as arguments. Likewise moyzon_ch and moyzon_mu should not be queried from logic_mod (which is in the dynamics).

EM

File size: 230.3 KB
Line 
1! STOLZENBACH Aurélien 10/12/2012
2! Reprise du modèle de photochimie 1D de Frank Lefèvre.
3! Couplage avec le LMDZ_VENUS
4 SUBROUTINE new_photochemistry_venus(nz, n_lon, ptimestep, p, t ,tr, mumean, sza_input, nesp)
5
6 USE chemparam_mod
7     
8 implicit none
9
10 INTEGER :: nz
11 INTEGER :: nesp
12 INTEGER :: n_lon  ! n_lon utile pr différencier 3D/1D
13 REAL, PARAMETER :: eps = 1.  ! mole/cm3 init a 1 pour eviter /0.
14 LOGICAL, SAVE :: first_call = .true.
15
16real, dimension(nz)  ::  conc
17real, dimension(nz)  :: mumean  ! [g/mol]
18real, dimension(nz)  :: surfice1d, surfdust1d
19
20! photolysis lookup table
21
22integer, parameter :: nj = 19, nztable = 201, nsza = 27, nso2 = 13
23real, dimension(nso2,nsza,nztable,nj), save :: jphot
24real, dimension(nztable), save :: table_colair
25real, dimension(nso2,nztable), save :: table_colso2
26real, dimension(nsza), save :: table_sza
27
28! Compteurs et divers
29
30integer :: ij, i, iesp, jesp, iz, iiz
31
32! matrix
33
34real, dimension(nesp,nesp) :: mat
35integer                    :: code
36integer, dimension(nesp)   :: indx
37
38! number densities
39
40real, dimension(nz,nesp) :: c
41real, dimension(nz,nesp) :: cold
42real, dimension(nz,nesp) :: cnew
43     
44! dates, angles
45
46real :: ptimestep, ctimestep
47real :: dist_sol, sza_input
48integer :: iter
49integer :: phychemrat
50integer, dimension(nz)  :: cpt
51
52real, dimension(nz)  :: p  ! pression pour le mileu de chaque couche (en hPa)
53real, dimension(nz)  :: t ! temperature
54real, dimension(nz, nesp) :: tr ! traceur
55
56real    :: ratio, curv, e, e1, e2, e3
57real    :: time, dtg, dt, dtmin, dt_guess, dt_corrected
58
59!===================================================================
60!     switches for heterogeneous chemistry
61!     hetero_ice  : reactions on ice clouds
62!     hetero_dust : reactions on dust
63!===================================================================
64
65logical,parameter :: hetero_ice  = .false.
66logical,parameter :: hetero_dust = .false.
67
68! reaction rates and indices
69
70integer, parameter :: nb_phot_max = 32
71integer, parameter :: nb_reaction_3_max = 12
72integer, parameter :: nb_reaction_4_max = 87
73
74real, dimension(6*nb_phot_max) :: indice_phot
75real, dimension(6*nb_reaction_3_max) :: indice_3
76real, dimension(8*nb_reaction_4_max) :: indice_4
77
78real, dimension(nz,nb_phot_max) :: v_phot
79real, dimension(nz,nb_reaction_3_max) :: v_3
80real, dimension(nz,nb_reaction_4_max) :: v_4
81
82real, dimension(nb_reaction_4_max) :: eps_4
83
84     
85! ctimestep : pas de temps chimique nominal (s)
86
87phychemrat = 1
88ctimestep  = ptimestep/real(phychemrat)
89
90! dtmin : pas de temps minimum (s)
91
92dtmin = 1.
93
94! dist_sol : distance venus - soleil
95
96dist_sol = 0.72333
97
98! initialisation des especes
99
100if (first_call) then
101   call init_chimie(nj, nztable, nsza, nso2, jphot, table_colair, table_colso2, table_sza)
102
103   first_call = .false.
104
105! Initialisation des surfaces glaces et poussieres (a revoir car pas save et hetero_ice = false, probleme?)
106
107   do iz=1, nz
108      surfice1d(iz)  = 0.
109      surfdust1d(iz) = 0.
110   end do
111end if
112
113! Initialisation des conc et cold en molecule.cm-3
114
115do iz = 1,nz
116   conc(iz) = p(iz)/(1.38E-19*t(iz))
117   c(iz,:) = tr(iz,:)*conc(iz)
118   cold(iz,:) = c(iz,:)     
119end do
120     
121!      IF (n_lon .EQ. 98) THEN
122!      PRINT*,'CO init',tr(:,i_co)
123!      END IF
124     
125cpt(:) = 0
126
127! initialisation des indices
128                                                 
129call indice(nb_phot_max, nb_reaction_3_max, nb_reaction_4_max,  &
130            indice_phot, indice_3, indice_4)
131                   
132! coefficients de photodissociation
133!   PRINT*,'sza_input avant phot: ',sza_input
134
135call phot(nj, nztable, nsza, nso2, sza_input, dist_sol, mumean,tr(:,i_co2), tr(:,i_so2),         &
136          jphot, table_colair, table_colso2, table_sza, nz, nb_phot_max, t, p, v_phot)
137
138! vitesses de reaction
139                   
140call krates(hetero_ice,hetero_dust, nz, nesp, nj, c, conc, t, p, nb_phot_max, nb_reaction_3_max, &
141            nb_reaction_4_max, v_3, v_4, v_phot,sza_input)
142
143!      IF (n_lon .EQ. 98) THEN
144!      DO iiz=1, nz
145!      PRINT*,'v_phot de iiz', iiz, v_phot(iiz,:)
146!      END DO
147!      PRINT*,'temperature', t
148!      END IF
149       
150! boucle sur les niveaux
151
152   DO iz = 1,nz
153
154! iteractions chimiques internes
155
156      time = 0.
157      iter = 0
158
159! initialisation du pas de temps du first-guess
160
161      dt_guess = ctimestep
162         
163      do while (time < ptimestep)
164     
165      iter = iter + 1
166      cpt(iz) = cpt(iz) + 1
167
168! coefficient d'implicité
169                 
170      call fill_eps(iz, nz, nesp, c, nb_reaction_4_max, eps_4)
171
172                   
173! first guess : remplissage de la matrice
174      call fill_matrix(iz, dt_guess, nz, nesp, v_phot, v_3, v_4, eps_4, c,nb_phot_max, nb_reaction_3_max, &
175                       nb_reaction_4_max, indice_phot, indice_3, indice_4, mat)
176
177! first guess : resolution du systeme lineaire
178   
179      cnew(iz,:) = c(iz,:)
180#ifdef LAPACK
181      call dgesv(nesp,1,mat,nesp,indx,cnew(iz,:),nesp,code)
182#else
183   write(*,*) "new_photochemistry_venus error, missing LAPACK routine dgesv"
184   stop
185#endif
186! eliminate small values
187
188      where (cnew(iz,:)/conc(iz) < 1.E-30)
189         cnew(iz,:) = 0.
190      end where
191     
192     
193
194! test O/(O + O3)
195
196      ratio = 1.   ! rapport entre pas de temps courant/pas de temps du guess
197      curv = 2.*(ratio*cnew(iz,i_o) - (1. + ratio)*c(iz,i_o) + cold(iz,i_o)) &
198             /(1. + ratio)
199             e1 = (curv/(cnew(iz,i_o) + cnew(iz,i_o3) + eps))*100.0E+0
200     
201      e1 = abs(e1)
202
203! test HO2/(H + OH + HO2 + 2*H2O2)
204
205      ratio = 1.   ! rapport entre pas de temps courant/pas de temps du guess
206      curv = 2.*(ratio*cnew(iz,i_ho2) - (1. + ratio)*c(iz,i_ho2) + cold(iz,i_ho2)) &
207             /(1. + ratio)
208             e2 = (curv/(cnew(iz,i_h) + cnew(iz,i_oh) + cnew(iz,i_ho2) + &
209             2.*cnew(iz,i_h2o2)+ eps))*100.0E+0
210     
211      e2 = abs(e2)
212
213! test SO/(S + SO + SO2)
214 
215      ratio = 1.
216      curv = 2.*(ratio*cnew(iz,i_so) - (1. + ratio)*c(iz,i_so) + cold(iz,i_so)) &
217             /(1. + ratio)
218             e3 = (curv/(cnew(iz,i_s) + cnew(iz,i_so) + cnew(iz,i_so2)+ eps))*100.0E+0
219     
220      e3 = abs(e3)
221
222! modification du pas de temps
223
224      e = max(e1, e2)
225      e = max(e,  e3)
226      e = max(e, 0.1)
227      dtg = max(0.001, min(2.5,0.8/sqrt(e)))
228!     dtg = 1.         ! décommenter pour désactiver two-step
229      dt_corrected = max(dtmin,dtg*dt_guess)
230      dt_corrected = min(dt_corrected,ctimestep)
231
232      if (time + dt_corrected > ptimestep) then
233         dt_corrected = ptimestep - time
234      end if
235
236      if (dt_corrected /= dt_guess) then  ! alors le pas de temps a été modifié
237
238!     remplissage de la matrix
239         call fill_matrix(iz, dt_corrected, nz, nesp, v_phot, v_3, v_4, eps_4, c,nb_phot_max, nb_reaction_3_max,  &
240                          nb_reaction_4_max, indice_phot, indice_3, indice_4, mat)
241
242!     resolution du systeme lineaire
243   
244         cnew(iz,:) = c(iz,:)
245#ifdef LAPACK
246         call dgesv(nesp,1,mat,nesp,indx,cnew(iz,:),nesp,code)
247#else
248   write(*,*) "new_photochemistry_venus error, missing LAPACK routine dgesv"
249   stop
250#endif
251
252      end if
253
254!     eliminate small values
255
256      where (cnew(iz,:)/conc(iz) < 1.E-30)
257         cnew(iz,:) = 0.
258      end where
259
260      cold(iz,:)  = c(iz,:)
261      c(iz,:)   = cnew(iz,:)
262      cnew(iz,:) = 0.0E+0
263
264      time = time + dt_corrected
265      dt_guess = dt_corrected ! pour first-guess à la prochaine iteration
266
267!      DO iesp=1, nesp
268!      IF (c(iz,iesp)/conc(iz).GT.1.0) THEN
269!        PRINT*,'!!!! PROBLEM CHIMIE !!!!'
270!        PRINT*,'!!!! PROBLEM TRAC    !!!!'
271!        DO i=1,nesp
272!          PRINT*,tname(i),c(iz,i)/conc(iz)
273!          PRINT*,'old' ,cold(iz,i)/conc(iz)
274!        ENDDO
275!        DO i=1,nb_reaction_4_max
276!          PRINT*,'v_4',i,v_4(iz,i)
277!        ENDDO
278!        DO i=1,nb_reaction_3_max
279!          PRINT*,'v_3',i,v_3(iz,i)
280!        ENDDO
281!        DO i=1,nb_phot_max
282!          PRINT*,'v_phot',i,v_phot(iz,i)
283!        ENDDO
284!        PRINT*,'T',t(iz),'P',p(iz)
285!        PRINT*,'niv',iz,'sza',sza_input
286!        PRINT*,'iteration',iter
287!        STOP
288!      ENDIF
289!      ENDDO
290
291!      DO iesp=1, nb_reaction_4_max
292!      IF (v_4(iz,iesp).LT.0.0) THEN
293!        PRINT*,'!!!! PROBLEM CHIMIE !!!!'
294!        PRINT*,'!!!! PROBLEM V4     !!!!'
295!        DO i=1,nesp
296!          PRINT*,tname(i),c(iz,i)/conc(iz)
297!          PRINT*,'old' ,cold(iz,i)/conc(iz)
298!        ENDDO
299!        DO i=1,nb_reaction_4_max
300!          PRINT*,'v_4',i,v_4(iz,i)
301!        ENDDO
302!        DO i=1,nb_reaction_3_max
303!          PRINT*,'v_3',i,v_3(iz,i)
304!        ENDDO
305!        DO i=1,nb_phot_max
306!          PRINT*,'v_phot',i,v_phot(iz,i)
307!        ENDDO
308!        PRINT*,'T',t(iz),'P',p(iz)
309!        PRINT*,'niv',iz,'sza',sza_input
310!        PRINT*,'iteration',iter
311!        STOP
312!      ENDIF
313!      ENDDO
314
315!      DO iesp=1, nb_reaction_3_max
316!      IF (v_3(iz,iesp).LT.0.0) THEN
317!        PRINT*,'!!!! PROBLEM CHIMIE !!!!'
318!       PRINT*,'!!!! PROBLEM V3     !!!!'
319!       DO i=1,nesp
320!         PRINT*,tname(i),c(iz,i)/conc(iz)
321!         PRINT*,'old' ,cold(iz,i)/conc(iz)
322!       ENDDO
323!       DO i=1,nb_reaction_4_max
324!         PRINT*,'v_4',i,v_4(iz,i)
325!       ENDDO
326!       DO i=1,nb_reaction_3_max
327!         PRINT*,'v_3',i,v_3(iz,i)
328!       ENDDO
329!       DO i=1,nb_phot_max
330!         PRINT*,'v_phot',i,v_phot(iz,i)
331!       ENDDO
332!       PRINT*,'T',t(iz),'P',p(iz)
333!       PRINT*,'niv',iz,'sza',sza_input
334!       PRINT*,'iteration',iter
335!       STOP
336!     ENDIF
337!     ENDDO
338     
339!      DO iesp=1, nb_phot_max
340!      IF (v_phot(iz,iesp).LT.0.0) THEN
341!        PRINT*,'!!!! PROBLEM CHIMIE !!!!'
342!        PRINT*,'!!!! PROBLEM VPHOT  !!!!'
343!        DO i=1,nesp
344!          PRINT*,tname(i),c(iz,i)/conc(iz)
345!          PRINT*,'old' ,cold(iz,i)/conc(iz)
346!        ENDDO
347!        DO i=1,nb_reaction_4_max
348!          PRINT*,'v_4',i,v_4(iz,i)
349!        ENDDO
350!        DO i=1,nb_reaction_3_max
351!          PRINT*,'v_3',i,v_3(iz,i)
352!        ENDDO
353!        DO i=1,nb_phot_max
354!          PRINT*,'v_phot',i,v_phot(iz,i)
355!        ENDDO
356!        PRINT*,'T',t(iz),'P',p(iz)
357!        PRINT*,'niv',iz,'sza',sza_input
358!        PRINT*,'iteration',iter
359!        STOP
360!      ENDIF
361!      ENDDO
362     
363      end do ! while (time < ptimestep)
364
365
366!     Actualisation des VMR traceurs avec valeurs minimales 1E-30
367
368      tr(iz,:)  = max(c(iz,:)/conc(iz),1.0E-30)
369     
370                       
371   END DO ! fin de boucle sur les niveaux
372   
373!   DO iz = 1,nz
374!   PRINT*,'compteur pour niveau',iz,' = ',cpt(iz)
375!   END DO
376
377        !PRINT*,'sza_input', sza_input
378!PRINT*,'CO2 surf alt',tr(1,i_co2) ,tr(nz,i_co2)
379!PRINT*,'CO altitude', tr(nz,i_co)
380!PRINT*,'HCL surf alt',tr(1,i_hcl) ,tr(nz,i_hcl)
381!PRINT*,'H2 surf alt',tr(1,i_h2) ,tr(nz,i_h2)
382!PRINT*,'O surf alt',tr(1,i_o) ,tr(nz,i_o)
383!PRINT*,'O3 surf alt',tr(1,i_o3) ,tr(nz,i_o3)
384!PRINT*,'HO2 surf alt',tr(1,i_ho2) ,tr(nz,i_ho2)
385!PRINT*,'H2O2 surf alt',tr(1,i_h2o2) ,tr(nz,i_h2o2)
386!PRINT*,'H surf alt',tr(1,i_h) ,tr(nz,i_h)
387!PRINT*,'S surf alt',tr(1,i_s) ,tr(nz,i_s)
388!PRINT*,'SO surf alt',tr(1,i_so) ,tr(nz,i_so)
389!PRINT*,'SO2 surf alt',tr(1,i_so2) ,tr(nz,i_so2)
390
391!==================
392!!!!! MODEL 1D !!!! ==> n_lon = 1 !!!!
393!==================
394
395IF(n_lon .EQ. 1) THEN
396PRINT*,'On est en 1D'
397!PRINT*,"DEBUT rate_save"
398CALL rate_save(nz,p(:),t(:),tr(:,:),nesp,v_phot(:,:),v_3(:,:),v_4(:,:))
399!PRINT*,"FIN rate_save"
400END IF
401     
402end subroutine new_photochemistry_venus
403
404!======================================================================
405
406 subroutine init_chimie(nj, nztable, nsza, nso2, jphot, table_colair, &
407                        table_colso2, table_sza)
408
409!======================================================================
410
411implicit none
412
413! photolysis lookup table
414
415integer, INTENT(IN) :: nj, nztable, nsza, nso2
416real, INTENT(OUT), dimension(nso2,nsza,nztable,nj) :: jphot
417real, INTENT(OUT), dimension(nztable) :: table_colair
418real, INTENT(OUT), dimension(nso2,nztable) :: table_colso2
419real, INTENT(OUT), dimension(nsza) :: table_sza
420
421integer           :: iz, isza, iozo, iso2, ij
422character(len=44) :: jvenus
423
424! lecture de la table des j
425
426jphot(:,:,:,:) = 0.
427
428jvenus = 'jvenus.dat'
429open(30, form = 'formatted', status = 'old', file = jvenus)
430print*,'lecture de jvenus = ', jvenus
431
432do iso2 = 1,nso2
433   do isza = 1,nsza
434      do iz = nztable,1,-1
435         read(30,*) table_colair(iz), table_colso2(iso2,iz), table_sza(isza)
436         read(30,'(7e11.4)') (jphot(iso2,isza,iz,ij), ij = 1,nj)
437         do ij = 1,nj
438            if (jphot(iso2,isza,iz,ij) == 1.E-30) then
439               jphot(iso2,isza,iz,ij) = 0.
440            end if
441         end do
442      end do
443!      print*, "sza_input = ", table_sza(isza)
444   end do
445end do
446
447close(30)
448print*,'lecture de la table des j ok.'
449
450end subroutine init_chimie
451
452!======================================================================
453
454
455!======================================================================
456
457 subroutine indice(nb_phot_max, nb_reaction_3_max, nb_reaction_4_max, &
458                   indice_phot, indice_3, indice_4)
459
460
461!OUTPUT: indice_phot, indice_3, indice_4
462!================================================================
463! set the "indice" arrays used to fill the jacobian matrix      !
464!----------------------------------------------------------------
465! reaction               type                array              !
466!----------------------------------------------------------------
467! A + hv   --> B + C     photolysis          indice_phot        !
468! A + B    --> C + D     bimolecular         indice_4           !
469! A + A    --> B + C     quadratic           indice_3           !
470! A + C    --> B + C     quenching           indice_phot        !
471! A + ice  --> B + C     heterogeneous       indice_phot        !
472!================================================================
473
474
475 USE chemparam_mod
476 
477implicit none
478
479integer :: nb_phot_max, nb_reaction_3_max, nb_reaction_4_max
480integer :: i_dummy
481
482! reaction rates and indices
483
484integer :: nb_phot, nb_reaction_3, nb_reaction_4
485
486real, dimension(6*nb_phot_max) :: indice_phot
487real, dimension(6*nb_reaction_3_max) :: indice_3
488real, dimension(8*nb_reaction_4_max) :: indice_4
489
490
491i_dummy = 1
492
493nb_phot       = 0
494nb_reaction_3 = 0
495nb_reaction_4 = 0
496
497!===========================================================
498!      O2 + hv -> O + O
499!===========================================================
500
501nb_phot = nb_phot + 1
502
503
504indice_phot(6*(nb_phot - 1) + 1) = 1
505indice_phot(6*(nb_phot - 1) + 2) = i_o2
506indice_phot(6*(nb_phot - 1) + 3) = 2
507indice_phot(6*(nb_phot - 1) + 4) = i_o
508indice_phot(6*(nb_phot - 1) + 5) = 0
509indice_phot(6*(nb_phot - 1) + 6) = i_dummy
510
511!===========================================================
512!      O2 + hv -> O + O(1D)
513!===========================================================
514
515nb_phot = nb_phot + 1
516
517
518indice_phot(6*(nb_phot - 1) + 1) = 1
519indice_phot(6*(nb_phot - 1) + 2) = i_o2
520indice_phot(6*(nb_phot - 1) + 3) = 1
521indice_phot(6*(nb_phot - 1) + 4) = i_o
522indice_phot(6*(nb_phot - 1) + 5) = 1
523indice_phot(6*(nb_phot - 1) + 6) = i_o1d
524
525
526
527!===========================================================
528!      CO2 + hv -> CO + O
529!===========================================================
530
531nb_phot = nb_phot + 1
532
533
534indice_phot(6*(nb_phot - 1) + 1) = 1
535indice_phot(6*(nb_phot - 1) + 2) = i_co2
536indice_phot(6*(nb_phot - 1) + 3) = 1
537indice_phot(6*(nb_phot - 1) + 4) = i_co
538indice_phot(6*(nb_phot - 1) + 5) = 1
539indice_phot(6*(nb_phot - 1) + 6) = i_o
540
541!===========================================================
542!      CO2 + hv -> CO + O(1D)
543!===========================================================
544
545nb_phot = nb_phot + 1
546
547
548indice_phot(6*(nb_phot - 1) + 1) = 1
549indice_phot(6*(nb_phot - 1) + 2) = i_co2
550indice_phot(6*(nb_phot - 1) + 3) = 1
551indice_phot(6*(nb_phot - 1) + 4) = i_co
552indice_phot(6*(nb_phot - 1) + 5) = 1
553indice_phot(6*(nb_phot - 1) + 6) = i_o1d
554
555!===========================================================
556!      O3 + hv -> O2(Dg) + O(1D)
557!===========================================================
558
559nb_phot = nb_phot + 1
560
561
562indice_phot(6*(nb_phot - 1) + 1) = 1
563indice_phot(6*(nb_phot - 1) + 2) = i_o3
564indice_phot(6*(nb_phot - 1) + 3) = 1
565indice_phot(6*(nb_phot - 1) + 4) = i_o2dg
566indice_phot(6*(nb_phot - 1) + 5) = 1
567indice_phot(6*(nb_phot - 1) + 6) = i_o1d
568
569!===========================================================
570!      O3 + hv -> O2 + O
571!===========================================================
572
573nb_phot = nb_phot + 1
574
575
576indice_phot(6*(nb_phot - 1) + 1) = 1
577indice_phot(6*(nb_phot - 1) + 2) = i_o3
578indice_phot(6*(nb_phot - 1) + 3) = 1
579indice_phot(6*(nb_phot - 1) + 4) = i_o2
580indice_phot(6*(nb_phot - 1) + 5) = 1
581indice_phot(6*(nb_phot - 1) + 6) = i_o
582
583!===========================================================
584!      H2O + hv -> H + OH
585!===========================================================
586
587nb_phot = nb_phot + 1
588
589
590indice_phot(6*(nb_phot - 1) + 1) = 1
591indice_phot(6*(nb_phot - 1) + 2) = i_h2o
592indice_phot(6*(nb_phot - 1) + 3) = 1
593indice_phot(6*(nb_phot - 1) + 4) = i_h
594indice_phot(6*(nb_phot - 1) + 5) = 1
595indice_phot(6*(nb_phot - 1) + 6) = i_oh
596
597!===========================================================
598!      HO2 + hv -> OH + O
599!===========================================================
600
601nb_phot = nb_phot + 1
602
603
604indice_phot(6*(nb_phot - 1) + 1) = 1
605indice_phot(6*(nb_phot - 1) + 2) = i_ho2
606indice_phot(6*(nb_phot - 1) + 3) = 1
607indice_phot(6*(nb_phot - 1) + 4) = i_oh
608indice_phot(6*(nb_phot - 1) + 5) = 1
609indice_phot(6*(nb_phot - 1) + 6) = i_o
610
611!===========================================================
612!      H2O2 + hv -> OH + OH
613!===========================================================
614
615nb_phot = nb_phot + 1
616
617
618indice_phot(6*(nb_phot - 1) + 1) = 1
619indice_phot(6*(nb_phot - 1) + 2) = i_h2o2
620indice_phot(6*(nb_phot - 1) + 3) = 2
621indice_phot(6*(nb_phot - 1) + 4) = i_oh
622indice_phot(6*(nb_phot - 1) + 5) = 0
623indice_phot(6*(nb_phot - 1) + 6) = i_dummy
624
625!===========================================================
626!      HCl + hv -> H + Cl
627!===========================================================
628
629nb_phot = nb_phot + 1
630
631
632indice_phot(6*(nb_phot - 1) + 1) = 1
633indice_phot(6*(nb_phot - 1) + 2) = i_hcl
634indice_phot(6*(nb_phot - 1) + 3) = 1
635indice_phot(6*(nb_phot - 1) + 4) = i_h
636indice_phot(6*(nb_phot - 1) + 5) = 1
637indice_phot(6*(nb_phot - 1) + 6) = i_cl
638
639!===========================================================
640!      Cl2 + hv -> Cl + Cl
641!===========================================================
642
643nb_phot = nb_phot + 1
644
645
646indice_phot(6*(nb_phot - 1) + 1) = 1
647indice_phot(6*(nb_phot - 1) + 2) = i_cl2
648indice_phot(6*(nb_phot - 1) + 3) = 2
649indice_phot(6*(nb_phot - 1) + 4) = i_cl
650indice_phot(6*(nb_phot - 1) + 5) = 0
651indice_phot(6*(nb_phot - 1) + 6) = i_dummy
652
653!===========================================================
654!      HOCl + hv -> OH + Cl
655!===========================================================
656
657nb_phot = nb_phot + 1
658
659
660indice_phot(6*(nb_phot - 1) + 1) = 1
661indice_phot(6*(nb_phot - 1) + 2) = i_hocl
662indice_phot(6*(nb_phot - 1) + 3) = 1
663indice_phot(6*(nb_phot - 1) + 4) = i_oh
664indice_phot(6*(nb_phot - 1) + 5) = 1
665indice_phot(6*(nb_phot - 1) + 6) = i_cl
666
667!===========================================================
668!      SO2 + hv -> SO + O
669!===========================================================
670
671nb_phot = nb_phot + 1
672
673
674indice_phot(6*(nb_phot - 1) + 1) = 1
675indice_phot(6*(nb_phot - 1) + 2) = i_so2
676indice_phot(6*(nb_phot - 1) + 3) = 1
677indice_phot(6*(nb_phot - 1) + 4) = i_so
678indice_phot(6*(nb_phot - 1) + 5) = 1
679indice_phot(6*(nb_phot - 1) + 6) = i_o
680
681!===========================================================
682!      SO + hv -> S + O
683!===========================================================
684
685nb_phot = nb_phot + 1
686
687
688indice_phot(6*(nb_phot - 1) + 1) = 1
689indice_phot(6*(nb_phot - 1) + 2) = i_so
690indice_phot(6*(nb_phot - 1) + 3) = 1
691indice_phot(6*(nb_phot - 1) + 4) = i_s
692indice_phot(6*(nb_phot - 1) + 5) = 1
693indice_phot(6*(nb_phot - 1) + 6) = i_o
694
695!===========================================================
696!      SO3 + hv -> SO2 + O
697!===========================================================
698
699nb_phot = nb_phot + 1
700
701
702indice_phot(6*(nb_phot - 1) + 1) = 1
703indice_phot(6*(nb_phot - 1) + 2) = i_so3
704indice_phot(6*(nb_phot - 1) + 3) = 1
705indice_phot(6*(nb_phot - 1) + 4) = i_so2
706indice_phot(6*(nb_phot - 1) + 5) = 1
707indice_phot(6*(nb_phot - 1) + 6) = i_o
708
709!===========================================================
710!      ClO + hv -> Cl + O
711!===========================================================
712
713nb_phot = nb_phot + 1
714
715
716indice_phot(6*(nb_phot - 1) + 1) = 1
717indice_phot(6*(nb_phot - 1) + 2) = i_clo
718indice_phot(6*(nb_phot - 1) + 3) = 1
719indice_phot(6*(nb_phot - 1) + 4) = i_cl
720indice_phot(6*(nb_phot - 1) + 5) = 1
721indice_phot(6*(nb_phot - 1) + 6) = i_o
722
723!===========================================================
724!      OCS + hv -> CO + S
725!===========================================================
726
727nb_phot = nb_phot + 1
728
729
730indice_phot(6*(nb_phot - 1) + 1) = 1
731indice_phot(6*(nb_phot - 1) + 2) = i_ocs
732indice_phot(6*(nb_phot - 1) + 3) = 1
733indice_phot(6*(nb_phot - 1) + 4) = i_co
734indice_phot(6*(nb_phot - 1) + 5) = 1
735indice_phot(6*(nb_phot - 1) + 6) = i_s
736
737!===========================================================
738!      COCl2 + hv -> Cl + Cl + CO
739!===========================================================
740
741nb_phot = nb_phot + 1
742
743
744indice_phot(6*(nb_phot - 1) + 1) = 1
745indice_phot(6*(nb_phot - 1) + 2) = i_cocl2
746indice_phot(6*(nb_phot - 1) + 3) = 2
747indice_phot(6*(nb_phot - 1) + 4) = i_cl
748indice_phot(6*(nb_phot - 1) + 5) = 1
749indice_phot(6*(nb_phot - 1) + 6) = i_co
750
751!===========================================================
752!      H2SO4 + hv -> SO3 + H2O
753!===========================================================
754
755nb_phot = nb_phot + 1
756
757
758indice_phot(6*(nb_phot - 1) + 1) = 1
759indice_phot(6*(nb_phot - 1) + 2) = i_h2so4
760indice_phot(6*(nb_phot - 1) + 3) = 1
761indice_phot(6*(nb_phot - 1) + 4) = i_so3
762indice_phot(6*(nb_phot - 1) + 5) = 1
763indice_phot(6*(nb_phot - 1) + 6) = i_h2o
764
765!===========================================================
766!      a001 : O + O2 + CO2 -> O3 + CO2
767!===========================================================
768
769nb_reaction_4 = nb_reaction_4 + 1
770
771indice_4(8*(nb_reaction_4 - 1) + 1) = 1
772indice_4(8*(nb_reaction_4 - 1) + 2) = i_o
773indice_4(8*(nb_reaction_4 - 1) + 3) = 1
774indice_4(8*(nb_reaction_4 - 1) + 4) = i_o2
775indice_4(8*(nb_reaction_4 - 1) + 5) = 1
776indice_4(8*(nb_reaction_4 - 1) + 6) = i_o3
777indice_4(8*(nb_reaction_4 - 1) + 7) = 0
778indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
779
780!===========================================================
781!      a002 : O + O + CO2 -> O2(Dg) + CO2
782!===========================================================
783
784nb_reaction_3 = nb_reaction_3 + 1
785
786indice_3(6*(nb_reaction_3 - 1) + 1) = 2
787indice_3(6*(nb_reaction_3 - 1) + 2) = i_o
788indice_3(6*(nb_reaction_3 - 1) + 3) = 1
789indice_3(6*(nb_reaction_3 - 1) + 4) = i_o2dg
790indice_3(6*(nb_reaction_3 - 1) + 5) = 0
791indice_3(6*(nb_reaction_3 - 1) + 6) = i_dummy
792
793!===========================================================
794!      a003 : O + O3 -> O2 + O2
795!===========================================================
796
797nb_reaction_4 = nb_reaction_4 + 1
798
799indice_4(8*(nb_reaction_4 - 1) + 1) = 1
800indice_4(8*(nb_reaction_4 - 1) + 2) = i_o
801indice_4(8*(nb_reaction_4 - 1) + 3) = 1
802indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
803indice_4(8*(nb_reaction_4 - 1) + 5) = 2
804indice_4(8*(nb_reaction_4 - 1) + 6) = i_o2
805indice_4(8*(nb_reaction_4 - 1) + 7) = 0
806indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
807
808!===========================================================
809!      b001 : O(1D) + CO2 -> O + CO2
810!===========================================================
811
812nb_phot = nb_phot + 1
813
814
815indice_phot(6*(nb_phot - 1) + 1) = 1
816indice_phot(6*(nb_phot - 1) + 2) = i_o1d
817indice_phot(6*(nb_phot - 1) + 3) = 1
818indice_phot(6*(nb_phot - 1) + 4) = i_o
819indice_phot(6*(nb_phot - 1) + 5) = 0
820indice_phot(6*(nb_phot - 1) + 6) = i_dummy
821
822!===========================================================
823!      b002 : O(1D) + H2O -> OH + OH
824!===========================================================
825
826nb_reaction_4 = nb_reaction_4 + 1
827
828indice_4(8*(nb_reaction_4 - 1) + 1) = 1
829indice_4(8*(nb_reaction_4 - 1) + 2) = i_o1d
830indice_4(8*(nb_reaction_4 - 1) + 3) = 1
831indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2o
832indice_4(8*(nb_reaction_4 - 1) + 5) = 2
833indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
834indice_4(8*(nb_reaction_4 - 1) + 7) = 0
835indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
836
837!===========================================================
838!      b003 : O(1D) + H2 -> OH + H
839!===========================================================
840
841nb_reaction_4 = nb_reaction_4 + 1
842
843indice_4(8*(nb_reaction_4 - 1) + 1) = 1
844indice_4(8*(nb_reaction_4 - 1) + 2) = i_o1d
845indice_4(8*(nb_reaction_4 - 1) + 3) = 1
846indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2
847indice_4(8*(nb_reaction_4 - 1) + 5) = 1
848indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
849indice_4(8*(nb_reaction_4 - 1) + 7) = 1
850indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
851
852!===========================================================
853!      b004 : O(1D) + O2 -> O + O2
854!===========================================================
855
856nb_phot = nb_phot + 1
857
858
859indice_phot(6*(nb_phot - 1) + 1) = 1
860indice_phot(6*(nb_phot - 1) + 2) = i_o1d
861indice_phot(6*(nb_phot - 1) + 3) = 1
862indice_phot(6*(nb_phot - 1) + 4) = i_o
863indice_phot(6*(nb_phot - 1) + 5) = 0
864indice_phot(6*(nb_phot - 1) + 6) = i_dummy
865
866
867!===========================================================
868!      b005 : O(1D) + O3 -> O2 + O2
869!===========================================================
870
871nb_reaction_4 = nb_reaction_4 + 1
872
873indice_4(8*(nb_reaction_4 - 1) + 1) = 1
874indice_4(8*(nb_reaction_4 - 1) + 2) = i_o1d
875indice_4(8*(nb_reaction_4 - 1) + 3) = 1
876indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
877indice_4(8*(nb_reaction_4 - 1) + 5) = 2
878indice_4(8*(nb_reaction_4 - 1) + 6) = i_o2
879indice_4(8*(nb_reaction_4 - 1) + 7) = 0
880indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
881
882!===========================================================
883!      b006 : O(1D) + O3 -> O2 + O + O
884!===========================================================
885
886nb_reaction_4 = nb_reaction_4 + 1
887
888indice_4(8*(nb_reaction_4 - 1) + 1) = 1
889indice_4(8*(nb_reaction_4 - 1) + 2) = i_o1d
890indice_4(8*(nb_reaction_4 - 1) + 3) = 1
891indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
892indice_4(8*(nb_reaction_4 - 1) + 5) = 1
893indice_4(8*(nb_reaction_4 - 1) + 6) = i_o2
894indice_4(8*(nb_reaction_4 - 1) + 7) = 2
895indice_4(8*(nb_reaction_4 - 1) + 8) = i_o
896
897!===========================================================
898!      c001 : O + HO2 -> OH + O2
899!===========================================================
900
901nb_reaction_4 = nb_reaction_4 + 1
902
903indice_4(8*(nb_reaction_4 - 1) + 1) = 1
904indice_4(8*(nb_reaction_4 - 1) + 2) = i_o
905indice_4(8*(nb_reaction_4 - 1) + 3) = 1
906indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
907indice_4(8*(nb_reaction_4 - 1) + 5) = 1
908indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
909indice_4(8*(nb_reaction_4 - 1) + 7) = 1
910indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
911
912!===========================================================
913!      c002 : O + OH -> O2 + H
914!===========================================================
915
916nb_reaction_4 = nb_reaction_4 + 1
917
918indice_4(8*(nb_reaction_4 - 1) + 1) = 1
919indice_4(8*(nb_reaction_4 - 1) + 2) = i_o
920indice_4(8*(nb_reaction_4 - 1) + 3) = 1
921indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
922indice_4(8*(nb_reaction_4 - 1) + 5) = 1
923indice_4(8*(nb_reaction_4 - 1) + 6) = i_o2
924indice_4(8*(nb_reaction_4 - 1) + 7) = 1
925indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
926
927!===========================================================
928!      c003 : H + O3 -> OH + O2
929!===========================================================
930
931nb_reaction_4 = nb_reaction_4 + 1
932
933indice_4(8*(nb_reaction_4 - 1) + 1) = 1
934indice_4(8*(nb_reaction_4 - 1) + 2) = i_h
935indice_4(8*(nb_reaction_4 - 1) + 3) = 1
936indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
937indice_4(8*(nb_reaction_4 - 1) + 5) = 1
938indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
939indice_4(8*(nb_reaction_4 - 1) + 7) = 1
940indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
941
942!===========================================================
943!      c004 : H + HO2 -> OH + OH
944!===========================================================
945
946nb_reaction_4 = nb_reaction_4 + 1
947
948indice_4(8*(nb_reaction_4 - 1) + 1) = 1
949indice_4(8*(nb_reaction_4 - 1) + 2) = i_h
950indice_4(8*(nb_reaction_4 - 1) + 3) = 1
951indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
952indice_4(8*(nb_reaction_4 - 1) + 5) = 2
953indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
954indice_4(8*(nb_reaction_4 - 1) + 7) = 0
955indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
956
957!===========================================================
958!      c005 : H + HO2 -> H2 + O2
959!===========================================================
960
961nb_reaction_4 = nb_reaction_4 + 1
962
963indice_4(8*(nb_reaction_4 - 1) + 1) = 1
964indice_4(8*(nb_reaction_4 - 1) + 2) = i_h
965indice_4(8*(nb_reaction_4 - 1) + 3) = 1
966indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
967indice_4(8*(nb_reaction_4 - 1) + 5) = 1
968indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2
969indice_4(8*(nb_reaction_4 - 1) + 7) = 1
970indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
971
972!===========================================================
973!      c006 : H + HO2 -> H2O + O
974!===========================================================
975
976nb_reaction_4 = nb_reaction_4 + 1
977
978indice_4(8*(nb_reaction_4 - 1) + 1) = 1
979indice_4(8*(nb_reaction_4 - 1) + 2) = i_h
980indice_4(8*(nb_reaction_4 - 1) + 3) = 1
981indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
982indice_4(8*(nb_reaction_4 - 1) + 5) = 1
983indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2o
984indice_4(8*(nb_reaction_4 - 1) + 7) = 1
985indice_4(8*(nb_reaction_4 - 1) + 8) = i_o
986
987!===========================================================
988!      c007 : OH + HO2 -> H2O + O2
989!===========================================================
990
991nb_reaction_4 = nb_reaction_4 + 1
992
993indice_4(8*(nb_reaction_4 - 1) + 1) = 1
994indice_4(8*(nb_reaction_4 - 1) + 2) = i_oh
995indice_4(8*(nb_reaction_4 - 1) + 3) = 1
996indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
997indice_4(8*(nb_reaction_4 - 1) + 5) = 1
998indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2o
999indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1000indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1001
1002
1003!===========================================================
1004!      c008 : HO2 + HO2 -> H2O2 + O2
1005!===========================================================
1006
1007nb_reaction_3 = nb_reaction_3 + 1
1008
1009indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1010indice_3(6*(nb_reaction_3 - 1) + 2) = i_ho2
1011indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1012indice_3(6*(nb_reaction_3 - 1) + 4) = i_h2o2
1013indice_3(6*(nb_reaction_3 - 1) + 5) = 1
1014indice_3(6*(nb_reaction_3 - 1) + 6) = i_o2
1015
1016!===========================================================
1017!      c009 : OH + H2O2 -> H2O + HO2
1018!===========================================================
1019
1020nb_reaction_4 = nb_reaction_4 + 1
1021
1022indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1023indice_4(8*(nb_reaction_4 - 1) + 2) = i_oh
1024indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1025indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2o2
1026indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1027indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2o
1028indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1029indice_4(8*(nb_reaction_4 - 1) + 8) = i_ho2
1030
1031
1032!===========================================================
1033!      c010 : OH + H2 -> H2O + H
1034!===========================================================
1035
1036nb_reaction_4 = nb_reaction_4 + 1
1037
1038indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1039indice_4(8*(nb_reaction_4 - 1) + 2) = i_oh
1040indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1041indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2
1042indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1043indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2o
1044indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1045indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
1046
1047!===========================================================
1048!      c011 : H + O2 + CO2 -> HO2 + CO2
1049!===========================================================
1050
1051nb_reaction_4 = nb_reaction_4 + 1
1052
1053indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1054indice_4(8*(nb_reaction_4 - 1) + 2) = i_h
1055indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1056indice_4(8*(nb_reaction_4 - 1) + 4) = i_o2
1057indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1058indice_4(8*(nb_reaction_4 - 1) + 6) = i_ho2
1059indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1060indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1061
1062!===========================================================
1063!      c012 : O + H2O2 -> OH + HO2
1064!===========================================================
1065
1066nb_reaction_4 = nb_reaction_4 + 1
1067
1068indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1069indice_4(8*(nb_reaction_4 - 1) + 2) = i_o
1070indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1071indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2o2
1072indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1073indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
1074indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1075indice_4(8*(nb_reaction_4 - 1) + 8) = i_ho2
1076
1077!===========================================================
1078!      c013 : OH + OH -> H2O + O
1079!===========================================================
1080
1081nb_reaction_3 = nb_reaction_3 + 1
1082
1083indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1084indice_3(6*(nb_reaction_3 - 1) + 2) = i_oh
1085indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1086indice_3(6*(nb_reaction_3 - 1) + 4) = i_h2o
1087indice_3(6*(nb_reaction_3 - 1) + 5) = 1
1088indice_3(6*(nb_reaction_3 - 1) + 6) = i_o
1089
1090
1091!===========================================================
1092!      c014 : OH + O3 -> HO2 + O2
1093!===========================================================
1094
1095nb_reaction_4 = nb_reaction_4 + 1
1096
1097indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1098indice_4(8*(nb_reaction_4 - 1) + 2) = i_oh
1099indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1100indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
1101indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1102indice_4(8*(nb_reaction_4 - 1) + 6) = i_ho2
1103indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1104indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1105
1106!===========================================================
1107!      c015 : HO2 + O3 -> OH + O2 + O2
1108!===========================================================
1109
1110nb_reaction_4 = nb_reaction_4 + 1
1111
1112indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1113indice_4(8*(nb_reaction_4 - 1) + 2) = i_ho2
1114indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1115indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
1116indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1117indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
1118indice_4(8*(nb_reaction_4 - 1) + 7) = 2
1119indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1120
1121!===========================================================
1122!      c016 : HO2 + HO2 + CO2 -> H2O2 + O2 + CO2
1123!===========================================================
1124
1125nb_reaction_3 = nb_reaction_3 + 1
1126
1127indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1128indice_3(6*(nb_reaction_3 - 1) + 2) = i_ho2
1129indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1130indice_3(6*(nb_reaction_3 - 1) + 4) = i_h2o2
1131indice_3(6*(nb_reaction_3 - 1) + 5) = 1
1132indice_3(6*(nb_reaction_3 - 1) + 6) = i_o2
1133
1134!===========================================================
1135!      c017 : OH + OH + CO2 -> H2O2 + CO2
1136!===========================================================
1137
1138nb_reaction_3 = nb_reaction_3 + 1
1139
1140indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1141indice_3(6*(nb_reaction_3 - 1) + 2) = i_oh
1142indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1143indice_3(6*(nb_reaction_3 - 1) + 4) = i_h2o2
1144indice_3(6*(nb_reaction_3 - 1) + 5) = 0
1145indice_3(6*(nb_reaction_3 - 1) + 6) = i_dummy
1146
1147!===========================================================
1148!      c018 : H + H + CO2 -> H2 + CO2
1149!===========================================================
1150
1151nb_reaction_3 = nb_reaction_3 + 1
1152
1153indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1154indice_3(6*(nb_reaction_3 - 1) + 2) = i_h
1155indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1156indice_3(6*(nb_reaction_3 - 1) + 4) = i_h2
1157indice_3(6*(nb_reaction_3 - 1) + 5) = 0
1158indice_3(6*(nb_reaction_3 - 1) + 6) = i_dummy
1159
1160!===========================================================
1161!      e001 : CO + OH -> CO2 + H
1162!===========================================================
1163
1164nb_reaction_4 = nb_reaction_4 + 1
1165
1166indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1167indice_4(8*(nb_reaction_4 - 1) + 2) = i_co
1168indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1169indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1170indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1171indice_4(8*(nb_reaction_4 - 1) + 6) = i_co2
1172indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1173indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
1174
1175!===========================================================
1176!      e002 : CO + O + M -> CO2 + M
1177!===========================================================
1178
1179nb_reaction_4 = nb_reaction_4 + 1
1180
1181indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1182indice_4(8*(nb_reaction_4 - 1) + 2) = i_co
1183indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1184indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1185indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1186indice_4(8*(nb_reaction_4 - 1) + 6) = i_co2
1187indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1188indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1189
1190!===========================================================
1191!      f001 : HCl + O(1D) -> OH + Cl
1192!===========================================================
1193
1194nb_reaction_4 = nb_reaction_4 + 1
1195
1196indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1197indice_4(8*(nb_reaction_4 - 1) + 2) = i_hcl
1198indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1199indice_4(8*(nb_reaction_4 - 1) + 4) = i_o1d
1200indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1201indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
1202indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1203indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1204
1205!===========================================================
1206!      f002 : HCl + O(1D) -> H + ClO
1207!===========================================================
1208
1209nb_reaction_4 = nb_reaction_4 + 1
1210
1211indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1212indice_4(8*(nb_reaction_4 - 1) + 2) = i_hcl
1213indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1214indice_4(8*(nb_reaction_4 - 1) + 4) = i_o1d
1215indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1216indice_4(8*(nb_reaction_4 - 1) + 6) = i_h
1217indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1218indice_4(8*(nb_reaction_4 - 1) + 8) = i_clo
1219
1220!===========================================================
1221!      f003 : HCl + O -> OH + Cl
1222!===========================================================
1223
1224nb_reaction_4 = nb_reaction_4 + 1
1225
1226indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1227indice_4(8*(nb_reaction_4 - 1) + 2) = i_hcl
1228indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1229indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1230indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1231indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
1232indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1233indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1234
1235!===========================================================
1236!      f004 : HCl + OH -> H2O + Cl
1237!===========================================================
1238
1239nb_reaction_4 = nb_reaction_4 + 1
1240
1241indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1242indice_4(8*(nb_reaction_4 - 1) + 2) = i_hcl
1243indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1244indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1245indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1246indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2o
1247indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1248indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1249
1250!===========================================================
1251!      f005 : ClO + O -> Cl + O2
1252!===========================================================
1253
1254nb_reaction_4 = nb_reaction_4 + 1
1255
1256indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1257indice_4(8*(nb_reaction_4 - 1) + 2) = i_clo
1258indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1259indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1260indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1261indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1262indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1263indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1264
1265!===========================================================
1266!      f006 : ClO + OH -> Cl + HO2
1267!===========================================================
1268
1269nb_reaction_4 = nb_reaction_4 + 1
1270
1271indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1272indice_4(8*(nb_reaction_4 - 1) + 2) = i_clo
1273indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1274indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1275indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1276indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1277indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1278indice_4(8*(nb_reaction_4 - 1) + 8) = i_ho2
1279
1280!===========================================================
1281!      f007 : ClO + OH -> HCl + O2
1282!===========================================================
1283
1284nb_reaction_4 = nb_reaction_4 + 1
1285
1286indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1287indice_4(8*(nb_reaction_4 - 1) + 2) = i_clo
1288indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1289indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1290indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1291indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1292indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1293indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1294
1295!===========================================================
1296!      f008 : Cl + H2 -> HCl + H
1297!===========================================================
1298
1299nb_reaction_4 = nb_reaction_4 + 1
1300
1301indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1302indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1303indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1304indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2
1305indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1306indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1307indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1308indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
1309
1310!===========================================================
1311!      f009 : Cl + O3 -> ClO + O2
1312!===========================================================
1313
1314nb_reaction_4 = nb_reaction_4 + 1
1315
1316indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1317indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1318indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1319indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
1320indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1321indice_4(8*(nb_reaction_4 - 1) + 6) = i_clo
1322indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1323indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1324
1325!===========================================================
1326!      f010 : Cl + HO2 -> ClO + OH
1327!===========================================================
1328
1329nb_reaction_4 = nb_reaction_4 + 1
1330
1331indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1332indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1333indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1334indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
1335indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1336indice_4(8*(nb_reaction_4 - 1) + 6) = i_clo
1337indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1338indice_4(8*(nb_reaction_4 - 1) + 8) = i_oh
1339
1340!===========================================================
1341!      f011 : Cl + HO2 -> HCl + O2
1342!===========================================================
1343
1344nb_reaction_4 = nb_reaction_4 + 1
1345
1346indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1347indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1348indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1349indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
1350indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1351indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1352indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1353indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1354
1355!===========================================================
1356!      f012 : Cl + H2O2 -> HCl + HO2
1357!===========================================================
1358
1359nb_reaction_4 = nb_reaction_4 + 1
1360
1361indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1362indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1363indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1364indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2o2
1365indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1366indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1367indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1368indice_4(8*(nb_reaction_4 - 1) + 8) = i_ho2
1369
1370!===========================================================
1371!      f013 : Cl + CO + CO2 -> ClCO + CO2
1372!===========================================================
1373
1374nb_reaction_4 = nb_reaction_4 + 1
1375
1376indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1377indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1378indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1379indice_4(8*(nb_reaction_4 - 1) + 4) = i_co
1380indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1381indice_4(8*(nb_reaction_4 - 1) + 6) = i_clco
1382indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1383indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1384
1385!===========================================================
1386!      f014 : ClCO + CO2 -> Cl + CO + CO2
1387!===========================================================
1388
1389nb_phot = nb_phot + 1
1390
1391indice_phot(6*(nb_phot - 1) + 1) = 1
1392indice_phot(6*(nb_phot - 1) + 2) = i_clco
1393indice_phot(6*(nb_phot - 1) + 3) = 1
1394indice_phot(6*(nb_phot - 1) + 4) = i_cl
1395indice_phot(6*(nb_phot - 1) + 5) = 1
1396indice_phot(6*(nb_phot - 1) + 6) = i_co
1397
1398!===========================================================
1399!      f015 : ClCO + O2 + CO2 -> ClCO3 + CO2
1400!===========================================================
1401
1402nb_reaction_4 = nb_reaction_4 + 1
1403
1404indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1405indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
1406indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1407indice_4(8*(nb_reaction_4 - 1) + 4) = i_o2
1408indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1409indice_4(8*(nb_reaction_4 - 1) + 6) = i_clco3
1410indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1411indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1412
1413!===========================================================
1414!      f016 : 0.5 ClCO3 + 0.5 Cl -> Cl
1415!             0.5 ClCO3 + 0.5 Cl -> ClO + CO2
1416!===========================================================
1417
1418nb_reaction_4 = nb_reaction_4 + 1
1419
1420indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
1421indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco3
1422indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
1423indice_4(8*(nb_reaction_4 - 1) + 4) = i_cl
1424indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1425indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1426indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1427indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1428
1429nb_reaction_4 = nb_reaction_4 + 1
1430
1431indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
1432indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco3
1433indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
1434indice_4(8*(nb_reaction_4 - 1) + 4) = i_cl
1435indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1436indice_4(8*(nb_reaction_4 - 1) + 6) = i_clo
1437indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1438indice_4(8*(nb_reaction_4 - 1) + 8) = i_co2
1439
1440!===========================================================
1441!      f017 : 0.5 ClCO3 + 0.5 O -> Cl
1442!             0.5 ClCO3 + 0.5 O -> O2 + CO2
1443!===========================================================
1444
1445nb_reaction_4 = nb_reaction_4 + 1
1446
1447indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
1448indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco3
1449indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
1450indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1451indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1452indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1453indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1454indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1455
1456nb_reaction_4 = nb_reaction_4 + 1
1457
1458indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
1459indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco3
1460indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
1461indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1462indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1463indice_4(8*(nb_reaction_4 - 1) + 6) = i_o2
1464indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1465indice_4(8*(nb_reaction_4 - 1) + 8) = i_co2
1466
1467!===========================================================
1468!      f018 : ClO + HO2 -> HOCl + O2
1469!===========================================================
1470
1471nb_reaction_4 = nb_reaction_4 + 1
1472
1473indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1474indice_4(8*(nb_reaction_4 - 1) + 2) = i_clo
1475indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1476indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
1477indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1478indice_4(8*(nb_reaction_4 - 1) + 6) = i_hocl
1479indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1480indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1481
1482!===========================================================
1483!      f019 : OH + HOCl -> H2O + ClO
1484!===========================================================
1485
1486nb_reaction_4 = nb_reaction_4 + 1
1487
1488indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1489indice_4(8*(nb_reaction_4 - 1) + 2) = i_oh
1490indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1491indice_4(8*(nb_reaction_4 - 1) + 4) = i_hocl
1492indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1493indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2o
1494indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1495indice_4(8*(nb_reaction_4 - 1) + 8) = i_clo
1496
1497!===========================================================
1498!      f020 : O + HOCl -> OH + ClO
1499!===========================================================
1500
1501nb_reaction_4 = nb_reaction_4 + 1
1502
1503indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1504indice_4(8*(nb_reaction_4 - 1) + 2) = i_o
1505indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1506indice_4(8*(nb_reaction_4 - 1) + 4) = i_hocl
1507indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1508indice_4(8*(nb_reaction_4 - 1) + 6) = i_oh
1509indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1510indice_4(8*(nb_reaction_4 - 1) + 8) = i_clo
1511
1512!===========================================================
1513!      f021 : Cl + Cl + CO2 -> Cl2 + CO2
1514!===========================================================
1515
1516nb_reaction_3 = nb_reaction_3 + 1
1517
1518indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1519indice_3(6*(nb_reaction_3 - 1) + 2) = i_cl
1520indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1521indice_3(6*(nb_reaction_3 - 1) + 4) = i_cl2
1522indice_3(6*(nb_reaction_3 - 1) + 5) = 0
1523indice_3(6*(nb_reaction_3 - 1) + 6) = i_dummy
1524
1525!===========================================================
1526!      f022 : ClCO + O -> Cl + CO2
1527!===========================================================
1528
1529nb_reaction_4 = nb_reaction_4 + 1
1530
1531indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1532indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
1533indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1534indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1535indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1536indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1537indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1538indice_4(8*(nb_reaction_4 - 1) + 8) = i_co2
1539
1540!===========================================================
1541!      f023 : Cl2 + O(1D) -> Cl + ClO
1542!===========================================================
1543
1544nb_reaction_4 = nb_reaction_4 + 1
1545
1546indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1547indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl2
1548indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1549indice_4(8*(nb_reaction_4 - 1) + 4) = i_o1d
1550indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1551indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1552indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1553indice_4(8*(nb_reaction_4 - 1) + 8) = i_clo
1554
1555!===========================================================
1556!      f024 : Cl2 + H -> HCl + Cl
1557!===========================================================
1558
1559nb_reaction_4 = nb_reaction_4 + 1
1560
1561indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1562indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl2
1563indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1564indice_4(8*(nb_reaction_4 - 1) + 4) = i_h
1565indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1566indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1567indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1568indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1569
1570!===========================================================
1571!      f025 : Cl + ClCO -> Cl2 + CO
1572!===========================================================
1573
1574nb_reaction_4 = nb_reaction_4 + 1
1575
1576indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1577indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1578indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1579indice_4(8*(nb_reaction_4 - 1) + 4) = i_clco
1580indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1581indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl2
1582indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1583indice_4(8*(nb_reaction_4 - 1) + 8) = i_co
1584
1585!===========================================================
1586!      f026 : ClCO + ClCO -> COCl2 + CO
1587!===========================================================
1588
1589nb_reaction_3 = nb_reaction_3 + 1
1590
1591indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1592indice_3(6*(nb_reaction_3 - 1) + 2) = i_clco
1593indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1594indice_3(6*(nb_reaction_3 - 1) + 4) = i_cocl2
1595indice_3(6*(nb_reaction_3 - 1) + 5) = 1
1596indice_3(6*(nb_reaction_3 - 1) + 6) = i_co
1597
1598!===========================================================
1599!      f027 : Cl + SO2 + CO2 -> ClSO2 + CO2
1600!===========================================================
1601
1602nb_reaction_4 = nb_reaction_4 + 1
1603
1604indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1605indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1606indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1607indice_4(8*(nb_reaction_4 - 1) + 4) = i_so2
1608indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1609indice_4(8*(nb_reaction_4 - 1) + 6) = i_clso2
1610indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1611indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1612
1613!===========================================================
1614!      f028 : ClSO2 + O -> SO2 + ClO
1615!===========================================================
1616
1617nb_reaction_4 = nb_reaction_4 + 1
1618
1619indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1620indice_4(8*(nb_reaction_4 - 1) + 2) = i_clso2
1621indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1622indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1623indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1624indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1625indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1626indice_4(8*(nb_reaction_4 - 1) + 8) = i_clo
1627
1628!===========================================================
1629!      f029 : ClSO2 + H -> SO2 + HCl
1630!===========================================================
1631
1632nb_reaction_4 = nb_reaction_4 + 1
1633
1634indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1635indice_4(8*(nb_reaction_4 - 1) + 2) = i_clso2
1636indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1637indice_4(8*(nb_reaction_4 - 1) + 4) = i_h
1638indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1639indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1640indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1641indice_4(8*(nb_reaction_4 - 1) + 8) = i_hcl
1642
1643!===========================================================
1644!      f030 : ClSO2 + ClSO2 -> Cl2 + SO2 + SO2
1645!===========================================================
1646
1647nb_reaction_3 = nb_reaction_3 + 1
1648
1649indice_3(6*(nb_reaction_3 - 1) + 1) = 2
1650indice_3(6*(nb_reaction_3 - 1) + 2) = i_clso2
1651indice_3(6*(nb_reaction_3 - 1) + 3) = 1
1652indice_3(6*(nb_reaction_3 - 1) + 4) = i_cl2
1653indice_3(6*(nb_reaction_3 - 1) + 5) = 2
1654indice_3(6*(nb_reaction_3 - 1) + 6) = i_so2
1655
1656!===========================================================
1657!      f031 : Cl + O + CO2 -> ClO + CO2
1658!===========================================================
1659
1660nb_reaction_4 = nb_reaction_4 + 1
1661
1662indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1663indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1664indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1665indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1666indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1667indice_4(8*(nb_reaction_4 - 1) + 6) = i_clo
1668indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1669indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1670
1671!===========================================================
1672!      f032 : Cl2 + O -> ClO + Cl
1673!===========================================================
1674
1675nb_reaction_4 = nb_reaction_4 + 1
1676
1677indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1678indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl2
1679indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1680indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1681indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1682indice_4(8*(nb_reaction_4 - 1) + 6) = i_clo
1683indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1684indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1685
1686!===========================================================
1687!      f033 : ClCO + OH -> HOCl + CO
1688!===========================================================
1689
1690nb_reaction_4 = nb_reaction_4 + 1
1691
1692indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1693indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
1694indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1695indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1696indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1697indice_4(8*(nb_reaction_4 - 1) + 6) = i_hocl
1698indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1699indice_4(8*(nb_reaction_4 - 1) + 8) = i_co
1700
1701!===========================================================
1702!      f034 : Cl2 + OH -> Cl + HOCl
1703!===========================================================
1704
1705nb_reaction_4 = nb_reaction_4 + 1
1706
1707indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1708indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl2
1709indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1710indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1711indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1712indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
1713indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1714indice_4(8*(nb_reaction_4 - 1) + 8) = i_hocl
1715
1716!===========================================================
1717!      f035 : ClCO + O -> CO + ClO
1718!===========================================================
1719
1720nb_reaction_4 = nb_reaction_4 + 1
1721
1722indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1723indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
1724indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1725indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1726indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1727indice_4(8*(nb_reaction_4 - 1) + 6) = i_co
1728indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1729indice_4(8*(nb_reaction_4 - 1) + 8) = i_clo
1730
1731!===========================================================
1732!      f036 : ClCO + Cl2 -> COCl2 + Cl
1733!===========================================================
1734
1735nb_reaction_4 = nb_reaction_4 + 1
1736
1737indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1738indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
1739indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1740indice_4(8*(nb_reaction_4 - 1) + 4) = i_cl2
1741indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1742indice_4(8*(nb_reaction_4 - 1) + 6) = i_cocl2
1743indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1744indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1745
1746!===========================================================
1747!      f037 : HCl + H -> H2 + Cl
1748!===========================================================
1749
1750nb_reaction_4 = nb_reaction_4 + 1
1751
1752indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1753indice_4(8*(nb_reaction_4 - 1) + 2) = i_hcl
1754indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1755indice_4(8*(nb_reaction_4 - 1) + 4) = i_h
1756indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1757indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2
1758indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1759indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1760
1761!===========================================================
1762!      f038 : ClCO + H -> HCl + CO
1763!===========================================================
1764
1765nb_reaction_4 = nb_reaction_4 + 1
1766
1767indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1768indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
1769indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1770indice_4(8*(nb_reaction_4 - 1) + 4) = i_h
1771indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1772indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1773indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1774indice_4(8*(nb_reaction_4 - 1) + 8) = i_co
1775
1776!===========================================================
1777!      f039 : Cl + H + M -> HCl + M
1778!===========================================================
1779
1780nb_reaction_4 = nb_reaction_4 + 1
1781
1782indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1783indice_4(8*(nb_reaction_4 - 1) + 2) = i_cl
1784indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1785indice_4(8*(nb_reaction_4 - 1) + 4) = i_h
1786indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1787indice_4(8*(nb_reaction_4 - 1) + 6) = i_hcl
1788indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1789indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1790
1791!===========================================================
1792!      g001 : S + O2 -> SO + O
1793!===========================================================
1794
1795nb_reaction_4 = nb_reaction_4 + 1
1796
1797indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1798indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
1799indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1800indice_4(8*(nb_reaction_4 - 1) + 4) = i_o2
1801indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1802indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
1803indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1804indice_4(8*(nb_reaction_4 - 1) + 8) = i_o
1805
1806!===========================================================
1807!      g002 : S + O3 -> SO + O2
1808!===========================================================
1809
1810nb_reaction_4 = nb_reaction_4 + 1
1811
1812indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1813indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
1814indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1815indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
1816indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1817indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
1818indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1819indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1820
1821!===========================================================
1822!      g003 : SO + O2 -> SO2 + O
1823!===========================================================
1824
1825nb_reaction_4 = nb_reaction_4 + 1
1826
1827indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1828indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1829indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1830indice_4(8*(nb_reaction_4 - 1) + 4) = i_o2
1831indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1832indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1833indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1834indice_4(8*(nb_reaction_4 - 1) + 8) = i_o
1835
1836!===========================================================
1837!      g004 : SO + O3 -> SO2 + O2
1838!===========================================================
1839
1840nb_reaction_4 = nb_reaction_4 + 1
1841
1842indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1843indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1844indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1845indice_4(8*(nb_reaction_4 - 1) + 4) = i_o3
1846indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1847indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1848indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1849indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
1850
1851!===========================================================
1852!      g005 : SO + OH -> SO2 + H
1853!===========================================================
1854
1855nb_reaction_4 = nb_reaction_4 + 1
1856
1857indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1858indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1859indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1860indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1861indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1862indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1863indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1864indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
1865
1866!===========================================================
1867!      g006 : S + OH -> SO + H
1868!===========================================================
1869
1870nb_reaction_4 = nb_reaction_4 + 1
1871
1872indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1873indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
1874indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1875indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
1876indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1877indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
1878indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1879indice_4(8*(nb_reaction_4 - 1) + 8) = i_h
1880
1881!===========================================================
1882!      g007 : SO + O + CO2 -> SO2 + CO2
1883!===========================================================
1884
1885nb_reaction_4 = nb_reaction_4 + 1
1886
1887indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1888indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1889indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1890indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1891indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1892indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1893indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1894indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1895
1896!===========================================================
1897!      g008 : SO + HO2 -> SO2 + OH
1898!===========================================================
1899
1900nb_reaction_4 = nb_reaction_4 + 1
1901
1902indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1903indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1904indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1905indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
1906indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1907indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1908indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1909indice_4(8*(nb_reaction_4 - 1) + 8) = i_oh
1910
1911!===========================================================
1912!      g009 : SO2 + O + CO2 -> SO3 + CO2
1913!===========================================================
1914
1915nb_reaction_4 = nb_reaction_4 + 1
1916
1917indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1918indice_4(8*(nb_reaction_4 - 1) + 2) = i_so2
1919indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1920indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1921indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1922indice_4(8*(nb_reaction_4 - 1) + 6) = i_so3
1923indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1924indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1925
1926!===========================================================
1927!      g010 : S + O + CO2 -> SO + CO2
1928!===========================================================
1929
1930nb_reaction_4 = nb_reaction_4 + 1
1931
1932indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1933indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
1934indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1935indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1936indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1937indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
1938indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1939indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1940
1941!===========================================================
1942!      g011 : SO3 + H2O -> H2SO4
1943!===========================================================
1944
1945nb_reaction_4 = nb_reaction_4 + 1
1946
1947indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1948indice_4(8*(nb_reaction_4 - 1) + 2) = i_so3
1949indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1950indice_4(8*(nb_reaction_4 - 1) + 4) = i_h2o
1951indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1952indice_4(8*(nb_reaction_4 - 1) + 6) = i_h2so4
1953indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1954indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1955
1956!===========================================================
1957!      g012 : SO + ClO -> SO2 + Cl
1958!===========================================================
1959
1960nb_reaction_4 = nb_reaction_4 + 1
1961
1962indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1963indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1964indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1965indice_4(8*(nb_reaction_4 - 1) + 4) = i_clo
1966indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1967indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1968indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1969indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
1970
1971!===========================================================
1972!      g013 : SO + SO3 -> SO2 + SO2
1973!===========================================================
1974
1975nb_reaction_4 = nb_reaction_4 + 1
1976
1977indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1978indice_4(8*(nb_reaction_4 - 1) + 2) = i_so
1979indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1980indice_4(8*(nb_reaction_4 - 1) + 4) = i_so3
1981indice_4(8*(nb_reaction_4 - 1) + 5) = 2
1982indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1983indice_4(8*(nb_reaction_4 - 1) + 7) = 0
1984indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
1985
1986!===========================================================
1987!      g014 : SO3 + O -> SO2 + O2
1988!===========================================================
1989
1990nb_reaction_4 = nb_reaction_4 + 1
1991
1992indice_4(8*(nb_reaction_4 - 1) + 1) = 1
1993indice_4(8*(nb_reaction_4 - 1) + 2) = i_so3
1994indice_4(8*(nb_reaction_4 - 1) + 3) = 1
1995indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
1996indice_4(8*(nb_reaction_4 - 1) + 5) = 1
1997indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
1998indice_4(8*(nb_reaction_4 - 1) + 7) = 1
1999indice_4(8*(nb_reaction_4 - 1) + 8) = i_o2
2000
2001!===========================================================
2002!      g015 : SO + SO + CO2 -> S2O2 + CO2
2003!===========================================================
2004
2005nb_reaction_3 = nb_reaction_3 + 1
2006
2007indice_3(6*(nb_reaction_3 - 1) + 1) = 2
2008indice_3(6*(nb_reaction_3 - 1) + 2) = i_so
2009indice_3(6*(nb_reaction_3 - 1) + 3) = 1
2010indice_3(6*(nb_reaction_3 - 1) + 4) = i_s2o2
2011indice_3(6*(nb_reaction_3 - 1) + 5) = 0
2012indice_3(6*(nb_reaction_3 - 1) + 6) = i_dummy
2013
2014!===========================================================
2015!      g016 : S2O2 + CO2 -> SO + SO + CO2
2016!===========================================================
2017
2018nb_phot = nb_phot + 1
2019
2020
2021indice_phot(6*(nb_phot - 1) + 1) = 1
2022indice_phot(6*(nb_phot - 1) + 2) = i_s2o2
2023indice_phot(6*(nb_phot - 1) + 3) = 2
2024indice_phot(6*(nb_phot - 1) + 4) = i_so
2025indice_phot(6*(nb_phot - 1) + 5) = 0
2026indice_phot(6*(nb_phot - 1) + 6) = i_dummy
2027
2028!===========================================================
2029!      g017 : 0.5 ClCO3 + 0.5 SO -> Cl 
2030!             0.5 ClCO3 + 0.5 SO -> SO2 + CO2
2031!===========================================================
2032
2033nb_reaction_4 = nb_reaction_4 + 1
2034
2035indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
2036indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco3
2037indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
2038indice_4(8*(nb_reaction_4 - 1) + 4) = i_so
2039indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2040indice_4(8*(nb_reaction_4 - 1) + 6) = i_cl
2041indice_4(8*(nb_reaction_4 - 1) + 7) = 0
2042indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
2043
2044nb_reaction_4 = nb_reaction_4 + 1
2045
2046indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
2047indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco3
2048indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
2049indice_4(8*(nb_reaction_4 - 1) + 4) = i_so
2050indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2051indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
2052indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2053indice_4(8*(nb_reaction_4 - 1) + 8) = i_co2
2054
2055!===========================================================
2056!      g018 : S + CO + CO2 -> OCS + CO2
2057!===========================================================
2058
2059nb_reaction_4 = nb_reaction_4 + 1
2060
2061indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2062indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
2063indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2064indice_4(8*(nb_reaction_4 - 1) + 4) = i_co
2065indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2066indice_4(8*(nb_reaction_4 - 1) + 6) = i_ocs
2067indice_4(8*(nb_reaction_4 - 1) + 7) = 0
2068indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
2069
2070!===========================================================
2071!      g019 : ClCO + S -> OCS + Cl
2072!===========================================================
2073
2074nb_reaction_4 = nb_reaction_4 + 1
2075
2076indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2077indice_4(8*(nb_reaction_4 - 1) + 2) = i_clco
2078indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2079indice_4(8*(nb_reaction_4 - 1) + 4) = i_s
2080indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2081indice_4(8*(nb_reaction_4 - 1) + 6) = i_ocs
2082indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2083indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
2084
2085!===========================================================
2086!      g020 : SO2 + OH + CO2 -> HSO3 + CO2
2087!===========================================================
2088
2089nb_reaction_4 = nb_reaction_4 + 1
2090
2091indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2092indice_4(8*(nb_reaction_4 - 1) + 2) = i_so2
2093indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2094indice_4(8*(nb_reaction_4 - 1) + 4) = i_oh
2095indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2096indice_4(8*(nb_reaction_4 - 1) + 6) = i_hso3
2097indice_4(8*(nb_reaction_4 - 1) + 7) = 0
2098indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
2099
2100!===========================================================
2101!      g021 : HSO3 + O2 -> HO2 + SO3
2102!===========================================================
2103
2104nb_reaction_4 = nb_reaction_4 + 1
2105
2106indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2107indice_4(8*(nb_reaction_4 - 1) + 2) = i_hso3
2108indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2109indice_4(8*(nb_reaction_4 - 1) + 4) = i_o2
2110indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2111indice_4(8*(nb_reaction_4 - 1) + 6) = i_ho2
2112indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2113indice_4(8*(nb_reaction_4 - 1) + 8) = i_so3
2114
2115!===========================================================
2116!      g022 : S + S + CO2 -> S2 + CO2
2117!===========================================================
2118
2119nb_reaction_3 = nb_reaction_3 + 1
2120
2121indice_3(6*(nb_reaction_3 - 1) + 1) = 2
2122indice_3(6*(nb_reaction_3 - 1) + 2) = i_s
2123indice_3(6*(nb_reaction_3 - 1) + 3) = 1
2124indice_3(6*(nb_reaction_3 - 1) + 4) = i_s2
2125indice_3(6*(nb_reaction_3 - 1) + 5) = 0
2126indice_3(6*(nb_reaction_3 - 1) + 6) = i_dummy
2127
2128!===========================================================
2129!      g023 : S2 + hv -> S + S
2130!===========================================================
2131
2132nb_phot = nb_phot + 1
2133
2134
2135indice_phot(6*(nb_phot - 1) + 1) = 1
2136indice_phot(6*(nb_phot - 1) + 2) = i_s2
2137indice_phot(6*(nb_phot - 1) + 3) = 2
2138indice_phot(6*(nb_phot - 1) + 4) = i_s
2139indice_phot(6*(nb_phot - 1) + 5) = 0
2140indice_phot(6*(nb_phot - 1) + 6) = i_dummy
2141
2142!===========================================================
2143!      g024 : S2 + O -> SO + S
2144!===========================================================
2145
2146nb_reaction_4 = nb_reaction_4 + 1
2147
2148indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2149indice_4(8*(nb_reaction_4 - 1) + 2) = i_s2
2150indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2151indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
2152indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2153indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
2154indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2155indice_4(8*(nb_reaction_4 - 1) + 8) = i_s
2156
2157!===========================================================
2158!      g025 : S + OCS -> S2 + CO
2159!===========================================================
2160
2161nb_reaction_4 = nb_reaction_4 + 1
2162
2163indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2164indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
2165indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2166indice_4(8*(nb_reaction_4 - 1) + 4) = i_ocs
2167indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2168indice_4(8*(nb_reaction_4 - 1) + 6) = i_s2
2169indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2170indice_4(8*(nb_reaction_4 - 1) + 8) = i_co
2171
2172!===========================================================
2173!      g026 : OCS + O -> SO + CO
2174!===========================================================
2175
2176nb_reaction_4 = nb_reaction_4 + 1
2177
2178indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2179indice_4(8*(nb_reaction_4 - 1) + 2) = i_ocs
2180indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2181indice_4(8*(nb_reaction_4 - 1) + 4) = i_o
2182indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2183indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
2184indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2185indice_4(8*(nb_reaction_4 - 1) + 8) = i_co
2186
2187!===========================================================
2188!      g027 : S + SO3 -> SO2 + SO
2189!===========================================================
2190
2191nb_reaction_4 = nb_reaction_4 + 1
2192
2193indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2194indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
2195indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2196indice_4(8*(nb_reaction_4 - 1) + 4) = i_so3
2197indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2198indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
2199indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2200indice_4(8*(nb_reaction_4 - 1) + 8) = i_so
2201
2202!===========================================================
2203!      g028 : S + HO2 -> SO + OH
2204!===========================================================
2205
2206nb_reaction_4 = nb_reaction_4 + 1
2207
2208indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2209indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
2210indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2211indice_4(8*(nb_reaction_4 - 1) + 4) = i_ho2
2212indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2213indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
2214indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2215indice_4(8*(nb_reaction_4 - 1) + 8) = i_oh
2216
2217!===========================================================
2218!      g029 : S + ClO -> SO + Cl
2219!===========================================================
2220
2221nb_reaction_4 = nb_reaction_4 + 1
2222
2223indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2224indice_4(8*(nb_reaction_4 - 1) + 2) = i_s
2225indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2226indice_4(8*(nb_reaction_4 - 1) + 4) = i_clo
2227indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2228indice_4(8*(nb_reaction_4 - 1) + 6) = i_so
2229indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2230indice_4(8*(nb_reaction_4 - 1) + 8) = i_cl
2231
2232!===========================================================
2233!      g030: h2so4 + h2o -> so3 + h2o + h2o
2234!===========================================================
2235
2236nb_phot = nb_phot + 1
2237
2238indice_phot(6*(nb_phot - 1) + 1) = 1
2239indice_phot(6*(nb_phot - 1) + 2) = i_h2so4
2240indice_phot(6*(nb_phot - 1) + 3) = 1
2241indice_phot(6*(nb_phot - 1) + 4) = i_so3
2242indice_phot(6*(nb_phot - 1) + 5) = 1
2243indice_phot(6*(nb_phot - 1) + 6) = i_h2o
2244
2245
2246!===========================================================
2247!      g031: so3 + ocs -> s2o2 +  co2
2248!===========================================================
2249
2250nb_reaction_4 = nb_reaction_4 + 1
2251
2252indice_4(8*(nb_reaction_4 - 1) + 1) = 1
2253indice_4(8*(nb_reaction_4 - 1) + 2) = i_so3
2254indice_4(8*(nb_reaction_4 - 1) + 3) = 1
2255indice_4(8*(nb_reaction_4 - 1) + 4) = i_ocs
2256indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2257indice_4(8*(nb_reaction_4 - 1) + 6) = i_s2o2
2258indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2259indice_4(8*(nb_reaction_4 - 1) + 8) = i_co2
2260
2261!===========================================================
2262!      g032: s2o2 + ocs -> co + so2 + s2
2263!===========================================================
2264!       decomposee en
2265!       0.5 s2o2 + 0.5 ocs -> co
2266!       0.5 s2o2 + 0.5 ocs -> so2 + s2
2267
2268nb_reaction_4 = nb_reaction_4 + 1
2269
2270indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
2271indice_4(8*(nb_reaction_4 - 1) + 2) = i_s2o2
2272indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
2273indice_4(8*(nb_reaction_4 - 1) + 4) = i_ocs
2274indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2275indice_4(8*(nb_reaction_4 - 1) + 6) = i_co
2276indice_4(8*(nb_reaction_4 - 1) + 7) = 0
2277indice_4(8*(nb_reaction_4 - 1) + 8) = i_dummy
2278
2279nb_reaction_4 = nb_reaction_4 + 1
2280
2281indice_4(8*(nb_reaction_4 - 1) + 1) = 0.5
2282indice_4(8*(nb_reaction_4 - 1) + 2) = i_s2o2
2283indice_4(8*(nb_reaction_4 - 1) + 3) = 0.5
2284indice_4(8*(nb_reaction_4 - 1) + 4) = i_ocs
2285indice_4(8*(nb_reaction_4 - 1) + 5) = 1
2286indice_4(8*(nb_reaction_4 - 1) + 6) = i_so2
2287indice_4(8*(nb_reaction_4 - 1) + 7) = 1
2288indice_4(8*(nb_reaction_4 - 1) + 8) = i_s2
2289
2290!===========================================================
2291!      g033: so + so -> so2 + s
2292!===========================================================
2293!  Krasnopolsky 2012 from Martinez & Heron 1983 or Moses et al 2002
2294
2295nb_reaction_3 = nb_reaction_3 + 1
2296
2297indice_3(6*(nb_reaction_3 - 1) + 1) = 2
2298indice_3(6*(nb_reaction_3 - 1) + 2) = i_so
2299indice_3(6*(nb_reaction_3 - 1) + 3) = 1
2300indice_3(6*(nb_reaction_3 - 1) + 4) = i_so2
2301indice_3(6*(nb_reaction_3 - 1) + 5) = 1
2302indice_3(6*(nb_reaction_3 - 1) + 6) = i_s
2303
2304!===========================================================
2305!      h001: HO2 + ice -> products
2306!            treated as
2307!            HO2 -> 0.5 H2O + 0.75 O2
2308!===========================================================
2309
2310nb_phot = nb_phot + 1
2311
2312
2313indice_phot(6*(nb_phot - 1) + 1) = 1
2314indice_phot(6*(nb_phot - 1) + 2) = i_ho2
2315indice_phot(6*(nb_phot - 1) + 3) = 0.5
2316indice_phot(6*(nb_phot - 1) + 4) = i_h2o
2317indice_phot(6*(nb_phot - 1) + 5) = 0.75
2318indice_phot(6*(nb_phot - 1) + 6) = i_o2
2319
2320!===========================================================
2321!      h002: OH + ice -> products
2322!            treated as
2323!            OH -> 0.5 H2O + 0.25 O2
2324!===========================================================
2325
2326nb_phot = nb_phot + 1
2327
2328
2329indice_phot(6*(nb_phot - 1) + 1) = 1
2330indice_phot(6*(nb_phot - 1) + 2) = i_oh
2331indice_phot(6*(nb_phot - 1) + 3) = 0.5
2332indice_phot(6*(nb_phot - 1) + 4) = i_h2o
2333indice_phot(6*(nb_phot - 1) + 5) = 0.25
2334indice_phot(6*(nb_phot - 1) + 6) = i_o2
2335
2336!===========================================================
2337!      h003: H2O2 + ice -> products
2338!            treated as
2339!            H2O2 -> H2O + 0.5 O2
2340!===========================================================
2341
2342nb_phot = nb_phot + 1
2343
2344
2345indice_phot(6*(nb_phot - 1) + 1) = 1
2346indice_phot(6*(nb_phot - 1) + 2) = i_h2o2
2347indice_phot(6*(nb_phot - 1) + 3) = 1
2348indice_phot(6*(nb_phot - 1) + 4) = i_h2o
2349indice_phot(6*(nb_phot - 1) + 5) = 0.5
2350indice_phot(6*(nb_phot - 1) + 6) = i_o2
2351
2352!===========================================================
2353!      h004: HO2 + dust -> products
2354!            treated as
2355!            HO2 -> 0.5 H2O + 0.75 O2
2356!===========================================================
2357
2358nb_phot = nb_phot + 1
2359
2360
2361indice_phot(6*(nb_phot - 1) + 1) = 1
2362indice_phot(6*(nb_phot - 1) + 2) = i_ho2
2363indice_phot(6*(nb_phot - 1) + 3) = 0.5
2364indice_phot(6*(nb_phot - 1) + 4) = i_h2o
2365indice_phot(6*(nb_phot - 1) + 5) = 0.75
2366indice_phot(6*(nb_phot - 1) + 6) = i_o2
2367
2368!===========================================================
2369!      h005: H2O2 + dust -> products
2370!            treated as
2371!            H2O2 -> H2O + 0.5 O2
2372!===========================================================
2373
2374nb_phot = nb_phot + 1
2375
2376
2377indice_phot(6*(nb_phot - 1) + 1) = 1
2378indice_phot(6*(nb_phot - 1) + 2) = i_h2o2
2379indice_phot(6*(nb_phot - 1) + 3) = 1
2380indice_phot(6*(nb_phot - 1) + 4) = i_h2o
2381indice_phot(6*(nb_phot - 1) + 5) = 0.5
2382indice_phot(6*(nb_phot - 1) + 6) = i_o2
2383
2384!===========================================================
2385!      i001: O2(Dg) + CO2 -> O2 + CO2 + hv
2386!===========================================================
2387
2388nb_phot = nb_phot + 1
2389
2390
2391indice_phot(6*(nb_phot - 1) + 1) = 1
2392indice_phot(6*(nb_phot - 1) + 2) = i_o2dg
2393indice_phot(6*(nb_phot - 1) + 3) = 1
2394indice_phot(6*(nb_phot - 1) + 4) = i_o2
2395indice_phot(6*(nb_phot - 1) + 5) = 0
2396indice_phot(6*(nb_phot - 1) + 6) = i_dummy
2397
2398!===========================================================
2399!      i002: O2(Dg) -> O2 + hv
2400!===========================================================
2401
2402nb_phot = nb_phot + 1
2403
2404
2405indice_phot(6*(nb_phot - 1) + 1) = 1
2406indice_phot(6*(nb_phot - 1) + 2) = i_o2dg
2407indice_phot(6*(nb_phot - 1) + 3) = 1
2408indice_phot(6*(nb_phot - 1) + 4) = i_o2
2409indice_phot(6*(nb_phot - 1) + 5) = 0
2410indice_phot(6*(nb_phot - 1) + 6) = i_dummy
2411 
2412!  check dimensions
2413
2414!print*, 'nb_phot       = ', nb_phot
2415!print*, 'nb_reaction_4 = ', nb_reaction_4
2416!print*, 'nb_reaction_3 = ', nb_reaction_3
2417
2418!print*, 'check dimension'
2419if ((nb_phot .NE. nb_phot_max)             .or.  &
2420    (nb_reaction_3 .NE. nb_reaction_3_max) .or.  &
2421    (nb_reaction_4 .NE. nb_reaction_4_max)) then
2422  print*, 'wrong dimensions in indice'
2423  stop
2424end if 
2425
2426end subroutine indice
2427
2428!===========================================================
2429
2430subroutine phot(nj, nztable, nsza, nso2, sza_input, dist_sol, mumean, rmco2, rmso2,                     &
2431                jphot, table_colair, table_colso2, table_sza, nz, nb_phot_max, t, p, v_phot)
2432
2433!===========================================================
2434
2435implicit none
2436
2437integer, INTENT(IN) :: nz
2438integer, INTENT(IN) :: nj, nztable, nsza, nso2
2439
2440real, INTENT(IN), dimension(nz) :: t, p
2441real, INTENT(IN), dimension(nz) :: mumean        ! [g/mol]
2442real, INTENT(IN), dimension(nso2,nsza,nztable,nj) :: jphot
2443real, INTENT(IN), dimension(nso2,nztable) :: table_colso2
2444real, INTENT(IN), dimension(nztable) :: table_colair
2445real, INTENT(IN), dimension(nsza) :: table_sza
2446real, INTENT(IN), dimension(nz) :: rmco2, rmso2
2447real, INTENT(IN) :: sza_input, dist_sol
2448
2449real, dimension(nz,nj) :: j
2450real, dimension(nz) :: coef, col, colso2
2451real, dimension(nso2) :: colref
2452real, dimension(2,2,2) :: poids
2453real :: cicol, cisza, ciso2
2454real :: avogadro, gvenus, dp
2455
2456integer :: indcol, indsza, indso2
2457integer :: isza, iz, i, iso2, ij
2458
2459integer :: nb_phot_max
2460real, dimension(nz,nb_phot_max), INTENT(INOUT) :: v_phot
2461
2462!mugaz    = 43.44E-3
2463avogadro = 6.022E+23
2464gvenus   = 8.87
2465
2466! day/night test
2467
2468if (sza_input <= 95.) then      ! day
2469
2470! interpolation in solar zenith angle
2471
2472indsza = nsza - 1
2473do isza = 1,nsza
2474   if (table_sza(isza) >= sza_input) then
2475      indsza = min(indsza,isza - 1)
2476      indsza = max(indsza, 1)
2477   end if
2478end do
2479
2480cisza = (sza_input - table_sza(indsza))                       &
2481       /(table_sza(indsza + 1) - table_sza(indsza))
2482
2483!    print*, 'indsza    = ', indsza
2484!    print*, 'table_sza = ', table_sza(indsza)
2485!    print*, 'cisza     = ', cisza
2486
2487! co2 and so2 columns
2488
2489coef(nz)   = avogadro/(gvenus*mumean(nz)*1.E-3)*1.E-4
2490col(nz)    = coef(nz)*rmco2(nz)*p(nz)*100.
2491colso2(nz) = coef(nz)*rmso2(nz)*p(nz)*100.
2492
2493do iz = nz-1, 1, -1
2494!   print*,"L2490 new_photochemistry", iz,mumean(iz)
2495   dp = (p(iz) - p(iz+1))*100.
2496   coef(iz)   = avogadro/(gvenus*mumean(iz)*1.E-3)*1.E-4
2497   col(iz)    = col(iz+1) + coef(iz)*(rmco2(iz+1) + rmco2(iz))*0.5*dp
2498   col(iz)    = min(col(iz), table_colair(1))
2499   colso2(iz) = colso2(iz+1) + coef(iz)*(rmso2(iz+1) + rmso2(iz))*0.5*dp
2500   colso2(iz) = min(colso2(iz), table_colso2(nso2,1))
2501end do
2502
2503! loop over altitude
2504
2505do iz = 1,nz
2506
2507! interpolation in co2 column
2508
2509   do i = 1,nztable
2510      if (table_colair(i) < col(iz)) then
2511         cicol = (log(col(iz)) - log(table_colair(i)))           &
2512                /(log(table_colair(i-1)) - log(table_colair(i)))
2513         indcol = i - 1
2514         exit
2515      end if
2516   end do
2517
2518! interpolation in so2 column
2519
2520! initialize indso2 and ciso2 in case colref is never larger
2521! than the gcm so2 column.
2522
2523   indso2 = nso2 - 1
2524   ciso2 = 1.
2525
2526! search for the index indso2 between which interpolate
2527
2528   do iso2 = 1,nso2
2529      colref(iso2) = cicol*table_colso2(iso2,indcol)               &
2530                   + (1.-cicol)*table_colso2(iso2,indcol+1)
2531      if (colref(iso2) > colso2(iz)) then
2532         ciso2 = (colso2(iz) - colref(iso2-1))                     &
2533                /(colref(iso2) - colref(iso2-1))
2534         indso2 = iso2 - 1
2535         exit
2536      end if
2537   end do
2538
2539! 4-dimensional interpolation weights
2540
2541! poids(so2,sza_input,co2)
2542
2543   poids(1,1,1) = (1.-ciso2)*(1.-cisza)*    cicol
2544   poids(1,1,2) = (1.-ciso2)*(1.-cisza)*(1.-cicol)
2545   poids(1,2,1) = (1.-ciso2)*    cisza *    cicol
2546   poids(1,2,2) = (1.-ciso2)*    cisza *(1.-cicol)
2547   poids(2,1,1) =     ciso2 *(1.-cisza)*    cicol
2548   poids(2,1,2) =     ciso2 *(1.-cisza)*(1.-cicol)
2549   poids(2,2,1) =     ciso2 *    cisza *    cicol
2550   poids(2,2,2) =     ciso2 *    cisza *(1.-cicol)
2551
2552! 4-dimensional interpolation in the lookup table
2553
2554   do ij = 1,nj
2555      j(iz,ij) =                                          &
2556      poids(1,1,1)*jphot(indso2  ,indsza  ,indcol  ,ij)   &
2557    + poids(1,1,2)*jphot(indso2  ,indsza  ,indcol+1,ij)   &
2558    + poids(1,2,1)*jphot(indso2  ,indsza+1,indcol  ,ij)   &
2559    + poids(1,2,2)*jphot(indso2  ,indsza+1,indcol+1,ij)   &
2560    + poids(2,1,1)*jphot(indso2+1,indsza  ,indcol  ,ij)   &
2561    + poids(2,1,2)*jphot(indso2+1,indsza  ,indcol+1,ij)   &
2562    + poids(2,2,1)*jphot(indso2+1,indsza+1,indcol  ,ij)   &
2563    + poids(2,2,2)*jphot(indso2+1,indsza+1,indcol+1,ij)
2564   end do
2565
2566end do           ! end of loop over altitude
2567
2568else             ! night
2569   j(:,:) = 0.
2570end if
2571
2572! photodissociation rates numbering in the lookup table
2573
2574!    1     o2 + hv     -> o + o
2575!    2     o2 + hv     -> o + o(1d)
2576!    3     co2 + hv    -> co + o
2577!    4     co2 + hv    -> co + o(1d)
2578!    5     o3 + hv     -> o2(Dg) + o(1d)
2579!    6     o3 + hv     -> o2 + o
2580!    7     h2o + hv    -> h + oh
2581!    8     ho2 + hv    -> oh + o
2582!    9     h2o2 + hv   -> oh + oh
2583!    10    hcl + hv    -> h + cl
2584!    11    cl2 + hv    -> cl + cl
2585!    12    hocl + hv   -> oh + cl
2586!    13    so2 + hv    -> so + o
2587!    14    so + hv     -> s + o
2588!    15    so3 + hv    -> so2 + o
2589!    16    clo + hv    -> cl + o
2590!    17    ocs + hv    -> co + s
2591!    18    cocl2 + hv  -> cl + cl + co
2592!    19    h2so4 + hv  -> so3 + h2o
2593
2594! fill v_phot array
2595
2596do ij = 1,nj
2597   v_phot(:,ij) = j(:,ij)
2598end do
2599
2600!PRINT*,'sza_input: ',sza_input
2601!IF (sza_input.le.40.5 .AND. sza_input.gt.39.5) THEN
2602!open(200, form = 'formatted')
2603!100    format(e20.6)
2604!write(200,100)(v_phot(:,19))
2605!stop
2606!END IF
2607
2608end subroutine phot
2609
2610!======================================================================
2611
2612 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)
2613 
2614!================================================================
2615! compute reaction rates                                        !
2616!----------------------------------------------------------------
2617! reaction               type                array              !
2618!----------------------------------------------------------------
2619! A + B    --> C + D     bimolecular         v_4                !
2620! A + A    --> B + C     quadratic           v_3                !
2621! A + C    --> B + C     quenching           v_phot             !
2622! A + ice  --> B + C     heterogeneous       v_phot             !
2623!================================================================
2624
2625
2626 USE chemparam_mod
2627implicit none
2628
2629real, INTENT(IN), dimension(nz)  :: t, p, conc
2630integer, INTENT(IN) :: nesp, nj, nz
2631real, INTENT(IN) :: sza_input
2632integer :: iz
2633logical, INTENT(IN) :: hetero_ice, hetero_dust
2634real    :: ak0, ak1, xpo, rate, pi, gam, bid
2635real    :: k1a0, k1b0, k1ainf, k1a, k1b, fc, fx, x, y
2636real, dimension(nz)  :: surfice1d, surfdust1d
2637real, dimension(nz) :: deq
2638real, dimension(nz) :: a001, a002, a003,                           &
2639                       b001, b002, b003, b004, b005, b006, b007,   &
2640                       b008, b009,                                 &
2641                       c001, c002, c003, c004, c005, c006, c007,   &
2642                       c008, c009, c010, c011, c012, c013, c014,   &
2643                       c015, c016, c017, c018,                     &
2644                       d001, d002, d003,                           &
2645                       e001, e002, e003, e004, e005, e006, e007,   &
2646                       e008, e009, e010, e011, e012, e013, e014,   &
2647                       e015, e016, e017, e018, e019, e020, e021,   &
2648                       e022, e023, e024, e025, e026, e027, e028,   &
2649                       e029, e030, e031, e032, e033, e034, e035,   &
2650                       e036, e037, e038, e039, e040, e041, e042,   &
2651                       e043,                                       &
2652                       f001, f002, f003, f004, f005, f006, f007,   &
2653                       f008, f009, f010, f011, f012, f013, f014,   &
2654                       f015, f016, f017, f018, f019, f020, f021,   &
2655                       f022, f023, f024, f025, f026, f027, f028,   &
2656                       f029, f030, f031, f032, f033, f034, f035,   &
2657                       f036, f037, f038, f039,                     &
2658                       g001, g002, g003, g004, g005, g006, g007,   &
2659                       g008, g009, g010, g011, g012, g013, g014,   &
2660                       g015, g016, g017, g018, g019, g020, g021,   &
2661                       g022, g023, g024, g025, g026, g027, g028,   &
2662                       g029, g030, g031, g032, g033,               &
2663                       h001, h002, h003, h004, h005,               &
2664                       i001, i002
2665
2666real, INTENT(IN), dimension(nz,nesp) :: c
2667
2668integer :: nb_phot_max, nb_reaction_3_max, nb_reaction_4_max, nb_reaction_3, nb_reaction_4, nb_phot
2669
2670real, dimension(nz,nb_phot_max) :: v_phot
2671real, dimension(nz,nb_reaction_3_max) :: v_3
2672real, dimension(nz,nb_reaction_4_max) :: v_4
2673
2674pi = acos(-1.)
2675
2676nb_phot       = nj
2677nb_reaction_3 = 0
2678nb_reaction_4 = 0
2679
2680!----------------------------------------------------------------------
2681!        reactions avec ox
2682!----------------------------------------------------------------------
2683
2684!---  a001: o + o2 + co2 -> o3 + co2
2685
2686!     jpl 2003
2687
2688      a001(:) = 2.5*6.0E-34*(t(:)/300.)**(-2.4)*conc(:)
2689
2690      nb_reaction_4 = nb_reaction_4 + 1
2691      v_4(:,nb_reaction_4) = a001(:)
2692
2693!---  a002: o + o + co2 -> o2 + co2
2694
2695!     Tsang and Hampson, J. Chem. Phys. Ref. Data, 15, 1087, 1986
2696
2697!     a002(:) = 2.5*5.2E-35*exp(900./t(:))*conc(:)
2698
2699!     Campbell and Gray, Chem. Phys. Lett., 18, 607, 1973
2700
2701      a002(:) = 2.5*9.46E-34*exp(485./t(:))*conc(:) ! nist expression
2702
2703      nb_reaction_3 = nb_reaction_3 + 1
2704      v_3(:,nb_reaction_3) = a002(:)
2705
2706!---  a003: o + o3 -> o2 + o2
2707
2708!     jpl 2003
2709
2710      a003(:) = 8.0E-12*exp(-2060./t(:))
2711
2712      nb_reaction_4 = nb_reaction_4 + 1
2713      v_4(:,nb_reaction_4) = a003(:)
2714
2715!----------------------------------------------------------------------
2716!        reactions avec o(1d)
2717!----------------------------------------------------------------------
2718
2719!---  b001: o(1d) + co2  -> o + co2
2720
2721!     jpl 2006
2722
2723      b001(:) = 7.5E-11*exp(115./t(:))
2724
2725      nb_phot = nb_phot + 1
2726      v_phot(:,nb_phot) = b001(:)*c(:,i_co2)
2727
2728!---  b002: o(1d) + h2o  -> oh + oh
2729
2730!     jpl 2006
2731 
2732      b002(:) = 1.63E-10*exp(60./t(:))
2733     
2734      nb_reaction_4 = nb_reaction_4 + 1
2735      v_4(:,nb_reaction_4) = b002(:)
2736
2737!---  b003: o(1d) + h2  -> oh + h
2738
2739!     jpl 2003
2740
2741      b003(:) = 1.1E-10
2742
2743      nb_reaction_4 = nb_reaction_4 + 1
2744      v_4(:,nb_reaction_4) = b003(:)
2745
2746!---  b004: o(1d) + o2  -> o + o2
2747
2748!     jpl 2006
2749
2750      b004(:) = 3.3E-11*exp(55./t(:))
2751
2752      nb_phot = nb_phot + 1
2753      v_phot(:,nb_phot) = b004(:)*c(:,i_o2)
2754   
2755!---  b005: o(1d) + o3  -> o2 + o2
2756
2757!     jpl 2003
2758
2759      b005(:) = 1.2E-10
2760
2761      nb_reaction_4 = nb_reaction_4 + 1
2762      v_4(:,nb_reaction_4) = b005(:)
2763   
2764!---  b006: o(1d) + o3  -> o2 + o + o
2765
2766!     jpl 2003
2767
2768      b006(:) = 1.2E-10
2769
2770      nb_reaction_4 = nb_reaction_4 + 1
2771      v_4(:,nb_reaction_4) = b006(:)
2772   
2773!----------------------------------------------------------------------
2774!        reactions des hox   
2775!----------------------------------------------------------------------
2776
2777!---  c001: o + ho2 -> oh + o2
2778
2779!     jpl 2003
2780
2781      c001(:) = 3.0E-11*exp(200./t(:))
2782
2783      nb_reaction_4 = nb_reaction_4 + 1
2784      v_4(:,nb_reaction_4) = c001(:)
2785
2786!---  c002: o + oh -> o2 + h
2787
2788!     jpl 2003
2789
2790      c002(:) = 2.2E-11*exp(120./t(:))
2791
2792      nb_reaction_4 = nb_reaction_4 + 1
2793      v_4(:,nb_reaction_4) = c002(:)
2794
2795!---  c003: h + o3 -> oh + o2
2796
2797!     jpl 2003
2798
2799      c003(:) = 1.4E-10*exp(-470./t(:))
2800
2801      nb_reaction_4 = nb_reaction_4 + 1
2802      v_4(:,nb_reaction_4) = c003(:)
2803
2804!---  c004: h + ho2 -> oh + oh
2805
2806!     jpl 2006
2807
2808      c004(:) = 7.2E-11
2809
2810      nb_reaction_4 = nb_reaction_4 + 1
2811      v_4(:,nb_reaction_4) = c004(:)
2812
2813!---  c005: h + ho2 -> h2 + o2
2814
2815!     jpl 2006
2816
2817      c005(:) = 6.9E-12
2818
2819      nb_reaction_4 = nb_reaction_4 + 1
2820      v_4(:,nb_reaction_4) = c005(:)
2821
2822!---  c006: h + ho2 -> h2o + o
2823
2824!     jpl 2006
2825
2826      c006(:) = 1.6E-12
2827
2828      nb_reaction_4 = nb_reaction_4 + 1
2829      v_4(:,nb_reaction_4) = c006(:)
2830
2831!---  c007: oh + ho2 -> h2o + o2
2832
2833!     jpl 2003
2834
2835      c007(:) = 4.8E-11*exp(250./t(:))
2836
2837      nb_reaction_4 = nb_reaction_4 + 1
2838      v_4(:,nb_reaction_4) = c007(:)
2839
2840!---  c008: ho2 + ho2 -> h2o2 + o2
2841
2842!     jpl 2006
2843
2844!     c008(:) = 3.5E-13*exp(430./t(:))
2845
2846!     christensen et al., grl, 13, 2002
2847
2848      c008(:) = 1.5E-12*exp(19./t(:))
2849
2850      nb_reaction_3 = nb_reaction_3 + 1
2851      v_3(:,nb_reaction_3) = c008(:)
2852
2853!---  c009: oh + h2o2 -> h2o + ho2
2854
2855!     jpl 2006
2856
2857      c009(:) = 1.8E-12
2858
2859      nb_reaction_4 = nb_reaction_4 + 1
2860      v_4(:,nb_reaction_4) = c009(:)
2861
2862!---  c010: oh + h2 -> h2o + h
2863
2864!     jpl 2006
2865
2866      c010(:) = 2.8E-12*exp(-1800./t(:))
2867
2868      nb_reaction_4 = nb_reaction_4 + 1
2869      v_4(:,nb_reaction_4) = c010(:)
2870
2871!---  c011: h + o2 + co2 -> ho2 + co2
2872
2873!     jpl 2006
2874
2875      do iz = 1,nz
2876         ak0 = 2.5*4.4E-32*(t(iz)/300.)**(-1.3)
2877         ak1 = 4.7E-11*(t(iz)/300.)**(-0.2)
2878
2879         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2880         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2881         c011(iz) = rate*0.6**xpo
2882      end do
2883
2884      nb_reaction_4 = nb_reaction_4 + 1
2885      v_4(:,nb_reaction_4) = c011(:)
2886
2887!---  c012: o + h2o2 -> oh + ho2
2888
2889!     jpl 2003
2890
2891      c012(:) = 1.4E-12*exp(-2000./t(:))
2892
2893      nb_reaction_4 = nb_reaction_4 + 1
2894      v_4(:,nb_reaction_4) = c012(:)
2895
2896!---  c013: oh + oh -> h2o + o
2897
2898!     jpl 2006
2899
2900      c013(:) = 1.8E-12
2901
2902      nb_reaction_3 = nb_reaction_3 + 1
2903      v_3(:,nb_reaction_3) = c013(:)
2904
2905!---  c014: oh + o3 -> ho2 + o2
2906
2907!     jpl 2003
2908
2909      c014(:) = 1.7E-12*exp(-940./t(:))
2910
2911      nb_reaction_4 = nb_reaction_4 + 1
2912      v_4(:,nb_reaction_4) = c014(:)
2913
2914!---  c015: ho2 + o3 -> oh + o2 + o2
2915
2916!     jpl 2003
2917
2918      c015(:) = 1.0E-14*exp(-490./t(:))
2919
2920      nb_reaction_4 = nb_reaction_4 + 1
2921      v_4(:,nb_reaction_4) = c015(:)
2922
2923!---  c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
2924
2925!     jpl 2003
2926
2927      c016(:) = 2.5*1.7E-33*exp(1000./t(:))*conc(:)
2928
2929      nb_reaction_3 = nb_reaction_3 + 1
2930      v_3(:,nb_reaction_3) = c016(:)
2931
2932!---  c017: oh + oh + co2 -> h2o2 + co2
2933
2934!     jpl 2003
2935
2936      do iz = 1,nz
2937         ak0 = 2.5*6.9E-31*(t(iz)/300.)**(-1.0)
2938         ak1 = 2.6E-11*(t(iz)/300.)**(0.0)
2939
2940         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2941         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2942         c017(iz) = rate*0.6**xpo
2943      end do
2944
2945      nb_reaction_3 = nb_reaction_3 + 1
2946      v_3(:,nb_reaction_3) = c017(:)
2947
2948!---  c018: h + h + co2 -> h2 + co2
2949
2950!     baulch et al., 2005
2951
2952      c018(:) = 2.5*1.8E-30*(t(:)**(-1.0))*conc(:)
2953
2954      nb_reaction_3 = nb_reaction_3 + 1
2955      v_3(:,nb_reaction_3) = c018(:)
2956
2957!----------------------------------------------------------------------
2958!        reactions des composes azotes
2959!----------------------------------------------------------------------
2960
2961!---  d001: no2 + o -> no + o2
2962
2963!     jpl 2006
2964
2965      d001(:) = 5.1E-12*exp(210./t(:))
2966
2967!---  d002: no + o3 -> no2 + o2
2968
2969!     jpl 2006
2970
2971      d002(:) = 3.0E-12*exp(-1500./t(:))
2972
2973!---  d003: no + ho2 -> no2 + oh
2974
2975!     jpl 2006
2976
2977      d003(:) = 3.5E-12*exp(250./t(:))
2978
2979!----------------------------------------------------------------------
2980!        reactions des composes carbones
2981!----------------------------------------------------------------------
2982
2983!---  e001: oh + co -> co2 + h
2984
2985!     jpl 2003
2986
2987!     e001(:) = 1.5E-13*(1 + 0.6*p(:)/1013.)
2988
2989!     mccabe et al., grl, 28, 3135, 2001
2990
2991!     e001(:) = 1.57E-13 + 3.54E-33*conc(:)
2992
2993!     jpl 2006
2994
2995!     ak0 = 1.5E-13*(t(:)/300.)**(0.6)
2996!     ak1 = 2.1E-9*(t(:)/300.)**(6.1)
2997!     rate1 = ak0/(1. + ak0/(ak1/conc(:)))
2998!     xpo1 = 1./(1. + alog10(ak0/(ak1/conc(:)))**2)
2999
3000!     ak0 = 5.9E-33*(t(:)/300.)**(-1.4)
3001!     ak1 = 1.1E-12*(t(:)/300.)**(1.3)
3002!     rate2 = (ak0*conc(:))/(1. + ak0*conc(:)/ak1)
3003!     xpo2 = 1./(1. + alog10((ak0*conc(:))/ak1)**2)
3004
3005!     e001(:) = rate1*0.6**xpo1 + rate2*0.6**xpo2
3006
3007!     joshi et al., 2006
3008
3009      do iz = 1,nz
3010         k1a0 = 1.34*2.5*conc(iz)                                &
3011               *1/(1/(3.62E-26*t(iz)**(-2.739)*exp(-20./t(iz)))  &
3012               + 1/(6.48E-33*t(iz)**(0.14)*exp(-57./t(iz))))     ! corrige de l'erreur publi
3013         k1b0 = 1.17E-19*t(iz)**(2.053)*exp(139./t(iz))          &
3014              + 9.56E-12*t(iz)**(-0.664)*exp(-167./t(iz))
3015         k1ainf = 1.52E-17*t(iz)**(1.858)*exp(28.8/t(iz))        &
3016                + 4.78E-8*t(iz)**(-1.851)*exp(-318./t(iz))
3017         x = k1a0/(k1ainf - k1b0)
3018         y = k1b0/(k1ainf - k1b0)
3019         fc = 0.628*exp(-1223./t(iz)) + (1. - 0.628)*exp(-39./t(iz))  &
3020            + exp(-t(iz)/255.)
3021         fx = fc**(1./(1. + (alog(x))**2))                   ! corrige de l'erreur publi
3022         k1a = k1a0*((1. + y)/(1. + x))*fx
3023         k1b = k1b0*(1./(1.+x))*fx
3024
3025         e001(iz) = k1a + k1b
3026      end do
3027
3028      nb_reaction_4 = nb_reaction_4 + 1
3029      v_4(:,nb_reaction_4) = e001(:)
3030
3031!---  e002: o + co + m -> co2 + m
3032
3033!     tsang and hampson, 1986.
3034
3035      e002(:) = 2.5*6.5E-33*exp(-2184./t(:))*conc(:)
3036
3037      nb_reaction_4 = nb_reaction_4 + 1
3038      v_4(:,nb_reaction_4) = e002(:)
3039
3040!----------------------------------------------------------------------
3041!        reactions des composes chlores
3042!----------------------------------------------------------------------
3043
3044!---  f001: hcl + o(1d) -> oh + cl
3045
3046!     jpl 2011
3047
3048      f001(:) = 1.0E-10
3049
3050      nb_reaction_4 = nb_reaction_4 + 1
3051      v_4(:,nb_reaction_4) = f001(:)
3052
3053!---  f002: hcl + o(1d) -> h + clo
3054
3055!     jpl 2011
3056
3057      f002(:) = 3.6E-11
3058     
3059      nb_reaction_4 = nb_reaction_4 + 1
3060      v_4(:,nb_reaction_4) = f002(:)
3061
3062!---  f003: hcl + o -> oh + cl
3063
3064!     jpl 2006
3065
3066      f003(:) = 1.0E-11*exp(-3300./t(:))
3067
3068      nb_reaction_4 = nb_reaction_4 + 1
3069      v_4(:,nb_reaction_4) = f003(:)
3070
3071!---  f004: hcl + oh -> h2o + cl
3072
3073!     jpl 2006
3074
3075      f004(:) = 2.6E-12*exp(-350./t(:))
3076
3077      nb_reaction_4 = nb_reaction_4 + 1
3078      v_4(:,nb_reaction_4) = f004(:)
3079
3080!---  f005: clo + o -> cl + o2
3081
3082!     jpl 2006
3083
3084      f005(:) = 2.8E-11*exp(85./t(:))
3085
3086      nb_reaction_4 = nb_reaction_4 + 1
3087      v_4(:,nb_reaction_4) = f005(:)
3088
3089!---  f006: clo + oh -> cl + ho2
3090
3091!     jpl 2006
3092
3093      f006(:) = 7.4E-12*exp(270./t(:))
3094
3095      nb_reaction_4 = nb_reaction_4 + 1
3096      v_4(:,nb_reaction_4) = f006(:)
3097
3098!---  f007: clo + oh -> hcl + o2
3099
3100!     jpl 2006
3101
3102      f007(:) = 6.0E-13*exp(230./t(:))
3103
3104      nb_reaction_4 = nb_reaction_4 + 1
3105      v_4(:,nb_reaction_4) = f007(:)
3106
3107!---  f008: cl + h2 -> hcl + h
3108
3109!     jpl 2006
3110
3111      f008(:) = 3.05E-11*exp(-2270./t(:))
3112
3113      nb_reaction_4 = nb_reaction_4 + 1
3114      v_4(:,nb_reaction_4) = f008(:)
3115
3116!---  f009: cl + o3 -> clo + o2
3117
3118!     jpl 2006
3119
3120      f009(:) = 2.3E-11*exp(-200./t(:))
3121
3122      nb_reaction_4 = nb_reaction_4 + 1
3123      v_4(:,nb_reaction_4) = f009(:)
3124
3125!---  f010: cl + ho2 -> clo + oh
3126
3127!     jpl 2006
3128
3129      f010(:) = 4.1E-11*exp(-450./t(:))
3130
3131      nb_reaction_4 = nb_reaction_4 + 1
3132      v_4(:,nb_reaction_4) = f010(:)
3133
3134!---  f011: cl + ho2 -> hcl + o2
3135
3136!     jpl 2006
3137
3138      f011(:) = 1.8E-11*exp(170./t(:))
3139
3140      nb_reaction_4 = nb_reaction_4 + 1
3141      v_4(:,nb_reaction_4) = f011(:)
3142
3143!---  f012: cl + h2o2 -> hcl + ho2
3144
3145!     jpl 2006
3146
3147      f012(:) = 1.1E-11*exp(-980./t(:))
3148
3149      nb_reaction_4 = nb_reaction_4 + 1
3150      v_4(:,nb_reaction_4) = f012(:)
3151
3152!---  f013: cl + co + co2 -> clco + co2
3153
3154!     jpl 2011 + nicovich et al., j. phys. chem., 1990
3155
3156      f013(:) = 3.2*1.3E-33*(t(:)/300.)**(-3.8)*conc(:)
3157
3158      nb_reaction_4 = nb_reaction_4 + 1
3159      v_4(:,nb_reaction_4) = f013(:)
3160
3161!---  f014: clco + co2 -> cl + co + co2
3162
3163!     jpl 2011
3164
3165!     deq(:) = 3.2*3.5E-25*exp(3730./t(:))
3166
3167!     mills, 1998
3168
3169      deq(:) = 1.6E-25*exp(4000./t(:))
3170
3171      f014(:) = f013(:)/(deq(:)*conc(:))
3172
3173      nb_phot = nb_phot + 1
3174      v_phot(:,nb_phot) = f014(:)*conc(:)
3175
3176!     do iz = 1, nz
3177!     print*, z(iz), t(iz), f013(iz), f014(iz), v_phot(iz,nb_phot)
3178!     end do
3179!     stop
3180
3181!---  f015: clco + o2 + m -> clco3 + m
3182
3183!     yung and demore, icarus, 51, 199-247, 1982.
3184
3185      f015(:) = 5.7E-15*exp(500./t(:))*conc(:)   &
3186               /(1.e17 + 0.05*conc(:))
3187
3188      nb_reaction_4 = nb_reaction_4 + 1
3189      v_4(:,nb_reaction_4) = f015(:)
3190
3191!---  f016: clco3 + cl -> cl + clo + co2
3192
3193!     yung and demore, icarus, 51, 199-247, 1982.
3194
3195!     decomposee en :
3196!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
3197!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
3198
3199      f016(:) = 1.0E-11
3200
3201      nb_reaction_4 = nb_reaction_4 + 1
3202      v_4(:,nb_reaction_4) = f016(:)
3203
3204      nb_reaction_4 = nb_reaction_4 + 1
3205      v_4(:,nb_reaction_4) = f016(:)
3206
3207!---  f017: clco3 + o -> cl + o2 + co2
3208
3209!     yung and demore, icarus, 51, 199-247, 1982.
3210
3211!     decomposee en :
3212!     0.5 clco3 + 0.5 o -> cl
3213!     0.5 clco3 + 0.5 o -> o2 + co2
3214
3215      f017(:) = 1.0E-11
3216
3217      nb_reaction_4 = nb_reaction_4 + 1
3218      v_4(:,nb_reaction_4) = f017(:)
3219
3220      nb_reaction_4 = nb_reaction_4 + 1
3221      v_4(:,nb_reaction_4) = f017(:)
3222
3223!---  f018: clo + ho2  -> hocl + o2
3224
3225      f018(:) = 2.7E-12*exp(220./t(:))
3226
3227      nb_reaction_4 = nb_reaction_4 + 1
3228      v_4(:,nb_reaction_4) = f018(:)
3229
3230!---  f019: oh + hocl -> h2o + clo
3231
3232      f019(:) = 3.0E-12*exp(-500./t(:))
3233
3234      nb_reaction_4 = nb_reaction_4 + 1
3235      v_4(:,nb_reaction_4) = f019(:)
3236
3237!---  f020: o + hocl -> oh + clo
3238
3239      f020(:) = 1.7E-13
3240
3241      nb_reaction_4 = nb_reaction_4 + 1
3242      v_4(:,nb_reaction_4) = f020(:)
3243
3244!---  f021: cl + cl + co2 -> cl2 + co2
3245
3246!     donohoue et al., j. phys. chem. a, 109, 7732-7741, 2005
3247
3248!     f021(:) = 2.5*8.4E-33*exp(850.*(1./t(:) - 1./298.))*conc(:)
3249
3250!     valeur utilisee par Zhang et al., 2011:
3251
3252      f021(:) = 2.6E-33*exp(900./t(:))*conc(:)
3253
3254      nb_reaction_3 = nb_reaction_3 + 1
3255      v_3(:,nb_reaction_3) = f021(:)
3256
3257!---  f022: clco + o -> cl + co2
3258
3259!     yung et al., icarus, 1982 (estimated)
3260
3261      f022(:) = 3.0E-11
3262
3263      nb_reaction_4 = nb_reaction_4 + 1
3264      v_4(:,nb_reaction_4) = f022(:)
3265
3266!---  f023: cl2 + o(1d) -> cl + clo
3267
3268!     jpl 2011
3269
3270      f023(:) = 2.0E-10
3271
3272      nb_reaction_4 = nb_reaction_4 + 1
3273      v_4(:,nb_reaction_4) = f023(:)
3274
3275!---  f024: cl2 + h  -> hcl + cl
3276
3277!     baulch et al., j. phys. chem. ref. data, 1981
3278
3279      f024(:) = 1.43E-10*exp(-591./t(:))
3280
3281      nb_reaction_4 = nb_reaction_4 + 1
3282      v_4(:,nb_reaction_4) = f024(:)
3283
3284!---  f025: cl + clco  -> cl2 + co
3285
3286!     baulch et al., j. phys. chem. ref. data, 1981
3287
3288      f025(:) = 2.16E-9*exp(-1670./t(:))
3289
3290      nb_reaction_4 = nb_reaction_4 + 1
3291      v_4(:,nb_reaction_4) = f025(:)
3292
3293!---  f026: clco + clco  -> cocl2 + co
3294
3295!     zhang et al., icarus, 2011 (estimated)
3296
3297      f026(:) = 5.0E-11
3298
3299      nb_reaction_3 = nb_reaction_3 + 1
3300      v_3(:,nb_reaction_3) = f026(:)
3301
3302!---  f027: cl + so2 + co2  -> clso2 + co2
3303
3304!     mills, phd, 1998
3305
3306      f027(:) = 1.3E-34*exp(940./t(:))*conc(:)
3307
3308      nb_reaction_4 = nb_reaction_4 + 1
3309      v_4(:,nb_reaction_4) = f027(:)
3310
3311!---  f028: clso2 + o  -> so2 + clo
3312
3313!     mills, phd, 1998
3314
3315      f028(:) = 1.0E-11
3316
3317      nb_reaction_4 = nb_reaction_4 + 1
3318      v_4(:,nb_reaction_4) = f028(:)
3319
3320!---  f029: clso2 + h  -> so2 + hcl
3321
3322!     mills, phd, 1998
3323
3324      f029(:) = 1.0E-11
3325
3326      nb_reaction_4 = nb_reaction_4 + 1
3327      v_4(:,nb_reaction_4) = f029(:)
3328
3329!---  f030: clso2 + clso2  -> cl2 + so2 + so2
3330
3331!     moses et al. 2002
3332
3333      f030(:) = 5.0E-13
3334
3335      nb_reaction_3 = nb_reaction_3 + 1
3336      v_3(:,nb_reaction_3) = f030(:)
3337
3338!---  f031: cl + o + co2  -> clo + co2
3339
3340!     yung and demore, 1999 (estimated)
3341
3342      f031(:) = 5.0E-32*conc(:)
3343
3344      nb_reaction_4 = nb_reaction_4 + 1
3345      v_4(:,nb_reaction_4) = f031(:)
3346
3347!---  f032: cl2 + o -> clo + cl
3348
3349!     mills, phd, 1998
3350
3351      f032(:) = 7.4E-12*exp(-1650./t(:))
3352
3353      nb_reaction_4 = nb_reaction_4 + 1
3354      v_4(:,nb_reaction_4) = f032(:)
3355
3356!---  f033: clco + oh -> hocl + co
3357
3358!     mills, phd, 1998
3359
3360      f033(:) = 1.5E-10
3361
3362      nb_reaction_4 = nb_reaction_4 + 1
3363      v_4(:,nb_reaction_4) = f033(:)
3364
3365!---  f034: cl2 + oh -> cl + hocl
3366
3367!     jpl 2011
3368
3369      f034(:) = 2.6E-12*exp(-1100./t(:))
3370
3371      nb_reaction_4 = nb_reaction_4 + 1
3372      v_4(:,nb_reaction_4) = f034(:)
3373
3374!---  f035: clco + o -> co + clo
3375
3376!     yung and demore, 1982
3377
3378      f035(:) = 3.0E-12
3379
3380      nb_reaction_4 = nb_reaction_4 + 1
3381      v_4(:,nb_reaction_4) = f035(:)
3382
3383!---  f036: clco + cl2 -> cocl2 + cl
3384
3385!     ohta, bull. chem. soc. jpn., 1983
3386
3387      f036(:) = 6.45E-2*f015(:)
3388
3389      nb_reaction_4 = nb_reaction_4 + 1
3390      v_4(:,nb_reaction_4) = f036(:)
3391
3392!---  f037: hcl + h -> h2 + cl
3393
3394!     mills, phd, 1998
3395
3396      f037(:) = 1.5E-11*exp(-1750./t(:))
3397
3398      nb_reaction_4 = nb_reaction_4 + 1
3399      v_4(:,nb_reaction_4) = f037(:)
3400
3401!---  f038: clco + h -> hcl + co
3402
3403!     yung and demore, 1982
3404
3405      f038(:) = 1.0E-11
3406
3407      nb_reaction_4 = nb_reaction_4 + 1
3408      v_4(:,nb_reaction_4) = f038(:)
3409
3410!---  f039: cl + h + m -> hcl + m
3411
3412!     yung and demore, 1982 (estimate)
3413
3414      f039(:) = 1.0E-32*conc(:)
3415
3416      nb_reaction_4 = nb_reaction_4 + 1
3417      v_4(:,nb_reaction_4) = f039(:)
3418
3419!----------------------------------------------------------------------
3420!        reactions des composes soufres
3421!----------------------------------------------------------------------
3422
3423!---  g001: s + o2 -> so + o
3424
3425      g001(:) = 2.3E-12
3426
3427      nb_reaction_4 = nb_reaction_4 + 1
3428      v_4(:,nb_reaction_4) = g001(:)
3429
3430!---  g002: s + o3 -> so + o2
3431
3432      g002(:) = 1.2E-11
3433
3434      nb_reaction_4 = nb_reaction_4 + 1
3435      v_4(:,nb_reaction_4) = g002(:)
3436
3437!---  g003: so + o2 -> so2 + o
3438
3439      g003(:) = 1.25E-13*exp(-2190./t(:))
3440
3441      nb_reaction_4 = nb_reaction_4 + 1
3442      v_4(:,nb_reaction_4) = g003(:)
3443
3444!---  g004: so + o3 -> so2 + o2
3445
3446      g004(:) = 3.4E-12*exp(-1100./t(:))
3447
3448      nb_reaction_4 = nb_reaction_4 + 1
3449      v_4(:,nb_reaction_4) = g004(:)
3450
3451!---  g005: so + oh -> so2 + h
3452
3453      g005(:) = 2.7E-11*exp(335./t(:))
3454
3455      nb_reaction_4 = nb_reaction_4 + 1
3456      v_4(:,nb_reaction_4) = g005(:)
3457
3458!---  g006: s + oh -> so + h
3459
3460      g006(:) = 6.6E-11
3461
3462      nb_reaction_4 = nb_reaction_4 + 1
3463      v_4(:,nb_reaction_4) = g006(:)
3464
3465!---  g007: so + o + co2 -> so2 + co2
3466
3467!     singleton and cvetanovic, j. phys. chem. ref. data, 1988
3468!     measured with co2 as third body
3469
3470      do iz = 1,nz
3471         ak0 = 4.2E-30
3472         ak1 = 5.3E-11
3473
3474         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3475         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3476         g007(iz) = rate*0.6**xpo
3477      end do
3478
3479      nb_reaction_4 = nb_reaction_4 + 1
3480      v_4(:,nb_reaction_4) = g007(:)
3481
3482!---  g008: so + ho2 -> so2 + oh
3483
3484      g008(:) = 2.8E-11
3485
3486      nb_reaction_4 = nb_reaction_4 + 1
3487      v_4(:,nb_reaction_4) = g008(:)
3488
3489!---  g009: so2 + o + co2 -> so3 + co2
3490
3491!     jpl 2011
3492!     Naido 2005
3493
3494!      do iz = 1,nz
3495!         ak0 = 2.5*1.8E-33*(t(iz)/300.)**(2.0)
3496!         ak1 = 4.2E-14*(t(iz)/300.)**(1.8)
3497
3498!         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3499!         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3500!         g009(iz) = rate*0.6**xpo
3501!         g009(iz) = 0.0E+0
3502!      end do
3503
3504      do iz = 1,nz
3505         ak0 = 5.*9.5*1.E-23*(t(iz)**(-3.0))*EXP(-2400./t(iz))
3506         ak1 = 6.1*1.E-13*EXP(-850./t(iz))
3507         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3508         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3509         fc = 0.558*EXP(-t(iz)/316.)+0.442*EXP(-t(iz)/7442.)
3510         g009(iz) = rate*fc**xpo
3511!         g009(iz) = 0.0E+0
3512      end do
3513
3514      nb_reaction_4 = nb_reaction_4 + 1
3515      v_4(:,nb_reaction_4) = g009(:)
3516
3517!---  g010: s + o + co2 -> so + co2
3518
3519!     zhang et al., icarus, 2011
3520
3521      g010(:) = 1.5E-34*exp(900./t(:))*conc(:)
3522
3523      nb_reaction_4 = nb_reaction_4 + 1
3524      v_4(:,nb_reaction_4) = g010(:)
3525
3526!---  g011: so3 + h2o + M -> h2so4 + M
3527!---  avec M = h2o
3528
3529      DO iz=1,nz
3530!     jpl 2011
3531!      g011(:) = 8.5E-21*exp(6540./t(:))*c(:,i_h2o)
3532      g011(iz) = 2.26E-23*MAX(t(iz),100.)*exp(6540./MAX(t(iz),100.)) &
3533                *c(iz,i_h2o)
3534      g011(iz) = g011(iz)*1.0E-20
3535!      g011(:) = 0. ! SANS H2SO4
3536      ENDDO
3537
3538      nb_reaction_4 = nb_reaction_4 + 1
3539      v_4(:,nb_reaction_4) = g011(:)
3540
3541!---  g012: so + clo -> so2 + cl
3542
3543!     jpl 2011
3544
3545      g012(:) = 2.8E-11
3546
3547      nb_reaction_4 = nb_reaction_4 + 1
3548      v_4(:,nb_reaction_4) = g012(:)
3549
3550!---  g013: so + so3 -> so2 + so2
3551
3552!     chung et al., int. j. chem. kinet., 1975
3553
3554      g013(:) = 2.0E-15
3555
3556      nb_reaction_4 = nb_reaction_4 + 1
3557      v_4(:,nb_reaction_4) = g013(:)
3558
3559!---  g014: so3 + o -> so2 + o2
3560
3561!     jacob and winkler, j. chem. soc. faraday trans. 1, 1972
3562
3563      g014(:) = 2.32E-16*exp(-487./t(:))
3564
3565      nb_reaction_4 = nb_reaction_4 + 1
3566      v_4(:,nb_reaction_4) = g014(:)
3567
3568!---  g015: so + so + co2 -> s2o2 + co2
3569
3570!     herron and huie, chem. phys. lett., 1980.
3571
3572      do iz = 1,nz
3573         ak0 = 2.5*4.4E-31
3574         ak1 = 1.0E-11
3575
3576         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3577         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3578         g015(iz) = rate*0.6**xpo
3579      end do
3580
3581      nb_reaction_3 = nb_reaction_3 + 1
3582      v_3(:,nb_reaction_3) = g015(:)
3583
3584!---  g016: s2o2 + co2 -> so + so + co2
3585
3586!     mills, phd, 1998
3587
3588      deq(:) = 2.5*1.0E-28*exp(6000./t(:))
3589
3590      g016(:) = g015(:)/(deq(:)*conc(:))
3591
3592      nb_phot = nb_phot + 1
3593      v_phot(:,nb_phot) = g016(:)*conc(:)
3594
3595!---  g017: clco3 + so -> cl + so2 + co2
3596
3597!     mills, phd, 1998
3598
3599!     decomposee en :
3600!     0.5 clco3 + 0.5 so -> cl
3601!     0.5 clco3 + 0.5 so -> so2 + co2
3602
3603      g017(:) = 1.0E-11
3604
3605      nb_reaction_4 = nb_reaction_4 + 1
3606      v_4(:,nb_reaction_4) = g017(:)
3607
3608      nb_reaction_4 = nb_reaction_4 + 1
3609      v_4(:,nb_reaction_4) = g017(:)
3610
3611!---  g018: s + co + co2 -> ocs + co2
3612
3613!     zhang et al., icarus, 2011 (estimate?)
3614
3615      g018(:) = 2.5*4.0E-33*exp(-1940./t(:))*conc(:)
3616     
3617!      g018(:) = 0.0E+0
3618
3619      nb_reaction_4 = nb_reaction_4 + 1
3620      v_4(:,nb_reaction_4) = g018(:)
3621
3622!---  g019: clco + s -> ocs + cl
3623
3624!     zhang et al., icarus, 2011
3625
3626      g019(:) = 3.0E-12
3627
3628!      g019(:) = 0.0E+0
3629
3630      nb_reaction_4 = nb_reaction_4 + 1
3631      v_4(:,nb_reaction_4) = g019(:)
3632
3633!---  g020: so2 + oh + co2 -> hso3 + co2
3634
3635!     jpl 2011
3636
3637      do iz = 1,nz
3638         ak0 = 2.5*3.3E-31*(t(iz)/300.)**(-4.3)
3639         ak1 = 1.6E-12
3640
3641         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3642         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3643         g020(iz) = rate*0.6**xpo
3644      end do
3645
3646      nb_reaction_4 = nb_reaction_4 + 1
3647      v_4(:,nb_reaction_4) = g020(:)
3648
3649!---  g021: hso3 + o2 -> ho2 + so3
3650
3651!     jpl 2011
3652
3653      g021(:) = 1.3E-12*exp(-330./t(:))
3654
3655      nb_reaction_4 = nb_reaction_4 + 1
3656      v_4(:,nb_reaction_4) = g021(:)
3657
3658!---  g022: s + s + co2 -> s2 + co2
3659
3660!     nicholas et al., j. chem. soc. faraday trans. 1, 1979
3661
3662      do iz = 1,nz
3663         ak0 = 1.19E-29
3664         ak1 = 1.0E-10
3665
3666         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3667         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3668         g022(iz) = rate*0.6**xpo
3669      end do
3670
3671      nb_reaction_3 = nb_reaction_3 + 1
3672      v_3(:,nb_reaction_3) = g022(:)
3673
3674!---  g023: s2 + co2 -> s + s + co2
3675
3676!     chase et al., 1985
3677
3678!      deq(:) = 2.68E-25*exp(50860./t(:))
3679
3680!      g023(:) = g022(:)/(deq(:)*conc(:))
3681
3682!      nb_phot = nb_phot + 1
3683!      v_phot(:,nb_phot) = g023(:)*conc(:)
3684
3685!     Changement pour g023 ==> s2 + hv -> s + s
3686!     Pas encore inclu dans la table jphot
3687
3688!     Pas de photodissociation sous le nuage photochimique
3689      g023(1:28)  = 0.0E+0
3690
3691!     Dependance en sza pour la photodissociation
3692!     moins de W.m-2     
3693      IF (sza_input.LT.90.0) THEN
3694        g023(29:50) = 6.5E-3*COS(sza_input*pi/180.0)
3695      ELSE
3696        g023(29:50) = 0.0E+0
3697      END IF
3698           
3699      nb_phot = nb_phot + 1
3700     
3701      v_phot(:,nb_phot) = g023(:)
3702
3703!---  g024: s2 + o -> so + s
3704
3705!     zhang et al., icarus, 2011
3706
3707      g024(:) = 2.2E-11*exp(-84./t(:))
3708
3709      nb_reaction_4 = nb_reaction_4 + 1
3710      v_4(:,nb_reaction_4) = g024(:)
3711
3712!---  g025: s + ocs -> s2 +  co
3713
3714!     lu et al., j. chem. phys., 2006
3715
3716      g025(:) = 6.63E-20*(t(:)**2.57)*exp(-1180./t(:))
3717     
3718!      g025(:) = 0.0E+0
3719
3720      nb_reaction_4 = nb_reaction_4 + 1
3721      v_4(:,nb_reaction_4) = g025(:)
3722
3723!---  g026: ocs + o -> so + co
3724
3725!     atkinson et al., 2004
3726
3727      g026(:) = 1.60E-11*exp(-2150./t(:))
3728
3729      nb_reaction_4 = nb_reaction_4 + 1
3730      v_4(:,nb_reaction_4) = g026(:)
3731
3732!---  g027: s + so3 -> so2 +  so
3733
3734!     moses et al., 2002
3735
3736      g027(:) = 1.0E-16
3737
3738      nb_reaction_4 = nb_reaction_4 + 1
3739      v_4(:,nb_reaction_4) = g027(:)
3740
3741!---  g028: s + ho2 -> so +  oh
3742
3743!     yung and demore, 1982
3744
3745      g028(:) = 3.0E-11*exp(200./t(:))
3746
3747      nb_reaction_4 = nb_reaction_4 + 1
3748      v_4(:,nb_reaction_4) = g028(:)
3749
3750!---  g029: s + clo -> so +  cl
3751
3752!     moses et al., 2002
3753
3754      g029(:) = 4.0E-11
3755
3756      nb_reaction_4 = nb_reaction_4 + 1
3757      v_4(:,nb_reaction_4) = g029(:)
3758
3759!---  g030: h2so4 + h2o -> so3 + h2o + h2o
3760
3761!     krasnopolsky , 2007
3762
3763      g030(:) = 7.0E-14*exp(-5170./t(:))
3764
3765!      g030(:) = g011(:)/(deq(:)*c(:,i_h2o))
3766!      g030(:) = 0.0E+0
3767
3768      nb_phot = nb_phot + 1
3769      v_phot(:,nb_phot) = g030(:)*c(:,i_h2o)
3770 !     v_phot(:,nb_phot) = 0.0E+0
3771     
3772!---  g031: so3 + ocs -> s2o2 +  co2
3773
3774!     krasnopolsky , 2007
3775
3776      g031(:) = 1.0E-11*exp(-10000./t(:))
3777!      g031(:) = 0.0E+0
3778     
3779      nb_reaction_4 = nb_reaction_4 + 1
3780      v_4(:,nb_reaction_4) = g031(:)
3781     
3782!---  g032: s2o2 + ocs -> co + so2 + s2
3783
3784!       decomposee en
3785!       0.5 s2o2 + 0.5 ocs -> co
3786!       0.5 s2o2 + 0.5 ocs -> so2 + s2
3787
3788!     krasnopolsky , 2007
3789
3790      g032(:) = 1.0E-20
3791!      g032(:) = 0.0E+0
3792     
3793      nb_reaction_4 = nb_reaction_4 + 1
3794      v_4(:,nb_reaction_4) = g032(:)
3795     
3796      nb_reaction_4 = nb_reaction_4 + 1
3797      v_4(:,nb_reaction_4) = g032(:)
3798
3799!      g033: so + so -> so2 + s
3800!  Krasnopolsky 2012 from Martinez & Heron 1983 or Moses et al 2002
3801
3802!      g033(:) = 3.5E-15
3803      g033(:) =1.0E-12*exp(-1700.0/t(:))
3804     
3805      nb_reaction_3 = nb_reaction_3 + 1
3806      v_3(:,nb_reaction_3) = g033(:)
3807           
3808!----------------------------------------------------------------------
3809!     heterogeneous chemistry
3810!----------------------------------------------------------------------
3811
3812      if (hetero_ice) then
3813
3814!        k = (surface*v*gamma)/4 (s-1)
3815!        v = 100*sqrt(8rt/(pi*m))  (cm s-1)
3816 
3817!---     h001: ho2 + ice -> products
3818 
3819!        cooper and abbatt, 1996: gamma = 0.025
3820     
3821         gam = 0.025
3822         h001(:) = surfice1d(:)*1.E-8       &
3823                   *100.*sqrt(8.*8.31*t(:)/(33.E-3*pi))*gam/4.
3824 
3825!        h002: oh + ice -> products
3826 
3827!        cooper and abbatt, 1996: gamma = 0.03
3828 
3829         gam = 0.03
3830         h002(:) = surfice1d(:)*1.E-8       &
3831                   *100.*sqrt(8.*8.31*t(:)/(17.E-3*pi))*gam/4.
3832
3833!---     h003: h2o2 + ice -> products
3834 
3835!        gamma = 0.    test value
3836 
3837         gam = 0.
3838         h003(:) = surfice1d(:)*1.E-8        &
3839                   *100.*sqrt(8.*8.31*t(:)/(34.E-3*pi))*gam/4.
3840      else
3841         h001(:) = 0.
3842         h002(:) = 0.
3843         h003(:) = 0.
3844      end if
3845
3846      nb_phot = nb_phot + 1
3847      v_phot(:,nb_phot) = h001(:)
3848
3849      nb_phot = nb_phot + 1
3850      v_phot(:,nb_phot) = h002(:)
3851
3852      nb_phot = nb_phot + 1
3853      v_phot(:,nb_phot) = h003(:)
3854
3855!     do iz = 1,nz
3856!        print*, z(iz), surfice1d(iz), h001(iz), h002(iz)
3857!     end do
3858!     stop
3859
3860      if (hetero_dust) then
3861 
3862!---     h004: ho2 + dust -> products
3863 
3864!        jacob, 2000: gamma = 0.2
3865!        see dereus et al., atm. chem. phys., 2005
3866 
3867         gam = 0.2
3868         h004(:) = surfdust1d(:)*1.E-8  &
3869                   *100.*sqrt(8.*8.31*t(:)/(33.E-3*pi))*gam/4.
3870 
3871!---     h005: h2o2 + dust -> products
3872 
3873!        gamma = 5.E-4
3874!        see dereus et al., atm. chem. phys., 2005
3875 
3876         gam = 5.E-4
3877         h005(:) = surfdust1d(:)*1.E-8  &
3878                   *100.*sqrt(8.*8.31*t(:)/(34.E-3*pi))*gam/4.
3879      else
3880         h004(:) = 0.
3881         h005(:) = 0.
3882      end if
3883 
3884      nb_phot = nb_phot + 1
3885      v_phot(:,nb_phot) = h004(:)
3886
3887      nb_phot = nb_phot + 1
3888      v_phot(:,nb_phot) = h005(:)
3889
3890!     print*, 'krates : nb_phot       = ', nb_phot
3891!     print*, 'krates : nb_reaction_4 = ', nb_reaction_4
3892!     print*, 'krates : nb_reaction_3 = ', nb_reaction_3
3893!     stop
3894
3895!----------------------------------------------------------------------
3896!     reactions avec 02(Dg)
3897!----------------------------------------------------------------------
3898
3899!---     i001: O2(Dg) + CO2 -> O2 + CO2 + hv
3900
3901!        Krasnopolsky (2010a)
3902
3903      i001(:) = 1.E-20
3904
3905      nb_phot = nb_phot + 1
3906      v_phot(:,nb_phot) = i001(:)*c(:,i_co2)
3907
3908!---     i002: O2(Dg) -> O2 + hv
3909
3910!        Lafferty et al; (1998)
3911
3912      i002(:) = 2.2E-4
3913
3914      nb_phot = nb_phot + 1
3915      v_phot(:,nb_phot) = i002(:)
3916
3917return
3918end subroutine krates
3919
3920!======================================================================
3921
3922 subroutine fill_eps(iz, nz, nesp, c, nb_reaction_4_max, eps_4)
3923
3924!======================================================================
3925
3926
3927 USE chemparam_mod
3928implicit none
3929
3930integer :: i4, iz, nb_reaction_4
3931real    :: ep = 1.E-3
3932integer, INTENT(IN) :: nz, nesp, nb_reaction_4_max
3933real, dimension(nb_reaction_4_max), INTENT(OUT) :: eps_4
3934
3935! number densities
3936
3937real, dimension(nz,nesp) :: c
3938
3939nb_reaction_4 = 0
3940eps_4(:) = 0.5
3941
3942!===========================================================
3943!      a001 : O + O2 + CO2 -> O3 + CO2
3944!===========================================================
3945
3946nb_reaction_4 = nb_reaction_4 + 1
3947
3948eps_4(nb_reaction_4) = c(iz,i_o)/(c(iz,i_o) + c(iz,i_o2) + ep)
3949
3950
3951!===========================================================
3952!      a003 : O + O3 -> O2 + O2
3953!===========================================================
3954
3955nb_reaction_4 = nb_reaction_4 + 1
3956
3957eps_4(nb_reaction_4) = c(iz,i_o)/(c(iz,i_o) + c(iz,i_o3) + ep)
3958
3959
3960!===========================================================
3961!      b002 : O(1D) + H2O -> OH + OH
3962!===========================================================
3963
3964nb_reaction_4 = nb_reaction_4 + 1
3965
3966eps_4(nb_reaction_4) = c(iz,i_o1d)/(c(iz,i_o1d) + c(iz,i_h2o) + ep)
3967
3968
3969!===========================================================
3970!      b003 : O(1D) + H2 -> OH + H
3971!===========================================================
3972
3973nb_reaction_4 = nb_reaction_4 + 1
3974
3975eps_4(nb_reaction_4) = c(iz,i_o1d)/(c(iz,i_o1d) + c(iz,i_h2) + ep)
3976
3977
3978!===========================================================
3979!      b005 : O(1D) + O3 -> O2 + O2
3980!===========================================================
3981
3982nb_reaction_4 = nb_reaction_4 + 1
3983
3984eps_4(nb_reaction_4) = c(iz,i_o1d)/(c(iz,i_o1d) + c(iz,i_o3) + ep)
3985
3986
3987!===========================================================
3988!      b006 : O(1D) + O3 -> O2 + O + O
3989!===========================================================
3990
3991nb_reaction_4 = nb_reaction_4 + 1
3992
3993eps_4(nb_reaction_4) = c(iz,i_o1d)/(c(iz,i_o1d) + c(iz,i_o3) + ep)
3994
3995
3996!===========================================================
3997!      c001 : O + HO2 -> OH + O2
3998!===========================================================
3999
4000nb_reaction_4 = nb_reaction_4 + 1
4001
4002eps_4(nb_reaction_4) = c(iz,i_o)/(c(iz,i_o) + c(iz,i_ho2) + ep)
4003
4004
4005!===========================================================
4006!      c002 : O + OH -> O2 + H
4007!===========================================================
4008
4009nb_reaction_4 = nb_reaction_4 + 1
4010
4011eps_4(nb_reaction_4) = c(iz,i_o)/(c(iz,i_o) + c(iz,i_oh) + ep)
4012
4013
4014!===========================================================
4015!      c003 : H + O3 -> OH + O2
4016!===========================================================
4017
4018nb_reaction_4 = nb_reaction_4 + 1
4019
4020eps_4(nb_reaction_4) = c(iz,i_h)/(c(iz,i_h) + c(iz,i_o3) + ep)
4021
4022
4023!===========================================================
4024!      c004 : H + HO2 -> OH + OH
4025!===========================================================
4026
4027nb_reaction_4 = nb_reaction_4 + 1
4028
4029eps_4(nb_reaction_4) = c(iz,i_h)/(c(iz,i_h) + c(iz,i_ho2) + ep)
4030
4031
4032!===========================================================
4033!      c005 : H + HO2 -> H2 + O2
4034!===========================================================
4035
4036nb_reaction_4 = nb_reaction_4 + 1
4037
4038eps_4(nb_reaction_4) = c(iz,i_h)/(c(iz,i_h) + c(iz,i_ho2) + ep)
4039
4040
4041!===========================================================
4042!      c006 : H + HO2 -> H2O + O
4043!===========================================================
4044
4045nb_reaction_4 = nb_reaction_4 + 1
4046
4047eps_4(nb_reaction_4) = c(iz,i_h)/(c(iz,i_h) + c(iz,i_ho2) + ep)
4048
4049
4050!===========================================================
4051!      c007 : OH + HO2 -> H2O + O2
4052!===========================================================
4053
4054nb_reaction_4 = nb_reaction_4 + 1
4055
4056eps_4(nb_reaction_4) = c(iz,i_oh)/(c(iz,i_oh) + c(iz,i_ho2) + ep)
4057
4058
4059!===========================================================
4060!      c009 : OH + H2O2 -> H2O + HO2
4061!===========================================================
4062
4063nb_reaction_4 = nb_reaction_4 + 1
4064
4065eps_4(nb_reaction_4) = c(iz,i_oh)/(c(iz,i_oh) + c(iz,i_h2o2) + ep)
4066
4067
4068!===========================================================
4069!      c010 : OH + H2 -> H2O + H
4070!===========================================================
4071
4072nb_reaction_4 = nb_reaction_4 + 1
4073
4074eps_4(nb_reaction_4) = c(iz,i_oh)/(c(iz,i_oh) + c(iz,i_h2) + ep)
4075
4076
4077!===========================================================
4078!      c011 : H + O2 + CO2 -> HO2 + CO2
4079!===========================================================
4080
4081nb_reaction_4 = nb_reaction_4 + 1
4082
4083eps_4(nb_reaction_4) = c(iz,i_h)/(c(iz,i_h) + c(iz,i_o2) + ep)
4084
4085
4086!===========================================================
4087!      c012 : O + H2O2 -> OH + HO2
4088!===========================================================
4089
4090nb_reaction_4 = nb_reaction_4 + 1
4091
4092eps_4(nb_reaction_4) = c(iz,i_o)/(c(iz,i_o) + c(iz,i_h2o2) + ep)
4093
4094
4095!===========================================================
4096!      c014 : OH + O3 -> HO2 + O2
4097!===========================================================
4098
4099nb_reaction_4 = nb_reaction_4 + 1
4100
4101eps_4(nb_reaction_4) = c(iz,i_oh)/(c(iz,i_oh) + c(iz,i_o3) + ep)
4102
4103
4104!===========================================================
4105!      c015 : HO2 + O3 -> OH + O2 + O2
4106!===========================================================
4107
4108nb_reaction_4 = nb_reaction_4 + 1
4109
4110eps_4(nb_reaction_4) = c(iz,i_ho2)/(c(iz,i_ho2) + c(iz,i_o3) + ep)
4111
4112
4113!===========================================================
4114!      e001 : CO + OH -> CO2 + H
4115!===========================================================
4116
4117nb_reaction_4 = nb_reaction_4 + 1
4118
4119eps_4(nb_reaction_4) = c(iz,i_co)/(c(iz,i_oh) + c(iz,i_co) + ep)
4120
4121
4122!===========================================================
4123!      e002 : CO + O + M -> CO2 + M
4124!===========================================================
4125
4126nb_reaction_4 = nb_reaction_4 + 1
4127
4128eps_4(nb_reaction_4) = c(iz,i_co)/(c(iz,i_o) + c(iz,i_co) + ep)
4129
4130
4131!===========================================================
4132!      f001 : HCl + O(1D) -> OH + Cl
4133!===========================================================
4134
4135nb_reaction_4 = nb_reaction_4 + 1
4136
4137eps_4(nb_reaction_4) = c(iz,i_hcl)/(c(iz,i_hcl) + c(iz,i_o1d) + ep)
4138
4139
4140!===========================================================
4141!      f002 : HCl + O(1D) -> H + ClO
4142!===========================================================
4143
4144nb_reaction_4 = nb_reaction_4 + 1
4145
4146eps_4(nb_reaction_4) = c(iz,i_hcl)/(c(iz,i_hcl) + c(iz,i_o1d) + ep)
4147
4148
4149!===========================================================
4150!      f003 : HCl + O -> OH + Cl
4151!===========================================================
4152
4153nb_reaction_4 = nb_reaction_4 + 1
4154
4155eps_4(nb_reaction_4) = c(iz,i_hcl)/(c(iz,i_hcl) + c(iz,i_o) + ep)
4156
4157
4158!===========================================================
4159!      f004 : HCl + OH -> H2O + Cl
4160!===========================================================
4161
4162nb_reaction_4 = nb_reaction_4 + 1
4163
4164eps_4(nb_reaction_4) = c(iz,i_hcl)/(c(iz,i_hcl) + c(iz,i_oh) + ep)
4165
4166
4167!===========================================================
4168!      f005 : ClO + O -> Cl + O2
4169!===========================================================
4170
4171nb_reaction_4 = nb_reaction_4 + 1
4172
4173eps_4(nb_reaction_4) = c(iz,i_clo)/(c(iz,i_clo) + c(iz,i_o) + ep)
4174
4175
4176!===========================================================
4177!      f006 : ClO + OH -> Cl + HO2
4178!===========================================================
4179
4180nb_reaction_4 = nb_reaction_4 + 1
4181
4182eps_4(nb_reaction_4) = c(iz,i_clo)/(c(iz,i_clo) + c(iz,i_oh) + ep)
4183
4184
4185!===========================================================
4186!      f007 : ClO + OH -> HCl + O2
4187!===========================================================
4188
4189nb_reaction_4 = nb_reaction_4 + 1
4190
4191eps_4(nb_reaction_4) = c(iz,i_clo)/(c(iz,i_clo) + c(iz,i_oh) + ep)
4192
4193
4194!===========================================================
4195!      f008 : Cl + H2 -> HCl + H
4196!===========================================================
4197
4198nb_reaction_4 = nb_reaction_4 + 1
4199
4200eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_h2) + ep)
4201
4202
4203!===========================================================
4204!      f009 : Cl + O3 -> ClO + O2
4205!===========================================================
4206
4207nb_reaction_4 = nb_reaction_4 + 1
4208
4209eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_o3) + ep)
4210
4211
4212!===========================================================
4213!      f010 : Cl + HO2 -> ClO + OH
4214!===========================================================
4215
4216nb_reaction_4 = nb_reaction_4 + 1
4217
4218eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_ho2) + ep)
4219
4220
4221!===========================================================
4222!      f011 : Cl + HO2 -> HCl + O2
4223!===========================================================
4224
4225nb_reaction_4 = nb_reaction_4 + 1
4226
4227eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_ho2) + ep)
4228
4229
4230!===========================================================
4231!      f012 : Cl + H2O2 -> HCl + HO2
4232!===========================================================
4233
4234nb_reaction_4 = nb_reaction_4 + 1
4235
4236eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_h2o2) + ep)
4237
4238
4239!===========================================================
4240!      f013 : Cl + CO + CO2 -> ClCO + CO2
4241!===========================================================
4242
4243nb_reaction_4 = nb_reaction_4 + 1
4244
4245eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_co) + ep)
4246
4247
4248!===========================================================
4249!      f015 : ClCO + O2 + M -> ClCO3 + CO2
4250!===========================================================
4251
4252nb_reaction_4 = nb_reaction_4 + 1
4253
4254eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_o2) + ep)
4255
4256
4257!===========================================================
4258!      f016 : 0.5 ClCO3 + 0.5 Cl -> Cl  + 0.5 CO2 
4259!             0.5 ClCO3 + 0.5 Cl -> ClO + 0.5 CO2
4260!===========================================================
4261
4262nb_reaction_4 = nb_reaction_4 + 1
4263
4264eps_4(nb_reaction_4) = c(iz,i_clco3)/(c(iz,i_clco3) + c(iz,i_cl) + ep)
4265
4266nb_reaction_4 = nb_reaction_4 + 1
4267
4268eps_4(nb_reaction_4) = c(iz,i_clco3)/(c(iz,i_clco3) + c(iz,i_cl) + ep)
4269
4270
4271!===========================================================
4272!      f017 : 0.5 ClCO3 + 0.5 O -> Cl 
4273!             0.5 ClCO3 + 0.5 O -> O2 + CO2
4274!===========================================================
4275
4276nb_reaction_4 = nb_reaction_4 + 1
4277
4278eps_4(nb_reaction_4) = c(iz,i_clco3)/(c(iz,i_clco3) + c(iz,i_o) + ep)
4279
4280nb_reaction_4 = nb_reaction_4 + 1
4281
4282eps_4(nb_reaction_4) = c(iz,i_clco3)/(c(iz,i_clco3) + c(iz,i_o) + ep)
4283
4284
4285!===========================================================
4286!      f018 : ClO + HO2 -> HOCl + O2
4287!===========================================================
4288
4289nb_reaction_4 = nb_reaction_4 + 1
4290
4291eps_4(nb_reaction_4) = c(iz,i_clo)/(c(iz,i_clo) + c(iz,i_ho2) + ep)
4292
4293
4294!===========================================================
4295!      f019 : OH + HOCl -> H2O + ClO
4296!===========================================================
4297
4298nb_reaction_4 = nb_reaction_4 + 1
4299
4300eps_4(nb_reaction_4) = c(iz,i_oh)/(c(iz,i_oh) + c(iz,i_hocl) + ep)
4301
4302
4303!===========================================================
4304!      f020 : O + HOCl -> OH + ClO
4305!===========================================================
4306
4307nb_reaction_4 = nb_reaction_4 + 1
4308
4309eps_4(nb_reaction_4) = c(iz,i_o)/(c(iz,i_o) + c(iz,i_hocl) + ep)
4310
4311
4312!===========================================================
4313!      f022 : ClCO + O -> Cl + CO2
4314!===========================================================
4315
4316nb_reaction_4 = nb_reaction_4 + 1
4317
4318eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_o) + ep)
4319
4320
4321!===========================================================
4322!      f023 : Cl2 + O(1D) -> Cl + ClO
4323!===========================================================
4324
4325nb_reaction_4 = nb_reaction_4 + 1
4326
4327eps_4(nb_reaction_4) = c(iz,i_cl2)/(c(iz,i_cl2) + c(iz,i_o1d) + ep)
4328
4329
4330!===========================================================
4331!      f024 : Cl2 + H -> HCl + Cl
4332!===========================================================
4333
4334nb_reaction_4 = nb_reaction_4 + 1
4335
4336eps_4(nb_reaction_4) = c(iz,i_cl2)/(c(iz,i_cl2) + c(iz,i_h) + ep)
4337
4338
4339!===========================================================
4340!      f025 : Cl + ClCO -> Cl2 + CO
4341!===========================================================
4342
4343nb_reaction_4 = nb_reaction_4 + 1
4344
4345eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_clco) + ep)
4346
4347
4348!===========================================================
4349!      f027 : Cl + SO2 + CO2 -> ClSO2 + CO2
4350!===========================================================
4351
4352nb_reaction_4 = nb_reaction_4 + 1
4353
4354eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_so2) + ep)
4355
4356
4357!===========================================================
4358!      f028 : ClSO2 + O -> SO2 + ClO
4359!===========================================================
4360
4361nb_reaction_4 = nb_reaction_4 + 1
4362
4363eps_4(nb_reaction_4) = c(iz,i_clso2)/(c(iz,i_clso2) + c(iz,i_o) + ep)
4364
4365
4366!===========================================================
4367!      f029 : ClSO2 + H -> SO2 + HCl
4368!===========================================================
4369
4370nb_reaction_4 = nb_reaction_4 + 1
4371
4372eps_4(nb_reaction_4) = c(iz,i_clso2)/(c(iz,i_clso2) + c(iz,i_h) + ep)
4373
4374
4375!===========================================================
4376!      f031 : Cl + O + CO2 -> ClO + CO2
4377!===========================================================
4378
4379nb_reaction_4 = nb_reaction_4 + 1
4380
4381eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_o) + ep)
4382
4383
4384!===========================================================
4385!      f032 : Cl2 + O -> ClO + Cl
4386!===========================================================
4387
4388nb_reaction_4 = nb_reaction_4 + 1
4389
4390eps_4(nb_reaction_4) = c(iz,i_cl2)/(c(iz,i_cl2) + c(iz,i_o) + ep)
4391
4392
4393!===========================================================
4394!      f033 : ClCO + OH -> HOCl + CO
4395!===========================================================
4396
4397nb_reaction_4 = nb_reaction_4 + 1
4398
4399eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_oh) + ep)
4400
4401
4402!===========================================================
4403!      f034 : Cl2 + OH -> Cl + HOCl
4404!===========================================================
4405
4406nb_reaction_4 = nb_reaction_4 + 1
4407
4408eps_4(nb_reaction_4) = c(iz,i_cl2)/(c(iz,i_cl2) + c(iz,i_oh) + ep)
4409
4410
4411!===========================================================
4412!      f035 : ClCO + O -> CO + ClO
4413!===========================================================
4414
4415nb_reaction_4 = nb_reaction_4 + 1
4416
4417eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_o) + ep)
4418
4419
4420!===========================================================
4421!      f036 : ClCO + Cl2 -> COCl2 + Cl
4422!===========================================================
4423
4424nb_reaction_4 = nb_reaction_4 + 1
4425
4426eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_cl2) + ep)
4427
4428
4429!===========================================================
4430!      f037 : HCl + H -> H2 + Cl
4431!===========================================================
4432
4433nb_reaction_4 = nb_reaction_4 + 1
4434
4435eps_4(nb_reaction_4) = c(iz,i_hcl)/(c(iz,i_hcl) + c(iz,i_h) + ep)
4436
4437
4438!===========================================================
4439!      f038 : ClCO + H -> HCl + CO
4440!===========================================================
4441
4442nb_reaction_4 = nb_reaction_4 + 1
4443
4444eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_h) + ep)
4445
4446
4447!===========================================================
4448!      f039 : Cl + H + M -> HCl + M
4449!===========================================================
4450
4451nb_reaction_4 = nb_reaction_4 + 1
4452
4453eps_4(nb_reaction_4) = c(iz,i_cl)/(c(iz,i_cl) + c(iz,i_h) + ep)
4454
4455
4456!===========================================================
4457!      g001 : S + O2 -> SO + O
4458!===========================================================
4459
4460nb_reaction_4 = nb_reaction_4 + 1
4461
4462eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_o2) + ep)
4463
4464
4465!===========================================================
4466!      g002 : S + O3 -> SO + O2
4467!===========================================================
4468
4469nb_reaction_4 = nb_reaction_4 + 1
4470
4471eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_o3) + ep)
4472
4473
4474!===========================================================
4475!      g003 : SO + O2 -> SO2 + O
4476!===========================================================
4477
4478nb_reaction_4 = nb_reaction_4 + 1
4479
4480eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_o2) + ep)
4481
4482
4483!===========================================================
4484!      g004 : SO + O3 -> SO2 + O2
4485!===========================================================
4486
4487nb_reaction_4 = nb_reaction_4 + 1
4488
4489eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_o3) + ep)
4490
4491
4492!===========================================================
4493!      g005 : SO + OH -> SO2 + H
4494!===========================================================
4495
4496nb_reaction_4 = nb_reaction_4 + 1
4497
4498eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_oh) + ep)
4499
4500
4501!===========================================================
4502!      g006 : S + OH -> SO + H
4503!===========================================================
4504
4505nb_reaction_4 = nb_reaction_4 + 1
4506
4507eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_oh) + ep)
4508
4509
4510!===========================================================
4511!      g007 : SO + O + CO2 -> SO2 + CO2
4512!===========================================================
4513
4514nb_reaction_4 = nb_reaction_4 + 1
4515
4516eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_o) + ep)
4517
4518
4519!===========================================================
4520!      g008 : SO + HO2 -> SO2 + OH
4521!===========================================================
4522
4523nb_reaction_4 = nb_reaction_4 + 1
4524
4525eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_ho2) + ep)
4526
4527
4528!===========================================================
4529!      g009 : SO2 + O + CO2 -> SO3 + CO2
4530!===========================================================
4531
4532nb_reaction_4 = nb_reaction_4 + 1
4533
4534eps_4(nb_reaction_4) = c(iz,i_so2)/(c(iz,i_so2) + c(iz,i_o) + ep)
4535
4536
4537!===========================================================
4538!      g010 : S + O + CO2 -> SO + CO2
4539!===========================================================
4540
4541nb_reaction_4 = nb_reaction_4 + 1
4542
4543eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_o) + ep)
4544
4545
4546!===========================================================
4547!      g011 : SO3 + H2O -> H2SO4
4548!===========================================================
4549
4550nb_reaction_4 = nb_reaction_4 + 1
4551
4552eps_4(nb_reaction_4) = c(iz,i_so3)/(c(iz,i_so3) + c(iz,i_h2o) + ep)
4553
4554
4555!===========================================================
4556!      g012 : SO + ClO -> SO2 + Cl
4557!===========================================================
4558
4559nb_reaction_4 = nb_reaction_4 + 1
4560
4561eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_clo) + ep)
4562
4563
4564!===========================================================
4565!      g013 : SO + SO3 -> SO2 + SO2
4566!===========================================================
4567
4568nb_reaction_4 = nb_reaction_4 + 1
4569
4570eps_4(nb_reaction_4) = c(iz,i_so)/(c(iz,i_so) + c(iz,i_so3) + ep)
4571
4572
4573!===========================================================
4574!      g014 : SO3 + O -> SO2 + O2
4575!===========================================================
4576
4577nb_reaction_4 = nb_reaction_4 + 1
4578
4579eps_4(nb_reaction_4) = c(iz,i_so3)/(c(iz,i_so3) + c(iz,i_o) + ep)
4580
4581
4582!===========================================================
4583!      g017 : 0.5 ClCO3 + 0.5 SO -> Cl 
4584!             0.5 ClCO3 + 0.5 SO -> SO2 + CO2
4585!===========================================================
4586
4587nb_reaction_4 = nb_reaction_4 + 1
4588
4589eps_4(nb_reaction_4) = c(iz,i_clco3)/(c(iz,i_clco3) + c(iz,i_so) + ep)
4590
4591nb_reaction_4 = nb_reaction_4 + 1
4592
4593eps_4(nb_reaction_4) = c(iz,i_clco3)/(c(iz,i_clco3) + c(iz,i_so) + ep)
4594
4595
4596!===========================================================
4597!      g018 : S + CO + CO2 -> OCS + CO2
4598!===========================================================
4599
4600nb_reaction_4 = nb_reaction_4 + 1
4601
4602eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_co) + ep)
4603
4604
4605!===========================================================
4606!      g019 : ClCO + S + -> OCS + Cl
4607!===========================================================
4608
4609nb_reaction_4 = nb_reaction_4 + 1
4610
4611eps_4(nb_reaction_4) = c(iz,i_clco)/(c(iz,i_clco) + c(iz,i_s) + ep)
4612
4613
4614!===========================================================
4615!      g020 : SO2 + OH + CO2 -> HSO3 + CO2
4616!===========================================================
4617
4618nb_reaction_4 = nb_reaction_4 + 1
4619
4620eps_4(nb_reaction_4) = c(iz,i_so2)/(c(iz,i_so2) + c(iz,i_oh) + ep)
4621
4622
4623!===========================================================
4624!      g021 : HSO3 + O2 -> HO2 + SO3
4625!===========================================================
4626
4627nb_reaction_4 = nb_reaction_4 + 1
4628
4629eps_4(nb_reaction_4) = c(iz,i_hso3)/(c(iz,i_hso3) + c(iz,i_o2) + ep)
4630
4631
4632!===========================================================
4633!      g024 : S2 + O -> SO + S
4634!===========================================================
4635
4636nb_reaction_4 = nb_reaction_4 + 1
4637
4638eps_4(nb_reaction_4) = c(iz,i_s2)/(c(iz,i_s2) + c(iz,i_o) + ep)
4639
4640
4641!===========================================================
4642!      g025 : S + OCS -> S2 + CO
4643!===========================================================
4644
4645nb_reaction_4 = nb_reaction_4 + 1
4646
4647eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_ocs) + ep)
4648
4649
4650!===========================================================
4651!      g026 : OCS + O -> SO + CO
4652!===========================================================
4653
4654nb_reaction_4 = nb_reaction_4 + 1
4655
4656eps_4(nb_reaction_4) = c(iz,i_ocs)/(c(iz,i_ocs) + c(iz,i_o) + ep)
4657
4658
4659!===========================================================
4660!      g027 : S + SO3 -> SO2 + SO
4661!===========================================================
4662
4663nb_reaction_4 = nb_reaction_4 + 1
4664
4665eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_so3) + ep)
4666
4667
4668!===========================================================
4669!      g028 : S + HO2 -> SO + OH
4670!===========================================================
4671
4672nb_reaction_4 = nb_reaction_4 + 1
4673
4674eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_ho2) + ep)
4675
4676
4677!===========================================================
4678!      g029 : S + ClO -> SO + Cl
4679!===========================================================
4680
4681nb_reaction_4 = nb_reaction_4 + 1
4682
4683eps_4(nb_reaction_4) = c(iz,i_s)/(c(iz,i_s) + c(iz,i_clo) + ep)
4684
4685
4686!===========================================================
4687!      g031 : SO3 + OCS -> S2O2 + CO2
4688!===========================================================
4689
4690nb_reaction_4 = nb_reaction_4 + 1
4691
4692eps_4(nb_reaction_4) = c(iz,i_so3)/(c(iz,i_so3) + c(iz,i_ocs) + ep)
4693
4694!===========================================================
4695!      g032 : 0.5 s2o2 + 0.5 ocs -> co
4696!               0.5 s2o2 + 0.5 ocs -> so2 + s2
4697!===========================================================   
4698
4699nb_reaction_4 = nb_reaction_4 + 1
4700
4701eps_4(nb_reaction_4) = c(iz,i_s2o2)/(c(iz,i_s2o2) + c(iz,i_ocs) + ep)
4702
4703nb_reaction_4 = nb_reaction_4 + 1
4704
4705eps_4(nb_reaction_4) = c(iz,i_s2o2)/(c(iz,i_s2o2) + c(iz,i_ocs) + ep)
4706
4707!===========================================================
4708
4709
4710
4711do i4 = 1,nb_reaction_4
4712   eps_4(i4) = max(eps_4(i4), 0.E+0)
4713   eps_4(i4) = min(eps_4(i4), 1.E+0)
4714end do
4715
4716return
4717end subroutine fill_eps
4718
4719!======================================================================
4720
4721 subroutine fill_matrix(ind,dtx, nz, nesp, v_phot, v_3, v_4, eps_4, c,     &
4722                        nb_phot_max, nb_reaction_3_max, nb_reaction_4_max, &
4723                        indice_phot, indice_3, indice_4, mat)
4724
4725!======================================================================
4726
4727! filling of the jacobian matrix
4728
4729implicit none
4730
4731integer, INTENT(IN) :: nesp, nz
4732integer, INTENT(IN) :: ind
4733integer :: iesp,i_phot,i_3,i_4
4734integer :: i_phot_2,i_phot_4,i_phot_6
4735integer :: i_3_2,i_3_4,i_3_6
4736integer :: i_4_2,i_4_4,i_4_6,i_4_8
4737integer :: iphot,i3,i4
4738
4739real :: Xphot_11,Xphot_21,Xphot_31
4740real :: X3_11,X3_21,X3_31
4741real :: X4_11,X4_12,X4_21,X4_22,X4_31,X4_32,X4_41,X4_42
4742real, INTENT(IN) :: dtx
4743
4744real, INTENT(IN), dimension(nz,nesp) :: c
4745
4746! matrix
4747
4748real, dimension(nesp,nesp), INTENT(OUT) :: mat
4749!real              :: d
4750!integer                    :: code
4751!integer, dimension(nesp)   :: indx
4752
4753! reaction rates and indices
4754
4755integer :: nb_phot_max, nb_reaction_3_max, nb_reaction_4_max
4756real, dimension(6*nb_phot_max), INTENT(IN) :: indice_phot
4757real, dimension(6*nb_reaction_3_max), INTENT(IN) :: indice_3
4758real, dimension(8*nb_reaction_4_max), INTENT(IN) :: indice_4
4759real, dimension(nz, nb_phot_max), INTENT(IN) :: v_phot
4760real, dimension(nz, nb_reaction_3_max), INTENT(IN) :: v_3
4761real, dimension(nz, nb_reaction_4_max), INTENT(IN) :: v_4
4762real, dimension(nb_reaction_4_max), INTENT(IN) :: eps_4
4763     
4764! initialisation
4765
4766mat(:,:) = 0.
4767do iesp = 1,nesp
4768  mat(iesp,iesp) = 1.
4769end do 
4770
4771! photodissociations
4772! or reactions a + c -> b + c
4773! or reactions a + ice -> b + c
4774do iphot = 1,nb_phot_max   
4775  i_phot = 6*(iphot-1)
4776  i_phot_2 = int(indice_phot(i_phot+2))
4777  i_phot_4 = int(indice_phot(i_phot+4))
4778  i_phot_6 = int(indice_phot(i_phot+6))
4779  Xphot_11 = indice_phot(i_phot+1)*v_phot(ind,iphot)*dtx
4780  Xphot_21 =-indice_phot(i_phot+3)*v_phot(ind,iphot)*dtx
4781  Xphot_31 =-indice_phot(i_phot+5)*v_phot(ind,iphot)*dtx
4782  mat(i_phot_2,i_phot_2) = mat(i_phot_2,i_phot_2) + Xphot_11
4783  mat(i_phot_4,i_phot_2) = mat(i_phot_4,i_phot_2) + Xphot_21
4784  mat(i_phot_6,i_phot_2) = mat(i_phot_6,i_phot_2) + Xphot_31
4785end do
4786
4787! reactions a + a -> b + c
4788
4789do i3 = 1,nb_reaction_3_max
4790  i_3 = 6*(i3-1)
4791  i_3_2 = int(indice_3(i_3+2))
4792  i_3_4 = int(indice_3(i_3+4))
4793  i_3_6 = int(indice_3(i_3+6))
4794  X3_11 = indice_3(i_3+1)*v_3(ind,i3)*c(ind,i_3_2)*dtx
4795  X3_21 =-indice_3(i_3+3)*v_3(ind,i3)*c(ind,i_3_2)*dtx
4796  X3_31 =-indice_3(i_3+5)*v_3(ind,i3)*c(ind,i_3_2)*dtx
4797  mat(i_3_2,i_3_2) = mat(i_3_2,i_3_2) + X3_11
4798  mat(i_3_4,i_3_2) = mat(i_3_4,i_3_2) + X3_21
4799  mat(i_3_6,i_3_2) = mat(i_3_6,i_3_2) + X3_31
4800end do
4801
4802! reactions a + b -> c + d
4803
4804do i4 = 1,nb_reaction_4_max
4805  i_4 = 8*(i4-1)
4806  i_4_2 = int(indice_4(i_4+2))
4807  i_4_4 = int(indice_4(i_4+4))
4808  i_4_6 = int(indice_4(i_4+6))
4809  i_4_8 = int(indice_4(i_4+8))
4810  X4_11 = indice_4(i_4+1)*v_4(ind,i4)*dtx*(1-eps_4(i4))*c(ind,i_4_4)
4811  X4_12 = indice_4(i_4+1)*v_4(ind,i4)*dtx*eps_4(i4)*c(ind,i_4_2)
4812  X4_21 = indice_4(i_4+3)*v_4(ind,i4)*dtx*(1-eps_4(i4))*c(ind,i_4_4)
4813  X4_22 = indice_4(i_4+3)*v_4(ind,i4)*dtx*eps_4(i4)*c(ind,i_4_2)
4814  X4_31 =-indice_4(i_4+5)*v_4(ind,i4)*dtx*(1-eps_4(i4))*c(ind,i_4_4)
4815  X4_32 =-indice_4(i_4+5)*v_4(ind,i4)*dtx*eps_4(i4)*c(ind,i_4_2)
4816  X4_41 =-indice_4(i_4+7)*v_4(ind,i4)*dtx*(1-eps_4(i4))*c(ind,i_4_4)
4817  X4_42 =-indice_4(i_4+7)*v_4(ind,i4)*dtx*eps_4(i4)*c(ind,i_4_2)
4818  mat(i_4_2,i_4_2) = mat(i_4_2,i_4_2) + X4_11
4819  mat(i_4_2,i_4_4) = mat(i_4_2,i_4_4) + X4_12
4820  mat(i_4_4,i_4_2) = mat(i_4_4,i_4_2) + X4_21
4821  mat(i_4_4,i_4_4) = mat(i_4_4,i_4_4) + X4_22   
4822  mat(i_4_6,i_4_2) = mat(i_4_6,i_4_2) + X4_31
4823  mat(i_4_6,i_4_4) = mat(i_4_6,i_4_4) + X4_32
4824  mat(i_4_8,i_4_2) = mat(i_4_8,i_4_2) + X4_41
4825  mat(i_4_8,i_4_4) = mat(i_4_8,i_4_4) + X4_42
4826end do
4827
4828end subroutine fill_matrix
4829
4830      SUBROUTINE  rate_save(            &
4831                           n_lev,       &
4832                           pres,        &
4833                           temperature, &
4834                           traceur,     &
4835                           nq_max,      &
4836                           vphot,       &
4837                           v3,          &
4838                           v4)     
4839!==================
4840!!!!! MODEL 1D !!!! ==> n_lon = 1 !!!!
4841!==================
4842! Ici on a les variables pour le modele 1D, surtout pour la sauvegarde des taux de prod/consom
4843!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4844!PENSER a changer les conditions de time_tot
4845!time_tot=nbr_pdt*(nbr_jour-1)
4846!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4847
4848      USE chemparam_mod
4849      IMPLICIT none
4850           
4851
4852!INTEGER, PARAMETER :: time_tot=6000*1
4853
4854INTEGER :: unit_loc, ierr_loc           ! unite de lecture de "rcm1d.def"
4855     
4856INTEGER, SAVE :: time_tot,nbr_pdt,nbr_jour
4857INTEGER, SAVE :: cpt_time, cpt_time_rate
4858DOUBLE PRECISION, DIMENSION(n_lev,126) :: rate_day
4859DOUBLE PRECISION, DIMENSION(n_lev,126) :: rate_night
4860DOUBLE PRECISION :: rate_local
4861DOUBLE PRECISION :: concentration(n_lev)
4862DOUBLE PRECISION :: pres(n_lev)
4863DOUBLE PRECISION :: temperature(n_lev)
4864DOUBLE PRECISION :: traceur(n_lev,nq_max)
4865     
4866INTEGER :: n_lev, nq_max
4867INTEGER :: i_lev, i_react, i_v
4868
4869INTEGER :: i
4870 
4871LOGICAL, SAVE :: f_call = .true.
4872
4873integer, parameter :: nb_phot_max = 31
4874integer, parameter :: nb_reaction_3_max = 11
4875integer, parameter :: nb_reaction_4_max = 84
4876     
4877real, dimension(n_lev,nb_phot_max) :: vphot
4878real, dimension(n_lev,nb_reaction_3_max) :: v3
4879real, dimension(n_lev,nb_reaction_4_max) :: v4
4880
4881!PRINT*,"DEBUT subroutine rate_save"
4882
4883
4884      IF (f_call) THEN
4885! ------------------------------------------------------
4886!  Lecture des parametres dans "rcm1d.def"
4887! ------------------------------------------------------
4888
4889!   Opening parameters file "rcm1d.def"
4890!   ---------------------------------------
4891      unit_loc =98
4892      OPEN(unit_loc,file='rcm1d.def',status='old',form='formatted'  &
4893          ,iostat=ierr_loc)
4894
4895      IF(ierr_loc.ne.0) THEN
4896        write(*,*) 'Problem to open "rcm1d.def'
4897        write(*,*) 'Is it there ?'
4898        stop
4899      ELSE
4900        write(*,*) 'open rcm1d.def success '
4901      END IF
4902
4903      do i=1, 2
4904        read (unit_loc, *)
4905      end do
4906
4907      PRINT *,'nombre de pas de temps par jour ?'
4908      READ(unit_loc,*) nbr_pdt
4909      print*,nbr_pdt
4910
4911      PRINT *,'nombre de jours simules ?'
4912      READ(unit_loc,*) nbr_jour
4913      print*,nbr_jour
4914     
4915 
4916     
4917      time_tot = nbr_pdt*(nbr_jour-1)
4918      PRINT *,'nombre de PdT avant calcul des taux production/consommation ?'
4919      PRINT*,time_tot
4920     
4921      PRINT*,'nlev',n_lev
4922           
4923         cpt_time = 1
4924         cpt_time_rate = 1
4925         f_call = .false.
4926         PRINT*,"f_call: ",f_call
4927         rate_night(:,:)=0.
4928         rate_day(:,:)=0.
4929     
4930      END IF           
4931     
4932!      PRINT*,"P        T"
4933!      PRINT*,pres,temperature
4934             
4935      IF (cpt_time .GE. time_tot) THEN
4936
4937!       PRINT*,'cpt_time',cpt_time
4938             
4939         DO i_lev=1, n_lev
4940         concentration(i_lev) = pres(i_lev)/(1.3806488E-19 * temperature(i_lev))     
4941         END DO
4942         
4943         IF (((cpt_time_rate .GE. 1).AND.(cpt_time_rate .LE. (nbr_pdt/4))).OR. &
4944         (cpt_time_rate .GT. (3*(nbr_pdt/4)))) THEN
4945         
4946!===============================
4947!        !!!! NUIT !!!!
4948!===============================
4949!       PRINT*,'NUIT'
4950       
4951           DO i_lev=1, n_lev
4952           i_react=1
4953           i_v=1
4954!===============================
4955!    1     o2 + hv     -> o + o
4956!===============================
4957                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
4958                rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4959                i_react=i_react+1
4960                i_v=i_v+1
4961!===============================
4962!    2     o2 + hv     -> o + o(1d)
4963!===============================
4964                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
4965                rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4966                i_react=i_react+1
4967                i_v=i_v+1
4968!===============================
4969!    3     co2 + hv    -> co + o
4970!===============================
4971            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
4972            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4973            i_react=i_react+1
4974                i_v=i_v+1
4975!===============================
4976!    4     co2 + hv    -> co + o(1d)
4977!===============================
4978            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
4979            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4980            i_react=i_react+1
4981                i_v=i_v+1
4982!===============================
4983!    5     o3 + hv     -> o2(Dg) + o(1d)
4984!===============================
4985            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
4986            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4987            i_react=i_react+1
4988                i_v=i_v+1
4989!===============================
4990!    6     o3 + hv     -> o2 + o
4991!===============================
4992            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
4993            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4994            i_react=i_react+1
4995                i_v=i_v+1
4996!===============================
4997!    7     h2o + hv    -> h + oh
4998!===============================
4999            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o)*concentration(i_lev)
5000            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5001            i_react=i_react+1
5002                i_v=i_v+1
5003!===============================
5004!    8     ho2 + hv    -> oh + o
5005!===============================
5006            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev)
5007            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5008            i_react=i_react+1
5009                i_v=i_v+1
5010!===============================
5011!    9     h2o2 + hv   -> oh + oh
5012!===============================
5013            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o2)*concentration(i_lev)
5014            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5015            i_react=i_react+1
5016                i_v=i_v+1
5017!===============================
5018!    10    hcl + hv    -> h + cl
5019!===============================
5020            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev)
5021            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5022            i_react=i_react+1
5023                i_v=i_v+1
5024!===============================
5025!    11    cl2 + hv    -> cl + cl
5026!===============================
5027            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev)
5028            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5029            i_react=i_react+1
5030                i_v=i_v+1
5031!===============================
5032!    12    hocl + hv   -> oh + cl
5033!===============================
5034            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev)
5035            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5036            i_react=i_react+1
5037                i_v=i_v+1
5038!===============================
5039!    13    so2 + hv    -> so + o
5040!===============================
5041            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev)
5042            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5043            i_react=i_react+1
5044                i_v=i_v+1
5045!===============================
5046!    14    so + hv     -> s + o
5047!===============================
5048            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev)
5049            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5050            i_react=i_react+1
5051                i_v=i_v+1
5052!===============================
5053!    15    so3 + hv    -> so2 + o
5054!===============================
5055            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev)
5056            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5057            i_react=i_react+1
5058                i_v=i_v+1
5059!===============================
5060!    16    clo + hv    -> cl + o
5061!===============================
5062            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev)
5063            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5064            i_react=i_react+1
5065                i_v=i_v+1
5066!===============================
5067!    17    ocs + hv    -> co + s
5068!===============================
5069            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ocs)*concentration(i_lev)
5070            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5071            i_react=i_react+1
5072                i_v=i_v+1
5073!===============================
5074!    18    cocl2 + hv  -> cl + cl + co
5075!===============================
5076            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cocl2)*concentration(i_lev)
5077            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5078            i_react=i_react+1
5079                i_v=i_v+1
5080!===============================
5081!    19    h2so4 + hv  -> so3 + h2o
5082!===============================
5083            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2so4)*concentration(i_lev)
5084            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5085            i_react=i_react+1
5086                i_v=i_v+1
5087!===============================
5088!--- 20 b001 o(1d) + co2 -> o + co2
5089!===============================
5090            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
5091            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5092            i_react=i_react+1
5093                i_v=i_v+1
5094!===============================
5095!--- 21 b004 o(1d) + o2 -> o + o2
5096!===============================
5097            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
5098            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5099            i_react=i_react+1
5100                i_v=i_v+1
5101!===============================
5102!--- 22 f014 clco + co2 -> cl + co + co2
5103!===============================
5104            rate_local = vphot(i_lev,22)*traceur(i_lev,i_clco)*concentration(i_lev)
5105            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5106            i_react=i_react+1
5107                i_v=i_v+1
5108!===============================
5109!--- 23 g016 s2o2 + co2 -> 2so + co2
5110!===============================
5111            rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)
5112            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5113            i_react=i_react+1
5114                i_v=i_v+1
5115!===============================
5116!--- 24 g023 s2 + co2 -> 2s + co2
5117!===============================
5118            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5119            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5120            i_react=i_react+1
5121                i_v=i_v+1
5122!===============================
5123!--- 25 h001 ICE
5124!===============================
5125            i_react=i_react+1
5126                i_v=i_v+1
5127!===============================
5128!--- 26 h002 ICE
5129!===============================
5130            i_react=i_react+1
5131                i_v=i_v+1 
5132!===============================
5133!--- 27 h003 ICE
5134!===============================
5135            i_react=i_react+1
5136                i_v=i_v+1 
5137!===============================
5138!--- 28 h004 ICE
5139!===============================
5140            i_react=i_react+1
5141                i_v=i_v+1 
5142!===============================
5143!--- 29 h005 ICE
5144!===============================
5145            i_react=i_react+1
5146                i_v=i_v+1 
5147!===============================
5148!---  30 i001 o2(Dg) + CO2 -> O2 + CO2 + hv
5149!===============================
5150            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
5151            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5152            i_react=i_react+1
5153                i_v=i_v+1
5154!===============================
5155!--- 31 i002 o2(Dg) -> O2 + hv
5156!===============================
5157            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
5158            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5159            i_react=i_react+1
5160                i_v=i_v+1
5161
5162! DEBUT DES REACTION V3
5163                i_v = i_v - nb_phot_max
5164!===============================
5165!--- 32 a002: o + o + co2 -> o2 + co2
5166!===============================
5167            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5168            *traceur(i_lev,i_o)*concentration(i_lev)
5169            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5170            i_react=i_react+1
5171                i_v=i_v+1
5172!===============================
5173!--- 33 c008: ho2 + ho2 -> h2o2 + o2
5174!===============================
5175            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
5176            *traceur(i_lev,i_ho2)*concentration(i_lev)
5177            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5178            i_react=i_react+1
5179                i_v=i_v+1
5180!===============================
5181!--- 34 c013: oh + oh -> h2o + o
5182!===============================
5183            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5184            *traceur(i_lev,i_oh)*concentration(i_lev)
5185            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5186            i_react=i_react+1
5187                i_v=i_v+1
5188!===============================
5189!--- 35 c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
5190!===============================
5191            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
5192            *traceur(i_lev,i_ho2)*concentration(i_lev)
5193            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5194            i_react=i_react+1
5195                i_v=i_v+1
5196!===============================
5197!--- 36 c017: oh + oh + co2 -> h2o2 + co2
5198!===============================
5199            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5200            *traceur(i_lev,i_oh)*concentration(i_lev)
5201            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5202            i_react=i_react+1
5203                i_v=i_v+1
5204!===============================
5205!--- 37 c018: h + h + co2 -> h2 + co2
5206!===============================
5207            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5208            *traceur(i_lev,i_h)*concentration(i_lev)
5209            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5210            i_react=i_react+1
5211                i_v=i_v+1
5212!===============================
5213!--- 38 f021: cl + cl + co2 -> cl2 + co2
5214!===============================
5215            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5216            *traceur(i_lev,i_cl)*concentration(i_lev)
5217            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5218            i_react=i_react+1
5219                i_v=i_v+1
5220!===============================
5221!--- 39 f026: clco + clco  -> cocl2 + co
5222!===============================
5223            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5224            *traceur(i_lev,i_clco)*concentration(i_lev)
5225            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5226            i_react=i_react+1
5227                i_v=i_v+1
5228!===============================
5229!--- 40 f030: clso2 + clso2  -> cl2 + so2 + so2
5230!===============================
5231            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
5232            *traceur(i_lev,i_clso2)*concentration(i_lev)
5233            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5234            i_react=i_react+1
5235                i_v=i_v+1
5236!===============================
5237!--- 41 g015: so + so + co2 -> s2o2 + co2
5238!===============================
5239            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5240            *traceur(i_lev,i_so)*concentration(i_lev)
5241            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5242            i_react=i_react+1
5243                i_v=i_v+1
5244!===============================
5245!--- 42 g022: s + s + co2 -> s2 + co2
5246!===============================
5247            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5248            *traceur(i_lev,i_s)*concentration(i_lev)
5249            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5250            i_react=i_react+1
5251                i_v=i_v+1
5252
5253! DEBUT DES REACTION V4
5254
5255                i_v = i_v - nb_reaction_3_max
5256
5257!===============================
5258!--- 43 a001: o + o2 + co2 -> o3 + co2
5259!===============================
5260            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5261            *traceur(i_lev,i_o)*concentration(i_lev)
5262            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5263            i_react=i_react+1
5264                i_v=i_v+1
5265!===============================
5266!--- 44 a003: o + o3 -> o2 + o2
5267!===============================
5268            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
5269            *traceur(i_lev,i_o)*concentration(i_lev) 
5270            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5271            i_react=i_react+1
5272                i_v=i_v+1
5273!===============================
5274!--- 45 b002: o(1d) + h2o  -> oh + oh
5275!===============================
5276            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5277            *traceur(i_lev,i_h2o)*concentration(i_lev) 
5278            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5279            i_react=i_react+1
5280                i_v=i_v+1
5281!===============================
5282!--- 46 b003: o(1d) + h2  -> oh + h
5283!===============================
5284            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5285            *traceur(i_lev,i_h2)*concentration(i_lev) 
5286            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5287            i_react=i_react+1
5288                i_v=i_v+1
5289!===============================
5290!--- 47 b005: o(1d) + o3  -> o2 + o2
5291!===============================
5292            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5293            *traceur(i_lev,i_o3)*concentration(i_lev)
5294            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5295            i_react=i_react+1
5296                i_v=i_v+1
5297!===============================
5298!--- 48 b006: o(1d) + o3  -> o2 + o + o
5299!===============================
5300            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5301            *traceur(i_lev,i_o3)*concentration(i_lev)
5302            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5303            i_react=i_react+1
5304                i_v=i_v+1
5305!===============================
5306!--- 49 c001: o + ho2 -> oh + o2
5307!===============================
5308            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5309            *traceur(i_lev,i_ho2)*concentration(i_lev)
5310            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5311            i_react=i_react+1
5312                i_v=i_v+1
5313!===============================
5314!--- 50 c002: o + oh -> o2 + h
5315!===============================
5316            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5317            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5318            i_react=i_react+1
5319                i_v=i_v+1
5320!===============================
5321!--- 51 c003: h + o3 -> oh + o2
5322!===============================
5323            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5324            *traceur(i_lev,i_o3)*concentration(i_lev)
5325            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5326            i_react=i_react+1
5327                i_v=i_v+1
5328!===============================
5329!--- 52 c004: h + ho2 -> oh + oh
5330!===============================
5331            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5332            *traceur(i_lev,i_ho2)*concentration(i_lev)
5333            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5334            i_react=i_react+1
5335                i_v=i_v+1
5336!===============================
5337!--- 53 c005: h + ho2 -> h2 + o2
5338!===============================
5339            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5340            *traceur(i_lev,i_ho2)*concentration(i_lev)
5341            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5342            i_react=i_react+1
5343                i_v=i_v+1
5344!===============================
5345!--- 54 c006: h + ho2 -> h2o + o
5346!===============================
5347            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5348            *traceur(i_lev,i_ho2)*concentration(i_lev)
5349            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5350            i_react=i_react+1
5351                i_v=i_v+1
5352!===============================
5353!--- 55 c007: oh + ho2 -> h2o + o2
5354!===============================
5355            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5356            *traceur(i_lev,i_ho2)*concentration(i_lev)
5357            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5358            i_react=i_react+1
5359                i_v=i_v+1
5360!===============================
5361!--- 56 c009: oh + h2o2 -> h2o + ho2
5362!===============================
5363            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5364            *traceur(i_lev,i_h2o2)*concentration(i_lev)
5365            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5366            i_react=i_react+1
5367                i_v=i_v+1
5368!===============================
5369!--- 57 c010: oh + h2 -> h2o + h
5370!===============================
5371            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5372            *traceur(i_lev,i_h2)*concentration(i_lev)
5373            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5374            i_react=i_react+1
5375                i_v=i_v+1
5376!===============================
5377!--- 58 c011: h + o2 + co2 -> ho2 + co2
5378!===============================
5379            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5380            *traceur(i_lev,i_h)*concentration(i_lev)
5381            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5382            i_react=i_react+1
5383                i_v=i_v+1
5384!===============================
5385!--- 59 c012: o + h2o2 -> oh + ho2
5386!===============================
5387            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5388            *traceur(i_lev,i_h2o2)*concentration(i_lev)
5389            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5390            i_react=i_react+1
5391                i_v=i_v+1
5392!===============================
5393!--- 60 c014: oh + o3 -> ho2 + o2
5394!===============================
5395            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5396            *traceur(i_lev,i_o3)*concentration(i_lev)
5397            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5398            i_react=i_react+1
5399                i_v=i_v+1
5400!===============================
5401!--- 61 c015: ho2 + o3 -> oh + o2 + o2
5402!===============================
5403            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
5404            *traceur(i_lev,i_ho2)*concentration(i_lev)
5405            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5406            i_react=i_react+1
5407                i_v=i_v+1
5408!===============================
5409!--- 62 e001: oh + co -> co2 + h
5410!===============================
5411            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5412            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5413            i_react=i_react+1
5414                i_v=i_v+1
5415!===============================
5416!--- 63 e002: o + co + m -> co2 + m
5417!===============================
5418            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5419            *traceur(i_lev,i_co)*concentration(i_lev)
5420            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5421            i_react=i_react+1
5422                i_v=i_v+1
5423!===============================
5424!--- 64 f001: hcl + o(1d) -> oh + cl
5425!===============================
5426            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5427            *traceur(i_lev,i_o1d)*concentration(i_lev)
5428            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5429            i_react=i_react+1
5430                i_v=i_v+1
5431!===============================
5432!--- 65 f002: hcl + o(1d) -> h + clo
5433!===============================
5434            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5435            *traceur(i_lev,i_o1d)*concentration(i_lev)
5436            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5437            i_react=i_react+1
5438                i_v=i_v+1
5439!===============================
5440!--- 66 f003: hcl + o -> oh + cl
5441!===============================
5442            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5443            *traceur(i_lev,i_o)*concentration(i_lev)
5444            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5445            i_react=i_react+1
5446                i_v=i_v+1
5447!===============================
5448!--- 67 f004: hcl + oh -> h2o + cl
5449!===============================
5450            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5451            *traceur(i_lev,i_oh)*concentration(i_lev)
5452            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5453            i_react=i_react+1
5454                i_v=i_v+1
5455!===============================
5456!--- 68 f005: clo + o -> cl + o2
5457!===============================
5458            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5459            *traceur(i_lev,i_o)*concentration(i_lev)
5460            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5461            i_react=i_react+1
5462                i_v=i_v+1
5463!===============================
5464!--- 69 f006: clo + oh -> cl + ho2
5465!===============================
5466            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5467            *traceur(i_lev,i_oh)*concentration(i_lev)
5468            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5469            i_react=i_react+1
5470                i_v=i_v+1
5471!===============================
5472!--- 70 f007: clo + oh -> hcl + o2
5473!===============================
5474            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5475            *traceur(i_lev,i_oh)*concentration(i_lev)
5476            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5477            i_react=i_react+1
5478                i_v=i_v+1
5479!===============================
5480!--- 71 f008: cl + h2 -> hcl + h
5481!===============================
5482            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5483            *traceur(i_lev,i_h2)*concentration(i_lev)
5484            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5485            i_react=i_react+1
5486                i_v=i_v+1
5487!===============================
5488!--- 72 f009: cl + o3 -> clo + o2
5489!===============================
5490            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5491            *traceur(i_lev,i_o3)*concentration(i_lev)
5492            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5493            i_react=i_react+1
5494                i_v=i_v+1
5495!===============================
5496!--- 73 f010: cl + ho2 -> clo + oh
5497!===============================
5498            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5499            *traceur(i_lev,i_ho2)*concentration(i_lev)
5500            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5501            i_react=i_react+1
5502                i_v=i_v+1
5503!===============================
5504!--- 74 f011: cl + ho2 -> hcl + o2
5505!===============================
5506            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5507            *traceur(i_lev,i_ho2)*concentration(i_lev)
5508            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5509            i_react=i_react+1
5510                i_v=i_v+1
5511!===============================
5512!--- 75 f012: cl + h2o2 -> hcl + ho2
5513!===============================
5514            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5515            *traceur(i_lev,i_h2o2)*concentration(i_lev)
5516            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5517            i_react=i_react+1
5518                i_v=i_v+1
5519!===============================
5520!--- 76 f013: cl + co + co2 -> clco + co2
5521!===============================
5522            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5523            *traceur(i_lev,i_co)*concentration(i_lev)
5524            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5525            i_react=i_react+1
5526                i_v=i_v+1
5527!===============================
5528!--- 77 f015: clco + o2 + m -> clco3 + m
5529!===============================
5530                rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5531            *traceur(i_lev,i_clco)*concentration(i_lev)
5532            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5533            i_react=i_react+1
5534                i_v=i_v+1
5535!===============================
5536!--- 78 & 79 f016: clco3 + cl -> cl + clo + co2
5537!===============================
5538!     decomposee en :
5539!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
5540!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
5541            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5542            *traceur(i_lev,i_cl)*concentration(i_lev)
5543            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5544            i_react=i_react+1
5545                i_v=i_v+1
5546           
5547            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5548            *traceur(i_lev,i_cl)*concentration(i_lev)
5549            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5550            i_react=i_react+1
5551                i_v=i_v+1
5552!===============================
5553!--- 80 & 81 f017: clco3 + o -> cl + o2 + co2
5554!===============================
5555!     decomposee en :
5556!     0.5 clco3 + 0.5 o -> cl
5557!     0.5 clco3 + 0.5 o -> o2 + co2
5558            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5559            *traceur(i_lev,i_o)*concentration(i_lev)
5560            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5561            i_react=i_react+1
5562                i_v=i_v+1
5563           
5564            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5565            *traceur(i_lev,i_o)*concentration(i_lev)
5566            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5567            i_react=i_react+1
5568                i_v=i_v+1
5569!===============================
5570!--- 82 f018: clo + ho2  -> hocl + o2
5571!===============================
5572            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5573            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5574            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5575            i_react=i_react+1
5576                i_v=i_v+1
5577!===============================
5578!--- 83 f019: oh + hocl -> h2o + clo
5579!===============================
5580            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5581            *traceur(i_lev,i_hocl)*concentration(i_lev) 
5582            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5583            i_react=i_react+1
5584                i_v=i_v+1
5585!===============================
5586!--- 84 f020: o + hocl -> oh + clo
5587!===============================
5588            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev) &
5589            *traceur(i_lev,i_o)*concentration(i_lev) 
5590            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5591            i_react=i_react+1
5592                i_v=i_v+1
5593!===============================
5594!--- 85 f022: clco + o -> cl + co2
5595!===============================
5596            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5597            *traceur(i_lev,i_o)*concentration(i_lev) 
5598            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5599            i_react=i_react+1
5600                i_v=i_v+1
5601!===============================
5602!--- 86 f023: cl2 + o(1d) -> cl + clo
5603!===============================
5604            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5605            *traceur(i_lev,i_o1d)*concentration(i_lev) 
5606            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5607            i_react=i_react+1
5608                i_v=i_v+1
5609!===============================
5610!--- 87 f024: cl2 + h  -> hcl + cl
5611!==============================
5612            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5613            *traceur(i_lev,i_h)*concentration(i_lev) 
5614            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5615            i_react=i_react+1
5616                i_v=i_v+1
5617!===============================
5618!--- 88 f025: cl + clco  -> cl2 + co
5619!===============================
5620            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5621            *traceur(i_lev,i_clco)*concentration(i_lev) 
5622            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5623            i_react=i_react+1
5624                i_v=i_v+1
5625!===============================
5626!--- 89 f027: cl + so2 + co2  -> clso2 + co2
5627!===============================
5628            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5629            *traceur(i_lev,i_cl)*concentration(i_lev) 
5630            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5631            i_react=i_react+1
5632                i_v=i_v+1
5633!===============================
5634!--- 90 f028: clso2 + o  -> so2 + clo
5635!===============================
5636            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
5637            *traceur(i_lev,i_o)*concentration(i_lev) 
5638            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5639            i_react=i_react+1
5640                i_v=i_v+1
5641!===============================
5642!--- 91 f029: clso2 + h  -> so2 + hcl
5643!===============================
5644            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
5645            *traceur(i_lev,i_h)*concentration(i_lev) 
5646            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5647            i_react=i_react+1
5648                i_v=i_v+1
5649!===============================
5650!--- 92 f031: cl + o + co2  -> clo + co2
5651!===============================
5652            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5653            *traceur(i_lev,i_o)*concentration(i_lev) 
5654            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5655            i_react=i_react+1
5656                i_v=i_v+1
5657!===============================
5658!--- 93 f032: cl2 + o -> clo + cl
5659!===============================
5660            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5661            *traceur(i_lev,i_o)*concentration(i_lev) 
5662            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5663            i_react=i_react+1
5664                i_v=i_v+1
5665!===============================
5666!--- 94 f033: clco + oh -> hocl + co
5667!===============================
5668            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5669            *traceur(i_lev,i_oh)*concentration(i_lev) 
5670            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5671            i_react=i_react+1
5672                i_v=i_v+1
5673!===============================
5674!--- 95 f034: cl2 + oh -> cl + hocl
5675!===============================
5676            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5677            *traceur(i_lev,i_oh)*concentration(i_lev) 
5678            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5679            i_react=i_react+1
5680                i_v=i_v+1
5681!===============================
5682!--- 96 f035: clco + o -> co + clo
5683!===============================
5684            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5685            *traceur(i_lev,i_o)*concentration(i_lev) 
5686            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5687            i_react=i_react+1
5688                i_v=i_v+1
5689!===============================
5690!--- 97 f036: clco + cl2 -> cocl2 + cl
5691!===============================
5692            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5693            *traceur(i_lev,i_clco)*concentration(i_lev) 
5694            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5695            i_react=i_react+1
5696                i_v=i_v+1
5697!===============================
5698!--- 98 f037: hcl + h -> h2 + cl
5699!===============================
5700            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5701            *traceur(i_lev,i_h)*concentration(i_lev) 
5702            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5703            i_react=i_react+1
5704                i_v=i_v+1
5705!===============================
5706!--- 99 f038: clco + h -> hcl + co
5707!===============================
5708            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5709            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5710            i_react=i_react+1
5711                i_v=i_v+1
5712!===============================
5713!--- 100 f039: cl + h + m -> hcl + m
5714!===============================
5715            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5716            *traceur(i_lev,i_h)*concentration(i_lev) 
5717            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5718            i_react=i_react+1
5719                i_v=i_v+1
5720!===============================
5721!--- 101 g001: s + o2 -> so + o
5722!===============================
5723            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5724            *traceur(i_lev,i_o2)*concentration(i_lev) 
5725            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5726            i_react=i_react+1
5727                i_v=i_v+1
5728!===============================
5729!--- 102 g002: s + o3 -> so + o2
5730!===============================
5731            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5732            *traceur(i_lev,i_o3)*concentration(i_lev) 
5733            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5734            i_react=i_react+1
5735                i_v=i_v+1
5736!===============================
5737!--- 103 g003: so + o2 -> so2 + o
5738!===============================
5739             rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5740            *traceur(i_lev,i_o2)*concentration(i_lev) 
5741            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5742            i_react=i_react+1
5743                i_v=i_v+1
5744!===============================
5745!--- 104 g004: so + o3 -> so2 + o2
5746!===============================
5747            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5748            *traceur(i_lev,i_o3)*concentration(i_lev) 
5749            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5750            i_react=i_react+1
5751                i_v=i_v+1
5752!===============================
5753!--- 105 g005: so + oh -> so2 + h
5754!===============================
5755            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5756            *traceur(i_lev,i_oh)*concentration(i_lev) 
5757            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5758            i_react=i_react+1
5759                i_v=i_v+1
5760!===============================
5761!--- 106 g006: s + oh -> so + h
5762!===============================
5763            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5764            *traceur(i_lev,i_oh)*concentration(i_lev) 
5765            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5766            i_react=i_react+1
5767                i_v=i_v+1
5768!===============================
5769!--- 107 g007: so + o + co2 -> so2 + co2
5770!===============================
5771            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5772            *traceur(i_lev,i_o)*concentration(i_lev) 
5773            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5774            i_react=i_react+1
5775                i_v=i_v+1
5776!===============================
5777!--- 108 g008: so + ho2 -> so2 + oh
5778!===============================
5779            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5780            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5781            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5782            i_react=i_react+1
5783                i_v=i_v+1
5784!===============================
5785!--- 109 g009: so2 + o + co2 -> so3 + co2
5786!===============================
5787            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5788            *traceur(i_lev,i_o)*concentration(i_lev) 
5789            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5790            i_react=i_react+1
5791                i_v=i_v+1
5792!===============================
5793!--- 110 g010: s + o + co2 -> so + co2
5794!===============================
5795            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5796            *traceur(i_lev,i_o)*concentration(i_lev) 
5797            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5798            i_react=i_react+1
5799                i_v=i_v+1
5800!===============================
5801!--- 111 g011: so3 + h2o -> h2so4
5802!===============================
5803            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
5804            *traceur(i_lev,i_h2o)*concentration(i_lev) 
5805            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5806            i_react=i_react+1
5807                i_v=i_v+1
5808!===============================
5809!--- 112 g012: so + clo -> so2 + cl
5810!===============================
5811            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5812            *traceur(i_lev,i_clo)*concentration(i_lev) 
5813            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5814            i_react=i_react+1
5815                i_v=i_v+1
5816!===============================
5817!--- 113 g013: so + so3 -> so2 + so2
5818!===============================
5819            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5820            *traceur(i_lev,i_so3)*concentration(i_lev) 
5821            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5822            i_react=i_react+1
5823                i_v=i_v+1
5824!===============================
5825!--- 114 g014: so3 + o -> so2 + o2
5826!===============================
5827            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
5828            *traceur(i_lev,i_o)*concentration(i_lev) 
5829            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5830            i_react=i_react+1
5831                i_v=i_v+1
5832!===============================
5833!--- 115 & 116 g017: clco3 + so -> cl + so2 + co2
5834!===============================
5835!     decomposee en :
5836!     0.5 clco3 + 0.5 so -> cl
5837!     0.5 clco3 + 0.5 so -> so2 + co2
5838            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5839            *traceur(i_lev,i_so)*concentration(i_lev) 
5840            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5841            i_react=i_react+1
5842                i_v=i_v+1
5843           
5844            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5845            *traceur(i_lev,i_so)*concentration(i_lev) 
5846            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5847            i_react=i_react+1
5848                i_v=i_v+1
5849!===============================
5850!--- 117 g018: s + co + co2 -> ocs + co2
5851!===============================
5852            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5853            *traceur(i_lev,i_co)*concentration(i_lev) 
5854            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5855            i_react=i_react+1
5856                i_v=i_v+1
5857!===============================
5858!--- 118 g019: clco + s -> ocs + cl
5859!===============================
5860            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5861            *traceur(i_lev,i_s)*concentration(i_lev) 
5862            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5863            i_react=i_react+1
5864                i_v=i_v+1
5865!===============================
5866!--- 119 g020: so2 + oh + co2 -> hso3 + co2
5867!===============================
5868            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5869            *traceur(i_lev,i_oh)*concentration(i_lev) 
5870            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5871            i_react=i_react+1
5872                i_v=i_v+1
5873!===============================
5874!--- 120 g021: hso3 + o2 -> ho2 + so3
5875!===============================
5876            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5877            *traceur(i_lev,i_hso3)*concentration(i_lev) 
5878            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5879            i_react=i_react+1
5880                i_v=i_v+1
5881!===============================
5882!--- 121 g024: s2 + o -> so + s
5883!===============================
5884            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev) &
5885            *traceur(i_lev,i_o)*concentration(i_lev) 
5886            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5887            i_react=i_react+1
5888                i_v=i_v+1
5889!===============================
5890!--- 122 g025: s + ocs -> s2 +  co
5891!===============================
5892            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5893            *traceur(i_lev,i_ocs)*concentration(i_lev) 
5894            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5895            i_react=i_react+1
5896                i_v=i_v+1
5897!===============================
5898!--- 123 g026: ocs + o -> so + co
5899!===============================
5900            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5901            *traceur(i_lev,i_ocs)*concentration(i_lev) 
5902            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5903            i_react=i_react+1
5904                i_v=i_v+1
5905!===============================
5906!--- 124 g027: s + so3 -> so2 +  so
5907!===============================
5908            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5909            *traceur(i_lev,i_so3)*concentration(i_lev) 
5910            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5911            i_react=i_react+1
5912                i_v=i_v+1
5913!===============================
5914!--- 125 g028: s + ho2 -> so +  oh
5915!===============================
5916            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5917            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5918            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5919            i_react=i_react+1
5920                i_v=i_v+1
5921!===============================
5922!--- 126 g029: s + clo -> so +  cl
5923!===============================
5924            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5925            *traceur(i_lev,i_clo)*concentration(i_lev) 
5926            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5927            i_react=i_react+1
5928                i_v=i_v+1   
5929           END DO       
5930         ELSE
5931!===============================         
5932!        !!!! JOUR !!!!
5933!===============================
5934!       PRINT*,'JOUR'
5935       
5936           DO i_lev=1, n_lev
5937           i_react=1
5938           i_v=1
5939!===============================
5940!    1     o2 + hv     -> o + o
5941!===============================
5942                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
5943                rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5944                i_react=i_react+1
5945                i_v=i_v+1
5946!===============================
5947!    2     o2 + hv     -> o + o(1d)
5948!===============================
5949                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
5950                rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5951                i_react=i_react+1
5952                i_v=i_v+1
5953!===============================
5954!    3     co2 + hv    -> co + o
5955!===============================
5956            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
5957            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5958            i_react=i_react+1
5959                i_v=i_v+1
5960!===============================
5961!    4     co2 + hv    -> co + o(1d)
5962!===============================
5963            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
5964            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5965            i_react=i_react+1
5966                i_v=i_v+1
5967!===============================
5968!    5     o3 + hv     -> o2(Dg) + o(1d)
5969!===============================
5970            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
5971            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5972            i_react=i_react+1
5973                i_v=i_v+1
5974!===============================
5975!    6     o3 + hv     -> o2 + o
5976!===============================
5977            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
5978            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5979            i_react=i_react+1
5980                i_v=i_v+1
5981!===============================
5982!    7     h2o + hv    -> h + oh
5983!===============================
5984            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o)*concentration(i_lev)
5985            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5986            i_react=i_react+1
5987                i_v=i_v+1
5988!===============================
5989!    8     ho2 + hv    -> oh + o
5990!===============================
5991            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev)
5992            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5993            i_react=i_react+1
5994                i_v=i_v+1
5995!===============================
5996!    9     h2o2 + hv   -> oh + oh
5997!===============================
5998            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o2)*concentration(i_lev)
5999            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6000            i_react=i_react+1
6001                i_v=i_v+1
6002!===============================
6003!    10    hcl + hv    -> h + cl
6004!===============================
6005            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev)
6006            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6007            i_react=i_react+1
6008                i_v=i_v+1
6009!===============================
6010!    11    cl2 + hv    -> cl + cl
6011!===============================
6012            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev)
6013            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6014            i_react=i_react+1
6015                i_v=i_v+1
6016!===============================
6017!    12    hocl + hv   -> oh + cl
6018!===============================
6019            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev)
6020            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6021            i_react=i_react+1
6022                i_v=i_v+1
6023!===============================
6024!    13    so2 + hv    -> so + o
6025!===============================
6026            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev)
6027            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6028            i_react=i_react+1
6029                i_v=i_v+1
6030!===============================
6031!    14    so + hv     -> s + o
6032!===============================
6033            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev)
6034            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6035            i_react=i_react+1
6036                i_v=i_v+1
6037!===============================
6038!    15    so3 + hv    -> so2 + o
6039!===============================
6040            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev)
6041            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6042            i_react=i_react+1
6043                i_v=i_v+1
6044!===============================
6045!    16    clo + hv    -> cl + o
6046!===============================
6047            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev)
6048            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6049            i_react=i_react+1
6050                i_v=i_v+1
6051!===============================
6052!    17    ocs + hv    -> co + s
6053!===============================
6054            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ocs)*concentration(i_lev)
6055            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6056            i_react=i_react+1
6057                i_v=i_v+1
6058!===============================
6059!    18    cocl2 + hv  -> cl + cl + co
6060!===============================
6061            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cocl2)*concentration(i_lev)
6062            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6063            i_react=i_react+1
6064                i_v=i_v+1
6065!===============================
6066!    19    h2so4 + hv  -> so3 + h2o
6067!===============================
6068            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2so4)*concentration(i_lev)
6069            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6070            i_react=i_react+1
6071                i_v=i_v+1
6072!===============================
6073!    20     o(1d) + co2 -> o + co2
6074!===============================
6075            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
6076            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6077            i_react=i_react+1
6078                i_v=i_v+1
6079!===============================
6080!    21    o(1d) + o2 -> o + o2
6081!===============================
6082            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
6083            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6084            i_react=i_react+1
6085                i_v=i_v+1
6086!===============================
6087!    22    clco + co2 -> cl + co + co2
6088!===============================
6089            rate_local = vphot(i_lev,22)*traceur(i_lev,i_clco)*concentration(i_lev)
6090            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6091            i_react=i_react+1
6092                i_v=i_v+1
6093!===============================
6094!    23    s2o2 + co2 -> 2so + co2
6095!===============================
6096            rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)
6097            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6098            i_react=i_react+1
6099                i_v=i_v+1
6100!===============================
6101!    24    s2 + co2 -> 2s + co2
6102!===============================
6103            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6104            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6105            i_react=i_react+1
6106                i_v=i_v+1
6107!===============================
6108!    25    ICE
6109!===============================
6110            i_react=i_react+1
6111                i_v=i_v+1
6112!===============================
6113!    26    ICE
6114!===============================
6115            i_react=i_react+1
6116                i_v=i_v+1 
6117!===============================
6118!    27    ICE
6119!===============================
6120            i_react=i_react+1
6121                i_v=i_v+1 
6122!===============================
6123!    28    ICE
6124!===============================
6125            i_react=i_react+1
6126                i_v=i_v+1 
6127!===============================
6128!    29    ICE
6129!===============================
6130            i_react=i_react+1
6131                i_v=i_v+1 
6132!===============================
6133!    30    o2(Dg) + CO2 -> O2 + CO2 + hv
6134!===============================
6135            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
6136            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6137            i_react=i_react+1
6138                i_v=i_v+1
6139!===============================
6140!    31    o2(Dg) -> O2 + hv
6141!===============================
6142            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
6143            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6144            i_react=i_react+1
6145                i_v=i_v+1
6146               
6147! DEBUT DES REACTION V3
6148                i_v = i_v - nb_phot_max
6149!===============================
6150!--- 32 a002: o + o + co2 -> o2 + co2
6151!===============================
6152            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6153            *traceur(i_lev,i_o)*concentration(i_lev)
6154            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6155            i_react=i_react+1
6156                i_v=i_v+1
6157!===============================
6158!--- 33 c008: ho2 + ho2 -> h2o2 + o2
6159!===============================
6160            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
6161            *traceur(i_lev,i_ho2)*concentration(i_lev)
6162            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6163            i_react=i_react+1
6164                i_v=i_v+1
6165!===============================
6166!--- 34 c013: oh + oh -> h2o + o
6167!===============================
6168            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6169            *traceur(i_lev,i_oh)*concentration(i_lev)
6170            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6171            i_react=i_react+1
6172                i_v=i_v+1
6173!===============================
6174!--- 35 c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
6175!===============================
6176            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
6177            *traceur(i_lev,i_ho2)*concentration(i_lev)
6178            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6179            i_react=i_react+1
6180                i_v=i_v+1
6181!===============================
6182!--- 36 c017: oh + oh + co2 -> h2o2 + co2
6183!===============================
6184            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6185            *traceur(i_lev,i_oh)*concentration(i_lev)
6186            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6187            i_react=i_react+1
6188                i_v=i_v+1
6189!===============================
6190!--- 37 c018: h + h + co2 -> h2 + co2
6191!===============================
6192            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6193            *traceur(i_lev,i_h)*concentration(i_lev)
6194            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6195            i_react=i_react+1
6196                i_v=i_v+1
6197!===============================
6198!--- 38 f021: cl + cl + co2 -> cl2 + co2
6199!===============================
6200            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6201            *traceur(i_lev,i_cl)*concentration(i_lev)
6202            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6203            i_react=i_react+1
6204                i_v=i_v+1
6205!===============================
6206!--- 39 f026: clco + clco  -> cocl2 + co
6207!===============================
6208            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6209            *traceur(i_lev,i_clco)*concentration(i_lev)
6210            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6211            i_react=i_react+1
6212                i_v=i_v+1
6213!===============================
6214!--- 40 f030: clso2 + clso2  -> cl2 + so2 + so2
6215!===============================
6216            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
6217            *traceur(i_lev,i_clso2)*concentration(i_lev)
6218            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6219            i_react=i_react+1
6220                i_v=i_v+1
6221!===============================
6222!--- 41 g015: so + so + co2 -> s2o2 + co2
6223!===============================
6224            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6225            *traceur(i_lev,i_so)*concentration(i_lev)
6226            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6227            i_react=i_react+1
6228                i_v=i_v+1
6229!===============================
6230!--- 42 g022: s + s + co2 -> s2 + co2
6231!===============================
6232            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6233            *traceur(i_lev,i_s)*concentration(i_lev)
6234            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6235            i_react=i_react+1
6236                i_v=i_v+1
6237
6238! DEBUT DES REACTION V4
6239
6240                i_v = i_v - nb_reaction_3_max
6241
6242!===============================
6243!--- 43 a001: o + o2 + co2 -> o3 + co2
6244!===============================
6245            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6246            *traceur(i_lev,i_o)*concentration(i_lev)
6247            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6248            i_react=i_react+1
6249                i_v=i_v+1
6250!===============================
6251!--- 44 a003: o + o3 -> o2 + o2
6252!===============================
6253            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
6254            *traceur(i_lev,i_o)*concentration(i_lev) 
6255            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6256            i_react=i_react+1
6257                i_v=i_v+1
6258!===============================
6259!--- 45 b002: o(1d) + h2o  -> oh + oh
6260!===============================
6261            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6262            *traceur(i_lev,i_h2o)*concentration(i_lev) 
6263            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6264            i_react=i_react+1
6265                i_v=i_v+1
6266!===============================
6267!--- 46 b003: o(1d) + h2  -> oh + h
6268!===============================
6269            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6270            *traceur(i_lev,i_h2)*concentration(i_lev) 
6271            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6272            i_react=i_react+1
6273                i_v=i_v+1
6274!===============================
6275!--- 47 b005: o(1d) + o3  -> o2 + o2
6276!===============================
6277            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6278            *traceur(i_lev,i_o3)*concentration(i_lev)
6279            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6280            i_react=i_react+1
6281                i_v=i_v+1
6282!===============================
6283!--- 48 b006: o(1d) + o3  -> o2 + o + o
6284!===============================
6285            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6286            *traceur(i_lev,i_o3)*concentration(i_lev)
6287            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6288            i_react=i_react+1
6289                i_v=i_v+1
6290!===============================
6291!--- 49 c001: o + ho2 -> oh + o2
6292!===============================
6293            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6294            *traceur(i_lev,i_ho2)*concentration(i_lev)
6295            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6296            i_react=i_react+1
6297                i_v=i_v+1
6298!===============================
6299!--- 50 c002: o + oh -> o2 + h
6300!===============================
6301            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6302            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6303            i_react=i_react+1
6304                i_v=i_v+1
6305!===============================
6306!--- 51 c003: h + o3 -> oh + o2
6307!===============================
6308            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6309            *traceur(i_lev,i_o3)*concentration(i_lev)
6310            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6311            i_react=i_react+1
6312                i_v=i_v+1
6313!===============================
6314!--- 52 c004: h + ho2 -> oh + oh
6315!===============================
6316            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6317            *traceur(i_lev,i_ho2)*concentration(i_lev)
6318            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6319            i_react=i_react+1
6320                i_v=i_v+1
6321!===============================
6322!--- 53 c005: h + ho2 -> h2 + o2
6323!===============================
6324            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6325            *traceur(i_lev,i_ho2)*concentration(i_lev)
6326            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6327            i_react=i_react+1
6328                i_v=i_v+1
6329!===============================
6330!--- 54 c006: h + ho2 -> h2o + o
6331!===============================
6332            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6333            *traceur(i_lev,i_ho2)*concentration(i_lev)
6334            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6335            i_react=i_react+1
6336                i_v=i_v+1
6337!===============================
6338!--- 55 c007: oh + ho2 -> h2o + o2
6339!===============================
6340            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6341            *traceur(i_lev,i_ho2)*concentration(i_lev)
6342            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6343            i_react=i_react+1
6344                i_v=i_v+1
6345!===============================
6346!--- 56 c009: oh + h2o2 -> h2o + ho2
6347!===============================
6348            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6349            *traceur(i_lev,i_h2o2)*concentration(i_lev)
6350            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6351            i_react=i_react+1
6352                i_v=i_v+1
6353!===============================
6354!--- 57 c010: oh + h2 -> h2o + h
6355!===============================
6356            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6357            *traceur(i_lev,i_h2)*concentration(i_lev)
6358            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6359            i_react=i_react+1
6360                i_v=i_v+1
6361!===============================
6362!--- 58 c011: h + o2 + co2 -> ho2 + co2
6363!===============================
6364            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6365            *traceur(i_lev,i_h)*concentration(i_lev)
6366            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6367            i_react=i_react+1
6368                i_v=i_v+1
6369!===============================
6370!--- 59 c012: o + h2o2 -> oh + ho2
6371!===============================
6372            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6373            *traceur(i_lev,i_h2o2)*concentration(i_lev)
6374            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6375            i_react=i_react+1
6376                i_v=i_v+1
6377!===============================
6378!--- 60 c014: oh + o3 -> ho2 + o2
6379!===============================
6380            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6381            *traceur(i_lev,i_o3)*concentration(i_lev)
6382            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6383            i_react=i_react+1
6384                i_v=i_v+1
6385!===============================
6386!--- 61 c015: ho2 + o3 -> oh + o2 + o2
6387!===============================
6388            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
6389            *traceur(i_lev,i_ho2)*concentration(i_lev)
6390            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6391            i_react=i_react+1
6392                i_v=i_v+1
6393!===============================
6394!--- 62 e001: oh + co -> co2 + h
6395!===============================
6396            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6397            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6398            i_react=i_react+1
6399                i_v=i_v+1
6400!===============================
6401!--- 63 e002: o + co + m -> co2 + m
6402!===============================
6403            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6404            *traceur(i_lev,i_co)*concentration(i_lev)
6405            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6406            i_react=i_react+1
6407                i_v=i_v+1
6408!===============================
6409!--- 64 f001: hcl + o(1d) -> oh + cl
6410!===============================
6411            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6412            *traceur(i_lev,i_o1d)*concentration(i_lev)
6413            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6414            i_react=i_react+1
6415                i_v=i_v+1
6416!===============================
6417!--- 65 f002: hcl + o(1d) -> h + clo
6418!===============================
6419            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6420            *traceur(i_lev,i_o1d)*concentration(i_lev)
6421            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6422            i_react=i_react+1
6423                i_v=i_v+1
6424!===============================
6425!--- 66 f003: hcl + o -> oh + cl
6426!===============================
6427            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6428            *traceur(i_lev,i_o)*concentration(i_lev)
6429            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6430            i_react=i_react+1
6431                i_v=i_v+1
6432!===============================
6433!--- 67 f004: hcl + oh -> h2o + cl
6434!===============================
6435            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6436            *traceur(i_lev,i_oh)*concentration(i_lev)
6437            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6438            i_react=i_react+1
6439                i_v=i_v+1
6440!===============================
6441!--- 68 f005: clo + o -> cl + o2
6442!===============================
6443            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6444            *traceur(i_lev,i_o)*concentration(i_lev)
6445            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6446            i_react=i_react+1
6447                i_v=i_v+1
6448!===============================
6449!--- 69 f006: clo + oh -> cl + ho2
6450!===============================
6451            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6452            *traceur(i_lev,i_oh)*concentration(i_lev)
6453            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6454            i_react=i_react+1
6455                i_v=i_v+1
6456!===============================
6457!--- 70 f007: clo + oh -> hcl + o2
6458!===============================
6459            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6460            *traceur(i_lev,i_oh)*concentration(i_lev)
6461            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6462            i_react=i_react+1
6463                i_v=i_v+1
6464!===============================
6465!--- 71 f008: cl + h2 -> hcl + h
6466!===============================
6467            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6468            *traceur(i_lev,i_h2)*concentration(i_lev)
6469            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6470            i_react=i_react+1
6471                i_v=i_v+1
6472!===============================
6473!--- 72 f009: cl + o3 -> clo + o2
6474!===============================
6475            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6476            *traceur(i_lev,i_o3)*concentration(i_lev)
6477            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6478            i_react=i_react+1
6479                i_v=i_v+1
6480!===============================
6481!--- 73 f010: cl + ho2 -> clo + oh
6482!===============================
6483            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6484            *traceur(i_lev,i_ho2)*concentration(i_lev)
6485            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6486            i_react=i_react+1
6487                i_v=i_v+1
6488!===============================
6489!--- 74 f011: cl + ho2 -> hcl + o2
6490!===============================
6491            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6492            *traceur(i_lev,i_ho2)*concentration(i_lev)
6493            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6494            i_react=i_react+1
6495                i_v=i_v+1
6496!===============================
6497!--- 75 f012: cl + h2o2 -> hcl + ho2
6498!===============================
6499            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6500            *traceur(i_lev,i_h2o2)*concentration(i_lev)
6501            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6502            i_react=i_react+1
6503                i_v=i_v+1
6504!===============================
6505!--- 76 f013: cl + co + co2 -> clco + co2
6506!===============================
6507            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6508            *traceur(i_lev,i_co)*concentration(i_lev)
6509            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6510            i_react=i_react+1
6511                i_v=i_v+1
6512!===============================
6513!--- 77 f015: clco + o2 + m -> clco3 + m
6514!===============================
6515                rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6516            *traceur(i_lev,i_clco)*concentration(i_lev)
6517            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6518            i_react=i_react+1
6519                i_v=i_v+1
6520!===============================
6521!--- 78 & 79 f016: clco3 + cl -> cl + clo + co2
6522!===============================
6523!     decomposee en :
6524!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
6525!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
6526            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6527            *traceur(i_lev,i_cl)*concentration(i_lev)
6528            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6529            i_react=i_react+1
6530                i_v=i_v+1
6531           
6532            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6533            *traceur(i_lev,i_cl)*concentration(i_lev)
6534            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6535            i_react=i_react+1
6536                i_v=i_v+1
6537!===============================
6538!--- 80 & 81 f017: clco3 + o -> cl + o2 + co2
6539!===============================
6540!     decomposee en :
6541!     0.5 clco3 + 0.5 o -> cl
6542!     0.5 clco3 + 0.5 o -> o2 + co2
6543            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6544            *traceur(i_lev,i_o)*concentration(i_lev)
6545            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6546            i_react=i_react+1
6547                i_v=i_v+1
6548           
6549            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6550            *traceur(i_lev,i_o)*concentration(i_lev)
6551            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6552            i_react=i_react+1
6553                i_v=i_v+1
6554!===============================
6555!--- 82 f018: clo + ho2  -> hocl + o2
6556!===============================
6557            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6558            *traceur(i_lev,i_ho2)*concentration(i_lev) 
6559            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6560            i_react=i_react+1
6561                i_v=i_v+1
6562!===============================
6563!--- 83 f019: oh + hocl -> h2o + clo
6564!===============================
6565            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6566            *traceur(i_lev,i_hocl)*concentration(i_lev) 
6567            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6568            i_react=i_react+1
6569                i_v=i_v+1
6570!===============================
6571!--- 84 f020: o + hocl -> oh + clo
6572!===============================
6573            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev) &
6574            *traceur(i_lev,i_o)*concentration(i_lev) 
6575            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6576            i_react=i_react+1
6577                i_v=i_v+1
6578!===============================
6579!--- 85 f022: clco + o -> cl + co2
6580!===============================
6581            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6582            *traceur(i_lev,i_o)*concentration(i_lev) 
6583            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6584            i_react=i_react+1
6585                i_v=i_v+1
6586!===============================
6587!--- 86 f023: cl2 + o(1d) -> cl + clo
6588!===============================
6589            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6590            *traceur(i_lev,i_o1d)*concentration(i_lev) 
6591            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6592            i_react=i_react+1
6593                i_v=i_v+1
6594!===============================
6595!--- 87 f024: cl2 + h  -> hcl + cl
6596!==============================
6597            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6598            *traceur(i_lev,i_h)*concentration(i_lev) 
6599            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6600            i_react=i_react+1
6601                i_v=i_v+1
6602!===============================
6603!--- 88 f025: cl + clco  -> cl2 + co
6604!===============================
6605            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6606            *traceur(i_lev,i_clco)*concentration(i_lev) 
6607            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6608            i_react=i_react+1
6609                i_v=i_v+1
6610!===============================
6611!--- 89 f027: cl + so2 + co2  -> clso2 + co2
6612!===============================
6613            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
6614            *traceur(i_lev,i_cl)*concentration(i_lev) 
6615            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6616            i_react=i_react+1
6617                i_v=i_v+1
6618!===============================
6619!--- 90 f028: clso2 + o  -> so2 + clo
6620!===============================
6621            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
6622            *traceur(i_lev,i_o)*concentration(i_lev) 
6623            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6624            i_react=i_react+1
6625                i_v=i_v+1
6626!===============================
6627!--- 91 f029: clso2 + h  -> so2 + hcl
6628!===============================
6629            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
6630            *traceur(i_lev,i_h)*concentration(i_lev) 
6631            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6632            i_react=i_react+1
6633                i_v=i_v+1
6634!===============================
6635!--- 92 f031: cl + o + co2  -> clo + co2
6636!===============================
6637            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6638            *traceur(i_lev,i_o)*concentration(i_lev) 
6639            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6640            i_react=i_react+1
6641                i_v=i_v+1
6642!===============================
6643!--- 93 f032: cl2 + o -> clo + cl
6644!===============================
6645            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6646            *traceur(i_lev,i_o)*concentration(i_lev) 
6647            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6648            i_react=i_react+1
6649                i_v=i_v+1
6650!===============================
6651!--- 94 f033: clco + oh -> hocl + co
6652!===============================
6653            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6654            *traceur(i_lev,i_oh)*concentration(i_lev) 
6655            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6656            i_react=i_react+1
6657                i_v=i_v+1
6658!===============================
6659!--- 95 f034: cl2 + oh -> cl + hocl
6660!===============================
6661            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6662            *traceur(i_lev,i_oh)*concentration(i_lev) 
6663            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6664            i_react=i_react+1
6665                i_v=i_v+1
6666!===============================
6667!--- 96 f035: clco + o -> co + clo
6668!===============================
6669            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6670            *traceur(i_lev,i_o)*concentration(i_lev) 
6671            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6672            i_react=i_react+1
6673                i_v=i_v+1
6674!===============================
6675!--- 97 f036: clco + cl2 -> cocl2 + cl
6676!===============================
6677            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6678            *traceur(i_lev,i_clco)*concentration(i_lev) 
6679            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6680            i_react=i_react+1
6681                i_v=i_v+1
6682!===============================
6683!--- 98 f037: hcl + h -> h2 + cl
6684!===============================
6685            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6686            *traceur(i_lev,i_h)*concentration(i_lev) 
6687            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6688            i_react=i_react+1
6689                i_v=i_v+1
6690!===============================
6691!--- 99 f038: clco + h -> hcl + co
6692!===============================
6693            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6694            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6695            i_react=i_react+1
6696                i_v=i_v+1
6697!===============================
6698!--- 100 f039: cl + h + m -> hcl + m
6699!===============================
6700            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6701            *traceur(i_lev,i_h)*concentration(i_lev) 
6702            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6703            i_react=i_react+1
6704                i_v=i_v+1
6705!===============================
6706!--- 101 g001: s + o2 -> so + o
6707!===============================
6708            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6709            *traceur(i_lev,i_o2)*concentration(i_lev) 
6710            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6711            i_react=i_react+1
6712                i_v=i_v+1
6713!===============================
6714!--- 102 g002: s + o3 -> so + o2
6715!===============================
6716            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6717            *traceur(i_lev,i_o3)*concentration(i_lev) 
6718            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6719            i_react=i_react+1
6720                i_v=i_v+1
6721!===============================
6722!--- 103 g003: so + o2 -> so2 + o
6723!===============================
6724             rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6725            *traceur(i_lev,i_o2)*concentration(i_lev) 
6726            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6727            i_react=i_react+1
6728                i_v=i_v+1
6729!===============================
6730!--- 104 g004: so + o3 -> so2 + o2
6731!===============================
6732            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6733            *traceur(i_lev,i_o3)*concentration(i_lev) 
6734            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6735            i_react=i_react+1
6736                i_v=i_v+1
6737!===============================
6738!--- 105 g005: so + oh -> so2 + h
6739!===============================
6740            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6741            *traceur(i_lev,i_oh)*concentration(i_lev) 
6742            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6743            i_react=i_react+1
6744                i_v=i_v+1
6745!===============================
6746!--- 106 g006: s + oh -> so + h
6747!===============================
6748            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6749            *traceur(i_lev,i_oh)*concentration(i_lev) 
6750            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6751            i_react=i_react+1
6752                i_v=i_v+1
6753!===============================
6754!--- 107 g007: so + o + co2 -> so2 + co2
6755!===============================
6756            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6757            *traceur(i_lev,i_o)*concentration(i_lev) 
6758            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6759            i_react=i_react+1
6760                i_v=i_v+1
6761!===============================
6762!--- 108 g008: so + ho2 -> so2 + oh
6763!===============================
6764            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6765            *traceur(i_lev,i_ho2)*concentration(i_lev) 
6766            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6767            i_react=i_react+1
6768                i_v=i_v+1
6769!===============================
6770!--- 109 g009: so2 + o + co2 -> so3 + co2
6771!===============================
6772            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
6773            *traceur(i_lev,i_o)*concentration(i_lev) 
6774            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6775            i_react=i_react+1
6776                i_v=i_v+1
6777!===============================
6778!--- 110 g010: s + o + co2 -> so + co2
6779!===============================
6780            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6781            *traceur(i_lev,i_o)*concentration(i_lev) 
6782            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6783            i_react=i_react+1
6784                i_v=i_v+1
6785!===============================
6786!--- 111 g011: so3 + h2o -> h2so4
6787!===============================
6788            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
6789            *traceur(i_lev,i_h2o)*concentration(i_lev) 
6790            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6791            i_react=i_react+1
6792                i_v=i_v+1
6793!===============================
6794!--- 112 g012: so + clo -> so2 + cl
6795!===============================
6796            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6797            *traceur(i_lev,i_clo)*concentration(i_lev) 
6798            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6799            i_react=i_react+1
6800                i_v=i_v+1
6801!===============================
6802!--- 113 g013: so + so3 -> so2 + so2
6803!===============================
6804            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6805            *traceur(i_lev,i_so3)*concentration(i_lev) 
6806            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6807            i_react=i_react+1
6808                i_v=i_v+1
6809!===============================
6810!--- 114 g014: so3 + o -> so2 + o2
6811!===============================
6812            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
6813            *traceur(i_lev,i_o)*concentration(i_lev) 
6814            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6815            i_react=i_react+1
6816                i_v=i_v+1
6817!===============================
6818!--- 115 & 116 g017: clco3 + so -> cl + so2 + co2
6819!===============================
6820!     decomposee en :
6821!     0.5 clco3 + 0.5 so -> cl
6822!     0.5 clco3 + 0.5 so -> so2 + co2
6823            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6824            *traceur(i_lev,i_so)*concentration(i_lev) 
6825            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6826            i_react=i_react+1
6827                i_v=i_v+1
6828           
6829            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6830            *traceur(i_lev,i_so)*concentration(i_lev) 
6831            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6832            i_react=i_react+1
6833                i_v=i_v+1
6834!===============================
6835!--- 117 g018: s + co + co2 -> ocs + co2
6836!===============================
6837            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6838            *traceur(i_lev,i_co)*concentration(i_lev) 
6839            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6840            i_react=i_react+1
6841                i_v=i_v+1
6842!===============================
6843!--- 118 g019: clco + s -> ocs + cl
6844!===============================
6845            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6846            *traceur(i_lev,i_s)*concentration(i_lev) 
6847            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6848            i_react=i_react+1
6849                i_v=i_v+1
6850!===============================
6851!--- 119 g020: so2 + oh + co2 -> hso3 + co2
6852!===============================
6853            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
6854            *traceur(i_lev,i_oh)*concentration(i_lev) 
6855            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6856            i_react=i_react+1
6857                i_v=i_v+1
6858!===============================
6859!--- 120 g021: hso3 + o2 -> ho2 + so3
6860!===============================
6861            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6862            *traceur(i_lev,i_hso3)*concentration(i_lev) 
6863            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6864            i_react=i_react+1
6865                i_v=i_v+1
6866!===============================
6867!--- 121 g024: s2 + o -> so + s
6868!===============================
6869            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev) &
6870            *traceur(i_lev,i_o)*concentration(i_lev) 
6871            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6872            i_react=i_react+1
6873                i_v=i_v+1
6874!===============================
6875!--- 122 g025: s + ocs -> s2 +  co
6876!===============================
6877            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6878            *traceur(i_lev,i_ocs)*concentration(i_lev) 
6879            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6880            i_react=i_react+1
6881                i_v=i_v+1
6882!===============================
6883!--- 123 g026: ocs + o -> so + co
6884!===============================
6885            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6886            *traceur(i_lev,i_ocs)*concentration(i_lev) 
6887            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6888            i_react=i_react+1
6889                i_v=i_v+1
6890!===============================
6891!--- 124 g027: s + so3 -> so2 +  so
6892!===============================
6893            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6894            *traceur(i_lev,i_so3)*concentration(i_lev) 
6895            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6896            i_react=i_react+1
6897                i_v=i_v+1
6898!===============================
6899!--- 125 g028: s + ho2 -> so +  oh
6900!===============================
6901            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6902            *traceur(i_lev,i_ho2)*concentration(i_lev) 
6903            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6904            i_react=i_react+1
6905                i_v=i_v+1
6906!===============================
6907!--- 126 g029: s + clo -> so +  cl
6908!===============================
6909            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6910            *traceur(i_lev,i_clo)*concentration(i_lev) 
6911            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6912            i_react=i_react+1
6913                i_v=i_v+1
6914           END DO
6915         END IF
6916         cpt_time_rate = cpt_time_rate + 1
6917     
6918      END IF
6919           
6920      IF (cpt_time .EQ. (time_tot+nbr_pdt)) THEN
6921               OPEN(100,file='profile_rate_day.csv')
6922               DO i_lev=1,n_lev
6923               write (100,"(128(e15.8,','))")pres(i_lev), temperature(i_lev), (rate_day(i_lev,i_react),i_react=1,126)
6924               END DO
6925               
6926               OPEN(101,file='profile_rate_night.csv')
6927               DO i_lev=1,n_lev
6928               write (101,"(128(e15.8,','))") pres(i_lev), temperature(i_lev), (rate_night(i_lev,i_react),i_react=1,126)
6929               END DO
6930               
6931               OPEN(102,file='profile_rate_fullday.csv')
6932               rate_day=(rate_day+rate_night)/2.
6933               DO i_lev=1,n_lev
6934               write (102,"(128(e15.8,','))") pres(i_lev), temperature(i_lev), (rate_day(i_lev,i_react),i_react=1,126)
6935               END DO
6936               
6937               PRINT*,"pression top",pres(n_lev)
6938               PRINT*,"temp top",temperature(n_lev)
6939               
6940      END IF
6941     
6942      cpt_time = cpt_time + 1
6943     
6944      END     
Note: See TracBrowser for help on using the repository browser.