1 | /* disso: photodissociation rates */ |
---|
2 | /* GCCM */ |
---|
3 | /* correspond a chimie_simpnit (version 301105) */ |
---|
4 | /* !!! ATTENTION !!! */ |
---|
5 | /* Doit etre mis a jour en fonction de la chimie utilisee ! */ |
---|
6 | |
---|
7 | #include "titan.h" |
---|
8 | |
---|
9 | void disso_( double KRPD[][15][NLRT][RDISS+1], int *NLAT ) |
---|
10 | { |
---|
11 | static double sCH4[62] = { |
---|
12 | 2.852e-19,7.816e-19,1.534e-18,2.069e-18,2.795e-18,4.088e-18,4.543e-18, |
---|
13 | 4.223e-18,3.314e-18,1.565e-18,8.892e-19,8.760e-19,8.792e-19,9.163e-19, |
---|
14 | 2.069e-18,9.378e-18,2.543e-17,3.785e-17,4.066e-17,3.302e-17,2.840e-17, |
---|
15 | 1.800e-17,1.920e-17,1.820e-17,1.840e-17,1.140e-17,2.656e-18,1.256e-19, |
---|
16 | 7.988e-22,1.366e-23,6.740e-24 }; |
---|
17 | static double sCH3[62] = { /* Absorb really little so we can touch this without recomputing flux */ |
---|
18 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
19 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
20 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
21 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
22 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
23 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,5.000e-18,1.000e-17,5.000e-18, |
---|
24 | 3.700e-17,5.000e-18, |
---|
25 | }; |
---|
26 | static double sCH3CN[62] = { |
---|
27 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
28 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
29 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,8.000e-17,8.000e-17,7.500e-17, |
---|
30 | 4.800e-17,3.700e-17,2.700e-17,4.100e-17,1.000e-17,8.600e-18,4.000e-18, |
---|
31 | 1.800e-18,1.100e-18,6.400e-19,3.600e-19,2.000e-19,1.200e-19,5.200e-20}; |
---|
32 | static double sC2H2[62] = { |
---|
33 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
34 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
35 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,3.000e-17, |
---|
36 | 3.000e-17,3.200e-17,3.640e-17,4.260e-17,1.040e-16,9.900e-18,4.800e-18, |
---|
37 | 1.720e-17,1.782e-17,9.040e-19,9.600e-19,1.294e-18,1.352e-18,1.130e-18, |
---|
38 | 6.680e-19,3.700e-19,3.900e-19,1.660e-19,5.400e-20 }; |
---|
39 | static double sC2H4[62] = { |
---|
40 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
41 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
42 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
43 | 0.000e+00,.1992E-16,.2734E-16,.2594E-16,.1690E-16,.2258E-16,.8507E-17, |
---|
44 | .1583E-16,.2227E-16,.3056E-16,.3743E-16,.3788E-16,.2737E-16,.3171E-17, |
---|
45 | .6033E-18,.1223E-18,.7247E-19,1.000e-20 }; |
---|
46 | static double sC2H3CN[62] = { |
---|
47 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
48 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
49 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e-00,0.000e-00,0.000e-00, |
---|
50 | 0.000e-00,0.000e-00,1.000e-17,6.600e-18,5.600e-18,3.600e-18,4.300e-18, |
---|
51 | 4.000e-18,3.000e-18,2.900e-18,2.700e-18,2.700e-18,3.300e-18,4.500e-18, |
---|
52 | 6.000e-18,7.100e-18,7.000e-18,5.000e-18,2.500e-18,6.600e-19,1.000e-19, |
---|
53 | 1.500e-20,1.000e-21}; |
---|
54 | static double sC2H6[62] = { |
---|
55 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
56 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
57 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,2.000e-17, |
---|
58 | 2.000e-17,2.000e-17,2.060e-17,2.160e-17,1.540e-17,8.060e-18,3.860e-18, |
---|
59 | 1.484e-18,3.060e-19,9.600e-21 }; |
---|
60 | static double sCH3C2H[62] = { |
---|
61 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
62 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
63 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,1.000e-17, |
---|
64 | 2.000e-17,4.580e-17,6.240e-17,5.880e-17,5.920e-17,1.940e-17,2.200e-17, |
---|
65 | 2.820e-17,3.380e-17,1.142e-17,6.600e-18,8.100e-18,7.000e-18,2.800e-18, |
---|
66 | 1.600e-18,2.300e-19,4.411e-19,2.119e-19,1.004e-19,2.934e-20,4.157e-21 }; |
---|
67 | static double sCH2CCH2[62] = { |
---|
68 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
69 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
70 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
71 | 0.000e+00,0.000e+00,2.200e-17,2.200e-17,1.700e-17,1.700e-17,1.800e-17, |
---|
72 | 1.200e-17,1.500e-17,1.000e-17,2.100e-17,3.300e-17,4.000e-17,1.300e-17, |
---|
73 | 5.000e-18,2.900e-18,2.601e-18,1.037e-18,9.046e-19,6.565e-19,4.672e-19, |
---|
74 | 3.047e-19,1.579e-19,5.943e-20,2.261e-20 }; |
---|
75 | static double sC3H3[62] = { /* Absorb really little so we can touch this without recomputing flux */ |
---|
76 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
77 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
78 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
79 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
80 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
81 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
82 | 0.000e+00,0.000e+00,0.000e+00,6.000e-18,1.000e-17,9.700e-18,5.000e-18, |
---|
83 | 2.500e-18,1.800e-18,1.100e-18,8.000e-19,6.000e-19,5.000e-19,3.200e-19, |
---|
84 | 2.500e-19,1.800e-19,1.100e-19,5.000e-19,2.000e-18 }; |
---|
85 | static double sC3H6[62] = { |
---|
86 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
87 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
88 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,3.400e-17, |
---|
89 | 3.300e-17,2.400e-17,2.500e-17,4.000e-17,3.700e-17,2.300e-17,1.900e-17, |
---|
90 | 2.000e-17,1.500e-17,2.200e-17,2.500e-17,4.400e-17,4.200e-17,2.700e-17, |
---|
91 | 1.200e-17,5.800e-18,1.400e-19,9.100e-21 }; |
---|
92 | static double sC3H8[62] = { |
---|
93 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
94 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
95 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,4.000e-17,4.000e-17,4.000e-17, |
---|
96 | 4.000e-17,4.000e-17,3.280e-17,3.100e-17,2.680e-17,2.200e-17,1.760e-17, |
---|
97 | 6.440e-18,3.000e-18,9.140e-19,7.000e-20 }; |
---|
98 | static double sC4H2[62] = { |
---|
99 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
100 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
101 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
102 | 0.000e+00,0.000e+00,2.500e-17,6.100e-17,4.780e-17,5.780e-17,1.014e-16, |
---|
103 | 5.200e-17,4.200e-17,1.030e-16,1.770e-16,9.100e-17,1.290e-17,2.380e-18, |
---|
104 | 3.400e-19,2.800e-19,2.600e-19,1.513e-19,2.583e-19,3.353e-19,4.115e-19, |
---|
105 | 4.755e-19,4.990e-19,4.399e-19,5.358e-19,2.485e-19,3.931e-19,1.067e-19, |
---|
106 | 3.761e-20,2.370e-20,2.277e-20 }; |
---|
107 | static double sC4H4[62] = { |
---|
108 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
109 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
110 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
111 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
112 | 0.000e+00,0.000e+00,0.000e+00,4.200e-17,5.000e-17,2.000e-17,6.700e-18, |
---|
113 | 6.100e-18,8.000e-18,1.000e-17,1.400e-17,1.900e-17,2.200e-17,2.600e-17, |
---|
114 | 1.600e-17,1.600e-17,4.000e-18,5.700e-19,1.400e-19 }; |
---|
115 | static double sC4H6[62] = { |
---|
116 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
117 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
118 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
119 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
120 | 0.000e+00,0.000e+00,0.000e+00,6.000e-18,1.200e-17,1.500e-17,1.300e-17, |
---|
121 | 1.800e-17,3.100e-17,3.800e-17,6.600e-17,9.600e-17,1.060e-16,8.500e-17, |
---|
122 | 6.700e-17,1.100e-17,1.700e-18,3.300e-19,6.500e-20 }; |
---|
123 | static double sC4H10[62] = { |
---|
124 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
125 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
126 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,6.000e-17,6.000e-17,6.000e-17, |
---|
127 | 6.000e-17,6.000e-17,5.500e-17,4.400e-17,4.400e-17,3.800e-17,3.100e-17, |
---|
128 | 1.900e-17,4.000e-18,1.300e-18,3.200e-19,2.000e-20 }; |
---|
129 | static double sC6H6[62] = { |
---|
130 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
131 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
132 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,7.000e-17, |
---|
133 | 8.000e-17,5.000e-17,3.500e-17,3.500e-17,3.500e-17,2.000e-17,1.500e-17, |
---|
134 | 1.500e-17,1.500e-17,2.000e-17,2.500e-17,4.000e-17,9.500e-17,2.200e-16, |
---|
135 | 1.000e-16,2.000e-17,2.000e-17,2.000e-17,2.000e-17,5.000e-18,1.000e-20, |
---|
136 | 1.000e-20,1.000e-20,1.000e-20,1.000e-20,1.000e-19,2.000e-19,2.500e-19, |
---|
137 | 4.000e-19,2.000e-19,2.000e-19,1.000e-19 }; |
---|
138 | static double sN2[62] = { |
---|
139 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
140 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,4.898e-18,1.097e-17, |
---|
141 | 2.192e-17,2.214e-17,2.336e-17,1.679e-17,1.893e-17 }; |
---|
142 | static double sHCN[62] = { |
---|
143 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
144 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
145 | 0.000e+00,0.000e+00,0.000e+00,2.800e-17,3.300e-17,2.800e-17,3.500e-17, |
---|
146 | 4.800e-17,2.800e-17,1.700e-17,3.600e-18,2.500e-18,4.700e-18,2.700e-18, |
---|
147 | 8.600e-19,4.400e-19,2.000e-19,1.429e-19,1.145e-19,7.482e-20,3.852e-20, |
---|
148 | 1.009e-20 }; |
---|
149 | static double sHC3N[62] = { |
---|
150 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
151 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
152 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,3.402e-17, |
---|
153 | 3.647e-17,4.317e-17,3.759e-17,7.927e-17,3.796e-17,9.565e-17,1.716e-16, |
---|
154 | 1.247e-16,2.360e-17,8.411e-18,4.400e-18,8.600e-19,7.400e-19,6.200e-19, |
---|
155 | 4.899e-19,3.307e-19,2.128e-19,2.561e-19,2.621e-19,2.737e-19,3.601e-19, |
---|
156 | 1.564e-19,1.816e-19,8.427e-20 }; |
---|
157 | static double sC2N2[62] = { |
---|
158 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
159 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
160 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,2.635e-17, |
---|
161 | 3.126e-17,4.392e-17,9.788e-17,1.682e-16,1.064e-16,6.513e-18,2.039e-18, |
---|
162 | 2.828e-18,5.136e-18,8.188e-18,8.857e-18,1.489e-18,9.000e-20,6.200e-20, |
---|
163 | 3.800e-20,4.483e-20,8.618e-20,1.008e-19,7.579e-20,6.666e-20,2.907e-20, |
---|
164 | 2.476e-20,1.142e-20 }; |
---|
165 | static double sH2O[62] = { |
---|
166 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
167 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
168 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,1.927e-17,9.633e-18,7.440e-18, |
---|
169 | 1.087e-18,8.600e-18,8.850e-18,7.300e-18,4.100e-18,1.240e-18,5.600e-19, |
---|
170 | 7.977e-19,1.888e-18,3.333e-18,4.729e-18,4.963e-18,3.513e-18,1.440e-18, |
---|
171 | 1.563e-19 }; |
---|
172 | static double sCO[62] = { |
---|
173 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
174 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
175 | 0.000e+00,0.000e+00,7.300e-17,2.050e-16,9.000e-17,7.180e-18,3.700e-17}; |
---|
176 | static double sCO2[62] = { |
---|
177 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
178 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
179 | 0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00,0.000e+00, |
---|
180 | 0.000e+00,1.022e-19,1.070e-19,4.220e-19,8.220e-19,6.640e-19,5.650e-19, |
---|
181 | 5.850e-19,4.400e-19,2.100e-19,8.700e-20,4.000e-20,2.130e-20,3.700e-21, |
---|
182 | 6.930e-22,4.040e-22,2.470e-23,4.800e-24,9.500e-25 }; |
---|
183 | static double sol[62] = { |
---|
184 | 9.45e+08,2.84e+08,4.24e+09,3.11e+09,1.22e+10,6.83e+09,2.54e+09,8.20e+08, |
---|
185 | 1.82e+09,1.30e+09,1.05e+09,1.37e+09,3.87e+08,4.29e+08,2.45e+09,4.09e+09, |
---|
186 | 1.06e+10,1.03e+10,4.08e+09,2.98e+10,7.00e+09,1.94e+09,7.40e+09,4.12e+11, |
---|
187 | 1.36e+10,4.92e+10,3.04e+10,3.81e+10,5.49e+10,1.00e+11,1.26e+11,1.67e+11, |
---|
188 | 2.97e+11,4.92e+11,7.17e+11,9.43e+11,1.34e+12,1.96e+12,2.96e+12,4.34e+12, |
---|
189 | 7.25e+12,1.76e+13,2.21e+13,3.10e+13,2.80e+13,2.97e+13,3.03e+13,3.77e+13, |
---|
190 | 3.44e+13,3.42e+13,7.08e+13,9.58e+13,1.63e+14,1.38e+14,1.26e+14,1.60e+14, |
---|
191 | 2.23e+14,3.70e+14,3.31e+14,3.26e+14,3.59e+14,4.05e+14}; |
---|
192 | |
---|
193 | int i,j,l,s,lat,x; |
---|
194 | double f,**flux; |
---|
195 | double flact; |
---|
196 | char name[60],dir[27]; |
---|
197 | FILE *fp,*out; |
---|
198 | |
---|
199 | flux = dm2d(0,NLRT,0,14); |
---|
200 | |
---|
201 | /* lecture des flux actiniques: |
---|
202 | - suppose que l'executable est dans $LMDGCM/RUN/xxx/ |
---|
203 | - et les moyennes dans $LMDGCM/datagcm/PHOT(NLAT)/Moy_(lat:1 a NLAT) |
---|
204 | */ |
---|
205 | strcpy( dir, "../../datagcm/PHOT" ); |
---|
206 | if( (*NLAT) < 10 ) |
---|
207 | { |
---|
208 | strcat( dir, "0" ); |
---|
209 | strcat( dir, (const char *)ecvt((float)(*NLAT),1,&x,&x) ); |
---|
210 | } |
---|
211 | else |
---|
212 | strcat( dir, (const char *)ecvt((float)(*NLAT),2,&x,&x) ); |
---|
213 | strcat( dir, "x/Moy_" ); |
---|
214 | printf( "Directories for actinic fluxes: %s \n", dir ); |
---|
215 | |
---|
216 | for( lat = 0; lat <= (*NLAT)-1; lat++ ) /* Old array is set equal to 0. */ |
---|
217 | for( s = 0; s <= 14; s++ ) |
---|
218 | for( j = 0; j <= NLRT-1; j++ ) |
---|
219 | for( i = 0; i <= RDISS; i++ ) |
---|
220 | KRPD[lat][s][j][i] = 0.0e0; |
---|
221 | |
---|
222 | for( i = 0; i <= 13; i++ ) sCH4[i] = 0.0e0; |
---|
223 | for( i = 0; i <= 13; i++ ) sC2H2[i] = 0.0e0; |
---|
224 | for( i = 0; i <= 16; i++ ) sC2H4[i] = 0.0e0; |
---|
225 | for( i = 0; i <= 16; i++ ) sC2H6[i] = 0.0e0; |
---|
226 | |
---|
227 | for( lat = 0; lat <= (*NLAT)-1; lat++ ) /* Main loop on latitude */ |
---|
228 | for( i = 10; i <= 310; i += 5 ) /* Main loop on wavelength. */ |
---|
229 | { |
---|
230 | strcpy( name, dir ); |
---|
231 | if( (lat+1) < 10 ) |
---|
232 | { |
---|
233 | strcat( name, "0" ); |
---|
234 | strcat( name, (const char *)ecvt((float)(lat+1),1,&x,&x) ); |
---|
235 | } |
---|
236 | else |
---|
237 | strcat( name, (const char *)ecvt((float)(lat+1),2,&x,&x) ); |
---|
238 | if( i < 160 ) strcat( name, "/photmoy3a" ); |
---|
239 | else strcat( name, "/photmoy3a" ); |
---|
240 | if( i < 100 ) |
---|
241 | { |
---|
242 | strcat( name, ".0" ); |
---|
243 | strcat( name, (const char *)ecvt((float)i,2,&x,&x) ); |
---|
244 | } |
---|
245 | else |
---|
246 | { |
---|
247 | strcat( name, "." ); |
---|
248 | strcat( name, (const char *)ecvt((float)i,3,&x,&x) ); |
---|
249 | } |
---|
250 | if( !( fp = fopen( name, "r" ) ) ) |
---|
251 | { |
---|
252 | out = fopen( "err.log", "a" ); |
---|
253 | fprintf( out, "I cannot open %s\n", name ); |
---|
254 | fclose( out ); |
---|
255 | exit(0); |
---|
256 | } |
---|
257 | for( j = 0; j <= NLRT-1; j++ ) |
---|
258 | { |
---|
259 | fscanf( fp,"%d ",&l ); |
---|
260 | for( s = 0; s < 15; s++ ) |
---|
261 | { |
---|
262 | fscanf( fp,"%lg ", &flact ); |
---|
263 | flux[j][s] = flact; |
---|
264 | } |
---|
265 | } |
---|
266 | fclose(fp); |
---|
267 | |
---|
268 | l = i / 5 - 2; /* Pointer on wavelength. */ |
---|
269 | |
---|
270 | /* taux de photodissociations */ |
---|
271 | /* JVO 19 - The photodissociation branching ratio below have been updated so make sure you use chimie_2019_43spc_vuitton file as input in titan.h */ |
---|
272 | for( s = 0; s <= 14; s++ ) |
---|
273 | for( j = 0; j <= NLRT-1; j++ ) |
---|
274 | { |
---|
275 | f = flux[j][s] * sol[l] / ( 9.5e0 * 9.5e0 ); /* !! # de reac de 0 a RDISS-1 !! */ |
---|
276 | |
---|
277 | /* Radicals*/ |
---|
278 | if( (i > 200) && (i <= 240) ) |
---|
279 | { |
---|
280 | KRPD[lat][s][j][0] += sCH3[l] * f; /* CH3 -> 1CH2 + H */ |
---|
281 | } |
---|
282 | |
---|
283 | if( (i > 230) && (i <= 300) ) |
---|
284 | { |
---|
285 | KRPD[lat][s][j][13] += sC3H3[l] * f * 0.97; /* C3H3 -> C3H2 + H */ |
---|
286 | } |
---|
287 | |
---|
288 | /* Compounds */ |
---|
289 | |
---|
290 | if( i != 125 ) /* Not Lyman alpha */ |
---|
291 | { |
---|
292 | if ( i < 125 ) |
---|
293 | { |
---|
294 | KRPD[lat][s][j][ 1] += sCH4[l] * f * 0.17; /* CH4 -> 1CH2 + H2 */ |
---|
295 | KRPD[lat][s][j][ 2] += sCH4[l] * f * 0.48; /* CH4 -> 3CH2 + H + H */ |
---|
296 | KRPD[lat][s][j][ 3] += sCH4[l] * f * 0.09; /* CH4 -> CH + H2 + H */ |
---|
297 | KRPD[lat][s][j][ 4] += sCH4[l] * f * 0.26; /* CH4 -> CH3 + H */ |
---|
298 | } |
---|
299 | else |
---|
300 | { |
---|
301 | KRPD[lat][s][j][ 1] += sCH4[l] * f * 0.50; /* CH4 -> 1CH2 + H2 */ |
---|
302 | KRPD[lat][s][j][ 4] += sCH4[l] * f * 0.50; /* CH4 -> CH3 + H */ |
---|
303 | } |
---|
304 | } |
---|
305 | else /* Lyman alpha */ |
---|
306 | { |
---|
307 | KRPD[lat][s][j][ 1] += sCH4[l] * f * 0.48; /* CH4 -> 1CH2 + H2 */ |
---|
308 | KRPD[lat][s][j][ 2] += sCH4[l] * f * 0.03; /* CH4 -> 3CH2 + H + H */ |
---|
309 | KRPD[lat][s][j][ 3] += sCH4[l] * f * 0.07; /* CH4 -> CH + H2 + H */ |
---|
310 | KRPD[lat][s][j][ 4] += sCH4[l] * f * 0.42; /* CH4 -> CH3 + H */ |
---|
311 | } |
---|
312 | |
---|
313 | if( i > 110 ) |
---|
314 | { |
---|
315 | KRPD[lat][s][j][ 5] += sC2H2[l] * f ; /* C2H2 -> C2H + H */ |
---|
316 | } |
---|
317 | if( i > 120 ) |
---|
318 | { |
---|
319 | KRPD[lat][s][j][ 6] += sC2H4[l] * f * 0.50; /* C2H4 -> C2H2 + H2 */ |
---|
320 | KRPD[lat][s][j][ 7] += sC2H4[l] * f * 0.50; /* C2H4 -> C2H2 + H + H */ |
---|
321 | KRPD[lat][s][j][17] += sCH3C2H[l] * f * 0.89; /* CH3CCH -> C3H3 + H */ |
---|
322 | KRPD[lat][s][j][18] += sCH3C2H[l] * f * 0.01; /* CH3CCH -> C3H2 + H2 */ |
---|
323 | KRPD[lat][s][j][19] += sCH3C2H[l] * f * 0.10; /* CH3CCH -> C2H2 + 1CH2 */ |
---|
324 | } |
---|
325 | if( i > 220 ) |
---|
326 | { |
---|
327 | KRPD[lat][s][j][14] += sCH2CCH2[l] * f * 0.90; /* CH2CCH2 -> C3H3 + H */ |
---|
328 | KRPD[lat][s][j][15] += sCH2CCH2[l] * f * 0.10; /* CH2CCH2 -> C3H2 + H2 */ |
---|
329 | } |
---|
330 | else if( i > 155 ) |
---|
331 | { |
---|
332 | KRPD[lat][s][j][14] += sCH2CCH2[l] * f * 0.89; /* CH2CCH2 -> C3H3 + H */ |
---|
333 | KRPD[lat][s][j][15] += sCH2CCH2[l] * f * 0.11; /* CH2CCH2 -> C3H2 + H2 */ |
---|
334 | KRPD[lat][s][j][16] += sCH2CCH2[l] * f * 0.01; /* CH2CCH2 -> C2H2 + 1CH2 */ |
---|
335 | } |
---|
336 | else if( i > 125 ) |
---|
337 | { |
---|
338 | KRPD[lat][s][j][14] += sCH2CCH2[l] * f * 0.70; /* CH2CCH2 -> C3H3 + H */ |
---|
339 | KRPD[lat][s][j][15] += sCH2CCH2[l] * f * 0.11; /* CH2CCH2 -> C3H2 + H2 */ |
---|
340 | KRPD[lat][s][j][16] += sCH2CCH2[l] * f * 0.19; /* CH2CCH2 -> C2H2 + 1CH2 */ |
---|
341 | } |
---|
342 | if( i > 140 ) |
---|
343 | { |
---|
344 | KRPD[lat][s][j][ 8] += sC2H6[l] * f * 0.56; /* C2H6 -> C2H4 + H2 */ |
---|
345 | KRPD[lat][s][j][ 9] += sC2H6[l] * f * 0.13; /* C2H6 -> C2H4 + H + H */ |
---|
346 | KRPD[lat][s][j][10] += sC2H6[l] * f * 0.29; /* C2H6 -> C2H2 + H2 + H2 */ |
---|
347 | KRPD[lat][s][j][11] += sC2H6[l] * f * 0.02; /* C2H6 -> CH4 + 1CH2 */ |
---|
348 | KRPD[lat][s][j][20] += sC3H6[l] * f * 0.10; /* C3H6 -> CH2CCH2 + H + H */ |
---|
349 | KRPD[lat][s][j][21] += sC3H6[l] * f * 0.07; /* C3H6 -> CH3CCH + H + H */ |
---|
350 | KRPD[lat][s][j][22] += sC3H6[l] * f * 0.03; /* C3H6 -> C2H4 + CH2 */ |
---|
351 | KRPD[lat][s][j][23] += sC3H6[l] * f * 0.35; /* C3H6 -> C2H3 + CH3 */ |
---|
352 | KRPD[lat][s][j][24] += sC3H6[l] * f * 0.05; /* C3H6 -> C2H2 + CH4 */ |
---|
353 | KRPD[lat][s][j][25] += sC3H6[l] * f * 0.40; /* C3H6 -> C3H5 + H */ |
---|
354 | KRPD[lat][s][j][26] += sC3H8[l] * f * 0.94; /* C3H8 -> C3H6 + H2 */ |
---|
355 | KRPD[lat][s][j][29] += sC3H8[l] * f * 0.06; /* C3H8 -> C2H4 + CH4 */ |
---|
356 | if ( i <= 160 ) |
---|
357 | { |
---|
358 | KRPD[lat][s][j][41] += sC4H10[l] * f * 0.01; /* C4H10 -> C3H6 + CH4 */ |
---|
359 | KRPD[lat][s][j][42] += sC4H10[l] * f * 0.04; /* C4H10 -> C3H6 + CH3 + H */ |
---|
360 | KRPD[lat][s][j][43] += sC4H10[l] * f * 0.12; /* C4H10 -> C2H4 + C2H6 */ |
---|
361 | KRPD[lat][s][j][44] += sC4H10[l] * f * 0.03; /* C4H10 -> C2H4 + CH3 + CH3 */ |
---|
362 | KRPD[lat][s][j][45] += sC4H10[l] * f * 0.10; /* C4H10 -> C2H5 + C2H5 */ |
---|
363 | KRPD[lat][s][j][46] += sC4H10[l] * f * 0.70; /* C4H10 -> prod(C4H8) + H2 */ |
---|
364 | } |
---|
365 | } |
---|
366 | else |
---|
367 | { |
---|
368 | if( i > 110 ) |
---|
369 | { |
---|
370 | KRPD[lat][s][j][ 8] += sC2H6[l] * f * 0.14; /* C2H6 -> C2H4 + H2 */ |
---|
371 | KRPD[lat][s][j][ 9] += sC2H6[l] * f * 0.31; /* C2H6 -> C2H4 + H + H */ |
---|
372 | KRPD[lat][s][j][10] += sC2H6[l] * f * 0.27; /* C2H6 -> C2H2 + H2 + H2 */ |
---|
373 | KRPD[lat][s][j][11] += sC2H6[l] * f * 0.22; /* C2H6 -> CH4 + 1CH2 */ |
---|
374 | KRPD[lat][s][j][12] += sC2H6[l] * f * 0.06; /* C2H6 -> CH3 + CH3 */ |
---|
375 | } |
---|
376 | if( i > 115 ) |
---|
377 | { |
---|
378 | KRPD[lat][s][j][26] += sC3H8[l] * f * 0.33; /* C3H8 -> C3H6 + H2 */ |
---|
379 | KRPD[lat][s][j][27] += sC3H8[l] * f * 0.09; /* C3H8 -> C2H6 + 1CH2 */ |
---|
380 | KRPD[lat][s][j][28] += sC3H8[l] * f * 0.38; /* C3H8 -> C2H5 + CH3 */ |
---|
381 | KRPD[lat][s][j][29] += sC3H8[l] * f * 0.20; /* C3H8 -> C2H4 + CH4 */ |
---|
382 | KRPD[lat][s][j][41] += sC4H10[l] * f * 0.05; /* C4H10 -> C3H6 + CH4 */ |
---|
383 | KRPD[lat][s][j][42] += sC4H10[l] * f * 0.10; /* C4H10 -> C3H6 + CH3 + H */ |
---|
384 | KRPD[lat][s][j][43] += sC4H10[l] * f * 0.20; /* C4H10 -> C2H4 + C2H6 */ |
---|
385 | KRPD[lat][s][j][44] += sC4H10[l] * f * 0.10; /* C4H10 -> C2H4 + CH3 + CH3 */ |
---|
386 | KRPD[lat][s][j][45] += sC4H10[l] * f * 0.15; /* C4H10 -> C2H5 + C2H5 */ |
---|
387 | KRPD[lat][s][j][46] += sC4H10[l] * f * 0.40; /* C4H10 -> prod(C4H8) + H2 */ |
---|
388 | } |
---|
389 | if( i > 125 ) |
---|
390 | { |
---|
391 | KRPD[lat][s][j][20] += sC3H6[l] * f * 0.21; /* C3H6 -> CH2CCH2 + H + H */ |
---|
392 | KRPD[lat][s][j][21] += sC3H6[l] * f * 0.14; /* C3H6 -> CH3CCH + H + H */ |
---|
393 | KRPD[lat][s][j][22] += sC3H6[l] * f * 0.05; /* C3H6 -> C2H4 + CH2 */ |
---|
394 | KRPD[lat][s][j][23] += sC3H6[l] * f * 0.25; /* C3H6 -> C2H3 + CH3 */ |
---|
395 | KRPD[lat][s][j][24] += sC3H6[l] * f * 0.05; /* C3H6 -> C2H2 + CH4 */ |
---|
396 | KRPD[lat][s][j][25] += sC3H6[l] * f * 0.30; /* C3H6 -> C3H5 + H */ |
---|
397 | } |
---|
398 | } |
---|
399 | if ( i > 205 ) |
---|
400 | { |
---|
401 | KRPD[lat][s][j][30] += sC4H2[l] * f * 1.00; /* C4H2 -> C4H + H */ |
---|
402 | } |
---|
403 | else if ( i > 180 ) |
---|
404 | { |
---|
405 | KRPD[lat][s][j][30] += sC4H2[l] * f * 0.88; /* C4H2 -> C4H + H */ |
---|
406 | KRPD[lat][s][j][32] += sC4H2[l] * f * 0.12; /* C4H2 -> C2H2 + C2 */ |
---|
407 | } |
---|
408 | else if ( i > 150 ) |
---|
409 | { |
---|
410 | KRPD[lat][s][j][30] += sC4H2[l] * f * 0.80; /* C4H2 -> C4H + H */ |
---|
411 | KRPD[lat][s][j][31] += sC4H2[l] * f * 0.01; /* C4H2 -> C2H + C2H */ |
---|
412 | KRPD[lat][s][j][32] += sC4H2[l] * f * 0.16; /* C4H2 -> C2H2 + C2 */ |
---|
413 | } |
---|
414 | else if ( i > 120 ) |
---|
415 | { |
---|
416 | KRPD[lat][s][j][30] += sC4H2[l] * f * 0.75; /* C4H2 -> C4H + H */ |
---|
417 | KRPD[lat][s][j][31] += sC4H2[l] * f * 0.05; /* C4H2 -> C2H + C2H */ |
---|
418 | KRPD[lat][s][j][32] += sC4H2[l] * f * 0.06; /* C4H2 -> C2H2 + C2 */ |
---|
419 | } |
---|
420 | if ( i > 130 ) |
---|
421 | { |
---|
422 | KRPD[lat][s][j][33] += sC4H4[l] * f * 0.07; /* C4H4 -> C4H2 + H2 */ |
---|
423 | KRPD[lat][s][j][34] += sC4H4[l] * f * 0.66; /* C4H4 -> C2H2 + C2H2 */ |
---|
424 | KRPD[lat][s][j][35] += sC4H4[l] * f * 0.27; /* C4H4 -> C4H3 + H */ |
---|
425 | } |
---|
426 | if ( i > 135 ) |
---|
427 | { |
---|
428 | KRPD[lat][s][j][36] += sC4H6[l] * f * 0.02; /* C4H6 -> C4H4 + H2 */ |
---|
429 | KRPD[lat][s][j][37] += sC4H6[l] * f * 0.20; /* C4H6 -> C2H4 + C2H2 */ |
---|
430 | KRPD[lat][s][j][38] += sC4H6[l] * f * 0.50; /* C4H6 -> CH3 + C3H3 */ |
---|
431 | KRPD[lat][s][j][39] += sC4H6[l] * f * 0.20; /* C4H6 -> C4H5 + H */ |
---|
432 | KRPD[lat][s][j][40] += sC4H6[l] * f * 0.08; /* C4H6 -> C2H3 + C2H3 */ |
---|
433 | KRPD[lat][s][j][47] += sC6H6[l] * f; /* C6H6 -> C6H5 + H */ |
---|
434 | } |
---|
435 | |
---|
436 | KRPD[lat][s][j][48] += sN2[l] * f; /* N2 -> 2N ( regroup N2D and N4S ) */ |
---|
437 | |
---|
438 | if( i > 190 ) |
---|
439 | { |
---|
440 | KRPD[lat][s][j][50] += sHC3N[l] * f; /* HC3N -> C2H + CN */ |
---|
441 | } |
---|
442 | else if( i > 105 ) |
---|
443 | { |
---|
444 | KRPD[lat][s][j][50] += sHC3N[l] * f * 0.43; /* HC3N -> C2H + CN */ |
---|
445 | KRPD[lat][s][j][51] += sHC3N[l] * f * 0.57; /* HC3N -> C3N + H */ |
---|
446 | } |
---|
447 | if( i > 100 ) |
---|
448 | { |
---|
449 | KRPD[lat][s][j][49] += sHCN[l] * f; /* HCN -> CN + H */ |
---|
450 | KRPD[lat][s][j][52] += sC2N2[l] * f; /* NCCN -> CN + CN */ |
---|
451 | KRPD[lat][s][j][53] += sCH3CN[l] * f; /* CH3CN -> CH3 + CN */ |
---|
452 | } |
---|
453 | if( i > 105 ) |
---|
454 | { |
---|
455 | KRPD[lat][s][j][54] += sC2N2[l] * f ; /* C4N2 -> C3N + CN !! should be sC4N2[l] !! */ |
---|
456 | } |
---|
457 | } |
---|
458 | } |
---|
459 | |
---|
460 | /* taux de dissociation de N2 ( e- et GCR ) */ |
---|
461 | |
---|
462 | for( lat = 0; lat <= (*NLAT)-1; lat++ ) |
---|
463 | for( s = 0; s <= 14; s++ ) |
---|
464 | { |
---|
465 | for( j = 99; j <= NLRT-1; j++ ) /* level 100 = 200 km */ |
---|
466 | KRPD[lat][s][j][RDISS] = 1.0e-16; |
---|
467 | for( j = 49; j <= 98; j++ ) /* level 50 = 100 km */ |
---|
468 | KRPD[lat][s][j][RDISS] = 1.0e-17+1.8e-18*(j-49); |
---|
469 | for( j = 34; j <= 48; j++ ) /* level 35 = 70 km */ |
---|
470 | KRPD[lat][s][j][RDISS] = pow(10.,(-23+0.4*(j-34))); |
---|
471 | for( j = 0; j <= 33; j++ ) |
---|
472 | KRPD[lat][s][j][RDISS] = 0.0e0; |
---|
473 | } |
---|
474 | |
---|
475 | fdm2d( flux, 0, NLEV, 0 ); |
---|
476 | } |
---|