source: trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90 @ 1396

Last change on this file since 1396 was 1305, checked in by slebonnois, 11 years ago

SL: VENUS PHOTOCHEMISTRY. Needs Lapack (see arch files...)

  • Property svn:executable set to *
File size: 8.2 KB
Line 
1MODULE chemparam_mod
2
3!MODULE qui définit les indices des traceurs et leurs masses molaires.
4! utilise aussi pour variables communes nuages/photochimie
5
6IMPLICIT NONE
7
8!---------------------------------------------------------------------------- 
9INTEGER, SAVE :: i_co2, i_co, i_h2, i_h2o, i_o1d,        &
10                 i_o, i_o2, i_o2dg, i_o3, i_h,           &
11                 i_oh, i_ho2, i_h2o2, i_cl, i_clo,       &
12                 i_cl2, i_hcl, i_hocl, i_clco, i_clco3,  &
13                 i_cocl2, i_s, i_so, i_so2, i_so3,       &
14                 i_s2o2, i_ocs, i_hso3, i_h2so4, i_s2,   &
15                 i_clso2, i_oscl, i_h2oliq, i_h2so4liq
16                 
17REAL, DIMENSION(:), SAVE, ALLOCATABLE :: M_tr
18 
19
20!----------------------------------------------------------------------------
21!     number of clouds layer modelized
22!      INTEGER, PARAMETER :: nbr_cloud = 1
23      INTEGER :: i_cloud
24      INTEGER, SAVE :: cloudmax
25      INTEGER, SAVE :: cloudmin
26      REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: R_MEDIAN
27      REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: STDDEV
28      REAL, SAVE :: RMI
29      REAL, SAVE :: RMA
30      REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: NBRTOT
31      REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: WH2SO4
32      REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: rho_droplet
33!----------------------------------------------------------------------------
34
35!----------------------------------------------------------------------------
36  CONTAINS
37!----------------------------------------------------------------------------
38
39  SUBROUTINE cloud_ini(nbr_lon,nbr_lev)
40
41!=============================================================
42!       cloud_ini definit le champ 3D des caracteristiques du nuage
43 
44      INTEGER :: nbr_lon,nbr_lev,i_lev
45   
46      ALLOCATE(NBRTOT(nbr_lon,nbr_lev))
47      ALLOCATE(R_MEDIAN(nbr_lon,nbr_lev))
48      ALLOCATE(STDDEV(nbr_lon,nbr_lev))
49      ALLOCATE(WH2SO4(nbr_lon,nbr_lev))
50      ALLOCATE(rho_droplet(nbr_lon,nbr_lev))
51           
52      PRINT*,'=========================='
53      PRINT*,'Initialisation cloud layer'
54      PRINT*,'=========================='
55      PRINT*,'nbr_lon',nbr_lon
56      PRINT*,'nbr_lev',nbr_lev
57     
58!=============================================================
59!                     Initialisation cloud layer 1
60!=============================================================
61!     cloudmin et cloudmax niveaux du GCM
62      cloudmin= 15
63      cloudmax= 50
64!     radius min et max en microns, *e-6 dans cloud_venus -> SETBIN
65!      RMI=0.001
66!      RMA=100.0
67!      NBRTOT= 0.
68
69!     radius R_MEDIAN en m (donc *e-6 pour microns)
70       
71        R_MEDIAN(:,:)=0.0               ! Geometric Average Radius
72        STDDEV(:,:)=0.0 ! Geometric Std Deviation
73
74!       ===============================================
75!       Knollenberg & Hunten, 1980 and James et al 1997
76!       ===============================================
77
78!     Lower Haze: mode 1
79      DO i_lev=cloudmin,20
80      R_MEDIAN(:,i_lev)=0.2e-6
81      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
82      STDDEV(:,i_lev)=1.56
83      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
84      END DO
85       
86!     Lower Cloud: mode 2
87!      DO i_lev=21,23
88!      R_MEDIAN(:,i_lev)=1.4e-6
89!      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
90!      STDDEV(:,i_lev)=1.23
91!      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
92!      END DO
93
94!     Lower Cloud: mode 3
95      DO i_lev=21,23
96      R_MEDIAN(:,i_lev)=3.65e-6
97      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
98      STDDEV(:,i_lev)=1.28
99      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
100      END DO
101         
102!     Middle Cloud: mode 2 prime
103      DO i_lev=24,28
104      R_MEDIAN(:,i_lev)=1.4e-6
105      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
106      STDDEV(:,i_lev)=1.23
107      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
108      END DO
109   
110!     Middle Cloud: mode 3
111!      DO i_lev=24,28
112!      R_MEDIAN(:,i_lev)=3.65e-6
113!      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
114!      STDDEV(:,i_lev)=1.28
115!      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
116!      END DO
117   
118!     Middle Cloud: mode 4
119!      DO i_lev=24,28
120!      R_MEDIAN(:,i_lev)=7.0e-6
121!      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
122!      STDDEV(:,i_lev)=1.3
123!      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
124!      END DO
125
126!     Upper Cloud: mode 4
127!      DO i_lev=29,35
128!      R_MEDIAN(:,i_lev)=7.0e-6
129!      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
130!      STDDEV(:,i_lev)=1.3
131!      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
132!      END DO
133       
134!     Upper Cloud: mode 3
135!      DO i_lev=29,35
136!      R_MEDIAN(:,i_lev)=3.65e-6
137!      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
138!      STDDEV(:,i_lev)=1.28
139!      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
140!      END DO
141           
142!     Upper Cloud: mode 2
143      DO i_lev=29,35
144      R_MEDIAN(:,i_lev)=1.0e-6
145      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
146      STDDEV(:,i_lev)=1.29
147      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
148      END DO
149
150!     Upper Haze: mode 1
151      DO i_lev=36, cloudmax
152      R_MEDIAN(:,i_lev)=0.2e-6
153      PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev)
154      STDDEV(:,i_lev)=2.16
155      PRINT*,'level',i_lev,'Dev Std',STDDEV(1,i_lev)
156      END DO
157       
158!=============================================================
159
160      PRINT*,'==============================='
161      PRINT*,'FIN Initialisation cloud layer'
162      PRINT*,'==============================='
163     
164        END SUBROUTINE
165 
166  SUBROUTINE chemparam_ini
167  USE infotrac
168  IMPLICIT NONE
169  INTEGER :: i
170 
171  ALLOCATE(M_tr(nqtot))
172 
173  DO i=1, nqtot                                 
174       
175        PRINT*,'i',i
176        PRINT*,'tname(i)',tname(i)
177       
178        SELECT CASE(tname(i))
179                CASE('co2')
180                i_co2=i
181                PRINT*,'co2',i_co2
182                M_tr(i_co2) = 44.0095 
183                CASE('co')
184                i_co=i
185                PRINT*,'co',i_co
186                M_tr(i_co)=28.0101
187                CASE('h2')
188                i_h2=i
189                PRINT*,'h2',i_h2
190                M_tr(i_h2)= 18.0153
191                CASE('h2o')
192                i_h2o=i
193                PRINT*,'h2o',i_h2o
194                M_tr(i_h2o)=18.0153
195                CASE('o1d')
196                i_o1d=i
197                PRINT*,'o1d',i_o1d
198                M_tr(i_o1d)=15.994
199                CASE('o')
200                i_o=i
201                PRINT*,'o',i_o
202                M_tr(i_o)=15.994
203                CASE('o2')
204                i_o2=i
205                PRINT*,'o2',i_o2
206                M_tr(i_o2)=31.9988
207                CASE('o2dg')
208                i_o2dg=i
209                PRINT*,'o2dg',i_o2dg
210                M_tr(i_o2dg)=31.9988
211                CASE('o3')
212                i_o3=i
213                PRINT*,'o3',i_o3
214                M_tr(i_o3)= 47.9982
215                CASE('h')
216                i_h=i
217                PRINT*,'h',i_h
218                M_tr(i_h)= 1.00794
219                CASE('oh')
220                i_oh=i
221                PRINT*,'oh',i_oh
222                M_tr(i_oh)=17.0073
223                CASE('ho2')
224                i_ho2=i
225                PRINT*,'ho2',i_ho2
226                M_tr(i_ho2)=33.0067
227                CASE('h2o2')
228                i_h2o2=i
229                PRINT*,'h2o2',i_h2o2
230                M_tr(i_h2o2)=34.0147
231                CASE('cl')
232                i_cl=i
233                PRINT*,'cl',i_cl
234                M_tr(i_cl)=35.453
235                CASE('clo')
236                i_clo=i
237                PRINT*,'clo',i_clo
238                M_tr(i_clo)=51.452
239                CASE('cl2')
240                i_cl2=i
241                PRINT*,'cl2',i_cl2
242                M_tr(i_cl2)=70.906
243                CASE('hcl')
244                i_hcl=i
245                PRINT*,'hcl',i_hcl
246                M_tr(i_hcl)=36.461
247                CASE('hocl')
248                i_hocl=i
249                PRINT*,'hocl',i_hocl
250                M_tr(i_hocl)=52.46
251                CASE('clco')
252                i_clco=i
253                PRINT*,'clco',i_clco
254                M_tr(i_clco)=63.463
255                CASE('clco3')
256                i_clco3=i
257                PRINT*,'clco3',i_clco3
258                M_tr(i_clco3)=95.462
259                CASE('cocl2')
260                i_cocl2=i
261                PRINT*,'cocl2',i_cocl2
262                M_tr(i_cocl2)=98.916
263                CASE('s')
264                i_s=i
265                PRINT*,'s',i_s
266                M_tr(i_s)=32.065
267                CASE('so')
268                i_so=i
269                PRINT*,'so',i_so
270                M_tr(i_so)=48.0644
271                CASE('so2')
272                i_so2=i
273                PRINT*,'so2',i_so2
274                M_tr(i_so2)=64.064
275                CASE('so3')
276                i_so3=i
277                PRINT*,'so3',i_so3
278                M_tr(i_so3)=80.063
279                CASE('s2o2')
280                i_s2o2=i
281                PRINT*,'s2o2',i_s2o2
282                M_tr(i_s2o2)= 96.1288
283                CASE('ocs')
284                i_ocs=i
285                PRINT*,'ocs',i_ocs
286                M_tr(i_ocs)=60.0751
287                CASE('hso3')
288                i_hso3=i
289                PRINT*,'hso3',i_hso3
290                M_tr(i_hso3)=81.071
291                CASE('h2so4')
292                i_h2so4=i
293                PRINT*,'h2so4',i_h2so4
294                M_tr(i_h2so4)=98.078
295                CASE('s2')
296                i_s2=i
297                PRINT*,'s2',i_s2
298                M_tr(i_s2)=64.13
299                CASE('clso2')
300                i_clso2=i
301                PRINT*,'clso2',i_clso2
302                M_tr(i_clso2)=99.517
303                CASE('oscl')
304                i_oscl=i
305                PRINT*,'oscl',i_oscl
306                M_tr(i_oscl)=83.517
307                CASE('h2oliq')
308                i_h2oliq=i
309                PRINT*,'h2oliq',i_h2oliq
310                M_tr(i_h2oliq)=18.0153
311                CASE('h2so4liq')
312                i_h2so4liq=i
313                PRINT*,'h2so4liq',i_h2so4liq
314                M_tr(i_h2so4liq)=98.078
315        END SELECT
316       
317!       PRINT*,'M_tr(i)',M_tr(i)
318  END DO
319 
320  END SUBROUTINE chemparam_ini
321 
322END MODULE chemparam_mod
323
Note: See TracBrowser for help on using the repository browser.