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

Last change on this file since 3616 was 3593, checked in by flefevre, 3 weeks ago

Cleaning. This does (should) not change the results.

File size: 232.6 KB
Line 
1!****************************************************************
2!
3!     Photochemical routine
4!
5!     Authors: Franck Lefevre, Francisco Gonzalez-Galindo
6!     -------
7!
8!     Version: 14/11/2020
9!
10!     ASIS scheme : for details on the method see
11!     Cariolle et al., Geosci. Model Dev., 10, 1467-1485, 2017.
12!
13!     -------
14!
15!     2022/09/15: adding ion chemistry by Antoine Martinez
16!
17!*****************************************************************
18
19subroutine photochemistry_venus(nz, n_lon, zlocal, ptimestep,             &
20                                ok_jonline, ok_ionchem, tuneupperatm,     &
21                                nb_reaction_3_max, nb_reaction_4_max,     &
22                                nb_phot_max, nphotion, ig,                &
23                                p, t, t_elect, tr, vmr_dens_euv, mumean,  &
24                                sza_input, lon, lat, nesp, nespeuv, iter, &
25                                prod_tr, loss_tr, em_no, em_o2) 
26
27use chemparam_mod
28use photolysis_mod
29use param_v4_h, only: jion
30use iono_h, only: phdisrate
31!nphot ! number of photodissociations, include in "use photolysis_mod" 
32     
33implicit none
34
35!===================================================================
36!     input:
37!===================================================================
38
39integer, intent(in) :: nz          ! number of atmospheric layers
40integer, intent(in) :: nesp        ! number of tracers in traceur.def
41integer, intent(in) :: nespeuv     ! number of tracers for jthermcal_e107.F
42
43integer, intent(in) :: nb_reaction_3_max   ! number of quadratic reactions
44integer, intent(in) :: nb_reaction_4_max   ! number of bimolecular reactions
45integer, intent(in) :: nb_phot_max         ! total number of photolysis+photoionizations+quenching reactions
46integer, intent(in) :: nphotion            ! number of photoionizations
47
48logical, intent(in) :: ok_ionchem  ! switch for ion chemistry
49logical, intent(in) :: ok_jonline  ! switch for on-line calculation of photolysis rates
50logical, intent(in) :: tuneupperatm! upper atmosphere chemistry tuning
51
52real, dimension(nz) :: p                 ! pressure (hpa)
53real, dimension(nz) :: t                 ! temperature (k)
54real, dimension(nz) :: t_elect           ! electronic temperature (k)
55real, dimension(nz) :: zlocal            ! altitude (km)
56real, dimension(nz) :: mumean            ! mean molecular mass (g/mol)
57real, dimension(nz,nespeuv) :: vmr_dens_euv ! tracer mixing ratio for jthermcal_e107 routine
58real :: ptimestep                        ! physics timestep (s)
59real :: sza_input                        ! solar zenith angle (degrees)
60real :: lon, lat                         ! longitude and latitude (degrees)
61
62integer :: ig                            ! grid point index
63
64integer :: n_lon                         ! for 1D test
65
66!===================================================================
67!     input/output:
68!===================================================================
69
70real, dimension(nz,nesp) :: tr      ! tracer mixing ratio
71real, dimension(nz,nesp) :: prod_tr ! production (cm-3.s-1)
72real, dimension(nz,nesp) :: loss_tr ! loss       (cm-3.s-1)
73real, dimension (nz)     :: em_no   ! volume emission rate of no
74real, dimension (nz)     :: em_o2   ! volume emission rate of o2(deltag)
75
76!===================================================================
77!     output:
78!===================================================================
79
80integer :: iter(nz)               ! iteration counter
81
82!===================================================================
83!     local:
84!===================================================================
85
86! ok_ jonline: see physiq.def
87! true : on-line calculation of photodissociation rates ! false : lookup table
88
89logical, save :: firstcall = .true.
90
91real, dimension(nz)  :: conc      ! total number density (molecule.cm-3)
92real, dimension(nz)  :: surfice1d, surfdust1d
93
94integer :: ind_norec
95integer :: ind_orec
96
97! photolysis lookup table (case jonline = .false.)
98! if prior to jvenus.20211025, set nztable = 201 below
99
100integer, parameter :: nj = 23, nztable = 281, nsza = 27, nso2 = 13
101real, dimension(nso2,nsza,nztable,nj), save :: jphot ! nj must be equal to nphot
102real, dimension(nztable), save :: table_colair
103real, dimension(nso2,nztable), save :: table_colso2
104real, dimension(nsza), save :: table_sza
105real :: dist_sol
106
107! number densities
108
109real (kind = 8), dimension(nesp)        :: cold ! number densities at previous timestep (molecule.cm-3)
110real (kind = 8), dimension(nz,nesp)     :: c    ! number densities at current timestep (molecule.cm-3)
111real (kind = 8), dimension(nz,nespeuv)  :: c_euv! number densities for jthermcal_e107 at current timestep (molecule.cm-3)
112real (kind = 8), dimension(nesp)        :: cnew ! number densities at next timestep (molecule.cm-3)
113
114! timesteps
115
116real :: ctimestep           ! standard timestep for the chemistry (s)
117real :: dt_guess            ! first-guess timestep (s)
118real :: dt_corrected        ! corrected timestep (s)
119real :: time                ! internal time (between 0 and ptimestep, in s)
120integer :: phychemrat
121
122!Tracer indexes for photionization coeffs
123
124integer,parameter :: induv_co2 = 1
125integer,parameter :: induv_o2  = 2
126integer,parameter :: induv_o   = 3
127integer,parameter :: induv_h2o = 4
128integer,parameter :: induv_h2  = 5
129integer,parameter :: induv_h2o2= 6
130integer,parameter :: induv_o3  = 7
131integer,parameter :: induv_n2  = 8
132integer,parameter :: induv_n   = 9
133integer,parameter :: induv_no  = 10
134integer,parameter :: induv_co  = 11
135integer,parameter :: induv_h   = 12
136integer,parameter :: induv_no2 = 13
137
138! reaction rates
139
140real (kind = 8), dimension(nz,      nb_phot_max) :: v_phot
141real (kind = 8), dimension(nz,nb_reaction_3_max) :: v_3
142real (kind = 8), dimension(nz,nb_reaction_4_max) :: v_4
143
144logical,parameter :: hetero_ice  = .false.
145logical,parameter :: hetero_dust = .false.
146
147! matrix
148
149real (kind = 8), dimension(nesp,nesp) :: mat, mat1
150integer, dimension(nesp)              :: indx
151integer                               :: code
152
153! production and loss terms (for first-guess solution only)
154
155real (kind = 8), dimension(nesp) :: prod, loss, lossconc
156
157! indexes
158
159integer :: i, iesp, iz
160
161if (firstcall) then
162!===================================================================
163!     initialisation of  photolysis
164!===================================================================
165
166   ! ok jonline
167   ! true : on-line calculation of photodissociation rates ! false : lookup table
168   if (ok_jonline) then
169      print*, 'photochemistry: Read UV absorption cross-sections:'
170      call init_photolysis
171   else
172      print*, 'photochemistry: Read photolysis lookup table:'
173      call init_chimie(nphot, nztable, nsza, nso2, jphot, table_colair, table_colso2, table_sza)
174   end if
175
176!===================================================================
177!     initialisation of the reaction indexes
178!===================================================================
179
180   call indice(ok_ionchem, nb_phot_max, nb_reaction_3_max, nb_reaction_4_max)
181
182   firstcall = .false.
183end if
184
185! cloud and dust surfaces set to zero for the moment
186
187surfice1d(:)  = 0.
188surfdust1d(:) = 0.
189     
190!===================================================================
191!   number densities (molecule.cm-3)
192!===================================================================
193
194do iz = 1,nz
195   conc(iz)    = p(iz)/(1.38E-19*t(iz))
196   c(iz,:)     = tr(iz,:)*conc(iz)
197end do
198     
199!===================================================================
200!    photodissociations         
201!===================================================================
202
203! dist_sol : sun-venus distance (au)
204
205dist_sol = 0.72333
206
207if (ok_jonline) then
208   if (sza_input <= 95.) then ! day at 300 km
209      call photolysis_online(nz, nb_phot_max, zlocal, p,                  &
210                             t, mumean, i_co2,i_co, i_o, i_o1d,           &
211                             i_o2, i_o3, i_h2, i_oh, i_ho2, i_h2o2, i_h2o,&
212                             i_h, i_hcl, i_cl2, i_hocl, i_so2, i_so,      &
213                             i_so3, i_s2, i_clo, i_ocs, i_cocl2, i_h2so4, &
214                             i_cl, i_no2, i_no, i_n2, i_n2d,              &
215                             nesp, tr, sza_input, dist_sol, v_phot)
216
217      !Calculation of photoionization rates, if needed
218      if (ok_ionchem) then
219         do iz = 1,nz
220           c_euv(iz,:) = vmr_dens_euv(iz,:)*conc(iz)
221         end do
222      !! FAIRE ULTRA ATTENTION LE c_euv et vmr_dens_euv NE SONT PAS DANS LE MEME REGIME
223      !! DE i_ESPECE QUE C, CNEW, COLD et TR
224         call jthermcalc_e107(ig,nz,2,c_euv,nespeuv,t,zlocal,sza_input)
225         do iz=1,nz
226            call phdisrate(ig,nz,2,sza_input,iz)
227         end do
228         !CO2 photoionization
229         v_phot(:,nphot+ 1) = jion(induv_co2,:,1)
230         v_phot(:,nphot+ 2) = jion(induv_co2,:,2)
231         v_phot(:,nphot+ 3) = jion(induv_co2,:,2)
232         v_phot(:,nphot+ 4) = jion(induv_co2,:,3)
233         v_phot(:,nphot+ 5) = jion(induv_co2,:,3)
234         v_phot(:,nphot+ 6) = jion(induv_co2,:,4)
235         v_phot(:,nphot+ 7) = jion(induv_co2,:,4)
236         !O2 photoionization
237         v_phot(:,nphot+ 8) = jion(induv_o2,:,1)
238         !O photoionization
239         v_phot(:,nphot+ 9) = jion(induv_o,:,1)
240         !NO photoionization
241         v_phot(:,nphot+10) = jion(induv_no,:,1)
242         !CO photoionization
243         v_phot(:,nphot+11) = jion(induv_co,:,1)
244         v_phot(:,nphot+12) = jion(induv_co,:,2)
245         v_phot(:,nphot+13) = jion(induv_co,:,2)
246         !N2 photoionization
247         v_phot(:,nphot+14) = jion(induv_n2,:,1)
248         v_phot(:,nphot+15) = jion(induv_n2,:,2)
249         v_phot(:,nphot+16) = jion(induv_n2,:,2)
250         !N photoionization
251         v_phot(:,nphot+17) = jion(induv_n,:,1)
252         !H photoionization
253         v_phot(:,nphot+18) = jion(induv_h,:,1)
254      end if
255   else ! night
256      v_phot(:,:) = 0.
257   end if
258else
259   call phot(nj, nztable, nsza, nso2, sza_input, dist_sol, mumean, tr(:,i_co2), tr(:,i_so2),         &
260             jphot, table_colair, table_colso2, table_sza, nz, nb_phot_max, t, p, v_phot)
261end if
262
263!===================================================================
264!     reaction rates                                     
265!===================================================================
266                   
267call krates(hetero_ice,hetero_dust,ok_ionchem, nphotion, nz, nesp, c, conc, t, t_elect, p, nb_phot_max, nb_reaction_3_max, &
268            nb_reaction_4_max, tuneupperatm, v_3, v_4, v_phot, sza_input, ind_norec, ind_orec)
269
270!===================================================================
271!     ctimestep : standard chemical timestep (s), defined as
272!                 the fraction phychemrat of the physical timestep                           
273!===================================================================
274
275phychemrat = 1
276
277ctimestep  = ptimestep/real(phychemrat)
278
279!===================================================================
280!     loop over levels         
281!===================================================================
282
283do iz = 1,nz
284
285!  initializations
286
287   time = 0.
288   iter(iz) = 0
289   dt_guess = ctimestep
290   cold(:) = c(iz,:)     
291
292!  internal loop for the chemistry
293         
294   do while (time < ptimestep)
295     
296   iter(iz) = iter(iz) + 1
297
298!  first-guess: fill matrix
299
300   call fill_matrix(iz, mat1, prod, loss, lossconc, c, nesp, nz,          &
301                    nb_reaction_3_max, nb_reaction_4_max, nb_phot_max,    &
302                    v_phot, v_3, v_4)
303
304!  adaptative evaluation of the sub time step
305
306   call define_dt(nesp, dt_corrected, dt_guess, ctimestep, cold(:), c(iz,:), &
307                  mat1, prod, loss, conc(iz), lon, lat)
308
309   if (time + dt_corrected > ptimestep) then
310      dt_corrected = ptimestep - time
311   end if
312
313!  form the matrix identity + mat*dt_corrected
314
315   mat(:,:) = mat1(:,:)*dt_corrected
316   do iesp = 1,nesp
317      mat(iesp,iesp) = 1. + mat(iesp,iesp)
318   end do
319
320!  solve the linear system  M*Cn+1 = Cn (RHS in cnew, then replaced by solution)
321
322   cnew(:) = c(iz,:)
323
324#ifdef LAPACK
325   call dgesv(nesp,1,mat,nesp,indx,cnew,nesp,code)
326#else
327   write(*,*) "photochemistry error, missing LAPACK routine dgesv"
328   stop
329#endif
330
331!  eliminate small values
332
333   where (cnew(:)/conc(iz) < 1.e-30)
334      cnew(:) = 0.
335   end where
336
337!  update concentrations
338
339   cold(:) = c(iz,:)
340   c(iz,:) = cnew(:)
341   cnew(:) = 0.
342
343!  force charge neutrality (mod fgg, july 2019)
344
345   if (ok_ionchem) then
346      if(c(iz,i_elec).ne.c(iz,i_co2plus)+c(iz,i_oplus)+c(iz,i_o2plus)+  &
347           c(iz,i_noplus)+c(iz,i_coplus)+c(iz,i_cplus)+c(iz,i_n2plus)+  &
348           c(iz,i_nplus)+c(iz,i_hplus)+c(iz,i_hco2plus)+                &
349           c(iz,i_hcoplus)+c(iz,i_h2oplus)+c(iz,i_h3oplus)+             &
350           c(iz,i_ohplus)) then
351         c(iz,i_elec) = c(iz,i_co2plus)+c(iz,i_oplus)+c(iz,i_o2plus)+   &
352              c(iz,i_noplus)+c(iz,i_coplus)+c(iz,i_cplus)+              &
353              c(iz,i_n2plus)+c(iz,i_nplus)+c(iz,i_hplus)+               &
354              c(iz,i_hco2plus)+c(iz,i_hcoplus)+c(iz,i_h2oplus)+         &
355              c(iz,i_h3oplus)+c(iz,i_ohplus)
356         !      write(*,*)'photochemistry/359'
357         !      write(*,*)'Forcing charge neutrality at ilev,',ilev,' ig=',ig
358      end if
359   end if
360
361!  increment internal time
362
363   time = time + dt_corrected
364   dt_guess = dt_corrected     ! first-guess timestep for next iteration
365
366   end do ! while (time < ptimestep)
367
368!  save mixing ratios
369
370   tr(iz,:)  = max(c(iz,:)/conc(iz), 1.e-30)
371
372!  save production and loss terms (for diagnostic only)
373   
374   prod_tr(iz,:) = prod(:)
375   loss_tr(iz,:) = lossconc(:)
376                       
377end do  ! end of loop over vertical levels
378 
379! no and o2(delta) emissions
380
381em_no(:) = c(:,i_o)*c(:,i_n)*v_4(:,ind_norec)   !2.8e-17*(300./temp(:)))**0.5
382em_o2(:) = c(:,i_o2dg)/4470.    ! 4470 s : lafferty et al., 1998
383
384end subroutine photochemistry_venus
385
386!======================================================================
387
388 subroutine init_chimie(nj, nztable, nsza, nso2, jphot, table_colair, &
389                        table_colso2, table_sza)
390
391!======================================================================
392
393implicit none
394
395! photolysis lookup table
396
397integer, INTENT(IN) :: nj, nztable, nsza, nso2
398real, INTENT(OUT), dimension(nso2,nsza,nztable,nj) :: jphot
399real, INTENT(OUT), dimension(nztable) :: table_colair
400real, INTENT(OUT), dimension(nso2,nztable) :: table_colso2
401real, INTENT(OUT), dimension(nsza) :: table_sza
402
403integer           :: iz, isza, iozo, iso2, ij
404character(len=44) :: jvenus
405
406! lecture de la table des j
407
408jphot(:,:,:,:) = 0.
409
410jvenus = 'jvenus.dat'
411open(30, form = 'formatted', status = 'old', file = jvenus)
412print*,'lecture de jvenus = ', jvenus
413
414do iso2 = 1,nso2
415   do isza = 1,nsza
416      do iz = nztable,1,-1
417         read(30,*) table_colair(iz), table_colso2(iso2,iz), table_sza(isza)
418         read(30,'(7e11.4)') (jphot(iso2,isza,iz,ij), ij = 1,nj)
419         do ij = 1,nj
420            if (jphot(iso2,isza,iz,ij) == 1.E-30) then
421               jphot(iso2,isza,iz,ij) = 0.
422            end if
423         end do
424      end do
425   end do
426end do
427
428close(30)
429print*,'lecture de la table des j ok.'
430
431end subroutine init_chimie
432
433!======================================================================
434
435 subroutine indice(ok_ionchem, nb_phot_max, nb_reaction_3_max, nb_reaction_4_max)
436
437!================================================================
438! set the "indice" arrays used to fill the jacobian matrix      !
439!----------------------------------------------------------------
440! reaction               type                array              !
441!----------------------------------------------------------------
442! A + hv   --> B + C     photolysis          indice_phot        !
443! A + B    --> C + D     bimolecular         indice_4           !
444! A + A    --> B + C     quadratic           indice_3           !
445! A + C    --> B + C     quenching           indice_phot        !
446! A + ice  --> B + C     heterogeneous       indice_phot        !
447!================================================================
448
449use types_asis
450use chemparam_mod
451 
452implicit none
453
454! input
455
456integer, intent(in) :: nb_reaction_3_max   ! number of quadratic reactions
457integer, intent(in) :: nb_reaction_4_max   ! number of bimolecular reactions
458integer, intent(in) :: nb_phot_max         ! number of processes treated numerically as photodissociations
459logical, intent(in) :: ok_ionchem          ! True: Ion reaction
460
461! local
462
463integer :: nb_phot, nb_reaction_3, nb_reaction_4
464integer :: i_dummy
465
466allocate (indice_phot(nb_phot_max))
467allocate (indice_3(nb_reaction_3_max))
468allocate (indice_4(nb_reaction_4_max))
469
470i_dummy = 1
471
472nb_phot       = 0
473nb_reaction_3 = 0
474nb_reaction_4 = 0
475
476!===========================================================
477!      O2 + hv -> O + O
478!===========================================================
479
480nb_phot = nb_phot + 1
481
482indice_phot(nb_phot) = z3spec(1.0, i_o2, 2.0, i_o, 0.0, i_dummy)
483
484!===========================================================
485!      O2 + hv -> O + O(1D)
486!===========================================================
487
488nb_phot = nb_phot + 1
489
490indice_phot(nb_phot) = z3spec(1.0, i_o2, 1.0, i_o, 1.0, i_o1d)
491
492!===========================================================
493!      CO2 + hv -> CO + O
494!===========================================================
495
496nb_phot = nb_phot + 1
497
498indice_phot(nb_phot) = z3spec(1.0, i_co2, 1.0, i_co, 1.0, i_o)
499
500!===========================================================
501!      CO2 + hv -> CO + O(1D)
502!===========================================================
503
504nb_phot = nb_phot + 1
505
506indice_phot(nb_phot) = z3spec(1.0, i_co2, 1.0, i_co, 1.0, i_o1d)
507
508!===========================================================
509!      O3 + hv -> O2(Dg) + O(1D)
510!===========================================================
511
512nb_phot = nb_phot + 1
513
514indice_phot(nb_phot) = z3spec(1.0, i_o3, 1.0, i_o2dg, 1.0, i_o1d)
515
516!===========================================================
517!      O3 + hv -> O2 + O
518!===========================================================
519
520nb_phot = nb_phot + 1
521
522indice_phot(nb_phot) = z3spec(1.0, i_o3, 1.0, i_o2, 1.0, i_o)
523
524!===========================================================
525!      H2 + hv -> H + H
526!===========================================================
527
528nb_phot = nb_phot + 1
529
530indice_phot(nb_phot) = z3spec(1.0, i_h2, 2.0, i_h, 0.0, i_dummy)
531
532
533!===========================================================
534!      H2O + hv -> H + OH
535!===========================================================
536
537nb_phot = nb_phot + 1
538
539indice_phot(nb_phot) = z3spec(1.0, i_h2o, 1.0, i_h, 1.0, i_oh)
540
541!===========================================================
542!      HO2 + hv -> OH + O
543!===========================================================
544
545nb_phot = nb_phot + 1
546
547indice_phot(nb_phot) = z3spec(1.0, i_ho2, 1.0, i_oh, 1.0, i_o)
548
549!===========================================================
550!      H2O2 + hv -> OH + OH
551!===========================================================
552
553nb_phot = nb_phot + 1
554
555indice_phot(nb_phot) = z3spec(1.0, i_h2o2, 2.0, i_oh, 0.0, i_dummy)
556
557!===========================================================
558!      HCl + hv -> H + Cl
559!===========================================================
560
561nb_phot = nb_phot + 1
562
563indice_phot(nb_phot) = z3spec(1.0, i_hcl, 1.0, i_h, 1.0, i_cl)
564
565!===========================================================
566!      Cl2 + hv -> Cl + Cl
567!===========================================================
568
569nb_phot = nb_phot + 1
570
571indice_phot(nb_phot) = z3spec(1.0, i_cl2, 2.0, i_cl, 0.0, i_dummy)
572
573!===========================================================
574!      HOCl + hv -> OH + Cl
575!===========================================================
576
577nb_phot = nb_phot + 1
578
579indice_phot(nb_phot) = z3spec(1.0, i_hocl, 1.0, i_oh, 1.0, i_cl)
580
581!===========================================================
582!      SO2 + hv -> SO + O
583!===========================================================
584
585nb_phot = nb_phot + 1
586
587indice_phot(nb_phot) = z3spec(1.0, i_so2, 1.0, i_so, 1.0, i_o)
588
589!===========================================================
590!      SO + hv -> S + O
591!===========================================================
592
593nb_phot = nb_phot + 1
594
595indice_phot(nb_phot) = z3spec(1.0, i_so, 1.0, i_s, 1.0, i_o)
596
597!===========================================================
598!      SO3 + hv -> SO2 + O
599!===========================================================
600
601nb_phot = nb_phot + 1
602
603indice_phot(nb_phot) = z3spec(1.0, i_so3, 1.0, i_so2, 1.0, i_o)
604
605!===========================================================
606!       S2 + hv -> S + S
607!===========================================================
608
609nb_phot = nb_phot + 1
610
611indice_phot(nb_phot) = z3spec(1.0, i_s2, 2.0, i_s, 0.0, i_dummy)
612
613!===========================================================
614!      ClO + hv -> Cl + O
615!===========================================================
616
617nb_phot = nb_phot + 1
618
619indice_phot(nb_phot) = z3spec(1.0, i_clo, 1.0, i_cl, 1.0, i_o)
620
621!===========================================================
622!      OCS + hv -> CO + S
623!===========================================================
624
625nb_phot = nb_phot + 1
626
627indice_phot(nb_phot) = z3spec(1.0, i_ocs, 1.0, i_co, 1.0, i_s)
628
629!===========================================================
630!      COCl2 + hv -> Cl + Cl + CO
631!===========================================================
632
633nb_phot = nb_phot + 1
634
635indice_phot(nb_phot) = z3spec(1.0, i_cocl2, 2.0, i_cl, 1.0, i_co)
636
637!===========================================================
638!      H2SO4 + hv -> SO3 + H2O
639!===========================================================
640
641nb_phot = nb_phot + 1
642
643indice_phot(nb_phot) = z3spec(1.0, i_h2so4, 1.0, i_so3, 1.0, i_h2o)
644
645!===========================================================
646!      NO2 + hv -> NO + O
647!===========================================================
648
649nb_phot = nb_phot + 1
650
651indice_phot(nb_phot) = z3spec(1.0, i_no2, 1.0, i_no, 1.0, i_o)
652
653!===========================================================
654!      NO + hv -> N + O
655!===========================================================
656
657nb_phot = nb_phot + 1
658
659indice_phot(nb_phot) = z3spec(1.0, i_no, 1.0, i_n, 1.0, i_o)
660
661!===========================================================
662!      N2 + hv -> N(2D) + N
663!===========================================================
664
665nb_phot = nb_phot + 1
666
667indice_phot(nb_phot) = z3spec(1.0, i_n2, 1.0, i_n, 1.0, i_n2d)
668
669!Only if ion chemistry included
670if (ok_ionchem) then
671
672!===========================================================
673!      CO2 + hv -> CO2+ + e-
674!===========================================================
675
676   nb_phot = nb_phot + 1
677
678   indice_phot(nb_phot) = z3spec(1.0, i_co2, 1.0, i_co2plus, 1.0, i_elec)
679
680!===========================================================
681!      CO2 + hv -> O+ + CO + e-
682!===========================================================
683!We divide this reaction in two
684
685!0.5 CO2 + hv -> CO
686   nb_phot = nb_phot + 1
687
688   indice_phot(nb_phot) = z3spec(0.5, i_co2, 1.0, i_co, 0.0, i_dummy)
689
690!0.5 CO2 + hv -> O+ + e-
691   nb_phot = nb_phot + 1
692
693   indice_phot(nb_phot) = z3spec(0.5, i_co2, 1.0, i_oplus, 1.0, i_elec)
694
695!===========================================================
696!      CO2 + hv -> CO+ + O + e-
697!===========================================================
698!We divide this reaction in two
699
700!0.5 CO2 + hv -> O
701   nb_phot = nb_phot + 1
702
703   indice_phot(nb_phot) = z3spec(0.5, i_co2, 1.0, i_o, 0.0, i_dummy)
704
705!0.5 CO2 + hv -> CO+ + e-
706   nb_phot = nb_phot + 1
707
708   indice_phot(nb_phot) = z3spec(0.5, i_co2, 1.0, i_coplus, 1.0, i_elec)
709
710!===========================================================
711!      CO2 + hv -> C+ + O2 + e-
712!===========================================================
713!We divide this reaction in two
714
715!0.5 CO2 + hv -> O2
716   nb_phot = nb_phot + 1
717
718   indice_phot(nb_phot) = z3spec(0.5, i_co2, 1.0, i_o2, 0.0, i_dummy)
719
720!0.5 CO2 + hv -> C+ + e-
721   nb_phot = nb_phot + 1
722
723   indice_phot(nb_phot) = z3spec(0.5, i_co2, 1.0, i_cplus, 1.0, i_elec)
724
725!===========================================================
726!      O2 + hv -> O2+ + e-
727!===========================================================
728
729   nb_phot = nb_phot + 1
730
731   indice_phot(nb_phot) = z3spec(1.0, i_o2, 1.0, i_o2plus, 1.0, i_elec)
732
733!===========================================================
734!      O + hv -> O+ + e-
735!===========================================================
736
737   nb_phot = nb_phot + 1
738
739   indice_phot(nb_phot) = z3spec(1.0, i_o, 1.0, i_oplus, 1.0, i_elec)
740
741!===========================================================
742!      NO + hv -> NO+ + e-
743!===========================================================
744
745   nb_phot = nb_phot + 1
746
747   indice_phot(nb_phot) = z3spec(1.0, i_no, 1.0, i_noplus, 1.0, i_elec)
748
749!===========================================================
750!      CO + hv -> CO+ + e-
751!===========================================================
752
753   nb_phot = nb_phot + 1
754
755   indice_phot(nb_phot) = z3spec(1.0, i_co, 1.0, i_coplus, 1.0, i_elec)
756
757!===========================================================
758!      CO + hv -> C+ + O + e-
759!===========================================================
760!We divide this reaction in two
761
762!0.5 CO + hv -> O
763   nb_phot = nb_phot + 1
764
765   indice_phot(nb_phot) = z3spec(0.5, i_co, 1.0, i_o, 0.0, i_dummy)
766
767!0.5 CO + hv -> C+ + e-
768   nb_phot = nb_phot + 1
769
770   indice_phot(nb_phot) = z3spec(0.5, i_co, 1.0, i_cplus, 1.0, i_elec)
771
772!===========================================================
773!      N2 + hv -> N2+ + e-
774!===========================================================
775
776   nb_phot = nb_phot + 1
777
778   indice_phot(nb_phot) = z3spec(1.0, i_n2, 1.0, i_n2plus, 1.0, i_elec)
779
780!===========================================================
781!      N2 + hv -> N+ + N + e-
782!===========================================================
783!We divide this reaction in two
784
785!0.5 N2 + hv -> N
786   nb_phot = nb_phot + 1
787
788   indice_phot(nb_phot) = z3spec(0.5, i_n2, 1.0, i_n, 0.0, i_dummy)
789
790!0.5 N2 + hv -> N+ + e-
791   nb_phot = nb_phot + 1
792
793   indice_phot(nb_phot) = z3spec(0.5, i_n2, 1.0, i_nplus, 1.0, i_elec)
794
795!===========================================================
796!      N + hv -> N+ + e-
797!===========================================================
798
799   nb_phot = nb_phot + 1
800
801   indice_phot(nb_phot) = z3spec(1.0, i_n, 1.0, i_nplus, 1.0, i_elec)
802
803!===========================================================
804!      H + hv -> H+ + e-
805!===========================================================
806
807   nb_phot = nb_phot + 1
808
809   indice_phot(nb_phot) = z3spec(1.0, i_h, 1.0, i_hplus, 1.0, i_elec)
810
811end if   !ok_ionchem
812
813!===========================================================
814!      a001 : O + O2 + (CO2 or M) -> O3 + (CO2 or M)
815!===========================================================
816
817nb_reaction_4 = nb_reaction_4 + 1
818
819indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_o2, 1.0, i_o3, 0.0, i_dummy)
820
821!===========================================================
822!      a002 : O + O + (CO2 or M) -> O2(Dg) + (CO2 or M)
823!===========================================================
824
825nb_reaction_3 = nb_reaction_3 + 1
826
827indice_3(nb_reaction_3) = z3spec(2.0, i_o, 1.0, i_o2dg, 0.0, i_dummy)
828
829!===========================================================
830!      a003 : O + O3 -> O2 + O2
831!===========================================================
832
833nb_reaction_4 = nb_reaction_4 + 1
834
835indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_o3, 2.0, i_o2, 0.0, i_dummy)
836
837!===========================================================
838!      b001 : O(1D) + CO2 -> O + CO2
839!===========================================================
840
841nb_phot = nb_phot + 1
842
843indice_phot(nb_phot) = z3spec(1.0, i_o1d, 1.0, i_o, 0.0, i_dummy)
844
845!===========================================================
846!      b002 : O(1D) + H2O -> OH + OH
847!===========================================================
848
849nb_reaction_4 = nb_reaction_4 + 1
850
851indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_h2o, 2.0, i_oh, 0.0, i_dummy)
852
853!===========================================================
854!      b003 : O(1D) + H2 -> OH + H
855!===========================================================
856
857nb_reaction_4 = nb_reaction_4 + 1
858
859indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_h2, 1.0, i_oh, 1.0, i_h)
860
861!===========================================================
862!      b004 : O(1D) + O2 -> O + O2
863!===========================================================
864
865nb_phot = nb_phot + 1
866
867indice_phot(nb_phot) = z3spec(1.0, i_o1d, 1.0, i_o, 0.0, i_dummy)
868
869!===========================================================
870!      b005 : O(1D) + O3 -> O2 + O2
871!===========================================================
872
873nb_reaction_4 = nb_reaction_4 + 1
874
875indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_o3, 2.0, i_o2, 0.0, i_dummy)
876
877!===========================================================
878!      b006 : O(1D) + O3 -> O2 + O + O
879!===========================================================
880
881nb_reaction_4 = nb_reaction_4 + 1
882
883indice_4(nb_reaction_4) = z4spec(1.0, i_o1d, 1.0, i_o3, 1.0, i_o2, 2.0, i_o)
884
885!===========================================================
886!      c001 : O + HO2 -> OH + O2
887!===========================================================
888
889nb_reaction_4 = nb_reaction_4 + 1
890
891indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_ho2, 1.0, i_oh, 1.0, i_o2)
892
893!===========================================================
894!      c002 : O + OH -> O2 + H
895!===========================================================
896
897nb_reaction_4 = nb_reaction_4 + 1
898
899indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_oh, 1.0, i_o2, 1.0, i_h)
900
901!===========================================================
902!      c003 : H + O3 -> OH + O2
903!===========================================================
904
905nb_reaction_4 = nb_reaction_4 + 1
906
907indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_o3, 1.0, i_oh, 1.0, i_o2)
908
909!===========================================================
910!      c004 : H + HO2 -> OH + OH
911!===========================================================
912
913nb_reaction_4 = nb_reaction_4 + 1
914
915indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_ho2, 2.0, i_oh, 0.0, i_dummy)
916
917!===========================================================
918!      c005 : H + HO2 -> H2 + O2
919!===========================================================
920
921nb_reaction_4 = nb_reaction_4 + 1
922
923indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_ho2, 1.0, i_h2, 1.0, i_o2)
924
925!===========================================================
926!      c006 : H + HO2 -> H2O + O
927!===========================================================
928
929nb_reaction_4 = nb_reaction_4 + 1
930
931indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_ho2, 1.0, i_h2o, 1.0, i_o)
932
933!===========================================================
934!      c007 : OH + HO2 -> H2O + O2
935!===========================================================
936
937nb_reaction_4 = nb_reaction_4 + 1
938
939indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_ho2, 1.0, i_h2o, 1.0, i_o2)
940
941!===========================================================
942!      c008 : HO2 + HO2 -> H2O2 + O2
943!===========================================================
944
945nb_reaction_3 = nb_reaction_3 + 1
946
947indice_3(nb_reaction_3) = z3spec(2.0, i_ho2, 1.0, i_h2o2, 1.0, i_o2)
948
949!===========================================================
950!      c009 : OH + H2O2 -> H2O + HO2
951!===========================================================
952
953nb_reaction_4 = nb_reaction_4 + 1
954
955indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_h2o2, 1.0, i_h2o, 1.0, i_ho2)
956
957!===========================================================
958!      c010 : OH + H2 -> H2O + H
959!===========================================================
960
961nb_reaction_4 = nb_reaction_4 + 1
962
963indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_h2, 1.0, i_h2o, 1.0, i_h)
964
965!===========================================================
966!      c011 : H + O2 + CO2 -> HO2 + CO2
967!===========================================================
968
969nb_reaction_4 = nb_reaction_4 + 1
970
971indice_4(nb_reaction_4) = z4spec(1.0, i_h, 1.0, i_o2, 1.0, i_ho2, 0.0, i_dummy)
972
973!===========================================================
974!      c012 : O + H2O2 -> OH + HO2
975!===========================================================
976
977nb_reaction_4 = nb_reaction_4 + 1
978
979indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_h2o2, 1.0, i_oh, 1.0, i_ho2)
980
981!===========================================================
982!      c013 : OH + OH -> H2O + O
983!===========================================================
984
985nb_reaction_3 = nb_reaction_3 + 1
986
987indice_3(nb_reaction_3) = z3spec(2.0, i_oh, 1.0, i_h2o, 1.0, i_o)
988
989!===========================================================
990!      c014 : OH + O3 -> HO2 + O2
991!===========================================================
992
993nb_reaction_4 = nb_reaction_4 + 1
994
995indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_o3, 1.0, i_ho2, 1.0, i_o2)
996
997!===========================================================
998!      c015 : HO2 + O3 -> OH + O2 + O2
999!===========================================================
1000
1001nb_reaction_4 = nb_reaction_4 + 1
1002
1003indice_4(nb_reaction_4) = z4spec(1.0, i_ho2, 1.0, i_o3, 1.0, i_oh, 2.0, i_o2)
1004
1005!===========================================================
1006!      c016 : HO2 + HO2 + CO2 -> H2O2 + O2 + CO2
1007!===========================================================
1008
1009nb_reaction_3 = nb_reaction_3 + 1
1010indice_3(nb_reaction_3) = z3spec(2.0, i_ho2, 1.0, i_h2o2, 1.0, i_o2)
1011
1012!===========================================================
1013!      c017 : OH + OH + CO2 -> H2O2 + CO2
1014!===========================================================
1015
1016nb_reaction_3 = nb_reaction_3 + 1
1017
1018indice_3(nb_reaction_3) = z3spec(2.0, i_oh, 1.0, i_h2o2, 0.0, i_dummy)
1019
1020!===========================================================
1021!      c018 : H + H + CO2 -> H2 + CO2
1022!===========================================================
1023
1024nb_reaction_3 = nb_reaction_3 + 1
1025
1026indice_3(nb_reaction_3) = z3spec(2.0, i_h, 1.0, i_h2, 0.0, i_dummy)
1027
1028!===========================================================
1029!      d001 : NO2 + O -> NO + O2
1030!===========================================================
1031
1032nb_reaction_4 = nb_reaction_4 + 1
1033
1034indice_4(nb_reaction_4) = z4spec(1.0, i_no2, 1.0, i_o, 1.0, i_no, 1.0, i_o2)
1035
1036!===========================================================
1037!      d002 : NO + O3 -> NO2 + O2
1038!===========================================================
1039
1040nb_reaction_4 = nb_reaction_4 + 1
1041
1042indice_4(nb_reaction_4) = z4spec(1.0, i_no, 1.0, i_o3, 1.0, i_no2, 1.0, i_o2)
1043
1044!===========================================================
1045!      d003 : NO + HO2 -> NO2 + OH
1046!===========================================================
1047
1048nb_reaction_4 = nb_reaction_4 + 1
1049
1050indice_4(nb_reaction_4) = z4spec(1.0, i_no, 1.0, i_ho2, 1.0, i_no2, 1.0, i_oh)
1051
1052!===========================================================
1053!      d004 : N + NO -> N2 + O
1054!===========================================================
1055
1056nb_reaction_4 = nb_reaction_4 + 1
1057
1058indice_4(nb_reaction_4) = z4spec(1.0, i_n, 1.0, i_no, 1.0, i_n2, 1.0, i_o)
1059
1060!===========================================================
1061!      d005 : N + O2 -> NO + O
1062!===========================================================
1063
1064nb_reaction_4 = nb_reaction_4 + 1
1065
1066indice_4(nb_reaction_4) = z4spec(1.0, i_n, 1.0, i_o2, 1.0, i_no, 1.0, i_o)
1067
1068!===========================================================
1069!      d006 : NO2 + H -> NO + OH
1070!===========================================================
1071
1072nb_reaction_4 = nb_reaction_4 + 1
1073
1074indice_4(nb_reaction_4) = z4spec(1.0, i_no2, 1.0, i_h, 1.0, i_no, 1.0, i_oh)
1075
1076!===========================================================
1077!      d007 : N + O -> NO
1078!===========================================================
1079
1080nb_reaction_4 = nb_reaction_4 + 1
1081
1082indice_4(nb_reaction_4) = z4spec(1.0, i_n, 1.0, i_o, 1.0, i_no, 0.0, i_dummy)
1083
1084!===========================================================
1085!      d008 : N + HO2 -> NO + OH
1086!===========================================================
1087
1088nb_reaction_4 = nb_reaction_4 + 1
1089
1090indice_4(nb_reaction_4) = z4spec(1.0, i_n, 1.0, i_ho2, 1.0, i_no, 1.0, i_oh)
1091
1092!===========================================================
1093!      d009 : N + OH -> NO + H
1094!===========================================================
1095
1096nb_reaction_4 = nb_reaction_4 + 1
1097
1098indice_4(nb_reaction_4) = z4spec(1.0, i_n, 1.0, i_oh, 1.0, i_no, 1.0, i_h)
1099
1100!===========================================================
1101!      d010 : N(2D) + O -> N + O
1102!===========================================================
1103
1104nb_phot = nb_phot + 1
1105
1106indice_phot(nb_phot) = z3spec(1.0, i_n2d, 1.0, i_n, 0.0, i_dummy)
1107
1108!===========================================================
1109!      d011 : N(2D) + N2 -> N + N2
1110!===========================================================
1111
1112nb_phot = nb_phot + 1
1113
1114indice_phot(nb_phot) = z3spec(1.0, i_n2d, 1.0, i_n, 0.0, i_dummy)
1115
1116!===========================================================
1117!      d012 : N(2D) + CO2 -> NO + CO
1118!===========================================================
1119
1120nb_reaction_4 = nb_reaction_4 + 1
1121
1122indice_4(nb_reaction_4) = z4spec(1.0, i_n2d, 1.0, i_co2, 1.0, i_no, 1.0, i_co)
1123
1124!===========================================================
1125!      d013 : N + O + CO2 -> NO + CO2
1126!===========================================================
1127
1128nb_reaction_4 = nb_reaction_4 + 1
1129
1130indice_4(nb_reaction_4) = z4spec(1.0, i_n, 1.0, i_o, 1.0, i_no, 0.0, i_dummy)
1131
1132!===========================================================
1133!      d014 : N(2D) + CO -> N + CO
1134!===========================================================
1135
1136nb_phot = nb_phot + 1
1137
1138indice_phot(nb_phot) = z3spec(1.0, i_n2d, 1.0, i_n, 0.0, i_dummy)
1139
1140!===========================================================
1141!      e001 : CO + OH -> CO2 + H
1142!===========================================================
1143
1144nb_reaction_4 = nb_reaction_4 + 1
1145
1146indice_4(nb_reaction_4) = z4spec(1.0, i_co, 1.0, i_oh, 1.0, i_co2, 1.0, i_h)
1147
1148!===========================================================
1149!      e002 : CO + O + M -> CO2 + M
1150!===========================================================
1151
1152nb_reaction_4 = nb_reaction_4 + 1
1153
1154indice_4(nb_reaction_4) = z4spec(1.0, i_co, 1.0, i_o, 1.0, i_co2, 0.0, i_dummy)
1155
1156!===========================================================
1157!      f001 : HCl + O(1D) -> OH + Cl
1158!===========================================================
1159
1160nb_reaction_4 = nb_reaction_4 + 1
1161
1162indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_o1d, 1.0, i_oh, 1.0, i_cl)
1163
1164!===========================================================
1165!      f002 : HCl + O(1D) -> H + ClO
1166!===========================================================
1167
1168nb_reaction_4 = nb_reaction_4 + 1
1169
1170indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_o1d, 1.0, i_h, 1.0, i_clo)
1171
1172!===========================================================
1173!      f003 : HCl + O -> OH + Cl
1174!===========================================================
1175
1176nb_reaction_4 = nb_reaction_4 + 1
1177
1178indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_o, 1.0, i_oh, 1.0, i_cl)
1179
1180!===========================================================
1181!      f004 : HCl + OH -> H2O + Cl
1182!===========================================================
1183
1184nb_reaction_4 = nb_reaction_4 + 1
1185
1186indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_oh, 1.0, i_h2o, 1.0, i_cl)
1187
1188!===========================================================
1189!      f005 : ClO + O -> Cl + O2
1190!===========================================================
1191
1192nb_reaction_4 = nb_reaction_4 + 1
1193
1194indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_o, 1.0, i_cl, 1.0, i_o2)
1195
1196!===========================================================
1197!      f006 : ClO + OH -> Cl + HO2
1198!===========================================================
1199
1200nb_reaction_4 = nb_reaction_4 + 1
1201
1202indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_oh, 1.0, i_cl, 1.0, i_ho2)
1203
1204!===========================================================
1205!      f007 : ClO + OH -> HCl + O2
1206!===========================================================
1207
1208nb_reaction_4 = nb_reaction_4 + 1
1209
1210indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_oh, 1.0, i_hcl, 1.0, i_o2)
1211
1212!===========================================================
1213!      f008 : Cl + H2 -> HCl + H
1214!===========================================================
1215
1216nb_reaction_4 = nb_reaction_4 + 1
1217
1218indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_h2, 1.0, i_hcl, 1.0, i_h)
1219
1220!===========================================================
1221!      f009 : Cl + O3 -> ClO + O2
1222!===========================================================
1223
1224nb_reaction_4 = nb_reaction_4 + 1
1225
1226indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_o3, 1.0, i_clo, 1.0, i_o2)
1227
1228!===========================================================
1229!      f010 : Cl + HO2 -> ClO + OH
1230!===========================================================
1231
1232nb_reaction_4 = nb_reaction_4 + 1
1233
1234indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_ho2, 1.0, i_clo, 1.0, i_oh)
1235
1236!===========================================================
1237!      f011 : Cl + HO2 -> HCl + O2
1238!===========================================================
1239
1240nb_reaction_4 = nb_reaction_4 + 1
1241
1242indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_ho2, 1.0, i_hcl, 1.0, i_o2)
1243
1244!===========================================================
1245!      f012 : Cl + H2O2 -> HCl + HO2
1246!===========================================================
1247
1248nb_reaction_4 = nb_reaction_4 + 1
1249
1250indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_h2o2, 1.0, i_hcl, 1.0, i_ho2)
1251
1252!===========================================================
1253!      f013 : Cl + CO + CO2 -> ClCO + CO2
1254!===========================================================
1255
1256nb_reaction_4 = nb_reaction_4 + 1
1257
1258indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_co, 1.0, i_clco, 0.0, i_dummy)
1259
1260!===========================================================
1261!      f014 : ClCO + CO2 -> Cl + CO + CO2
1262!===========================================================
1263
1264nb_phot = nb_phot + 1
1265
1266indice_phot(nb_phot) = z3spec(1.0, i_clco, 1.0, i_cl, 1.0, i_co)
1267
1268!===========================================================
1269!      f015 : ClCO + O2 + CO2 -> ClCO3 + CO2
1270!===========================================================
1271
1272nb_reaction_4 = nb_reaction_4 + 1
1273
1274indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_o2, 1.0, i_clco3, 0.0, i_dummy)
1275
1276!===========================================================
1277!      f016 : 0.5 ClCO3 + 0.5 Cl -> Cl
1278!             0.5 ClCO3 + 0.5 Cl -> ClO + CO2
1279!===========================================================
1280
1281nb_reaction_4 = nb_reaction_4 + 1
1282
1283indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_cl, 1.0, i_cl, 0.0, i_dummy)
1284
1285nb_reaction_4 = nb_reaction_4 + 1
1286
1287indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_cl, 1.0, i_clo, 1.0, i_co2)
1288
1289!===========================================================
1290!      f017 : 0.5 ClCO3 + 0.5 O -> Cl
1291!             0.5 ClCO3 + 0.5 O -> O2 + CO2
1292!===========================================================
1293
1294nb_reaction_4 = nb_reaction_4 + 1
1295
1296indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_o, 1.0, i_cl, 0.0, i_dummy)
1297
1298nb_reaction_4 = nb_reaction_4 + 1
1299
1300indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_o, 1.0, i_o2, 1.0, i_co2)
1301
1302!===========================================================
1303!      f018 : ClO + HO2 -> HOCl + O2
1304!===========================================================
1305
1306nb_reaction_4 = nb_reaction_4 + 1
1307
1308indice_4(nb_reaction_4) = z4spec(1.0, i_clo, 1.0, i_ho2, 1.0, i_hocl, 1.0, i_o2)
1309
1310!===========================================================
1311!      f019 : OH + HOCl -> H2O + ClO
1312!===========================================================
1313
1314nb_reaction_4 = nb_reaction_4 + 1
1315
1316indice_4(nb_reaction_4) = z4spec(1.0, i_oh, 1.0, i_hocl, 1.0, i_h2o, 1.0, i_clo)
1317
1318!===========================================================
1319!      f020 : O + HOCl -> OH + ClO
1320!===========================================================
1321
1322nb_reaction_4 = nb_reaction_4 + 1
1323
1324indice_4(nb_reaction_4) = z4spec(1.0, i_o, 1.0, i_hocl, 1.0, i_oh, 1.0, i_clo)
1325
1326!===========================================================
1327!      f021 : Cl + Cl + CO2 -> Cl2 + CO2
1328!===========================================================
1329
1330nb_reaction_3 = nb_reaction_3 + 1
1331
1332indice_3(nb_reaction_3) = z3spec(2.0, i_cl, 1.0, i_cl2, 0.0, i_dummy)
1333
1334!===========================================================
1335!      f022 : ClCO + O -> Cl + CO2
1336!===========================================================
1337
1338nb_reaction_4 = nb_reaction_4 + 1
1339
1340indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_o, 1.0, i_cl, 1.0, i_co2)
1341
1342!===========================================================
1343!      f023 : Cl2 + O(1D) -> Cl + ClO
1344!===========================================================
1345
1346nb_reaction_4 = nb_reaction_4 + 1
1347
1348indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_o1d, 1.0, i_cl, 1.0, i_clo)
1349
1350!===========================================================
1351!      f024 : Cl2 + H -> HCl + Cl
1352!===========================================================
1353
1354nb_reaction_4 = nb_reaction_4 + 1
1355
1356indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_h, 1.0, i_hcl, 1.0, i_cl)
1357
1358!===========================================================
1359!      f025 : Cl + ClCO -> Cl2 + CO
1360!===========================================================
1361
1362nb_reaction_4 = nb_reaction_4 + 1
1363
1364indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_clco, 1.0, i_cl2, 1.0, i_co)
1365
1366!===========================================================
1367!      f026 : ClCO + ClCO -> COCl2 + CO
1368!===========================================================
1369
1370nb_reaction_3 = nb_reaction_3 + 1
1371
1372indice_3(nb_reaction_3) = z3spec(2.0, i_clco, 1.0, i_cocl2, 1.0, i_co)
1373
1374!===========================================================
1375!      f027 : Cl + SO2 + CO2 -> ClSO2 + CO2
1376!===========================================================
1377
1378nb_reaction_4 = nb_reaction_4 + 1
1379
1380indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_so2, 1.0, i_clso2, 0.0, i_dummy)
1381
1382!===========================================================
1383!      f028 : ClSO2 + O -> SO2 + ClO
1384!===========================================================
1385
1386nb_reaction_4 = nb_reaction_4 + 1
1387
1388indice_4(nb_reaction_4) = z4spec(1.0, i_clso2, 1.0, i_o, 1.0, i_so2, 1.0, i_clo)
1389
1390!===========================================================
1391!      f029 : ClSO2 + H -> SO2 + HCl
1392!===========================================================
1393
1394nb_reaction_4 = nb_reaction_4 + 1
1395
1396indice_4(nb_reaction_4) = z4spec(1.0, i_clso2, 1.0, i_h, 1.0, i_so2, 1.0, i_hcl)
1397
1398!===========================================================
1399!      f030 : ClSO2 + ClSO2 -> Cl2 + SO2 + SO2
1400!===========================================================
1401
1402nb_reaction_3 = nb_reaction_3 + 1
1403
1404indice_3(nb_reaction_3) = z3spec(2.0, i_clso2, 1.0, i_cl2, 2.0, i_so2)
1405
1406!===========================================================
1407!      f031 : Cl + O + CO2 -> ClO + CO2
1408!===========================================================
1409
1410nb_reaction_4 = nb_reaction_4 + 1
1411
1412indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_o, 1.0, i_clo, 0.0, i_dummy)
1413
1414!===========================================================
1415!      f032 : Cl2 + O -> ClO + Cl
1416!===========================================================
1417
1418nb_reaction_4 = nb_reaction_4 + 1
1419
1420indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_o, 1.0, i_clo, 1.0, i_cl)
1421
1422!===========================================================
1423!      f033 : ClCO + OH -> HOCl + CO
1424!===========================================================
1425
1426nb_reaction_4 = nb_reaction_4 + 1
1427
1428indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_oh, 1.0, i_hocl, 1.0, i_co)
1429
1430!===========================================================
1431!      f034 : Cl2 + OH -> Cl + HOCl
1432!===========================================================
1433
1434nb_reaction_4 = nb_reaction_4 + 1
1435
1436indice_4(nb_reaction_4) = z4spec(1.0, i_cl2, 1.0, i_oh, 1.0, i_cl, 1.0, i_hocl)
1437
1438!===========================================================
1439!      f035 : ClCO + O -> CO + ClO
1440!===========================================================
1441
1442nb_reaction_4 = nb_reaction_4 + 1
1443
1444indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_o, 1.0, i_co, 1.0, i_clo)
1445
1446!===========================================================
1447!      f036 : ClCO + Cl2 -> COCl2 + Cl
1448!===========================================================
1449
1450nb_reaction_4 = nb_reaction_4 + 1
1451
1452indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_cl2, 1.0, i_cocl2, 1.0, i_cl)
1453
1454!===========================================================
1455!      f037 : HCl + H -> H2 + Cl
1456!===========================================================
1457
1458nb_reaction_4 = nb_reaction_4 + 1
1459
1460indice_4(nb_reaction_4) = z4spec(1.0, i_hcl, 1.0, i_h, 1.0, i_h2, 1.0, i_cl)
1461
1462!===========================================================
1463!      f038 : ClCO + H -> HCl + CO
1464!===========================================================
1465
1466nb_reaction_4 = nb_reaction_4 + 1
1467
1468indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_h, 1.0, i_hcl, 1.0, i_co)
1469
1470!===========================================================
1471!      f039 : Cl + H + M -> HCl + M
1472!===========================================================
1473
1474nb_reaction_4 = nb_reaction_4 + 1
1475
1476indice_4(nb_reaction_4) = z4spec(1.0, i_cl, 1.0, i_h, 1.0, i_hcl, 0.0, i_dummy)
1477
1478!===========================================================
1479!      g001 : S + O2 -> SO + O
1480!===========================================================
1481
1482nb_reaction_4 = nb_reaction_4 + 1
1483
1484indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_o2, 1.0, i_so, 1.0, i_o)
1485
1486!===========================================================
1487!      g002 : S + O3 -> SO + O2
1488!===========================================================
1489
1490nb_reaction_4 = nb_reaction_4 + 1
1491
1492indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_o3, 1.0, i_so, 1.0, i_o2)
1493
1494!===========================================================
1495!      g003 : SO + O2 -> SO2 + O
1496!===========================================================
1497
1498nb_reaction_4 = nb_reaction_4 + 1
1499
1500indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_o2, 1.0, i_so2, 1.0, i_o)
1501
1502!===========================================================
1503!      g004 : SO + O3 -> SO2 + O2
1504!===========================================================
1505
1506nb_reaction_4 = nb_reaction_4 + 1
1507
1508indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_o3, 1.0, i_so2, 1.0, i_o2)
1509
1510!===========================================================
1511!      g005 : SO + OH -> SO2 + H
1512!===========================================================
1513
1514nb_reaction_4 = nb_reaction_4 + 1
1515
1516indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_oh, 1.0, i_so2, 1.0, i_h)
1517
1518!===========================================================
1519!      g006 : S + OH -> SO + H
1520!===========================================================
1521
1522nb_reaction_4 = nb_reaction_4 + 1
1523
1524indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_oh, 1.0, i_so, 1.0, i_h)
1525
1526!===========================================================
1527!      g007 : SO + O + CO2 -> SO2 + CO2
1528!===========================================================
1529
1530nb_reaction_4 = nb_reaction_4 + 1
1531
1532indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_o, 1.0, i_so2, 0.0, i_dummy)
1533
1534!===========================================================
1535!      g008 : SO + HO2 -> SO2 + OH
1536!===========================================================
1537
1538nb_reaction_4 = nb_reaction_4 + 1
1539
1540indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_ho2, 1.0, i_so2, 1.0, i_oh)
1541
1542!===========================================================
1543!      g009 : SO2 + O + CO2 -> SO3 + CO2
1544!===========================================================
1545
1546nb_reaction_4 = nb_reaction_4 + 1
1547
1548indice_4(nb_reaction_4) = z4spec(1.0, i_so2, 1.0, i_o, 1.0, i_so3, 0.0, i_dummy)
1549
1550!===========================================================
1551!      g010 : S + O + CO2 -> SO + CO2
1552!===========================================================
1553
1554nb_reaction_4 = nb_reaction_4 + 1
1555
1556indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_o, 1.0, i_so, 0.0, i_dummy)
1557
1558!===========================================================
1559!      g011 : SO3 + H2O -> H2SO4
1560!===========================================================
1561
1562nb_reaction_4 = nb_reaction_4 + 1
1563
1564indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_h2o, 1.0, i_h2so4, 0.0, i_dummy)
1565
1566!===========================================================
1567!      g012 : SO + ClO -> SO2 + Cl
1568!===========================================================
1569
1570nb_reaction_4 = nb_reaction_4 + 1
1571
1572indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_clo, 1.0, i_so2, 1.0, i_cl)
1573
1574!===========================================================
1575!      g013 : SO + SO3 -> SO2 + SO2
1576!===========================================================
1577
1578nb_reaction_4 = nb_reaction_4 + 1
1579
1580indice_4(nb_reaction_4) = z4spec(1.0, i_so, 1.0, i_so3, 2.0, i_so2, 0.0, i_dummy)
1581
1582!===========================================================
1583!      g014 : SO3 + O -> SO2 + O2
1584!===========================================================
1585
1586nb_reaction_4 = nb_reaction_4 + 1
1587
1588indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_o, 1.0, i_so2, 1.0, i_o2)
1589
1590!===========================================================
1591!      g015 : SO + SO + CO2 -> S2O2 + CO2
1592!===========================================================
1593
1594nb_reaction_3 = nb_reaction_3 + 1
1595
1596indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_s2o2, 0.0, i_dummy)
1597
1598!===========================================================
1599!      g016 : S2O2 + CO2 -> SO + SO + CO2
1600!===========================================================
1601
1602nb_phot = nb_phot + 1
1603
1604indice_phot(nb_phot) = z3spec(1.0, i_s2o2, 2.0, i_so, 0.0, i_dummy)
1605
1606!===========================================================
1607!      g017 : 0.5 ClCO3 + 0.5 SO -> Cl 
1608!             0.5 ClCO3 + 0.5 SO -> SO2 + CO2
1609!===========================================================
1610
1611nb_reaction_4 = nb_reaction_4 + 1
1612
1613indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_so, 1.0, i_cl, 0.0, i_dummy)
1614
1615nb_reaction_4 = nb_reaction_4 + 1
1616
1617indice_4(nb_reaction_4) = z4spec(0.5, i_clco3, 0.5, i_so, 1.0, i_so2, 1.0, i_co2)
1618
1619!===========================================================
1620!      g018 : S + CO + CO2 -> OCS + CO2
1621!===========================================================
1622
1623nb_reaction_4 = nb_reaction_4 + 1
1624
1625indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_co, 1.0, i_ocs, 0.0, i_dummy)
1626
1627!===========================================================
1628!      g019 : ClCO + S -> OCS + Cl
1629!===========================================================
1630
1631nb_reaction_4 = nb_reaction_4 + 1
1632
1633indice_4(nb_reaction_4) = z4spec(1.0, i_clco, 1.0, i_s, 1.0, i_ocs, 1.0, i_cl)
1634
1635!===========================================================
1636!      g020 : SO2 + OH + CO2 -> HSO3 + CO2
1637!===========================================================
1638
1639nb_reaction_4 = nb_reaction_4 + 1
1640
1641indice_4(nb_reaction_4) = z4spec(1.0, i_so2, 1.0, i_oh, 1.0, i_hso3, 0.0, i_dummy)
1642
1643!===========================================================
1644!      g021 : HSO3 + O2 -> HO2 + SO3
1645!===========================================================
1646
1647nb_reaction_4 = nb_reaction_4 + 1
1648
1649indice_4(nb_reaction_4) = z4spec(1.0, i_hso3, 1.0, i_o2, 1.0, i_ho2, 1.0, i_so3)
1650
1651!===========================================================
1652!      g022 : S + S + CO2 -> S2 + CO2
1653!===========================================================
1654
1655nb_reaction_3 = nb_reaction_3 + 1
1656
1657indice_3(nb_reaction_3) = z3spec(2.0, i_s, 1.0, i_s2, 0.0, i_dummy)
1658
1659!===========================================================
1660!      g023 : S2 + O -> SO + S
1661!===========================================================
1662
1663nb_reaction_4 = nb_reaction_4 + 1
1664
1665indice_4(nb_reaction_4) = z4spec(1.0, i_s2, 1.0, i_o, 1.0, i_so, 1.0, i_s)
1666
1667!===========================================================
1668!      g024 : S + OCS -> S2 + CO
1669!===========================================================
1670
1671nb_reaction_4 = nb_reaction_4 + 1
1672
1673indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_ocs, 1.0, i_s2, 1.0, i_co)
1674
1675!===========================================================
1676!      g025 : OCS + O -> SO + CO
1677!===========================================================
1678
1679nb_reaction_4 = nb_reaction_4 + 1
1680
1681indice_4(nb_reaction_4) = z4spec(1.0, i_ocs, 1.0, i_o, 1.0, i_so, 1.0, i_co)
1682
1683!===========================================================
1684!      g026 : S + SO3 -> SO2 + SO
1685!===========================================================
1686
1687nb_reaction_4 = nb_reaction_4 + 1
1688
1689indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_so3, 1.0, i_so2, 1.0, i_so)
1690
1691!===========================================================
1692!      g027 : S + HO2 -> SO + OH
1693!===========================================================
1694
1695nb_reaction_4 = nb_reaction_4 + 1
1696
1697indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_ho2, 1.0, i_so, 1.0, i_oh)
1698
1699!===========================================================
1700!      g028 : S + ClO -> SO + Cl
1701!===========================================================
1702
1703nb_reaction_4 = nb_reaction_4 + 1
1704
1705indice_4(nb_reaction_4) = z4spec(1.0, i_s, 1.0, i_clo, 1.0, i_so, 1.0, i_cl)
1706
1707!===========================================================
1708!      g029: h2so4 + h2o -> so3 + h2o + h2o
1709!===========================================================
1710
1711nb_phot = nb_phot + 1
1712
1713indice_phot(nb_phot) = z3spec(1.0, i_h2so4, 1.0, i_so3, 1.0, i_h2o)
1714
1715!===========================================================
1716!      g030: so3 + ocs -> s2o2 +  co2
1717!===========================================================
1718
1719nb_reaction_4 = nb_reaction_4 + 1
1720
1721indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_ocs, 1.0, i_s2o2, 1.0, i_co2)
1722
1723!===========================================================
1724!      g031: s2o2 + ocs -> co + so2 + s2
1725!===========================================================
1726!       decomposee en
1727!       0.5 s2o2 + 0.5 ocs -> co
1728!       0.5 s2o2 + 0.5 ocs -> so2 + s2
1729!===========================================================
1730
1731nb_reaction_4 = nb_reaction_4 + 1
1732
1733indice_4(nb_reaction_4) = z4spec(0.5, i_s2o2, 0.5, i_ocs, 1.0, i_co, 0.0, i_dummy)
1734
1735nb_reaction_4 = nb_reaction_4 + 1
1736
1737indice_4(nb_reaction_4) = z4spec(0.5, i_s2o2, 0.5, i_ocs, 1.0, i_so2, 1.0, i_s2)
1738
1739!===========================================================
1740!      g032: so + so -> so2 + s
1741!===========================================================
1742
1743nb_reaction_3 = nb_reaction_3 + 1
1744
1745indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_so2, 1.0, i_s)
1746
1747!===========================================================
1748!      h001: HO2 + ice -> products
1749!            treated as
1750!            HO2 -> 0.5 H2O + 0.75 O2
1751!===========================================================
1752
1753nb_phot = nb_phot + 1
1754
1755indice_phot(nb_phot) = z3spec(1.0, i_ho2, 0.5, i_h2o, 0.75, i_o2)
1756
1757!===========================================================
1758!      h002: OH + ice -> products
1759!            treated as
1760!            OH -> 0.5 H2O + 0.25 O2
1761!===========================================================
1762
1763nb_phot = nb_phot + 1
1764
1765indice_phot(nb_phot) = z3spec(1.0, i_oh, 0.5, i_h2o, 0.25, i_o2)
1766
1767!===========================================================
1768!      h003: H2O2 + ice -> products
1769!            treated as
1770!            H2O2 -> H2O + 0.5 O2
1771!===========================================================
1772
1773nb_phot = nb_phot + 1
1774
1775indice_phot(nb_phot) = z3spec(1.0, i_h2o2, 1.0, i_h2o, 0.5, i_o2)
1776
1777!Only if ion chemistry
1778if (ok_ionchem) then
1779
1780!===========================================================
1781!      i001 : CO2+ + O2 -> O2+ + CO2
1782!===========================================================
1783
1784   nb_reaction_4 = nb_reaction_4 + 1
1785
1786   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_o2, 1.0, i_o2plus, 1.0, i_co2)
1787
1788!===========================================================
1789!      i002 : CO2+ + O -> O+ + CO2
1790!===========================================================
1791
1792   nb_reaction_4 = nb_reaction_4 + 1
1793
1794   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_o, 1.0, i_oplus, 1.0, i_co2)
1795
1796!===========================================================
1797!      i003 : CO2+ + O -> O2+ + CO
1798!===========================================================
1799
1800   nb_reaction_4 = nb_reaction_4 + 1
1801
1802   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_o, 1.0, i_o2plus, 1.0, i_co)
1803
1804!===========================================================
1805!      i004 : O2+ + e- -> O + O
1806!===========================================================
1807
1808   nb_reaction_4 = nb_reaction_4 + 1
1809
1810   indice_4(nb_reaction_4) = z4spec(1.0, i_o2plus, 1.0, i_elec, 2.0, i_o, 0.0, i_dummy)
1811
1812!===========================================================
1813!      i005 : O+ + CO2 -> O2+ + CO
1814!===========================================================
1815
1816   nb_reaction_4 = nb_reaction_4 + 1
1817
1818   indice_4(nb_reaction_4) = z4spec(1.0, i_oplus, 1.0, i_co2, 1.0, i_o2plus, 1.0, i_co)
1819
1820!===========================================================
1821!      i006 : CO2+ + e -> CO + O
1822!===========================================================
1823
1824   nb_reaction_4 = nb_reaction_4 + 1
1825
1826   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_elec, 1.0, i_co, 1.0, i_o)
1827
1828!===========================================================
1829!      i007 : CO2+ + NO -> NO+ + CO2
1830!===========================================================
1831
1832   nb_reaction_4 = nb_reaction_4 + 1
1833
1834   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_no, 1.0, i_noplus, 1.0, i_co2)
1835
1836!===========================================================
1837!      i008 : O2+ + NO -> NO+ + O2
1838!===========================================================
1839
1840   nb_reaction_4 = nb_reaction_4 + 1
1841
1842   indice_4(nb_reaction_4) = z4spec(1.0, i_o2plus, 1.0, i_no, 1.0, i_noplus, 1.0, i_o2)
1843
1844!===========================================================
1845!      i009 : O2+ + N2 -> NO+ + NO
1846!===========================================================
1847
1848   nb_reaction_4 = nb_reaction_4 + 1
1849
1850   indice_4(nb_reaction_4) = z4spec(1.0, i_o2plus, 1.0, i_n2, 1.0, i_noplus, 1.0, i_no)
1851
1852!===========================================================
1853!      i010 : O2+ + N -> NO+ + O
1854!===========================================================
1855
1856   nb_reaction_4 = nb_reaction_4 + 1
1857
1858   indice_4(nb_reaction_4) = z4spec(1.0, i_o2plus, 1.0, i_n, 1.0, i_noplus, 1.0, i_o)
1859
1860!===========================================================
1861!      i011 : O+ + N2 -> NO+ + N
1862!===========================================================
1863
1864   nb_reaction_4 = nb_reaction_4 + 1
1865
1866   indice_4(nb_reaction_4) = z4spec(1.0, i_oplus, 1.0, i_n2, 1.0, i_noplus, 1.0, i_n)
1867
1868!===========================================================
1869!      i012 : NO+ + e -> N + O
1870!===========================================================
1871
1872   nb_reaction_4 = nb_reaction_4 + 1
1873
1874   indice_4(nb_reaction_4) = z4spec(1.0, i_noplus, 1.0, i_elec, 1.0, i_n, 1.0, i_o)
1875
1876!===========================================================
1877!      i013 : CO+ + CO2 -> CO2+ + CO
1878!===========================================================
1879
1880   nb_reaction_4 = nb_reaction_4 + 1
1881
1882   indice_4(nb_reaction_4) = z4spec(1.0, i_coplus, 1.0, i_co2, 1.0, i_co2plus, 1.0, i_co)
1883
1884!===========================================================
1885!      i014 : CO+ + O -> O+ + CO
1886!===========================================================
1887
1888   nb_reaction_4 = nb_reaction_4 + 1
1889
1890   indice_4(nb_reaction_4) = z4spec(1.0, i_coplus, 1.0, i_o, 1.0, i_oplus, 1.0, i_co)
1891
1892!===========================================================
1893!      i015 : C+ + CO2 -> CO+ + CO
1894!===========================================================
1895
1896   nb_reaction_4 = nb_reaction_4 + 1
1897
1898   indice_4(nb_reaction_4) = z4spec(1.0, i_cplus, 1.0, i_co2, 1.0, i_coplus, 1.0, i_co)
1899
1900!===========================================================
1901
1902!      i016 : N2+ + CO2 -> CO2+ + N2
1903!===========================================================
1904
1905   nb_reaction_4 = nb_reaction_4 + 1
1906
1907   indice_4(nb_reaction_4) = z4spec(1.0, i_n2plus, 1.0, i_co2, 1.0, i_co2plus, 1.0, i_n2)
1908
1909!===========================================================
1910!      i017 : N2+ + O -> NO+ + N
1911!===========================================================
1912
1913   nb_reaction_4 = nb_reaction_4 + 1
1914
1915   indice_4(nb_reaction_4) = z4spec(1.0, i_n2plus, 1.0, i_o, 1.0, i_noplus, 1.0, i_n)
1916
1917!===========================================================
1918!      i018 : N2+ + CO -> CO+ + N2
1919!===========================================================
1920
1921   nb_reaction_4 = nb_reaction_4 + 1
1922
1923   indice_4(nb_reaction_4) = z4spec(1.0, i_n2plus, 1.0, i_co, 1.0, i_coplus, 1.0, i_n2)
1924
1925!===========================================================
1926!      i019 : N2+ + e -> N + N
1927!===========================================================
1928
1929   nb_reaction_4 = nb_reaction_4 + 1
1930
1931   indice_4(nb_reaction_4) = z4spec(1.0, i_n2plus, 1.0, i_elec, 2.0, i_n, 0.0, i_dummy)
1932
1933!===========================================================
1934!      i020 : N2+ + O -> O+ + N2
1935!===========================================================
1936
1937   nb_reaction_4 = nb_reaction_4 + 1
1938
1939   indice_4(nb_reaction_4) = z4spec(1.0, i_n2plus, 1.0, i_o, 1.0, i_oplus, 1.0, i_n2)
1940
1941!===========================================================
1942!      i021 : N+ + CO2 -> CO2+ + N
1943!===========================================================
1944
1945   nb_reaction_4 = nb_reaction_4 + 1
1946
1947   indice_4(nb_reaction_4) = z4spec(1.0, i_nplus, 1.0, i_co2, 1.0, i_co2plus, 1.0, i_n)
1948
1949!===========================================================
1950!      i022 : CO+ + H -> H+ + CO
1951!===========================================================
1952
1953   nb_reaction_4 = nb_reaction_4 + 1
1954
1955   indice_4(nb_reaction_4) = z4spec(1.0, i_coplus, 1.0, i_h, 1.0, i_hplus, 1.0, i_co)
1956
1957!===========================================================
1958!      i023 : O+ + H -> H+ + O
1959!===========================================================
1960
1961   nb_reaction_4 = nb_reaction_4 + 1
1962
1963   indice_4(nb_reaction_4) = z4spec(1.0, i_oplus, 1.0, i_h, 1.0, i_hplus, 1.0, i_o)
1964
1965!===========================================================
1966!      i024 : H+ + O -> O+ + H
1967!===========================================================
1968
1969   nb_reaction_4 = nb_reaction_4 + 1
1970
1971   indice_4(nb_reaction_4) = z4spec(1.0, i_hplus, 1.0, i_o, 1.0, i_oplus, 1.0, i_h)
1972
1973!===========================================================
1974!      i025 : CO2+ + H2 -> HCO2+ + H
1975!===========================================================
1976
1977   nb_reaction_4 = nb_reaction_4 + 1
1978
1979   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_h2, 1.0, i_hco2plus, 1.0, i_h)
1980
1981!===========================================================
1982!      i026 : spare slot (reaction rate set to zero)
1983!===========================================================
1984
1985   nb_reaction_4 = nb_reaction_4 + 1
1986
1987   indice_4(nb_reaction_4) = z4spec(1.0, i_hco2plus, 1.0, i_elec, 1.0, i_h, 1.0, i_co2)
1988
1989!===========================================================
1990!      i027 : HCO2+ + e -> H + O + CO
1991!===========================================================
1992!We divide this reaction in two
1993
1994!0.5HCO2+ + 0.5e -> H
1995
1996   nb_reaction_4 = nb_reaction_4 + 1
1997
1998   indice_4(nb_reaction_4) = z4spec(.5, i_hco2plus, 0.5, i_elec, 1.0, i_h, 0.0, i_dummy)
1999
2000!0.5 HCO2+ + 0.5 e -> O + CO
2001
2002   nb_reaction_4 = nb_reaction_4 + 1
2003
2004   indice_4(nb_reaction_4) = z4spec(0.5, i_hco2plus, 0.5, i_elec, 1.0, i_o, 1.0, i_co)
2005
2006!===========================================================
2007!      i029 : HCO2+ + e -> OH + CO
2008!===========================================================
2009
2010   nb_reaction_4 = nb_reaction_4 + 1
2011
2012   indice_4(nb_reaction_4) = z4spec(1.0, i_hco2plus, 1.0, i_elec, 1.0, i_oh, 1.0, i_co)
2013
2014
2015!===========================================================
2016!      i030 : HCO2+ + e -> H + CO2
2017!===========================================================
2018
2019   nb_reaction_4 = nb_reaction_4 + 1
2020
2021   indice_4(nb_reaction_4) = z4spec(1.0, i_hco2plus, 1.0, i_elec, 1.0, i_h, 1.0, i_co2)
2022
2023
2024!===========================================================
2025!      i031 : HCO2+ + O -> HCO+ + O2
2026!===========================================================
2027
2028   nb_reaction_4 = nb_reaction_4 + 1
2029
2030   indice_4(nb_reaction_4) = z4spec(1.0, i_hco2plus, 1.0, i_o, 1.0, i_hcoplus, 1.0, i_o2)
2031
2032
2033!===========================================================
2034!      i032 : HCO2+ + CO -> HCO+ + CO2
2035!===========================================================
2036
2037   nb_reaction_4 = nb_reaction_4 + 1
2038   indice_4(nb_reaction_4) = z4spec(1.0, i_hco2plus, 1.0, i_co, 1.0, i_hcoplus, 1.0, i_co2)
2039
2040
2041!===========================================================
2042!      i033 : H+ + CO2 -> HCO+ + O
2043!===========================================================
2044
2045   nb_reaction_4 = nb_reaction_4 + 1
2046   indice_4(nb_reaction_4) = z4spec(1.0, i_hplus, 1.0, i_co2, 1.0, i_hcoplus, 1.0, i_o)
2047
2048
2049!===========================================================
2050!      i034 : CO2+ + H -> HCO+ + O
2051!===========================================================
2052
2053   nb_reaction_4 = nb_reaction_4 + 1
2054   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_h, 1.0, i_hcoplus, 1.0, i_o)
2055
2056
2057!===========================================================
2058!      i035 : CO+ + H2 -> HCO+ + H
2059!===========================================================
2060
2061   nb_reaction_4 = nb_reaction_4 + 1
2062   indice_4(nb_reaction_4) = z4spec(1.0, i_coplus, 1.0, i_h2, 1.0, i_hcoplus, 1.0, i_h)
2063
2064
2065!===========================================================
2066!      i036 : HCO+ + e- -> CO + H
2067!===========================================================
2068
2069   nb_reaction_4 = nb_reaction_4 + 1
2070   indice_4(nb_reaction_4) = z4spec(1.0, i_hcoplus, 1.0, i_elec, 1.0, i_co, 1.0, i_h)
2071
2072!===========================================================
2073!      i037 : CO2+ + H2O -> H2O+ + CO2
2074!===========================================================
2075
2076   nb_reaction_4 = nb_reaction_4 + 1
2077   indice_4(nb_reaction_4) = z4spec(1.0, i_co2plus, 1.0, i_h2o, 1.0, i_h2oplus, 1.0, i_co2)
2078
2079!===========================================================
2080!      i038 : CO+ + H2O -> H2O+ + CO
2081!===========================================================
2082
2083   nb_reaction_4 = nb_reaction_4 + 1
2084   indice_4(nb_reaction_4) = z4spec(1.0, i_coplus, 1.0, i_h2o, 1.0, i_h2oplus, 1.0, i_co)
2085
2086!===========================================================
2087!      i039 : O+ + H2O -> H2O+ + O
2088!===========================================================
2089
2090   nb_reaction_4 = nb_reaction_4 + 1
2091   indice_4(nb_reaction_4) = z4spec(1.0, i_oplus, 1.0, i_h2o, 1.0, i_h2oplus, 1.0, i_o)
2092
2093!===========================================================
2094!      i040 : N2+ + H2O -> H2O+ + N2
2095!===========================================================
2096
2097   nb_reaction_4 = nb_reaction_4 + 1
2098   indice_4(nb_reaction_4) = z4spec(1.0, i_n2plus, 1.0, i_h2o, 1.0, i_h2oplus, 1.0, i_n2)
2099
2100!===========================================================
2101!      i041 : N+ + H2O -> H2O+ + N
2102!===========================================================
2103
2104   nb_reaction_4 = nb_reaction_4 + 1
2105   indice_4(nb_reaction_4) = z4spec(1.0, i_nplus, 1.0, i_h2o, 1.0, i_h2oplus, 1.0, i_n)
2106
2107!===========================================================
2108!      i042 : H+ + H2O -> H2O+ + H
2109!===========================================================
2110
2111   nb_reaction_4 = nb_reaction_4 + 1
2112   indice_4(nb_reaction_4) = z4spec(1.0, i_hplus, 1.0, i_h2o, 1.0, i_h2oplus, 1.0, i_h)
2113
2114!===========================================================
2115!      i043 : H2O+ + O2 -> O2+ + H2O
2116!===========================================================
2117
2118   nb_reaction_4 = nb_reaction_4 + 1
2119   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_o2, 1.0, i_o2plus, 1.0, i_h2o)
2120
2121!===========================================================
2122!      i044 : H2O+ + CO -> HCO+ + OH
2123!===========================================================
2124
2125   nb_reaction_4 = nb_reaction_4 + 1
2126   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_co, 1.0, i_hcoplus, 1.0, i_oh)
2127
2128!===========================================================
2129!      i045 : H2O+ + O -> O2+ + H2
2130!===========================================================
2131
2132   nb_reaction_4 = nb_reaction_4 + 1
2133   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_o, 1.0, i_o2plus, 1.0, i_h2)
2134
2135!===========================================================
2136!      i046 : H2O+ + NO -> NO+ + H2O
2137!===========================================================
2138
2139   nb_reaction_4 = nb_reaction_4 + 1
2140   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_no, 1.0, i_noplus, 1.0, i_h2o)
2141
2142!===========================================================
2143!      i047 : H2O+ + e- -> H + H + O
2144!===========================================================
2145
2146   nb_reaction_4 = nb_reaction_4 + 1
2147   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_elec, 2.0, i_h, 1.0, i_o)
2148
2149!===========================================================
2150!      i048 : H2O+ + e- -> H + OH
2151!===========================================================
2152
2153   nb_reaction_4 = nb_reaction_4 + 1
2154   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_elec, 1.0, i_h, 1.0, i_oh)
2155
2156!===========================================================
2157!      i049 : H2O+ + e- -> H2 + O
2158!===========================================================
2159
2160   nb_reaction_4 = nb_reaction_4 + 1
2161   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_elec, 1.0, i_h2, 1.0, i_o)
2162
2163!===========================================================
2164!      i050 : H2O+ + H2O -> H3O+ + OH
2165!===========================================================
2166
2167   nb_reaction_4 = nb_reaction_4 + 1
2168   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_h2o, 1.0, i_h3oplus, 1.0, i_oh)
2169
2170!===========================================================
2171!      i051 : H2O+ + H2 -> H3O+ + H
2172!===========================================================
2173
2174   nb_reaction_4 = nb_reaction_4 + 1
2175   indice_4(nb_reaction_4) = z4spec(1.0, i_h2oplus, 1.0, i_h2, 1.0, i_h3oplus, 1.0, i_h)
2176
2177!===========================================================
2178!      i052 : HCO+ + H2O -> H3O+ + CO
2179!===========================================================
2180
2181   nb_reaction_4 = nb_reaction_4 + 1
2182   indice_4(nb_reaction_4) = z4spec(1.0, i_hcoplus, 1.0, i_h2o, 1.0, i_h3oplus, 1.0, i_co)
2183
2184!===========================================================
2185!      i053: H3O+ + e -> OH + H + H
2186!===========================================================
2187
2188   nb_reaction_4 = nb_reaction_4 + 1
2189   indice_4(nb_reaction_4) = z4spec(1.0, i_h3oplus, 1.0, i_elec, 1.0, i_oh, 2.0, i_h)
2190
2191!===========================================================
2192!      i054: H3O+ + e -> H2O + H
2193!===========================================================
2194
2195   nb_reaction_4 = nb_reaction_4 + 1
2196   indice_4(nb_reaction_4) = z4spec(1.0, i_h3oplus, 1.0, i_elec, 1.0, i_h2o, 1.0, i_h)
2197
2198!===========================================================
2199!      i055: H3O+ + e -> HO + H2
2200!===========================================================
2201
2202   nb_reaction_4 = nb_reaction_4 + 1
2203   indice_4(nb_reaction_4) = z4spec(1.0, i_h3oplus, 1.0, i_elec, 1.0, i_oh, 1.0, i_h2)
2204
2205!===========================================================
2206!      i056: H3O+ + e -> O + H2 + H
2207!===========================================================
2208!We divide this reaction in two
2209
2210!0.5H3O+ + 0.5e -> O
2211
2212   nb_reaction_4 = nb_reaction_4 + 1
2213   indice_4(nb_reaction_4) = z4spec(0.5, i_h3oplus, 0.5, i_elec, 1.0, i_o, 0.0, i_dummy)
2214
2215!0.5H3O+ + 0.5e -> H2 + H
2216
2217   nb_reaction_4 = nb_reaction_4 + 1
2218   indice_4(nb_reaction_4) = z4spec(0.5, i_h3oplus, 0.5, i_elec, 1.0, i_h2, 1.0, i_h)
2219
2220!===========================================================
2221!      i057: O+ + H2 -> OH+ + H
2222!===========================================================
2223
2224   nb_reaction_4 = nb_reaction_4 + 1
2225   indice_4(nb_reaction_4) = z4spec(1.0, i_oplus, 1.0, i_h2, 1.0, i_ohplus, 1.0, i_h)
2226
2227!===========================================================
2228!      i058: OH+ + O -> O2+ + H
2229!===========================================================
2230
2231   nb_reaction_4 = nb_reaction_4 + 1
2232   indice_4(nb_reaction_4) = z4spec(1.0, i_ohplus, 1.0, i_o, 1.0, i_o2plus, 1.0, i_h)
2233
2234!===========================================================
2235!      i059: OH+ + CO2 -> HCO2+ + O
2236!===========================================================
2237
2238   nb_reaction_4 = nb_reaction_4 + 1
2239   indice_4(nb_reaction_4) = z4spec(1.0, i_ohplus, 1.0, i_co2, 1.0, i_hco2plus, 1.0, i_o)
2240
2241!===========================================================
2242!      i060: OH+ + CO -> HCO+ + O
2243!===========================================================
2244
2245   nb_reaction_4 = nb_reaction_4 + 1
2246   indice_4(nb_reaction_4) = z4spec(1.0, i_ohplus, 1.0, i_co, 1.0, i_hcoplus, 1.0, i_o)
2247
2248!===========================================================
2249!      i061: OH+ + NO -> NO+ + OH
2250!===========================================================
2251
2252   nb_reaction_4 = nb_reaction_4 + 1
2253   indice_4(nb_reaction_4) = z4spec(1.0, i_ohplus, 1.0, i_no, 1.0, i_noplus, 1.0, i_oh)
2254
2255!===========================================================
2256!      i062: OH+ + H2 -> H2O+ + H
2257!===========================================================
2258
2259   nb_reaction_4 = nb_reaction_4 + 1
2260   indice_4(nb_reaction_4) = z4spec(1.0, i_ohplus, 1.0, i_h2, 1.0, i_h2oplus, 1.0, i_h)
2261
2262!===========================================================
2263!      i063: OH+ + O2 -> O2+ + OH
2264!===========================================================
2265
2266   nb_reaction_4 = nb_reaction_4 + 1
2267   indice_4(nb_reaction_4) = z4spec(1.0, i_ohplus, 1.0, i_o2, 1.0, i_o2plus, 1.0, i_oh)
2268
2269end if    !ok_ionchem
2270
2271!===========================================================
2272!      j001: O2(Dg) + (CO2 or O) -> O2 + (CO2 or O)
2273!===========================================================
2274
2275nb_phot = nb_phot + 1
2276
2277indice_phot(nb_phot) = z3spec(1.0, i_o2dg, 1.0, i_o2, 0.0, i_dummy)
2278
2279!===========================================================
2280!      j002: O2(Dg) -> O2 + hv
2281!===========================================================
2282
2283nb_phot = nb_phot + 1
2284
2285indice_phot(nb_phot) = z3spec(1.0, i_o2dg, 1.0, i_o2, 0.0, i_dummy)
2286
2287!===========================================================
2288!  check dimensions
2289!===========================================================
2290
2291print*, 'nb_phot       = ', nb_phot
2292print*, 'nb_phot_max   = ', nb_phot_max
2293print*, 'nb_reaction_4 = ', nb_reaction_4
2294print*, 'nb_reaction_4_max = ', nb_reaction_4_max
2295print*, 'nb_reaction_3 = ', nb_reaction_3
2296print*, 'nb_reaction_3_max = ', nb_reaction_3_max
2297
2298!print*, 'check dimension'
2299if ((nb_phot /= nb_phot_max)             .or.  &
2300    (nb_reaction_3 /= nb_reaction_3_max) .or.  &
2301    (nb_reaction_4 /= nb_reaction_4_max)) then
2302   print*, 'wrong dimensions in indice'
2303   stop
2304end if 
2305
2306end subroutine indice
2307
2308!===========================================================
2309
2310subroutine phot(nj, nztable, nsza, nso2, sza_input, dist_sol, mumean, rmco2, rmso2,                     &
2311                jphot, table_colair, table_colso2, table_sza, nz, nb_phot_max, t, p, v_phot)
2312
2313!===========================================================
2314
2315implicit none
2316#include "clesphys.h"
2317
2318integer, INTENT(IN) :: nz
2319integer, INTENT(IN) :: nj, nztable, nsza, nso2
2320
2321real, INTENT(IN), dimension(nz) :: t, p
2322real, INTENT(IN), dimension(nz) :: mumean        ! [g/mol]
2323real, INTENT(IN), dimension(nso2,nsza,nztable,nj) :: jphot
2324real, INTENT(IN), dimension(nso2,nztable) :: table_colso2
2325real, INTENT(IN), dimension(nztable) :: table_colair
2326real, INTENT(IN), dimension(nsza) :: table_sza
2327real, INTENT(IN), dimension(nz) :: rmco2, rmso2
2328real, INTENT(IN) :: sza_input, dist_sol
2329
2330real, dimension(nz,nj) :: j
2331real, dimension(nz) :: coef, col, colso2
2332real, dimension(nso2) :: colref
2333real, dimension(2,2,2) :: poids
2334real :: cicol, cisza, ciso2
2335real :: avogadro, gvenus, dp
2336
2337integer :: indcol, indsza, indso2
2338integer :: isza, iz, i, iso2, ij
2339integer :: nb_phot_max
2340real, dimension(nz,nb_phot_max), INTENT(INOUT) :: v_phot
2341
2342!mugaz    = 43.44E-3
2343avogadro = 6.022E+23
2344gvenus   = 8.87
2345
2346! day/night test
2347
2348if (sza_input <= 95.) then      ! day
2349
2350! interpolation in solar zenith angle
2351
2352indsza = nsza - 1
2353do isza = 1,nsza
2354   if (table_sza(isza) >= sza_input) then
2355      indsza = min(indsza,isza - 1)
2356      indsza = max(indsza, 1)
2357   end if
2358end do
2359
2360cisza = (sza_input - table_sza(indsza))                       &
2361       /(table_sza(indsza + 1) - table_sza(indsza))
2362
2363!    print*, 'indsza    = ', indsza
2364!    print*, 'table_sza = ', table_sza(indsza)
2365!    print*, 'cisza     = ', cisza
2366
2367! co2 and so2 columns
2368
2369coef(nz)   = avogadro/(gvenus*mumean(nz)*1.E-3)*1.E-4
2370col(nz)    = coef(nz)*rmco2(nz)*p(nz)*100.
2371colso2(nz) = coef(nz)*rmso2(nz)*p(nz)*100.
2372
2373do iz = nz-1, 1, -1
2374!   print*,"L2490 new_photochemistry", iz,mumean(iz)
2375   dp = (p(iz) - p(iz+1))*100.
2376   coef(iz)   = avogadro/(gvenus*mumean(iz)*1.E-3)*1.E-4
2377   col(iz)    = col(iz+1) + coef(iz)*(rmco2(iz+1) + rmco2(iz))*0.5*dp
2378   col(iz)    = min(col(iz), table_colair(1))
2379   colso2(iz) = colso2(iz+1) + coef(iz)*(rmso2(iz+1) + rmso2(iz))*0.5*dp
2380   colso2(iz) = min(colso2(iz), table_colso2(nso2,1))
2381end do
2382
2383! loop over altitude
2384
2385do iz = 1,nz
2386
2387! interpolation in co2 column
2388
2389   indcol = nztable - 1
2390   cicol  = 0.
2391
2392   do i = 1,nztable-1
2393      if (table_colair(i) < col(iz)) then
2394         cicol = (log(col(iz)) - log(table_colair(i)))           &
2395                /(log(table_colair(i-1)) - log(table_colair(i)))
2396         indcol = i - 1
2397         exit
2398      end if
2399   end do
2400
2401! interpolation in so2 column
2402
2403! initialize indso2 and ciso2 in case colref is never larger
2404! than the gcm so2 column.
2405
2406   indso2 = nso2 - 1
2407   ciso2 = 1.
2408
2409! search for the index indso2 between which interpolate
2410
2411   do iso2 = 1,nso2
2412      colref(iso2) = cicol*table_colso2(iso2,indcol)               &
2413                   + (1.-cicol)*table_colso2(iso2,indcol+1)
2414      if (colref(iso2) > colso2(iz)) then
2415         ciso2 = (colso2(iz) - colref(iso2-1))                     &
2416                /(colref(iso2) - colref(iso2-1))
2417         indso2 = iso2 - 1
2418         exit
2419      end if
2420   end do
2421
2422! 4-dimensional interpolation weights
2423
2424! poids(so2,sza_input,co2)
2425
2426   poids(1,1,1) = (1.-ciso2)*(1.-cisza)*    cicol
2427   poids(1,1,2) = (1.-ciso2)*(1.-cisza)*(1.-cicol)
2428   poids(1,2,1) = (1.-ciso2)*    cisza *    cicol
2429   poids(1,2,2) = (1.-ciso2)*    cisza *(1.-cicol)
2430   poids(2,1,1) =     ciso2 *(1.-cisza)*    cicol
2431   poids(2,1,2) =     ciso2 *(1.-cisza)*(1.-cicol)
2432   poids(2,2,1) =     ciso2 *    cisza *    cicol
2433   poids(2,2,2) =     ciso2 *    cisza *(1.-cicol)
2434
2435! 4-dimensional interpolation in the lookup table
2436
2437   do ij = 1,nj
2438      j(iz,ij) =                                          &
2439      poids(1,1,1)*jphot(indso2  ,indsza  ,indcol  ,ij)   &
2440    + poids(1,1,2)*jphot(indso2  ,indsza  ,indcol+1,ij)   &
2441    + poids(1,2,1)*jphot(indso2  ,indsza+1,indcol  ,ij)   &
2442    + poids(1,2,2)*jphot(indso2  ,indsza+1,indcol+1,ij)   &
2443    + poids(2,1,1)*jphot(indso2+1,indsza  ,indcol  ,ij)   &
2444    + poids(2,1,2)*jphot(indso2+1,indsza  ,indcol+1,ij)   &
2445    + poids(2,2,1)*jphot(indso2+1,indsza+1,indcol  ,ij)   &
2446    + poids(2,2,2)*jphot(indso2+1,indsza+1,indcol+1,ij)
2447   end do
2448
2449end do           ! end of loop over altitude
2450
2451else             ! night
2452   j(:,:) = 0.
2453end if
2454
2455! photodissociation rates numbering in the lookup table
2456
2457!    1     o2 + hv     -> o + o
2458!    2     o2 + hv     -> o + o(1d)
2459!    3     co2 + hv    -> co + o
2460!    4     co2 + hv    -> co + o(1d)
2461!    5     o3 + hv     -> o2(Dg) + o(1d)
2462!    6     o3 + hv     -> o2 + o
2463!    7     h2o + hv    -> h + oh
2464!    8     ho2 + hv    -> oh + o
2465!    9     h2o2 + hv   -> oh + oh
2466!    10    hcl + hv    -> h + cl
2467!    11    cl2 + hv    -> cl + cl
2468!    12    hocl + hv   -> oh + cl
2469!    13    so2 + hv    -> so + o
2470!    14    so + hv     -> s + o
2471!    15    so3 + hv    -> so2 + o
2472!    16    clo + hv    -> cl + o
2473!    17    ocs + hv    -> co + s
2474!    18    cocl2 + hv  -> cl + cl + co
2475!    19    h2so4 + hv  -> so3 + h2o
2476!    20    no2 + hv    -> no + o
2477!    21    no + hv     -> n + o 
2478!    22    n2 + hv     -> n + n
2479
2480! fill v_phot array
2481
2482do ij = 1,nj
2483   v_phot(:,ij) = j(:,ij)
2484end do
2485
2486!!! TEST: artificial increase of CO2 photodissociation
2487if (tuneupperatm) then
2488!-- TuneA
2489!   v_phot(65:78,4) = v_phot(65:78,4)*10.
2490!   v_phot(60:64,4) = v_phot(60:64,4)*3.
2491!   v_phot(55:59,3) = v_phot(55:59,3)*2.
2492!--
2493!-- TuneB
2494!   v_phot(65:78,4) = v_phot(65:78,4)*10.
2495!   v_phot(55:59,3) = v_phot(55:59,3)*5.
2496!--
2497!-- TuneC
2498! VCD 1.1 tuning
2499!   v_phot(65:78,4) = v_phot(65:78,4)*10.
2500!   v_phot(52:59,3) = v_phot(52:59,3)*5.
2501!--
2502!-- TuneE
2503! VCD 2.0 tuning
2504    v_phot(65:nz,4) = v_phot(65:nz,4)*10. ! CO2 + hv ==> O(1D) + CO
2505!--
2506!   v_phot(:,4) = v_phot(:,4)*10.
2507!do ij=3,4
2508!   v_phot(:,ij) = v_phot(:,ij)*10.
2509!end do
2510endif
2511!!!!!!!!!!!!!!!
2512
2513!PRINT*,'sza_input: ',sza_input
2514!IF (sza_input.le.40.5 .AND. sza_input.gt.39.5) THEN
2515!open(200, form = 'formatted')
2516!100    format(e20.6)
2517!write(200,100)(v_phot(:,19))
2518!stop
2519!END IF
2520
2521end subroutine phot
2522
2523!======================================================================
2524
2525 subroutine krates(hetero_ice,hetero_dust,ok_ionchem, nphotion,        &
2526                   nz, nesp, c, conc, t, t_elect, p,                   &
2527                   nb_phot_max, nb_reaction_3_max, nb_reaction_4_max,  &
2528                   tuneupperatm, v_3, v_4, v_phot,sza_input,           &
2529                   ind_norec, ind_orec)
2530 
2531!================================================================
2532! compute reaction rates                                        !
2533!----------------------------------------------------------------
2534! reaction               type                array              !
2535!----------------------------------------------------------------
2536! A + B    --> C + D     bimolecular         v_4                !
2537! A + A    --> B + C     quadratic           v_3                !
2538! A + C    --> B + C     quenching           v_phot             !
2539! A + ice  --> B + C     heterogeneous       v_phot             !
2540!================================================================
2541
2542 USE chemparam_mod
2543 USE photolysis_mod, only : nphot
2544implicit none
2545
2546!----------------------------------------------------------------------
2547!     input
2548!----------------------------------------------------------------------
2549
2550integer, INTENT(IN) :: nesp, nz
2551real, INTENT(IN)    :: sza_input  ! [degree]
2552real, INTENT(IN), dimension(nz)  :: t_elect, t, p, conc
2553logical, INTENT(IN) :: hetero_ice, hetero_dust, tuneupperatm
2554
2555real, INTENT(IN), dimension(nz,nesp) :: c
2556
2557integer, intent(in) :: nb_reaction_3_max ! number of quadratic reactions
2558integer, intent(in) :: nb_reaction_4_max ! number of bimolecular reactions
2559integer, intent(in) :: nb_phot_max       ! number of reactions treated numerically as photodissociations
2560integer, intent(in) :: nphotion          ! number of photoionizations
2561logical, intent(in) :: ok_ionchem        ! if .true. then ionchem reaction used
2562
2563!----------------------------------------------------------------------
2564!     output
2565!----------------------------------------------------------------------
2566
2567real (kind = 8), dimension(nz,       nb_phot_max) :: v_phot
2568real (kind = 8), dimension(nz, nb_reaction_3_max) :: v_3
2569real (kind = 8), dimension(nz, nb_reaction_4_max) :: v_4
2570integer :: ind_norec
2571integer :: ind_orec
2572
2573!----------------------------------------------------------------------
2574!     local
2575!----------------------------------------------------------------------
2576
2577integer :: iz
2578real    :: ak0, ak1, xpo, rate, rate1, rate2, pi, gam, epsil
2579real    :: k1a0, k1b0, k1ainf, k1a, k1b, k0, kinf, kf, kint, kca, fc, fx, x, y
2580integer :: nb_phot, nb_reaction_3, nb_reaction_4
2581real, dimension(nz)  :: surfice1d, surfdust1d
2582real, dimension(nz) :: deq
2583real, dimension(nz) :: a001, a002, a003,                           &
2584                       b001, b002, b003, b004, b005, b006, b007,   &
2585                       b008, b009,                                 &
2586                       c001, c002, c003, c004, c005, c006, c007,   &
2587                       c008, c009, c010, c011, c012, c013, c014,   &
2588                       c015, c016, c017, c018,                     &
2589                       d001, d002, d003, d004, d005, d006, d007,   &
2590                       d008, d009, d010, d011, d012, d013, d014,   &
2591                       e001, e002, e003, e004, e005, e006, e007,   &
2592                       e008, e009, e010, e011, e012, e013, e014,   &
2593                       e015, e016, e017, e018, e019, e020, e021,   &
2594                       e022, e023, e024, e025, e026, e027, e028,   &
2595                       e029, e030, e031, e032, e033, e034, e035,   &
2596                       e036, e037, e038, e039, e040, e041, e042,   &
2597                       e043,                                       &
2598                       f001, f002, f003, f004, f005, f006, f007,   &
2599                       f008, f009, f010, f011, f012, f013, f014,   &
2600                       f015, f016, f017, f018, f019, f020, f021,   &
2601                       f022, f023, f024, f025, f026, f027, f028,   &
2602                       f029, f030, f031, f032, f033, f034, f035,   &
2603                       f036, f037, f038, f039,                     &
2604                       g001, g002, g003, g004, g005, g006, g007,   &
2605                       g008, g009, g010, g011, g012, g013, g014,   &
2606                       g015, g016, g017, g018, g019, g020, g021,   &
2607                       g022, g023, g024, g025, g026, g027, g028,   &
2608                       g029, g030, g031, g032,                     &
2609                       h001, h002, h003,                           &
2610                       i001, i002, i003, i004, i005, i006,         &
2611                       i007, i008, i009, i010, i011, i012,         &
2612                       i013, i014, i015, i016, i017, i018, i019,   &
2613                       i020, i021, i022, i023, i024, i025, i026,   &
2614                       i027, i028, i029, i030, i031, i032, i033,   &
2615                       i034, i035, i036, i037, i038, i039, i040,   &
2616                       i041, i042, i043, i044, i045, i046, i047,   &
2617                       i048, i049, i050, i051, i052, i053, i054,   &
2618                       i055, i056, i057, i058, i059, i060, i061,   &
2619                       i062, i063,                                 &
2620                       j001, j002                                 
2621!----------------------------------------------------------------------
2622!     initialisation
2623!----------------------------------------------------------------------
2624
2625      pi = acos(-1.)
2626     
2627      nb_phot       = nphot + nphotion ! initialised to the number of photolysis + number of photoionization rates
2628      nb_reaction_3 = 0
2629      nb_reaction_4 = 0
2630
2631!----------------------------------------------------------------------
2632!        reactions avec ox
2633!----------------------------------------------------------------------
2634
2635!---  a001: o + o2 + m -> o3 + m
2636
2637!     jpl 2019
2638 
2639!     co2/n2 efficiency as a third body = 2.075
2640!     from sehested et al., j. geophys. res., 100, 1995.
2641
2642      a001(:) = 6.1e-34*(t(:)/298.)**(-2.4)     &
2643              *(2.075*c(:,i_co2) + 1.0*(conc(:) - c(:,i_co2)))
2644
2645      nb_reaction_4 = nb_reaction_4 + 1
2646      v_4(:,nb_reaction_4) = a001(:)
2647
2648!---  a002: o + o + m -> o2(delta_g) + m
2649 
2650!     baulch et al., 1976 (confirmed by smith and robertson, 2008)
2651
2652!     epsil : net effective yield
2653
2654      epsil = 0.75 ! (crisp et al., 1996; krasnopolsky, 1991)
2655
2656      a002(:) = 2.76e-34*exp(720./t(:))  &
2657              *(2.5*c(:,i_co2) + 1.0*(conc(:) - c(:,i_co2)))*epsil
2658     
2659      nb_reaction_3 = nb_reaction_3 + 1
2660      v_3(:,nb_reaction_3) = a002(:)
2661
2662      ind_orec = nb_reaction_3
2663
2664!---  a003: o + o3 -> o2 + o2
2665
2666!     jpl 2003
2667
2668      a003(:) = 8.0E-12*exp(-2060./t(:))
2669
2670      nb_reaction_4 = nb_reaction_4 + 1
2671      v_4(:,nb_reaction_4) = a003(:)
2672
2673!----------------------------------------------------------------------
2674!        reactions avec o(1d)
2675!----------------------------------------------------------------------
2676
2677!---  b001: o(1d) + co2  -> o + co2
2678
2679!     jpl 2006
2680
2681      b001(:) = 7.5E-11*exp(115./t(:))
2682
2683      nb_phot = nb_phot + 1
2684      v_phot(:,nb_phot) = b001(:)*c(:,i_co2)
2685
2686!---  b002: o(1d) + h2o  -> oh + oh
2687
2688!     jpl 2006
2689         
2690      b002(:) = 1.63E-10*exp(60./t(:))
2691             
2692      nb_reaction_4 = nb_reaction_4 + 1
2693      v_4(:,nb_reaction_4) = b002(:)
2694
2695!---  b003: o(1d) + h2  -> oh + h
2696
2697!     jpl 2011     
2698
2699      b003(:) = 1.2E-10
2700
2701      nb_reaction_4 = nb_reaction_4 + 1
2702      v_4(:,nb_reaction_4) = b003(:)
2703
2704!---  b004: o(1d) + o2  -> o + o2
2705
2706!     jpl 2006
2707
2708      b004(:) = 3.3E-11*exp(55./t(:))
2709
2710      nb_phot = nb_phot + 1
2711      v_phot(:,nb_phot) = b004(:)*c(:,i_o2)
2712           
2713!---  b005: o(1d) + o3  -> o2 + o2
2714
2715!     jpl 2003
2716
2717      b005(:) = 1.2E-10
2718
2719      nb_reaction_4 = nb_reaction_4 + 1
2720      v_4(:,nb_reaction_4) = b005(:)
2721           
2722!---  b006: o(1d) + o3  -> o2 + o + o
2723
2724!     jpl 2003
2725
2726      b006(:) = 1.2E-10
2727
2728      nb_reaction_4 = nb_reaction_4 + 1
2729      v_4(:,nb_reaction_4) = b006(:)
2730           
2731!----------------------------------------------------------------------
2732!        reactions des hox   
2733!----------------------------------------------------------------------
2734
2735!---  c001: o + ho2 -> oh + o2
2736
2737!     jpl 2003
2738
2739      c001(:) = 3.0E-11*exp(200./t(:))
2740
2741      nb_reaction_4 = nb_reaction_4 + 1
2742      v_4(:,nb_reaction_4) = c001(:)
2743
2744!---  c002: o + oh -> o2 + h
2745
2746!     jpl 2011 
2747
2748      c002(:) = 1.8E-11*exp(180./t(:))
2749
2750      nb_reaction_4 = nb_reaction_4 + 1
2751      v_4(:,nb_reaction_4) = c002(:)
2752
2753!---  c003: h + o3 -> oh + o2
2754
2755!     jpl 2003
2756
2757      c003(:) = 1.4E-10*exp(-470./t(:))
2758
2759      nb_reaction_4 = nb_reaction_4 + 1
2760      v_4(:,nb_reaction_4) = c003(:)
2761
2762!---  c004: h + ho2 -> oh + oh
2763
2764!     jpl 2006
2765
2766      c004(:) = 7.2E-11
2767
2768      nb_reaction_4 = nb_reaction_4 + 1
2769      v_4(:,nb_reaction_4) = c004(:)
2770
2771!---  c005: h + ho2 -> h2 + o2
2772
2773!     jpl 2006
2774
2775      c005(:) = 6.9E-12
2776
2777      nb_reaction_4 = nb_reaction_4 + 1
2778      v_4(:,nb_reaction_4) = c005(:)
2779
2780!---  c006: h + ho2 -> h2o + o
2781
2782!     jpl 2006
2783
2784      c006(:) = 1.6E-12
2785
2786      nb_reaction_4 = nb_reaction_4 + 1
2787      v_4(:,nb_reaction_4) = c006(:)
2788
2789!---  c007: oh + ho2 -> h2o + o2
2790
2791!     jpl 2003
2792
2793      c007(:) = 4.8E-11*exp(250./t(:))
2794
2795      nb_reaction_4 = nb_reaction_4 + 1
2796      v_4(:,nb_reaction_4) = c007(:)
2797
2798!---  c008: ho2 + ho2 -> h2o2 + o2
2799
2800!     jpl 2015
2801
2802      c008(:) = 3.0E-13*exp(460./t(:))
2803
2804!     christensen et al., grl, 13, 2002
2805
2806!     c008(:) = 1.5E-12*exp(19./t(:))
2807
2808      nb_reaction_3 = nb_reaction_3 + 1
2809      v_3(:,nb_reaction_3) = c008(:)
2810
2811!---  c009: oh + h2o2 -> h2o + ho2
2812
2813!     jpl 2006
2814
2815      c009(:) = 1.8E-12
2816
2817      nb_reaction_4 = nb_reaction_4 + 1
2818      v_4(:,nb_reaction_4) = c009(:)
2819
2820!---  c010: oh + h2 -> h2o + h
2821
2822!     jpl 2006
2823
2824      c010(:) = 2.8E-12*exp(-1800./t(:))
2825
2826      nb_reaction_4 = nb_reaction_4 + 1
2827      v_4(:,nb_reaction_4) = c010(:)
2828
2829!---  c011: h + o2 + co2 -> ho2 + co2
2830
2831!     jpl 2006
2832
2833!     do iz = 1,nz
2834!        ak0 = 2.5*4.4E-32*(t(iz)/300.)**(-1.3)
2835!        ak1 = 4.7E-11*(t(iz)/300.)**(-0.2)
2836
2837!        rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2838!        xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2839!        c011(iz) = rate*0.6**xpo
2840!     end do
2841
2842!     jpl 2019
2843
2844      do iz = 1,nz
2845         ak0 = 2.4*5.3e-32*(t(iz)/298.)**(-1.8)
2846         ak1 = 9.5e-11*(t(iz)/298.)**(0.4)
2847
2848         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2849         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2850         c011(iz) = rate*0.6**xpo
2851      end do
2852
2853      nb_reaction_4 = nb_reaction_4 + 1
2854      v_4(:,nb_reaction_4) = c011(:)
2855
2856!---  c012: o + h2o2 -> oh + ho2
2857
2858!     jpl 2003
2859
2860      c012(:) = 1.4E-12*exp(-2000./t(:))
2861
2862      nb_reaction_4 = nb_reaction_4 + 1
2863      v_4(:,nb_reaction_4) = c012(:)
2864
2865!---  c013: oh + oh -> h2o + o
2866
2867!     jpl 2006
2868
2869      c013(:) = 1.8E-12
2870
2871      nb_reaction_3 = nb_reaction_3 + 1
2872      v_3(:,nb_reaction_3) = c013(:)
2873
2874!---  c014: oh + o3 -> ho2 + o2
2875
2876!     jpl 2003
2877
2878      c014(:) = 1.7E-12*exp(-940./t(:))
2879
2880      nb_reaction_4 = nb_reaction_4 + 1
2881      v_4(:,nb_reaction_4) = c014(:)
2882
2883!---  c015: ho2 + o3 -> oh + o2 + o2
2884
2885!     jpl 2003
2886
2887      c015(:) = 1.0E-14*exp(-490./t(:))
2888
2889      nb_reaction_4 = nb_reaction_4 + 1
2890      v_4(:,nb_reaction_4) = c015(:)
2891
2892!---  c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
2893
2894!     jpl 2011
2895
2896      c016(:) = 2.5*2.1E-33*exp(920./t(:))*conc(:)
2897
2898      nb_reaction_3 = nb_reaction_3 + 1
2899      v_3(:,nb_reaction_3) = c016(:)
2900
2901!---  c017: oh + oh + co2 -> h2o2 + co2
2902
2903!     jpl 2003
2904
2905      do iz = 1,nz
2906         ak0 = 2.5*6.9E-31*(t(iz)/300.)**(-1.0)
2907         ak1 = 2.6E-11*(t(iz)/300.)**(0.0)
2908
2909         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
2910         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
2911         c017(iz) = rate*0.6**xpo
2912      end do
2913
2914      nb_reaction_3 = nb_reaction_3 + 1
2915      v_3(:,nb_reaction_3) = c017(:)
2916
2917!---  c018: h + h + co2 -> h2 + co2
2918
2919!     baulch et al., 2005
2920
2921      c018(:) = 2.5*1.8E-30*(t(:)**(-1.0))*conc(:)
2922
2923      nb_reaction_3 = nb_reaction_3 + 1
2924      v_3(:,nb_reaction_3) = c018(:)
2925
2926!----------------------------------------------------------------------
2927!        reactions des composes azotes
2928!----------------------------------------------------------------------
2929
2930!---  d001: no2 + o -> no + o2
2931
2932!     jpl 2006
2933
2934!     d001(:) = 5.1e-12*exp(210./t(:))
2935
2936!     jpl 2019
2937
2938!     For the sake of simplicity, it is assumed that the association
2939!     yield (kf) gives the same product as the chemical activation yield
2940!     (kca). Thus the only products are no + o2. There is no production
2941!     of no3.
2942
2943      do iz = 1,nz
2944
2945!        association
2946
2947        k0 = 2.5*3.4e-31*(298./t(iz))**(1.6)
2948        kinf = 2.3e-11*(298./t(iz))**(0.2)
2949
2950        kf = (kinf*k0*conc(iz)/(kinf + k0*conc(iz))) &
2951             *0.6**(1. + (log10(k0*conc(iz)/kinf))**2.)**(-1.0)
2952
2953!       chemical acitvation
2954
2955         kint = 5.3e-12*exp(200./t(iz))
2956
2957         kca = kint*(1. - kf/kinf)
2958
2959!        total : association + chemical activation
2960
2961         d001(iz) = kf + kca
2962
2963      end do
2964
2965      nb_reaction_4 = nb_reaction_4 + 1
2966      v_4(:,nb_reaction_4) = d001(:)
2967
2968!---  d002: no + o3 -> no2 + o2
2969
2970!     jpl 2006
2971
2972      d002(:) = 3.0e-12*exp(-1500./t(:))
2973
2974      nb_reaction_4 = nb_reaction_4 + 1
2975      v_4(:,nb_reaction_4) = d002(:)
2976
2977!---  d003: no + ho2 -> no2 + oh
2978
2979!     jpl 2011
2980
2981!     d003(:) = 3.3e-12*exp(270./t(:))
2982
2983!     jpl 2019
2984
2985      d003(:) = 3.44e-12*exp(270./t(:))
2986
2987      nb_reaction_4 = nb_reaction_4 + 1
2988      v_4(:,nb_reaction_4) = d003(:)
2989
2990
2991!---  d004: n + no -> n2 + o
2992
2993!     jpl 2011
2994
2995      d004(:) = 2.1e-11*exp(100./t(:))
2996
2997      nb_reaction_4 = nb_reaction_4 + 1
2998      v_4(:,nb_reaction_4) = d004(:)
2999
3000!---  d005: n + o2 -> no + o
3001
3002!     jpl 2011
3003
3004!     d005(:) = 1.5e-11*exp(-3600./t(:))
3005
3006!     jpl 2019
3007
3008      d005(:) = 3.3e-12*exp(-3150./t(:))
3009
3010      nb_reaction_4 = nb_reaction_4 + 1
3011      v_4(:,nb_reaction_4) = d005(:)
3012
3013!---  d006: no2 + h -> no + oh
3014
3015!     jpl 2011
3016
3017!     d006(:) = 4.0e-10*exp(-340./t(:))
3018
3019!     jpl 2019
3020
3021      d006(:) = 1.35e-10
3022
3023      nb_reaction_4 = nb_reaction_4 + 1
3024      v_4(:,nb_reaction_4) = d006(:)
3025
3026!---  d007: n + o -> no
3027
3028      d007(:) = 1.9e-17*(300./t(:))**(0.5)*exp(1-(0.57/(t(:)**(0.5))))
3029
3030      nb_reaction_4 = nb_reaction_4 + 1
3031      v_4(:,nb_reaction_4) = d007(:)
3032
3033      ind_norec = nb_reaction_4
3034
3035!---  d008: n + ho2 -> no + oh
3036
3037!     brune et al., j. chem. phys., 87, 1983
3038
3039      d008(:) = 2.19e-11
3040
3041      nb_reaction_4 = nb_reaction_4 + 1
3042      v_4(:,nb_reaction_4) = d008(:)
3043
3044!---  d009: n + oh -> no + h
3045
3046!     atkinson et al., j. phys. chem. ref. data, 18, 881, 1989
3047
3048      d009(:) = 3.8e-11*exp(85./t(:))
3049
3050      nb_reaction_4 = nb_reaction_4 + 1
3051      v_4(:,nb_reaction_4) = d009(:)
3052
3053!---  d010: n2d + o -> n + o
3054
3055!     herron, j. phys. chem. ref. data, 1999
3056
3057      d010(:) = 3.3e-12*exp(-260./t(:))
3058
3059      nb_phot = nb_phot + 1
3060      v_phot(:,nb_phot) = d010(:)*c(:,i_o)
3061
3062!---  d011: n2d + n2 -> n + n2
3063
3064!     herron, j. phys. chem. ref. data, 1999
3065
3066      d011(:) = 1.7e-14
3067
3068      nb_phot = nb_phot + 1
3069      v_phot(:,nb_phot) = d011(:)*c(:,i_n2)
3070
3071!---  d012: n2d + co2 -> no + co
3072
3073!     herron, j. phys. chem. ref. data, 1999
3074
3075      d012(:) = 3.6e-13
3076
3077      nb_reaction_4 = nb_reaction_4 + 1
3078      v_4(:,nb_reaction_4) = d012(:)
3079
3080!---  d013: n + o + co2 -> no + co2
3081
3082!     Campbell & Trush, 1966     
3083
3084      d013(:) = 2.5 * conc(:) * 1.83e-32 * (298./t(:))**0.5
3085     
3086      nb_reaction_4 = nb_reaction_4 + 1
3087      v_4(:,nb_reaction_4) = d013(:)
3088
3089!--- d014: n2d + co -> n + co
3090
3091!    herron, j. phys. chem. ref. data, 1999
3092
3093     d014(:) = 1.9e-12
3094
3095     nb_phot = nb_phot + 1
3096     v_phot(:,nb_phot) = d014(:)*c(:,i_co)
3097!----------------------------------------------------------------------
3098!        reactions des composes carbones
3099!----------------------------------------------------------------------
3100
3101!---  e001: oh + co -> co2 + h
3102
3103!     jpl 2015
3104
3105!      do iz = 1,nz
3106
3107!        branch 1 : oh + co -> h + co2
3108
3109!         rate1 = 1.5e-13*(t(iz)/300.)**(0.0)
3110
3111!        branch 2 : oh + co + m -> hoco + m
3112
3113!         ak0 = 5.9e-33*(t(iz)/300.)**(-1.0)
3114!         ak1 = 1.1e-12*(t(iz)/300.)**(1.3)
3115!         rate2 = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3116!         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3117
3118!         e001(iz) = rate1 + rate2*0.6**xpo
3119!      end do
3120
3121!     joshi et al., 2006
3122
3123!     do iz = 1,nz
3124!        k1a0 = 1.34*2.5*conc(iz)                                &
3125!              *1/(1/(3.62E-26*t(iz)**(-2.739)*exp(-20./t(iz)))  &
3126!              + 1/(6.48E-33*t(iz)**(0.14)*exp(-57./t(iz))))     ! typo in paper corrected
3127!        k1b0 = 1.17E-19*t(iz)**(2.053)*exp(139./t(iz))          &
3128!             + 9.56E-12*t(iz)**(-0.664)*exp(-167./t(iz))
3129!        k1ainf = 1.52E-17*t(iz)**(1.858)*exp(28.8/t(iz))        &
3130!               + 4.78E-8*t(iz)**(-1.851)*exp(-318./t(iz))
3131!        x = k1a0/(k1ainf - k1b0)
3132!        y = k1b0/(k1ainf - k1b0)
3133!        fc = 0.628*exp(-1223./t(iz)) + (1. - 0.628)*exp(-39./t(iz))  &
3134!           + exp(-t(iz)/255.)
3135!        fx = fc**(1./(1. + (alog(x))**2))                       ! typo in paper corrected
3136!        k1a = k1a0*((1. + y)/(1. + x))*fx
3137!        k1b = k1b0*(1./(1.+x))*fx
3138!        e001(iz) = k1a + k1b
3139!     end do
3140
3141!     jpl 2019
3142
3143      do iz = 1,nz
3144
3145!       association
3146
3147        k0 = 2.5*6.9e-33*(398./t(iz))**(2.1)
3148        kinf = 1.1e-12*(298./t(iz))**(-1.3)
3149
3150        kf = (kinf*k0*conc(iz)/(kinf + k0*conc(iz))) &
3151             *0.6**(1. + (log10(k0*conc(iz)/kinf))**2.)**(-1.0)
3152
3153!       chemical activation
3154
3155        kint = 1.85e-13*exp(-65/t(iz))
3156
3157        kca = kint*(1. - kf/kinf)
3158
3159!       total : association + chemical activation
3160
3161        e001(iz) = kf + kca
3162
3163      end do
3164
3165      nb_reaction_4 = nb_reaction_4 + 1
3166      v_4(:,nb_reaction_4) = e001(:)
3167
3168!---  e002: o + co + m -> co2 + m
3169
3170!     tsang and hampson, 1986.
3171
3172      e002(:) = 2.5*6.5E-33*exp(-2184./t(:))*conc(:)
3173
3174      nb_reaction_4 = nb_reaction_4 + 1
3175      v_4(:,nb_reaction_4) = e002(:)
3176
3177!----------------------------------------------------------------------
3178!        reactions des composes chlores
3179!----------------------------------------------------------------------
3180
3181!---  f001: hcl + o(1d) -> oh + cl
3182
3183!     jpl 2011
3184
3185      f001(:) = 1.0E-10
3186
3187      nb_reaction_4 = nb_reaction_4 + 1
3188      v_4(:,nb_reaction_4) = f001(:)
3189
3190!---  f002: hcl + o(1d) -> h + clo
3191
3192!     jpl 2011
3193
3194      f002(:) = 3.6E-11
3195     
3196      nb_reaction_4 = nb_reaction_4 + 1
3197      v_4(:,nb_reaction_4) = f002(:)
3198
3199!---  f003: hcl + o -> oh + cl
3200
3201!     jpl 2006
3202
3203      f003(:) = 1.0E-11*exp(-3300./t(:))
3204
3205      nb_reaction_4 = nb_reaction_4 + 1
3206      v_4(:,nb_reaction_4) = f003(:)
3207
3208!---  f004: hcl + oh -> h2o + cl
3209
3210!     jpl 2009
3211
3212      f004(:) = 1.8E-12*exp(-250./t(:))
3213
3214      nb_reaction_4 = nb_reaction_4 + 1
3215      v_4(:,nb_reaction_4) = f004(:)
3216
3217!---  f005: clo + o -> cl + o2
3218
3219!     jpl 2006
3220
3221      f005(:) = 2.8E-11*exp(85./t(:))
3222
3223      nb_reaction_4 = nb_reaction_4 + 1
3224      v_4(:,nb_reaction_4) = f005(:)
3225
3226!---  f006: clo + oh -> cl + ho2
3227
3228!     jpl 2006
3229
3230      f006(:) = 7.4E-12*exp(270./t(:))
3231
3232      nb_reaction_4 = nb_reaction_4 + 1
3233      v_4(:,nb_reaction_4) = f006(:)
3234
3235!---  f007: clo + oh -> hcl + o2
3236
3237!     jpl 2006
3238
3239      f007(:) = 6.0E-13*exp(230./t(:))
3240
3241      nb_reaction_4 = nb_reaction_4 + 1
3242      v_4(:,nb_reaction_4) = f007(:)
3243
3244!---  f008: cl + h2 -> hcl + h
3245
3246!     jpl 2006
3247
3248      f008(:) = 3.05E-11*exp(-2270./t(:))
3249
3250      nb_reaction_4 = nb_reaction_4 + 1
3251      v_4(:,nb_reaction_4) = f008(:)
3252
3253!---  f009: cl + o3 -> clo + o2
3254
3255!     jpl 2006
3256
3257      f009(:) = 2.3E-11*exp(-200./t(:))
3258
3259      nb_reaction_4 = nb_reaction_4 + 1
3260      v_4(:,nb_reaction_4) = f009(:)
3261
3262!---  f010: cl + ho2 -> clo + oh
3263
3264!     jpl 2009
3265
3266      f010(:) = 3.6E-11*exp(-375./t(:))
3267     
3268      nb_reaction_4 = nb_reaction_4 + 1
3269      v_4(:,nb_reaction_4) = f010(:)
3270
3271!---  f011: cl + ho2 -> hcl + o2
3272
3273!     jpl 2009
3274
3275      f011(:) = 1.4E-11*exp(270./t(:))
3276
3277      nb_reaction_4 = nb_reaction_4 + 1
3278      v_4(:,nb_reaction_4) = f011(:)
3279
3280!---  f012: cl + h2o2 -> hcl + ho2
3281
3282!     jpl 2006
3283
3284      f012(:) = 1.1E-11*exp(-980./t(:))
3285
3286      nb_reaction_4 = nb_reaction_4 + 1
3287      v_4(:,nb_reaction_4) = f012(:)
3288
3289!---  f013: cl + co + co2 -> clco + co2
3290
3291!     jpl 2011 + nicovich et al., j. phys. chem., 1990
3292
3293      f013(:) = 3.2*1.3E-33*(t(:)/300.)**(-3.8)*conc(:)
3294
3295      nb_reaction_4 = nb_reaction_4 + 1
3296      v_4(:,nb_reaction_4) = f013(:)
3297
3298!---  f014: clco + co2 -> cl + co + co2
3299
3300!     jpl 2011
3301
3302!     deq(:) = 3.2*3.5E-25*exp(3730./t(:))
3303
3304!     mills, 1998
3305
3306      deq(:) = 1.6E-25*exp(4000./t(:))
3307
3308      f014(:) = f013(:)/(deq(:)*conc(:))
3309
3310      nb_phot = nb_phot + 1
3311      v_phot(:,nb_phot) = f014(:)*conc(:)
3312
3313!     do iz = 1, nz
3314!     print*, z(iz), t(iz), f013(iz), f014(iz), v_phot(iz,nb_phot)
3315!     end do
3316!     stop
3317
3318!---  f015: clco + o2 + m -> clco3 + m
3319
3320!     yung and demore, icarus, 51, 199-247, 1982.
3321
3322      f015(:) = 5.7E-15*exp(500./t(:))*conc(:)   &
3323               /(1.e17 + 0.05*conc(:))
3324
3325      nb_reaction_4 = nb_reaction_4 + 1
3326      v_4(:,nb_reaction_4) = f015(:)
3327
3328!---  f016: clco3 + cl -> cl + clo + co2
3329
3330!     yung and demore, icarus, 51, 199-247, 1982.
3331
3332!     decomposee en :
3333!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
3334!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
3335
3336      f016(:) = 1.0E-11
3337
3338      nb_reaction_4 = nb_reaction_4 + 1
3339      v_4(:,nb_reaction_4) = f016(:)
3340
3341      nb_reaction_4 = nb_reaction_4 + 1
3342      v_4(:,nb_reaction_4) = f016(:)
3343
3344!---  f017: clco3 + o -> cl + o2 + co2
3345
3346!     yung and demore, icarus, 51, 199-247, 1982.
3347
3348!     decomposee en :
3349!     0.5 clco3 + 0.5 o -> cl
3350!     0.5 clco3 + 0.5 o -> o2 + co2
3351
3352      f017(:) = 1.0E-11
3353
3354      nb_reaction_4 = nb_reaction_4 + 1
3355      v_4(:,nb_reaction_4) = f017(:)
3356
3357      nb_reaction_4 = nb_reaction_4 + 1
3358      v_4(:,nb_reaction_4) = f017(:)
3359
3360!---  f018: clo + ho2  -> hocl + o2
3361
3362!     jpl 2019
3363
3364      f018(:) = 2.6E-12*exp(290./t(:))
3365
3366      nb_reaction_4 = nb_reaction_4 + 1
3367      v_4(:,nb_reaction_4) = f018(:)
3368
3369!---  f019: oh + hocl -> h2o + clo
3370
3371      f019(:) = 3.0E-12*exp(-500./t(:))
3372
3373      nb_reaction_4 = nb_reaction_4 + 1
3374      v_4(:,nb_reaction_4) = f019(:)
3375
3376!---  f020: o + hocl -> oh + clo
3377
3378      f020(:) = 1.7E-13
3379
3380      nb_reaction_4 = nb_reaction_4 + 1
3381      v_4(:,nb_reaction_4) = f020(:)
3382
3383!---  f021: cl + cl + co2 -> cl2 + co2
3384
3385!     donohoue et al., j. phys. chem. a, 109, 7732-7741, 2005
3386
3387!     f021(:) = 2.5*8.4E-33*exp(850.*(1./t(:) - 1./298.))*conc(:)
3388
3389!     valeur utilisee par Zhang et al., 2011:
3390
3391      f021(:) = 2.6E-33*exp(900./t(:))*conc(:)
3392
3393      nb_reaction_3 = nb_reaction_3 + 1
3394      v_3(:,nb_reaction_3) = f021(:)
3395
3396!---  f022: clco + o -> cl + co2
3397
3398!     yung et al., icarus, 1982 (estimated)
3399
3400      f022(:) = 3.0E-11
3401
3402      nb_reaction_4 = nb_reaction_4 + 1
3403      v_4(:,nb_reaction_4) = f022(:)
3404
3405!---  f023: cl2 + o(1d) -> cl + clo
3406
3407!     jpl 2011
3408
3409      f023(:) = 2.0E-10
3410
3411      nb_reaction_4 = nb_reaction_4 + 1
3412      v_4(:,nb_reaction_4) = f023(:)
3413
3414!---  f024: cl2 + h  -> hcl + cl
3415
3416!     baulch et al., j. phys. chem. ref. data, 1981
3417
3418      f024(:) = 1.43E-10*exp(-591./t(:))
3419
3420      nb_reaction_4 = nb_reaction_4 + 1
3421      v_4(:,nb_reaction_4) = f024(:)
3422
3423!---  f025: cl + clco  -> cl2 + co
3424
3425!     baulch et al., j. phys. chem. ref. data, 1981
3426
3427      f025(:) = 2.16E-9*exp(-1670./t(:))
3428
3429      nb_reaction_4 = nb_reaction_4 + 1
3430      v_4(:,nb_reaction_4) = f025(:)
3431
3432!---  f026: clco + clco  -> cocl2 + co
3433
3434!     zhang et al., icarus, 2011 (estimated)
3435
3436      f026(:) = 5.0E-11
3437
3438      nb_reaction_3 = nb_reaction_3 + 1
3439      v_3(:,nb_reaction_3) = f026(:)
3440
3441!---  f027: cl + so2 + co2  -> clso2 + co2
3442
3443!     mills, phd, 1998
3444
3445      f027(:) = 1.3E-34*exp(940./t(:))*conc(:)
3446
3447      nb_reaction_4 = nb_reaction_4 + 1
3448      v_4(:,nb_reaction_4) = f027(:)
3449
3450!---  f028: clso2 + o  -> so2 + clo
3451
3452!     mills, phd, 1998
3453
3454      f028(:) = 1.0E-11
3455
3456      nb_reaction_4 = nb_reaction_4 + 1
3457      v_4(:,nb_reaction_4) = f028(:)
3458
3459!---  f029: clso2 + h  -> so2 + hcl
3460
3461!     mills, phd, 1998
3462
3463      f029(:) = 1.0E-11
3464
3465      nb_reaction_4 = nb_reaction_4 + 1
3466      v_4(:,nb_reaction_4) = f029(:)
3467
3468!---  f030: clso2 + clso2  -> cl2 + so2 + so2
3469
3470!     moses et al. 2002
3471
3472      f030(:) = 5.0E-13
3473
3474      nb_reaction_3 = nb_reaction_3 + 1
3475      v_3(:,nb_reaction_3) = f030(:)
3476
3477!---  f031: cl + o + co2  -> clo + co2
3478
3479!     yung and demore, 1999 (estimated)
3480
3481      f031(:) = 5.0E-32*conc(:)
3482
3483      nb_reaction_4 = nb_reaction_4 + 1
3484      v_4(:,nb_reaction_4) = f031(:)
3485
3486!---  f032: cl2 + o -> clo + cl
3487
3488!     mills, phd, 1998
3489
3490      f032(:) = 7.4E-12*exp(-1650./t(:))
3491
3492      nb_reaction_4 = nb_reaction_4 + 1
3493      v_4(:,nb_reaction_4) = f032(:)
3494
3495!---  f033: clco + oh -> hocl + co
3496
3497!     mills, phd, 1998
3498
3499      f033(:) = 1.5E-10
3500
3501      nb_reaction_4 = nb_reaction_4 + 1
3502      v_4(:,nb_reaction_4) = f033(:)
3503
3504!---  f034: cl2 + oh -> cl + hocl
3505
3506!     jpl 2011
3507
3508      f034(:) = 2.6E-12*exp(-1100./t(:))
3509
3510      nb_reaction_4 = nb_reaction_4 + 1
3511      v_4(:,nb_reaction_4) = f034(:)
3512
3513!---  f035: clco + o -> co + clo
3514
3515!     yung and demore, 1982
3516
3517      f035(:) = 3.0E-12
3518
3519      nb_reaction_4 = nb_reaction_4 + 1
3520      v_4(:,nb_reaction_4) = f035(:)
3521
3522!---  f036: clco + cl2 -> cocl2 + cl
3523
3524!     ohta, bull. chem. soc. jpn., 1983
3525
3526      f036(:) = 6.45E-2*f015(:)
3527
3528      nb_reaction_4 = nb_reaction_4 + 1
3529      v_4(:,nb_reaction_4) = f036(:)
3530
3531!---  f037: hcl + h -> h2 + cl
3532
3533!     mills, phd, 1998
3534
3535      f037(:) = 1.5E-11*exp(-1750./t(:))
3536
3537      nb_reaction_4 = nb_reaction_4 + 1
3538      v_4(:,nb_reaction_4) = f037(:)
3539
3540!---  f038: clco + h -> hcl + co
3541
3542!     yung and demore, 1982
3543
3544      f038(:) = 1.0E-11
3545
3546      nb_reaction_4 = nb_reaction_4 + 1
3547      v_4(:,nb_reaction_4) = f038(:)
3548
3549!---  f039: cl + h + m -> hcl + m
3550
3551!     yung and demore, 1982 (estimate)
3552
3553      f039(:) = 1.0E-32*conc(:)
3554
3555      nb_reaction_4 = nb_reaction_4 + 1
3556      v_4(:,nb_reaction_4) = f039(:)
3557
3558!----------------------------------------------------------------------
3559!        reactions des composes soufres
3560!----------------------------------------------------------------------
3561
3562!---  g001: s + o2 -> so + o
3563
3564!     jpl 2015
3565
3566      g001(:) = 1.6E-12*exp(100./t(:))
3567
3568      nb_reaction_4 = nb_reaction_4 + 1
3569      v_4(:,nb_reaction_4) = g001(:)
3570
3571!---  g002: s + o3 -> so + o2
3572
3573!     jpl 2015
3574
3575      g002(:) = 1.2E-11
3576
3577      nb_reaction_4 = nb_reaction_4 + 1
3578      v_4(:,nb_reaction_4) = g002(:)
3579
3580!---  g003: so + o2 -> so2 + o
3581
3582!     jpl 2015
3583
3584      g003(:) = 1.6E-13*exp(-2280./t(:))
3585
3586      nb_reaction_4 = nb_reaction_4 + 1
3587      v_4(:,nb_reaction_4) = g003(:)
3588
3589!---  g004: so + o3 -> so2 + o2
3590
3591!     jpl 2015
3592
3593      g004(:) = 3.4E-12*exp(-1100./t(:))
3594
3595      nb_reaction_4 = nb_reaction_4 + 1
3596      v_4(:,nb_reaction_4) = g004(:)
3597
3598!---  g005: so + oh -> so2 + h
3599
3600!     jpl 2019
3601
3602      g005(:) = 2.6E-11*exp(330./t(:))
3603
3604      nb_reaction_4 = nb_reaction_4 + 1
3605      v_4(:,nb_reaction_4) = g005(:)
3606
3607!---  g006: s + oh -> so + h
3608
3609!     jpl 2015
3610
3611      g006(:) = 6.6E-11
3612
3613      nb_reaction_4 = nb_reaction_4 + 1
3614      v_4(:,nb_reaction_4) = g006(:)
3615
3616!---  g007: so + o + co2 -> so2 + co2
3617
3618!     singleton and cvetanovic, j. phys. chem. ref. data, 1988
3619!     measured with co2 as third body
3620
3621      do iz = 1,nz
3622         ak0 = 4.2E-30
3623         ak1 = 5.3E-11
3624
3625         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3626         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3627         g007(iz) = rate*0.6**xpo
3628      end do
3629
3630      nb_reaction_4 = nb_reaction_4 + 1
3631      v_4(:,nb_reaction_4) = g007(:)
3632
3633!---  g008: so + ho2 -> so2 + oh
3634
3635      g008(:) = 2.8E-11
3636
3637      nb_reaction_4 = nb_reaction_4 + 1
3638      v_4(:,nb_reaction_4) = g008(:)
3639
3640!---  g009: so2 + o + co2 -> so3 + co2
3641
3642!     Naidoo et al., Proceedings of the Combustion Institute,
3643!                    30, 1219-1225, 2005
3644!     Also recommended by jpl 2019 with a simpler expression (fc = 0.6)
3645!
3646!     Factor of 5 for third-body efficiency of co2 to be confirmed!
3647
3648      do iz = 1,nz
3649         ak0 = 5.*9.5e-23*(t(iz)**(-3.0))*exp(-2400./t(iz))
3650         ak1 = 6.1e-13*exp(-850./t(iz))
3651         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3652         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3653         fc = 0.558*exp(-t(iz)/316.) + 0.442*exp(-t(iz)/7442.)
3654         g009(iz) = rate*fc**xpo
3655      end do
3656
3657      nb_reaction_4 = nb_reaction_4 + 1
3658      v_4(:,nb_reaction_4) = g009(:)
3659
3660!---  g010: s + o + co2 -> so + co2
3661
3662!     zhang et al., icarus, 2011
3663
3664      g010(:) = 1.5E-34*exp(900./t(:))*conc(:)
3665
3666      nb_reaction_4 = nb_reaction_4 + 1
3667      v_4(:,nb_reaction_4) = g010(:)
3668
3669!---  g011: so3 + h2o + h2o -> h2so4 + h2o
3670
3671!     lovejoy et al., j.phys.chem., 1996
3672
3673      do iz = 1,nz
3674         g011(iz) = 2.26E-23*max(t(iz),100.)*exp(6540./max(t(iz),100.))
3675         g011(iz) = g011(iz)*1.0E-20*c(iz,i_h2o)
3676      end do
3677
3678      nb_reaction_4 = nb_reaction_4 + 1
3679      v_4(:,nb_reaction_4) = g011(:)
3680
3681!---  g012: so + clo -> so2 + cl
3682
3683!     jpl 2011
3684
3685      g012(:) = 2.8E-11
3686
3687      nb_reaction_4 = nb_reaction_4 + 1
3688      v_4(:,nb_reaction_4) = g012(:)
3689
3690!---  g013: so + so3 -> so2 + so2
3691
3692!     chung et al., int. j. chem. kinet., 1975
3693
3694      g013(:) = 2.0E-15
3695
3696      nb_reaction_4 = nb_reaction_4 + 1
3697      v_4(:,nb_reaction_4) = g013(:)
3698
3699!---  g014: so3 + o -> so2 + o2
3700
3701!     jacob and winkler, j. chem. soc. faraday trans. 1, 1972
3702
3703      g014(:) = 2.32E-16*exp(-487./t(:))
3704
3705      nb_reaction_4 = nb_reaction_4 + 1
3706      v_4(:,nb_reaction_4) = g014(:)
3707
3708!---  g015: so + so + co2 -> s2o2 + co2
3709
3710!     herron and huie, chem. phys. lett., 1980.
3711
3712      do iz = 1,nz
3713         ak0 = 2.5*4.4E-31
3714         ak1 = 1.0E-11
3715
3716         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3717         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3718         g015(iz) = rate*0.6**xpo
3719      end do
3720
3721      nb_reaction_3 = nb_reaction_3 + 1
3722      v_3(:,nb_reaction_3) = g015(:)
3723
3724!---  g016: s2o2 + co2 -> so + so + co2
3725
3726!     mills, phd, 1998
3727
3728      deq(:) = 2.5*1.0E-28*exp(6000./t(:))
3729
3730      g016(:) = g015(:)/(deq(:)*conc(:))
3731
3732      nb_phot = nb_phot + 1
3733      v_phot(:,nb_phot) = g016(:)*conc(:)
3734
3735!---  g017: clco3 + so -> cl + so2 + co2
3736
3737!     mills, phd, 1998
3738
3739!     decomposee en :
3740!     0.5 clco3 + 0.5 so -> cl
3741!     0.5 clco3 + 0.5 so -> so2 + co2
3742
3743      g017(:) = 1.0E-11
3744
3745      nb_reaction_4 = nb_reaction_4 + 1
3746      v_4(:,nb_reaction_4) = g017(:)
3747
3748      nb_reaction_4 = nb_reaction_4 + 1
3749      v_4(:,nb_reaction_4) = g017(:)
3750
3751!---  g018: s + co + co2 -> ocs + co2
3752
3753!     zhang et al., icarus, 2011 (estimate?)
3754
3755      g018(:) = 2.5*4.0E-33*exp(-1940./t(:))*conc(:)
3756     
3757!      g018(:) = 0.0E+0
3758
3759      nb_reaction_4 = nb_reaction_4 + 1
3760      v_4(:,nb_reaction_4) = g018(:)
3761
3762!---  g019: clco + s -> ocs + cl
3763
3764!     zhang et al., icarus, 2011
3765
3766      g019(:) = 3.0E-12
3767
3768!      g019(:) = 0.0E+0
3769
3770      nb_reaction_4 = nb_reaction_4 + 1
3771      v_4(:,nb_reaction_4) = g019(:)
3772
3773!---  g020: so2 + oh + co2 -> hso3 + co2
3774
3775!     jpl 2011
3776
3777      do iz = 1,nz
3778         ak0 = 2.5*3.3E-31*(t(iz)/300.)**(-4.3)
3779         ak1 = 1.6E-12
3780
3781         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3782         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3783         g020(iz) = rate*0.6**xpo
3784      end do
3785
3786      nb_reaction_4 = nb_reaction_4 + 1
3787      v_4(:,nb_reaction_4) = g020(:)
3788
3789!---  g021: hso3 + o2 -> ho2 + so3
3790
3791!     jpl 2011
3792
3793      g021(:) = 1.3E-12*exp(-330./t(:))
3794
3795      nb_reaction_4 = nb_reaction_4 + 1
3796      v_4(:,nb_reaction_4) = g021(:)
3797
3798!---  g022: s + s + co2 -> s2 + co2
3799
3800!     nicholas et al., j. chem. soc. faraday trans. 1, 1979
3801
3802      do iz = 1,nz
3803         ak0 = 1.19E-29
3804         ak1 = 1.0E-10
3805
3806         rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1)
3807         xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2)
3808         g022(iz) = rate*0.6**xpo
3809      end do
3810
3811      nb_reaction_3 = nb_reaction_3 + 1
3812      v_3(:,nb_reaction_3) = g022(:)
3813
3814!---  g023: s2 + o -> so + s
3815
3816!     zhang et al., icarus, 2011
3817
3818      g023(:) = 2.2E-11*exp(-84./t(:))
3819
3820      nb_reaction_4 = nb_reaction_4 + 1
3821      v_4(:,nb_reaction_4) = g023(:)
3822
3823!---  g024: s + ocs -> s2 +  co
3824
3825!     lu et al., j. chem. phys., 2006
3826
3827      g024(:) = 6.63E-20*(t(:)**2.57)*exp(-1180./t(:))
3828     
3829      nb_reaction_4 = nb_reaction_4 + 1
3830      v_4(:,nb_reaction_4) = g024(:)
3831
3832!---  g025: ocs + o -> so + co
3833
3834!     atkinson et al., 2004
3835
3836      g025(:) = 1.60E-11*exp(-2150./t(:))
3837
3838      nb_reaction_4 = nb_reaction_4 + 1
3839      v_4(:,nb_reaction_4) = g025(:)
3840
3841!---  g026: s + so3 -> so2 +  so
3842
3843!     moses et al., 2002
3844
3845      g026(:) = 1.0E-16
3846
3847      nb_reaction_4 = nb_reaction_4 + 1
3848      v_4(:,nb_reaction_4) = g026(:)
3849
3850!---  g027: s + ho2 -> so +  oh
3851
3852!     yung and demore, 1982
3853
3854      g027(:) = 3.0E-11*exp(200./t(:))
3855
3856      nb_reaction_4 = nb_reaction_4 + 1
3857      v_4(:,nb_reaction_4) = g027(:)
3858
3859!---  g028: s + clo -> so +  cl
3860
3861!     moses et al., 2002
3862
3863      g028(:) = 4.0E-11
3864
3865      nb_reaction_4 = nb_reaction_4 + 1
3866      v_4(:,nb_reaction_4) = g028(:)
3867
3868!---  g029: h2so4 + h2o -> so3 + h2o + h2o
3869
3870!     krasnopolsky , 2007
3871
3872      g029(:) = 7.0E-14*exp(-5170./t(:))
3873
3874      nb_phot = nb_phot + 1
3875      v_phot(:,nb_phot) = g029(:)*c(:,i_h2o)
3876     
3877!---  g030: so3 + ocs -> s2o2 +  co2
3878
3879!     krasnopolsky , 2007
3880
3881      g030(:) = 1.0E-11*exp(-10000./t(:))
3882     
3883      nb_reaction_4 = nb_reaction_4 + 1
3884      v_4(:,nb_reaction_4) = g030(:)
3885     
3886!---  g031: s2o2 + ocs -> co + so2 + s2
3887
3888!     split into
3889!     0.5 s2o2 + 0.5 ocs -> co
3890!     0.5 s2o2 + 0.5 ocs -> so2 + s2
3891
3892!     krasnopolsky , 2007
3893
3894      g031(:) = 1.0E-20
3895     
3896      nb_reaction_4 = nb_reaction_4 + 1
3897      v_4(:,nb_reaction_4) = g031(:)
3898     
3899      nb_reaction_4 = nb_reaction_4 + 1
3900      v_4(:,nb_reaction_4) = g031(:)
3901
3902!     g032: so + so -> so2 + s
3903
3904!     krasnopolsky, 2012
3905
3906      g032(:) = 1.0e-12*exp(-1700./t(:))
3907     
3908      nb_reaction_3 = nb_reaction_3 + 1
3909      v_3(:,nb_reaction_3) = g032(:)
3910           
3911!----------------------------------------------------------------------
3912!     heterogeneous chemistry
3913!----------------------------------------------------------------------
3914
3915      if (hetero_ice) then
3916
3917!        k = (surface*v*gamma)/4 (s-1)
3918!        v = 100*sqrt(8rt/(pi*m))  (cm s-1)
3919 
3920!---     h001: ho2 + ice -> products
3921 
3922!        cooper and abbatt, 1996: gamma = 0.025
3923     
3924         gam = 0.025
3925         h001(:) = surfice1d(:)*1.E-8       &
3926                   *100.*sqrt(8.*8.31*t(:)/(33.E-3*pi))*gam/4.
3927 
3928!        h002: oh + ice -> products
3929 
3930!        cooper and abbatt, 1996: gamma = 0.03
3931 
3932         gam = 0.03
3933         h002(:) = surfice1d(:)*1.E-8       &
3934                   *100.*sqrt(8.*8.31*t(:)/(17.E-3*pi))*gam/4.
3935
3936!---     h003: h2o2 + ice -> products
3937 
3938!        gamma = 0.    test value
3939 
3940         gam = 0.
3941         h003(:) = surfice1d(:)*1.E-8        &
3942                   *100.*sqrt(8.*8.31*t(:)/(34.E-3*pi))*gam/4.
3943      else
3944         h001(:) = 0.
3945         h002(:) = 0.
3946         h003(:) = 0.
3947      end if
3948
3949      nb_phot = nb_phot + 1
3950      v_phot(:,nb_phot) = h001(:)
3951
3952      nb_phot = nb_phot + 1
3953      v_phot(:,nb_phot) = h002(:)
3954
3955      nb_phot = nb_phot + 1
3956      v_phot(:,nb_phot) = h003(:)
3957
3958!     do iz = 1,nz
3959!        print*, z(iz), surfice1d(iz), h001(iz), h002(iz)
3960!     end do
3961!     stop
3962
3963!     print*, 'krates : nb_phot       = ', nb_phot
3964!     print*, 'krates : nb_reaction_4 = ', nb_reaction_4
3965!     print*, 'krates : nb_reaction_3 = ', nb_reaction_3
3966!     stop
3967
3968!----------------------------------------------------------------------
3969!     ionospheric reactions
3970!     only if ok_ionchem=true
3971!----------------------------------------------------------------------
3972
3973      if (ok_ionchem) then
3974
3975!---     i001: co2+ + o2 -> o2+ + co2
3976
3977!        aninich, j. phys. chem. ref. data 1993
3978
3979         i001(:) = 5.5e-11*(300./t_elect(:))**0.5
3980
3981         nb_reaction_4 = nb_reaction_4 + 1
3982         v_4(:,nb_reaction_4) = i001(:)
3983
3984!---     i002: co2+ + o -> o+ + co2
3985
3986!        UMIST database
3987
3988         i002(:) = 9.6e-11
3989     
3990         nb_reaction_4 = nb_reaction_4 + 1
3991         v_4(:,nb_reaction_4) = i002(:)
3992
3993!---     i003: co2+ + o -> o2+ + co
3994
3995!        UMIST database
3996
3997         i003(:) = 1.64e-10
3998
3999         nb_reaction_4 = nb_reaction_4 + 1
4000         v_4(:,nb_reaction_4) = i003(:)
4001
4002!---     i004: o2+ + e- -> o + o
4003
4004!        Alge et al., J. Phys. B, At. Mol. Phys. 1983
4005         !i004(:) = 2.0e-7*(300./t_elect(:))**0.7
4006         
4007         do iz = 1,nz
4008           if (t_elect(iz)<1200.) then
4009             i004(iz) = 2.0e-7*(300./t_elect(iz))**0.7
4010           else
4011             i004(iz) = 7.4e-8*(1200./t_elect(iz))**0.56
4012           end if
4013         end do
4014
4015         nb_reaction_4 = nb_reaction_4 + 1
4016         v_4(:,nb_reaction_4) = i004(:)
4017
4018!---     i005: o+ + co2 -> o2+ + co
4019
4020!        UMIST database
4021
4022         i005(:) = 9.4e-10
4023
4024         nb_reaction_4 = nb_reaction_4 + 1
4025         v_4(:,nb_reaction_4) = i005(:)
4026
4027
4028!---     i006: co2+ + e- -> co + o
4029
4030!        UMIST database
4031
4032         i006(:) = 3.8e-7*(300./t_elect(:))**0.5
4033
4034         nb_reaction_4 = nb_reaction_4 + 1
4035         v_4(:,nb_reaction_4) = i006(:)
4036
4037
4038!---     i007: co2+ + no -> no+ + co2
4039
4040!        UMIST database
4041
4042         i007(:) = 1.2e-10
4043
4044         nb_reaction_4 = nb_reaction_4 + 1
4045         v_4(:,nb_reaction_4) = i007(:)
4046
4047!---     i008: o2+ + no -> no+ + o2
4048
4049!        UMIST database
4050
4051         i008(:) = 4.6e-10
4052
4053         nb_reaction_4 = nb_reaction_4 + 1
4054         v_4(:,nb_reaction_4) = i008(:)
4055
4056!---     i009: o2+ + n2 -> no+ + no
4057     
4058!        Fox & Sung 2001
4059
4060         i009(:) = 1.0e-15
4061     
4062         nb_reaction_4 = nb_reaction_4 + 1
4063         v_4(:,nb_reaction_4) = i009(:)
4064
4065!---     i010: o2+ + n -> no+ + o
4066
4067!        Fox & Sung 2001
4068
4069         i010(:) = 1.0e-10
4070
4071         nb_reaction_4 = nb_reaction_4 + 1
4072         v_4(:,nb_reaction_4) = i010(:)
4073
4074!---     i011: o+ + n2 -> no+ + n
4075
4076!        Fox & Sung 2001
4077
4078         i011(:) = 1.2e-12 * (300./t_elect(:))**0.45
4079
4080         nb_reaction_4 = nb_reaction_4 + 1
4081         v_4(:,nb_reaction_4) = i011(:)
4082
4083!---     i012: no+ + e -> n + o
4084
4085!        UMIST database
4086
4087         i012(:) = 4.3e-7*(300./t_elect(:))**0.37
4088
4089         nb_reaction_4 = nb_reaction_4 + 1
4090         v_4(:,nb_reaction_4) = i012(:)
4091
4092
4093!---     i013: co+ + co2 -> co2+ + co
4094
4095!        UMIST database
4096
4097         i013(:) = 1.0e-9
4098
4099         nb_reaction_4 = nb_reaction_4 + 1
4100         v_4(:,nb_reaction_4) = i013(:)
4101
4102
4103!---     i014: co+ + o -> o+ + co
4104
4105!        UMIST database
4106
4107         i014(:) = 1.4e-10
4108
4109         nb_reaction_4 = nb_reaction_4 + 1
4110         v_4(:,nb_reaction_4) = i014(:)
4111
4112!---     i015: c+ + co2 -> co+ + co
4113
4114!        UMIST database
4115
4116         i015(:) = 1.1e-9
4117
4118         nb_reaction_4 = nb_reaction_4 + 1
4119         v_4(:,nb_reaction_4) = i015(:)
4120
4121
4122!---     i016: N2+ + co2 -> co2+ + N2
4123
4124!        Fox & Song 2001
4125
4126         i016(:) = 9.0e-10*(300./t_elect(:))**0.23
4127
4128         nb_reaction_4 = nb_reaction_4 + 1
4129         v_4(:,nb_reaction_4) = i016(:)
4130
4131
4132!---     i017: N2+ + o -> no+ + N
4133
4134!        Fox & Song 2001
4135
4136         i017(:) = 1.33e-10*(300./t_elect(:))**0.44
4137
4138         nb_reaction_4 = nb_reaction_4 + 1
4139         v_4(:,nb_reaction_4) = i017(:)
4140
4141!---     i018: N2+ + co -> co+ + N2
4142
4143!        UMIST
4144
4145         i018(:) = 7.4e-11
4146
4147         nb_reaction_4 = nb_reaction_4 + 1
4148         v_4(:,nb_reaction_4) = i018(:)
4149
4150!---     i019: N2+ + e -> N + N
4151
4152!        UMIST
4153
4154         i019(:) = 1.7e-7*(300./t_elect(:))**0.3
4155
4156         nb_reaction_4 = nb_reaction_4 + 1
4157         v_4(:,nb_reaction_4) = i019(:)
4158
4159!---     i020: N2+ + o -> o+ + N2
4160
4161!        Fox & Song 2001
4162
4163         i020(:) = 7.0e-12*(300./t_elect(:))**0.23
4164
4165         nb_reaction_4 = nb_reaction_4 + 1
4166         v_4(:,nb_reaction_4) = i020(:)
4167
4168!---     i021: N+ + co2 -> co2+ + N
4169
4170!        UMIST
4171
4172         i021(:) = 7.5e-10
4173
4174         nb_reaction_4 = nb_reaction_4 + 1
4175         v_4(:,nb_reaction_4) = i021(:)
4176
4177!---     i022: CO+ + H -> H+ + CO
4178
4179!        Fox & Sung 2001
4180
4181         i022(:) = 4.0e-10
4182
4183         nb_reaction_4 = nb_reaction_4 + 1
4184         v_4(:,nb_reaction_4) = i022(:)
4185
4186!---     i023: O+ + H -> H+ + O
4187
4188!        UMIST
4189
4190         i023(:) = 5.66e-10*((t_elect(:)/300.)**0.36)*exp(8.6/t_elect(:))
4191
4192         nb_reaction_4 = nb_reaction_4 + 1
4193         v_4(:,nb_reaction_4) = i023(:)
4194
4195!---     i024: H+ + O -> O+ + H
4196
4197!        UMIST
4198
4199         i024(:) = 6.86e-10*((t_elect(:)/300.)**0.26)*exp(-224.3/t_elect(:))
4200
4201         nb_reaction_4 = nb_reaction_4 + 1
4202         v_4(:,nb_reaction_4) = i024(:)
4203
4204!---     i025: CO+ + H2 -> HCO2+ + H
4205
4206!        UMIST
4207
4208         i025(:) = 9.5e-10
4209
4210         nb_reaction_4 = nb_reaction_4 + 1
4211         v_4(:,nb_reaction_4) = i025(:)
4212
4213!---     i026: spare slot
4214
4215         i026(:) = 0.
4216
4217         nb_reaction_4 = nb_reaction_4 + 1
4218         v_4(:,nb_reaction_4) = i026(:)
4219
4220!---     i027+i028: HCO2+ + e -> H + O + CO
4221
4222!        UMIST
4223         !Reaction splitted in 2: i027: 0.5 (HCO2+ + e-) -> H
4224         !i028: 0.5 (HCO2+ + e-) -> O + CO
4225
4226         i027(:) = 8.1e-7*((300./t_elect(:))**0.64)
4227
4228         nb_reaction_4 = nb_reaction_4 + 1
4229         v_4(:,nb_reaction_4) = i027(:)
4230
4231         nb_reaction_4 = nb_reaction_4 + 1
4232         v_4(:,nb_reaction_4) = i027(:)
4233
4234!---     i029: HCO2+ + e -> OH + CO
4235
4236!        UMIST
4237
4238         i029(:) = 3.2e-7*((300./t_elect(:))**0.64)
4239
4240         nb_reaction_4 = nb_reaction_4 + 1
4241         v_4(:,nb_reaction_4) = i029(:)
4242
4243!---     i030: HCO2+ + e -> H + CO2
4244
4245!        UMIST
4246
4247         i030(:) = 6.0e-8*((300./t_elect(:))**0.64)
4248         nb_reaction_4 = nb_reaction_4 + 1
4249         v_4(:,nb_reaction_4) = i030(:)
4250
4251!---     i031: HCO2+ + O -> HCO+ + O2
4252
4253!        UMIST
4254
4255         i031(:) = 1.e-9
4256         nb_reaction_4 = nb_reaction_4 + 1
4257         v_4(:,nb_reaction_4) = i031(:)
4258
4259!---     i032: HCO2+ + CO -> HCO+ + CO2
4260
4261!        UMIST, from Prassad & Huntress 1980
4262
4263         i032(:) = 7.8e-10
4264         nb_reaction_4 = nb_reaction_4 + 1
4265         v_4(:,nb_reaction_4) = i032(:)
4266
4267!---     i033: H+ + CO2 -> HCO+ + O
4268
4269!        UMIST, from Smith et al., Int. J. Mass Spectrom. Ion Proc., 117, 457-473(1992)
4270
4271         i033(:) = 3.5e-9
4272         nb_reaction_4 = nb_reaction_4 + 1
4273         v_4(:,nb_reaction_4) = i033(:)
4274
4275
4276!---     i034: CO2+ + H -> HCO+ + O
4277
4278!        Seen in Fox 2015, from Borodi et al., Int. J. Mass Spectrom. 280, 218-225, 2009
4279
4280         i034(:) = 4.5e-10
4281         nb_reaction_4 = nb_reaction_4 + 1
4282         v_4(:,nb_reaction_4) = i034(:)
4283
4284!---     i035: CO+ + H2 -> HCO+ + H
4285
4286         !UMIST, from Scott et al., J. Chem. Phys., 106, 3982-3987(1997)
4287
4288         i035(:) = 7.5e-10
4289         nb_reaction_4 = nb_reaction_4 + 1
4290         v_4(:,nb_reaction_4) = i035(:)
4291
4292!---     i036: HCO+ + e- -> CO + H
4293
4294         !UMIST, from Mitchell, Phys. Rep., 186, 215 (1990)
4295
4296         i036(:) = 2.4e-7 *((300./t_elect(:))**0.69)
4297         nb_reaction_4 = nb_reaction_4 + 1
4298         v_4(:,nb_reaction_4) = i036(:)
4299
4300!---     i037: CO2+ + H2O -> H2O+ + CO2
4301
4302         !UMIST, from Karpas, Z., Anicich, V.G., and Huntress, W.T., Chem. Phys. Lett., 59, 84 (1978)
4303
4304         i037(:) = 2.04e-9 *((300./t_elect(:))**0.5)
4305         nb_reaction_4 = nb_reaction_4 + 1
4306         v_4(:,nb_reaction_4) = i037(:)
4307
4308!---     i038: CO+ + H2O -> H2O+ + CO
4309
4310         !UMIST, from Huntress, W.T., McEwan, M.J., Karpas, Z., and Anicich, V.G., Astrophys. J. Supp. Series, 44, 481 (1980)
4311
4312         i038(:) = 1.72e-9*((300./t_elect(:))**0.5)
4313         nb_reaction_4 = nb_reaction_4 + 1
4314         v_4(:,nb_reaction_4) = i038(:)
4315
4316!---     i039: O+ + H2O -> H2O+ + O
4317
4318         !UMIST, from Adams, N.G., Smith, D., and Paulson, J.F., J. Chem. Phys., 72, 288 (1980); Smith, D., Adams, N.G., and Miller, T.M., J. Chem. Phys.., 69, 308 (1978)
4319
4320         i039(:) = 3.2e-9*((300./t_elect(:))**0.5)
4321         nb_reaction_4 = nb_reaction_4 + 1
4322         v_4(:,nb_reaction_4) = i039(:)
4323
4324!---     i040: N2+ + H2O -> H2O+ + N2
4325
4326         !UMIST, from Adams, N.G., Smith, D., and Paulson, J.F., J. Chem. Phys., 72, 288 (1980); Smith, D., Adams, N.G., and Miller, T.M., J. Chem. Phys.., 69, 308 (1978)
4327
4328         i040(:) = 2.3e-9*((300./t_elect(:))**0.5)
4329         nb_reaction_4 = nb_reaction_4 + 1
4330         v_4(:,nb_reaction_4) = i040(:)
4331
4332!---     i041: N+ + H2O -> H2O+ + N
4333
4334         !UMIST, from Adams, N.G., Smith, D., and Paulson, J.F., J. Chem. Phys., 72, 288 (1980); Smith, D., Adams, N.G., and Miller, T.M., J. Chem. Phys.., 69, 308 (1978)
4335
4336         i041(:) = 2.8e-9*((300./t_elect(:))**0.5)
4337         nb_reaction_4 = nb_reaction_4 + 1
4338         v_4(:,nb_reaction_4) = i041(:)
4339
4340
4341!---     i042: H+ + H2O -> H2O+ + H
4342
4343         !UMIST, from D. Smith, P. Spanel and C. A. Mayhew, Int. J. Mass Spectrom. Ion Proc., 117, 457-473(1992)
4344
4345         i042(:) = 6.9e-9*((300./t_elect(:))**0.5)
4346         nb_reaction_4 = nb_reaction_4 + 1
4347         v_4(:,nb_reaction_4) = i042(:)
4348
4349!---     i043: H2O+ + O2 -> O2+ + H2O
4350
4351         !UMIST, from A. B. Raksit and P. Warneck, J. Chem. Soc. Faraday Trans., 76, 1084-1092(1980)
4352
4353         i043(:) = 4.6e-10
4354         nb_reaction_4 = nb_reaction_4 + 1
4355         v_4(:,nb_reaction_4) = i043(:)
4356
4357!---     i044: H2O+ + CO -> HCO+ + OH
4358
4359         !UMIST, from Jones, J.D.C., Birkinshaw, K., and Twiddy, N.D., Chem. Phys. Lett., 77, 484 (1981)
4360
4361         i044(:) = 5.0e-10
4362         nb_reaction_4 = nb_reaction_4 + 1
4363         v_4(:,nb_reaction_4) = i044(:)
4364
4365!---     i045: H2O+ + O -> O2+ + H2
4366
4367         !UMIST, from Viggiano, A.A, Howarka, F., Albritton, D.L., Fehsenfeld, F.C., Adams, N.G., and Smith, D., Astrophys. J., 236, 492 (1980)
4368
4369         i045(:) = 4.0e-11
4370         nb_reaction_4 = nb_reaction_4 + 1
4371         v_4(:,nb_reaction_4) = i045(:)
4372
4373!---     i046: H2O+ + NO -> NO+ + H2O
4374
4375         !UMIST, from A. B. Raksit and P. Warneck, J. Chem. Soc. Faraday Trans., 76, 1084-1092(1980)
4376
4377         i046(:) = 2.7e-10
4378         nb_reaction_4 = nb_reaction_4 + 1
4379         v_4(:,nb_reaction_4) = i046(:)
4380
4381!---     i047: H2O+ + e- -> H + H + O
4382
4383         !UMIST, from Rosen, S., Derkatch, A., Semaniak, J., et al., 2000, Far. Disc., 115, 295
4384         
4385         i047(:) = 3.05e-7*((300./t_elect(:))**0.5)
4386         nb_reaction_4 = nb_reaction_4 + 1
4387         v_4(:,nb_reaction_4) = i047(:)
4388
4389!---     i048: H2O+ + e- -> H + OH
4390         
4391         !UMIST, from Rosen, S., Derkatch, A., Semaniak, J., et al., 2000, Far. Disc., 115, 295
4392
4393         i048(:) = 8.6e-8*((300./t_elect(:))**0.5)
4394         nb_reaction_4 = nb_reaction_4 + 1
4395         v_4(:,nb_reaction_4) = i048(:)
4396
4397!---     i049: H2O+ + e- -> O + H2
4398
4399         !UMIST, from Rosen, S., Derkatch, A., Semaniak, J., et al., 2000, Far. Disc., 115, 295
4400
4401         i049(:) = 3.9e-8*((300./t_elect(:))**0.5)
4402         nb_reaction_4 = nb_reaction_4 + 1
4403         v_4(:,nb_reaction_4) = i049(:)
4404
4405!---     i050: H2O+ + H2O -> H3O+ + OH
4406
4407         !UMIST, from Huntress, W.T. and Pinizzotto, R.F., J. Chem. Phys., 59, 4742 (1973)
4408
4409         i050(:) = 2.1e-9*((300./t_elect(:))**0.5)
4410         nb_reaction_4 = nb_reaction_4 + 1
4411         v_4(:,nb_reaction_4) = i050(:)
4412
4413
4414!---     i051: H2O+ + H2 -> H3O+ + H
4415
4416         !UMIST, from A. B. Raksit and P. Warneck, J. Chem. Soc. Faraday Trans., 76, 1084-1092(1980)
4417
4418         i051(:) = 6.4e-10
4419         nb_reaction_4 = nb_reaction_4 + 1
4420         v_4(:,nb_reaction_4) = i051(:)
4421
4422!---     i052: HCO+ + H2O -> H3O+ + CO
4423
4424         !UMIST, from Adams, N.G., Smith, D., and Grief, D., Int. J. Mass Spectrom. Ion Phys., 26, 405 (1978)
4425
4426         i052(:) = 2.5e-9*((300./t_elect(:))**0.5)
4427         nb_reaction_4 = nb_reaction_4 + 1
4428         v_4(:,nb_reaction_4) = i052(:)
4429
4430!---     i053: H3O+ + e -> OH + H + H
4431
4432         !UMIST, from Novotny, O. et al., J. Phys. Chem. A 2010, 114, 14, 4870-4874
4433
4434         i053(:) = 3.05e-7*((300./t_elect(:))**0.5)
4435         nb_reaction_4 = nb_reaction_4 + 1
4436         v_4(:,nb_reaction_4) = i053(:)
4437
4438!---     i054: H3O+ + e -> H2O + H
4439
4440         !UMIST, from Novotny, O. et al., J. Phys. Chem. A 2010, 114, 14, 4870-4874
4441         
4442         i054(:) = 7.09e-8*((300./t_elect(:))**0.5)
4443         nb_reaction_4 = nb_reaction_4 + 1
4444         v_4(:,nb_reaction_4) = i054(:)
4445
4446!---     i055: H3O+ + e -> OH + H2
4447
4448         !UMIST, from Novotny, O. et al., J. Phys. Chem. A 2010, 114, 14, 4870-4874
4449
4450         i055(:) = 5.37e-8*((300./t_elect(:))**0.5)
4451         nb_reaction_4 = nb_reaction_4 + 1
4452         v_4(:,nb_reaction_4) = i055(:)
4453
4454!---     i056: H3O+ + e -> O + H2 + H
4455
4456         !UMIST, from Novotny, O. et al., J. Phys. Chem. A 2010, 114, 14, 4870-4874
4457
4458         i056(:) = 5.6e-9*((300./t_elect(:))**0.5)
4459         nb_reaction_4 = nb_reaction_4 + 1
4460         v_4(:,nb_reaction_4) = i056(:)
4461
4462         nb_reaction_4 = nb_reaction_4 + 1
4463         v_4(:,nb_reaction_4) = i056(:)
4464
4465!---     i057: O+ + H2 -> OH+ + H
4466
4467         !UMIST, from Adams, N.G., Smith, D., and Paulson, J.F., J. Chem. Phys., 72, 288 (1980); Smith, D., Adams, N.G., and Miller, T.M., J. Chem. Phys.., 69, 308 (1978)
4468
4469         i057(:) = 1.7e-9
4470         nb_reaction_4 = nb_reaction_4 + 1
4471         v_4(:,nb_reaction_4) = i057(:)
4472
4473!---     i058: OH+ + O -> O2+ + H
4474
4475         !UMIST, from Prasad & Huntress, 1980, ApJS, 43, 1
4476
4477         i058(:) = 7.1e-10
4478         nb_reaction_4 = nb_reaction_4 + 1
4479         v_4(:,nb_reaction_4) = i058(:)
4480
4481!---     i059: OH+ + CO2 -> HCO2+ + O
4482
4483         !UMIST, from Jones, J.D.C., Birkinshaw, K., and Twiddy, N.D., Chem. Phys. Lett., 77, 484 (1981)
4484
4485         i059(:) = 1.44e-9
4486         nb_reaction_4 = nb_reaction_4 + 1
4487         v_4(:,nb_reaction_4) = i059(:)
4488
4489!---     i060: OH+ + CO -> HCO+ + O
4490
4491         !UMIST, from Jones, J.D.C., Birkinshaw, K., and Twiddy, N.D., Chem. Phys. Lett., 77, 484 (1981)
4492
4493         i060(:) = 1.05e-9
4494         nb_reaction_4 = nb_reaction_4 + 1
4495         v_4(:,nb_reaction_4) = i060(:)
4496
4497!---     i061: OH+ + NO -> NO+ + OH (tasa de reacción UMIST 3.59e-10)
4498
4499         !UMIST, from Jones, J.D.C., Birkinshaw, K., and Twiddy, N.D., Chem. Phys. Lett., 77, 484 (1981)
4500
4501         i061(:) = 3.59e-10
4502         nb_reaction_4 = nb_reaction_4 + 1
4503         v_4(:,nb_reaction_4) = i061(:)
4504
4505!---     i062: OH+ + H2 -> H2O+ + H (tasa de reacción UMIST 1.01e-9,
4506
4507         !UMIST, from Jones, J.D.C., Birkinshaw, K., and Twiddy, N.D., Chem. Phys. Lett., 77, 484 (1981)
4508
4509         i062(:) = 1.01e-9
4510         nb_reaction_4 = nb_reaction_4 + 1
4511         v_4(:,nb_reaction_4) = i062(:)
4512
4513!---     i063: OH+ + O2 -> O2+ + OH (tasa de reacción UMIST 5.9e-10
4514
4515         !UMIST, from Jones, J.D.C., Birkinshaw, K., and Twiddy, N.D., Chem. Phys. Lett., 77, 484 (1981)
4516
4517         i063(:) = 5.9e-10
4518         nb_reaction_4 = nb_reaction_4 + 1
4519         v_4(:,nb_reaction_4) = i063(:)
4520
4521      end if   ! ok_ionchem
4522
4523!----------------------------------------------------------------------
4524!     reactions avec 02(Dg)
4525!----------------------------------------------------------------------
4526
4527!---     j001: O2(Dg) + (CO2 and O) -> O2 + (CO2 and O) + hv
4528
4529!        Krasnopolsky (2010a) for CO2 & Clark and Wayne, 1969 for O (JPL)
4530
4531      j001(:) = 1.E-20 * c(:,i_co2) !+ 2.E-16 * c(:,i_o)
4532
4533      nb_phot = nb_phot + 1
4534      v_phot(:,nb_phot) = j001(:)
4535
4536!---     j002: O2(Dg) -> O2 + hv
4537
4538!        Lafferty et al; (1998)
4539
4540      j002(:) = 2.2E-4
4541
4542      nb_phot = nb_phot + 1
4543      v_phot(:,nb_phot) = j002(:)
4544
4545      !!! TEST: artificial increase of CO2 photodissociation
4546      if (tuneupperatm) then
4547      !-- TuneA
4548      !   v_phot(65:78,4) = v_phot(65:78,4)*10.
4549      !   v_phot(60:64,4) = v_phot(60:64,4)*3.
4550      !   v_phot(55:59,3) = v_phot(55:59,3)*2.
4551      !--
4552      !-- TuneB
4553      !   v_phot(65:78,4) = v_phot(65:78,4)*10.
4554      !   v_phot(55:59,3) = v_phot(55:59,3)*5.
4555      !--
4556      !-- TuneC
4557      ! VCD 1.1 tuning
4558      !   v_phot(65:78,4) = v_phot(65:78,4)*10.
4559      !   v_phot(52:59,3) = v_phot(52:59,3)*5.
4560      !--
4561      !-- TuneE
4562      ! VCD 2.0 tuning
4563      !  v_phot(65:nz,4) = v_phot(65:nz,4)*10. ! CO2 + hv ==> O(1D) + CO
4564      !--
4565      ! VCD 2.1 tuning
4566          v_phot(65:nz,4) = v_phot(65:nz,4)*8. ! CO2 + hv ==> O(1D) + CO
4567      !--
4568      ! TEST TUNEH
4569      !     v_phot(62:74,4) = v_phot(62:74,4)*6.5 ! CO2 + hv ==> O(1D) + CO
4570      !--
4571      !   v_phot(:,4) = v_phot(:,4)*10.
4572      !do ij=3,4
4573      !   v_phot(:,ij) = v_phot(:,ij)*10.
4574      !end do
4575      end if
4576return
4577end subroutine krates
4578
4579!======================================================================
4580
4581 subroutine fill_matrix(ilev, mat, prod, loss, lossconc, c, nesp, nlayer,  &
4582                        nb_reaction_3_max, nb_reaction_4_max, nb_phot_max, &
4583                        v_phot, v_3, v_4)
4584
4585!======================================================================
4586! filling of the jacobian matrix
4587!======================================================================
4588
4589use types_asis
4590
4591implicit none
4592
4593! input
4594
4595integer             :: ilev    ! level index
4596integer             :: nesp    ! number of species in the chemistry
4597integer, intent(in) :: nlayer  ! number of atmospheric layers
4598integer, intent(in) :: nb_reaction_3_max
4599                               ! number of quadratic reactions
4600integer, intent(in) :: nb_reaction_4_max
4601                               ! number of bimolecular reactions
4602integer, intent(in) :: nb_phot_max
4603                               ! number of processes treated numerically as photodissociations
4604
4605real (kind = 8), dimension(nlayer,nesp)              :: c    ! number densities
4606real (kind = 8), dimension(nlayer,      nb_phot_max) :: v_phot
4607real (kind = 8), dimension(nlayer,nb_reaction_3_max) :: v_3
4608real (kind = 8), dimension(nlayer,nb_reaction_4_max) :: v_4
4609
4610! output
4611
4612real (kind = 8), dimension(nesp,nesp), intent(out) :: mat  ! matrix
4613real (kind = 8), dimension(nesp), intent(out)      :: prod, loss, lossconc
4614
4615! local
4616
4617integer :: iesp
4618integer :: ind_phot_2,ind_phot_4,ind_phot_6
4619integer :: ind_3_2,ind_3_4,ind_3_6
4620integer :: ind_4_2,ind_4_4,ind_4_6,ind_4_8
4621integer :: iphot,i3,i4
4622
4623real(kind = 8) :: eps, eps_4  ! implicit/explicit coefficient
4624
4625! initialisations
4626
4627mat(:,:) = 0.
4628prod(:)  = 0.
4629loss(:)  = 0.
4630lossconc(:) = 0.
4631
4632! photodissociations
4633! or reactions a + c -> b + c
4634! or reactions a + ice -> b + c
4635do iphot = 1,nb_phot_max
4636
4637  ind_phot_2 = indice_phot(iphot)%z2
4638  ind_phot_4 = indice_phot(iphot)%z4
4639  ind_phot_6 = indice_phot(iphot)%z6
4640
4641  mat(ind_phot_2,ind_phot_2) = mat(ind_phot_2,ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot)
4642  mat(ind_phot_4,ind_phot_2) = mat(ind_phot_4,ind_phot_2) - indice_phot(iphot)%z3*v_phot(ilev,iphot)
4643  mat(ind_phot_6,ind_phot_2) = mat(ind_phot_6,ind_phot_2) - indice_phot(iphot)%z5*v_phot(ilev,iphot)
4644
4645  loss(ind_phot_2)     = loss(ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot)
4646  lossconc(ind_phot_2) = lossconc(ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot)*c(ilev,ind_phot_2)
4647 
4648  prod(ind_phot_4)     = prod(ind_phot_4) + indice_phot(iphot)%z3*v_phot(ilev,iphot)*c(ilev,ind_phot_2)
4649  prod(ind_phot_6)     = prod(ind_phot_6) + indice_phot(iphot)%z5*v_phot(ilev,iphot)*c(ilev,ind_phot_2)
4650
4651end do
4652
4653! reactions a + a -> b + c
4654
4655do i3 = 1,nb_reaction_3_max
4656
4657  ind_3_2 = indice_3(i3)%z2
4658  ind_3_4 = indice_3(i3)%z4
4659  ind_3_6 = indice_3(i3)%z6
4660
4661  mat(ind_3_2,ind_3_2) = mat(ind_3_2,ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2)
4662  mat(ind_3_4,ind_3_2) = mat(ind_3_4,ind_3_2) - indice_3(i3)%z3*v_3(ilev,i3)*c(ilev,ind_3_2)
4663  mat(ind_3_6,ind_3_2) = mat(ind_3_6,ind_3_2) - indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2)
4664
4665  loss(ind_3_2)     = loss(ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2)
4666  lossconc(ind_3_2) = lossconc(ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2)
4667 
4668  prod(ind_3_4)     = prod(ind_3_4) + indice_3(i3)%z3*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2)
4669  prod(ind_3_6)     = prod(ind_3_6) + indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2)
4670
4671end do
4672
4673! reactions a + b -> c + d
4674
4675eps = 1.d-10
4676
4677do i4 = 1,nb_reaction_4_max
4678
4679  ind_4_2 = indice_4(i4)%z2
4680  ind_4_4 = indice_4(i4)%z4
4681  ind_4_6 = indice_4(i4)%z6
4682  ind_4_8 = indice_4(i4)%z8
4683
4684  eps_4 = abs(c(ilev,ind_4_2))/(abs(c(ilev,ind_4_2)) + abs(c(ilev,ind_4_4)) + eps)
4685  eps_4 = min(eps_4,1.0)
4686
4687  mat(ind_4_2,ind_4_2) = mat(ind_4_2,ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
4688  mat(ind_4_2,ind_4_4) = mat(ind_4_2,ind_4_4) + indice_4(i4)%z1*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)
4689  mat(ind_4_4,ind_4_2) = mat(ind_4_4,ind_4_2) + indice_4(i4)%z3*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
4690  mat(ind_4_4,ind_4_4) = mat(ind_4_4,ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)   
4691  mat(ind_4_6,ind_4_2) = mat(ind_4_6,ind_4_2) - indice_4(i4)%z5*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
4692  mat(ind_4_6,ind_4_4) = mat(ind_4_6,ind_4_4) - indice_4(i4)%z5*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)
4693  mat(ind_4_8,ind_4_2) = mat(ind_4_8,ind_4_2) - indice_4(i4)%z7*v_4(ilev,i4)*(1. - eps_4)*c(ilev,ind_4_4)
4694  mat(ind_4_8,ind_4_4) = mat(ind_4_8,ind_4_4) - indice_4(i4)%z7*v_4(ilev,i4)*eps_4*c(ilev,ind_4_2)
4695
4696
4697  loss(ind_4_2)     = loss(ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*c(ilev,ind_4_4)
4698  lossconc(ind_4_2) = lossconc(ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*c(ilev,ind_4_4)*c(ilev,ind_4_2)
4699  loss(ind_4_4)     = loss(ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*c(ilev,ind_4_2)
4700  lossconc(ind_4_4) = lossconc(ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4)
4701 
4702  prod(ind_4_6)     = prod(ind_4_6) + indice_4(i4)%z5*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4)
4703  prod(ind_4_8)     = prod(ind_4_8) + indice_4(i4)%z7*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4)
4704
4705end do
4706
4707end subroutine fill_matrix
4708
4709!================================================================
4710
4711 subroutine define_dt(nesp, dtnew, dtold, ctimestep, cold, ccur, mat1, &
4712                      prod, loss, dens, lon, lat)
4713
4714!================================================================
4715! iterative evaluation of the appropriate time step dtnew
4716! according to curvature criterion based on
4717! e = 2 Rtol [r Cn+1 -(1-r) Cn + Cn-1 ]/[(1+r) Cn]
4718! with r = (tn - tn-1)/(tn+1 - tn)
4719!================================================================
4720
4721implicit none
4722
4723! input
4724
4725integer :: nesp  ! number of species in the chemistry
4726
4727real :: dtold, ctimestep
4728real (kind = 8), dimension(nesp)      :: cold, ccur
4729real (kind = 8), dimension(nesp,nesp) :: mat1
4730real (kind = 8), dimension(nesp)      :: prod, loss
4731real                       :: dens
4732real                       :: lon, lat
4733
4734! output
4735
4736real :: dtnew
4737
4738! local
4739
4740real (kind = 8), dimension(nesp)      :: cnew
4741real (kind = 8), dimension(nesp,nesp) :: mat
4742real (kind = 8) :: atol, ratio, e, es, coef
4743
4744integer                  :: code, iesp, iter
4745integer, dimension(nesp) :: indx
4746integer :: imax
4747
4748real :: dttest
4749
4750! parameters
4751
4752real (kind = 8), parameter :: dtmin   = 10.      ! minimum time step (s)
4753real (kind = 8), parameter :: vmrtol  = 1.e-11   ! absolute tolerance on vmr
4754real (kind = 8), parameter :: rtol    = 0.05     ! rtol recommended value : 0.1-0.02
4755integer,         parameter :: niter   = 3        ! number of iterations
4756real (kind = 8), parameter :: coefmax = 2.
4757real (kind = 8), parameter :: coefmin = 0.1
4758logical                    :: fast_guess = .true.
4759
4760
4761dttest = dtold   ! dttest = dtold = dt_guess
4762
4763atol = vmrtol*dens ! absolute tolerance in molecule.cm-3
4764
4765do iter = 1,niter
4766
4767if (fast_guess) then
4768
4769! first guess : fast semi-implicit method
4770
4771   do iesp = 1, nesp
4772      cnew(iesp) = (ccur(iesp) + prod(iesp)*dttest)/(1. + loss(iesp)*dttest)
4773   end do
4774
4775else
4776
4777! first guess : form the matrix identity + mat*dt_guess
4778
4779   mat(:,:) = mat1(:,:)*dttest
4780   do iesp = 1,nesp
4781      mat(iesp,iesp) = 1. + mat(iesp,iesp)
4782   end do
4783
4784! form right-hand side (RHS) of the system
4785
4786   cnew(:) = ccur(:)
4787
4788! solve the linear system  M*Cn+1 = Cn (RHS in cnew, then replaced by solution)
4789
4790#ifdef LAPACK
4791   call dgesv(nesp,1,mat,nesp,indx,cnew,nesp,code)
4792#else
4793   write(*,*) "photochemistry error, missing LAPACK routine dgesv"
4794   stop
4795#endif
4796
4797end if
4798
4799! ratio old/new subtimestep
4800
4801ratio = dtold/dttest
4802
4803! e : local error indicator
4804
4805e = 0.
4806
4807do iesp = 1,nesp
4808   es = 2.*abs((ratio*cnew(iesp) - (1. + ratio)*ccur(iesp) + cold(iesp))   &
4809         /(1. + ratio)/max(ccur(iesp)*rtol,atol))
4810
4811   if (es > e) then
4812      e = es
4813      imax = iesp
4814   end if
4815end do
4816
4817! timestep correction
4818
4819coef = max(coefmin, min(coefmax,0.8/sqrt(e)))
4820
4821dttest = max(dtmin,dttest*coef)
4822dttest = min(ctimestep,dttest)
4823
4824end do ! iter
4825
4826! new timestep
4827
4828dtnew = dttest
4829
4830end subroutine define_dt
4831
4832!======================================================================
4833!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4834!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4835! CE CODE EST OBSOLETE !! A NE PAS UTILISER !!!!!!!!!!!!!!!!!!!!!!!!!!!
4836!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4837!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4838
4839      SUBROUTINE  rate_save(            &
4840                           n_lev,       &
4841                           pres,        &
4842                           temperature, &
4843                           traceur,     &
4844                           nq_max,      &
4845                           vphot,       &
4846                           v3,          &
4847                           v4)     
4848!==================
4849!!!!! MODEL 1D !!!! ==> n_lon = 1 !!!!
4850!==================
4851! Ici on a les variables pour le modele 1D, surtout pour la sauvegarde des taux de prod/consom
4852!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4853!PENSER a changer les conditions de time_tot
4854!time_tot=nbr_pdt*(nbr_jour-1)
4855!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4856
4857      USE chemparam_mod
4858      IMPLICIT none
4859           
4860
4861!INTEGER, PARAMETER :: time_tot=6000*1
4862
4863INTEGER :: unit_loc, ierr_loc           ! unite de lecture de "rcm1d.def"
4864     
4865INTEGER, SAVE :: time_tot,nbr_pdt,nbr_jour
4866INTEGER, SAVE :: cpt_time, cpt_time_rate
4867DOUBLE PRECISION, DIMENSION(n_lev,126) :: rate_day
4868DOUBLE PRECISION, DIMENSION(n_lev,126) :: rate_night
4869DOUBLE PRECISION :: rate_local
4870DOUBLE PRECISION :: concentration(n_lev)
4871DOUBLE PRECISION :: pres(n_lev)
4872DOUBLE PRECISION :: temperature(n_lev)
4873DOUBLE PRECISION :: traceur(n_lev,nq_max)
4874     
4875INTEGER :: n_lev, nq_max
4876INTEGER :: i_lev, i_react, i_v
4877
4878INTEGER :: i
4879 
4880LOGICAL, SAVE :: f_call = .true.
4881
4882integer, parameter :: nb_phot_max = 30
4883integer, parameter :: nb_reaction_3_max = 12
4884integer, parameter :: nb_reaction_4_max = 87
4885     
4886real, dimension(n_lev,nb_phot_max) :: vphot
4887real, dimension(n_lev,nb_reaction_3_max) :: v3
4888real, dimension(n_lev,nb_reaction_4_max) :: v4
4889
4890!PRINT*,"DEBUT subroutine rate_save"
4891
4892
4893      IF (f_call) THEN
4894! ------------------------------------------------------
4895!  Lecture des parametres dans "rcm1d.def"
4896! ------------------------------------------------------
4897
4898!   Opening parameters file "rcm1d.def"
4899!   ---------------------------------------
4900      unit_loc =98
4901      OPEN(unit_loc,file='rcm1d.def',status='old',form='formatted'  &
4902          ,iostat=ierr_loc)
4903
4904      IF(ierr_loc.ne.0) THEN
4905        write(*,*) 'Problem to open "rcm1d.def'
4906        write(*,*) 'Is it there ?'
4907        stop
4908      ELSE
4909        write(*,*) 'open rcm1d.def success '
4910      END IF
4911
4912      do i=1, 2
4913        read (unit_loc, *)
4914      end do
4915
4916      PRINT *,'nombre de pas de temps par jour ?'
4917      READ(unit_loc,*) nbr_pdt
4918      print*,nbr_pdt
4919
4920      PRINT *,'nombre de jours simules ?'
4921      READ(unit_loc,*) nbr_jour
4922      print*,nbr_jour
4923     
4924 
4925     
4926      time_tot = nbr_pdt*(nbr_jour-1)
4927      PRINT *,'nombre de PdT avant calcul des taux production/consommation ?'
4928      PRINT*,time_tot
4929     
4930      PRINT*,'nlev',n_lev
4931           
4932         cpt_time = 1
4933         cpt_time_rate = 1
4934         f_call = .false.
4935         PRINT*,"f_call: ",f_call
4936         rate_night(:,:)=0.
4937         rate_day(:,:)=0.
4938     
4939      END IF           
4940     
4941!      PRINT*,"P        T"
4942!      PRINT*,pres,temperature
4943             
4944      IF (cpt_time .GE. time_tot) THEN
4945
4946!       PRINT*,'cpt_time',cpt_time
4947             
4948         DO i_lev=1, n_lev
4949         concentration(i_lev) = pres(i_lev)/(1.3806488E-19 * temperature(i_lev))     
4950         END DO
4951         
4952         IF (((cpt_time_rate .GE. 1).AND.(cpt_time_rate .LE. (nbr_pdt/4))).OR. &
4953         (cpt_time_rate .GT. (3*(nbr_pdt/4)))) THEN
4954         
4955!===============================
4956!        !!!! NUIT !!!!
4957!===============================
4958!       PRINT*,'NUIT'
4959       
4960           DO i_lev=1, n_lev
4961           i_react=1
4962           i_v=1
4963!===============================
4964!    1     o2 + hv     -> o + o
4965!===============================
4966                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
4967                rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4968                i_react=i_react+1
4969                i_v=i_v+1
4970!===============================
4971!    2     o2 + hv     -> o + o(1d)
4972!===============================
4973                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
4974                rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4975                i_react=i_react+1
4976                i_v=i_v+1
4977!===============================
4978!    3     co2 + hv    -> co + o
4979!===============================
4980            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
4981            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4982            i_react=i_react+1
4983                i_v=i_v+1
4984!===============================
4985!    4     co2 + hv    -> co + o(1d)
4986!===============================
4987            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
4988            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4989            i_react=i_react+1
4990                i_v=i_v+1
4991!===============================
4992!    5     o3 + hv     -> o2(Dg) + o(1d)
4993!===============================
4994            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
4995            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
4996            i_react=i_react+1
4997                i_v=i_v+1
4998!===============================
4999!    6     o3 + hv     -> o2 + o
5000!===============================
5001            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
5002            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5003            i_react=i_react+1
5004                i_v=i_v+1
5005!===============================
5006!    7     h2o + hv    -> h + oh
5007!===============================
5008            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o)*concentration(i_lev)
5009            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5010            i_react=i_react+1
5011                i_v=i_v+1
5012!===============================
5013!    8     ho2 + hv    -> oh + o
5014!===============================
5015            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev)
5016            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5017            i_react=i_react+1
5018                i_v=i_v+1
5019!===============================
5020!    9     h2o2 + hv   -> oh + oh
5021!===============================
5022            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o2)*concentration(i_lev)
5023            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5024            i_react=i_react+1
5025                i_v=i_v+1
5026!===============================
5027!    10    hcl + hv    -> h + cl
5028!===============================
5029            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev)
5030            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5031            i_react=i_react+1
5032                i_v=i_v+1
5033!===============================
5034!    11    cl2 + hv    -> cl + cl
5035!===============================
5036            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev)
5037            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5038            i_react=i_react+1
5039                i_v=i_v+1
5040!===============================
5041!    12    hocl + hv   -> oh + cl
5042!===============================
5043            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev)
5044            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5045            i_react=i_react+1
5046                i_v=i_v+1
5047!===============================
5048!    13    so2 + hv    -> so + o
5049!===============================
5050            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev)
5051            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5052            i_react=i_react+1
5053                i_v=i_v+1
5054!===============================
5055!    14    so + hv     -> s + o
5056!===============================
5057            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev)
5058            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5059            i_react=i_react+1
5060                i_v=i_v+1
5061!===============================
5062!    15    so3 + hv    -> so2 + o
5063!===============================
5064            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev)
5065            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5066            i_react=i_react+1
5067                i_v=i_v+1
5068!===============================
5069!    16    clo + hv    -> cl + o
5070!===============================
5071            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev)
5072            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5073            i_react=i_react+1
5074                i_v=i_v+1
5075!===============================
5076!    17    ocs + hv    -> co + s
5077!===============================
5078            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ocs)*concentration(i_lev)
5079            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5080            i_react=i_react+1
5081                i_v=i_v+1
5082!===============================
5083!    18    cocl2 + hv  -> cl + cl + co
5084!===============================
5085            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cocl2)*concentration(i_lev)
5086            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5087            i_react=i_react+1
5088                i_v=i_v+1
5089!===============================
5090!    19    h2so4 + hv  -> so3 + h2o
5091!===============================
5092            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2so4)*concentration(i_lev)
5093            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5094            i_react=i_react+1
5095                i_v=i_v+1
5096!===============================
5097!--- 20 b001 o(1d) + co2 -> o + co2
5098!===============================
5099            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
5100            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5101            i_react=i_react+1
5102                i_v=i_v+1
5103!===============================
5104!--- 21 b004 o(1d) + o2 -> o + o2
5105!===============================
5106            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
5107            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5108            i_react=i_react+1
5109                i_v=i_v+1
5110!===============================
5111!--- 22 f014 clco + co2 -> cl + co + co2
5112!===============================
5113            rate_local = vphot(i_lev,22)*traceur(i_lev,i_clco)*concentration(i_lev)
5114            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5115            i_react=i_react+1
5116                i_v=i_v+1
5117!===============================
5118!--- 23 g016 s2o2 + co2 -> 2so + co2
5119!===============================
5120            rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)
5121            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5122            i_react=i_react+1
5123                i_v=i_v+1
5124!===============================
5125!--- 24 g023 s2 + co2 -> 2s + co2
5126!===============================
5127            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5128            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5129            i_react=i_react+1
5130                i_v=i_v+1
5131!===============================
5132!--- 25 h001 ICE
5133!===============================
5134            i_react=i_react+1
5135                i_v=i_v+1
5136!===============================
5137!--- 26 h002 ICE
5138!===============================
5139            i_react=i_react+1
5140                i_v=i_v+1 
5141!===============================
5142!--- 27 h003 ICE
5143!===============================
5144            i_react=i_react+1
5145                i_v=i_v+1 
5146!===============================
5147!---  30 i001 o2(Dg) + CO2 -> O2 + CO2 + hv
5148!===============================
5149            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
5150            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5151            i_react=i_react+1
5152                i_v=i_v+1
5153!===============================
5154!--- 31 i002 o2(Dg) -> O2 + hv
5155!===============================
5156            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
5157            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5158            i_react=i_react+1
5159                i_v=i_v+1
5160
5161! DEBUT DES REACTION V3
5162                i_v = i_v - nb_phot_max
5163!===============================
5164!--- 32 a002: o + o + co2 -> o2 + co2
5165!===============================
5166            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5167            *traceur(i_lev,i_o)*concentration(i_lev)
5168            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5169            i_react=i_react+1
5170                i_v=i_v+1
5171!===============================
5172!--- 33 c008: ho2 + ho2 -> h2o2 + o2
5173!===============================
5174            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
5175            *traceur(i_lev,i_ho2)*concentration(i_lev)
5176            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5177            i_react=i_react+1
5178                i_v=i_v+1
5179!===============================
5180!--- 34 c013: oh + oh -> h2o + o
5181!===============================
5182            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5183            *traceur(i_lev,i_oh)*concentration(i_lev)
5184            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5185            i_react=i_react+1
5186                i_v=i_v+1
5187!===============================
5188!--- 35 c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
5189!===============================
5190            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
5191            *traceur(i_lev,i_ho2)*concentration(i_lev)
5192            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5193            i_react=i_react+1
5194                i_v=i_v+1
5195!===============================
5196!--- 36 c017: oh + oh + co2 -> h2o2 + co2
5197!===============================
5198            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5199            *traceur(i_lev,i_oh)*concentration(i_lev)
5200            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5201            i_react=i_react+1
5202                i_v=i_v+1
5203!===============================
5204!--- 37 c018: h + h + co2 -> h2 + co2
5205!===============================
5206            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5207            *traceur(i_lev,i_h)*concentration(i_lev)
5208            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5209            i_react=i_react+1
5210                i_v=i_v+1
5211!===============================
5212!--- 38 f021: cl + cl + co2 -> cl2 + co2
5213!===============================
5214            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5215            *traceur(i_lev,i_cl)*concentration(i_lev)
5216            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5217            i_react=i_react+1
5218                i_v=i_v+1
5219!===============================
5220!--- 39 f026: clco + clco  -> cocl2 + co
5221!===============================
5222            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5223            *traceur(i_lev,i_clco)*concentration(i_lev)
5224            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5225            i_react=i_react+1
5226                i_v=i_v+1
5227!===============================
5228!--- 40 f030: clso2 + clso2  -> cl2 + so2 + so2
5229!===============================
5230            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
5231            *traceur(i_lev,i_clso2)*concentration(i_lev)
5232            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5233            i_react=i_react+1
5234                i_v=i_v+1
5235!===============================
5236!--- 41 g015: so + so + co2 -> s2o2 + co2
5237!===============================
5238            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5239            *traceur(i_lev,i_so)*concentration(i_lev)
5240            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5241            i_react=i_react+1
5242                i_v=i_v+1
5243!===============================
5244!--- 42 g022: s + s + co2 -> s2 + co2
5245!===============================
5246            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5247            *traceur(i_lev,i_s)*concentration(i_lev)
5248            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5249            i_react=i_react+1
5250                i_v=i_v+1
5251
5252! DEBUT DES REACTION V4
5253
5254                i_v = i_v - nb_reaction_3_max
5255
5256!===============================
5257!--- 43 a001: o + o2 + co2 -> o3 + co2
5258!===============================
5259            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5260            *traceur(i_lev,i_o)*concentration(i_lev)
5261            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5262            i_react=i_react+1
5263                i_v=i_v+1
5264!===============================
5265!--- 44 a003: o + o3 -> o2 + o2
5266!===============================
5267            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
5268            *traceur(i_lev,i_o)*concentration(i_lev) 
5269            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5270            i_react=i_react+1
5271                i_v=i_v+1
5272!===============================
5273!--- 45 b002: o(1d) + h2o  -> oh + oh
5274!===============================
5275            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5276            *traceur(i_lev,i_h2o)*concentration(i_lev) 
5277            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5278            i_react=i_react+1
5279                i_v=i_v+1
5280!===============================
5281!--- 46 b003: o(1d) + h2  -> oh + h
5282!===============================
5283            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5284            *traceur(i_lev,i_h2)*concentration(i_lev) 
5285            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5286            i_react=i_react+1
5287                i_v=i_v+1
5288!===============================
5289!--- 47 b005: o(1d) + o3  -> o2 + o2
5290!===============================
5291            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5292            *traceur(i_lev,i_o3)*concentration(i_lev)
5293            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5294            i_react=i_react+1
5295                i_v=i_v+1
5296!===============================
5297!--- 48 b006: o(1d) + o3  -> o2 + o + o
5298!===============================
5299            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
5300            *traceur(i_lev,i_o3)*concentration(i_lev)
5301            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5302            i_react=i_react+1
5303                i_v=i_v+1
5304!===============================
5305!--- 49 c001: o + ho2 -> oh + o2
5306!===============================
5307            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5308            *traceur(i_lev,i_ho2)*concentration(i_lev)
5309            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5310            i_react=i_react+1
5311                i_v=i_v+1
5312!===============================
5313!--- 50 c002: o + oh -> o2 + h
5314!===============================
5315            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5316            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5317            i_react=i_react+1
5318                i_v=i_v+1
5319!===============================
5320!--- 51 c003: h + o3 -> oh + o2
5321!===============================
5322            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5323            *traceur(i_lev,i_o3)*concentration(i_lev)
5324            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5325            i_react=i_react+1
5326                i_v=i_v+1
5327!===============================
5328!--- 52 c004: h + ho2 -> oh + oh
5329!===============================
5330            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5331            *traceur(i_lev,i_ho2)*concentration(i_lev)
5332            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5333            i_react=i_react+1
5334                i_v=i_v+1
5335!===============================
5336!--- 53 c005: h + ho2 -> h2 + o2
5337!===============================
5338            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5339            *traceur(i_lev,i_ho2)*concentration(i_lev)
5340            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5341            i_react=i_react+1
5342                i_v=i_v+1
5343!===============================
5344!--- 54 c006: h + ho2 -> h2o + o
5345!===============================
5346            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
5347            *traceur(i_lev,i_ho2)*concentration(i_lev)
5348            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5349            i_react=i_react+1
5350                i_v=i_v+1
5351!===============================
5352!--- 55 c007: oh + ho2 -> h2o + o2
5353!===============================
5354            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5355            *traceur(i_lev,i_ho2)*concentration(i_lev)
5356            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5357            i_react=i_react+1
5358                i_v=i_v+1
5359!===============================
5360!--- 56 c009: oh + h2o2 -> h2o + ho2
5361!===============================
5362            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5363            *traceur(i_lev,i_h2o2)*concentration(i_lev)
5364            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5365            i_react=i_react+1
5366                i_v=i_v+1
5367!===============================
5368!--- 57 c010: oh + h2 -> h2o + h
5369!===============================
5370            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5371            *traceur(i_lev,i_h2)*concentration(i_lev)
5372            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5373            i_react=i_react+1
5374                i_v=i_v+1
5375!===============================
5376!--- 58 c011: h + o2 + co2 -> ho2 + co2
5377!===============================
5378            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5379            *traceur(i_lev,i_h)*concentration(i_lev)
5380            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5381            i_react=i_react+1
5382                i_v=i_v+1
5383!===============================
5384!--- 59 c012: o + h2o2 -> oh + ho2
5385!===============================
5386            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5387            *traceur(i_lev,i_h2o2)*concentration(i_lev)
5388            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5389            i_react=i_react+1
5390                i_v=i_v+1
5391!===============================
5392!--- 60 c014: oh + o3 -> ho2 + o2
5393!===============================
5394            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5395            *traceur(i_lev,i_o3)*concentration(i_lev)
5396            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5397            i_react=i_react+1
5398                i_v=i_v+1
5399!===============================
5400!--- 61 c015: ho2 + o3 -> oh + o2 + o2
5401!===============================
5402            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
5403            *traceur(i_lev,i_ho2)*concentration(i_lev)
5404            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5405            i_react=i_react+1
5406                i_v=i_v+1
5407!===============================
5408!--- 62 e001: oh + co -> co2 + h
5409!===============================
5410            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5411            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5412            i_react=i_react+1
5413                i_v=i_v+1
5414!===============================
5415!--- 63 e002: o + co + m -> co2 + m
5416!===============================
5417            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5418            *traceur(i_lev,i_co)*concentration(i_lev)
5419            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5420            i_react=i_react+1
5421                i_v=i_v+1
5422!===============================
5423!--- 64 f001: hcl + o(1d) -> oh + cl
5424!===============================
5425            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5426            *traceur(i_lev,i_o1d)*concentration(i_lev)
5427            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5428            i_react=i_react+1
5429                i_v=i_v+1
5430!===============================
5431!--- 65 f002: hcl + o(1d) -> h + clo
5432!===============================
5433            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5434            *traceur(i_lev,i_o1d)*concentration(i_lev)
5435            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5436            i_react=i_react+1
5437                i_v=i_v+1
5438!===============================
5439!--- 66 f003: hcl + o -> oh + cl
5440!===============================
5441            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5442            *traceur(i_lev,i_o)*concentration(i_lev)
5443            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5444            i_react=i_react+1
5445                i_v=i_v+1
5446!===============================
5447!--- 67 f004: hcl + oh -> h2o + cl
5448!===============================
5449            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5450            *traceur(i_lev,i_oh)*concentration(i_lev)
5451            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5452            i_react=i_react+1
5453                i_v=i_v+1
5454!===============================
5455!--- 68 f005: clo + o -> cl + o2
5456!===============================
5457            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5458            *traceur(i_lev,i_o)*concentration(i_lev)
5459            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5460            i_react=i_react+1
5461                i_v=i_v+1
5462!===============================
5463!--- 69 f006: clo + oh -> cl + ho2
5464!===============================
5465            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5466            *traceur(i_lev,i_oh)*concentration(i_lev)
5467            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5468            i_react=i_react+1
5469                i_v=i_v+1
5470!===============================
5471!--- 70 f007: clo + oh -> hcl + o2
5472!===============================
5473            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5474            *traceur(i_lev,i_oh)*concentration(i_lev)
5475            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5476            i_react=i_react+1
5477                i_v=i_v+1
5478!===============================
5479!--- 71 f008: cl + h2 -> hcl + h
5480!===============================
5481            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5482            *traceur(i_lev,i_h2)*concentration(i_lev)
5483            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5484            i_react=i_react+1
5485                i_v=i_v+1
5486!===============================
5487!--- 72 f009: cl + o3 -> clo + o2
5488!===============================
5489            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5490            *traceur(i_lev,i_o3)*concentration(i_lev)
5491            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5492            i_react=i_react+1
5493                i_v=i_v+1
5494!===============================
5495!--- 73 f010: cl + ho2 -> clo + oh
5496!===============================
5497            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5498            *traceur(i_lev,i_ho2)*concentration(i_lev)
5499            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5500            i_react=i_react+1
5501                i_v=i_v+1
5502!===============================
5503!--- 74 f011: cl + ho2 -> hcl + o2
5504!===============================
5505            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5506            *traceur(i_lev,i_ho2)*concentration(i_lev)
5507            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5508            i_react=i_react+1
5509                i_v=i_v+1
5510!===============================
5511!--- 75 f012: cl + h2o2 -> hcl + ho2
5512!===============================
5513            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5514            *traceur(i_lev,i_h2o2)*concentration(i_lev)
5515            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5516            i_react=i_react+1
5517                i_v=i_v+1
5518!===============================
5519!--- 76 f013: cl + co + co2 -> clco + co2
5520!===============================
5521            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5522            *traceur(i_lev,i_co)*concentration(i_lev)
5523            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5524            i_react=i_react+1
5525                i_v=i_v+1
5526!===============================
5527!--- 77 f015: clco + o2 + m -> clco3 + m
5528!===============================
5529                rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5530            *traceur(i_lev,i_clco)*concentration(i_lev)
5531            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5532            i_react=i_react+1
5533                i_v=i_v+1
5534!===============================
5535!--- 78 & 79 f016: clco3 + cl -> cl + clo + co2
5536!===============================
5537!     decomposee en :
5538!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
5539!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
5540            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5541            *traceur(i_lev,i_cl)*concentration(i_lev)
5542            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5543            i_react=i_react+1
5544                i_v=i_v+1
5545           
5546            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5547            *traceur(i_lev,i_cl)*concentration(i_lev)
5548            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5549            i_react=i_react+1
5550                i_v=i_v+1
5551!===============================
5552!--- 80 & 81 f017: clco3 + o -> cl + o2 + co2
5553!===============================
5554!     decomposee en :
5555!     0.5 clco3 + 0.5 o -> cl
5556!     0.5 clco3 + 0.5 o -> o2 + co2
5557            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5558            *traceur(i_lev,i_o)*concentration(i_lev)
5559            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5560            i_react=i_react+1
5561                i_v=i_v+1
5562           
5563            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5564            *traceur(i_lev,i_o)*concentration(i_lev)
5565            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5566            i_react=i_react+1
5567                i_v=i_v+1
5568!===============================
5569!--- 82 f018: clo + ho2  -> hocl + o2
5570!===============================
5571            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
5572            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5573            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5574            i_react=i_react+1
5575                i_v=i_v+1
5576!===============================
5577!--- 83 f019: oh + hocl -> h2o + clo
5578!===============================
5579            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
5580            *traceur(i_lev,i_hocl)*concentration(i_lev) 
5581            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5582            i_react=i_react+1
5583                i_v=i_v+1
5584!===============================
5585!--- 84 f020: o + hocl -> oh + clo
5586!===============================
5587            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev) &
5588            *traceur(i_lev,i_o)*concentration(i_lev) 
5589            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5590            i_react=i_react+1
5591                i_v=i_v+1
5592!===============================
5593!--- 85 f022: clco + o -> cl + co2
5594!===============================
5595            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5596            *traceur(i_lev,i_o)*concentration(i_lev) 
5597            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5598            i_react=i_react+1
5599                i_v=i_v+1
5600!===============================
5601!--- 86 f023: cl2 + o(1d) -> cl + clo
5602!===============================
5603            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5604            *traceur(i_lev,i_o1d)*concentration(i_lev) 
5605            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5606            i_react=i_react+1
5607                i_v=i_v+1
5608!===============================
5609!--- 87 f024: cl2 + h  -> hcl + cl
5610!==============================
5611            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5612            *traceur(i_lev,i_h)*concentration(i_lev) 
5613            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5614            i_react=i_react+1
5615                i_v=i_v+1
5616!===============================
5617!--- 88 f025: cl + clco  -> cl2 + co
5618!===============================
5619            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5620            *traceur(i_lev,i_clco)*concentration(i_lev) 
5621            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5622            i_react=i_react+1
5623                i_v=i_v+1
5624!===============================
5625!--- 89 f027: cl + so2 + co2  -> clso2 + co2
5626!===============================
5627            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5628            *traceur(i_lev,i_cl)*concentration(i_lev) 
5629            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5630            i_react=i_react+1
5631                i_v=i_v+1
5632!===============================
5633!--- 90 f028: clso2 + o  -> so2 + clo
5634!===============================
5635            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
5636            *traceur(i_lev,i_o)*concentration(i_lev) 
5637            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5638            i_react=i_react+1
5639                i_v=i_v+1
5640!===============================
5641!--- 91 f029: clso2 + h  -> so2 + hcl
5642!===============================
5643            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
5644            *traceur(i_lev,i_h)*concentration(i_lev) 
5645            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5646            i_react=i_react+1
5647                i_v=i_v+1
5648!===============================
5649!--- 92 f031: cl + o + co2  -> clo + co2
5650!===============================
5651            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5652            *traceur(i_lev,i_o)*concentration(i_lev) 
5653            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5654            i_react=i_react+1
5655                i_v=i_v+1
5656!===============================
5657!--- 93 f032: cl2 + o -> clo + cl
5658!===============================
5659            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5660            *traceur(i_lev,i_o)*concentration(i_lev) 
5661            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5662            i_react=i_react+1
5663                i_v=i_v+1
5664!===============================
5665!--- 94 f033: clco + oh -> hocl + co
5666!===============================
5667            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5668            *traceur(i_lev,i_oh)*concentration(i_lev) 
5669            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5670            i_react=i_react+1
5671                i_v=i_v+1
5672!===============================
5673!--- 95 f034: cl2 + oh -> cl + hocl
5674!===============================
5675            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5676            *traceur(i_lev,i_oh)*concentration(i_lev) 
5677            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5678            i_react=i_react+1
5679                i_v=i_v+1
5680!===============================
5681!--- 96 f035: clco + o -> co + clo
5682!===============================
5683            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5684            *traceur(i_lev,i_o)*concentration(i_lev) 
5685            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5686            i_react=i_react+1
5687                i_v=i_v+1
5688!===============================
5689!--- 97 f036: clco + cl2 -> cocl2 + cl
5690!===============================
5691            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
5692            *traceur(i_lev,i_clco)*concentration(i_lev) 
5693            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5694            i_react=i_react+1
5695                i_v=i_v+1
5696!===============================
5697!--- 98 f037: hcl + h -> h2 + cl
5698!===============================
5699            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
5700            *traceur(i_lev,i_h)*concentration(i_lev) 
5701            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5702            i_react=i_react+1
5703                i_v=i_v+1
5704!===============================
5705!--- 99 f038: clco + h -> hcl + co
5706!===============================
5707            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
5708            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5709            i_react=i_react+1
5710                i_v=i_v+1
5711!===============================
5712!--- 100 f039: cl + h + m -> hcl + m
5713!===============================
5714            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
5715            *traceur(i_lev,i_h)*concentration(i_lev) 
5716            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5717            i_react=i_react+1
5718                i_v=i_v+1
5719!===============================
5720!--- 101 g001: s + o2 -> so + o
5721!===============================
5722            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5723            *traceur(i_lev,i_o2)*concentration(i_lev) 
5724            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5725            i_react=i_react+1
5726                i_v=i_v+1
5727!===============================
5728!--- 102 g002: s + o3 -> so + o2
5729!===============================
5730            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5731            *traceur(i_lev,i_o3)*concentration(i_lev) 
5732            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5733            i_react=i_react+1
5734                i_v=i_v+1
5735!===============================
5736!--- 103 g003: so + o2 -> so2 + o
5737!===============================
5738             rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5739            *traceur(i_lev,i_o2)*concentration(i_lev) 
5740            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5741            i_react=i_react+1
5742                i_v=i_v+1
5743!===============================
5744!--- 104 g004: so + o3 -> so2 + o2
5745!===============================
5746            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5747            *traceur(i_lev,i_o3)*concentration(i_lev) 
5748            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5749            i_react=i_react+1
5750                i_v=i_v+1
5751!===============================
5752!--- 105 g005: so + oh -> so2 + h
5753!===============================
5754            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5755            *traceur(i_lev,i_oh)*concentration(i_lev) 
5756            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5757            i_react=i_react+1
5758                i_v=i_v+1
5759!===============================
5760!--- 106 g006: s + oh -> so + h
5761!===============================
5762            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5763            *traceur(i_lev,i_oh)*concentration(i_lev) 
5764            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5765            i_react=i_react+1
5766                i_v=i_v+1
5767!===============================
5768!--- 107 g007: so + o + co2 -> so2 + co2
5769!===============================
5770            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5771            *traceur(i_lev,i_o)*concentration(i_lev) 
5772            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5773            i_react=i_react+1
5774                i_v=i_v+1
5775!===============================
5776!--- 108 g008: so + ho2 -> so2 + oh
5777!===============================
5778            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5779            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5780            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5781            i_react=i_react+1
5782                i_v=i_v+1
5783!===============================
5784!--- 109 g009: so2 + o + co2 -> so3 + co2
5785!===============================
5786            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5787            *traceur(i_lev,i_o)*concentration(i_lev) 
5788            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5789            i_react=i_react+1
5790                i_v=i_v+1
5791!===============================
5792!--- 110 g010: s + o + co2 -> so + co2
5793!===============================
5794            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5795            *traceur(i_lev,i_o)*concentration(i_lev) 
5796            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5797            i_react=i_react+1
5798                i_v=i_v+1
5799!===============================
5800!--- 111 g011: so3 + h2o -> h2so4
5801!===============================
5802            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
5803            *traceur(i_lev,i_h2o)*concentration(i_lev) 
5804            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5805            i_react=i_react+1
5806                i_v=i_v+1
5807!===============================
5808!--- 112 g012: so + clo -> so2 + cl
5809!===============================
5810            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5811            *traceur(i_lev,i_clo)*concentration(i_lev) 
5812            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5813            i_react=i_react+1
5814                i_v=i_v+1
5815!===============================
5816!--- 113 g013: so + so3 -> so2 + so2
5817!===============================
5818            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
5819            *traceur(i_lev,i_so3)*concentration(i_lev) 
5820            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5821            i_react=i_react+1
5822                i_v=i_v+1
5823!===============================
5824!--- 114 g014: so3 + o -> so2 + o2
5825!===============================
5826            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
5827            *traceur(i_lev,i_o)*concentration(i_lev) 
5828            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5829            i_react=i_react+1
5830                i_v=i_v+1
5831!===============================
5832!--- 115 & 116 g017: clco3 + so -> cl + so2 + co2
5833!===============================
5834!     decomposee en :
5835!     0.5 clco3 + 0.5 so -> cl
5836!     0.5 clco3 + 0.5 so -> so2 + co2
5837            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5838            *traceur(i_lev,i_so)*concentration(i_lev) 
5839            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5840            i_react=i_react+1
5841                i_v=i_v+1
5842           
5843            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
5844            *traceur(i_lev,i_so)*concentration(i_lev) 
5845            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5846            i_react=i_react+1
5847                i_v=i_v+1
5848!===============================
5849!--- 117 g018: s + co + co2 -> ocs + co2
5850!===============================
5851            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5852            *traceur(i_lev,i_co)*concentration(i_lev) 
5853            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5854            i_react=i_react+1
5855                i_v=i_v+1
5856!===============================
5857!--- 118 g019: clco + s -> ocs + cl
5858!===============================
5859            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
5860            *traceur(i_lev,i_s)*concentration(i_lev) 
5861            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5862            i_react=i_react+1
5863                i_v=i_v+1
5864!===============================
5865!--- 119 g020: so2 + oh + co2 -> hso3 + co2
5866!===============================
5867            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
5868            *traceur(i_lev,i_oh)*concentration(i_lev) 
5869            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5870            i_react=i_react+1
5871                i_v=i_v+1
5872!===============================
5873!--- 120 g021: hso3 + o2 -> ho2 + so3
5874!===============================
5875            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
5876            *traceur(i_lev,i_hso3)*concentration(i_lev) 
5877            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5878            i_react=i_react+1
5879                i_v=i_v+1
5880!===============================
5881!--- 121 g024: s2 + o -> so + s
5882!===============================
5883            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev) &
5884            *traceur(i_lev,i_o)*concentration(i_lev) 
5885            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5886            i_react=i_react+1
5887                i_v=i_v+1
5888!===============================
5889!--- 122 g025: s + ocs -> s2 +  co
5890!===============================
5891            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5892            *traceur(i_lev,i_ocs)*concentration(i_lev) 
5893            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5894            i_react=i_react+1
5895                i_v=i_v+1
5896!===============================
5897!--- 123 g026: ocs + o -> so + co
5898!===============================
5899            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
5900            *traceur(i_lev,i_ocs)*concentration(i_lev) 
5901            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5902            i_react=i_react+1
5903                i_v=i_v+1
5904!===============================
5905!--- 124 g027: s + so3 -> so2 +  so
5906!===============================
5907            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5908            *traceur(i_lev,i_so3)*concentration(i_lev) 
5909            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5910            i_react=i_react+1
5911                i_v=i_v+1
5912!===============================
5913!--- 125 g028: s + ho2 -> so +  oh
5914!===============================
5915            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5916            *traceur(i_lev,i_ho2)*concentration(i_lev) 
5917            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5918            i_react=i_react+1
5919                i_v=i_v+1
5920!===============================
5921!--- 126 g029: s + clo -> so +  cl
5922!===============================
5923            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
5924            *traceur(i_lev,i_clo)*concentration(i_lev) 
5925            rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt
5926            i_react=i_react+1
5927                i_v=i_v+1   
5928           END DO       
5929         ELSE
5930!===============================         
5931!        !!!! JOUR !!!!
5932!===============================
5933!       PRINT*,'JOUR'
5934       
5935           DO i_lev=1, n_lev
5936           i_react=1
5937           i_v=1
5938!===============================
5939!    1     o2 + hv     -> o + o
5940!===============================
5941                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
5942                rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5943                i_react=i_react+1
5944                i_v=i_v+1
5945!===============================
5946!    2     o2 + hv     -> o + o(1d)
5947!===============================
5948                rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev)
5949                rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5950                i_react=i_react+1
5951                i_v=i_v+1
5952!===============================
5953!    3     co2 + hv    -> co + o
5954!===============================
5955            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
5956            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5957            i_react=i_react+1
5958                i_v=i_v+1
5959!===============================
5960!    4     co2 + hv    -> co + o(1d)
5961!===============================
5962            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_co2)*concentration(i_lev)
5963            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5964            i_react=i_react+1
5965                i_v=i_v+1
5966!===============================
5967!    5     o3 + hv     -> o2(Dg) + o(1d)
5968!===============================
5969            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
5970            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5971            i_react=i_react+1
5972                i_v=i_v+1
5973!===============================
5974!    6     o3 + hv     -> o2 + o
5975!===============================
5976            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev)
5977            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5978            i_react=i_react+1
5979                i_v=i_v+1
5980!===============================
5981!    7     h2o + hv    -> h + oh
5982!===============================
5983            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o)*concentration(i_lev)
5984            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5985            i_react=i_react+1
5986                i_v=i_v+1
5987!===============================
5988!    8     ho2 + hv    -> oh + o
5989!===============================
5990            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev)
5991            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5992            i_react=i_react+1
5993                i_v=i_v+1
5994!===============================
5995!    9     h2o2 + hv   -> oh + oh
5996!===============================
5997            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2o2)*concentration(i_lev)
5998            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
5999            i_react=i_react+1
6000                i_v=i_v+1
6001!===============================
6002!    10    hcl + hv    -> h + cl
6003!===============================
6004            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev)
6005            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6006            i_react=i_react+1
6007                i_v=i_v+1
6008!===============================
6009!    11    cl2 + hv    -> cl + cl
6010!===============================
6011            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev)
6012            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6013            i_react=i_react+1
6014                i_v=i_v+1
6015!===============================
6016!    12    hocl + hv   -> oh + cl
6017!===============================
6018            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev)
6019            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6020            i_react=i_react+1
6021                i_v=i_v+1
6022!===============================
6023!    13    so2 + hv    -> so + o
6024!===============================
6025            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev)
6026            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6027            i_react=i_react+1
6028                i_v=i_v+1
6029!===============================
6030!    14    so + hv     -> s + o
6031!===============================
6032            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev)
6033            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6034            i_react=i_react+1
6035                i_v=i_v+1
6036!===============================
6037!    15    so3 + hv    -> so2 + o
6038!===============================
6039            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev)
6040            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6041            i_react=i_react+1
6042                i_v=i_v+1
6043!===============================
6044!    16    clo + hv    -> cl + o
6045!===============================
6046            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev)
6047            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6048            i_react=i_react+1
6049                i_v=i_v+1
6050!===============================
6051!    17    ocs + hv    -> co + s
6052!===============================
6053            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_ocs)*concentration(i_lev)
6054            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6055            i_react=i_react+1
6056                i_v=i_v+1
6057!===============================
6058!    18    cocl2 + hv  -> cl + cl + co
6059!===============================
6060            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_cocl2)*concentration(i_lev)
6061            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6062            i_react=i_react+1
6063                i_v=i_v+1
6064!===============================
6065!    19    h2so4 + hv  -> so3 + h2o
6066!===============================
6067            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_h2so4)*concentration(i_lev)
6068            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6069            i_react=i_react+1
6070                i_v=i_v+1
6071!===============================
6072!    20     o(1d) + co2 -> o + co2
6073!===============================
6074            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
6075            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6076            i_react=i_react+1
6077                i_v=i_v+1
6078!===============================
6079!    21    o(1d) + o2 -> o + o2
6080!===============================
6081            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev)
6082            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6083            i_react=i_react+1
6084                i_v=i_v+1
6085!===============================
6086!    22    clco + co2 -> cl + co + co2
6087!===============================
6088            rate_local = vphot(i_lev,22)*traceur(i_lev,i_clco)*concentration(i_lev)
6089            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6090            i_react=i_react+1
6091                i_v=i_v+1
6092!===============================
6093!    23    s2o2 + co2 -> 2so + co2
6094!===============================
6095            rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)
6096            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6097            i_react=i_react+1
6098                i_v=i_v+1
6099!===============================
6100!    24    s2 + co2 -> 2s + co2
6101!===============================
6102            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6103            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6104            i_react=i_react+1
6105                i_v=i_v+1
6106!===============================
6107!    25    ICE
6108!===============================
6109            i_react=i_react+1
6110                i_v=i_v+1
6111!===============================
6112!    26    ICE
6113!===============================
6114            i_react=i_react+1
6115                i_v=i_v+1 
6116!===============================
6117!    27    ICE
6118!===============================
6119            i_react=i_react+1
6120                i_v=i_v+1 
6121!===============================
6122!    28    ICE
6123!===============================
6124            i_react=i_react+1
6125                i_v=i_v+1 
6126!===============================
6127!    29    ICE
6128!===============================
6129            i_react=i_react+1
6130                i_v=i_v+1 
6131!===============================
6132!    30    o2(Dg) + CO2 -> O2 + CO2
6133!===============================
6134            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
6135            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6136            i_react=i_react+1
6137                i_v=i_v+1
6138!===============================
6139!    31    o2(Dg) -> O2 + hv
6140!===============================
6141            rate_local = vphot(i_lev,i_v)*traceur(i_lev,i_o2dg)*concentration(i_lev)
6142            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6143            i_react=i_react+1
6144                i_v=i_v+1
6145               
6146! DEBUT DES REACTION V3
6147                i_v = i_v - nb_phot_max
6148!===============================
6149!--- 32 a002: o + o + co2 -> o2 + co2
6150!===============================
6151            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6152            *traceur(i_lev,i_o)*concentration(i_lev)
6153            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6154            i_react=i_react+1
6155                i_v=i_v+1
6156!===============================
6157!--- 33 c008: ho2 + ho2 -> h2o2 + o2
6158!===============================
6159            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
6160            *traceur(i_lev,i_ho2)*concentration(i_lev)
6161            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6162            i_react=i_react+1
6163                i_v=i_v+1
6164!===============================
6165!--- 34 c013: oh + oh -> h2o + o
6166!===============================
6167            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6168            *traceur(i_lev,i_oh)*concentration(i_lev)
6169            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6170            i_react=i_react+1
6171                i_v=i_v+1
6172!===============================
6173!--- 35 c016: ho2 + ho2 + co2 -> h2o2 + o2 + co2
6174!===============================
6175            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_ho2)*concentration(i_lev) &
6176            *traceur(i_lev,i_ho2)*concentration(i_lev)
6177            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6178            i_react=i_react+1
6179                i_v=i_v+1
6180!===============================
6181!--- 36 c017: oh + oh + co2 -> h2o2 + co2
6182!===============================
6183            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6184            *traceur(i_lev,i_oh)*concentration(i_lev)
6185            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6186            i_react=i_react+1
6187                i_v=i_v+1
6188!===============================
6189!--- 37 c018: h + h + co2 -> h2 + co2
6190!===============================
6191            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6192            *traceur(i_lev,i_h)*concentration(i_lev)
6193            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6194            i_react=i_react+1
6195                i_v=i_v+1
6196!===============================
6197!--- 38 f021: cl + cl + co2 -> cl2 + co2
6198!===============================
6199            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6200            *traceur(i_lev,i_cl)*concentration(i_lev)
6201            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6202            i_react=i_react+1
6203                i_v=i_v+1
6204!===============================
6205!--- 39 f026: clco + clco  -> cocl2 + co
6206!===============================
6207            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6208            *traceur(i_lev,i_clco)*concentration(i_lev)
6209            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6210            i_react=i_react+1
6211                i_v=i_v+1
6212!===============================
6213!--- 40 f030: clso2 + clso2  -> cl2 + so2 + so2
6214!===============================
6215            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
6216            *traceur(i_lev,i_clso2)*concentration(i_lev)
6217            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6218            i_react=i_react+1
6219                i_v=i_v+1
6220!===============================
6221!--- 41 g015: so + so + co2 -> s2o2 + co2
6222!===============================
6223            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6224            *traceur(i_lev,i_so)*concentration(i_lev)
6225            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6226            i_react=i_react+1
6227                i_v=i_v+1
6228!===============================
6229!--- 42 g022: s + s + co2 -> s2 + co2
6230!===============================
6231            rate_local = v3(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6232            *traceur(i_lev,i_s)*concentration(i_lev)
6233            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6234            i_react=i_react+1
6235                i_v=i_v+1
6236
6237! DEBUT DES REACTION V4
6238
6239                i_v = i_v - nb_reaction_3_max
6240
6241!===============================
6242!--- 43 a001: o + o2 + co2 -> o3 + co2
6243!===============================
6244            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6245            *traceur(i_lev,i_o)*concentration(i_lev)
6246            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6247            i_react=i_react+1
6248                i_v=i_v+1
6249!===============================
6250!--- 44 a003: o + o3 -> o2 + o2
6251!===============================
6252            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
6253            *traceur(i_lev,i_o)*concentration(i_lev) 
6254            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6255            i_react=i_react+1
6256                i_v=i_v+1
6257!===============================
6258!--- 45 b002: o(1d) + h2o  -> oh + oh
6259!===============================
6260            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6261            *traceur(i_lev,i_h2o)*concentration(i_lev) 
6262            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6263            i_react=i_react+1
6264                i_v=i_v+1
6265!===============================
6266!--- 46 b003: o(1d) + h2  -> oh + h
6267!===============================
6268            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6269            *traceur(i_lev,i_h2)*concentration(i_lev) 
6270            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6271            i_react=i_react+1
6272                i_v=i_v+1
6273!===============================
6274!--- 47 b005: o(1d) + o3  -> o2 + o2
6275!===============================
6276            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6277            *traceur(i_lev,i_o3)*concentration(i_lev)
6278            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6279            i_react=i_react+1
6280                i_v=i_v+1
6281!===============================
6282!--- 48 b006: o(1d) + o3  -> o2 + o + o
6283!===============================
6284            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o1d)*concentration(i_lev) &
6285            *traceur(i_lev,i_o3)*concentration(i_lev)
6286            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6287            i_react=i_react+1
6288                i_v=i_v+1
6289!===============================
6290!--- 49 c001: o + ho2 -> oh + o2
6291!===============================
6292            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6293            *traceur(i_lev,i_ho2)*concentration(i_lev)
6294            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6295            i_react=i_react+1
6296                i_v=i_v+1
6297!===============================
6298!--- 50 c002: o + oh -> o2 + h
6299!===============================
6300            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6301            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6302            i_react=i_react+1
6303                i_v=i_v+1
6304!===============================
6305!--- 51 c003: h + o3 -> oh + o2
6306!===============================
6307            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6308            *traceur(i_lev,i_o3)*concentration(i_lev)
6309            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6310            i_react=i_react+1
6311                i_v=i_v+1
6312!===============================
6313!--- 52 c004: h + ho2 -> oh + oh
6314!===============================
6315            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6316            *traceur(i_lev,i_ho2)*concentration(i_lev)
6317            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6318            i_react=i_react+1
6319                i_v=i_v+1
6320!===============================
6321!--- 53 c005: h + ho2 -> h2 + o2
6322!===============================
6323            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6324            *traceur(i_lev,i_ho2)*concentration(i_lev)
6325            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6326            i_react=i_react+1
6327                i_v=i_v+1
6328!===============================
6329!--- 54 c006: h + ho2 -> h2o + o
6330!===============================
6331            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_h)*concentration(i_lev) &
6332            *traceur(i_lev,i_ho2)*concentration(i_lev)
6333            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6334            i_react=i_react+1
6335                i_v=i_v+1
6336!===============================
6337!--- 55 c007: oh + ho2 -> h2o + o2
6338!===============================
6339            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6340            *traceur(i_lev,i_ho2)*concentration(i_lev)
6341            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6342            i_react=i_react+1
6343                i_v=i_v+1
6344!===============================
6345!--- 56 c009: oh + h2o2 -> h2o + ho2
6346!===============================
6347            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6348            *traceur(i_lev,i_h2o2)*concentration(i_lev)
6349            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6350            i_react=i_react+1
6351                i_v=i_v+1
6352!===============================
6353!--- 57 c010: oh + h2 -> h2o + h
6354!===============================
6355            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6356            *traceur(i_lev,i_h2)*concentration(i_lev)
6357            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6358            i_react=i_react+1
6359                i_v=i_v+1
6360!===============================
6361!--- 58 c011: h + o2 + co2 -> ho2 + co2
6362!===============================
6363            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6364            *traceur(i_lev,i_h)*concentration(i_lev)
6365            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6366            i_react=i_react+1
6367                i_v=i_v+1
6368!===============================
6369!--- 59 c012: o + h2o2 -> oh + ho2
6370!===============================
6371            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6372            *traceur(i_lev,i_h2o2)*concentration(i_lev)
6373            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6374            i_react=i_react+1
6375                i_v=i_v+1
6376!===============================
6377!--- 60 c014: oh + o3 -> ho2 + o2
6378!===============================
6379            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6380            *traceur(i_lev,i_o3)*concentration(i_lev)
6381            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6382            i_react=i_react+1
6383                i_v=i_v+1
6384!===============================
6385!--- 61 c015: ho2 + o3 -> oh + o2 + o2
6386!===============================
6387            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o3)*concentration(i_lev) &
6388            *traceur(i_lev,i_ho2)*concentration(i_lev)
6389            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6390            i_react=i_react+1
6391                i_v=i_v+1
6392!===============================
6393!--- 62 e001: oh + co -> co2 + h
6394!===============================
6395            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6396            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6397            i_react=i_react+1
6398                i_v=i_v+1
6399!===============================
6400!--- 63 e002: o + co + m -> co2 + m
6401!===============================
6402            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6403            *traceur(i_lev,i_co)*concentration(i_lev)
6404            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6405            i_react=i_react+1
6406                i_v=i_v+1
6407!===============================
6408!--- 64 f001: hcl + o(1d) -> oh + cl
6409!===============================
6410            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6411            *traceur(i_lev,i_o1d)*concentration(i_lev)
6412            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6413            i_react=i_react+1
6414                i_v=i_v+1
6415!===============================
6416!--- 65 f002: hcl + o(1d) -> h + clo
6417!===============================
6418            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6419            *traceur(i_lev,i_o1d)*concentration(i_lev)
6420            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6421            i_react=i_react+1
6422                i_v=i_v+1
6423!===============================
6424!--- 66 f003: hcl + o -> oh + cl
6425!===============================
6426            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6427            *traceur(i_lev,i_o)*concentration(i_lev)
6428            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6429            i_react=i_react+1
6430                i_v=i_v+1
6431!===============================
6432!--- 67 f004: hcl + oh -> h2o + cl
6433!===============================
6434            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6435            *traceur(i_lev,i_oh)*concentration(i_lev)
6436            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6437            i_react=i_react+1
6438                i_v=i_v+1
6439!===============================
6440!--- 68 f005: clo + o -> cl + o2
6441!===============================
6442            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6443            *traceur(i_lev,i_o)*concentration(i_lev)
6444            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6445            i_react=i_react+1
6446                i_v=i_v+1
6447!===============================
6448!--- 69 f006: clo + oh -> cl + ho2
6449!===============================
6450            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6451            *traceur(i_lev,i_oh)*concentration(i_lev)
6452            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6453            i_react=i_react+1
6454                i_v=i_v+1
6455!===============================
6456!--- 70 f007: clo + oh -> hcl + o2
6457!===============================
6458            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6459            *traceur(i_lev,i_oh)*concentration(i_lev)
6460            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6461            i_react=i_react+1
6462                i_v=i_v+1
6463!===============================
6464!--- 71 f008: cl + h2 -> hcl + h
6465!===============================
6466            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6467            *traceur(i_lev,i_h2)*concentration(i_lev)
6468            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6469            i_react=i_react+1
6470                i_v=i_v+1
6471!===============================
6472!--- 72 f009: cl + o3 -> clo + o2
6473!===============================
6474            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6475            *traceur(i_lev,i_o3)*concentration(i_lev)
6476            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6477            i_react=i_react+1
6478                i_v=i_v+1
6479!===============================
6480!--- 73 f010: cl + ho2 -> clo + oh
6481!===============================
6482            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6483            *traceur(i_lev,i_ho2)*concentration(i_lev)
6484            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6485            i_react=i_react+1
6486                i_v=i_v+1
6487!===============================
6488!--- 74 f011: cl + ho2 -> hcl + o2
6489!===============================
6490            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6491            *traceur(i_lev,i_ho2)*concentration(i_lev)
6492            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6493            i_react=i_react+1
6494                i_v=i_v+1
6495!===============================
6496!--- 75 f012: cl + h2o2 -> hcl + ho2
6497!===============================
6498            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6499            *traceur(i_lev,i_h2o2)*concentration(i_lev)
6500            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6501            i_react=i_react+1
6502                i_v=i_v+1
6503!===============================
6504!--- 76 f013: cl + co + co2 -> clco + co2
6505!===============================
6506            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6507            *traceur(i_lev,i_co)*concentration(i_lev)
6508            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6509            i_react=i_react+1
6510                i_v=i_v+1
6511!===============================
6512!--- 77 f015: clco + o2 + m -> clco3 + m
6513!===============================
6514                rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6515            *traceur(i_lev,i_clco)*concentration(i_lev)
6516            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6517            i_react=i_react+1
6518                i_v=i_v+1
6519!===============================
6520!--- 78 & 79 f016: clco3 + cl -> cl + clo + co2
6521!===============================
6522!     decomposee en :
6523!     0.5 clco3 + 0.5 cl -> cl + 0.5 co2
6524!     0.5 clco3 + 0.5 cl -> clo + 0.5 co2
6525            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6526            *traceur(i_lev,i_cl)*concentration(i_lev)
6527            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6528            i_react=i_react+1
6529                i_v=i_v+1
6530           
6531            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6532            *traceur(i_lev,i_cl)*concentration(i_lev)
6533            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6534            i_react=i_react+1
6535                i_v=i_v+1
6536!===============================
6537!--- 80 & 81 f017: clco3 + o -> cl + o2 + co2
6538!===============================
6539!     decomposee en :
6540!     0.5 clco3 + 0.5 o -> cl
6541!     0.5 clco3 + 0.5 o -> o2 + co2
6542            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6543            *traceur(i_lev,i_o)*concentration(i_lev)
6544            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6545            i_react=i_react+1
6546                i_v=i_v+1
6547           
6548            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6549            *traceur(i_lev,i_o)*concentration(i_lev)
6550            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6551            i_react=i_react+1
6552                i_v=i_v+1
6553!===============================
6554!--- 82 f018: clo + ho2  -> hocl + o2
6555!===============================
6556            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clo)*concentration(i_lev) &
6557            *traceur(i_lev,i_ho2)*concentration(i_lev) 
6558            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6559            i_react=i_react+1
6560                i_v=i_v+1
6561!===============================
6562!--- 83 f019: oh + hocl -> h2o + clo
6563!===============================
6564            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_oh)*concentration(i_lev) &
6565            *traceur(i_lev,i_hocl)*concentration(i_lev) 
6566            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6567            i_react=i_react+1
6568                i_v=i_v+1
6569!===============================
6570!--- 84 f020: o + hocl -> oh + clo
6571!===============================
6572            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hocl)*concentration(i_lev) &
6573            *traceur(i_lev,i_o)*concentration(i_lev) 
6574            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6575            i_react=i_react+1
6576                i_v=i_v+1
6577!===============================
6578!--- 85 f022: clco + o -> cl + co2
6579!===============================
6580            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6581            *traceur(i_lev,i_o)*concentration(i_lev) 
6582            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6583            i_react=i_react+1
6584                i_v=i_v+1
6585!===============================
6586!--- 86 f023: cl2 + o(1d) -> cl + clo
6587!===============================
6588            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6589            *traceur(i_lev,i_o1d)*concentration(i_lev) 
6590            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6591            i_react=i_react+1
6592                i_v=i_v+1
6593!===============================
6594!--- 87 f024: cl2 + h  -> hcl + cl
6595!==============================
6596            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6597            *traceur(i_lev,i_h)*concentration(i_lev) 
6598            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6599            i_react=i_react+1
6600                i_v=i_v+1
6601!===============================
6602!--- 88 f025: cl + clco  -> cl2 + co
6603!===============================
6604            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6605            *traceur(i_lev,i_clco)*concentration(i_lev) 
6606            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6607            i_react=i_react+1
6608                i_v=i_v+1
6609!===============================
6610!--- 89 f027: cl + so2 + co2  -> clso2 + co2
6611!===============================
6612            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
6613            *traceur(i_lev,i_cl)*concentration(i_lev) 
6614            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6615            i_react=i_react+1
6616                i_v=i_v+1
6617!===============================
6618!--- 90 f028: clso2 + o  -> so2 + clo
6619!===============================
6620            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
6621            *traceur(i_lev,i_o)*concentration(i_lev) 
6622            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6623            i_react=i_react+1
6624                i_v=i_v+1
6625!===============================
6626!--- 91 f029: clso2 + h  -> so2 + hcl
6627!===============================
6628            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clso2)*concentration(i_lev) &
6629            *traceur(i_lev,i_h)*concentration(i_lev) 
6630            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6631            i_react=i_react+1
6632                i_v=i_v+1
6633!===============================
6634!--- 92 f031: cl + o + co2  -> clo + co2
6635!===============================
6636            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6637            *traceur(i_lev,i_o)*concentration(i_lev) 
6638            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6639            i_react=i_react+1
6640                i_v=i_v+1
6641!===============================
6642!--- 93 f032: cl2 + o -> clo + cl
6643!===============================
6644            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6645            *traceur(i_lev,i_o)*concentration(i_lev) 
6646            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6647            i_react=i_react+1
6648                i_v=i_v+1
6649!===============================
6650!--- 94 f033: clco + oh -> hocl + co
6651!===============================
6652            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6653            *traceur(i_lev,i_oh)*concentration(i_lev) 
6654            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6655            i_react=i_react+1
6656                i_v=i_v+1
6657!===============================
6658!--- 95 f034: cl2 + oh -> cl + hocl
6659!===============================
6660            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6661            *traceur(i_lev,i_oh)*concentration(i_lev) 
6662            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6663            i_react=i_react+1
6664                i_v=i_v+1
6665!===============================
6666!--- 96 f035: clco + o -> co + clo
6667!===============================
6668            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6669            *traceur(i_lev,i_o)*concentration(i_lev) 
6670            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6671            i_react=i_react+1
6672                i_v=i_v+1
6673!===============================
6674!--- 97 f036: clco + cl2 -> cocl2 + cl
6675!===============================
6676            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl2)*concentration(i_lev) &
6677            *traceur(i_lev,i_clco)*concentration(i_lev) 
6678            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6679            i_react=i_react+1
6680                i_v=i_v+1
6681!===============================
6682!--- 98 f037: hcl + h -> h2 + cl
6683!===============================
6684            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_hcl)*concentration(i_lev) &
6685            *traceur(i_lev,i_h)*concentration(i_lev) 
6686            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6687            i_react=i_react+1
6688                i_v=i_v+1
6689!===============================
6690!--- 99 f038: clco + h -> hcl + co
6691!===============================
6692            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev)
6693            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6694            i_react=i_react+1
6695                i_v=i_v+1
6696!===============================
6697!--- 100 f039: cl + h + m -> hcl + m
6698!===============================
6699            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_cl)*concentration(i_lev) &
6700            *traceur(i_lev,i_h)*concentration(i_lev) 
6701            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6702            i_react=i_react+1
6703                i_v=i_v+1
6704!===============================
6705!--- 101 g001: s + o2 -> so + o
6706!===============================
6707            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6708            *traceur(i_lev,i_o2)*concentration(i_lev) 
6709            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6710            i_react=i_react+1
6711                i_v=i_v+1
6712!===============================
6713!--- 102 g002: s + o3 -> so + o2
6714!===============================
6715            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6716            *traceur(i_lev,i_o3)*concentration(i_lev) 
6717            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6718            i_react=i_react+1
6719                i_v=i_v+1
6720!===============================
6721!--- 103 g003: so + o2 -> so2 + o
6722!===============================
6723             rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6724            *traceur(i_lev,i_o2)*concentration(i_lev) 
6725            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6726            i_react=i_react+1
6727                i_v=i_v+1
6728!===============================
6729!--- 104 g004: so + o3 -> so2 + o2
6730!===============================
6731            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6732            *traceur(i_lev,i_o3)*concentration(i_lev) 
6733            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6734            i_react=i_react+1
6735                i_v=i_v+1
6736!===============================
6737!--- 105 g005: so + oh -> so2 + h
6738!===============================
6739            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6740            *traceur(i_lev,i_oh)*concentration(i_lev) 
6741            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6742            i_react=i_react+1
6743                i_v=i_v+1
6744!===============================
6745!--- 106 g006: s + oh -> so + h
6746!===============================
6747            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6748            *traceur(i_lev,i_oh)*concentration(i_lev) 
6749            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6750            i_react=i_react+1
6751                i_v=i_v+1
6752!===============================
6753!--- 107 g007: so + o + co2 -> so2 + co2
6754!===============================
6755            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6756            *traceur(i_lev,i_o)*concentration(i_lev) 
6757            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6758            i_react=i_react+1
6759                i_v=i_v+1
6760!===============================
6761!--- 108 g008: so + ho2 -> so2 + oh
6762!===============================
6763            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6764            *traceur(i_lev,i_ho2)*concentration(i_lev) 
6765            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6766            i_react=i_react+1
6767                i_v=i_v+1
6768!===============================
6769!--- 109 g009: so2 + o + co2 -> so3 + co2
6770!===============================
6771            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
6772            *traceur(i_lev,i_o)*concentration(i_lev) 
6773            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6774            i_react=i_react+1
6775                i_v=i_v+1
6776!===============================
6777!--- 110 g010: s + o + co2 -> so + co2
6778!===============================
6779            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6780            *traceur(i_lev,i_o)*concentration(i_lev) 
6781            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6782            i_react=i_react+1
6783                i_v=i_v+1
6784!===============================
6785!--- 111 g011: so3 + h2o -> h2so4
6786!===============================
6787            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
6788            *traceur(i_lev,i_h2o)*concentration(i_lev) 
6789            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6790            i_react=i_react+1
6791                i_v=i_v+1
6792!===============================
6793!--- 112 g012: so + clo -> so2 + cl
6794!===============================
6795            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6796            *traceur(i_lev,i_clo)*concentration(i_lev) 
6797            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6798            i_react=i_react+1
6799                i_v=i_v+1
6800!===============================
6801!--- 113 g013: so + so3 -> so2 + so2
6802!===============================
6803            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) &
6804            *traceur(i_lev,i_so3)*concentration(i_lev) 
6805            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6806            i_react=i_react+1
6807                i_v=i_v+1
6808!===============================
6809!--- 114 g014: so3 + o -> so2 + o2
6810!===============================
6811            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so3)*concentration(i_lev) &
6812            *traceur(i_lev,i_o)*concentration(i_lev) 
6813            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6814            i_react=i_react+1
6815                i_v=i_v+1
6816!===============================
6817!--- 115 & 116 g017: clco3 + so -> cl + so2 + co2
6818!===============================
6819!     decomposee en :
6820!     0.5 clco3 + 0.5 so -> cl
6821!     0.5 clco3 + 0.5 so -> so2 + co2
6822            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6823            *traceur(i_lev,i_so)*concentration(i_lev) 
6824            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6825            i_react=i_react+1
6826                i_v=i_v+1
6827           
6828            rate_local = v4(i_lev,i_v)*0.25*traceur(i_lev,i_clco3)*concentration(i_lev) &
6829            *traceur(i_lev,i_so)*concentration(i_lev) 
6830            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6831            i_react=i_react+1
6832                i_v=i_v+1
6833!===============================
6834!--- 117 g018: s + co + co2 -> ocs + co2
6835!===============================
6836            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6837            *traceur(i_lev,i_co)*concentration(i_lev) 
6838            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6839            i_react=i_react+1
6840                i_v=i_v+1
6841!===============================
6842!--- 118 g019: clco + s -> ocs + cl
6843!===============================
6844            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_clco)*concentration(i_lev) &
6845            *traceur(i_lev,i_s)*concentration(i_lev) 
6846            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6847            i_react=i_react+1
6848                i_v=i_v+1
6849!===============================
6850!--- 119 g020: so2 + oh + co2 -> hso3 + co2
6851!===============================
6852            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_so2)*concentration(i_lev) &
6853            *traceur(i_lev,i_oh)*concentration(i_lev) 
6854            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6855            i_react=i_react+1
6856                i_v=i_v+1
6857!===============================
6858!--- 120 g021: hso3 + o2 -> ho2 + so3
6859!===============================
6860            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o2)*concentration(i_lev) &
6861            *traceur(i_lev,i_hso3)*concentration(i_lev) 
6862            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6863            i_react=i_react+1
6864                i_v=i_v+1
6865!===============================
6866!--- 121 g024: s2 + o -> so + s
6867!===============================
6868            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s2)*concentration(i_lev) &
6869            *traceur(i_lev,i_o)*concentration(i_lev) 
6870            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6871            i_react=i_react+1
6872                i_v=i_v+1
6873!===============================
6874!--- 122 g025: s + ocs -> s2 +  co
6875!===============================
6876            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6877            *traceur(i_lev,i_ocs)*concentration(i_lev) 
6878            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6879            i_react=i_react+1
6880                i_v=i_v+1
6881!===============================
6882!--- 123 g026: ocs + o -> so + co
6883!===============================
6884            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_o)*concentration(i_lev) &
6885            *traceur(i_lev,i_ocs)*concentration(i_lev) 
6886            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6887            i_react=i_react+1
6888                i_v=i_v+1
6889!===============================
6890!--- 124 g027: s + so3 -> so2 +  so
6891!===============================
6892            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6893            *traceur(i_lev,i_so3)*concentration(i_lev) 
6894            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6895            i_react=i_react+1
6896                i_v=i_v+1
6897!===============================
6898!--- 125 g028: s + ho2 -> so +  oh
6899!===============================
6900            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6901            *traceur(i_lev,i_ho2)*concentration(i_lev) 
6902            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6903            i_react=i_react+1
6904                i_v=i_v+1
6905!===============================
6906!--- 126 g029: s + clo -> so +  cl
6907!===============================
6908            rate_local = v4(i_lev,i_v)*traceur(i_lev,i_s)*concentration(i_lev) &
6909            *traceur(i_lev,i_clo)*concentration(i_lev) 
6910            rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt
6911            i_react=i_react+1
6912                i_v=i_v+1
6913           END DO
6914         END IF
6915         cpt_time_rate = cpt_time_rate + 1
6916     
6917      END IF
6918           
6919      IF (cpt_time .EQ. (time_tot+nbr_pdt)) THEN
6920               OPEN(100,file='profile_rate_day.csv')
6921               DO i_lev=1,n_lev
6922               write (100,"(128(e15.8,','))")pres(i_lev), temperature(i_lev), (rate_day(i_lev,i_react),i_react=1,126)
6923               END DO
6924               
6925               OPEN(101,file='profile_rate_night.csv')
6926               DO i_lev=1,n_lev
6927               write (101,"(128(e15.8,','))") pres(i_lev), temperature(i_lev), (rate_night(i_lev,i_react),i_react=1,126)
6928               END DO
6929               
6930               OPEN(102,file='profile_rate_fullday.csv')
6931               rate_day=(rate_day+rate_night)/2.
6932               DO i_lev=1,n_lev
6933               write (102,"(128(e15.8,','))") pres(i_lev), temperature(i_lev), (rate_day(i_lev,i_react),i_react=1,126)
6934               END DO
6935               
6936               PRINT*,"pression top",pres(n_lev)
6937               PRINT*,"temp top",temperature(n_lev)
6938               
6939      END IF
6940     
6941      cpt_time = cpt_time + 1
6942     
6943      END     
Note: See TracBrowser for help on using the repository browser.