/[lmdze]/trunk/phylmd/Mobidic/o3_chem.f
ViewVC logotype

Diff of /trunk/phylmd/Mobidic/o3_chem.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/libf/phylmd/Mobidic/o3_chem.f90 revision 9 by guez, Mon Mar 31 13:58:05 2008 UTC trunk/phylmd/Mobidic/o3_chem.f revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC
# Line 1  Line 1 
1  module o3_chem_m  module o3_chem_m
2    
   ! This module is clean: no C preprocessor directive, no include line.  
   
3    IMPLICIT none    IMPLICIT none
4    
5    private o3_prod    private o3_prod
# Line 13  contains Line 11  contains
11      ! This procedure evolves the ozone mass fraction through a time      ! This procedure evolves the ozone mass fraction through a time
12      ! step taking only chemistry into account.      ! step taking only chemistry into account.
13    
14      use nrutil, only: assert      ! All the 2-dimensional arrays are on the "physics" grid.
15        ! Their shape is "(/klon, llm/)".
16        ! Index "(i, :)" is for longitude "rlon(i)", latitude "rlat(i)".
17    
18        use nr_util, only: assert, pi
19      use dimphy, only: klon      use dimphy, only: klon
20      use dimens_m, only: llm      use dimens_m, only: llm
21      use regr_pr_comb_coefoz_m, only: c_Mob, a4_mass, a2, r_het_interm      use regr_pr_comb_coefoz_m, only: c_Mob, a4_mass, a2, r_het_interm
22      use orbite_m, only: orbite, zenang      use orbite_m, only: orbite, zenang
     use nrtype, only: pi  
23    
24      integer, intent(in):: julien ! jour julien, 1 <= julien <= 360      integer, intent(in):: julien ! jour julien, 1 <= julien <= 360
25      real, intent(in):: gmtime ! heure de la journée en fraction de jour      real, intent(in):: gmtime ! heure de la journée en fraction de jour
26      real, intent(in):: t_seri(:, :) ! temperature,  in K      real, intent(in):: t_seri(:, :) ! (klon, llm) temperature, in K
27    
28      real, intent(in):: zmasse(:, :)      real, intent(in):: zmasse(:, :) ! (klon, llm)
29      ! (column-density of mass of air in a cell, in kg m-2)      ! (column-density of mass of air in a cell, in kg m-2)
30      ! (On the "physics" grid.      ! "zmasse(:, k)" is for layer "k".)
     ! "zmasse(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", for  
     ! layer "k".)  
31    
32      real, intent(in):: pdtphys ! time step for physics, in s      real, intent(in):: pdtphys ! time step for physics, in s
33    
34      real, intent(inout):: q(:, :) ! mass fraction of ozone      real, intent(inout):: q(:, :) ! (klon, llm) mass fraction of ozone
35      ! (On the "physics" grid.      ! "q(:, k)" is at middle of layer "k".)
     ! "q(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
36    
37      ! Variables local to the procedure:      ! Variables local to the procedure:
38      integer k      integer k
# Line 43  contains Line 40  contains
40      real c(klon, llm)      real c(klon, llm)
41      ! (constant term during a time step in the net mass production      ! (constant term during a time step in the net mass production
42      ! rate of ozone by chemistry, per unit mass of air, in s-1)      ! rate of ozone by chemistry, per unit mass of air, in s-1)
43      ! (On the "physics" grid.      ! "c(:, k)" is at middle of layer "k".)
     ! "c(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
44    
45      real b(klon, llm)      real b(klon, llm)
46      ! (coefficient of "q" in the net mass production      ! (coefficient of "q" in the net mass production
47      ! rate of ozone by chemistry, per unit mass of air, in s-1)      ! rate of ozone by chemistry, per unit mass of air, in s-1)
48      ! (On the "physics" grid.      ! "b(:, k)" is at middle of layer "k".)
     ! "b(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
