source: trunk/LMDZ.TITAN/libf/chimtitan/comp.c @ 3094

Last change on this file since 3094 was 2099, checked in by jvatant, 6 years ago

Fix a problem of interoperability C-Fortran for picky compilers.
Using iso_c_binding could be a smart future improvement to bring.
--JVO

File size: 20.3 KB
Line 
1/* comp: Compounds characteristics. */
2/* GCCM */
3
4#include "titan.h"
5
6void comp_(char CORPS[][10], double *CT, double *TEMP, 
7           double *MASS, double MD[][NLEV])
8{
9   int   i,j;
10
11   double m,ma,epsa,sig,siga,p;
12
13   p         = 2.976e07;   /*9 10^7 R / 8 pi */
14
15      /* WARNING BACKGROUND GAS IS N2 */
16
17   ma   = 28.0134e0;               /* mass of background gas in g */
18   siga = 3.798e0;         /* Lennard-Jones length of background gas 1/10 nm */
19   epsa = 71.4e0;       /* Lennard-Jones energy of background gas */
20
21   for( i = 0; i <= NC-1; i++)
22   {
23      for( j = 0; j <= NLEV-1; j++ ) MD[i][j] = 0.0e0;
24   }
25
26   for( i = 0; i <= NC-1; i++ )
27   {
28      if( strcmp(CORPS[i], "CH4") == 0 )
29      {
30         MASS[i] = 16.04e0;
31         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
32         sig     = 1.0e-16 * pow( ( siga + 3.758e0 ), 2.0e0 );
33         for( j = 0; j <= NLEV-1; j++ )
34            MD[i][j] = sqrt( p * TEMP[j] * m )
35           / ( CT[j] * sig * omega(TEMP[j],epsa,148.6e0) );
36      }
37      if( strcmp(CORPS[i], "H") == 0 )
38      {
39         MASS[i] = 1.01e0;
40      }
41      if( strcmp(CORPS[i], "H2") == 0 )
42      {
43         MASS[i] = 2.0158e0;
44         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
45         sig     = 1.0e-16 * pow( ( siga + 2.827e0 ), 2.0e0 );
46         for( j = 0; j <= NLEV-1; j++ )
47            MD[i][j] = sqrt( p * TEMP[j] * m )
48           / ( CT[j] * sig * omega(TEMP[j],epsa,59.7e0) );
49      }
50      if( strcmp(CORPS[i], "CH") == 0 )
51      {
52         MASS[i] = 13.02e0;
53         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
54         sig     = 1.0e-16 * pow( ( siga + 3.0e0 ), 2.0e0 );
55         for( j = 0; j <= NLEV-1; j++ )
56            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
57      }
58      if( ( strcmp( CORPS[i], "CH2" ) == 0 ) || ( strcmp( CORPS[i], "CH2s" ) == 0 ) )
59      {
60         MASS[i] = 14.03e0;
61         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
62         sig     = 1.0e-16 * pow( ( siga + 3.4e0 ), 2.0e0 );
63         for( j = 0; j <= NLEV-1; j++ )
64            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
65      }
66      if( strcmp(CORPS[i], "CH3") == 0 )
67      {
68         MASS[i] = 15.03e0;
69         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
70         sig     = 1.0e-16 * pow( ( siga + 3.7e0 ), 2.0e0 );
71         for( j = 0; j <= NLEV-1; j++ )
72            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
73      }
74      if( strcmp(CORPS[i], "C") == 0 )
75      {
76         MASS[i] = 12.01e0;
77         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
78         sig     = 1.0e-16 * pow( ( siga + 1.4e0 ), 2.0e0 );
79         for( j = 0; j <= NLEV-1; j++ )
80            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
81      }
82      if( strcmp(CORPS[i], "C2") == 0 )
83      {
84         MASS[i] = 24.02e0;
85         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
86         sig     = 1.0e-16 * pow( ( siga + 3.2e0 ), 2.0e0 );
87         for( j = 0; j <= NLEV-1; j++ )
88            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
89      }
90      if( strcmp(CORPS[i], "C2H") == 0 )
91      {
92         MASS[i] = 25.03e0;
93         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
94         sig     = 1.0e-16 * pow( ( siga + 3.5e0 ), 2.0e0 );
95         for( j = 0; j <= NLEV-1; j++ )
96            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
97      }
98      if( strcmp(CORPS[i], "C2H3") == 0 )
99      {
100         MASS[i] = 27.05e0;
101         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
102         sig     = 1.0e-16 * pow( ( siga + 3.8e0 ), 2.0e0 );
103         for( j = 0; j <= NLEV-1; j++ )
104            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
105      }
106      if( strcmp(CORPS[i], "C2H4") == 0 )
107      {
108         MASS[i] = 28.05e0;
109         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
110         sig     = 1.0e-16 * pow( ( siga + 4.163e0 ), 2.0e0 );
111         for( j = 0; j <= NLEV-1; j++ )
112            MD[i][j] = sqrt( p * TEMP[j] * m )
113           / ( CT[j] * sig * omega(TEMP[j],epsa,224.7e0) );
114      }
115      if( strcmp(CORPS[i], "C2H2") == 0 )
116      {
117         MASS[i] = 26.04e0;
118         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
119         sig     = 1.0e-16 * pow( ( siga + 4.033e0 ), 2.0e0 );
120         for( j = 0; j <= NLEV-1; j++ )
121            MD[i][j] = sqrt( p * TEMP[j] * m )
122           / ( CT[j] * sig * omega(TEMP[j],epsa,231.8e0) );
123      }
124      if( strcmp(CORPS[i], "C2H5") == 0 )
125      {
126         MASS[i] = 29.06e0;
127         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
128         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
129         for( j = 0; j <= NLEV-1; j++ )
130            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
131      }
132      if( strcmp(CORPS[i], "C2H6") == 0 )
133      {
134         MASS[i] = 30.07e0;
135         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
136         sig     = 1.0e-16 * pow( ( siga + 4.443e0 ), 2.0e0 );
137         for( j = 0; j <= NLEV-1; j++ )
138            MD[i][j] = sqrt( p * TEMP[j] * m )
139           / ( CT[j] * sig * omega(TEMP[j],epsa,215.7e0) );
140      }
141      if( strcmp(CORPS[i], "C3H2") == 0 )
142      {
143         MASS[i] = 38.05e0;
144         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
145         sig     = 1.0e-16 * pow( ( siga + 4.6e0 ), 2.0e0 );
146         for( j = 0; j <= NLEV-1; j++ )
147            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
148      }
149      if( strcmp(CORPS[i], "C3H3") == 0 )
150      {
151         MASS[i] = 39.06e0;
152         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
153         sig     = 1.0e-16 * pow( ( siga + 4.7e0 ), 2.0e0 );
154         for( j = 0; j <= NLEV-1; j++ )
155            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
156      }
157      if( ( strcmp(CORPS[i], "CH2CCH2") == 0 ) || ( strcmp(CORPS[i], "CH3CCH") == 0 ) )
158      {
159         MASS[i] = 40.07e0;
160         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
161         sig     = 1.0e-16 * pow( ( siga + 4.761e0 ), 2.0e0 );
162         for( j = 0; j <= NLEV-1; j++ )
163            MD[i][j] = sqrt( p * TEMP[j] * m )
164           / ( CT[j] * sig * omega(TEMP[j],epsa,251.8e0) );
165      }
166      if( strcmp(CORPS[i], "C3H5") == 0 )
167      {
168         MASS[i] = 41.07e0;
169         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
170         sig     = 1.0e-16 * pow( ( siga + 4.78e0 ), 2.0e0 );
171         for( j = 0; j <= NLEV-1; j++ )
172            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
173      }
174      if( strcmp(CORPS[i], "C3H6") == 0 )
175      {
176         MASS[i] = 42.08e0;
177         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
178         sig     = 1.0e-16 * pow( ( siga + 4.807e0 ), 2.0e0 );
179         for( j = 0; j <= NLEV-1; j++ )
180            MD[i][j] = sqrt( p * TEMP[j] * m )
181           / ( CT[j] * sig * omega(TEMP[j],epsa,248.9e0) );
182      }
183      if( strcmp(CORPS[i], "C3H7") == 0 )
184      {
185         MASS[i] = 43.09e0;
186         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
187         sig     = 1.0e-16 * pow( ( siga + 5.0e0 ), 2.0e0 );
188         for( j = 0; j <= NLEV-1; j++ )
189            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
190       }
191      if( strcmp(CORPS[i], "C3H8") == 0 )
192      {
193         MASS[i] = 44.11e0;
194         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
195         sig     = 1.0e-16 * pow( ( siga + 5.118e0 ), 2.0e0 );
196         for( j = 0; j <= NLEV-1; j++ )
197            MD[i][j] = sqrt( p * TEMP[j] * m )
198           / ( CT[j] * sig * omega(TEMP[j],epsa,237.1e0) );
199      }
200      if( strcmp(CORPS[i], "C4H") == 0 )
201      {
202         MASS[i] = 49.05e0;
203         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
204         sig     = 1.0e-16 * pow( ( siga + 4.2e0 ), 2.0e0 );
205         for( j = 0; j <= NLEV-1; j++ )
206            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
207      }
208      if( ( strcmp(CORPS[i], "C4H2") == 0 )||( strcmp(CORPS[i], "C4H2s") == 0 ) )
209      {
210         MASS[i] = 50.06e0;
211         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
212         sig     = 1.0e-16 * pow( ( siga + 4.3e0 ), 2.0e0 );
213         for( j = 0; j <= NLEV-1; j++ )
214            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
215      }
216      if( strcmp(CORPS[i], "C4H3") == 0 )
217      {
218         MASS[i] = 51.07e0;
219         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
220         sig     = 1.0e-16 * pow( ( siga + 4.4e0 ), 2.0e0 );
221         for( j = 0; j <= NLEV-1; j++ )
222            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
223      }
224      if( strcmp(CORPS[i], "C4H4") == 0 )
225      {
226         MASS[i] = 52.08e0;
227         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
228         sig     = 1.0e-16 * pow( ( siga + 4.5e0 ), 2.0e0 );
229         for( j = 0; j <= NLEV-1; j++ )
230            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
231      }
232      if( strcmp(CORPS[i], "C4H5") == 0 )
233      {
234         MASS[i] = 53.07e0;
235         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
236         sig     = 1.0e-16 * pow( ( siga + 4.5e0 ), 2.0e0 );
237         for( j = 0; j <= NLEV-1; j++ )
238            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
239      }
240      if( strcmp(CORPS[i], "C4H6") == 0 )
241      {
242         MASS[i] = 54.09e0;
243         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
244         sig     = 1.0e-16 * pow( ( siga + 4.6e0 ), 2.0e0 );
245         for( j = 0; j <= NLEV-1; j++ )
246            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
247      }
248      if( strcmp(CORPS[i], "C4H10") == 0 )
249      {
250         MASS[i] = 58.13e0;
251         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
252         sig     = 1.0e-16 * pow( ( siga + 4.687e0 ), 2.0e0 );
253         for( j = 0; j <= NLEV-1; j++ )
254            MD[i][j] = sqrt( p * TEMP[j] * m )
255           / ( CT[j] * sig * omega(TEMP[j],epsa,531.4e0) );
256      }
257      if( strcmp(CORPS[i], "C6H") == 0 )
258      {
259         MASS[i] = 73.07e0;
260         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
261         sig     = 1.0e-16 * pow( ( siga + 5.2e0 ), 2.0e0 );
262         for( j = 0; j <= NLEV-1; j++ )
263            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
264      }
265      if( strcmp(CORPS[i], "C6H2") == 0 )
266      {
267         MASS[i] = 74.08e0;
268         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
269         sig     = 1.0e-16 * pow( ( siga + 5.4e0 ), 2.0e0 );
270         for( j = 0; j <= NLEV-1; j++ )
271            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
272      }
273      if( strcmp(CORPS[i], "C8H2") == 0 )
274      {
275         MASS[i] = 98.10e0;
276         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
277         sig     = 1.0e-16 * pow( ( siga + 6.0e0 ), 2.0e0 );
278         for( j = 0; j <= NLEV-1; j++ )
279            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
280      }
281      if( strcmp( CORPS[i], "AC6H6" ) == 0 )
282      {
283         MASS[i] = 78.1136e0;
284         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
285         sig     = 1.0e-16 * pow( ( siga + 5.4e0 ), 2.0e0 );
286         for( j = 0; j <= NLEV-1; j++ )   /* P. G. L. */
287            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
288      }
289      if( ( strcmp( CORPS[i], "C6H5" ) == 0 ) || ( strcmp( CORPS[i], "AC6H5" ) == 0 ) )
290      {
291         MASS[i] = 77.1136e0;
292         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
293         sig     = 1.0e-16 * pow( ( siga + 5.4e0 ), 2.0e0 );
294         for( j = 0; j <= NLEV-1; j++ )
295            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
296      }
297      if( strcmp( CORPS[i], "C6H6" ) == 0 )
298      {
299         MASS[i] = 78.1136e0;
300         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
301         sig     = 1.0e-16 * pow( ( siga + 5.4e0 ), 2.0e0 );
302         for( j = 0; j <= NLEV-1; j++ )
303            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
304      }
305      if( strcmp(CORPS[i], "N2") == 0 )
306      {
307         MASS[i] = 28.0134e0;
308      }
309      if( strcmp(CORPS[i], "N4S") == 0 )
310      {
311         MASS[i] = 14.01e0;
312         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
313         sig     = 1.0e-16 * pow( ( siga + 1.5e0 ), 2.0e0 );
314         for( j = 0; j <= NLEV-1; j++ )
315            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
316      }
317      if( strcmp(CORPS[i], "NH") == 0 )
318      {
319         MASS[i] = 15.01e0;
320         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
321         sig     = 1.0e-16 * pow( ( siga + 3.0e0 ), 2.0e0 );
322         for( j = 0; j <= NLEV-1; j++ )
323            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
324      }
325      if( strcmp(CORPS[i], "CN") == 0 )
326      {
327         MASS[i] = 26.02e0;
328         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
329         sig     = 1.0e-16 * pow( ( siga + 3.2e0 ), 2.0e0 );
330         for( j = 0; j <= NLEV-1; j++ )
331            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
332      }
333      if( strcmp(CORPS[i], "HCN") == 0 )
334      {
335         MASS[i] = 27.04e0;
336         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
337         sig     = 1.0e-16 * pow( ( siga + 3.63e0 ), 2.0e0 );
338         for( j = 0; j <= NLEV-1; j++ )
339            MD[i][j] = sqrt( p * TEMP[j] * m )
340           / ( CT[j] * sig * omega(TEMP[j],epsa,569.1e0) );
341      }
342      if( strcmp(CORPS[i], "H2CN") == 0 )
343      {
344         MASS[i] = 28.05e0;
345         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
346         sig     = 1.0e-16 * pow( ( siga + 3.8e0 ), 2.0e0 );
347         for( j = 0; j <= NLEV-1; j++ )
348            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
349      }
350      if( strcmp(CORPS[i], "C2N") == 0 )         /* C2N */
351      {
352         MASS[i] = 39.05e0;
353         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
354         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
355         for( j = 0; j <= NLEV-1; j++ )
356            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
357      }
358      if( strcmp( CORPS[i], "CHCN" ) == 0 )
359      {
360         MASS[i]   = 39.05e0;
361         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
362         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
363         for( j = 0; j <= NLEV-1; j++ )
364            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
365      }
366      if( strcmp( CORPS[i], "CH2CN" ) == 0 )
367      {
368         MASS[i]   = 40.04e0;
369         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
370         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
371         for( j = 0; j <= NLEV-1; j++ )
372            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
373      }
374      if( strcmp( CORPS[i], "CH3CN" ) == 0 )
375      {
376         MASS[i]   = 41.05e0;
377         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
378         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
379         for( j = 0; j <= NLEV-1; j++ )
380            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
381      }
382      if( strcmp( CORPS[i], "C2H3CN" ) == 0 )
383      {
384         MASS[i]   = 53.06e0;
385         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
386         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
387         for( j = 0; j <= NLEV-1; j++ )
388            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
389      }
390      if( strcmp(CORPS[i], "NCCN") == 0 )        /* NCCN */
391      {
392         MASS[i] = 52.04e0;
393         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
394         sig     = 1.0e-16 * pow( ( siga + 4.361e0 ), 2.0e0 );
395         for( j = 0; j <= NLEV-1; j++ )
396            MD[i][j] = sqrt( p * TEMP[j] * m )
397           / ( CT[j] * sig * omega(TEMP[j],epsa,348.6e0) );
398      }
399      if( strcmp(CORPS[i], "C3N") == 0 )         /* C3N */
400      {
401         MASS[i] = 50.04e0;
402         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
403         sig     = 1.0e-16 * pow( ( siga + 4.4e0 ), 2.0e0 );
404         for( j = 0; j <= NLEV-1; j++ )
405            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
406      }
407      if( strcmp(CORPS[i], "HC3N") == 0 )        /* HC3N */
408      {
409         MASS[i] = 51.05e0;
410         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
411         sig     = 1.0e-16 * pow( ( siga + 4.5e0 ), 2.0e0 );
412         for( j = 0; j <= NLEV-1; j++ )
413            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
414      }
415      if( strcmp( CORPS[i], "C4N2" ) == 0 )
416      {
417         MASS[i]   = 76.1e0;
418         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
419         sig     = 1.0e-16 * pow( ( siga + 4.0e0 ), 2.0e0 );
420         for( j = 0; j <= NLEV-1; j++ )
421            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
422      }
423      if( strcmp(CORPS[i], "H2O") == 0 )       
424      {
425         MASS[i] = 18.02e0;
426         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
427         sig     = 1.0e-16 * pow( ( siga + 2.641e0 ), 2.0e0 );
428         for( j = 0; j <= NLEV-1; j++ )
429            MD[i][j] = sqrt( p * TEMP[j] * m ) 
430           / ( CT[j] * sig * omega(TEMP[j],epsa,809.1e0) );
431      }
432      if( ( strcmp(CORPS[i], "O3P") == 0 ) || ( strcmp(CORPS[i], "O1D") == 0 ) )     
433      {
434         MASS[i] = 16.0e0;
435         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
436         sig     = 1.0e-16 * pow( ( siga + 1.4e0 ), 2.0e0 );
437         for( j = 0; j <= NLEV-1; j++ )
438            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
439      }
440      if( strcmp(CORPS[i], "OH") == 0 )       
441      {
442         MASS[i] = 17.01e0;
443         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
444         sig     = 1.0e-16 * pow( ( siga + 3.0e0 ), 2.0e0 );
445         for( j = 0; j <= NLEV-1; j++ )
446            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
447      }
448      if( strcmp(CORPS[i], "HO2") == 0 )
449      {
450         MASS[i] = 33.01e0;
451         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
452         sig     = 1.0e-16 * pow( ( siga + 3.5e0 ), 2.0e0 );
453         for( j = 0; j <= NLEV-1; j++ )
454            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
455      }
456      if( strcmp(CORPS[i], "H2O2") == 0 )
457      {
458         MASS[i] = 33.01e0;
459         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
460         sig     = 1.0e-16 * pow( ( siga + 3.5e0 ), 2.0e0 );
461         for( j = 0; j <= NLEV-1; j++ )
462            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
463      }
464      if( strcmp(CORPS[i], "O2") == 0 )
465      {
466         MASS[i] = 32.0e0;
467         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
468         sig     = 1.0e-16 * pow( ( siga + 3.7e0 ), 2.0e0 );
469         for( j = 0; j <= NLEV-1; j++ )
470            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
471      }
472      if( strcmp(CORPS[i], "O3") == 0 )
473      {
474         MASS[i] = 32.0e0;
475         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
476         sig     = 1.0e-16 * pow( ( siga + 3.7e0 ), 2.0e0 );
477         for( j = 0; j <= NLEV-1; j++ )
478            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
479      }
480      if( strcmp(CORPS[i], "CO") == 0 )         
481      {
482         MASS[i] = 28.01e0;
483         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
484         sig     = 1.0e-16 * pow( ( siga + 3.69e0 ), 2.0e0 );
485         for( j = 0; j <= NLEV-1; j++ )
486            MD[i][j] = sqrt( p * TEMP[j] * m )
487           / ( CT[j] * sig * omega(TEMP[j],epsa,91.7e0) );
488      }
489      if( strcmp(CORPS[i], "HCO") == 0 )       
490      {
491         MASS[i] = 29.02e0;
492         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
493         sig     = 1.0e-16 * pow( ( siga + 3.7e0 ), 2.0e0 );
494         for( j = 0; j <= NLEV-1; j++ )
495            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
496      }
497      if( strcmp(CORPS[i], "CO2") == 0 )       
498      {
499         MASS[i] = 44.01e0;
500         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
501         sig     = 1.0e-16 * pow( ( siga + 3.941e0 ), 2.0e0 );
502         for( j = 0; j <= NLEV-1; j++ )
503            MD[i][j] = sqrt( p * TEMP[j] * m ) 
504           / ( CT[j] * sig * omega(TEMP[j],epsa,195.2e0) );
505      }
506      if( strcmp(CORPS[i], "CH2CO") == 0 )   
507      {
508         MASS[i] = 42.04e0;
509         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
510         sig     = 1.0e-16 * pow( ( siga + 4.5e0 ), 2.0e0 );
511         for( j = 0; j <= NLEV-1; j++ )
512            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
513      }
514      if( strcmp(CORPS[i], "CH2O") == 0 )   
515      {
516         MASS[i] = 30.03e0;
517         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
518         sig     = 1.0e-16 * pow( ( siga + 3.75e0 ), 2.0e0 );
519         for( j = 0; j <= NLEV-1; j++ )
520            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
521      }
522      if( ( strcmp(CORPS[i], "CH2OH") == 0 ) || ( strcmp(CORPS[i], "CH3O") == 0 ) ) 
523      {
524         MASS[i] = 31.04e0;
525         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
526         sig     = 1.0e-16 * pow( ( siga + 3.4e0 ), 2.0e0 );
527         for( j = 0; j <= NLEV-1; j++ )
528            MD[i][j] = sqrt( p * TEMP[j] * m ) / ( CT[j] * sig );
529      }
530      if( strcmp(CORPS[i], "CH3OH") == 0 )       
531      {
532         MASS[i] = 32.042e0;
533         m       = ( ma + MASS[i] ) / ( ma * MASS[i] );
534         sig     = 1.0e-16 * pow( ( siga + 3.626e0 ), 2.0e0 );
535         for( j = 0; j <= NLEV-1; j++ )
536            MD[i][j] = sqrt( p * TEMP[j] * m )
537           / ( CT[j] * sig * omega(TEMP[j],epsa,481.8e0) );
538      }
539   }
540}
Note: See TracBrowser for help on using the repository browser.