49    
50      real dq_o3_chem(klon, llm)      real dq_o3_chem(klon, llm)
51      ! (variation of ozone mass fraction due to chemistry during a time step)      ! (variation of ozone mass fraction due to chemistry during a time step)
52      ! (On the "physics" grid.      ! "dq_o3_chem(:, k)" is at middle of layer "k".)
     ! "dq_o3_chem(i, k)" is at longitude "rlon(i)", latitude  
     ! "rlat(i)", middle of layer "k".)  
53    
54      real earth_long      real earth_long
55      ! (longitude vraie de la Terre dans son orbite solaire, par      ! (longitude vraie de la Terre dans son orbite solaire, par
# Line 112  contains Line 103  contains
103    
104      ! This function computes the production rate of ozone by chemistry.      ! This function computes the production rate of ozone by chemistry.
105    
106        ! All the 2-dimensional arrays are on the "physics" grid.
107        ! Their shape is "(/klon, llm/)".
108        ! Index "(i, :)" is for longitude "rlon(i)", latitude "rlat(i)".
109    
110      use regr_pr_comb_coefoz_m, only: a6_mass      use regr_pr_comb_coefoz_m, only: a6_mass
111      use nrutil, only: assert      use nr_util, only: assert
112      use dimens_m, only: llm      use dimens_m, only: llm
113      use dimphy, only: klon      use dimphy, only: klon
114    
115      real, intent(in):: q(:, :) ! mass fraction of ozone      real, intent(in):: q(:, :) ! mass fraction of ozone
116      ! (On the "physics" grid.      ! "q(:, k)" is at middle of layer "k".)
     ! "q(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
117    
118      real, intent(in):: zmasse(:, :)      real, intent(in):: zmasse(:, :)
119      ! (column-density of mass of air in a layer, in kg m-2)      ! (column-density of mass of air in a layer, in kg m-2)
120      ! (On the "physics" grid.      ! ("zmasse(:, k)" is for layer "k".)
     ! "zmasse(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
121    
122      real, intent(in):: c(:, :)      real, intent(in):: c(:, :)
123      ! (constant term during a time step in the net mass production      ! (constant term during a time step in the net mass production
124      ! rate of ozone by chemistry, per unit mass of air, in s-1)      ! rate of ozone by chemistry, per unit mass of air, in s-1)
125      ! (On the "physics" grid.      ! "c(:, k)" is at middle of layer "k".)
     ! "c(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
126    
127      real, intent(in):: b(:, :)      real, intent(in):: b(:, :)
128      ! (coefficient of "q" in the net mass production      ! (coefficient of "q" in the net mass production rate of ozone by
129      ! rate of ozone by chemistry, per unit mass of air, in s-1)      ! chemistry, per unit mass of air, in s-1)
130      ! (On the "physics" grid.      ! ("b(:, k)" is at middle of layer "k".)
     ! "b(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
131    
132      real o3_prod(klon, llm)      real o3_prod(klon, llm)
133      ! (net mass production rate of ozone by chemistry, per unit mass      ! (net mass production rate of ozone by chemistry, per unit mass
134      ! of air, in s-1)      ! of air, in s-1)
135      ! (On the "physics" grid.      ! ("o3_prod(:, k)" is at middle of layer "k".)
     ! "o3_prod(i, k)" is at longitude "rlon(i)", latitude "rlat(i)", middle of  
     ! layer "k".)  
136    
137      ! Variables local to the procedure:      ! Variables local to the procedure:
138    
139      real sigma_mass(klon, llm)      real sigma_mass(klon, llm)
140      ! (mass column-density of ozone above point, in kg m-2)      ! (mass column-density of ozone above point, in kg m-2)
141      ! (On the "physics" grid.      ! ("sigma_mass(:, k)" is at middle of layer "k".)
     ! "sigma_mass(i, k)" is at longitude "rlon(i)", latitude  
     ! "rlat(i)", middle of layer "k".)  
142    
143      integer k      integer k
144    

Legend:
Removed from v.9  
changed lines
  Added in v.82

  ViewVC Help
Powered by ViewVC 1.1.21