39 for (
int ip = 0; ip < atm->
np; ip++)
44 for (
int ip = 0; ip < atm->
np; ip++)
49 for (
int ig = 0; ig < ctl->
ng; ig++)
50 for (
int ip = 0; ip < atm->
np; ip++)
56 for (
int iw = 0; iw < ctl->
nw; iw++)
57 for (
int ip = 0; ip < atm->
np; ip++)
68 for (
int icl = 0; icl < ctl->
ncl; icl++)
79 for (
int isf = 0; isf < ctl->
nsf; isf++)
98 gsl_vector_set(x, *n, value);
113 return C2 * nu / gsl_log1p(
C1 *
POW3(nu) / rad);
125 double radius =
NORM(x);
127 *lat = asin(x[2] / radius) * 180 / M_PI;
128 *lon = atan2(x[1], x[0]) * 180 / M_PI;
138 static double z[121] = {
139 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
140 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
141 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
142 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
143 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
144 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
145 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120
148 static double pre[121] = {
149 1017, 901.083, 796.45, 702.227, 617.614, 541.644, 473.437, 412.288,
150 357.603, 308.96, 265.994, 228.348, 195.619, 167.351, 143.039, 122.198,
151 104.369, 89.141, 76.1528, 65.0804, 55.641, 47.591, 40.7233, 34.8637,
152 29.8633, 25.5956, 21.9534, 18.8445, 16.1909, 13.9258, 11.9913,
153 10.34, 8.92988, 7.72454, 6.6924, 5.80701, 5.04654, 4.39238, 3.82902,
154 3.34337, 2.92413, 2.56128, 2.2464, 1.97258, 1.73384, 1.52519, 1.34242,
155 1.18197, 1.04086, 0.916546, 0.806832, 0.709875, 0.624101, 0.548176,
156 0.480974, 0.421507, 0.368904, 0.322408, 0.281386, 0.245249, 0.213465,
157 0.185549, 0.161072, 0.139644, 0.120913, 0.104568, 0.0903249, 0.0779269,
158 0.0671493, 0.0577962, 0.0496902, 0.0426736, 0.0366093, 0.0313743,
159 0.0268598, 0.0229699, 0.0196206, 0.0167399, 0.0142646, 0.0121397,
160 0.0103181, 0.00875775, 0.00742226, 0.00628076, 0.00530519, 0.00447183,
161 0.00376124, 0.00315632, 0.00264248, 0.00220738, 0.00184003, 0.00153095,
162 0.00127204, 0.00105608, 0.000876652, 0.00072798, 0.00060492,
163 0.000503201, 0.000419226, 0.000349896, 0.000292659, 0.000245421,
164 0.000206394, 0.000174125, 0.000147441, 0.000125333, 0.000106985,
165 9.173e-05, 7.90172e-05, 6.84172e-05, 5.95574e-05, 5.21183e-05,
166 4.58348e-05, 4.05127e-05, 3.59987e-05, 3.21583e-05, 2.88718e-05,
167 2.60322e-05, 2.35687e-05, 2.14263e-05, 1.95489e-05
170 static double tem[121] = {
171 285.14, 279.34, 273.91, 268.3, 263.24, 256.55, 250.2, 242.82, 236.17,
172 229.87, 225.04, 221.19, 218.85, 217.19, 216.2, 215.68, 215.42, 215.55,
173 215.92, 216.4, 216.93, 217.45, 218, 218.68, 219.39, 220.25, 221.3,
174 222.41, 223.88, 225.42, 227.2, 229.52, 231.89, 234.51, 236.85, 239.42,
175 241.94, 244.57, 247.36, 250.32, 253.34, 255.82, 258.27, 260.39,
176 262.03, 263.45, 264.2, 264.78, 264.67, 264.38, 263.24, 262.03, 260.02,
177 258.09, 255.63, 253.28, 250.43, 247.81, 245.26, 242.77, 240.38,
178 237.94, 235.79, 233.53, 231.5, 229.53, 227.6, 225.62, 223.77, 222.06,
179 220.33, 218.69, 217.18, 215.64, 214.13, 212.52, 210.86, 209.25,
180 207.49, 205.81, 204.11, 202.22, 200.32, 198.39, 195.92, 193.46,
181 190.94, 188.31, 185.82, 183.57, 181.43, 179.74, 178.64, 178.1, 178.25,
182 178.7, 179.41, 180.67, 182.31, 184.18, 186.6, 189.53, 192.66, 196.54,
183 201.13, 205.93, 211.73, 217.86, 225, 233.53, 242.57, 252.14, 261.48,
184 272.97, 285.26, 299.12, 312.2, 324.17, 338.34, 352.56, 365.28
187 static double c2h2[121] = {
188 1.352e-09, 2.83e-10, 1.269e-10, 6.926e-11, 4.346e-11, 2.909e-11,
189 2.014e-11, 1.363e-11, 8.71e-12, 5.237e-12, 2.718e-12, 1.375e-12,
190 5.786e-13, 2.16e-13, 7.317e-14, 2.551e-14, 1.055e-14, 4.758e-15,
191 2.056e-15, 7.703e-16, 2.82e-16, 1.035e-16, 4.382e-17, 1.946e-17,
192 9.638e-18, 5.2e-18, 2.811e-18, 1.494e-18, 7.925e-19, 4.213e-19,
193 1.998e-19, 8.78e-20, 3.877e-20, 1.728e-20, 7.743e-21, 3.536e-21,
194 1.623e-21, 7.508e-22, 3.508e-22, 1.65e-22, 7.837e-23, 3.733e-23,
195 1.808e-23, 8.77e-24, 4.285e-24, 2.095e-24, 1.032e-24, 5.082e-25,
196 2.506e-25, 1.236e-25, 6.088e-26, 2.996e-26, 1.465e-26, 0, 0, 0,
197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
202 static double c2h6[121] = {
203 2.667e-09, 2.02e-09, 1.658e-09, 1.404e-09, 1.234e-09, 1.109e-09,
204 1.012e-09, 9.262e-10, 8.472e-10, 7.71e-10, 6.932e-10, 6.216e-10,
205 5.503e-10, 4.87e-10, 4.342e-10, 3.861e-10, 3.347e-10, 2.772e-10,
206 2.209e-10, 1.672e-10, 1.197e-10, 8.536e-11, 5.783e-11, 3.846e-11,
207 2.495e-11, 1.592e-11, 1.017e-11, 6.327e-12, 3.895e-12, 2.403e-12,
208 1.416e-12, 8.101e-13, 4.649e-13, 2.686e-13, 1.557e-13, 9.14e-14,
209 5.386e-14, 3.19e-14, 1.903e-14, 1.14e-14, 6.875e-15, 4.154e-15,
210 2.538e-15, 1.553e-15, 9.548e-16, 5.872e-16, 3.63e-16, 2.244e-16,
211 1.388e-16, 8.587e-17, 5.308e-17, 3.279e-17, 2.017e-17, 1.238e-17,
212 7.542e-18, 4.585e-18, 2.776e-18, 1.671e-18, 9.985e-19, 5.937e-19,
213 3.518e-19, 2.07e-19, 1.215e-19, 7.06e-20, 4.097e-20, 2.37e-20,
214 1.363e-20, 7.802e-21, 4.441e-21, 2.523e-21, 1.424e-21, 8.015e-22,
215 4.497e-22, 2.505e-22, 1.391e-22, 7.691e-23, 4.238e-23, 2.331e-23,
216 1.274e-23, 6.929e-24, 3.752e-24, 2.02e-24, 1.083e-24, 5.774e-25,
217 3.041e-25, 1.593e-25, 8.308e-26, 4.299e-26, 2.195e-26, 1.112e-26,
218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
219 0, 0, 0, 0, 0, 0, 0, 0, 0
222 static double ccl4[121] = {
223 1.075e-10, 1.075e-10, 1.075e-10, 1.075e-10, 1.075e-10, 1.075e-10,
224 1.075e-10, 1.075e-10, 1.075e-10, 1.06e-10, 1.024e-10, 9.69e-11,
225 8.93e-11, 8.078e-11, 7.213e-11, 6.307e-11, 5.383e-11, 4.49e-11,
226 3.609e-11, 2.705e-11, 1.935e-11, 1.385e-11, 8.35e-12, 5.485e-12,
227 3.853e-12, 2.22e-12, 5.875e-13, 3.445e-13, 1.015e-13, 6.075e-14,
228 4.383e-14, 2.692e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
229 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
230 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
231 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
232 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
233 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
234 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
235 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
236 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14, 1e-14,
240 static double ch4[121] = {
241 1.864e-06, 1.835e-06, 1.819e-06, 1.805e-06, 1.796e-06, 1.788e-06,
242 1.782e-06, 1.776e-06, 1.769e-06, 1.761e-06, 1.749e-06, 1.734e-06,
243 1.716e-06, 1.692e-06, 1.654e-06, 1.61e-06, 1.567e-06, 1.502e-06,
244 1.433e-06, 1.371e-06, 1.323e-06, 1.277e-06, 1.232e-06, 1.188e-06,
245 1.147e-06, 1.108e-06, 1.07e-06, 1.027e-06, 9.854e-07, 9.416e-07,
246 8.933e-07, 8.478e-07, 7.988e-07, 7.515e-07, 7.07e-07, 6.64e-07,
247 6.239e-07, 5.864e-07, 5.512e-07, 5.184e-07, 4.87e-07, 4.571e-07,
248 4.296e-07, 4.04e-07, 3.802e-07, 3.578e-07, 3.383e-07, 3.203e-07,
249 3.032e-07, 2.889e-07, 2.76e-07, 2.635e-07, 2.519e-07, 2.409e-07,
250 2.302e-07, 2.219e-07, 2.144e-07, 2.071e-07, 1.999e-07, 1.93e-07,
251 1.862e-07, 1.795e-07, 1.731e-07, 1.668e-07, 1.607e-07, 1.548e-07,
252 1.49e-07, 1.434e-07, 1.38e-07, 1.328e-07, 1.277e-07, 1.227e-07,
253 1.18e-07, 1.134e-07, 1.089e-07, 1.046e-07, 1.004e-07, 9.635e-08,
254 9.245e-08, 8.867e-08, 8.502e-08, 8.15e-08, 7.809e-08, 7.48e-08,
255 7.159e-08, 6.849e-08, 6.55e-08, 6.262e-08, 5.98e-08, 5.708e-08,
256 5.448e-08, 5.194e-08, 4.951e-08, 4.72e-08, 4.5e-08, 4.291e-08,
257 4.093e-08, 3.905e-08, 3.729e-08, 3.563e-08, 3.408e-08, 3.265e-08,
258 3.128e-08, 2.996e-08, 2.87e-08, 2.76e-08, 2.657e-08, 2.558e-08,
259 2.467e-08, 2.385e-08, 2.307e-08, 2.234e-08, 2.168e-08, 2.108e-08,
260 2.05e-08, 1.998e-08, 1.947e-08, 1.902e-08, 1.86e-08, 1.819e-08,
264 static double clo[121] = {
265 7.419e-15, 1.061e-14, 1.518e-14, 2.195e-14, 3.175e-14, 4.666e-14,
266 6.872e-14, 1.03e-13, 1.553e-13, 2.375e-13, 3.664e-13, 5.684e-13,
267 8.915e-13, 1.402e-12, 2.269e-12, 4.125e-12, 7.501e-12, 1.257e-11,
268 2.048e-11, 3.338e-11, 5.44e-11, 8.846e-11, 1.008e-10, 1.082e-10,
269 1.157e-10, 1.232e-10, 1.312e-10, 1.539e-10, 1.822e-10, 2.118e-10,
270 2.387e-10, 2.687e-10, 2.875e-10, 3.031e-10, 3.23e-10, 3.648e-10,
271 4.117e-10, 4.477e-10, 4.633e-10, 4.794e-10, 4.95e-10, 5.104e-10,
272 5.259e-10, 5.062e-10, 4.742e-10, 4.443e-10, 4.051e-10, 3.659e-10,
273 3.305e-10, 2.911e-10, 2.54e-10, 2.215e-10, 1.927e-10, 1.675e-10,
274 1.452e-10, 1.259e-10, 1.09e-10, 9.416e-11, 8.119e-11, 6.991e-11,
275 6.015e-11, 5.163e-11, 4.43e-11, 3.789e-11, 3.24e-11, 2.769e-11,
276 2.361e-11, 2.011e-11, 1.71e-11, 1.453e-11, 1.233e-11, 1.045e-11,
277 8.851e-12, 7.48e-12, 6.316e-12, 5.326e-12, 4.487e-12, 3.778e-12,
278 3.176e-12, 2.665e-12, 2.234e-12, 1.87e-12, 1.563e-12, 1.304e-12,
279 1.085e-12, 9.007e-13, 7.468e-13, 6.179e-13, 5.092e-13, 4.188e-13,
280 3.442e-13, 2.816e-13, 2.304e-13, 1.885e-13, 1.542e-13, 1.263e-13,
281 1.035e-13, 8.5e-14, 7.004e-14, 5.783e-14, 4.795e-14, 4.007e-14,
282 3.345e-14, 2.792e-14, 2.33e-14, 1.978e-14, 1.686e-14, 1.438e-14,
283 1.234e-14, 1.07e-14, 9.312e-15, 8.131e-15, 7.164e-15, 6.367e-15,
284 5.67e-15, 5.088e-15, 4.565e-15, 4.138e-15, 3.769e-15, 3.432e-15,
288 static double clono2[121] = {
289 1.011e-13, 1.515e-13, 2.272e-13, 3.446e-13, 5.231e-13, 8.085e-13,
290 1.253e-12, 1.979e-12, 3.149e-12, 5.092e-12, 8.312e-12, 1.366e-11,
291 2.272e-11, 3.791e-11, 6.209e-11, 9.101e-11, 1.334e-10, 1.951e-10,
292 2.853e-10, 3.94e-10, 4.771e-10, 5.771e-10, 6.675e-10, 7.665e-10,
293 8.504e-10, 8.924e-10, 9.363e-10, 8.923e-10, 8.411e-10, 7.646e-10,
294 6.525e-10, 5.576e-10, 4.398e-10, 3.403e-10, 2.612e-10, 1.915e-10,
295 1.407e-10, 1.028e-10, 7.455e-11, 5.42e-11, 3.708e-11, 2.438e-11,
296 1.618e-11, 1.075e-11, 7.17e-12, 4.784e-12, 3.205e-12, 2.147e-12,
297 1.44e-12, 9.654e-13, 6.469e-13, 4.332e-13, 2.891e-13, 1.926e-13,
298 1.274e-13, 8.422e-14, 5.547e-14, 3.636e-14, 2.368e-14, 1.536e-14,
299 9.937e-15, 6.39e-15, 4.101e-15, 2.61e-15, 1.659e-15, 1.052e-15,
300 6.638e-16, 4.172e-16, 2.61e-16, 1.63e-16, 1.013e-16, 6.275e-17,
301 3.879e-17, 2.383e-17, 1.461e-17, 8.918e-18, 5.43e-18, 3.301e-18,
302 1.997e-18, 1.203e-18, 7.216e-19, 4.311e-19, 2.564e-19, 1.519e-19,
303 8.911e-20, 5.203e-20, 3.026e-20, 1.748e-20, 9.99e-21, 5.673e-21,
304 3.215e-21, 1.799e-21, 1.006e-21, 5.628e-22, 3.146e-22, 1.766e-22,
305 9.94e-23, 5.614e-23, 3.206e-23, 1.841e-23, 1.071e-23, 6.366e-24,
306 3.776e-24, 2.238e-24, 1.326e-24, 8.253e-25, 5.201e-25, 3.279e-25,
307 2.108e-25, 1.395e-25, 9.326e-26, 6.299e-26, 4.365e-26, 3.104e-26,
308 2.219e-26, 1.621e-26, 1.185e-26, 8.92e-27, 6.804e-27, 5.191e-27,
312 static double co[121] = {
313 1.907e-07, 1.553e-07, 1.362e-07, 1.216e-07, 1.114e-07, 1.036e-07,
314 9.737e-08, 9.152e-08, 8.559e-08, 7.966e-08, 7.277e-08, 6.615e-08,
315 5.884e-08, 5.22e-08, 4.699e-08, 4.284e-08, 3.776e-08, 3.274e-08,
316 2.845e-08, 2.479e-08, 2.246e-08, 2.054e-08, 1.991e-08, 1.951e-08,
317 1.94e-08, 2.009e-08, 2.1e-08, 2.201e-08, 2.322e-08, 2.45e-08,
318 2.602e-08, 2.73e-08, 2.867e-08, 2.998e-08, 3.135e-08, 3.255e-08,
319 3.352e-08, 3.426e-08, 3.484e-08, 3.53e-08, 3.593e-08, 3.671e-08,
320 3.759e-08, 3.945e-08, 4.192e-08, 4.49e-08, 5.03e-08, 5.703e-08,
321 6.538e-08, 7.878e-08, 9.644e-08, 1.196e-07, 1.498e-07, 1.904e-07,
322 2.422e-07, 3.055e-07, 3.804e-07, 4.747e-07, 5.899e-07, 7.272e-07,
323 8.91e-07, 1.071e-06, 1.296e-06, 1.546e-06, 1.823e-06, 2.135e-06,
324 2.44e-06, 2.714e-06, 2.967e-06, 3.189e-06, 3.391e-06, 3.58e-06,
325 3.773e-06, 4.022e-06, 4.346e-06, 4.749e-06, 5.199e-06, 5.668e-06,
326 6.157e-06, 6.688e-06, 7.254e-06, 7.867e-06, 8.539e-06, 9.26e-06,
327 1.009e-05, 1.119e-05, 1.228e-05, 1.365e-05, 1.506e-05, 1.641e-05,
328 1.784e-05, 1.952e-05, 2.132e-05, 2.323e-05, 2.531e-05, 2.754e-05,
329 3.047e-05, 3.459e-05, 3.922e-05, 4.439e-05, 4.825e-05, 5.077e-05,
330 5.34e-05, 5.618e-05, 5.909e-05, 6.207e-05, 6.519e-05, 6.845e-05,
331 6.819e-05, 6.726e-05, 6.622e-05, 6.512e-05, 6.671e-05, 6.862e-05,
332 7.048e-05, 7.264e-05, 7.3e-05, 7.3e-05, 7.3e-05, 7.3e-05, 7.3e-05
335 static double cof2[121] = {
336 7.5e-14, 1.055e-13, 1.485e-13, 2.111e-13, 3.001e-13, 4.333e-13,
337 6.269e-13, 9.221e-13, 1.364e-12, 2.046e-12, 3.093e-12, 4.703e-12,
338 7.225e-12, 1.113e-11, 1.66e-11, 2.088e-11, 2.626e-11, 3.433e-11,
339 4.549e-11, 5.886e-11, 7.21e-11, 8.824e-11, 1.015e-10, 1.155e-10,
340 1.288e-10, 1.388e-10, 1.497e-10, 1.554e-10, 1.606e-10, 1.639e-10,
341 1.64e-10, 1.64e-10, 1.596e-10, 1.542e-10, 1.482e-10, 1.382e-10,
342 1.289e-10, 1.198e-10, 1.109e-10, 1.026e-10, 9.484e-11, 8.75e-11,
343 8.086e-11, 7.49e-11, 6.948e-11, 6.446e-11, 5.961e-11, 5.505e-11,
344 5.085e-11, 4.586e-11, 4.1e-11, 3.665e-11, 3.235e-11, 2.842e-11,
345 2.491e-11, 2.11e-11, 1.769e-11, 1.479e-11, 1.197e-11, 9.631e-12,
346 7.74e-12, 6.201e-12, 4.963e-12, 3.956e-12, 3.151e-12, 2.507e-12,
347 1.99e-12, 1.576e-12, 1.245e-12, 9.83e-13, 7.742e-13, 6.088e-13,
348 4.782e-13, 3.745e-13, 2.929e-13, 2.286e-13, 1.782e-13, 1.388e-13,
349 1.079e-13, 8.362e-14, 6.471e-14, 4.996e-14, 3.85e-14, 2.96e-14,
350 2.265e-14, 1.729e-14, 1.317e-14, 9.998e-15, 7.549e-15, 5.683e-15,
351 4.273e-15, 3.193e-15, 2.385e-15, 1.782e-15, 1.331e-15, 9.957e-16,
352 7.461e-16, 5.601e-16, 4.228e-16, 3.201e-16, 2.438e-16, 1.878e-16,
353 1.445e-16, 1.111e-16, 8.544e-17, 6.734e-17, 5.341e-17, 4.237e-17,
354 3.394e-17, 2.759e-17, 2.254e-17, 1.851e-17, 1.54e-17, 1.297e-17,
355 1.096e-17, 9.365e-18, 8e-18, 6.938e-18, 6.056e-18, 5.287e-18,
359 static double f11[121] = {
360 2.65e-10, 2.65e-10, 2.65e-10, 2.65e-10, 2.65e-10, 2.65e-10, 2.65e-10,
361 2.65e-10, 2.65e-10, 2.65e-10, 2.65e-10, 2.65e-10, 2.635e-10, 2.536e-10,
362 2.44e-10, 2.348e-10, 2.258e-10, 2.153e-10, 2.046e-10, 1.929e-10,
363 1.782e-10, 1.648e-10, 1.463e-10, 1.291e-10, 1.1e-10, 8.874e-11,
364 7.165e-11, 5.201e-11, 3.744e-11, 2.577e-11, 1.64e-11, 1.048e-11,
365 5.993e-12, 3.345e-12, 1.839e-12, 9.264e-13, 4.688e-13, 2.329e-13,
366 1.129e-13, 5.505e-14, 2.825e-14, 1.492e-14, 7.997e-15, 5.384e-15,
367 3.988e-15, 2.955e-15, 2.196e-15, 1.632e-15, 1.214e-15, 9.025e-16,
368 6.708e-16, 4.984e-16, 3.693e-16, 2.733e-16, 2.013e-16, 1.481e-16,
369 1.087e-16, 7.945e-17, 5.782e-17, 4.195e-17, 3.038e-17, 2.19e-17,
370 1.577e-17, 1.128e-17, 8.063e-18, 5.753e-18, 4.09e-18, 2.899e-18,
371 2.048e-18, 1.444e-18, 1.015e-18, 7.12e-19, 4.985e-19, 3.474e-19,
372 2.417e-19, 1.677e-19, 1.161e-19, 8.029e-20, 5.533e-20, 3.799e-20,
373 2.602e-20, 1.776e-20, 1.209e-20, 8.202e-21, 5.522e-21, 3.707e-21,
374 2.48e-21, 1.652e-21, 1.091e-21, 7.174e-22, 4.709e-22, 3.063e-22,
375 1.991e-22, 1.294e-22, 8.412e-23, 5.483e-23, 3.581e-23, 2.345e-23,
376 1.548e-23, 1.027e-23, 6.869e-24, 4.673e-24, 3.173e-24, 2.153e-24,
377 1.461e-24, 1.028e-24, 7.302e-25, 5.188e-25, 3.739e-25, 2.753e-25,
378 2.043e-25, 1.528e-25, 1.164e-25, 9.041e-26, 7.051e-26, 5.587e-26,
379 4.428e-26, 3.588e-26, 2.936e-26, 2.402e-26, 1.995e-26
382 static double f12[121] = {
383 5.45e-10, 5.45e-10, 5.45e-10, 5.45e-10, 5.45e-10, 5.45e-10, 5.45e-10,
384 5.45e-10, 5.45e-10, 5.45e-10, 5.45e-10, 5.45e-10, 5.429e-10, 5.291e-10,
385 5.155e-10, 5.022e-10, 4.893e-10, 4.772e-10, 4.655e-10, 4.497e-10,
386 4.249e-10, 4.015e-10, 3.632e-10, 3.261e-10, 2.858e-10, 2.408e-10,
387 2.03e-10, 1.685e-10, 1.4e-10, 1.163e-10, 9.65e-11, 8.02e-11, 6.705e-11,
388 5.624e-11, 4.764e-11, 4.249e-11, 3.792e-11, 3.315e-11, 2.819e-11,
389 2.4e-11, 1.999e-11, 1.64e-11, 1.352e-11, 1.14e-11, 9.714e-12,
390 8.28e-12, 7.176e-12, 6.251e-12, 5.446e-12, 4.72e-12, 4.081e-12,
391 3.528e-12, 3.08e-12, 2.699e-12, 2.359e-12, 2.111e-12, 1.901e-12,
392 1.709e-12, 1.534e-12, 1.376e-12, 1.233e-12, 1.103e-12, 9.869e-13,
393 8.808e-13, 7.859e-13, 7.008e-13, 6.241e-13, 5.553e-13, 4.935e-13,
394 4.383e-13, 3.889e-13, 3.447e-13, 3.054e-13, 2.702e-13, 2.389e-13,
395 2.11e-13, 1.862e-13, 1.643e-13, 1.448e-13, 1.274e-13, 1.121e-13,
396 9.844e-14, 8.638e-14, 7.572e-14, 6.62e-14, 5.782e-14, 5.045e-14,
397 4.394e-14, 3.817e-14, 3.311e-14, 2.87e-14, 2.48e-14, 2.142e-14,
398 1.851e-14, 1.599e-14, 1.383e-14, 1.196e-14, 1.036e-14, 9e-15,
399 7.828e-15, 6.829e-15, 5.992e-15, 5.254e-15, 4.606e-15, 4.037e-15,
400 3.583e-15, 3.19e-15, 2.841e-15, 2.542e-15, 2.291e-15, 2.07e-15,
401 1.875e-15, 1.71e-15, 1.57e-15, 1.442e-15, 1.333e-15, 1.232e-15,
402 1.147e-15, 1.071e-15, 1.001e-15, 9.396e-16
405 static double f14[121] = {
406 9e-11, 9e-11, 9e-11, 9e-11, 9e-11, 9e-11, 9e-11, 9e-11, 9e-11, 9e-11,
407 9e-11, 9e-11, 9e-11, 9e-11, 9e-11, 8.91e-11, 8.73e-11, 8.46e-11,
408 8.19e-11, 7.92e-11, 7.74e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
409 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
410 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
411 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
412 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
413 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
414 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
415 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
416 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
417 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
418 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
419 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
420 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
421 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11,
422 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11, 7.65e-11
425 static double f22[121] = {
426 1.4e-10, 1.4e-10, 1.4e-10, 1.4e-10, 1.4e-10, 1.4e-10, 1.4e-10,
427 1.4e-10, 1.4e-10, 1.4e-10, 1.372e-10, 1.317e-10, 1.235e-10, 1.153e-10,
428 1.075e-10, 1.002e-10, 9.332e-11, 8.738e-11, 8.194e-11, 7.7e-11,
429 7.165e-11, 6.753e-11, 6.341e-11, 5.971e-11, 5.6e-11, 5.229e-11,
430 4.859e-11, 4.488e-11, 4.118e-11, 3.83e-11, 3.568e-11, 3.308e-11,
431 3.047e-11, 2.82e-11, 2.594e-11, 2.409e-11, 2.237e-11, 2.065e-11,
432 1.894e-11, 1.771e-11, 1.647e-11, 1.532e-11, 1.416e-11, 1.332e-11,
433 1.246e-11, 1.161e-11, 1.087e-11, 1.017e-11, 9.471e-12, 8.853e-12,
434 8.235e-12, 7.741e-12, 7.247e-12, 6.836e-12, 6.506e-12, 6.176e-12,
435 5.913e-12, 5.65e-12, 5.419e-12, 5.221e-12, 5.024e-12, 4.859e-12,
436 4.694e-12, 4.546e-12, 4.414e-12, 4.282e-12, 4.15e-12, 4.019e-12,
437 3.903e-12, 3.805e-12, 3.706e-12, 3.607e-12, 3.508e-12, 3.41e-12,
438 3.31e-12, 3.212e-12, 3.129e-12, 3.047e-12, 2.964e-12, 2.882e-12,
439 2.8e-12, 2.734e-12, 2.668e-12, 2.602e-12, 2.537e-12, 2.471e-12,
440 2.421e-12, 2.372e-12, 2.322e-12, 2.273e-12, 2.224e-12, 2.182e-12,
441 2.141e-12, 2.1e-12, 2.059e-12, 2.018e-12, 1.977e-12, 1.935e-12,
442 1.894e-12, 1.853e-12, 1.812e-12, 1.77e-12, 1.73e-12, 1.688e-12,
443 1.647e-12, 1.606e-12, 1.565e-12, 1.524e-12, 1.483e-12, 1.441e-12,
444 1.4e-12, 1.359e-12, 1.317e-12, 1.276e-12, 1.235e-12, 1.194e-12,
445 1.153e-12, 1.112e-12, 1.071e-12, 1.029e-12, 9.883e-13
448 static double h2o[121] = {
449 0.01166, 0.008269, 0.005742, 0.003845, 0.00277, 0.001897, 0.001272,
450 0.000827, 0.000539, 0.0003469, 0.0001579, 3.134e-05, 1.341e-05,
451 6.764e-06, 4.498e-06, 3.703e-06, 3.724e-06, 3.899e-06, 4.002e-06,
452 4.122e-06, 4.277e-06, 4.438e-06, 4.558e-06, 4.673e-06, 4.763e-06,
453 4.809e-06, 4.856e-06, 4.936e-06, 5.021e-06, 5.114e-06, 5.222e-06,
454 5.331e-06, 5.414e-06, 5.488e-06, 5.563e-06, 5.633e-06, 5.704e-06,
455 5.767e-06, 5.819e-06, 5.872e-06, 5.914e-06, 5.949e-06, 5.984e-06,
456 6.015e-06, 6.044e-06, 6.073e-06, 6.104e-06, 6.136e-06, 6.167e-06,
457 6.189e-06, 6.208e-06, 6.226e-06, 6.212e-06, 6.185e-06, 6.158e-06,
458 6.114e-06, 6.066e-06, 6.018e-06, 5.877e-06, 5.728e-06, 5.582e-06,
459 5.437e-06, 5.296e-06, 5.156e-06, 5.02e-06, 4.886e-06, 4.754e-06,
460 4.625e-06, 4.498e-06, 4.374e-06, 4.242e-06, 4.096e-06, 3.955e-06,
461 3.817e-06, 3.683e-06, 3.491e-06, 3.204e-06, 2.94e-06, 2.696e-06,
462 2.47e-06, 2.252e-06, 2.019e-06, 1.808e-06, 1.618e-06, 1.445e-06,
463 1.285e-06, 1.105e-06, 9.489e-07, 8.121e-07, 6.938e-07, 5.924e-07,
464 5.04e-07, 4.288e-07, 3.648e-07, 3.103e-07, 2.642e-07, 2.252e-07,
465 1.921e-07, 1.643e-07, 1.408e-07, 1.211e-07, 1.048e-07, 9.063e-08,
466 7.835e-08, 6.774e-08, 5.936e-08, 5.221e-08, 4.592e-08, 4.061e-08,
467 3.62e-08, 3.236e-08, 2.902e-08, 2.62e-08, 2.383e-08, 2.171e-08,
468 1.989e-08, 1.823e-08, 1.684e-08, 1.562e-08, 1.449e-08, 1.351e-08
471 static double h2o2[121] = {
472 1.779e-10, 7.938e-10, 8.953e-10, 8.032e-10, 6.564e-10, 5.159e-10,
473 4.003e-10, 3.026e-10, 2.222e-10, 1.58e-10, 1.044e-10, 6.605e-11,
474 3.413e-11, 1.453e-11, 1.062e-11, 1.009e-11, 9.597e-12, 1.175e-11,
475 1.572e-11, 2.091e-11, 2.746e-11, 3.603e-11, 4.791e-11, 6.387e-11,
476 8.239e-11, 1.007e-10, 1.23e-10, 1.363e-10, 1.489e-10, 1.585e-10,
477 1.608e-10, 1.632e-10, 1.576e-10, 1.502e-10, 1.423e-10, 1.302e-10,
478 1.192e-10, 1.085e-10, 9.795e-11, 8.854e-11, 8.057e-11, 7.36e-11,
479 6.736e-11, 6.362e-11, 6.087e-11, 5.825e-11, 5.623e-11, 5.443e-11,
480 5.27e-11, 5.098e-11, 4.931e-11, 4.769e-11, 4.611e-11, 4.458e-11,
481 4.308e-11, 4.102e-11, 3.887e-11, 3.682e-11, 3.521e-11, 3.369e-11,
482 3.224e-11, 3.082e-11, 2.946e-11, 2.814e-11, 2.687e-11, 2.566e-11,
483 2.449e-11, 2.336e-11, 2.227e-11, 2.123e-11, 2.023e-11, 1.927e-11,
484 1.835e-11, 1.746e-11, 1.661e-11, 1.58e-11, 1.502e-11, 1.428e-11,
485 1.357e-11, 1.289e-11, 1.224e-11, 1.161e-11, 1.102e-11, 1.045e-11,
486 9.895e-12, 9.369e-12, 8.866e-12, 8.386e-12, 7.922e-12, 7.479e-12,
487 7.06e-12, 6.656e-12, 6.274e-12, 5.914e-12, 5.575e-12, 5.257e-12,
488 4.959e-12, 4.679e-12, 4.42e-12, 4.178e-12, 3.954e-12, 3.75e-12,
489 3.557e-12, 3.372e-12, 3.198e-12, 3.047e-12, 2.908e-12, 2.775e-12,
490 2.653e-12, 2.544e-12, 2.442e-12, 2.346e-12, 2.26e-12, 2.183e-12,
491 2.11e-12, 2.044e-12, 1.98e-12, 1.924e-12, 1.871e-12, 1.821e-12,
495 static double hcn[121] = {
496 5.5e-10, 5.5e-10, 5.5e-10, 5.5e-10, 5.5e-10, 5.5e-10, 5.5e-10,
497 5.5e-10, 5.5e-10, 5.5e-10, 5.5e-10, 5.498e-10, 5.495e-10, 5.493e-10,
498 5.49e-10, 5.488e-10, 4.717e-10, 3.946e-10, 3.174e-10, 2.4e-10,
499 1.626e-10, 1.619e-10, 1.612e-10, 1.602e-10, 1.593e-10, 1.582e-10,
500 1.572e-10, 1.56e-10, 1.549e-10, 1.539e-10, 1.53e-10, 1.519e-10,
501 1.506e-10, 1.487e-10, 1.467e-10, 1.449e-10, 1.43e-10, 1.413e-10,
502 1.397e-10, 1.382e-10, 1.368e-10, 1.354e-10, 1.337e-10, 1.315e-10,
503 1.292e-10, 1.267e-10, 1.241e-10, 1.215e-10, 1.19e-10, 1.165e-10,
504 1.141e-10, 1.118e-10, 1.096e-10, 1.072e-10, 1.047e-10, 1.021e-10,
505 9.968e-11, 9.739e-11, 9.539e-11, 9.339e-11, 9.135e-11, 8.898e-11,
506 8.664e-11, 8.439e-11, 8.249e-11, 8.075e-11, 7.904e-11, 7.735e-11,
507 7.565e-11, 7.399e-11, 7.245e-11, 7.109e-11, 6.982e-11, 6.863e-11,
508 6.755e-11, 6.657e-11, 6.587e-11, 6.527e-11, 6.476e-11, 6.428e-11,
509 6.382e-11, 6.343e-11, 6.307e-11, 6.272e-11, 6.238e-11, 6.205e-11,
510 6.17e-11, 6.137e-11, 6.102e-11, 6.072e-11, 6.046e-11, 6.03e-11,
511 6.018e-11, 6.01e-11, 6.001e-11, 5.992e-11, 5.984e-11, 5.975e-11,
512 5.967e-11, 5.958e-11, 5.95e-11, 5.941e-11, 5.933e-11, 5.925e-11,
513 5.916e-11, 5.908e-11, 5.899e-11, 5.891e-11, 5.883e-11, 5.874e-11,
514 5.866e-11, 5.858e-11, 5.85e-11, 5.841e-11, 5.833e-11, 5.825e-11,
515 5.817e-11, 5.808e-11, 5.8e-11, 5.792e-11, 5.784e-11
518 static double hno3[121] = {
519 1.809e-10, 7.234e-10, 5.899e-10, 4.342e-10, 3.277e-10, 2.661e-10,
520 2.35e-10, 2.267e-10, 2.389e-10, 2.651e-10, 3.255e-10, 4.099e-10,
521 5.42e-10, 6.978e-10, 8.807e-10, 1.112e-09, 1.405e-09, 2.04e-09,
522 3.111e-09, 4.5e-09, 5.762e-09, 7.37e-09, 7.852e-09, 8.109e-09,
523 8.067e-09, 7.554e-09, 7.076e-09, 6.268e-09, 5.524e-09, 4.749e-09,
524 3.909e-09, 3.223e-09, 2.517e-09, 1.942e-09, 1.493e-09, 1.122e-09,
525 8.449e-10, 6.361e-10, 4.787e-10, 3.611e-10, 2.804e-10, 2.215e-10,
526 1.758e-10, 1.441e-10, 1.197e-10, 9.953e-11, 8.505e-11, 7.334e-11,
527 6.325e-11, 5.625e-11, 5.058e-11, 4.548e-11, 4.122e-11, 3.748e-11,
528 3.402e-11, 3.088e-11, 2.8e-11, 2.536e-11, 2.293e-11, 2.072e-11,
529 1.871e-11, 1.687e-11, 1.52e-11, 1.368e-11, 1.23e-11, 1.105e-11,
530 9.922e-12, 8.898e-12, 7.972e-12, 7.139e-12, 6.385e-12, 5.708e-12,
531 5.099e-12, 4.549e-12, 4.056e-12, 3.613e-12, 3.216e-12, 2.862e-12,
532 2.544e-12, 2.259e-12, 2.004e-12, 1.776e-12, 1.572e-12, 1.391e-12,
533 1.227e-12, 1.082e-12, 9.528e-13, 8.379e-13, 7.349e-13, 6.436e-13,
534 5.634e-13, 4.917e-13, 4.291e-13, 3.745e-13, 3.267e-13, 2.854e-13,
535 2.494e-13, 2.181e-13, 1.913e-13, 1.68e-13, 1.479e-13, 1.31e-13,
536 1.159e-13, 1.025e-13, 9.067e-14, 8.113e-14, 7.281e-14, 6.535e-14,
537 5.892e-14, 5.348e-14, 4.867e-14, 4.439e-14, 4.073e-14, 3.76e-14,
538 3.476e-14, 3.229e-14, 3e-14, 2.807e-14, 2.635e-14, 2.473e-14,
542 static double hno4[121] = {
543 6.118e-12, 3.594e-12, 2.807e-12, 3.04e-12, 4.458e-12, 7.986e-12,
544 1.509e-11, 2.661e-11, 3.738e-11, 4.652e-11, 4.429e-11, 3.992e-11,
545 3.347e-11, 3.005e-11, 3.173e-11, 4.055e-11, 5.812e-11, 8.489e-11,
546 1.19e-10, 1.482e-10, 1.766e-10, 2.103e-10, 2.35e-10, 2.598e-10,
547 2.801e-10, 2.899e-10, 3e-10, 2.817e-10, 2.617e-10, 2.332e-10,
548 1.933e-10, 1.605e-10, 1.232e-10, 9.285e-11, 6.941e-11, 4.951e-11,
549 3.539e-11, 2.402e-11, 1.522e-11, 9.676e-12, 6.056e-12, 3.745e-12,
550 2.34e-12, 1.463e-12, 9.186e-13, 5.769e-13, 3.322e-13, 1.853e-13,
551 1.035e-13, 7.173e-14, 5.382e-14, 4.036e-14, 3.401e-14, 2.997e-14,
552 2.635e-14, 2.316e-14, 2.034e-14, 1.783e-14, 1.56e-14, 1.363e-14,
553 1.19e-14, 1.037e-14, 9.032e-15, 7.846e-15, 6.813e-15, 5.912e-15,
554 5.121e-15, 4.431e-15, 3.829e-15, 3.306e-15, 2.851e-15, 2.456e-15,
555 2.114e-15, 1.816e-15, 1.559e-15, 1.337e-15, 1.146e-15, 9.811e-16,
556 8.389e-16, 7.162e-16, 6.109e-16, 5.203e-16, 4.425e-16, 3.76e-16,
557 3.184e-16, 2.692e-16, 2.274e-16, 1.917e-16, 1.61e-16, 1.35e-16,
558 1.131e-16, 9.437e-17, 7.874e-17, 6.57e-17, 5.481e-17, 4.579e-17,
559 3.828e-17, 3.204e-17, 2.691e-17, 2.264e-17, 1.912e-17, 1.626e-17,
560 1.382e-17, 1.174e-17, 9.972e-18, 8.603e-18, 7.45e-18, 6.453e-18,
561 5.623e-18, 4.944e-18, 4.361e-18, 3.859e-18, 3.443e-18, 3.096e-18,
562 2.788e-18, 2.528e-18, 2.293e-18, 2.099e-18, 1.929e-18, 1.773e-18,
566 static double hocl[121] = {
567 1.056e-12, 1.194e-12, 1.35e-12, 1.531e-12, 1.737e-12, 1.982e-12,
568 2.263e-12, 2.599e-12, 2.991e-12, 3.459e-12, 4.012e-12, 4.662e-12,
569 5.438e-12, 6.35e-12, 7.425e-12, 8.686e-12, 1.016e-11, 1.188e-11,
570 1.389e-11, 1.659e-11, 2.087e-11, 2.621e-11, 3.265e-11, 4.064e-11,
571 4.859e-11, 5.441e-11, 6.09e-11, 6.373e-11, 6.611e-11, 6.94e-11,
572 7.44e-11, 7.97e-11, 8.775e-11, 9.722e-11, 1.064e-10, 1.089e-10,
573 1.114e-10, 1.106e-10, 1.053e-10, 1.004e-10, 9.006e-11, 7.778e-11,
574 6.739e-11, 5.636e-11, 4.655e-11, 3.845e-11, 3.042e-11, 2.368e-11,
575 1.845e-11, 1.442e-11, 1.127e-11, 8.814e-12, 6.544e-12, 4.763e-12,
576 3.449e-12, 2.612e-12, 1.999e-12, 1.526e-12, 1.16e-12, 8.793e-13,
577 6.655e-13, 5.017e-13, 3.778e-13, 2.829e-13, 2.117e-13, 1.582e-13,
578 1.178e-13, 8.755e-14, 6.486e-14, 4.799e-14, 3.54e-14, 2.606e-14,
579 1.916e-14, 1.403e-14, 1.026e-14, 7.48e-15, 5.446e-15, 3.961e-15,
580 2.872e-15, 2.076e-15, 1.498e-15, 1.077e-15, 7.726e-16, 5.528e-16,
581 3.929e-16, 2.785e-16, 1.969e-16, 1.386e-16, 9.69e-17, 6.747e-17,
582 4.692e-17, 3.236e-17, 2.232e-17, 1.539e-17, 1.061e-17, 7.332e-18,
583 5.076e-18, 3.522e-18, 2.461e-18, 1.726e-18, 1.22e-18, 8.75e-19,
584 6.264e-19, 4.482e-19, 3.207e-19, 2.368e-19, 1.762e-19, 1.312e-19,
585 9.891e-20, 7.595e-20, 5.87e-20, 4.567e-20, 3.612e-20, 2.904e-20,
586 2.343e-20, 1.917e-20, 1.568e-20, 1.308e-20, 1.1e-20, 9.25e-21,
590 static double n2o[121] = {
591 3.17e-07, 3.17e-07, 3.17e-07, 3.17e-07, 3.17e-07, 3.17e-07, 3.17e-07,
592 3.17e-07, 3.17e-07, 3.17e-07, 3.124e-07, 3.077e-07, 3.03e-07,
593 2.984e-07, 2.938e-07, 2.892e-07, 2.847e-07, 2.779e-07, 2.705e-07,
594 2.631e-07, 2.557e-07, 2.484e-07, 2.345e-07, 2.201e-07, 2.01e-07,
595 1.754e-07, 1.532e-07, 1.329e-07, 1.154e-07, 1.003e-07, 8.735e-08,
596 7.617e-08, 6.512e-08, 5.547e-08, 4.709e-08, 3.915e-08, 3.259e-08,
597 2.738e-08, 2.327e-08, 1.98e-08, 1.711e-08, 1.493e-08, 1.306e-08,
598 1.165e-08, 1.049e-08, 9.439e-09, 8.375e-09, 7.391e-09, 6.525e-09,
599 5.759e-09, 5.083e-09, 4.485e-09, 3.953e-09, 3.601e-09, 3.27e-09,
600 2.975e-09, 2.757e-09, 2.556e-09, 2.37e-09, 2.195e-09, 2.032e-09,
601 1.912e-09, 1.79e-09, 1.679e-09, 1.572e-09, 1.482e-09, 1.402e-09,
602 1.326e-09, 1.254e-09, 1.187e-09, 1.127e-09, 1.071e-09, 1.02e-09,
603 9.673e-10, 9.193e-10, 8.752e-10, 8.379e-10, 8.017e-10, 7.66e-10,
604 7.319e-10, 7.004e-10, 6.721e-10, 6.459e-10, 6.199e-10, 5.942e-10,
605 5.703e-10, 5.488e-10, 5.283e-10, 5.082e-10, 4.877e-10, 4.696e-10,
606 4.52e-10, 4.355e-10, 4.198e-10, 4.039e-10, 3.888e-10, 3.754e-10,
607 3.624e-10, 3.499e-10, 3.381e-10, 3.267e-10, 3.163e-10, 3.058e-10,
608 2.959e-10, 2.864e-10, 2.77e-10, 2.686e-10, 2.604e-10, 2.534e-10,
609 2.462e-10, 2.386e-10, 2.318e-10, 2.247e-10, 2.189e-10, 2.133e-10,
610 2.071e-10, 2.014e-10, 1.955e-10, 1.908e-10, 1.86e-10, 1.817e-10
613 static double n2o5[121] = {
614 1.231e-11, 3.035e-12, 1.702e-12, 9.877e-13, 8.081e-13, 9.039e-13,
615 1.169e-12, 1.474e-12, 1.651e-12, 1.795e-12, 1.998e-12, 2.543e-12,
616 4.398e-12, 7.698e-12, 1.28e-11, 2.131e-11, 3.548e-11, 5.894e-11,
617 7.645e-11, 1.089e-10, 1.391e-10, 1.886e-10, 2.386e-10, 2.986e-10,
618 3.487e-10, 3.994e-10, 4.5e-10, 4.6e-10, 4.591e-10, 4.1e-10, 3.488e-10,
619 2.846e-10, 2.287e-10, 1.696e-10, 1.011e-10, 6.428e-11, 4.324e-11,
620 2.225e-11, 6.214e-12, 3.608e-12, 8.793e-13, 4.491e-13, 1.04e-13,
621 6.1e-14, 3.436e-14, 6.671e-15, 1.171e-15, 5.848e-16, 1.212e-16,
622 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
623 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
624 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
625 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
626 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
627 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
628 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16, 1e-16,
632 static double nh3[121] = {
633 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,
634 1e-10, 1e-10, 1e-10, 1e-10, 9.444e-11, 8.488e-11, 7.241e-11, 5.785e-11,
635 4.178e-11, 3.018e-11, 2.18e-11, 1.574e-11, 1.137e-11, 8.211e-12,
636 5.973e-12, 4.327e-12, 3.118e-12, 2.234e-12, 1.573e-12, 1.04e-12,
637 6.762e-13, 4.202e-13, 2.406e-13, 1.335e-13, 6.938e-14, 3.105e-14,
638 1.609e-14, 1.033e-14, 6.432e-15, 4.031e-15, 2.555e-15, 1.656e-15,
639 1.115e-15, 7.904e-16, 5.63e-16, 4.048e-16, 2.876e-16, 2.004e-16,
640 1.356e-16, 9.237e-17, 6.235e-17, 4.223e-17, 3.009e-17, 2.328e-17,
641 2.002e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
642 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
643 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
644 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
645 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
646 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
647 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
648 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
649 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
650 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
651 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17, 1.914e-17,
655 static double no[121] = {
656 2.586e-10, 4.143e-11, 1.566e-11, 9.591e-12, 8.088e-12, 8.462e-12,
657 1.013e-11, 1.328e-11, 1.855e-11, 2.678e-11, 3.926e-11, 5.464e-11,
658 7.012e-11, 8.912e-11, 1.127e-10, 1.347e-10, 1.498e-10, 1.544e-10,
659 1.602e-10, 1.824e-10, 2.078e-10, 2.366e-10, 2.691e-10, 5.141e-10,
660 8.259e-10, 1.254e-09, 1.849e-09, 2.473e-09, 3.294e-09, 4.16e-09,
661 5.095e-09, 6.11e-09, 6.93e-09, 7.888e-09, 8.903e-09, 9.713e-09,
662 1.052e-08, 1.115e-08, 1.173e-08, 1.21e-08, 1.228e-08, 1.239e-08,
663 1.231e-08, 1.213e-08, 1.192e-08, 1.138e-08, 1.085e-08, 1.008e-08,
664 9.224e-09, 8.389e-09, 7.262e-09, 6.278e-09, 5.335e-09, 4.388e-09,
665 3.589e-09, 2.761e-09, 2.129e-09, 1.633e-09, 1.243e-09, 9.681e-10,
666 8.355e-10, 7.665e-10, 7.442e-10, 8.584e-10, 9.732e-10, 1.063e-09,
667 1.163e-09, 1.286e-09, 1.472e-09, 1.707e-09, 2.032e-09, 2.474e-09,
668 2.977e-09, 3.506e-09, 4.102e-09, 5.013e-09, 6.493e-09, 8.414e-09,
669 1.077e-08, 1.367e-08, 1.777e-08, 2.625e-08, 3.926e-08, 5.545e-08,
670 7.195e-08, 9.464e-08, 1.404e-07, 2.183e-07, 3.329e-07, 4.535e-07,
671 6.158e-07, 8.187e-07, 1.075e-06, 1.422e-06, 1.979e-06, 2.71e-06,
672 3.58e-06, 4.573e-06, 5.951e-06, 7.999e-06, 1.072e-05, 1.372e-05,
673 1.697e-05, 2.112e-05, 2.643e-05, 3.288e-05, 3.994e-05, 4.794e-05,
674 5.606e-05, 6.383e-05, 7.286e-05, 8.156e-05, 8.883e-05, 9.469e-05,
675 9.848e-05, 0.0001023, 0.0001066, 0.0001115, 0.0001145, 0.0001142,
679 static double no2[121] = {
680 3.036e-09, 2.945e-10, 9.982e-11, 5.069e-11, 3.485e-11, 2.982e-11,
681 2.947e-11, 3.164e-11, 3.714e-11, 4.586e-11, 6.164e-11, 8.041e-11,
682 9.982e-11, 1.283e-10, 1.73e-10, 2.56e-10, 3.909e-10, 5.959e-10,
683 9.081e-10, 1.384e-09, 1.788e-09, 2.189e-09, 2.686e-09, 3.091e-09,
684 3.49e-09, 3.796e-09, 4.2e-09, 5.103e-09, 6.005e-09, 6.3e-09, 6.706e-09,
685 7.07e-09, 7.434e-09, 7.663e-09, 7.788e-09, 7.8e-09, 7.597e-09,
686 7.482e-09, 7.227e-09, 6.403e-09, 5.585e-09, 4.606e-09, 3.703e-09,
687 2.984e-09, 2.183e-09, 1.48e-09, 8.441e-10, 5.994e-10, 3.799e-10,
688 2.751e-10, 1.927e-10, 1.507e-10, 1.102e-10, 6.971e-11, 5.839e-11,
689 3.904e-11, 3.087e-11, 2.176e-11, 1.464e-11, 1.209e-11, 8.497e-12,
690 6.477e-12, 4.371e-12, 2.914e-12, 2.424e-12, 1.753e-12, 1.35e-12,
691 9.417e-13, 6.622e-13, 5.148e-13, 3.841e-13, 3.446e-13, 3.01e-13,
692 2.551e-13, 2.151e-13, 1.829e-13, 1.64e-13, 1.475e-13, 1.352e-13,
693 1.155e-13, 9.963e-14, 9.771e-14, 9.577e-14, 9.384e-14, 9.186e-14,
694 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14,
695 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14,
696 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14,
697 9e-14, 9e-14, 9e-14, 9e-14, 9e-14, 9e-14
700 static double o3[121] = {
701 2.218e-08, 3.394e-08, 3.869e-08, 4.219e-08, 4.501e-08, 4.778e-08,
702 5.067e-08, 5.402e-08, 5.872e-08, 6.521e-08, 7.709e-08, 9.461e-08,
703 1.269e-07, 1.853e-07, 2.723e-07, 3.964e-07, 5.773e-07, 8.2e-07,
704 1.155e-06, 1.59e-06, 2.076e-06, 2.706e-06, 3.249e-06, 3.848e-06,
705 4.459e-06, 4.986e-06, 5.573e-06, 5.958e-06, 6.328e-06, 6.661e-06,
706 6.9e-06, 7.146e-06, 7.276e-06, 7.374e-06, 7.447e-06, 7.383e-06,
707 7.321e-06, 7.161e-06, 6.879e-06, 6.611e-06, 6.216e-06, 5.765e-06,
708 5.355e-06, 4.905e-06, 4.471e-06, 4.075e-06, 3.728e-06, 3.413e-06,
709 3.125e-06, 2.856e-06, 2.607e-06, 2.379e-06, 2.17e-06, 1.978e-06,
710 1.8e-06, 1.646e-06, 1.506e-06, 1.376e-06, 1.233e-06, 1.102e-06,
711 9.839e-07, 8.771e-07, 7.814e-07, 6.947e-07, 6.102e-07, 5.228e-07,
712 4.509e-07, 3.922e-07, 3.501e-07, 3.183e-07, 2.909e-07, 2.686e-07,
713 2.476e-07, 2.284e-07, 2.109e-07, 2.003e-07, 2.013e-07, 2.022e-07,
714 2.032e-07, 2.042e-07, 2.097e-07, 2.361e-07, 2.656e-07, 2.989e-07,
715 3.37e-07, 3.826e-07, 4.489e-07, 5.26e-07, 6.189e-07, 7.312e-07,
716 8.496e-07, 8.444e-07, 8.392e-07, 8.339e-07, 8.286e-07, 8.234e-07,
717 8.181e-07, 8.129e-07, 8.077e-07, 8.026e-07, 6.918e-07, 5.176e-07,
718 3.865e-07, 2.885e-07, 2.156e-07, 1.619e-07, 1.219e-07, 9.161e-08,
719 6.972e-08, 5.399e-08, 3.498e-08, 2.111e-08, 1.322e-08, 8.482e-09,
720 5.527e-09, 3.423e-09, 2.071e-09, 1.314e-09, 8.529e-10, 5.503e-10,
724 static double ocs[121] = {
725 6e-10, 6e-10, 6e-10, 6e-10, 6e-10, 6e-10, 6e-10, 6e-10, 6e-10, 5.997e-10,
726 5.989e-10, 5.881e-10, 5.765e-10, 5.433e-10, 5.074e-10, 4.567e-10,
727 4.067e-10, 3.601e-10, 3.093e-10, 2.619e-10, 2.232e-10, 1.805e-10,
728 1.46e-10, 1.187e-10, 8.03e-11, 5.435e-11, 3.686e-11, 2.217e-11,
729 1.341e-11, 8.756e-12, 4.511e-12, 2.37e-12, 1.264e-12, 8.28e-13,
730 5.263e-13, 3.209e-13, 1.717e-13, 9.068e-14, 4.709e-14, 2.389e-14,
731 1.236e-14, 1.127e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
732 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
733 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
734 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
735 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
736 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
737 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
738 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
739 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
740 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
741 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
742 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
743 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14, 1.091e-14,
744 1.091e-14, 1.091e-14, 1.091e-14
747 static double sf6[121] = {
748 4.103e-12, 4.103e-12, 4.103e-12, 4.103e-12, 4.103e-12, 4.103e-12,
749 4.103e-12, 4.103e-12, 4.103e-12, 4.087e-12, 4.064e-12, 4.023e-12,
750 3.988e-12, 3.941e-12, 3.884e-12, 3.755e-12, 3.622e-12, 3.484e-12,
751 3.32e-12, 3.144e-12, 2.978e-12, 2.811e-12, 2.653e-12, 2.489e-12,
752 2.332e-12, 2.199e-12, 2.089e-12, 2.013e-12, 1.953e-12, 1.898e-12,
753 1.859e-12, 1.826e-12, 1.798e-12, 1.776e-12, 1.757e-12, 1.742e-12,
754 1.728e-12, 1.717e-12, 1.707e-12, 1.698e-12, 1.691e-12, 1.685e-12,
755 1.679e-12, 1.675e-12, 1.671e-12, 1.668e-12, 1.665e-12, 1.663e-12,
756 1.661e-12, 1.659e-12, 1.658e-12, 1.657e-12, 1.656e-12, 1.655e-12,
757 1.654e-12, 1.653e-12, 1.653e-12, 1.652e-12, 1.652e-12, 1.652e-12,
758 1.651e-12, 1.651e-12, 1.651e-12, 1.651e-12, 1.651e-12, 1.651e-12,
759 1.651e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
760 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
761 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
762 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
763 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
764 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
765 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12,
766 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12, 1.65e-12
769 static double so2[121] = {
770 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,
771 1e-10, 1e-10, 9.867e-11, 9.537e-11, 9e-11, 8.404e-11, 7.799e-11,
772 7.205e-11, 6.616e-11, 6.036e-11, 5.475e-11, 5.007e-11, 4.638e-11,
773 4.346e-11, 4.055e-11, 3.763e-11, 3.471e-11, 3.186e-11, 2.905e-11,
774 2.631e-11, 2.358e-11, 2.415e-11, 2.949e-11, 3.952e-11, 5.155e-11,
775 6.76e-11, 8.741e-11, 1.099e-10, 1.278e-10, 1.414e-10, 1.512e-10,
776 1.607e-10, 1.699e-10, 1.774e-10, 1.832e-10, 1.871e-10, 1.907e-10,
777 1.943e-10, 1.974e-10, 1.993e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
778 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
779 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
780 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
781 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
782 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
783 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10,
784 2e-10, 2e-10, 2e-10, 2e-10, 2e-10, 2e-10
787 static int ig_co2 = -999;
789 double *q[
NG] = { NULL };
796 for (
int ig = 0; ig < ctl->
ng; ig++) {
798 if (strcasecmp(ctl->
emitter[ig],
"C2H2") == 0)
800 if (strcasecmp(ctl->
emitter[ig],
"C2H6") == 0)
802 if (strcasecmp(ctl->
emitter[ig],
"CCl4") == 0)
804 if (strcasecmp(ctl->
emitter[ig],
"CH4") == 0)
806 if (strcasecmp(ctl->
emitter[ig],
"ClO") == 0)
808 if (strcasecmp(ctl->
emitter[ig],
"ClONO2") == 0)
810 if (strcasecmp(ctl->
emitter[ig],
"CO") == 0)
812 if (strcasecmp(ctl->
emitter[ig],
"COF2") == 0)
814 if (strcasecmp(ctl->
emitter[ig],
"F11") == 0)
816 if (strcasecmp(ctl->
emitter[ig],
"F12") == 0)
818 if (strcasecmp(ctl->
emitter[ig],
"F14") == 0)
820 if (strcasecmp(ctl->
emitter[ig],
"F22") == 0)
822 if (strcasecmp(ctl->
emitter[ig],
"H2O") == 0)
824 if (strcasecmp(ctl->
emitter[ig],
"H2O2") == 0)
826 if (strcasecmp(ctl->
emitter[ig],
"HCN") == 0)
828 if (strcasecmp(ctl->
emitter[ig],
"HNO3") == 0)
830 if (strcasecmp(ctl->
emitter[ig],
"HNO4") == 0)
832 if (strcasecmp(ctl->
emitter[ig],
"HOCl") == 0)
834 if (strcasecmp(ctl->
emitter[ig],
"N2O") == 0)
836 if (strcasecmp(ctl->
emitter[ig],
"N2O5") == 0)
838 if (strcasecmp(ctl->
emitter[ig],
"NH3") == 0)
840 if (strcasecmp(ctl->
emitter[ig],
"NO") == 0)
842 if (strcasecmp(ctl->
emitter[ig],
"NO2") == 0)
844 if (strcasecmp(ctl->
emitter[ig],
"O3") == 0)
846 if (strcasecmp(ctl->
emitter[ig],
"OCS") == 0)
848 if (strcasecmp(ctl->
emitter[ig],
"SF6") == 0)
850 if (strcasecmp(ctl->
emitter[ig],
"SO2") == 0)
855 for (
int ip = 0; ip < atm->
np; ip++) {
861 atm->
p[ip] =
LOGY(z[iz], pre[iz], z[iz + 1], pre[iz + 1], atm->
z[ip]);
864 atm->
t[ip] =
LIN(z[iz], tem[iz], z[iz + 1], tem[iz + 1], atm->
z[ip]);
867 for (
int ig = 0; ig < ctl->
ng; ig++)
870 LIN(z[iz], q[ig][iz], z[iz + 1], q[ig][iz + 1], atm->
z[ip]);
877 371.789948e-6 + 2.026214e-6 * (atm->
time[ip] - 63158400.) / 31557600.;
880 for (
int iw = 0; iw < ctl->
nw; iw++)
885 for (
int icl = 0; icl < ctl->
ncl; icl++)
890 for (
int isf = 0; isf < ctl->
nsf; isf++)
903 static double co2296[2001] = { 9.3388e-5, 9.7711e-5, 1.0224e-4, 1.0697e-4,
904 1.1193e-4, 1.1712e-4, 1.2255e-4, 1.2824e-4, 1.3419e-4, 1.4043e-4,
905 1.4695e-4, 1.5378e-4, 1.6094e-4, 1.6842e-4, 1.7626e-4, 1.8447e-4,
906 1.9307e-4, 2.0207e-4, 2.1149e-4, 2.2136e-4, 2.3169e-4, 2.4251e-4,
907 2.5384e-4, 2.657e-4, 2.7813e-4, 2.9114e-4, 3.0477e-4, 3.1904e-4,
908 3.3399e-4, 3.4965e-4, 3.6604e-4, 3.8322e-4, 4.0121e-4, 4.2006e-4,
909 4.398e-4, 4.6047e-4, 4.8214e-4, 5.0483e-4, 5.286e-4, 5.535e-4,
910 5.7959e-4, 6.0693e-4, 6.3557e-4, 6.6558e-4, 6.9702e-4, 7.2996e-4,
911 7.6449e-4, 8.0066e-4, 8.3856e-4, 8.7829e-4, 9.1991e-4, 9.6354e-4,
912 .0010093, .0010572, .0011074, .00116, .0012152, .001273,
913 .0013336, .0013972, .0014638, .0015336, .0016068, .0016835,
914 .001764, .0018483, .0019367, .0020295, .0021267, .0022286,
915 .0023355, .0024476, .0025652, .0026885, .0028178, .0029534,
916 .0030956, .0032448, .0034012, .0035654, .0037375, .0039181,
917 .0041076, .0043063, .0045148, .0047336, .0049632, .005204,
918 .0054567, .0057219, .0060002, .0062923, .0065988, .0069204,
919 .007258, .0076123, .0079842, .0083746, .0087844, .0092146,
920 .0096663, .01014, .010638, .011161, .01171, .012286, .012891,
921 .013527, .014194, .014895, .015631, .016404, .017217, .01807,
922 .018966, .019908, .020897, .021936, .023028, .024176, .025382,
923 .026649, .027981, .02938, .030851, .032397, .034023, .035732,
924 .037528, .039416, .041402, .04349, .045685, .047994, .050422,
925 .052975, .055661, .058486, .061458, .064584, .067873, .071334,
926 .074975, .078807, .082839, .087082, .091549, .096249, .1012,
927 .10641, .11189, .11767, .12375, .13015, .13689, .14399, .15147,
928 .15935, .16765, .17639, .18561, .19531, .20554, .21632, .22769,
929 .23967, .25229, .2656, .27964, .29443, .31004, .3265, .34386,
930 .36218, .3815, .40188, .42339, .44609, .47004, .49533, .52202,
931 .5502, .57995, .61137, .64455, .6796, .71663, .75574, .79707,
932 .84075, .88691, .9357, .98728, 1.0418, 1.0995, 1.1605, 1.225,
933 1.2932, 1.3654, 1.4418, 1.5227, 1.6083, 1.6989, 1.7948, 1.8964,
934 2.004, 2.118, 2.2388, 2.3668, 2.5025, 2.6463, 2.7988, 2.9606,
935 3.1321, 3.314, 3.5071, 3.712, 3.9296, 4.1605, 4.4058, 4.6663,
936 4.9431, 5.2374, 5.5501, 5.8818, 6.2353, 6.6114, 7.0115, 7.4372,
937 7.8905, 8.3731, 8.8871, 9.4349, 10.019, 10.641, 11.305, 12.013,
938 12.769, 13.576, 14.437, 15.358, 16.342, 17.39, 18.513, 19.716,
939 21.003, 22.379, 23.854, 25.436, 27.126, 28.942, 30.89, 32.973,
940 35.219, 37.634, 40.224, 43.021, 46.037, 49.29, 52.803, 56.447,
941 60.418, 64.792, 69.526, 74.637, 80.182, 86.193, 92.713, 99.786,
942 107.47, 115.84, 124.94, 134.86, 145.69, 157.49, 170.3, 184.39,
943 199.83, 216.4, 234.55, 254.72, 276.82, 299.85, 326.16, 354.99,
944 386.51, 416.68, 449.89, 490.12, 534.35, 578.25, 632.26, 692.61,
945 756.43, 834.75, 924.11, 1016.9, 996.96, 1102.7, 1219.2, 1351.9,
946 1494.3, 1654.1, 1826.5, 2027.9, 2249., 2453.8, 2714.4, 2999.4,
947 3209.5, 3509., 3840.4, 3907.5, 4190.7, 4533.5, 4648.3, 5059.1,
948 5561.6, 6191.4, 6820.8, 7905.9, 9362.2, 2431.3, 2211.3, 2046.8,
949 2023.8, 1985.9, 1905.9, 1491.1, 1369.8, 1262.2, 1200.7, 887.74,
950 820.25, 885.23, 887.21, 816.73, 1126.9, 1216.2, 1272.4, 1579.5,
951 1634.2, 1656.3, 1657.9, 1789.5, 1670.8, 1509.5, 8474.6, 7489.2,
952 6793.6, 6117., 5574.1, 5141.2, 5084.6, 4745.1, 4413.2, 4102.8,
953 4024.7, 3715., 3398.6, 3100.8, 2900.4, 2629.2, 2374., 2144.7,
954 1955.8, 1760.8, 1591.2, 1435.2, 1296.2, 1174., 1065.1, 967.76,
955 999.48, 897.45, 809.23, 732.77, 670.26, 611.93, 560.11, 518.77,
956 476.84, 438.8, 408.48, 380.21, 349.24, 322.71, 296.65, 272.85,
957 251.96, 232.04, 213.88, 197.69, 182.41, 168.41, 155.79, 144.05,
958 133.31, 123.48, 114.5, 106.21, 98.591, 91.612, 85.156, 79.204,
959 73.719, 68.666, 63.975, 59.637, 56.35, 52.545, 49.042, 45.788,
960 42.78, 39.992, 37.441, 35.037, 32.8, 30.744, 28.801, 26.986,
961 25.297, 23.731, 22.258, 20.883, 19.603, 18.403, 17.295, 16.249,
962 15.271, 14.356, 13.501, 12.701, 11.954, 11.254, 10.6, 9.9864,
963 9.4118, 8.8745, 8.3714, 7.8997, 7.4578, 7.0446, 6.6573, 6.2949,
964 5.9577, 5.6395, 5.3419, 5.063, 4.8037, 4.5608, 4.3452, 4.1364,
965 3.9413, 3.7394, 3.562, 3.3932, 3.2325, 3.0789, 2.9318, 2.7898,
966 2.6537, 2.5225, 2.3958, 2.2305, 2.1215, 2.0245, 1.9427, 1.8795,
967 1.8336, 1.7604, 1.7016, 1.6419, 1.5282, 1.4611, 1.3443, 1.27,
968 1.1675, 1.0824, 1.0534, .99833, .95854, .92981, .90887, .89346,
969 .88113, .87068, .86102, .85096, .88262, .86151, .83565, .80518,
970 .77045, .73736, .74744, .74954, .75773, .82267, .83493, .89402,
971 .89725, .93426, .95564, .94045, .94174, .93404, .92035, .90456,
972 .88621, .86673, .78117, .7515, .72056, .68822, .65658, .62764,
973 .55984, .55598, .57407, .60963, .63763, .66198, .61132, .60972,
974 .52496, .50649, .41872, .3964, .32422, .27276, .24048, .23772,
975 .2286, .22711, .23999, .32038, .34371, .36621, .38561, .39953,
976 .40636, .44913, .42716, .3919, .35477, .33935, .3351, .39746,
977 .40993, .49398, .49956, .56157, .54742, .57295, .57386, .55417,
978 .50745, .471, .43446, .39102, .34993, .31269, .27888, .24912,
979 .22291, .19994, .17972, .16197, .14633, .13252, .12029, .10942,
980 .099745, .091118, .083404, .076494, .070292, .064716, .059697,
981 .055173, .051093, .047411, .044089, .041092, .038392, .035965,
982 .033789, .031846, .030122, .028607, .02729, .026169, .025209,
983 .024405, .023766, .023288, .022925, .022716, .022681, .022685,
984 .022768, .023133, .023325, .023486, .024004, .024126, .024083,
985 .023785, .024023, .023029, .021649, .021108, .019454, .017809,
986 .017292, .016635, .017037, .018068, .018977, .018756, .017847,
987 .016557, .016142, .014459, .012869, .012381, .010875, .0098701,
988 .009285, .0091698, .0091701, .0096145, .010553, .01106, .012613,
989 .014362, .015017, .016507, .017741, .01768, .017784, .0171,
990 .016357, .016172, .017257, .018978, .020935, .021741, .023567,
991 .025183, .025589, .026732, .027648, .028278, .028215, .02856,
992 .029015, .029062, .028851, .028497, .027825, .027801, .026523,
993 .02487, .022967, .022168, .020194, .018605, .017903, .018439,
994 .019697, .020311, .020855, .020057, .018608, .016738, .015963,
995 .013844, .011801, .011134, .0097573, .0086007, .0086226,
996 .0083721, .0090978, .0097616, .0098426, .011317, .012853, .01447,
997 .014657, .015771, .016351, .016079, .014829, .013431, .013185,
998 .013207, .01448, .016176, .017971, .018265, .019526, .020455,
999 .019797, .019802, .0194, .018176, .017505, .016197, .015339,
1000 .014401, .013213, .012203, .011186, .010236, .0093288, .0084854,
1001 .0076837, .0069375, .0062614, .0056628, .0051153, .0046015,
1002 .0041501, .003752, .0033996, .0030865, .0028077, .0025586,
1003 .0023355, .0021353, .0019553, .0017931, .0016466, .0015141,
1004 .0013941, .0012852, .0011862, .0010962, .0010142, 9.3935e-4,
1005 8.71e-4, 8.0851e-4, 7.5132e-4, 6.9894e-4, 6.5093e-4, 6.0689e-4,
1006 5.6647e-4, 5.2935e-4, 4.9525e-4, 4.6391e-4, 4.3509e-4, 4.086e-4,
1007 3.8424e-4, 3.6185e-4, 3.4126e-4, 3.2235e-4, 3.0498e-4, 2.8904e-4,
1008 2.7444e-4, 2.6106e-4, 2.4883e-4, 2.3766e-4, 2.275e-4, 2.1827e-4,
1009 2.0992e-4, 2.0239e-4, 1.9563e-4, 1.896e-4, 1.8427e-4, 1.796e-4,
1010 1.7555e-4, 1.7209e-4, 1.692e-4, 1.6687e-4, 1.6505e-4, 1.6375e-4,
1011 1.6294e-4, 1.6261e-4, 1.6274e-4, 1.6334e-4, 1.6438e-4, 1.6587e-4,
1012 1.678e-4, 1.7017e-4, 1.7297e-4, 1.762e-4, 1.7988e-4, 1.8399e-4,
1013 1.8855e-4, 1.9355e-4, 1.9902e-4, 2.0494e-4, 2.1134e-4, 2.1823e-4,
1014 2.2561e-4, 2.335e-4, 2.4192e-4, 2.5088e-4, 2.604e-4, 2.705e-4,
1015 2.8119e-4, 2.9251e-4, 3.0447e-4, 3.171e-4, 3.3042e-4, 3.4447e-4,
1016 3.5927e-4, 3.7486e-4, 3.9127e-4, 4.0854e-4, 4.267e-4, 4.4579e-4,
1017 4.6586e-4, 4.8696e-4, 5.0912e-4, 5.324e-4, 5.5685e-4, 5.8253e-4,
1018 6.0949e-4, 6.378e-4, 6.6753e-4, 6.9873e-4, 7.3149e-4, 7.6588e-4,
1019 8.0198e-4, 8.3987e-4, 8.7964e-4, 9.2139e-4, 9.6522e-4, .0010112,
1020 .0010595, .0011102, .0011634, .0012193, .001278, .0013396,
1021 .0014043, .0014722, .0015436, .0016185, .0016972, .0017799,
1022 .0018668, .001958, .0020539, .0021547, .0022606, .0023719,
1023 .002489, .002612, .0027414, .0028775, .0030206, .0031712,
1024 .0033295, .0034962, .0036716, .0038563, .0040506, .0042553,
1025 .0044709, .004698, .0049373, .0051894, .0054552, .0057354,
1026 .006031, .0063427, .0066717, .0070188, .0073854, .0077726,
1027 .0081816, .0086138, .0090709, .0095543, .010066, .010607,
1028 .011181, .011789, .012433, .013116, .013842, .014613, .015432,
1029 .016304, .017233, .018224, .019281, .020394, .021574, .022836,
1030 .024181, .025594, .027088, .028707, .030401, .032245, .034219,
1031 .036262, .038539, .040987, .043578, .04641, .04949, .052726,
1032 .056326, .0602, .064093, .068521, .073278, .077734, .083064,
1033 .088731, .093885, .1003, .1072, .11365, .12187, .13078, .13989,
1034 .15095, .16299, .17634, .19116, .20628, .22419, .24386, .26587,
1035 .28811, .31399, .34321, .36606, .39675, .42742, .44243, .47197,
1036 .49993, .49027, .51147, .52803, .48931, .49729, .5026, .43854,
1037 .441, .44766, .43414, .46151, .50029, .55247, .43855, .32115,
1038 .32607, .3431, .36119, .38029, .41179, .43996, .47144, .51853,
1039 .55362, .59122, .66338, .69877, .74001, .82923, .86907, .90361,
1040 1.0025, 1.031, 1.0559, 1.104, 1.1178, 1.1341, 1.1547, 1.351,
1041 1.4772, 1.4812, 1.4907, 1.512, 1.5442, 1.5853, 1.6358, 1.6963,
1042 1.7674, 1.8474, 1.9353, 2.0335, 2.143, 2.2592, 2.3853, 2.5217,
1043 2.6686, 2.8273, 2.9998, 3.183, 3.3868, 3.6109, 3.8564, 4.1159,
1044 4.4079, 4.7278, 5.0497, 5.3695, 5.758, 6.0834, 6.4976, 6.9312,
1045 7.38, 7.5746, 7.9833, 8.3791, 8.3956, 8.7501, 9.1067, 9.072,
1046 9.4649, 9.9112, 10.402, 10.829, 11.605, 12.54, 12.713, 10.443,
1047 10.825, 11.375, 11.955, 12.623, 13.326, 14.101, 15.041, 15.547,
1048 16.461, 17.439, 18.716, 19.84, 21.036, 22.642, 23.901, 25.244,
1049 27.03, 28.411, 29.871, 31.403, 33.147, 34.744, 36.456, 39.239,
1050 43.605, 45.162, 47.004, 49.093, 51.391, 53.946, 56.673, 59.629,
1051 63.167, 66.576, 70.254, 74.222, 78.477, 83.034, 87.914, 93.18,
1052 98.77, 104.74, 111.15, 117.95, 125.23, 133.01, 141.33, 150.21,
1053 159.71, 169.89, 180.93, 192.54, 204.99, 218.34, 232.65, 248.,
1054 264.47, 282.14, 301.13, 321.53, 343.48, 367.08, 392.5, 419.88,
1055 449.4, 481.26, 515.64, 552.79, 592.99, 636.48, 683.61, 734.65,
1056 789.99, 850.02, 915.14, 985.81, 1062.5, 1147.1, 1237.8, 1336.4,
1057 1443.2, 1558.9, 1684.2, 1819.2, 1965.2, 2122.6, 2291.7, 2470.8,
1058 2665.7, 2874.9, 3099.4, 3337.9, 3541., 3813.3, 4111.9, 4439.3,
1059 4798.9, 5196., 5639.2, 6087.5, 6657.7, 7306.7, 8040.7, 8845.5,
1060 9702.2, 10670., 11739., 12842., 14141., 15498., 17068., 18729.,
1061 20557., 22559., 25248., 27664., 30207., 32915., 35611., 38081.,
1062 40715., 43191., 41651., 42750., 43785., 44353., 44366., 44189.,
1063 43618., 42862., 41878., 35133., 35215., 36383., 39420., 44055.,
1064 44155., 45850., 46853., 39197., 38274., 29942., 28553., 21792.,
1065 21228., 17106., 14955., 18181., 19557., 21427., 23728., 26301.,
1066 28584., 30775., 32536., 33867., 40089., 39204., 37329., 34452.,
1067 31373., 33921., 34800., 36043., 44415., 45162., 52181., 50895.,
1068 54140., 50840., 50468., 48302., 44915., 40910., 36754., 32755.,
1069 29093., 25860., 22962., 20448., 18247., 16326., 14645., 13165.,
1070 11861., 10708., 9686.9, 8779.7, 7971.9, 7250.8, 6605.7, 6027.2,
1071 5507.3, 5039.1, 4616.6, 4234.8, 3889., 3575.4, 3290.5, 3031.3,
1072 2795.2, 2579.9, 2383.1, 2203.3, 2038.6, 1887.6, 1749.1, 1621.9,
1073 1505., 1397.4, 1298.3, 1207., 1122.8, 1045., 973.1, 906.64,
1074 845.16, 788.22, 735.48, 686.57, 641.21, 599.1, 559.99, 523.64,
1075 489.85, 458.42, 429.16, 401.92, 376.54, 352.88, 330.82, 310.24,
1076 291.03, 273.09, 256.34, 240.69, 226.05, 212.37, 199.57, 187.59,
1077 176.37, 165.87, 156.03, 146.82, 138.17, 130.07, 122.47, 115.34,
1078 108.65, 102.37, 96.473, 90.934, 85.73, 80.84, 76.243, 71.922,
1079 67.858, 64.034, 60.438, 57.052, 53.866, 50.866, 48.04, 45.379,
1080 42.872, 40.51, 38.285, 36.188, 34.211, 32.347, 30.588, 28.929,
1081 27.362, 25.884, 24.489, 23.171, 21.929, 20.755, 19.646, 18.599,
1082 17.61, 16.677, 15.795, 14.961, 14.174, 13.43, 12.725, 12.06,
1083 11.431, 10.834, 10.27, 9.7361, 9.2302, 8.7518, 8.2997, 7.8724,
1084 7.4674, 7.0848, 6.7226, 6.3794, 6.054, 5.745, 5.4525, 5.1752,
1085 4.9121, 4.6625, 4.4259, 4.2015, 3.9888, 3.7872, 3.5961, 3.4149,
1086 3.2431, 3.0802, 2.9257, 2.7792, 2.6402, 2.5084, 2.3834, 2.2648,
1087 2.1522, 2.0455, 1.9441, 1.848, 1.7567, 1.6701, 1.5878, 1.5097,
1088 1.4356, 1.3651, 1.2981, 1.2345, 1.174, 1.1167, 1.062, 1.0101,
1089 .96087, .91414, .86986, .82781, .78777, .74971, .71339, .67882,
1090 .64604, .61473, .58507, .55676, .52987, .5044, .48014, .45715,
1091 .43527, .41453, .3948, .37609, .35831, .34142, .32524, .30995,
1092 .29536, .28142, .26807, .25527, .24311, .23166, .22077, .21053,
1093 .20081, .19143, .18261, .17407, .16603, .15833, .15089, .14385,
1094 .13707, .13065, .12449, .11865, .11306, .10774, .10266, .097818,
1095 .093203, .088815, .084641, .080671, .076892, .073296, .069873,
1096 .066613, .06351, .060555, .05774, .055058, .052504, .050071,
1097 .047752, .045543, .043438, .041432, .039521, .037699, .035962,
1098 .034307, .032729, .031225, .029791, .028423, .02712, .025877,
1099 .024692, .023563, .022485, .021458, .020478, .019543, .018652,
1100 .017802, .016992, .016219, .015481, .014778, .014107, .013467,
1101 .012856, .012274, .011718, .011188, .010682, .0102, .0097393,
1102 .0093001, .008881, .0084812, .0080997, .0077358, .0073885,
1103 .0070571, .0067409, .0064393, .0061514, .0058768, .0056147,
1104 .0053647, .0051262, .0048987, .0046816, .0044745, .0042769,
1105 .0040884, .0039088, .0037373, .0035739, .003418, .0032693,
1106 .0031277, .0029926, .0028639, .0027413, .0026245, .0025133,
1107 .0024074, .0023066, .0022108, .0021196, .002033, .0019507,
1108 .0018726, .0017985, .0017282, .0016617, .0015988, .0015394,
1109 .0014834, .0014306, .0013811, .0013346, .0012911, .0012506,
1110 .0012131, .0011784, .0011465, .0011175, .0010912, .0010678,
1111 .0010472, .0010295, .0010147, .001003, 9.9428e-4, 9.8883e-4,
1112 9.8673e-4, 9.8821e-4, 9.9343e-4, .0010027, .0010164, .0010348,
1113 .0010586, .0010882, .0011245, .0011685, .0012145, .0012666,
1114 .0013095, .0013688, .0014048, .0014663, .0015309, .0015499,
1115 .0016144, .0016312, .001705, .0017892, .0018499, .0019715,
1116 .0021102, .0022442, .0024284, .0025893, .0027703, .0029445,
1117 .0031193, .003346, .0034552, .0036906, .0037584, .0040084,
1118 .0041934, .0044587, .0047093, .0049759, .0053421, .0055134,
1119 .0059048, .0058663, .0061036, .0063259, .0059657, .0060653,
1120 .0060972, .0055539, .0055653, .0055772, .005331, .0054953,
1121 .0055919, .0058684, .006183, .0066675, .0069808, .0075142,
1122 .0078536, .0084282, .0089454, .0094625, .0093703, .0095857,
1123 .0099283, .010063, .010521, .0097778, .0098175, .010379, .010447,
1124 .0105, .010617, .010706, .01078, .011177, .011212, .011304,
1125 .011446, .011603, .011816, .012165, .012545, .013069, .013539,
1126 .01411, .014776, .016103, .017016, .017994, .018978, .01998,
1127 .021799, .022745, .023681, .024627, .025562, .026992, .027958,
1128 .029013, .030154, .031402, .03228, .033651, .035272, .037088,
1129 .039021, .041213, .043597, .045977, .04877, .051809, .054943,
1130 .058064, .061528, .06537, .069309, .071928, .075752, .079589,
1131 .083352, .084096, .087497, .090817, .091198, .094966, .099045,
1132 .10429, .10867, .11518, .12269, .13126, .14087, .15161, .16388,
1133 .16423, .1759, .18721, .19994, .21275, .22513, .23041, .24231,
1134 .25299, .25396, .26396, .27696, .27929, .2908, .30595, .31433,
1135 .3282, .3429, .35944, .37467, .39277, .41245, .43326, .45649,
1136 .48152, .51897, .54686, .57877, .61263, .64962, .68983, .73945,
1137 .78619, .83537, .89622, .95002, 1.0067, 1.0742, 1.1355, 1.2007,
1138 1.2738, 1.347, 1.4254, 1.5094, 1.6009, 1.6976, 1.8019, 1.9148,
1139 2.0357, 2.166, 2.3066, 2.4579, 2.6208, 2.7966, 2.986, 3.188,
1140 3.4081, 3.6456, 3.9, 4.1747, 4.4712, 4.7931, 5.1359, 5.5097,
1141 5.9117, 6.3435, 6.8003, 7.3001, 7.8385, 8.3945, 9.011, 9.6869,
1142 10.392, 11.18, 12.036, 12.938, 13.944, 14.881, 16.029, 17.255,
1143 18.574, 19.945, 21.38, 22.9, 24.477, 26.128, 27.87, 29.037,
1144 30.988, 33.145, 35.506, 37.76, 40.885, 44.487, 48.505, 52.911,
1145 57.56, 61.964, 67.217, 72.26, 78.343, 85.08, 91.867, 99.435,
1146 107.68, 116.97, 127.12, 138.32, 150.26, 163.04, 174.81, 189.26,
1147 205.61, 224.68, 240.98, 261.88, 285.1, 307.58, 334.35, 363.53,
1148 394.68, 427.85, 458.85, 489.25, 472.87, 486.93, 496.27, 501.52,
1149 501.57, 497.14, 488.09, 476.32, 393.76, 388.51, 393.42, 414.45,
1150 455.12, 514.62, 520.38, 547.42, 562.6, 487.47, 480.83, 391.06,
1151 376.92, 303.7, 295.91, 256.03, 236.73, 280.38, 310.71, 335.53,
1152 367.88, 401.94, 435.52, 469.13, 497.94, 588.82, 597.94, 597.2,
1153 588.28, 571.2, 555.75, 603.56, 638.15, 680.75, 801.72, 848.01,
1154 962.15, 990.06, 1068.1, 1076.2, 1115.3, 1134.2, 1136.6, 1119.1,
1155 1108.9, 1090.6, 1068.7, 1041.9, 1005.4, 967.98, 927.08, 780.1,
1156 751.41, 733.12, 742.65, 785.56, 855.16, 852.45, 878.1, 784.59,
1157 777.81, 765.13, 622.93, 498.09, 474.89, 386.9, 378.48, 336.17,
1158 322.04, 329.57, 350.5, 383.38, 420.02, 462.39, 499.71, 531.98,
1159 654.99, 653.43, 639.99, 605.16, 554.16, 504.42, 540.64, 552.33,
1160 679.46, 699.51, 713.91, 832.17, 919.91, 884.96, 907.57, 846.56,
1161 818.56, 768.93, 706.71, 642.17, 575.95, 515.38, 459.07, 409.02,
1162 364.61, 325.46, 291.1, 260.89, 234.39, 211.01, 190.38, 172.11,
1163 155.91, 141.49, 128.63, 117.13, 106.84, 97.584, 89.262, 81.756,
1164 74.975, 68.842, 63.28, 58.232, 53.641, 49.46, 45.649, 42.168,
1165 38.991, 36.078, 33.409, 30.96, 28.71, 26.642, 24.737, 22.985,
1166 21.37, 19.882, 18.512, 17.242, 16.073, 14.987, 13.984, 13.05,
1167 12.186, 11.384, 10.637, 9.9436, 9.2988, 8.6991, 8.141, 7.6215,
1168 7.1378, 6.6872, 6.2671, 5.8754, 5.51, 5.1691, 4.851, 4.5539,
1169 4.2764, 4.0169, 3.7742, 3.5472, 3.3348, 3.1359, 2.9495, 2.7749,
1170 2.6113, 2.4578, 2.3139, 2.1789, 2.0523, 1.9334, 1.8219, 1.7171,
1171 1.6188, 1.5263, 1.4395, 1.3579, 1.2812, 1.209, 1.1411, 1.0773,
1172 1.0171, .96048, .90713, .85684, .80959, .76495, .72282, .68309,
1173 .64563, .61035, .57707, .54573, .51622, .48834, .46199, .43709,
1174 .41359, .39129, .37034, .35064, .33198, .31442, .29784, .28218,
1175 .26732, .25337, .24017, .22774, .21601, .20479, .19426
1178 static double co2260[2001] = { 5.7971e-5, 6.0733e-5, 6.3628e-5, 6.6662e-5,
1179 6.9843e-5, 7.3176e-5, 7.6671e-5, 8.0334e-5, 8.4175e-5, 8.8201e-5,
1180 9.2421e-5, 9.6846e-5, 1.0149e-4, 1.0635e-4, 1.1145e-4, 1.1679e-4,
1181 1.224e-4, 1.2828e-4, 1.3444e-4, 1.409e-4, 1.4768e-4, 1.5479e-4,
1182 1.6224e-4, 1.7006e-4, 1.7826e-4, 1.8685e-4, 1.9587e-4, 2.0532e-4,
1183 2.1524e-4, 2.2565e-4, 2.3656e-4, 2.48e-4, 2.6001e-4, 2.7261e-4,
1184 2.8582e-4, 2.9968e-4, 3.1422e-4, 3.2948e-4, 3.4548e-4, 3.6228e-4,
1185 3.799e-4, 3.9838e-4, 4.1778e-4, 4.3814e-4, 4.595e-4, 4.8191e-4,
1186 5.0543e-4, 5.3012e-4, 5.5603e-4, 5.8321e-4, 6.1175e-4, 6.417e-4,
1187 6.7314e-4, 7.0614e-4, 7.4078e-4, 7.7714e-4, 8.1531e-4, 8.5538e-4,
1188 8.9745e-4, 9.4162e-4, 9.8798e-4, .0010367, .0010878, .0011415,
1189 .0011978, .001257, .0013191, .0013844, .001453, .0015249,
1190 .0016006, .00168, .0017634, .001851, .001943, .0020397, .0021412,
1191 .0022479, .00236, .0024778, .0026015, .0027316, .0028682,
1192 .0030117, .0031626, .0033211, .0034877, .0036628, .0038469,
1193 .0040403, .0042436, .0044574, .004682, .0049182, .0051665,
1194 .0054276, .0057021, .0059907, .0062942, .0066133, .0069489,
1195 .0073018, .0076729, .0080632, .0084738, .0089056, .0093599,
1196 .0098377, .01034, .010869, .011426, .012011, .012627, .013276,
1197 .013958, .014676, .015431, .016226, .017063, .017944, .018872,
1198 .019848, .020876, .021958, .023098, .024298, .025561, .026892,
1199 .028293, .029769, .031323, .032961, .034686, .036503, .038418,
1200 .040435, .042561, .044801, .047161, .049649, .052271, .055035,
1201 .057948, .061019, .064256, .06767, .07127, .075066, .079069,
1202 .083291, .087744, .092441, .097396, .10262, .10814, .11396,
1203 .1201, .12658, .13342, .14064, .14826, .1563, .1648, .17376,
1204 .18323, .19324, .2038, .21496, .22674, .23919, .25234, .26624,
1205 .28093, .29646, .31287, .33021, .34855, .36794, .38844, .41012,
1206 .43305, .45731, .48297, .51011, .53884, .56924, .60141, .63547,
1207 .67152, .70969, .75012, .79292, .83826, .8863, .93718, .99111,
1208 1.0482, 1.1088, 1.173, 1.2411, 1.3133, 1.3898, 1.471, 1.5571,
1209 1.6485, 1.7455, 1.8485, 1.9577, 2.0737, 2.197, 2.3278, 2.4668,
1210 2.6145, 2.7715, 2.9383, 3.1156, 3.3042, 3.5047, 3.7181, 3.9451,
1211 4.1866, 4.4437, 4.7174, 5.0089, 5.3192, 5.65, 6.0025, 6.3782,
1212 6.7787, 7.206, 7.6617, 8.1479, 8.6669, 9.221, 9.8128, 10.445,
1213 11.12, 11.843, 12.615, 13.441, 14.325, 15.271, 16.283, 17.367,
1214 18.529, 19.776, 21.111, 22.544, 24.082, 25.731, 27.504, 29.409,
1215 31.452, 33.654, 36.024, 38.573, 41.323, 44.29, 47.492, 50.951,
1216 54.608, 58.588, 62.929, 67.629, 72.712, 78.226, 84.207, 90.699,
1217 97.749, 105.42, 113.77, 122.86, 132.78, 143.61, 155.44, 168.33,
1218 182.48, 198.01, 214.87, 233.39, 253.86, 276.34, 300.3, 327.28,
1219 356.89, 389.48, 422.29, 458.99, 501.39, 548.13, 595.62, 652.74,
1220 716.54, 784.57, 866.78, 960.59, 1062.8, 1072.5, 1189.5, 1319.4,
1221 1467.6, 1630.2, 1813.7, 2016.9, 2253., 2515.3, 2773.5, 3092.8,
1222 3444.4, 3720.4, 4104.3, 4527.5, 4645.9, 5021.7, 5462.2, 5597.,
1223 6110.6, 6732.5, 7513.8, 8270.6, 9640.6, 11487., 2796.1, 2680.1,
1224 2441.6, 2404.2, 2334.8, 2215.2, 1642.5, 1477.9, 1328.1, 1223.5,
1225 843.34, 766.96, 831.65, 834.84, 774.85, 1156.3, 1275.6, 1366.1,
1226 1795.6, 1885., 1936.5, 1953.4, 2154.4, 2002.7, 1789.8, 10381.,
1227 9040., 8216.5, 7384.7, 6721.9, 6187.7, 6143.8, 5703.9, 5276.6,
1228 4873.1, 4736., 4325.3, 3927., 3554.1, 3286.1, 2950.1, 2642.4,
1229 2368.7, 2138.9, 1914., 1719.6, 1543.9, 1388.6, 1252.1, 1132.2,
1230 1024.1, 1025.4, 920.58, 829.59, 750.54, 685.01, 624.25, 570.14,
1231 525.81, 481.85, 441.95, 408.71, 377.23, 345.86, 318.51, 292.26,
1232 268.34, 247.04, 227.14, 209.02, 192.69, 177.59, 163.78, 151.26,
1233 139.73, 129.19, 119.53, 110.7, 102.57, 95.109, 88.264, 81.948,
1234 76.13, 70.768, 65.827, 61.251, 57.022, 53.495, 49.824, 46.443,
1235 43.307, 40.405, 37.716, 35.241, 32.923, 30.77, 28.78, 26.915,
1236 25.177, 23.56, 22.059, 20.654, 19.345, 18.126, 16.988, 15.93,
1237 14.939, 14.014, 13.149, 12.343, 11.589, 10.884, 10.225, 9.6093,
1238 9.0327, 8.4934, 7.9889, 7.5166, 7.0744, 6.6604, 6.2727, 5.9098,
1239 5.5701, 5.2529, 4.955, 4.676, 4.4148, 4.171, 3.9426, 3.7332,
1240 3.5347, 3.3493, 3.1677, 3.0025, 2.8466, 2.6994, 2.5601, 2.4277,
1241 2.3016, 2.1814, 2.0664, 1.9564, 1.8279, 1.7311, 1.6427, 1.5645,
1242 1.4982, 1.443, 1.374, 1.3146, 1.2562, 1.17, 1.1105, 1.0272,
1243 .96863, .89718, .83654, .80226, .75908, .72431, .69573, .67174,
1244 .65126, .63315, .61693, .60182, .58715, .59554, .57649, .55526,
1245 .53177, .50622, .48176, .4813, .47642, .47492, .50273, .50293,
1246 .52687, .52239, .53419, .53814, .52626, .52211, .51492, .50622,
1247 .49746, .48841, .4792, .43534, .41999, .40349, .38586, .36799,
1248 .35108, .31089, .30803, .3171, .33599, .35041, .36149, .32924,
1249 .32462, .27309, .25961, .20922, .19504, .15683, .13098, .11588,
1250 .11478, .11204, .11363, .12135, .16423, .17785, .19094, .20236,
1251 .21084, .2154, .24108, .22848, .20871, .18797, .17963, .17834,
1252 .21552, .22284, .26945, .27052, .30108, .28977, .29772, .29224,
1253 .27658, .24956, .22777, .20654, .18392, .16338, .1452, .12916,
1254 .1152, .10304, .092437, .083163, .075031, .067878, .061564,
1255 .055976, .051018, .046609, .042679, .03917, .036032, .033223,
1256 .030706, .02845, .026428, .024617, .022998, .021554, .02027,
1257 .019136, .018141, .017278, .016541, .015926, .015432, .015058,
1258 .014807, .014666, .014635, .014728, .014947, .01527, .015728,
1259 .016345, .017026, .017798, .018839, .019752, .020636, .021886,
1260 .022695, .02327, .023478, .024292, .023544, .022222, .021932,
1261 .020052, .018143, .017722, .017031, .017782, .01938, .020734,
1262 .020476, .019255, .017477, .016878, .014617, .012489, .011765,
1263 .0099077, .0086446, .0079446, .0078644, .0079763, .008671,
1264 .01001, .0108, .012933, .015349, .016341, .018484, .020254,
1265 .020254, .020478, .019591, .018595, .018385, .019913, .022254,
1266 .024847, .025809, .028053, .029924, .030212, .031367, .03222,
1267 .032739, .032537, .03286, .033344, .033507, .033499, .033339,
1268 .032809, .033041, .031723, .029837, .027511, .026603, .024032,
1269 .021914, .020948, .021701, .023425, .024259, .024987, .023818,
1270 .021768, .019223, .018144, .015282, .012604, .01163, .0097907,
1271 .008336, .0082473, .0079582, .0088077, .009779, .010129, .012145,
1272 .014378, .016761, .01726, .018997, .019998, .019809, .01819,
1273 .016358, .016099, .01617, .017939, .020223, .022521, .02277,
1274 .024279, .025247, .024222, .023989, .023224, .021493, .020362,
1275 .018596, .017309, .015975, .014466, .013171, .011921, .01078,
1276 .0097229, .0087612, .0078729, .0070682, .0063494, .0057156,
1277 .0051459, .0046273, .0041712, .0037686, .0034119, .003095,
1278 .0028126, .0025603, .0023342, .0021314, .0019489, .0017845,
1279 .001636, .0015017, .00138, .0012697, .0011694, .0010782,
1280 9.9507e-4, 9.1931e-4, 8.5013e-4, 7.869e-4, 7.2907e-4, 6.7611e-4,
1281 6.2758e-4, 5.8308e-4, 5.4223e-4, 5.0473e-4, 4.7027e-4, 4.3859e-4,
1282 4.0946e-4, 3.8265e-4, 3.5798e-4, 3.3526e-4, 3.1436e-4, 2.9511e-4,
1283 2.7739e-4, 2.6109e-4, 2.4609e-4, 2.3229e-4, 2.1961e-4, 2.0797e-4,
1284 1.9729e-4, 1.875e-4, 1.7855e-4, 1.7038e-4, 1.6294e-4, 1.5619e-4,
1285 1.5007e-4, 1.4456e-4, 1.3961e-4, 1.3521e-4, 1.3131e-4, 1.2789e-4,
1286 1.2494e-4, 1.2242e-4, 1.2032e-4, 1.1863e-4, 1.1733e-4, 1.1641e-4,
1287 1.1585e-4, 1.1565e-4, 1.158e-4, 1.1629e-4, 1.1712e-4, 1.1827e-4,
1288 1.1976e-4, 1.2158e-4, 1.2373e-4, 1.262e-4, 1.2901e-4, 1.3214e-4,
1289 1.3562e-4, 1.3944e-4, 1.4361e-4, 1.4814e-4, 1.5303e-4, 1.5829e-4,
1290 1.6394e-4, 1.6999e-4, 1.7644e-4, 1.8332e-4, 1.9063e-4, 1.984e-4,
1291 2.0663e-4, 2.1536e-4, 2.246e-4, 2.3436e-4, 2.4468e-4, 2.5558e-4,
1292 2.6708e-4, 2.7921e-4, 2.92e-4, 3.0548e-4, 3.1968e-4, 3.3464e-4,
1293 3.5039e-4, 3.6698e-4, 3.8443e-4, 4.0281e-4, 4.2214e-4, 4.4248e-4,
1294 4.6389e-4, 4.864e-4, 5.1009e-4, 5.3501e-4, 5.6123e-4, 5.888e-4,
1295 6.1781e-4, 6.4833e-4, 6.8043e-4, 7.142e-4, 7.4973e-4, 7.8711e-4,
1296 8.2644e-4, 8.6783e-4, 9.1137e-4, 9.5721e-4, .0010054, .0010562,
1297 .0011096, .0011659, .0012251, .0012875, .0013532, .0014224,
1298 .0014953, .001572, .0016529, .0017381, .0018279, .0019226,
1299 .0020224, .0021277, .0022386, .0023557, .0024792, .0026095,
1300 .002747, .0028921, .0030453, .0032071, .003378, .0035586,
1301 .0037494, .003951, .0041642, .0043897, .0046282, .0048805,
1302 .0051476, .0054304, .00573, .0060473, .0063837, .0067404,
1303 .0071188, .0075203, .0079466, .0083994, .0088806, .0093922,
1304 .0099366, .010516, .011134, .011792, .012494, .013244, .014046,
1305 .014898, .015808, .016781, .017822, .018929, .020108, .02138,
1306 .022729, .02419, .02576, .027412, .029233, .031198, .033301,
1307 .035594, .038092, .040767, .04372, .046918, .050246, .053974,
1308 .058009, .061976, .066586, .071537, .076209, .081856, .087998,
1309 .093821, .10113, .10913, .11731, .12724, .13821, .15025, .1639,
1310 .17807, .19472, .21356, .23496, .25758, .28387, .31389, .34104,
1311 .37469, .40989, .43309, .46845, .5042, .5023, .52981, .55275,
1312 .51075, .51976, .52457, .44779, .44721, .4503, .4243, .45244,
1313 .49491, .55399, .39021, .24802, .2501, .2618, .27475, .28879,
1314 .31317, .33643, .36257, .4018, .43275, .46525, .53333, .56599,
1315 .60557, .70142, .74194, .77736, .88567, .91182, .93294, .98407,
1316 .98772, .99176, .9995, 1.2405, 1.3602, 1.338, 1.3255, 1.3267,
1317 1.3404, 1.3634, 1.3967, 1.4407, 1.4961, 1.5603, 1.6328, 1.7153,
1318 1.8094, 1.9091, 2.018, 2.1367, 2.264, 2.4035, 2.5562, 2.7179,
1319 2.9017, 3.1052, 3.3304, 3.5731, 3.8488, 4.1553, 4.4769, 4.7818,
1320 5.1711, 5.5204, 5.9516, 6.4097, 6.8899, 7.1118, 7.5469, 7.9735,
1321 7.9511, 8.3014, 8.6418, 8.4757, 8.8256, 9.2294, 9.6923, 10.033,
1322 10.842, 11.851, 11.78, 8.8435, 9.1381, 9.5956, 10.076, 10.629,
1323 11.22, 11.883, 12.69, 13.163, 13.974, 14.846, 16.027, 17.053,
1324 18.148, 19.715, 20.907, 22.163, 23.956, 25.235, 26.566, 27.94,
1325 29.576, 30.956, 32.432, 35.337, 39.911, 41.128, 42.625, 44.386,
1326 46.369, 48.619, 51.031, 53.674, 56.825, 59.921, 63.286, 66.929,
1327 70.859, 75.081, 79.618, 84.513, 89.739, 95.335, 101.35, 107.76,
1328 114.63, 121.98, 129.87, 138.3, 147.34, 157.04, 167.56, 178.67,
1329 190.61, 203.43, 217.19, 231.99, 247.88, 264.98, 283.37, 303.17,
1330 324.49, 347.47, 372.25, 398.98, 427.85, 459.06, 492.8, 529.31,
1331 568.89, 611.79, 658.35, 708.91, 763.87, 823.65, 888.72, 959.58,
1332 1036.8, 1121.8, 1213.9, 1314.3, 1423.8, 1543., 1672.8, 1813.4,
1333 1966.1, 2131.4, 2309.5, 2499.3, 2705., 2925.7, 3161.6, 3411.3,
1334 3611.5, 3889.2, 4191.1, 4519.3, 4877.9, 5272.9, 5712.9, 6142.7,
1335 6719.6, 7385., 8145., 8977.7, 9831.9, 10827., 11934., 13063.,
1336 14434., 15878., 17591., 19435., 21510., 23835., 26835., 29740.,
1337 32878., 36305., 39830., 43273., 46931., 50499., 49586., 51598.,
1338 53429., 54619., 55081., 55102., 54485., 53487., 52042., 42689.,
1339 42607., 44020., 47994., 54169., 53916., 55808., 56642., 46049.,
1340 44243., 32929., 30658., 21963., 20835., 15962., 13679., 17652.,
1341 19680., 22388., 25625., 29184., 32520., 35720., 38414., 40523.,
1342 49228., 48173., 45678., 41768., 37600., 41313., 42654., 44465.,
1343 55736., 56630., 65409., 63308., 66572., 61845., 60379., 56777.,
1344 51920., 46601., 41367., 36529., 32219., 28470., 25192., 22362.,
1345 19907., 17772., 15907., 14273., 12835., 11567., 10445., 9450.2,
1346 8565.1, 7776., 7070.8, 6439.2, 5872.3, 5362.4, 4903., 4488.3,
1347 4113.4, 3773.8, 3465.8, 3186.1, 2931.7, 2700.1, 2488.8, 2296.,
1348 2119.8, 1958.6, 1810.9, 1675.6, 1551.4, 1437.3, 1332.4, 1236.,
1349 1147.2, 1065.3, 989.86, 920.22, 855.91, 796.48, 741.53, 690.69,
1350 643.62, 600.02, 559.6, 522.13, 487.35, 455.06, 425.08, 397.21,
1351 371.3, 347.2, 324.78, 303.9, 284.46, 266.34, 249.45, 233.7,
1352 219.01, 205.3, 192.5, 180.55, 169.38, 158.95, 149.2, 140.07,
1353 131.54, 123.56, 116.09, 109.09, 102.54, 96.405, 90.655, 85.266,
1354 80.213, 75.475, 71.031, 66.861, 62.948, 59.275, 55.827, 52.587,
1355 49.544, 46.686, 43.998, 41.473, 39.099, 36.867, 34.768, 32.795,
1356 30.939, 29.192, 27.546, 25.998, 24.539, 23.164, 21.869, 20.65,
1357 19.501, 18.419, 17.399, 16.438, 15.532, 14.678, 13.874, 13.115,
1358 12.4, 11.726, 11.088, 10.488, 9.921, 9.3846, 8.8784, 8.3996,
1359 7.9469, 7.5197, 7.1174, 6.738, 6.379, 6.0409, 5.7213, 5.419,
1360 5.1327, 4.8611, 4.6046, 4.3617, 4.1316, 3.9138, 3.7077, 3.5125,
1361 3.3281, 3.1536, 2.9885, 2.8323, 2.6846, 2.5447, 2.4124, 2.2871,
1362 2.1686, 2.0564, 1.9501, 1.8495, 1.7543, 1.6641, 1.5787, 1.4978,
1363 1.4212, 1.3486, 1.2799, 1.2147, 1.1529, 1.0943, 1.0388, .98602,
1364 .93596, .8886, .84352, .80078, .76029, .722, .68585, .65161,
1365 .61901, .58808, .55854, .53044, .5039, .47853, .45459, .43173,
1366 .41008, .38965, .37021, .35186, .33444, .31797, .30234, .28758,
1367 .2736, .26036, .24764, .2357, .22431, .21342, .20295, .19288,
1368 .18334, .17444, .166, .15815, .15072, .14348, .13674, .13015,
1369 .12399, .11807, .11231, .10689, .10164, .096696, .091955,
1370 .087476, .083183, .079113, .075229, .071536, .068026, .064698,
1371 .06154, .058544, .055699, .052997, .050431, .047993, .045676,
1372 .043475, .041382, .039392, .037501, .035702, .033991, .032364,
1373 .030817, .029345, .027945, .026613, .025345, .024139, .022991,
1374 .021899, .02086, .019871, .018929, .018033, .01718, .016368,
1375 .015595, .014859, .014158, .013491, .012856, .012251, .011675,
1376 .011126, .010604, .010107, .0096331, .009182, .0087523, .0083431,
1377 .0079533, .0075821, .0072284, .0068915, .0065706, .0062649,
1378 .0059737, .0056963, .005432, .0051802, .0049404, .0047118,
1379 .0044941, .0042867, .0040891, .0039009, .0037216, .0035507,
1380 .003388, .0032329, .0030852, .0029445, .0028105, .0026829,
1381 .0025613, .0024455, .0023353, .0022303, .0021304, .0020353,
1382 .0019448, .0018587, .0017767, .0016988, .0016247, .0015543,
1383 .0014874, .0014238, .0013635, .0013062, .0012519, .0012005,
1384 .0011517, .0011057, .0010621, .001021, 9.8233e-4, 9.4589e-4,
1385 9.1167e-4, 8.7961e-4, 8.4964e-4, 8.2173e-4, 7.9582e-4, 7.7189e-4,
1386 7.499e-4, 7.2983e-4, 7.1167e-4, 6.9542e-4, 6.8108e-4, 6.6866e-4,
1387 6.5819e-4, 6.4971e-4, 6.4328e-4, 6.3895e-4, 6.3681e-4, 6.3697e-4,
1388 6.3956e-4, 6.4472e-4, 6.5266e-4, 6.6359e-4, 6.778e-4, 6.9563e-4,
1389 7.1749e-4, 7.4392e-4, 7.7556e-4, 8.1028e-4, 8.4994e-4, 8.8709e-4,
1390 9.3413e-4, 9.6953e-4, .0010202, .0010738, .0010976, .0011507,
1391 .0011686, .0012264, .001291, .0013346, .0014246, .0015293,
1392 .0016359, .0017824, .0019255, .0020854, .002247, .0024148,
1393 .0026199, .0027523, .0029704, .0030702, .0033047, .0035013,
1394 .0037576, .0040275, .0043089, .0046927, .0049307, .0053486,
1395 .0053809, .0056699, .0059325, .0055488, .005634, .0056392,
1396 .004946, .0048855, .0048208, .0044386, .0045498, .0046377,
1397 .0048939, .0052396, .0057324, .0060859, .0066906, .0071148,
1398 .0077224, .0082687, .008769, .0084471, .008572, .0087729,
1399 .008775, .0090742, .0080704, .0080288, .0085747, .0086087,
1400 .0086408, .0088752, .0089381, .0089757, .0093532, .0092824,
1401 .0092566, .0092645, .0092735, .009342, .0095806, .0097991,
1402 .010213, .010611, .011129, .011756, .013237, .01412, .015034,
1403 .015936, .01682, .018597, .019315, .019995, .020658, .021289,
1404 .022363, .022996, .023716, .024512, .025434, .026067, .027118,
1405 .028396, .029865, .031442, .033253, .03525, .037296, .039701,
1406 .042356, .045154, .048059, .051294, .054893, .058636, .061407,
1407 .065172, .068974, .072676, .073379, .076547, .079556, .079134,
1408 .082308, .085739, .090192, .09359, .099599, .10669, .11496,
1409 .1244, .13512, .14752, .14494, .15647, .1668, .17863, .19029,
1410 .20124, .20254, .21179, .21982, .21625, .22364, .23405, .23382,
1411 .2434, .25708, .26406, .27621, .28909, .30395, .31717, .33271,
1412 .3496, .36765, .38774, .40949, .446, .46985, .49846, .5287, .562,
1413 .59841, .64598, .68834, .7327, .78978, .8373, .88708, .94744,
1414 1.0006, 1.0574, 1.1215, 1.1856, 1.2546, 1.3292, 1.4107, 1.4974,
1415 1.5913, 1.6931, 1.8028, 1.9212, 2.0492, 2.1874, 2.3365, 2.4978,
1416 2.6718, 2.8588, 3.062, 3.2818, 3.5188, 3.7752, 4.0527, 4.3542,
1417 4.6782, 5.0312, 5.4123, 5.8246, 6.2639, 6.7435, 7.2636, 7.8064,
1418 8.4091, 9.0696, 9.7677, 10.548, 11.4, 12.309, 13.324, 14.284,
1419 15.445, 16.687, 18.019, 19.403, 20.847, 22.366, 23.925, 25.537,
1420 27.213, 28.069, 29.864, 31.829, 33.988, 35.856, 38.829, 42.321,
1421 46.319, 50.606, 55.126, 59.126, 64.162, 68.708, 74.615, 81.176,
1422 87.739, 95.494, 103.83, 113.38, 123.99, 135.8, 148.7, 162.58,
1423 176.32, 192.6, 211.47, 232.7, 252.64, 277.41, 305.38, 333.44,
1424 366.42, 402.66, 442.14, 484.53, 526.42, 568.15, 558.78, 582.6,
1425 600.98, 613.94, 619.44, 618.24, 609.84, 595.96, 484.86, 475.59,
1426 478.49, 501.56, 552.19, 628.44, 630.39, 658.92, 671.96, 562.7,
1427 545.88, 423.43, 400.14, 306.59, 294.13, 246.8, 226.51, 278.21,
1428 314.39, 347.22, 389.13, 433.16, 477.48, 521.67, 560.54, 683.6,
1429 696.37, 695.91, 683.1, 658.24, 634.89, 698.85, 742.87, 796.66,
1430 954.49, 1009.5, 1150.5, 1179.1, 1267.9, 1272.4, 1312.7, 1330.4,
1431 1331.6, 1315.8, 1308.3, 1293.3, 1274.6, 1249.5, 1213.2, 1172.1,
1432 1124.4, 930.33, 893.36, 871.27, 883.54, 940.76, 1036., 1025.6,
1433 1053.1, 914.51, 894.15, 865.03, 670.63, 508.41, 475.15, 370.85,
1434 361.06, 319.38, 312.75, 331.87, 367.13, 415., 467.94, 525.49,
1435 578.41, 624.66, 794.82, 796.97, 780.29, 736.49, 670.18, 603.75,
1436 659.67, 679.8, 857.12, 884.05, 900.65, 1046.1, 1141.9, 1083.,
1437 1089.2, 1e3, 947.08, 872.31, 787.91, 704.75, 624.93, 553.68,
1438 489.91, 434.21, 385.64, 343.3, 306.42, 274.18, 245.94, 221.11,
1439 199.23, 179.88, 162.73, 147.48, 133.88, 121.73, 110.86, 101.1,
1440 92.323, 84.417, 77.281, 70.831, 64.991, 59.694, 54.884, 50.509,
1441 46.526, 42.893, 39.58, 36.549, 33.776, 31.236, 28.907, 26.77,
1442 24.805, 23., 21.339, 19.81, 18.404, 17.105, 15.909, 14.801,
1443 13.778, 12.83, 11.954, 11.142, 10.389, 9.691, 9.0434, 8.4423,
1444 7.8842, 7.3657, 6.8838, 6.4357, 6.0189, 5.6308, 5.2696, 4.9332,
1445 4.6198, 4.3277, 4.0553, 3.8012, 3.5639, 3.3424, 3.1355, 2.9422,
1446 2.7614, 2.5924, 2.4343, 2.2864, 2.148, 2.0184, 1.8971, 1.7835,
1447 1.677, 1.5773, 1.4838, 1.3961, 1.3139, 1.2369, 1.1645, 1.0966,
1448 1.0329, .97309, .91686, .86406, .81439, .76767, .72381, .68252,
1449 .64359, .60695, .57247, .54008, .50957, .48092, .45401, .42862,
1450 .40465, .38202, .36072, .34052, .3216, .30386, .28711, .27135,
1451 .25651, .24252, .2293, .21689, .20517, .19416, .18381, .17396,
1455 static double co2230[2001] = { 2.743e-5, 2.8815e-5, 3.027e-5, 3.1798e-5,
1456 3.3405e-5, 3.5094e-5, 3.6869e-5, 3.8734e-5, 4.0694e-5, 4.2754e-5,
1457 4.492e-5, 4.7196e-5, 4.9588e-5, 5.2103e-5, 5.4747e-5, 5.7525e-5,
1458 6.0446e-5, 6.3516e-5, 6.6744e-5, 7.0137e-5, 7.3704e-5, 7.7455e-5,
1459 8.1397e-5, 8.5543e-5, 8.9901e-5, 9.4484e-5, 9.9302e-5, 1.0437e-4,
1460 1.097e-4, 1.153e-4, 1.2119e-4, 1.2738e-4, 1.3389e-4, 1.4074e-4,
1461 1.4795e-4, 1.5552e-4, 1.6349e-4, 1.7187e-4, 1.8068e-4, 1.8995e-4,
1462 1.997e-4, 2.0996e-4, 2.2075e-4, 2.321e-4, 2.4403e-4, 2.5659e-4,
1463 2.698e-4, 2.837e-4, 2.9832e-4, 3.137e-4, 3.2988e-4, 3.4691e-4,
1464 3.6483e-4, 3.8368e-4, 4.0351e-4, 4.2439e-4, 4.4635e-4, 4.6947e-4,
1465 4.9379e-4, 5.1939e-4, 5.4633e-4, 5.7468e-4, 6.0452e-4, 6.3593e-4,
1466 6.69e-4, 7.038e-4, 7.4043e-4, 7.79e-4, 8.1959e-4, 8.6233e-4,
1467 9.0732e-4, 9.5469e-4, .0010046, .0010571, .0011124, .0011706,
1468 .0012319, .0012964, .0013644, .001436, .0015114, .0015908,
1469 .0016745, .0017625, .0018553, .0019531, .002056, .0021645,
1470 .0022788, .0023992, .002526, .0026596, .0028004, .0029488,
1471 .0031052, .0032699, .0034436, .0036265, .0038194, .0040227,
1472 .0042369, .0044628, .0047008, .0049518, .0052164, .0054953,
1473 .0057894, .0060995, .0064265, .0067713, .007135, .0075184,
1474 .0079228, .0083494, .0087993, .0092738, .0097745, .010303,
1475 .01086, .011448, .012068, .012722, .013413, .014142, .014911,
1476 .015723, .01658, .017484, .018439, .019447, .020511, .021635,
1477 .022821, .024074, .025397, .026794, .02827, .029829, .031475,
1478 .033215, .035052, .036994, .039045, .041213, .043504, .045926,
1479 .048485, .05119, .05405, .057074, .060271, .063651, .067225,
1480 .071006, .075004, .079233, .083708, .088441, .093449, .098749,
1481 .10436, .11029, .11657, .12322, .13026, .13772, .14561, .15397,
1482 .16282, .1722, .18214, .19266, .20381, .21563, .22816, .24143,
1483 .2555, .27043, .28625, .30303, .32082, .3397, .35972, .38097,
1484 .40352, .42746, .45286, .47983, .50847, .53888, .57119, .6055,
1485 .64196, .6807, .72187, .76564, .81217, .86165, .91427, .97025,
1486 1.0298, 1.0932, 1.1606, 1.2324, 1.3088, 1.3902, 1.477, 1.5693,
1487 1.6678, 1.7727, 1.8845, 2.0038, 2.131, 2.2666, 2.4114, 2.5659,
1488 2.7309, 2.907, 3.0951, 3.2961, 3.5109, 3.7405, 3.986, 4.2485,
1489 4.5293, 4.8299, 5.1516, 5.4961, 5.8651, 6.2605, 6.6842, 7.1385,
1490 7.6256, 8.1481, 8.7089, 9.3109, 9.9573, 10.652, 11.398, 12.2,
1491 13.063, 13.992, 14.99, 16.064, 17.222, 18.469, 19.813, 21.263,
1492 22.828, 24.516, 26.34, 28.31, 30.437, 32.738, 35.226, 37.914,
1493 40.824, 43.974, 47.377, 51.061, 55.011, 59.299, 63.961, 69.013,
1494 74.492, 80.444, 86.919, 93.836, 101.23, 109.25, 117.98, 127.47,
1495 137.81, 149.07, 161.35, 174.75, 189.42, 205.49, 223.02, 242.26,
1496 263.45, 286.75, 311.94, 340.01, 370.86, 404.92, 440.44, 480.27,
1497 525.17, 574.71, 626.22, 686.8, 754.38, 827.07, 913.38, 1011.7,
1498 1121.5, 1161.6, 1289.5, 1432.2, 1595.4, 1777., 1983.3, 2216.1,
1499 2485.7, 2788.3, 3101.5, 3481., 3902.1, 4257.1, 4740., 5272.8,
1500 5457.9, 5946.2, 6505.3, 6668.4, 7302.4, 8061.6, 9015.8, 9908.3,
1501 11613., 13956., 3249.6, 3243., 2901.5, 2841.3, 2729.6, 2558.2,
1502 1797.8, 1583.2, 1386., 1233.5, 787.74, 701.46, 761.66, 767.21,
1503 722.83, 1180.6, 1332.1, 1461.6, 2032.9, 2166., 2255.9, 2294.7,
1504 2587.2, 2396.5, 2122.4, 12553., 10784., 9832.5, 8827.3, 8029.1,
1505 7377.9, 7347.1, 6783.8, 6239.1, 5721.1, 5503., 4975.1, 4477.8,
1506 4021.3, 3676.8, 3275.3, 2914.9, 2597.4, 2328.2, 2075.4, 1857.6,
1507 1663.6, 1493.3, 1343.8, 1213.3, 1095.6, 1066.5, 958.91, 865.15,
1508 783.31, 714.35, 650.77, 593.98, 546.2, 499.9, 457.87, 421.75,
1509 387.61, 355.25, 326.62, 299.7, 275.21, 253.17, 232.83, 214.31,
1510 197.5, 182.08, 167.98, 155.12, 143.32, 132.5, 122.58, 113.48,
1511 105.11, 97.415, 90.182, 83.463, 77.281, 71.587, 66.341, 61.493,
1512 57.014, 53.062, 49.21, 45.663, 42.38, 39.348, 36.547, 33.967,
1513 31.573, 29.357, 27.314, 25.415, 23.658, 22.03, 20.524, 19.125,
1514 17.829, 16.627, 15.511, 14.476, 13.514, 12.618, 11.786, 11.013,
1515 10.294, 9.6246, 9.0018, 8.4218, 7.8816, 7.3783, 6.9092, 6.4719,
1516 6.0641, 5.6838, 5.3289, 4.998, 4.6893, 4.4014, 4.1325, 3.8813,
1517 3.6469, 3.4283, 3.2241, 3.035, 2.8576, 2.6922, 2.5348, 2.3896,
1518 2.2535, 2.1258, 2.0059, 1.8929, 1.7862, 1.6854, 1.5898, 1.4992,
1519 1.4017, 1.3218, 1.2479, 1.1809, 1.1215, 1.0693, 1.0116, .96016,
1520 .9105, .84859, .80105, .74381, .69982, .65127, .60899, .57843,
1521 .54592, .51792, .49336, .47155, .45201, .43426, .41807, .40303,
1522 .38876, .3863, .37098, .35492, .33801, .32032, .30341, .29874,
1523 .29193, .28689, .29584, .29155, .29826, .29195, .29287, .2904,
1524 .28199, .27709, .27162, .26622, .26133, .25676, .25235, .23137,
1525 .22365, .21519, .20597, .19636, .18699, .16485, .16262, .16643,
1526 .17542, .18198, .18631, .16759, .16338, .13505, .1267, .10053,
1527 .092554, .074093, .062159, .055523, .054849, .05401, .05528,
1528 .058982, .07952, .08647, .093244, .099285, .10393, .10661,
1529 .12072, .11417, .10396, .093265, .089137, .088909, .10902,
1530 .11277, .13625, .13565, .14907, .14167, .1428, .13744, .12768,
1531 .11382, .10244, .091686, .08109, .071739, .063616, .056579,
1532 .050504, .045251, .040689, .036715, .033237, .030181, .027488,
1533 .025107, .022998, .021125, .01946, .017979, .016661, .015489,
1534 .014448, .013526, .012712, .011998, .011375, .010839, .010384,
1535 .010007, .0097053, .0094783, .0093257, .0092489, .0092504,
1536 .0093346, .0095077, .0097676, .01012, .01058, .011157, .011844,
1537 .012672, .013665, .014766, .015999, .017509, .018972, .020444,
1538 .022311, .023742, .0249, .025599, .026981, .026462, .025143,
1539 .025066, .022814, .020458, .020026, .019142, .020189, .022371,
1540 .024163, .023728, .02199, .019506, .018591, .015576, .012784,
1541 .011744, .0094777, .0079148, .0070652, .006986, .0071758,
1542 .008086, .0098025, .01087, .013609, .016764, .018137, .021061,
1543 .023498, .023576, .023965, .022828, .021519, .021283, .023364,
1544 .026457, .029782, .030856, .033486, .035515, .035543, .036558,
1545 .037198, .037472, .037045, .037284, .03777, .038085, .038366,
1546 .038526, .038282, .038915, .037697, .035667, .032941, .031959,
1547 .028692, .025918, .024596, .025592, .027873, .028935, .02984,
1548 .028148, .025305, .021912, .020454, .016732, .013357, .01205,
1549 .009731, .0079881, .0077704, .0074387, .0083895, .0096776,
1550 .010326, .01293, .015955, .019247, .020145, .02267, .024231,
1551 .024184, .022131, .019784, .01955, .01971, .022119, .025116,
1552 .027978, .028107, .029808, .030701, .029164, .028551, .027286,
1553 .024946, .023259, .020982, .019221, .017471, .015643, .014074,
1554 .01261, .011301, .010116, .0090582, .0081036, .0072542, .0065034,
1555 .0058436, .0052571, .0047321, .0042697, .0038607, .0034977,
1556 .0031747, .0028864, .0026284, .002397, .002189, .0020017,
1557 .0018326, .0016798, .0015414, .0014159, .0013019, .0011983,
1558 .0011039, .0010177, 9.391e-4, 8.6717e-4, 8.0131e-4, 7.4093e-4,
1559 6.8553e-4, 6.3464e-4, 5.8787e-4, 5.4487e-4, 5.0533e-4, 4.69e-4,
1560 4.3556e-4, 4.0474e-4, 3.7629e-4, 3.5e-4, 3.2569e-4, 3.032e-4,
1561 2.8239e-4, 2.6314e-4, 2.4535e-4, 2.2891e-4, 2.1374e-4, 1.9975e-4,
1562 1.8685e-4, 1.7498e-4, 1.6406e-4, 1.5401e-4, 1.4479e-4, 1.3633e-4,
1563 1.2858e-4, 1.2148e-4, 1.1499e-4, 1.0907e-4, 1.0369e-4, 9.8791e-5,
1564 9.4359e-5, 9.0359e-5, 8.6766e-5, 8.3555e-5, 8.0703e-5, 7.8192e-5,
1565 7.6003e-5, 7.4119e-5, 7.2528e-5, 7.1216e-5, 7.0171e-5, 6.9385e-5,
1566 6.8848e-5, 6.8554e-5, 6.8496e-5, 6.8669e-5, 6.9069e-5, 6.9694e-5,
1567 7.054e-5, 7.1608e-5, 7.2896e-5, 7.4406e-5, 7.6139e-5, 7.8097e-5,
1568 8.0283e-5, 8.2702e-5, 8.5357e-5, 8.8255e-5, 9.1402e-5, 9.4806e-5,
1569 9.8473e-5, 1.0241e-4, 1.0664e-4, 1.1115e-4, 1.1598e-4, 1.2112e-4,
1570 1.2659e-4, 1.3241e-4, 1.3859e-4, 1.4515e-4, 1.521e-4, 1.5947e-4,
1571 1.6728e-4, 1.7555e-4, 1.8429e-4, 1.9355e-4, 2.0334e-4, 2.1369e-4,
1572 2.2463e-4, 2.3619e-4, 2.4841e-4, 2.6132e-4, 2.7497e-4, 2.8938e-4,
1573 3.0462e-4, 3.2071e-4, 3.3771e-4, 3.5567e-4, 3.7465e-4, 3.947e-4,
1574 4.1588e-4, 4.3828e-4, 4.6194e-4, 4.8695e-4, 5.1338e-4, 5.4133e-4,
1575 5.7087e-4, 6.0211e-4, 6.3515e-4, 6.701e-4, 7.0706e-4, 7.4617e-4,
1576 7.8756e-4, 8.3136e-4, 8.7772e-4, 9.2681e-4, 9.788e-4, .0010339,
1577 .0010922, .001154, .0012195, .0012889, .0013626, .0014407,
1578 .0015235, .0016114, .0017048, .0018038, .001909, .0020207,
1579 .0021395, .0022657, .0023998, .0025426, .0026944, .002856,
1580 .0030281, .0032114, .0034068, .003615, .0038371, .004074,
1581 .004327, .0045971, .0048857, .0051942, .0055239, .0058766,
1582 .0062538, .0066573, .0070891, .007551, .0080455, .0085747,
1583 .0091412, .0097481, .010397, .011092, .011837, .012638, .013495,
1584 .014415, .01541, .016475, .017621, .018857, .020175, .02162,
1585 .023185, .024876, .02672, .028732, .030916, .033319, .035939,
1586 .038736, .041847, .04524, .048715, .052678, .056977, .061203,
1587 .066184, .07164, .076952, .083477, .090674, .098049, .10697,
1588 .1169, .1277, .14011, .15323, .1684, .18601, .20626, .22831,
1589 .25417, .28407, .31405, .34957, .38823, .41923, .46026, .50409,
1590 .51227, .54805, .57976, .53818, .55056, .557, .46741, .46403,
1591 .4636, .42265, .45166, .49852, .56663, .34306, .17779, .17697,
1592 .18346, .19129, .20014, .21778, .23604, .25649, .28676, .31238,
1593 .33856, .39998, .4288, .46568, .56654, .60786, .64473, .76466,
1594 .7897, .80778, .86443, .85736, .84798, .84157, 1.1385, 1.2446,
1595 1.1923, 1.1552, 1.1338, 1.1266, 1.1292, 1.1431, 1.1683, 1.2059,
1596 1.2521, 1.3069, 1.3712, 1.4471, 1.5275, 1.6165, 1.7145, 1.8189,
1597 1.9359, 2.065, 2.2007, 2.3591, 2.5362, 2.7346, 2.9515, 3.2021,
1598 3.4851, 3.7935, 4.0694, 4.4463, 4.807, 5.2443, 5.7178, 6.2231,
1599 6.4796, 6.9461, 7.4099, 7.3652, 7.7182, 8.048, 7.7373, 8.0363,
1600 8.3855, 8.8044, 9.0257, 9.8574, 10.948, 10.563, 6.8979, 7.0744,
1601 7.4121, 7.7663, 8.1768, 8.6243, 9.1437, 9.7847, 10.182, 10.849,
1602 11.572, 12.602, 13.482, 14.431, 15.907, 16.983, 18.11, 19.884,
1603 21.02, 22.18, 23.355, 24.848, 25.954, 27.13, 30.186, 34.893,
1604 35.682, 36.755, 38.111, 39.703, 41.58, 43.606, 45.868, 48.573,
1605 51.298, 54.291, 57.559, 61.116, 64.964, 69.124, 73.628, 78.471,
1606 83.683, 89.307, 95.341, 101.84, 108.83, 116.36, 124.46, 133.18,
1607 142.57, 152.79, 163.69, 175.43, 188.11, 201.79, 216.55, 232.51,
1608 249.74, 268.38, 288.54, 310.35, 333.97, 359.55, 387.26, 417.3,
1609 449.88, 485.2, 523.54, 565.14, 610.28, 659.31, 712.56, 770.43,
1610 833.36, 901.82, 976.36, 1057.6, 1146.8, 1243.8, 1350., 1466.3,
1611 1593.6, 1732.7, 1884.1, 2049.1, 2228.2, 2421.9, 2629.4, 2853.7,
1612 3094.4, 3351.1, 3622.3, 3829.8, 4123.1, 4438.3, 4777.2, 5144.1,
1613 5545.4, 5990.5, 6404.5, 6996.8, 7687.6, 8482.9, 9349.4, 10203.,
1614 11223., 12358., 13493., 14916., 16416., 18236., 20222., 22501.,
1615 25102., 28358., 31707., 35404., 39538., 43911., 48391., 53193.,
1616 58028., 58082., 61276., 64193., 66294., 67480., 67921., 67423.,
1617 66254., 64341., 51737., 51420., 53072., 58145., 66195., 65358.,
1618 67377., 67869., 53509., 50553., 35737., 32425., 21704., 19974.,
1619 14457., 12142., 16798., 19489., 23049., 27270., 31910., 36457.,
1620 40877., 44748., 47876., 59793., 58626., 55454., 50337., 44893.,
1621 50228., 52216., 54747., 69541., 70455., 81014., 77694., 80533.,
1622 73953., 70927., 65539., 59002., 52281., 45953., 40292., 35360.,
1623 31124., 27478., 24346., 21647., 19308., 17271., 15491., 13927.,
1624 12550., 11331., 10250., 9288.8, 8431.4, 7664.9, 6978.3, 6361.8,
1625 5807.4, 5307.7, 4856.8, 4449., 4079.8, 3744.9, 3440.8, 3164.2,
1626 2912.3, 2682.7, 2473., 2281.4, 2106., 1945.3, 1797.9, 1662.5,
1627 1538.1, 1423.6, 1318.1, 1221., 1131.5, 1049., 972.99, 902.87,
1628 838.01, 777.95, 722.2, 670.44, 622.35, 577.68, 536.21, 497.76,
1629 462.12, 429.13, 398.61, 370.39, 344.29, 320.16, 297.85, 277.2,
1630 258.08, 240.38, 223.97, 208.77, 194.66, 181.58, 169.43, 158.15,
1631 147.67, 137.92, 128.86, 120.44, 112.6, 105.3, 98.499, 92.166,
1632 86.264, 80.763, 75.632, 70.846, 66.381, 62.213, 58.321, 54.685,
1633 51.288, 48.114, 45.145, 42.368, 39.772, 37.341, 35.065, 32.937,
1634 30.943, 29.077, 27.33, 25.693, 24.158, 22.717, 21.367, 20.099,
1635 18.909, 17.792, 16.744, 15.761, 14.838, 13.971, 13.157, 12.393,
1636 11.676, 11.003, 10.369, 9.775, 9.2165, 8.6902, 8.1963, 7.7314,
1637 7.2923, 6.8794, 6.4898, 6.122, 5.7764, 5.4525, 5.1484, 4.8611,
1638 4.5918, 4.3379, 4.0982, 3.8716, 3.6567, 3.4545, 3.2634, 3.0828,
1639 2.9122, 2.7512, 2.5993, 2.4561, 2.3211, 2.1938, 2.0737, 1.9603,
1640 1.8534, 1.7525, 1.6572, 1.5673, 1.4824, 1.4022, 1.3265, 1.2551,
1641 1.1876, 1.1239, 1.0637, 1.0069, .9532, .90248, .85454, .80921,
1642 .76631, .72569, .6872, .65072, .61635, .5836, .55261, .52336,
1643 .49581, .46998, .44559, .42236, .40036, .37929, .35924, .34043,
1644 .32238, .30547, .28931, .27405, .25975, .24616, .23341, .22133,
1645 .20997, .19924, .18917, .17967, .17075, .16211, .15411, .14646,
1646 .13912, .13201, .12509, .11857, .11261, .10698, .10186, .097039,
1647 .092236, .087844, .083443, .07938, .075452, .071564, .067931,
1648 .064389, .061078, .057901, .054921, .052061, .049364, .046789,
1649 .04435, .042044, .039866, .037808, .035863, .034023, .032282,
1650 .030634, .029073, .027595, .026194, .024866, .023608, .022415,
1651 .021283, .02021, .019193, .018228, .017312, .016443, .015619,
1652 .014837, .014094, .01339, .012721, .012086, .011483, .010911,
1653 .010368, .009852, .0093623, .0088972, .0084556, .0080362,
1654 .0076379, .0072596, .0069003, .006559, .0062349, .0059269,
1655 .0056344, .0053565, .0050925, .0048417, .0046034, .004377,
1656 .0041618, .0039575, .0037633, .0035788, .0034034, .0032368,
1657 .0030785, .002928, .0027851, .0026492, .0025201, .0023975,
1658 .0022809, .0021701, .0020649, .0019649, .0018699, .0017796,
1659 .0016938, .0016122, .0015348, .0014612, .0013913, .001325,
1660 .0012619, .0012021, .0011452, .0010913, .0010401, 9.9149e-4,
1661 9.454e-4, 9.0169e-4, 8.6024e-4, 8.2097e-4, 7.8377e-4, 7.4854e-4,
1662 7.1522e-4, 6.8371e-4, 6.5393e-4, 6.2582e-4, 5.9932e-4, 5.7435e-4,
1663 5.5087e-4, 5.2882e-4, 5.0814e-4, 4.8881e-4, 4.7076e-4, 4.5398e-4,
1664 4.3843e-4, 4.2407e-4, 4.109e-4, 3.9888e-4, 3.88e-4, 3.7826e-4,
1665 3.6963e-4, 3.6213e-4, 3.5575e-4, 3.505e-4, 3.464e-4, 3.4346e-4,
1666 3.4173e-4, 3.4125e-4, 3.4206e-4, 3.4424e-4, 3.4787e-4, 3.5303e-4,
1667 3.5986e-4, 3.6847e-4, 3.7903e-4, 3.9174e-4, 4.0681e-4, 4.2455e-4,
1668 4.4527e-4, 4.6942e-4, 4.9637e-4, 5.2698e-4, 5.5808e-4, 5.9514e-4,
1669 6.2757e-4, 6.689e-4, 7.1298e-4, 7.3955e-4, 7.8403e-4, 8.0449e-4,
1670 8.5131e-4, 9.0256e-4, 9.3692e-4, .0010051, .0010846, .0011678,
1671 .001282, .0014016, .0015355, .0016764, .0018272, .0020055,
1672 .0021455, .0023421, .0024615, .0026786, .0028787, .0031259,
1673 .0034046, .0036985, .0040917, .0043902, .0048349, .0049531,
1674 .0052989, .0056148, .0052452, .0053357, .005333, .0045069,
1675 .0043851, .004253, .003738, .0038084, .0039013, .0041505,
1676 .0045372, .0050569, .0054507, .0061267, .0066122, .0072449,
1677 .0078012, .0082651, .0076538, .0076573, .0076806, .0075227,
1678 .0076269, .0063758, .006254, .0067749, .0067909, .0068231,
1679 .0072143, .0072762, .0072954, .007679, .0075107, .0073658,
1680 .0072441, .0071074, .0070378, .007176, .0072472, .0075844,
1681 .0079291, .008412, .0090165, .010688, .011535, .012375, .013166,
1682 .013895, .015567, .016011, .016392, .016737, .017043, .017731,
1683 .018031, .018419, .018877, .019474, .019868, .020604, .021538,
1684 .022653, .023869, .025288, .026879, .028547, .030524, .03274,
1685 .035132, .03769, .040567, .043793, .047188, .049962, .053542,
1686 .057205, .060776, .061489, .064419, .067124, .065945, .068487,
1687 .071209, .074783, .077039, .082444, .08902, .09692, .10617,
1688 .11687, .12952, .12362, .13498, .14412, .15492, .16519, .1744,
1689 .17096, .17714, .18208, .17363, .17813, .18564, .18295, .19045,
1690 .20252, .20815, .21844, .22929, .24229, .25321, .26588, .2797,
1691 .29465, .31136, .32961, .36529, .38486, .41027, .43694, .4667,
1692 .49943, .54542, .58348, .62303, .67633, .71755, .76054, .81371,
1693 .85934, .90841, .96438, 1.0207, 1.0821, 1.1491, 1.2226, 1.3018,
1694 1.388, 1.4818, 1.5835, 1.6939, 1.8137, 1.9435, 2.0843, 2.237,
1695 2.4026, 2.5818, 2.7767, 2.9885, 3.2182, 3.4679, 3.7391, 4.0349,
1696 4.3554, 4.7053, 5.0849, 5.4986, 5.9436, 6.4294, 6.9598, 7.5203,
1697 8.143, 8.8253, 9.5568, 10.371, 11.267, 12.233, 13.31, 14.357,
1698 15.598, 16.93, 18.358, 19.849, 21.408, 23.04, 24.706, 26.409,
1699 28.153, 28.795, 30.549, 32.43, 34.49, 36.027, 38.955, 42.465,
1700 46.565, 50.875, 55.378, 59.002, 63.882, 67.949, 73.693, 80.095,
1701 86.403, 94.264, 102.65, 112.37, 123.3, 135.54, 149.14, 163.83,
1702 179.17, 196.89, 217.91, 240.94, 264.13, 292.39, 324.83, 358.21,
1703 397.16, 440.5, 488.6, 541.04, 595.3, 650.43, 652.03, 688.74,
1704 719.47, 743.54, 757.68, 762.35, 756.43, 741.42, 595.43, 580.97,
1705 580.83, 605.68, 667.88, 764.49, 759.93, 789.12, 798.17, 645.66,
1706 615.65, 455.05, 421.09, 306.45, 289.14, 235.7, 215.52, 274.57,
1707 316.53, 357.73, 409.89, 465.06, 521.84, 579.02, 630.64, 794.46,
1708 813., 813.56, 796.25, 761.57, 727.97, 812.14, 866.75, 932.5,
1709 1132.8, 1194.8, 1362.2, 1387.2, 1482.3, 1479.7, 1517.9, 1533.1,
1710 1534.2, 1523.3, 1522.5, 1515.5, 1505.2, 1486.5, 1454., 1412.,
1711 1358.8, 1107.8, 1060.9, 1033.5, 1048.2, 1122.4, 1248.9, 1227.1,
1712 1255.4, 1058.9, 1020.7, 970.59, 715.24, 512.56, 468.47, 349.3,
1713 338.26, 299.22, 301.26, 332.38, 382.08, 445.49, 515.87, 590.85,
1714 662.3, 726.05, 955.59, 964.11, 945.17, 891.48, 807.11, 720.9,
1715 803.36, 834.46, 1073.9, 1107.1, 1123.6, 1296., 1393.7, 1303.1,
1716 1284.3, 1161.8, 1078.8, 976.13, 868.72, 767.4, 674.72, 593.73,
1717 523.12, 462.24, 409.75, 364.34, 325., 290.73, 260.76, 234.46,
1718 211.28, 190.78, 172.61, 156.44, 142.01, 129.12, 117.57, 107.2,
1719 97.877, 89.47, 81.882, 75.021, 68.807, 63.171, 58.052, 53.396,
1720 49.155, 45.288, 41.759, 38.531, 35.576, 32.868, 30.384, 28.102,
1721 26.003, 24.071, 22.293, 20.655, 19.147, 17.756, 16.476, 15.292,
1722 14.198, 13.183, 12.241, 11.367, 10.554, 9.7989, 9.0978, 8.4475,
1723 7.845, 7.2868, 6.7704, 6.2927, 5.8508, 5.4421, 5.064, 4.714,
1724 4.3902, 4.0902, 3.8121, 3.5543, 3.315, 3.093, 2.8869, 2.6953,
1725 2.5172, 2.3517, 2.1977, 2.0544, 1.9211, 1.7969, 1.6812, 1.5735,
1726 1.4731, 1.3794, 1.2921, 1.2107, 1.1346, 1.0637, .99744, .93554,
1727 .87771, .82368, .77313, .72587, .6816, .64014, .60134, .565,
1728 .53086, .49883, .46881, .44074, .4144, .38979, .36679, .34513,
1729 .32474, .30552, .28751, .27045, .25458, .23976, .22584, .21278,
1730 .20051, .18899, .17815, .16801, .15846, .14954, .14117, .13328,
1735 double xw = nu / 2 + 1;
1736 if (xw >= 1 && xw < 2001) {
1738 double dw = xw - iw;
1740 double cw296 = ew * co2296[iw - 1] + dw * co2296[iw];
1741 double cw260 = ew * co2260[iw - 1] + dw * co2260[iw];
1742 double cw230 = ew * co2230[iw - 1] + dw * co2230[iw];
1743 double dt230 = t - 230;
1744 double dt260 = t - 260;
1745 double dt296 = t - 296;
1746 double ctw = dt260 * 5.050505e-4 * dt296 * cw230 - dt230 * 9.259259e-4
1747 * dt296 * cw260 + dt230 * 4.208754e-4 * dt260 * cw296;
1748 return u /
NA / 1000 * p /
P0 * ctw;
1762 static double h2o296[2001] = { .17, .1695, .172, .168, .1687, .1624, .1606,
1763 .1508, .1447, .1344, .1214, .1133, .1009, .09217, .08297, .06989,
1764 .06513, .05469, .05056, .04417, .03779, .03484, .02994, .0272,
1765 .02325, .02063, .01818, .01592, .01405, .01251, .0108, .009647,
1766 .008424, .007519, .006555, .00588, .005136, .004511, .003989,
1767 .003509, .003114, .00274, .002446, .002144, .001895, .001676,
1768 .001486, .001312, .001164, .001031, 9.129e-4, 8.106e-4, 7.213e-4,
1769 6.4e-4, 5.687e-4, 5.063e-4, 4.511e-4, 4.029e-4, 3.596e-4,
1770 3.22e-4, 2.889e-4, 2.597e-4, 2.337e-4, 2.108e-4, 1.907e-4,
1771 1.728e-4, 1.57e-4, 1.43e-4, 1.305e-4, 1.195e-4, 1.097e-4,
1772 1.009e-4, 9.307e-5, 8.604e-5, 7.971e-5, 7.407e-5, 6.896e-5,
1773 6.433e-5, 6.013e-5, 5.631e-5, 5.283e-5, 4.963e-5, 4.669e-5,
1774 4.398e-5, 4.148e-5, 3.917e-5, 3.702e-5, 3.502e-5, 3.316e-5,
1775 3.142e-5, 2.978e-5, 2.825e-5, 2.681e-5, 2.546e-5, 2.419e-5,
1776 2.299e-5, 2.186e-5, 2.079e-5, 1.979e-5, 1.884e-5, 1.795e-5,
1777 1.711e-5, 1.633e-5, 1.559e-5, 1.49e-5, 1.426e-5, 1.367e-5,
1778 1.312e-5, 1.263e-5, 1.218e-5, 1.178e-5, 1.143e-5, 1.112e-5,
1779 1.088e-5, 1.07e-5, 1.057e-5, 1.05e-5, 1.051e-5, 1.059e-5,
1780 1.076e-5, 1.1e-5, 1.133e-5, 1.18e-5, 1.237e-5, 1.308e-5,
1781 1.393e-5, 1.483e-5, 1.614e-5, 1.758e-5, 1.93e-5, 2.123e-5,
1782 2.346e-5, 2.647e-5, 2.93e-5, 3.279e-5, 3.745e-5, 4.152e-5,
1783 4.813e-5, 5.477e-5, 6.203e-5, 7.331e-5, 8.056e-5, 9.882e-5,
1784 1.05e-4, 1.21e-4, 1.341e-4, 1.572e-4, 1.698e-4, 1.968e-4,
1785 2.175e-4, 2.431e-4, 2.735e-4, 2.867e-4, 3.19e-4, 3.371e-4,
1786 3.554e-4, 3.726e-4, 3.837e-4, 3.878e-4, 3.864e-4, 3.858e-4,
1787 3.841e-4, 3.852e-4, 3.815e-4, 3.762e-4, 3.618e-4, 3.579e-4,
1788 3.45e-4, 3.202e-4, 3.018e-4, 2.785e-4, 2.602e-4, 2.416e-4,
1789 2.097e-4, 1.939e-4, 1.689e-4, 1.498e-4, 1.308e-4, 1.17e-4,
1790 1.011e-4, 9.237e-5, 7.909e-5, 7.006e-5, 6.112e-5, 5.401e-5,
1791 4.914e-5, 4.266e-5, 3.963e-5, 3.316e-5, 3.037e-5, 2.598e-5,
1792 2.294e-5, 2.066e-5, 1.813e-5, 1.583e-5, 1.423e-5, 1.247e-5,
1793 1.116e-5, 9.76e-6, 8.596e-6, 7.72e-6, 6.825e-6, 6.108e-6,
1794 5.366e-6, 4.733e-6, 4.229e-6, 3.731e-6, 3.346e-6, 2.972e-6,
1795 2.628e-6, 2.356e-6, 2.102e-6, 1.878e-6, 1.678e-6, 1.507e-6,
1796 1.348e-6, 1.21e-6, 1.089e-6, 9.806e-7, 8.857e-7, 8.004e-7,
1797 7.261e-7, 6.599e-7, 6.005e-7, 5.479e-7, 5.011e-7, 4.595e-7,
1798 4.219e-7, 3.885e-7, 3.583e-7, 3.314e-7, 3.071e-7, 2.852e-7,
1799 2.654e-7, 2.474e-7, 2.311e-7, 2.162e-7, 2.026e-7, 1.902e-7,
1800 1.788e-7, 1.683e-7, 1.587e-7, 1.497e-7, 1.415e-7, 1.338e-7,
1801 1.266e-7, 1.2e-7, 1.138e-7, 1.08e-7, 1.027e-7, 9.764e-8,
1802 9.296e-8, 8.862e-8, 8.458e-8, 8.087e-8, 7.744e-8, 7.429e-8,
1803 7.145e-8, 6.893e-8, 6.664e-8, 6.468e-8, 6.322e-8, 6.162e-8,
1804 6.07e-8, 5.992e-8, 5.913e-8, 5.841e-8, 5.796e-8, 5.757e-8,
1805 5.746e-8, 5.731e-8, 5.679e-8, 5.577e-8, 5.671e-8, 5.656e-8,
1806 5.594e-8, 5.593e-8, 5.602e-8, 5.62e-8, 5.693e-8, 5.725e-8,
1807 5.858e-8, 6.037e-8, 6.249e-8, 6.535e-8, 6.899e-8, 7.356e-8,
1808 7.918e-8, 8.618e-8, 9.385e-8, 1.039e-7, 1.158e-7, 1.29e-7,
1809 1.437e-7, 1.65e-7, 1.871e-7, 2.121e-7, 2.427e-7, 2.773e-7,
1810 3.247e-7, 3.677e-7, 4.037e-7, 4.776e-7, 5.101e-7, 6.214e-7,
1811 6.936e-7, 7.581e-7, 8.486e-7, 9.355e-7, 9.942e-7, 1.063e-6,
1812 1.123e-6, 1.191e-6, 1.215e-6, 1.247e-6, 1.26e-6, 1.271e-6,
1813 1.284e-6, 1.317e-6, 1.323e-6, 1.349e-6, 1.353e-6, 1.362e-6,
1814 1.344e-6, 1.329e-6, 1.336e-6, 1.327e-6, 1.325e-6, 1.359e-6,
1815 1.374e-6, 1.415e-6, 1.462e-6, 1.526e-6, 1.619e-6, 1.735e-6,
1816 1.863e-6, 2.034e-6, 2.265e-6, 2.482e-6, 2.756e-6, 3.103e-6,
1817 3.466e-6, 3.832e-6, 4.378e-6, 4.913e-6, 5.651e-6, 6.311e-6,
1818 7.169e-6, 8.057e-6, 9.253e-6, 1.047e-5, 1.212e-5, 1.36e-5,
1819 1.569e-5, 1.776e-5, 2.02e-5, 2.281e-5, 2.683e-5, 2.994e-5,
1820 3.488e-5, 3.896e-5, 4.499e-5, 5.175e-5, 6.035e-5, 6.34e-5,
1821 7.281e-5, 7.923e-5, 8.348e-5, 9.631e-5, 1.044e-4, 1.102e-4,
1822 1.176e-4, 1.244e-4, 1.283e-4, 1.326e-4, 1.4e-4, 1.395e-4,
1823 1.387e-4, 1.363e-4, 1.314e-4, 1.241e-4, 1.228e-4, 1.148e-4,
1824 1.086e-4, 1.018e-4, 8.89e-5, 8.316e-5, 7.292e-5, 6.452e-5,
1825 5.625e-5, 5.045e-5, 4.38e-5, 3.762e-5, 3.29e-5, 2.836e-5,
1826 2.485e-5, 2.168e-5, 1.895e-5, 1.659e-5, 1.453e-5, 1.282e-5,
1827 1.132e-5, 1.001e-5, 8.836e-6, 7.804e-6, 6.922e-6, 6.116e-6,
1828 5.429e-6, 4.824e-6, 4.278e-6, 3.788e-6, 3.371e-6, 2.985e-6,
1829 2.649e-6, 2.357e-6, 2.09e-6, 1.858e-6, 1.647e-6, 1.462e-6,
1830 1.299e-6, 1.155e-6, 1.028e-6, 9.142e-7, 8.132e-7, 7.246e-7,
1831 6.451e-7, 5.764e-7, 5.151e-7, 4.603e-7, 4.121e-7, 3.694e-7,
1832 3.318e-7, 2.985e-7, 2.69e-7, 2.428e-7, 2.197e-7, 1.992e-7,
1833 1.81e-7, 1.649e-7, 1.506e-7, 1.378e-7, 1.265e-7, 1.163e-7,
1834 1.073e-7, 9.918e-8, 9.191e-8, 8.538e-8, 7.949e-8, 7.419e-8,
1835 6.94e-8, 6.508e-8, 6.114e-8, 5.761e-8, 5.437e-8, 5.146e-8,
1836 4.89e-8, 4.636e-8, 4.406e-8, 4.201e-8, 4.015e-8, 3.84e-8,
1837 3.661e-8, 3.51e-8, 3.377e-8, 3.242e-8, 3.13e-8, 3.015e-8,
1838 2.918e-8, 2.83e-8, 2.758e-8, 2.707e-8, 2.656e-8, 2.619e-8,
1839 2.609e-8, 2.615e-8, 2.63e-8, 2.675e-8, 2.745e-8, 2.842e-8,
1840 2.966e-8, 3.125e-8, 3.318e-8, 3.565e-8, 3.85e-8, 4.191e-8,
1841 4.59e-8, 5.059e-8, 5.607e-8, 6.239e-8, 6.958e-8, 7.796e-8,
1842 8.773e-8, 9.88e-8, 1.114e-7, 1.258e-7, 1.422e-7, 1.61e-7,
1843 1.822e-7, 2.06e-7, 2.337e-7, 2.645e-7, 2.996e-7, 3.393e-7,
1844 3.843e-7, 4.363e-7, 4.935e-7, 5.607e-7, 6.363e-7, 7.242e-7,
1845 8.23e-7, 9.411e-7, 1.071e-6, 1.232e-6, 1.402e-6, 1.6e-6, 1.82e-6,
1846 2.128e-6, 2.386e-6, 2.781e-6, 3.242e-6, 3.653e-6, 4.323e-6,
1847 4.747e-6, 5.321e-6, 5.919e-6, 6.681e-6, 7.101e-6, 7.983e-6,
1848 8.342e-6, 8.741e-6, 9.431e-6, 9.952e-6, 1.026e-5, 1.055e-5,
1849 1.095e-5, 1.095e-5, 1.087e-5, 1.056e-5, 1.026e-5, 9.715e-6,
1850 9.252e-6, 8.452e-6, 7.958e-6, 7.268e-6, 6.295e-6, 6.003e-6, 5e-6,
1851 4.591e-6, 3.983e-6, 3.479e-6, 3.058e-6, 2.667e-6, 2.293e-6,
1852 1.995e-6, 1.747e-6, 1.517e-6, 1.335e-6, 1.165e-6, 1.028e-6,
1853 9.007e-7, 7.956e-7, 7.015e-7, 6.192e-7, 5.491e-7, 4.859e-7,
1854 4.297e-7, 3.799e-7, 3.38e-7, 3.002e-7, 2.659e-7, 2.366e-7,
1855 2.103e-7, 1.861e-7, 1.655e-7, 1.469e-7, 1.309e-7, 1.162e-7,
1856 1.032e-7, 9.198e-8, 8.181e-8, 7.294e-8, 6.516e-8, 5.787e-8,
1857 5.163e-8, 4.612e-8, 4.119e-8, 3.695e-8, 3.308e-8, 2.976e-8,
1858 2.67e-8, 2.407e-8, 2.171e-8, 1.965e-8, 1.78e-8, 1.617e-8,
1859 1.47e-8, 1.341e-8, 1.227e-8, 1.125e-8, 1.033e-8, 9.524e-9,
1860 8.797e-9, 8.162e-9, 7.565e-9, 7.04e-9, 6.56e-9, 6.129e-9,
1861 5.733e-9, 5.376e-9, 5.043e-9, 4.75e-9, 4.466e-9, 4.211e-9,
1862 3.977e-9, 3.759e-9, 3.558e-9, 3.373e-9, 3.201e-9, 3.043e-9,
1863 2.895e-9, 2.76e-9, 2.635e-9, 2.518e-9, 2.411e-9, 2.314e-9,
1864 2.23e-9, 2.151e-9, 2.087e-9, 2.035e-9, 1.988e-9, 1.946e-9,
1865 1.927e-9, 1.916e-9, 1.916e-9, 1.933e-9, 1.966e-9, 2.018e-9,
1866 2.09e-9, 2.182e-9, 2.299e-9, 2.442e-9, 2.623e-9, 2.832e-9,
1867 3.079e-9, 3.368e-9, 3.714e-9, 4.104e-9, 4.567e-9, 5.091e-9,
1868 5.701e-9, 6.398e-9, 7.194e-9, 8.127e-9, 9.141e-9, 1.035e-8,
1869 1.177e-8, 1.338e-8, 1.508e-8, 1.711e-8, 1.955e-8, 2.216e-8,
1870 2.534e-8, 2.871e-8, 3.291e-8, 3.711e-8, 4.285e-8, 4.868e-8,
1871 5.509e-8, 6.276e-8, 7.262e-8, 8.252e-8, 9.4e-8, 1.064e-7,
1872 1.247e-7, 1.411e-7, 1.626e-7, 1.827e-7, 2.044e-7, 2.284e-7,
1873 2.452e-7, 2.854e-7, 3.026e-7, 3.278e-7, 3.474e-7, 3.693e-7,
1874 3.93e-7, 4.104e-7, 4.22e-7, 4.439e-7, 4.545e-7, 4.778e-7,
1875 4.812e-7, 5.018e-7, 4.899e-7, 5.075e-7, 5.073e-7, 5.171e-7,
1876 5.131e-7, 5.25e-7, 5.617e-7, 5.846e-7, 6.239e-7, 6.696e-7,
1877 7.398e-7, 8.073e-7, 9.15e-7, 1.009e-6, 1.116e-6, 1.264e-6,
1878 1.439e-6, 1.644e-6, 1.856e-6, 2.147e-6, 2.317e-6, 2.713e-6,
1879 2.882e-6, 2.99e-6, 3.489e-6, 3.581e-6, 4.033e-6, 4.26e-6,
1880 4.543e-6, 4.84e-6, 4.826e-6, 5.013e-6, 5.252e-6, 5.277e-6,
1881 5.306e-6, 5.236e-6, 5.123e-6, 5.171e-6, 4.843e-6, 4.615e-6,
1882 4.385e-6, 3.97e-6, 3.693e-6, 3.231e-6, 2.915e-6, 2.495e-6,
1883 2.144e-6, 1.91e-6, 1.639e-6, 1.417e-6, 1.226e-6, 1.065e-6,
1884 9.29e-7, 8.142e-7, 7.161e-7, 6.318e-7, 5.581e-7, 4.943e-7,
1885 4.376e-7, 3.884e-7, 3.449e-7, 3.06e-7, 2.712e-7, 2.412e-7,
1886 2.139e-7, 1.903e-7, 1.689e-7, 1.499e-7, 1.331e-7, 1.183e-7,
1887 1.05e-7, 9.362e-8, 8.306e-8, 7.403e-8, 6.578e-8, 5.853e-8,
1888 5.216e-8, 4.632e-8, 4.127e-8, 3.678e-8, 3.279e-8, 2.923e-8,
1889 2.612e-8, 2.339e-8, 2.094e-8, 1.877e-8, 1.686e-8, 1.516e-8,
1890 1.366e-8, 1.234e-8, 1.114e-8, 1.012e-8, 9.182e-9, 8.362e-9,
1891 7.634e-9, 6.981e-9, 6.406e-9, 5.888e-9, 5.428e-9, 5.021e-9,
1892 4.65e-9, 4.326e-9, 4.033e-9, 3.77e-9, 3.536e-9, 3.327e-9,
1893 3.141e-9, 2.974e-9, 2.825e-9, 2.697e-9, 2.584e-9, 2.488e-9,
1894 2.406e-9, 2.34e-9, 2.292e-9, 2.259e-9, 2.244e-9, 2.243e-9,
1895 2.272e-9, 2.31e-9, 2.378e-9, 2.454e-9, 2.618e-9, 2.672e-9,
1896 2.831e-9, 3.05e-9, 3.225e-9, 3.425e-9, 3.677e-9, 3.968e-9,
1897 4.221e-9, 4.639e-9, 4.96e-9, 5.359e-9, 5.649e-9, 6.23e-9,
1898 6.716e-9, 7.218e-9, 7.746e-9, 7.988e-9, 8.627e-9, 8.999e-9,
1899 9.442e-9, 9.82e-9, 1.015e-8, 1.06e-8, 1.079e-8, 1.109e-8,
1900 1.137e-8, 1.186e-8, 1.18e-8, 1.187e-8, 1.194e-8, 1.192e-8,
1901 1.224e-8, 1.245e-8, 1.246e-8, 1.318e-8, 1.377e-8, 1.471e-8,
1902 1.582e-8, 1.713e-8, 1.853e-8, 2.063e-8, 2.27e-8, 2.567e-8,
1903 2.891e-8, 3.264e-8, 3.744e-8, 4.286e-8, 4.915e-8, 5.623e-8,
1904 6.336e-8, 7.293e-8, 8.309e-8, 9.319e-8, 1.091e-7, 1.243e-7,
1905 1.348e-7, 1.449e-7, 1.62e-7, 1.846e-7, 1.937e-7, 2.04e-7,
1906 2.179e-7, 2.298e-7, 2.433e-7, 2.439e-7, 2.464e-7, 2.611e-7,
1907 2.617e-7, 2.582e-7, 2.453e-7, 2.401e-7, 2.349e-7, 2.203e-7,
1908 2.066e-7, 1.939e-7, 1.78e-7, 1.558e-7, 1.391e-7, 1.203e-7,
1909 1.048e-7, 9.464e-8, 8.306e-8, 7.239e-8, 6.317e-8, 5.52e-8,
1910 4.847e-8, 4.282e-8, 3.796e-8, 3.377e-8, 2.996e-8, 2.678e-8,
1911 2.4e-8, 2.134e-8, 1.904e-8, 1.705e-8, 1.523e-8, 1.35e-8,
1912 1.204e-8, 1.07e-8, 9.408e-9, 8.476e-9, 7.47e-9, 6.679e-9,
1913 5.929e-9, 5.267e-9, 4.711e-9, 4.172e-9, 3.761e-9, 3.288e-9,
1914 2.929e-9, 2.609e-9, 2.315e-9, 2.042e-9, 1.844e-9, 1.64e-9,
1915 1.47e-9, 1.31e-9, 1.176e-9, 1.049e-9, 9.377e-10, 8.462e-10,
1916 7.616e-10, 6.854e-10, 6.191e-10, 5.596e-10, 5.078e-10, 4.611e-10,
1917 4.197e-10, 3.83e-10, 3.505e-10, 3.215e-10, 2.956e-10, 2.726e-10,
1918 2.521e-10, 2.338e-10, 2.173e-10, 2.026e-10, 1.895e-10, 1.777e-10,
1919 1.672e-10, 1.579e-10, 1.496e-10, 1.423e-10, 1.358e-10, 1.302e-10,
1920 1.254e-10, 1.216e-10, 1.187e-10, 1.163e-10, 1.147e-10, 1.145e-10,
1921 1.15e-10, 1.17e-10, 1.192e-10, 1.25e-10, 1.298e-10, 1.345e-10,
1922 1.405e-10, 1.538e-10, 1.648e-10, 1.721e-10, 1.872e-10, 1.968e-10,
1923 2.089e-10, 2.172e-10, 2.317e-10, 2.389e-10, 2.503e-10, 2.585e-10,
1924 2.686e-10, 2.8e-10, 2.895e-10, 3.019e-10, 3.037e-10, 3.076e-10,
1925 3.146e-10, 3.198e-10, 3.332e-10, 3.397e-10, 3.54e-10, 3.667e-10,
1926 3.895e-10, 4.071e-10, 4.565e-10, 4.983e-10, 5.439e-10, 5.968e-10,
1927 6.676e-10, 7.456e-10, 8.405e-10, 9.478e-10, 1.064e-9, 1.218e-9,
1928 1.386e-9, 1.581e-9, 1.787e-9, 2.032e-9, 2.347e-9, 2.677e-9,
1929 3.008e-9, 3.544e-9, 4.056e-9, 4.687e-9, 5.331e-9, 6.227e-9,
1930 6.854e-9, 8.139e-9, 8.945e-9, 9.865e-9, 1.125e-8, 1.178e-8,
1931 1.364e-8, 1.436e-8, 1.54e-8, 1.672e-8, 1.793e-8, 1.906e-8,
1932 2.036e-8, 2.144e-8, 2.292e-8, 2.371e-8, 2.493e-8, 2.606e-8,
1933 2.706e-8, 2.866e-8, 3.036e-8, 3.136e-8, 3.405e-8, 3.665e-8,
1934 3.837e-8, 4.229e-8, 4.748e-8, 5.32e-8, 5.763e-8, 6.677e-8,
1935 7.216e-8, 7.716e-8, 8.958e-8, 9.419e-8, 1.036e-7, 1.108e-7,
1936 1.189e-7, 1.246e-7, 1.348e-7, 1.31e-7, 1.361e-7, 1.364e-7,
1937 1.363e-7, 1.343e-7, 1.293e-7, 1.254e-7, 1.235e-7, 1.158e-7,
1938 1.107e-7, 9.961e-8, 9.011e-8, 7.91e-8, 6.916e-8, 6.338e-8,
1939 5.564e-8, 4.827e-8, 4.198e-8, 3.695e-8, 3.276e-8, 2.929e-8,
1940 2.633e-8, 2.391e-8, 2.192e-8, 2.021e-8, 1.89e-8, 1.772e-8,
1941 1.667e-8, 1.603e-8, 1.547e-8, 1.537e-8, 1.492e-8, 1.515e-8,
1942 1.479e-8, 1.45e-8, 1.513e-8, 1.495e-8, 1.529e-8, 1.565e-8,
1943 1.564e-8, 1.553e-8, 1.569e-8, 1.584e-8, 1.57e-8, 1.538e-8,
1944 1.513e-8, 1.472e-8, 1.425e-8, 1.349e-8, 1.328e-8, 1.249e-8,
1945 1.17e-8, 1.077e-8, 9.514e-9, 8.614e-9, 7.46e-9, 6.621e-9,
1946 5.775e-9, 5.006e-9, 4.308e-9, 3.747e-9, 3.24e-9, 2.84e-9,
1947 2.481e-9, 2.184e-9, 1.923e-9, 1.71e-9, 1.504e-9, 1.334e-9,
1948 1.187e-9, 1.053e-9, 9.367e-10, 8.306e-10, 7.419e-10, 6.63e-10,
1949 5.918e-10, 5.277e-10, 4.717e-10, 4.222e-10, 3.783e-10, 3.39e-10,
1950 3.036e-10, 2.729e-10, 2.455e-10, 2.211e-10, 1.995e-10, 1.804e-10,
1951 1.635e-10, 1.485e-10, 1.355e-10, 1.24e-10, 1.139e-10, 1.051e-10,
1952 9.757e-11, 9.114e-11, 8.577e-11, 8.139e-11, 7.792e-11, 7.52e-11,
1953 7.39e-11, 7.311e-11, 7.277e-11, 7.482e-11, 7.698e-11, 8.162e-11,
1954 8.517e-11, 8.968e-11, 9.905e-11, 1.075e-10, 1.187e-10, 1.291e-10,
1955 1.426e-10, 1.573e-10, 1.734e-10, 1.905e-10, 2.097e-10, 2.28e-10,
1956 2.473e-10, 2.718e-10, 2.922e-10, 3.128e-10, 3.361e-10, 3.641e-10,
1957 3.91e-10, 4.196e-10, 4.501e-10, 4.932e-10, 5.258e-10, 5.755e-10,
1958 6.253e-10, 6.664e-10, 7.344e-10, 7.985e-10, 8.877e-10, 1.005e-9,
1959 1.118e-9, 1.251e-9, 1.428e-9, 1.61e-9, 1.888e-9, 2.077e-9,
1960 2.331e-9, 2.751e-9, 3.061e-9, 3.522e-9, 3.805e-9, 4.181e-9,
1961 4.575e-9, 5.167e-9, 5.634e-9, 6.007e-9, 6.501e-9, 6.829e-9,
1962 7.211e-9, 7.262e-9, 7.696e-9, 7.832e-9, 7.799e-9, 7.651e-9,
1963 7.304e-9, 7.15e-9, 6.977e-9, 6.603e-9, 6.209e-9, 5.69e-9,
1964 5.432e-9, 4.764e-9, 4.189e-9, 3.64e-9, 3.203e-9, 2.848e-9,
1965 2.51e-9, 2.194e-9, 1.946e-9, 1.75e-9, 1.567e-9, 1.426e-9,
1966 1.302e-9, 1.197e-9, 1.109e-9, 1.035e-9, 9.719e-10, 9.207e-10,
1967 8.957e-10, 8.578e-10, 8.262e-10, 8.117e-10, 7.987e-10, 7.875e-10,
1968 7.741e-10, 7.762e-10, 7.537e-10, 7.424e-10, 7.474e-10, 7.294e-10,
1969 7.216e-10, 7.233e-10, 7.075e-10, 6.892e-10, 6.618e-10, 6.314e-10,
1970 6.208e-10, 5.689e-10, 5.55e-10, 4.984e-10, 4.6e-10, 4.078e-10,
1971 3.879e-10, 3.459e-10, 2.982e-10, 2.626e-10, 2.329e-10, 1.988e-10,
1972 1.735e-10, 1.487e-10, 1.297e-10, 1.133e-10, 9.943e-11, 8.736e-11,
1973 7.726e-11, 6.836e-11, 6.053e-11, 5.384e-11, 4.789e-11, 4.267e-11,
1974 3.804e-11, 3.398e-11, 3.034e-11, 2.71e-11, 2.425e-11, 2.173e-11,
1975 1.95e-11, 1.752e-11, 1.574e-11, 1.418e-11, 1.278e-11, 1.154e-11,
1976 1.044e-11, 9.463e-12, 8.602e-12, 7.841e-12, 7.171e-12, 6.584e-12,
1977 6.073e-12, 5.631e-12, 5.254e-12, 4.937e-12, 4.679e-12, 4.476e-12,
1978 4.328e-12, 4.233e-12, 4.194e-12, 4.211e-12, 4.286e-12, 4.424e-12,
1979 4.628e-12, 4.906e-12, 5.262e-12, 5.708e-12, 6.254e-12, 6.914e-12,
1980 7.714e-12, 8.677e-12, 9.747e-12, 1.101e-11, 1.256e-11, 1.409e-11,
1981 1.597e-11, 1.807e-11, 2.034e-11, 2.316e-11, 2.622e-11, 2.962e-11,
1982 3.369e-11, 3.819e-11, 4.329e-11, 4.932e-11, 5.589e-11, 6.364e-11,
1983 7.284e-11, 8.236e-11, 9.447e-11, 1.078e-10, 1.229e-10, 1.417e-10,
1984 1.614e-10, 1.843e-10, 2.107e-10, 2.406e-10, 2.728e-10, 3.195e-10,
1985 3.595e-10, 4.153e-10, 4.736e-10, 5.41e-10, 6.088e-10, 6.769e-10,
1986 7.691e-10, 8.545e-10, 9.621e-10, 1.047e-9, 1.161e-9, 1.296e-9,
1987 1.424e-9, 1.576e-9, 1.739e-9, 1.893e-9, 2.08e-9, 2.336e-9,
1988 2.604e-9, 2.76e-9, 3.001e-9, 3.365e-9, 3.55e-9, 3.895e-9,
1989 4.183e-9, 4.614e-9, 4.846e-9, 5.068e-9, 5.427e-9, 5.541e-9,
1990 5.864e-9, 5.997e-9, 5.997e-9, 6.061e-9, 5.944e-9, 5.855e-9,
1991 5.661e-9, 5.523e-9, 5.374e-9, 4.94e-9, 4.688e-9, 4.17e-9,
1992 3.913e-9, 3.423e-9, 2.997e-9, 2.598e-9, 2.253e-9, 1.946e-9,
1993 1.71e-9, 1.507e-9, 1.336e-9, 1.19e-9, 1.068e-9, 9.623e-10,
1994 8.772e-10, 8.007e-10, 7.42e-10, 6.884e-10, 6.483e-10, 6.162e-10,
1995 5.922e-10, 5.688e-10, 5.654e-10, 5.637e-10, 5.701e-10, 5.781e-10,
1996 5.874e-10, 6.268e-10, 6.357e-10, 6.525e-10, 7.137e-10, 7.441e-10,
1997 8.024e-10, 8.485e-10, 9.143e-10, 9.536e-10, 9.717e-10, 1.018e-9,
1998 1.042e-9, 1.054e-9, 1.092e-9, 1.079e-9, 1.064e-9, 1.043e-9,
1999 1.02e-9, 9.687e-10, 9.273e-10, 9.208e-10, 9.068e-10, 7.687e-10,
2000 7.385e-10, 6.595e-10, 5.87e-10, 5.144e-10, 4.417e-10, 3.804e-10,
2001 3.301e-10, 2.866e-10, 2.509e-10, 2.202e-10, 1.947e-10, 1.719e-10,
2002 1.525e-10, 1.361e-10, 1.21e-10, 1.084e-10, 9.8e-11, 8.801e-11,
2003 7.954e-11, 7.124e-11, 6.335e-11, 5.76e-11, 5.132e-11, 4.601e-11,
2004 4.096e-11, 3.657e-11, 3.25e-11, 2.909e-11, 2.587e-11, 2.297e-11,
2005 2.05e-11, 1.828e-11, 1.632e-11, 1.462e-11, 1.314e-11, 1.185e-11,
2006 1.073e-11, 9.76e-12, 8.922e-12, 8.206e-12, 7.602e-12, 7.1e-12,
2007 6.694e-12, 6.378e-12, 6.149e-12, 6.004e-12, 5.941e-12, 5.962e-12,
2008 6.069e-12, 6.265e-12, 6.551e-12, 6.935e-12, 7.457e-12, 8.074e-12,
2009 8.811e-12, 9.852e-12, 1.086e-11, 1.207e-11, 1.361e-11, 1.553e-11,
2010 1.737e-11, 1.93e-11, 2.175e-11, 2.41e-11, 2.706e-11, 3.023e-11,
2011 3.313e-11, 3.657e-11, 4.118e-11, 4.569e-11, 5.025e-11, 5.66e-11,
2012 6.231e-11, 6.881e-11, 7.996e-11, 8.526e-11, 9.694e-11, 1.106e-10,
2013 1.222e-10, 1.355e-10, 1.525e-10, 1.775e-10, 1.924e-10, 2.181e-10,
2014 2.379e-10, 2.662e-10, 2.907e-10, 3.154e-10, 3.366e-10, 3.579e-10,
2015 3.858e-10, 4.046e-10, 4.196e-10, 4.166e-10, 4.457e-10, 4.466e-10,
2016 4.404e-10, 4.337e-10, 4.15e-10, 4.083e-10, 3.91e-10, 3.723e-10,
2017 3.514e-10, 3.303e-10, 2.847e-10, 2.546e-10, 2.23e-10, 1.994e-10,
2018 1.733e-10, 1.488e-10, 1.297e-10, 1.144e-10, 1.004e-10, 8.741e-11,
2019 7.928e-11, 7.034e-11, 6.323e-11, 5.754e-11, 5.25e-11, 4.85e-11,
2020 4.502e-11, 4.286e-11, 4.028e-11, 3.899e-11, 3.824e-11, 3.761e-11,
2021 3.804e-11, 3.839e-11, 3.845e-11, 4.244e-11, 4.382e-11, 4.582e-11,
2022 4.847e-11, 5.209e-11, 5.384e-11, 5.887e-11, 6.371e-11, 6.737e-11,
2023 7.168e-11, 7.415e-11, 7.827e-11, 8.037e-11, 8.12e-11, 8.071e-11,
2024 8.008e-11, 7.851e-11, 7.544e-11, 7.377e-11, 7.173e-11, 6.801e-11,
2025 6.267e-11, 5.727e-11, 5.288e-11, 4.853e-11, 4.082e-11, 3.645e-11,
2026 3.136e-11, 2.672e-11, 2.304e-11, 1.986e-11, 1.725e-11, 1.503e-11,
2027 1.315e-11, 1.153e-11, 1.014e-11, 8.942e-12, 7.901e-12, 6.993e-12,
2028 6.199e-12, 5.502e-12, 4.89e-12, 4.351e-12, 3.878e-12, 3.461e-12,
2029 3.094e-12, 2.771e-12, 2.488e-12, 2.241e-12, 2.025e-12, 1.838e-12,
2030 1.677e-12, 1.541e-12, 1.427e-12, 1.335e-12, 1.262e-12, 1.209e-12,
2031 1.176e-12, 1.161e-12, 1.165e-12, 1.189e-12, 1.234e-12, 1.3e-12,
2032 1.389e-12, 1.503e-12, 1.644e-12, 1.814e-12, 2.017e-12, 2.255e-12,
2033 2.534e-12, 2.858e-12, 3.231e-12, 3.661e-12, 4.153e-12, 4.717e-12,
2034 5.36e-12, 6.094e-12, 6.93e-12, 7.882e-12, 8.966e-12, 1.02e-11,
2035 1.162e-11, 1.324e-11, 1.51e-11, 1.72e-11, 1.965e-11, 2.237e-11,
2036 2.56e-11, 2.927e-11, 3.371e-11, 3.842e-11, 4.429e-11, 5.139e-11,
2037 5.798e-11, 6.697e-11, 7.626e-11, 8.647e-11, 1.022e-10, 1.136e-10,
2038 1.3e-10, 1.481e-10, 1.672e-10, 1.871e-10, 2.126e-10, 2.357e-10,
2039 2.583e-10, 2.997e-10, 3.289e-10, 3.702e-10, 4.012e-10, 4.319e-10,
2040 4.527e-10, 5.001e-10, 5.448e-10, 5.611e-10, 5.76e-10, 5.965e-10,
2041 6.079e-10, 6.207e-10, 6.276e-10, 6.222e-10, 6.137e-10, 6e-10,
2042 5.814e-10, 5.393e-10, 5.35e-10, 4.947e-10, 4.629e-10, 4.117e-10,
2043 3.712e-10, 3.372e-10, 2.923e-10, 2.55e-10, 2.232e-10, 1.929e-10,
2044 1.679e-10, 1.46e-10, 1.289e-10, 1.13e-10, 9.953e-11, 8.763e-11,
2045 7.76e-11, 6.9e-11, 6.16e-11, 5.525e-11, 4.958e-11, 4.489e-11,
2046 4.072e-11, 3.728e-11, 3.438e-11, 3.205e-11, 3.006e-11, 2.848e-11,
2047 2.766e-11, 2.688e-11, 2.664e-11, 2.67e-11, 2.696e-11, 2.786e-11,
2048 2.861e-11, 3.009e-11, 3.178e-11, 3.389e-11, 3.587e-11, 3.819e-11,
2049 4.054e-11, 4.417e-11, 4.703e-11, 5.137e-11, 5.46e-11, 6.055e-11,
2050 6.333e-11, 6.773e-11, 7.219e-11, 7.717e-11, 8.131e-11, 8.491e-11,
2051 8.574e-11, 9.01e-11, 9.017e-11, 8.999e-11, 8.959e-11, 8.838e-11,
2052 8.579e-11, 8.162e-11, 8.098e-11, 7.472e-11, 7.108e-11, 6.559e-11,
2053 5.994e-11, 5.172e-11, 4.424e-11, 3.951e-11, 3.34e-11, 2.902e-11,
2054 2.541e-11, 2.215e-11, 1.945e-11, 1.716e-11, 1.503e-11, 1.339e-11,
2055 1.185e-11, 1.05e-11, 9.336e-12, 8.307e-12, 7.312e-12, 6.55e-12,
2056 5.836e-12, 5.178e-12, 4.6e-12, 4.086e-12, 3.639e-12, 3.247e-12,
2057 2.904e-12, 2.604e-12, 2.341e-12, 2.112e-12, 1.914e-12, 1.744e-12,
2058 1.598e-12, 1.476e-12, 1.374e-12, 1.293e-12, 1.23e-12, 1.185e-12,
2059 1.158e-12, 1.147e-12, 1.154e-12, 1.177e-12, 1.219e-12, 1.28e-12,
2060 1.36e-12, 1.463e-12, 1.591e-12, 1.75e-12, 1.94e-12, 2.156e-12,
2061 2.43e-12, 2.748e-12, 3.052e-12, 3.533e-12, 3.967e-12, 4.471e-12,
2062 5.041e-12, 5.86e-12, 6.664e-12, 7.522e-12, 8.342e-12, 9.412e-12,
2063 1.072e-11, 1.213e-11, 1.343e-11, 1.496e-11, 1.664e-11, 1.822e-11,
2064 2.029e-11, 2.233e-11, 2.457e-11, 2.709e-11, 2.928e-11, 3.115e-11,
2065 3.356e-11, 3.592e-11, 3.818e-11, 3.936e-11, 4.061e-11, 4.149e-11,
2066 4.299e-11, 4.223e-11, 4.251e-11, 4.287e-11, 4.177e-11, 4.094e-11,
2067 3.942e-11, 3.772e-11, 3.614e-11, 3.394e-11, 3.222e-11, 2.791e-11,
2068 2.665e-11, 2.309e-11, 2.032e-11, 1.74e-11, 1.535e-11, 1.323e-11,
2069 1.151e-11, 9.803e-12, 8.65e-12, 7.54e-12, 6.619e-12, 5.832e-12,
2070 5.113e-12, 4.503e-12, 3.975e-12, 3.52e-12, 3.112e-12, 2.797e-12,
2071 2.5e-12, 2.24e-12, 2.013e-12, 1.819e-12, 1.653e-12, 1.513e-12,
2072 1.395e-12, 1.299e-12, 1.225e-12, 1.168e-12, 1.124e-12, 1.148e-12,
2073 1.107e-12, 1.128e-12, 1.169e-12, 1.233e-12, 1.307e-12, 1.359e-12,
2074 1.543e-12, 1.686e-12, 1.794e-12, 2.028e-12, 2.21e-12, 2.441e-12,
2075 2.653e-12, 2.828e-12, 3.093e-12, 3.28e-12, 3.551e-12, 3.677e-12,
2076 3.803e-12, 3.844e-12, 4.068e-12, 4.093e-12, 4.002e-12, 3.904e-12,
2077 3.624e-12, 3.633e-12, 3.622e-12, 3.443e-12, 3.184e-12, 2.934e-12,
2078 2.476e-12, 2.212e-12, 1.867e-12, 1.594e-12, 1.37e-12, 1.192e-12,
2079 1.045e-12, 9.211e-13, 8.17e-13, 7.29e-13, 6.55e-13, 5.929e-13,
2080 5.415e-13, 4.995e-13, 4.661e-13, 4.406e-13, 4.225e-13, 4.116e-13,
2081 4.075e-13, 4.102e-13, 4.198e-13, 4.365e-13, 4.606e-13, 4.925e-13,
2082 5.326e-13, 5.818e-13, 6.407e-13, 7.104e-13, 7.92e-13, 8.868e-13,
2083 9.964e-13, 1.123e-12, 1.268e-12, 1.434e-12, 1.626e-12, 1.848e-12,
2084 2.107e-12, 2.422e-12, 2.772e-12, 3.145e-12, 3.704e-12, 4.27e-12,
2085 4.721e-12, 5.361e-12, 6.083e-12, 7.095e-12, 7.968e-12, 9.228e-12,
2086 1.048e-11, 1.187e-11, 1.336e-11, 1.577e-11, 1.772e-11, 2.017e-11,
2087 2.25e-11, 2.63e-11, 2.911e-11, 3.356e-11, 3.82e-11, 4.173e-11,
2088 4.811e-11, 5.254e-11, 5.839e-11, 6.187e-11, 6.805e-11, 7.118e-11,
2089 7.369e-11, 7.664e-11, 7.794e-11, 7.947e-11, 8.036e-11, 7.954e-11,
2090 7.849e-11, 7.518e-11, 7.462e-11, 6.926e-11, 6.531e-11, 6.197e-11,
2091 5.421e-11, 4.777e-11, 4.111e-11, 3.679e-11, 3.166e-11, 2.786e-11,
2092 2.436e-11, 2.144e-11, 1.859e-11, 1.628e-11, 1.414e-11, 1.237e-11,
2093 1.093e-11, 9.558e-12
2096 static double h2o260[2001] = { .2752, .2732, .2749, .2676, .2667, .2545,
2097 .2497, .2327, .2218, .2036, .1825, .1694, .1497, .1353, .121,
2098 .1014, .09405, .07848, .07195, .06246, .05306, .04853, .04138,
2099 .03735, .03171, .02785, .02431, .02111, .01845, .0164, .01405,
2100 .01255, .01098, .009797, .008646, .007779, .006898, .006099,
2101 .005453, .004909, .004413, .003959, .003581, .003199, .002871,
2102 .002583, .00233, .002086, .001874, .001684, .001512, .001361,
2103 .001225, .0011, 9.89e-4, 8.916e-4, 8.039e-4, 7.256e-4, 6.545e-4,
2104 5.918e-4, 5.359e-4, 4.867e-4, 4.426e-4, 4.033e-4, 3.682e-4,
2105 3.366e-4, 3.085e-4, 2.833e-4, 2.605e-4, 2.403e-4, 2.221e-4,
2106 2.055e-4, 1.908e-4, 1.774e-4, 1.653e-4, 1.544e-4, 1.443e-4,
2107 1.351e-4, 1.267e-4, 1.19e-4, 1.119e-4, 1.053e-4, 9.922e-5,
2108 9.355e-5, 8.831e-5, 8.339e-5, 7.878e-5, 7.449e-5, 7.043e-5,
2109 6.664e-5, 6.307e-5, 5.969e-5, 5.654e-5, 5.357e-5, 5.075e-5,
2110 4.81e-5, 4.56e-5, 4.322e-5, 4.102e-5, 3.892e-5, 3.696e-5,
2111 3.511e-5, 3.339e-5, 3.177e-5, 3.026e-5, 2.886e-5, 2.756e-5,
2112 2.636e-5, 2.527e-5, 2.427e-5, 2.337e-5, 2.257e-5, 2.185e-5,
2113 2.127e-5, 2.08e-5, 2.041e-5, 2.013e-5, 2e-5, 1.997e-5, 2.009e-5,
2114 2.031e-5, 2.068e-5, 2.124e-5, 2.189e-5, 2.267e-5, 2.364e-5,
2115 2.463e-5, 2.618e-5, 2.774e-5, 2.937e-5, 3.144e-5, 3.359e-5,
2116 3.695e-5, 4.002e-5, 4.374e-5, 4.947e-5, 5.431e-5, 6.281e-5,
2117 7.169e-5, 8.157e-5, 9.728e-5, 1.079e-4, 1.337e-4, 1.442e-4,
2118 1.683e-4, 1.879e-4, 2.223e-4, 2.425e-4, 2.838e-4, 3.143e-4,
2119 3.527e-4, 4.012e-4, 4.237e-4, 4.747e-4, 5.057e-4, 5.409e-4,
2120 5.734e-4, 5.944e-4, 6.077e-4, 6.175e-4, 6.238e-4, 6.226e-4,
2121 6.248e-4, 6.192e-4, 6.098e-4, 5.818e-4, 5.709e-4, 5.465e-4,
2122 5.043e-4, 4.699e-4, 4.294e-4, 3.984e-4, 3.672e-4, 3.152e-4,
2123 2.883e-4, 2.503e-4, 2.211e-4, 1.92e-4, 1.714e-4, 1.485e-4,
2124 1.358e-4, 1.156e-4, 1.021e-4, 8.887e-5, 7.842e-5, 7.12e-5,
2125 6.186e-5, 5.73e-5, 4.792e-5, 4.364e-5, 3.72e-5, 3.28e-5,
2126 2.946e-5, 2.591e-5, 2.261e-5, 2.048e-5, 1.813e-5, 1.63e-5,
2127 1.447e-5, 1.282e-5, 1.167e-5, 1.041e-5, 9.449e-6, 8.51e-6,
2128 7.596e-6, 6.961e-6, 6.272e-6, 5.728e-6, 5.198e-6, 4.667e-6,
2129 4.288e-6, 3.897e-6, 3.551e-6, 3.235e-6, 2.952e-6, 2.688e-6,
2130 2.449e-6, 2.241e-6, 2.05e-6, 1.879e-6, 1.722e-6, 1.582e-6,
2131 1.456e-6, 1.339e-6, 1.236e-6, 1.144e-6, 1.06e-6, 9.83e-7,
2132 9.149e-7, 8.535e-7, 7.973e-7, 7.466e-7, 6.999e-7, 6.574e-7,
2133 6.18e-7, 5.821e-7, 5.487e-7, 5.18e-7, 4.896e-7, 4.631e-7,
2134 4.386e-7, 4.16e-7, 3.945e-7, 3.748e-7, 3.562e-7, 3.385e-7,
2135 3.222e-7, 3.068e-7, 2.922e-7, 2.788e-7, 2.659e-7, 2.539e-7,
2136 2.425e-7, 2.318e-7, 2.219e-7, 2.127e-7, 2.039e-7, 1.958e-7,
2137 1.885e-7, 1.818e-7, 1.758e-7, 1.711e-7, 1.662e-7, 1.63e-7,
2138 1.605e-7, 1.58e-7, 1.559e-7, 1.545e-7, 1.532e-7, 1.522e-7,
2139 1.51e-7, 1.495e-7, 1.465e-7, 1.483e-7, 1.469e-7, 1.448e-7,
2140 1.444e-7, 1.436e-7, 1.426e-7, 1.431e-7, 1.425e-7, 1.445e-7,
2141 1.477e-7, 1.515e-7, 1.567e-7, 1.634e-7, 1.712e-7, 1.802e-7,
2142 1.914e-7, 2.024e-7, 2.159e-7, 2.295e-7, 2.461e-7, 2.621e-7,
2143 2.868e-7, 3.102e-7, 3.394e-7, 3.784e-7, 4.223e-7, 4.864e-7,
2144 5.501e-7, 6.039e-7, 7.193e-7, 7.728e-7, 9.514e-7, 1.073e-6,
2145 1.18e-6, 1.333e-6, 1.472e-6, 1.566e-6, 1.677e-6, 1.784e-6,
2146 1.904e-6, 1.953e-6, 2.02e-6, 2.074e-6, 2.128e-6, 2.162e-6,
2147 2.219e-6, 2.221e-6, 2.249e-6, 2.239e-6, 2.235e-6, 2.185e-6,
2148 2.141e-6, 2.124e-6, 2.09e-6, 2.068e-6, 2.1e-6, 2.104e-6,
2149 2.142e-6, 2.181e-6, 2.257e-6, 2.362e-6, 2.5e-6, 2.664e-6,
2150 2.884e-6, 3.189e-6, 3.48e-6, 3.847e-6, 4.313e-6, 4.79e-6,
2151 5.25e-6, 5.989e-6, 6.692e-6, 7.668e-6, 8.52e-6, 9.606e-6,
2152 1.073e-5, 1.225e-5, 1.377e-5, 1.582e-5, 1.761e-5, 2.029e-5,
2153 2.284e-5, 2.602e-5, 2.94e-5, 3.483e-5, 3.928e-5, 4.618e-5,
2154 5.24e-5, 6.132e-5, 7.183e-5, 8.521e-5, 9.111e-5, 1.07e-4,
2155 1.184e-4, 1.264e-4, 1.475e-4, 1.612e-4, 1.704e-4, 1.818e-4,
2156 1.924e-4, 1.994e-4, 2.061e-4, 2.18e-4, 2.187e-4, 2.2e-4,
2157 2.196e-4, 2.131e-4, 2.015e-4, 1.988e-4, 1.847e-4, 1.729e-4,
2158 1.597e-4, 1.373e-4, 1.262e-4, 1.087e-4, 9.439e-5, 8.061e-5,
2159 7.093e-5, 6.049e-5, 5.12e-5, 4.435e-5, 3.817e-5, 3.34e-5,
2160 2.927e-5, 2.573e-5, 2.291e-5, 2.04e-5, 1.827e-5, 1.636e-5,
2161 1.463e-5, 1.309e-5, 1.17e-5, 1.047e-5, 9.315e-6, 8.328e-6,
2162 7.458e-6, 6.665e-6, 5.94e-6, 5.316e-6, 4.752e-6, 4.252e-6,
2163 3.825e-6, 3.421e-6, 3.064e-6, 2.746e-6, 2.465e-6, 2.216e-6,
2164 1.99e-6, 1.79e-6, 1.609e-6, 1.449e-6, 1.306e-6, 1.177e-6,
2165 1.063e-6, 9.607e-7, 8.672e-7, 7.855e-7, 7.118e-7, 6.46e-7,
2166 5.871e-7, 5.34e-7, 4.868e-7, 4.447e-7, 4.068e-7, 3.729e-7,
2167 3.423e-7, 3.151e-7, 2.905e-7, 2.686e-7, 2.484e-7, 2.306e-7,
2168 2.142e-7, 1.995e-7, 1.86e-7, 1.738e-7, 1.626e-7, 1.522e-7,
2169 1.427e-7, 1.338e-7, 1.258e-7, 1.183e-7, 1.116e-7, 1.056e-7,
2170 9.972e-8, 9.46e-8, 9.007e-8, 8.592e-8, 8.195e-8, 7.816e-8,
2171 7.483e-8, 7.193e-8, 6.892e-8, 6.642e-8, 6.386e-8, 6.154e-8,
2172 5.949e-8, 5.764e-8, 5.622e-8, 5.479e-8, 5.364e-8, 5.301e-8,
2173 5.267e-8, 5.263e-8, 5.313e-8, 5.41e-8, 5.55e-8, 5.745e-8,
2174 6.003e-8, 6.311e-8, 6.713e-8, 7.173e-8, 7.724e-8, 8.368e-8,
2175 9.121e-8, 9.986e-8, 1.097e-7, 1.209e-7, 1.338e-7, 1.486e-7,
2176 1.651e-7, 1.837e-7, 2.048e-7, 2.289e-7, 2.557e-7, 2.857e-7,
2177 3.195e-7, 3.587e-7, 4.015e-7, 4.497e-7, 5.049e-7, 5.665e-7,
2178 6.366e-7, 7.121e-7, 7.996e-7, 8.946e-7, 1.002e-6, 1.117e-6,
2179 1.262e-6, 1.416e-6, 1.611e-6, 1.807e-6, 2.056e-6, 2.351e-6,
2180 2.769e-6, 3.138e-6, 3.699e-6, 4.386e-6, 5.041e-6, 6.074e-6,
2181 6.812e-6, 7.79e-6, 8.855e-6, 1.014e-5, 1.095e-5, 1.245e-5,
2182 1.316e-5, 1.39e-5, 1.504e-5, 1.583e-5, 1.617e-5, 1.652e-5,
2183 1.713e-5, 1.724e-5, 1.715e-5, 1.668e-5, 1.629e-5, 1.552e-5,
2184 1.478e-5, 1.34e-5, 1.245e-5, 1.121e-5, 9.575e-6, 8.956e-6,
2185 7.345e-6, 6.597e-6, 5.612e-6, 4.818e-6, 4.165e-6, 3.579e-6,
2186 3.041e-6, 2.623e-6, 2.29e-6, 1.984e-6, 1.748e-6, 1.534e-6,
2187 1.369e-6, 1.219e-6, 1.092e-6, 9.8e-7, 8.762e-7, 7.896e-7,
2188 7.104e-7, 6.364e-7, 5.691e-7, 5.107e-7, 4.575e-7, 4.09e-7,
2189 3.667e-7, 3.287e-7, 2.931e-7, 2.633e-7, 2.356e-7, 2.111e-7,
2190 1.895e-7, 1.697e-7, 1.525e-7, 1.369e-7, 1.233e-7, 1.114e-7,
2191 9.988e-8, 9.004e-8, 8.149e-8, 7.352e-8, 6.662e-8, 6.03e-8,
2192 5.479e-8, 4.974e-8, 4.532e-8, 4.129e-8, 3.781e-8, 3.462e-8,
2193 3.176e-8, 2.919e-8, 2.687e-8, 2.481e-8, 2.292e-8, 2.119e-8,
2194 1.967e-8, 1.828e-8, 1.706e-8, 1.589e-8, 1.487e-8, 1.393e-8,
2195 1.307e-8, 1.228e-8, 1.156e-8, 1.089e-8, 1.028e-8, 9.696e-9,
2196 9.159e-9, 8.658e-9, 8.187e-9, 7.746e-9, 7.34e-9, 6.953e-9,
2197 6.594e-9, 6.259e-9, 5.948e-9, 5.66e-9, 5.386e-9, 5.135e-9,
2198 4.903e-9, 4.703e-9, 4.515e-9, 4.362e-9, 4.233e-9, 4.117e-9,
2199 4.017e-9, 3.962e-9, 3.924e-9, 3.905e-9, 3.922e-9, 3.967e-9,
2200 4.046e-9, 4.165e-9, 4.32e-9, 4.522e-9, 4.769e-9, 5.083e-9,
2201 5.443e-9, 5.872e-9, 6.366e-9, 6.949e-9, 7.601e-9, 8.371e-9,
2202 9.22e-9, 1.02e-8, 1.129e-8, 1.251e-8, 1.393e-8, 1.542e-8,
2203 1.72e-8, 1.926e-8, 2.152e-8, 2.392e-8, 2.678e-8, 3.028e-8,
2204 3.39e-8, 3.836e-8, 4.309e-8, 4.9e-8, 5.481e-8, 6.252e-8,
2205 7.039e-8, 7.883e-8, 8.849e-8, 1.012e-7, 1.142e-7, 1.3e-7,
2206 1.475e-7, 1.732e-7, 1.978e-7, 2.304e-7, 2.631e-7, 2.988e-7,
2207 3.392e-7, 3.69e-7, 4.355e-7, 4.672e-7, 5.11e-7, 5.461e-7,
2208 5.828e-7, 6.233e-7, 6.509e-7, 6.672e-7, 6.969e-7, 7.104e-7,
2209 7.439e-7, 7.463e-7, 7.708e-7, 7.466e-7, 7.668e-7, 7.549e-7,
2210 7.586e-7, 7.384e-7, 7.439e-7, 7.785e-7, 7.915e-7, 8.31e-7,
2211 8.745e-7, 9.558e-7, 1.038e-6, 1.173e-6, 1.304e-6, 1.452e-6,
2212 1.671e-6, 1.931e-6, 2.239e-6, 2.578e-6, 3.032e-6, 3.334e-6,
2213 3.98e-6, 4.3e-6, 4.518e-6, 5.321e-6, 5.508e-6, 6.211e-6, 6.59e-6,
2214 7.046e-6, 7.555e-6, 7.558e-6, 7.875e-6, 8.319e-6, 8.433e-6,
2215 8.59e-6, 8.503e-6, 8.304e-6, 8.336e-6, 7.739e-6, 7.301e-6,
2216 6.827e-6, 6.078e-6, 5.551e-6, 4.762e-6, 4.224e-6, 3.538e-6,
2217 2.984e-6, 2.619e-6, 2.227e-6, 1.923e-6, 1.669e-6, 1.462e-6,
2218 1.294e-6, 1.155e-6, 1.033e-6, 9.231e-7, 8.238e-7, 7.36e-7,
2219 6.564e-7, 5.869e-7, 5.236e-7, 4.673e-7, 4.174e-7, 3.736e-7,
2220 3.33e-7, 2.976e-7, 2.657e-7, 2.367e-7, 2.106e-7, 1.877e-7,
2221 1.671e-7, 1.494e-7, 1.332e-7, 1.192e-7, 1.065e-7, 9.558e-8,
2222 8.586e-8, 7.717e-8, 6.958e-8, 6.278e-8, 5.666e-8, 5.121e-8,
2223 4.647e-8, 4.213e-8, 3.815e-8, 3.459e-8, 3.146e-8, 2.862e-8,
2224 2.604e-8, 2.375e-8, 2.162e-8, 1.981e-8, 1.817e-8, 1.67e-8,
2225 1.537e-8, 1.417e-8, 1.31e-8, 1.215e-8, 1.128e-8, 1.05e-8,
2226 9.793e-9, 9.158e-9, 8.586e-9, 8.068e-9, 7.595e-9, 7.166e-9,
2227 6.778e-9, 6.427e-9, 6.108e-9, 5.826e-9, 5.571e-9, 5.347e-9,
2228 5.144e-9, 4.968e-9, 4.822e-9, 4.692e-9, 4.589e-9, 4.506e-9,
2229 4.467e-9, 4.44e-9, 4.466e-9, 4.515e-9, 4.718e-9, 4.729e-9,
2230 4.937e-9, 5.249e-9, 5.466e-9, 5.713e-9, 6.03e-9, 6.436e-9,
2231 6.741e-9, 7.33e-9, 7.787e-9, 8.414e-9, 8.908e-9, 9.868e-9,
2232 1.069e-8, 1.158e-8, 1.253e-8, 1.3e-8, 1.409e-8, 1.47e-8,
2233 1.548e-8, 1.612e-8, 1.666e-8, 1.736e-8, 1.763e-8, 1.812e-8,
2234 1.852e-8, 1.923e-8, 1.897e-8, 1.893e-8, 1.888e-8, 1.868e-8,
2235 1.895e-8, 1.899e-8, 1.876e-8, 1.96e-8, 2.02e-8, 2.121e-8,
2236 2.239e-8, 2.379e-8, 2.526e-8, 2.766e-8, 2.994e-8, 3.332e-8,
2237 3.703e-8, 4.158e-8, 4.774e-8, 5.499e-8, 6.355e-8, 7.349e-8,
2238 8.414e-8, 9.846e-8, 1.143e-7, 1.307e-7, 1.562e-7, 1.817e-7,
2239 2.011e-7, 2.192e-7, 2.485e-7, 2.867e-7, 3.035e-7, 3.223e-7,
2240 3.443e-7, 3.617e-7, 3.793e-7, 3.793e-7, 3.839e-7, 4.081e-7,
2241 4.117e-7, 4.085e-7, 3.92e-7, 3.851e-7, 3.754e-7, 3.49e-7,
2242 3.229e-7, 2.978e-7, 2.691e-7, 2.312e-7, 2.029e-7, 1.721e-7,
2243 1.472e-7, 1.308e-7, 1.132e-7, 9.736e-8, 8.458e-8, 7.402e-8,
2244 6.534e-8, 5.811e-8, 5.235e-8, 4.762e-8, 4.293e-8, 3.896e-8,
2245 3.526e-8, 3.165e-8, 2.833e-8, 2.551e-8, 2.288e-8, 2.036e-8,
2246 1.82e-8, 1.626e-8, 1.438e-8, 1.299e-8, 1.149e-8, 1.03e-8,
2247 9.148e-9, 8.122e-9, 7.264e-9, 6.425e-9, 5.777e-9, 5.06e-9,
2248 4.502e-9, 4.013e-9, 3.567e-9, 3.145e-9, 2.864e-9, 2.553e-9,
2249 2.311e-9, 2.087e-9, 1.886e-9, 1.716e-9, 1.556e-9, 1.432e-9,
2250 1.311e-9, 1.202e-9, 1.104e-9, 1.013e-9, 9.293e-10, 8.493e-10,
2251 7.79e-10, 7.185e-10, 6.642e-10, 6.141e-10, 5.684e-10, 5.346e-10,
2252 5.032e-10, 4.725e-10, 4.439e-10, 4.176e-10, 3.93e-10, 3.714e-10,
2253 3.515e-10, 3.332e-10, 3.167e-10, 3.02e-10, 2.887e-10, 2.769e-10,
2254 2.665e-10, 2.578e-10, 2.503e-10, 2.436e-10, 2.377e-10, 2.342e-10,
2255 2.305e-10, 2.296e-10, 2.278e-10, 2.321e-10, 2.355e-10, 2.402e-10,
2256 2.478e-10, 2.67e-10, 2.848e-10, 2.982e-10, 3.263e-10, 3.438e-10,
2257 3.649e-10, 3.829e-10, 4.115e-10, 4.264e-10, 4.473e-10, 4.63e-10,
2258 4.808e-10, 4.995e-10, 5.142e-10, 5.313e-10, 5.318e-10, 5.358e-10,
2259 5.452e-10, 5.507e-10, 5.698e-10, 5.782e-10, 5.983e-10, 6.164e-10,
2260 6.532e-10, 6.811e-10, 7.624e-10, 8.302e-10, 9.067e-10, 9.937e-10,
2261 1.104e-9, 1.221e-9, 1.361e-9, 1.516e-9, 1.675e-9, 1.883e-9,
2262 2.101e-9, 2.349e-9, 2.614e-9, 2.92e-9, 3.305e-9, 3.724e-9,
2263 4.142e-9, 4.887e-9, 5.614e-9, 6.506e-9, 7.463e-9, 8.817e-9,
2264 9.849e-9, 1.187e-8, 1.321e-8, 1.474e-8, 1.698e-8, 1.794e-8,
2265 2.09e-8, 2.211e-8, 2.362e-8, 2.556e-8, 2.729e-8, 2.88e-8,
2266 3.046e-8, 3.167e-8, 3.367e-8, 3.457e-8, 3.59e-8, 3.711e-8,
2267 3.826e-8, 4.001e-8, 4.211e-8, 4.315e-8, 4.661e-8, 5.01e-8,
2268 5.249e-8, 5.84e-8, 6.628e-8, 7.512e-8, 8.253e-8, 9.722e-8,
2269 1.067e-7, 1.153e-7, 1.347e-7, 1.428e-7, 1.577e-7, 1.694e-7,
2270 1.833e-7, 1.938e-7, 2.108e-7, 2.059e-7, 2.157e-7, 2.185e-7,
2271 2.208e-7, 2.182e-7, 2.093e-7, 2.014e-7, 1.962e-7, 1.819e-7,
2272 1.713e-7, 1.51e-7, 1.34e-7, 1.154e-7, 9.89e-8, 8.88e-8, 7.673e-8,
2273 6.599e-8, 5.73e-8, 5.081e-8, 4.567e-8, 4.147e-8, 3.773e-8,
2274 3.46e-8, 3.194e-8, 2.953e-8, 2.759e-8, 2.594e-8, 2.442e-8,
2275 2.355e-8, 2.283e-8, 2.279e-8, 2.231e-8, 2.279e-8, 2.239e-8,
2276 2.21e-8, 2.309e-8, 2.293e-8, 2.352e-8, 2.415e-8, 2.43e-8,
2277 2.426e-8, 2.465e-8, 2.5e-8, 2.496e-8, 2.465e-8, 2.445e-8,
2278 2.383e-8, 2.299e-8, 2.165e-8, 2.113e-8, 1.968e-8, 1.819e-8,
2279 1.644e-8, 1.427e-8, 1.27e-8, 1.082e-8, 9.428e-9, 8.091e-9,
2280 6.958e-9, 5.988e-9, 5.246e-9, 4.601e-9, 4.098e-9, 3.664e-9,
2281 3.287e-9, 2.942e-9, 2.656e-9, 2.364e-9, 2.118e-9, 1.903e-9,
2282 1.703e-9, 1.525e-9, 1.365e-9, 1.229e-9, 1.107e-9, 9.96e-10,
2283 8.945e-10, 8.08e-10, 7.308e-10, 6.616e-10, 5.994e-10, 5.422e-10,
2284 4.929e-10, 4.478e-10, 4.07e-10, 3.707e-10, 3.379e-10, 3.087e-10,
2285 2.823e-10, 2.592e-10, 2.385e-10, 2.201e-10, 2.038e-10, 1.897e-10,
2286 1.774e-10, 1.667e-10, 1.577e-10, 1.502e-10, 1.437e-10, 1.394e-10,
2287 1.358e-10, 1.324e-10, 1.329e-10, 1.324e-10, 1.36e-10, 1.39e-10,
2288 1.424e-10, 1.544e-10, 1.651e-10, 1.817e-10, 1.984e-10, 2.195e-10,
2289 2.438e-10, 2.7e-10, 2.991e-10, 3.322e-10, 3.632e-10, 3.957e-10,
2290 4.36e-10, 4.701e-10, 5.03e-10, 5.381e-10, 5.793e-10, 6.19e-10,
2291 6.596e-10, 7.004e-10, 7.561e-10, 7.934e-10, 8.552e-10, 9.142e-10,
2292 9.57e-10, 1.027e-9, 1.097e-9, 1.193e-9, 1.334e-9, 1.47e-9,
2293 1.636e-9, 1.871e-9, 2.122e-9, 2.519e-9, 2.806e-9, 3.203e-9,
2294 3.846e-9, 4.362e-9, 5.114e-9, 5.643e-9, 6.305e-9, 6.981e-9,
2295 7.983e-9, 8.783e-9, 9.419e-9, 1.017e-8, 1.063e-8, 1.121e-8,
2296 1.13e-8, 1.201e-8, 1.225e-8, 1.232e-8, 1.223e-8, 1.177e-8,
2297 1.151e-8, 1.116e-8, 1.047e-8, 9.698e-9, 8.734e-9, 8.202e-9,
2298 7.041e-9, 6.074e-9, 5.172e-9, 4.468e-9, 3.913e-9, 3.414e-9,
2299 2.975e-9, 2.65e-9, 2.406e-9, 2.173e-9, 2.009e-9, 1.861e-9,
2300 1.727e-9, 1.612e-9, 1.514e-9, 1.43e-9, 1.362e-9, 1.333e-9,
2301 1.288e-9, 1.249e-9, 1.238e-9, 1.228e-9, 1.217e-9, 1.202e-9,
2302 1.209e-9, 1.177e-9, 1.157e-9, 1.165e-9, 1.142e-9, 1.131e-9,
2303 1.138e-9, 1.117e-9, 1.1e-9, 1.069e-9, 1.023e-9, 1.005e-9,
2304 9.159e-10, 8.863e-10, 7.865e-10, 7.153e-10, 6.247e-10, 5.846e-10,
2305 5.133e-10, 4.36e-10, 3.789e-10, 3.335e-10, 2.833e-10, 2.483e-10,
2306 2.155e-10, 1.918e-10, 1.709e-10, 1.529e-10, 1.374e-10, 1.235e-10,
2307 1.108e-10, 9.933e-11, 8.932e-11, 8.022e-11, 7.224e-11, 6.52e-11,
2308 5.896e-11, 5.328e-11, 4.813e-11, 4.365e-11, 3.961e-11, 3.594e-11,
2309 3.266e-11, 2.967e-11, 2.701e-11, 2.464e-11, 2.248e-11, 2.054e-11,
2310 1.878e-11, 1.721e-11, 1.579e-11, 1.453e-11, 1.341e-11, 1.241e-11,
2311 1.154e-11, 1.078e-11, 1.014e-11, 9.601e-12, 9.167e-12, 8.838e-12,
2312 8.614e-12, 8.493e-12, 8.481e-12, 8.581e-12, 8.795e-12, 9.131e-12,
2313 9.601e-12, 1.021e-11, 1.097e-11, 1.191e-11, 1.303e-11, 1.439e-11,
2314 1.601e-11, 1.778e-11, 1.984e-11, 2.234e-11, 2.474e-11, 2.766e-11,
2315 3.085e-11, 3.415e-11, 3.821e-11, 4.261e-11, 4.748e-11, 5.323e-11,
2316 5.935e-11, 6.619e-11, 7.418e-11, 8.294e-11, 9.26e-11, 1.039e-10,
2317 1.156e-10, 1.297e-10, 1.46e-10, 1.641e-10, 1.858e-10, 2.1e-10,
2318 2.383e-10, 2.724e-10, 3.116e-10, 3.538e-10, 4.173e-10, 4.727e-10,
2319 5.503e-10, 6.337e-10, 7.32e-10, 8.298e-10, 9.328e-10, 1.059e-9,
2320 1.176e-9, 1.328e-9, 1.445e-9, 1.593e-9, 1.77e-9, 1.954e-9,
2321 2.175e-9, 2.405e-9, 2.622e-9, 2.906e-9, 3.294e-9, 3.713e-9,
2322 3.98e-9, 4.384e-9, 4.987e-9, 5.311e-9, 5.874e-9, 6.337e-9,
2323 7.027e-9, 7.39e-9, 7.769e-9, 8.374e-9, 8.605e-9, 9.165e-9,
2324 9.415e-9, 9.511e-9, 9.704e-9, 9.588e-9, 9.45e-9, 9.086e-9,
2325 8.798e-9, 8.469e-9, 7.697e-9, 7.168e-9, 6.255e-9, 5.772e-9,
2326 4.97e-9, 4.271e-9, 3.653e-9, 3.154e-9, 2.742e-9, 2.435e-9,
2327 2.166e-9, 1.936e-9, 1.731e-9, 1.556e-9, 1.399e-9, 1.272e-9,
2328 1.157e-9, 1.066e-9, 9.844e-10, 9.258e-10, 8.787e-10, 8.421e-10,
2329 8.083e-10, 8.046e-10, 8.067e-10, 8.181e-10, 8.325e-10, 8.517e-10,
2330 9.151e-10, 9.351e-10, 9.677e-10, 1.071e-9, 1.126e-9, 1.219e-9,
2331 1.297e-9, 1.408e-9, 1.476e-9, 1.517e-9, 1.6e-9, 1.649e-9,
2332 1.678e-9, 1.746e-9, 1.742e-9, 1.728e-9, 1.699e-9, 1.655e-9,
2333 1.561e-9, 1.48e-9, 1.451e-9, 1.411e-9, 1.171e-9, 1.106e-9,
2334 9.714e-10, 8.523e-10, 7.346e-10, 6.241e-10, 5.371e-10, 4.704e-10,
2335 4.144e-10, 3.683e-10, 3.292e-10, 2.942e-10, 2.62e-10, 2.341e-10,
2336 2.104e-10, 1.884e-10, 1.7e-10, 1.546e-10, 1.394e-10, 1.265e-10,
2337 1.14e-10, 1.019e-10, 9.279e-11, 8.283e-11, 7.458e-11, 6.668e-11,
2338 5.976e-11, 5.33e-11, 4.794e-11, 4.289e-11, 3.841e-11, 3.467e-11,
2339 3.13e-11, 2.832e-11, 2.582e-11, 2.356e-11, 2.152e-11, 1.97e-11,
2340 1.808e-11, 1.664e-11, 1.539e-11, 1.434e-11, 1.344e-11, 1.269e-11,
2341 1.209e-11, 1.162e-11, 1.129e-11, 1.108e-11, 1.099e-11, 1.103e-11,
2342 1.119e-11, 1.148e-11, 1.193e-11, 1.252e-11, 1.329e-11, 1.421e-11,
2343 1.555e-11, 1.685e-11, 1.839e-11, 2.054e-11, 2.317e-11, 2.571e-11,
2344 2.839e-11, 3.171e-11, 3.49e-11, 3.886e-11, 4.287e-11, 4.645e-11,
2345 5.047e-11, 5.592e-11, 6.109e-11, 6.628e-11, 7.381e-11, 8.088e-11,
2346 8.966e-11, 1.045e-10, 1.12e-10, 1.287e-10, 1.486e-10, 1.662e-10,
2347 1.866e-10, 2.133e-10, 2.524e-10, 2.776e-10, 3.204e-10, 3.559e-10,
2348 4.028e-10, 4.448e-10, 4.882e-10, 5.244e-10, 5.605e-10, 6.018e-10,
2349 6.328e-10, 6.579e-10, 6.541e-10, 7.024e-10, 7.074e-10, 7.068e-10,
2350 7.009e-10, 6.698e-10, 6.545e-10, 6.209e-10, 5.834e-10, 5.412e-10,
2351 5.001e-10, 4.231e-10, 3.727e-10, 3.211e-10, 2.833e-10, 2.447e-10,
2352 2.097e-10, 1.843e-10, 1.639e-10, 1.449e-10, 1.27e-10, 1.161e-10,
2353 1.033e-10, 9.282e-11, 8.407e-11, 7.639e-11, 7.023e-11, 6.474e-11,
2354 6.142e-11, 5.76e-11, 5.568e-11, 5.472e-11, 5.39e-11, 5.455e-11,
2355 5.54e-11, 5.587e-11, 6.23e-11, 6.49e-11, 6.868e-11, 7.382e-11,
2356 8.022e-11, 8.372e-11, 9.243e-11, 1.004e-10, 1.062e-10, 1.13e-10,
2357 1.176e-10, 1.244e-10, 1.279e-10, 1.298e-10, 1.302e-10, 1.312e-10,
2358 1.295e-10, 1.244e-10, 1.211e-10, 1.167e-10, 1.098e-10, 9.927e-11,
2359 8.854e-11, 8.011e-11, 7.182e-11, 5.923e-11, 5.212e-11, 4.453e-11,
2360 3.832e-11, 3.371e-11, 2.987e-11, 2.651e-11, 2.354e-11, 2.093e-11,
2361 1.863e-11, 1.662e-11, 1.486e-11, 1.331e-11, 1.193e-11, 1.071e-11,
2362 9.628e-12, 8.66e-12, 7.801e-12, 7.031e-12, 6.347e-12, 5.733e-12,
2363 5.182e-12, 4.695e-12, 4.26e-12, 3.874e-12, 3.533e-12, 3.235e-12,
2364 2.979e-12, 2.76e-12, 2.579e-12, 2.432e-12, 2.321e-12, 2.246e-12,
2365 2.205e-12, 2.196e-12, 2.223e-12, 2.288e-12, 2.387e-12, 2.525e-12,
2366 2.704e-12, 2.925e-12, 3.191e-12, 3.508e-12, 3.876e-12, 4.303e-12,
2367 4.793e-12, 5.347e-12, 5.978e-12, 6.682e-12, 7.467e-12, 8.34e-12,
2368 9.293e-12, 1.035e-11, 1.152e-11, 1.285e-11, 1.428e-11, 1.586e-11,
2369 1.764e-11, 1.972e-11, 2.214e-11, 2.478e-11, 2.776e-11, 3.151e-11,
2370 3.591e-11, 4.103e-11, 4.66e-11, 5.395e-11, 6.306e-11, 7.172e-11,
2371 8.358e-11, 9.67e-11, 1.11e-10, 1.325e-10, 1.494e-10, 1.736e-10,
2372 2.007e-10, 2.296e-10, 2.608e-10, 3.004e-10, 3.361e-10, 3.727e-10,
2373 4.373e-10, 4.838e-10, 5.483e-10, 6.006e-10, 6.535e-10, 6.899e-10,
2374 7.687e-10, 8.444e-10, 8.798e-10, 9.135e-10, 9.532e-10, 9.757e-10,
2375 9.968e-10, 1.006e-9, 9.949e-10, 9.789e-10, 9.564e-10, 9.215e-10,
2376 8.51e-10, 8.394e-10, 7.707e-10, 7.152e-10, 6.274e-10, 5.598e-10,
2377 5.028e-10, 4.3e-10, 3.71e-10, 3.245e-10, 2.809e-10, 2.461e-10,
2378 2.154e-10, 1.91e-10, 1.685e-10, 1.487e-10, 1.313e-10, 1.163e-10,
2379 1.031e-10, 9.172e-11, 8.221e-11, 7.382e-11, 6.693e-11, 6.079e-11,
2380 5.581e-11, 5.167e-11, 4.811e-11, 4.506e-11, 4.255e-11, 4.083e-11,
2381 3.949e-11, 3.881e-11, 3.861e-11, 3.858e-11, 3.951e-11, 4.045e-11,
2382 4.24e-11, 4.487e-11, 4.806e-11, 5.133e-11, 5.518e-11, 5.919e-11,
2383 6.533e-11, 7.031e-11, 7.762e-11, 8.305e-11, 9.252e-11, 9.727e-11,
2384 1.045e-10, 1.117e-10, 1.2e-10, 1.275e-10, 1.341e-10, 1.362e-10,
2385 1.438e-10, 1.45e-10, 1.455e-10, 1.455e-10, 1.434e-10, 1.381e-10,
2386 1.301e-10, 1.276e-10, 1.163e-10, 1.089e-10, 9.911e-11, 8.943e-11,
2387 7.618e-11, 6.424e-11, 5.717e-11, 4.866e-11, 4.257e-11, 3.773e-11,
2388 3.331e-11, 2.958e-11, 2.629e-11, 2.316e-11, 2.073e-11, 1.841e-11,
2389 1.635e-11, 1.464e-11, 1.31e-11, 1.16e-11, 1.047e-11, 9.408e-12,
2390 8.414e-12, 7.521e-12, 6.705e-12, 5.993e-12, 5.371e-12, 4.815e-12,
2391 4.338e-12, 3.921e-12, 3.567e-12, 3.265e-12, 3.01e-12, 2.795e-12,
2392 2.613e-12, 2.464e-12, 2.346e-12, 2.256e-12, 2.195e-12, 2.165e-12,
2393 2.166e-12, 2.198e-12, 2.262e-12, 2.364e-12, 2.502e-12, 2.682e-12,
2394 2.908e-12, 3.187e-12, 3.533e-12, 3.946e-12, 4.418e-12, 5.013e-12,
2395 5.708e-12, 6.379e-12, 7.43e-12, 8.39e-12, 9.51e-12, 1.078e-11,
2396 1.259e-11, 1.438e-11, 1.63e-11, 1.814e-11, 2.055e-11, 2.348e-11,
2397 2.664e-11, 2.956e-11, 3.3e-11, 3.677e-11, 4.032e-11, 4.494e-11,
2398 4.951e-11, 5.452e-11, 6.014e-11, 6.5e-11, 6.915e-11, 7.45e-11,
2399 7.971e-11, 8.468e-11, 8.726e-11, 8.995e-11, 9.182e-11, 9.509e-11,
2400 9.333e-11, 9.386e-11, 9.457e-11, 9.21e-11, 9.019e-11, 8.68e-11,
2401 8.298e-11, 7.947e-11, 7.46e-11, 7.082e-11, 6.132e-11, 5.855e-11,
2402 5.073e-11, 4.464e-11, 3.825e-11, 3.375e-11, 2.911e-11, 2.535e-11,
2403 2.16e-11, 1.907e-11, 1.665e-11, 1.463e-11, 1.291e-11, 1.133e-11,
2404 9.997e-12, 8.836e-12, 7.839e-12, 6.943e-12, 6.254e-12, 5.6e-12,
2405 5.029e-12, 4.529e-12, 4.102e-12, 3.737e-12, 3.428e-12, 3.169e-12,
2406 2.959e-12, 2.798e-12, 2.675e-12, 2.582e-12, 2.644e-12, 2.557e-12,
2407 2.614e-12, 2.717e-12, 2.874e-12, 3.056e-12, 3.187e-12, 3.631e-12,
2408 3.979e-12, 4.248e-12, 4.817e-12, 5.266e-12, 5.836e-12, 6.365e-12,
2409 6.807e-12, 7.47e-12, 7.951e-12, 8.636e-12, 8.972e-12, 9.314e-12,
2410 9.445e-12, 1.003e-11, 1.013e-11, 9.937e-12, 9.729e-12, 9.064e-12,
2411 9.119e-12, 9.124e-12, 8.704e-12, 8.078e-12, 7.47e-12, 6.329e-12,
2412 5.674e-12, 4.808e-12, 4.119e-12, 3.554e-12, 3.103e-12, 2.731e-12,
2413 2.415e-12, 2.15e-12, 1.926e-12, 1.737e-12, 1.578e-12, 1.447e-12,
2414 1.34e-12, 1.255e-12, 1.191e-12, 1.146e-12, 1.121e-12, 1.114e-12,
2415 1.126e-12, 1.156e-12, 1.207e-12, 1.278e-12, 1.372e-12, 1.49e-12,
2416 1.633e-12, 1.805e-12, 2.01e-12, 2.249e-12, 2.528e-12, 2.852e-12,
2417 3.228e-12, 3.658e-12, 4.153e-12, 4.728e-12, 5.394e-12, 6.176e-12,
2418 7.126e-12, 8.188e-12, 9.328e-12, 1.103e-11, 1.276e-11, 1.417e-11,
2419 1.615e-11, 1.84e-11, 2.155e-11, 2.429e-11, 2.826e-11, 3.222e-11,
2420 3.664e-11, 4.14e-11, 4.906e-11, 5.536e-11, 6.327e-11, 7.088e-11,
2421 8.316e-11, 9.242e-11, 1.07e-10, 1.223e-10, 1.341e-10, 1.553e-10,
2422 1.703e-10, 1.9e-10, 2.022e-10, 2.233e-10, 2.345e-10, 2.438e-10,
2423 2.546e-10, 2.599e-10, 2.661e-10, 2.703e-10, 2.686e-10, 2.662e-10,
2424 2.56e-10, 2.552e-10, 2.378e-10, 2.252e-10, 2.146e-10, 1.885e-10,
2425 1.668e-10, 1.441e-10, 1.295e-10, 1.119e-10, 9.893e-11, 8.687e-11,
2426 7.678e-11, 6.685e-11, 5.879e-11, 5.127e-11, 4.505e-11, 3.997e-11,
2430 static double h2ofrn[2001] = { .01095, .01126, .01205, .01322, .0143,
2431 .01506, .01548, .01534, .01486, .01373, .01262, .01134, .01001,
2432 .008702, .007475, .006481, .00548, .0046, .003833, .00311,
2433 .002543, .002049, .00168, .001374, .001046, 8.193e-4, 6.267e-4,
2434 4.968e-4, 3.924e-4, 2.983e-4, 2.477e-4, 1.997e-4, 1.596e-4,
2435 1.331e-4, 1.061e-4, 8.942e-5, 7.168e-5, 5.887e-5, 4.848e-5,
2436 3.817e-5, 3.17e-5, 2.579e-5, 2.162e-5, 1.768e-5, 1.49e-5,
2437 1.231e-5, 1.013e-5, 8.555e-6, 7.328e-6, 6.148e-6, 5.207e-6,
2438 4.387e-6, 3.741e-6, 3.22e-6, 2.753e-6, 2.346e-6, 1.985e-6,
2439 1.716e-6, 1.475e-6, 1.286e-6, 1.122e-6, 9.661e-7, 8.284e-7,
2440 7.057e-7, 6.119e-7, 5.29e-7, 4.571e-7, 3.948e-7, 3.432e-7,
2441 2.983e-7, 2.589e-7, 2.265e-7, 1.976e-7, 1.704e-7, 1.456e-7,
2442 1.26e-7, 1.101e-7, 9.648e-8, 8.415e-8, 7.34e-8, 6.441e-8,
2443 5.643e-8, 4.94e-8, 4.276e-8, 3.703e-8, 3.227e-8, 2.825e-8,
2444 2.478e-8, 2.174e-8, 1.898e-8, 1.664e-8, 1.458e-8, 1.278e-8,
2445 1.126e-8, 9.891e-9, 8.709e-9, 7.652e-9, 6.759e-9, 5.975e-9,
2446 5.31e-9, 4.728e-9, 4.214e-9, 3.792e-9, 3.463e-9, 3.226e-9,
2447 2.992e-9, 2.813e-9, 2.749e-9, 2.809e-9, 2.913e-9, 3.037e-9,
2448 3.413e-9, 3.738e-9, 4.189e-9, 4.808e-9, 5.978e-9, 7.088e-9,
2449 8.071e-9, 9.61e-9, 1.21e-8, 1.5e-8, 1.764e-8, 2.221e-8, 2.898e-8,
2450 3.948e-8, 5.068e-8, 6.227e-8, 7.898e-8, 1.033e-7, 1.437e-7,
2451 1.889e-7, 2.589e-7, 3.59e-7, 4.971e-7, 7.156e-7, 9.983e-7,
2452 1.381e-6, 1.929e-6, 2.591e-6, 3.453e-6, 4.57e-6, 5.93e-6,
2453 7.552e-6, 9.556e-6, 1.183e-5, 1.425e-5, 1.681e-5, 1.978e-5,
2454 2.335e-5, 2.668e-5, 3.022e-5, 3.371e-5, 3.715e-5, 3.967e-5,
2455 4.06e-5, 4.01e-5, 3.809e-5, 3.491e-5, 3.155e-5, 2.848e-5,
2456 2.678e-5, 2.66e-5, 2.811e-5, 3.071e-5, 3.294e-5, 3.459e-5,
2457 3.569e-5, 3.56e-5, 3.434e-5, 3.186e-5, 2.916e-5, 2.622e-5,
2458 2.275e-5, 1.918e-5, 1.62e-5, 1.373e-5, 1.182e-5, 1.006e-5,
2459 8.556e-6, 7.26e-6, 6.107e-6, 5.034e-6, 4.211e-6, 3.426e-6,
2460 2.865e-6, 2.446e-6, 1.998e-6, 1.628e-6, 1.242e-6, 1.005e-6,
2461 7.853e-7, 6.21e-7, 5.071e-7, 4.156e-7, 3.548e-7, 2.825e-7,
2462 2.261e-7, 1.916e-7, 1.51e-7, 1.279e-7, 1.059e-7, 9.14e-8,
2463 7.707e-8, 6.17e-8, 5.311e-8, 4.263e-8, 3.518e-8, 2.961e-8,
2464 2.457e-8, 2.119e-8, 1.712e-8, 1.439e-8, 1.201e-8, 1.003e-8,
2465 8.564e-9, 7.199e-9, 6.184e-9, 5.206e-9, 4.376e-9, 3.708e-9,
2466 3.157e-9, 2.725e-9, 2.361e-9, 2.074e-9, 1.797e-9, 1.562e-9,
2467 1.364e-9, 1.196e-9, 1.042e-9, 8.862e-10, 7.648e-10, 6.544e-10,
2468 5.609e-10, 4.791e-10, 4.108e-10, 3.531e-10, 3.038e-10, 2.618e-10,
2469 2.268e-10, 1.969e-10, 1.715e-10, 1.496e-10, 1.308e-10, 1.147e-10,
2470 1.008e-10, 8.894e-11, 7.885e-11, 7.031e-11, 6.355e-11, 5.854e-11,
2471 5.534e-11, 5.466e-11, 5.725e-11, 6.447e-11, 7.943e-11, 1.038e-10,
2472 1.437e-10, 2.04e-10, 2.901e-10, 4.051e-10, 5.556e-10, 7.314e-10,
2473 9.291e-10, 1.134e-9, 1.321e-9, 1.482e-9, 1.596e-9, 1.669e-9,
2474 1.715e-9, 1.762e-9, 1.817e-9, 1.828e-9, 1.848e-9, 1.873e-9,
2475 1.902e-9, 1.894e-9, 1.864e-9, 1.841e-9, 1.797e-9, 1.704e-9,
2476 1.559e-9, 1.382e-9, 1.187e-9, 1.001e-9, 8.468e-10, 7.265e-10,
2477 6.521e-10, 6.381e-10, 6.66e-10, 7.637e-10, 9.705e-10, 1.368e-9,
2478 1.856e-9, 2.656e-9, 3.954e-9, 5.96e-9, 8.72e-9, 1.247e-8,
2479 1.781e-8, 2.491e-8, 3.311e-8, 4.272e-8, 5.205e-8, 6.268e-8,
2480 7.337e-8, 8.277e-8, 9.185e-8, 1.004e-7, 1.091e-7, 1.159e-7,
2481 1.188e-7, 1.175e-7, 1.124e-7, 1.033e-7, 9.381e-8, 8.501e-8,
2482 7.956e-8, 7.894e-8, 8.331e-8, 9.102e-8, 9.836e-8, 1.035e-7,
2483 1.064e-7, 1.06e-7, 1.032e-7, 9.808e-8, 9.139e-8, 8.442e-8,
2484 7.641e-8, 6.881e-8, 6.161e-8, 5.404e-8, 4.804e-8, 4.446e-8,
2485 4.328e-8, 4.259e-8, 4.421e-8, 4.673e-8, 4.985e-8, 5.335e-8,
2486 5.796e-8, 6.542e-8, 7.714e-8, 8.827e-8, 1.04e-7, 1.238e-7,
2487 1.499e-7, 1.829e-7, 2.222e-7, 2.689e-7, 3.303e-7, 3.981e-7,
2488 4.84e-7, 5.91e-7, 7.363e-7, 9.087e-7, 1.139e-6, 1.455e-6,
2489 1.866e-6, 2.44e-6, 3.115e-6, 3.941e-6, 4.891e-6, 5.992e-6,
2490 7.111e-6, 8.296e-6, 9.21e-6, 9.987e-6, 1.044e-5, 1.073e-5,
2491 1.092e-5, 1.106e-5, 1.138e-5, 1.171e-5, 1.186e-5, 1.186e-5,
2492 1.179e-5, 1.166e-5, 1.151e-5, 1.16e-5, 1.197e-5, 1.241e-5,
2493 1.268e-5, 1.26e-5, 1.184e-5, 1.063e-5, 9.204e-6, 7.584e-6,
2494 6.053e-6, 4.482e-6, 3.252e-6, 2.337e-6, 1.662e-6, 1.18e-6,
2495 8.15e-7, 5.95e-7, 4.354e-7, 3.302e-7, 2.494e-7, 1.93e-7,
2496 1.545e-7, 1.25e-7, 1.039e-7, 8.602e-8, 7.127e-8, 5.897e-8,
2497 4.838e-8, 4.018e-8, 3.28e-8, 2.72e-8, 2.307e-8, 1.972e-8,
2498 1.654e-8, 1.421e-8, 1.174e-8, 1.004e-8, 8.739e-9, 7.358e-9,
2499 6.242e-9, 5.303e-9, 4.567e-9, 3.94e-9, 3.375e-9, 2.864e-9,
2500 2.422e-9, 2.057e-9, 1.75e-9, 1.505e-9, 1.294e-9, 1.101e-9,
2501 9.401e-10, 8.018e-10, 6.903e-10, 5.965e-10, 5.087e-10, 4.364e-10,
2502 3.759e-10, 3.247e-10, 2.809e-10, 2.438e-10, 2.123e-10, 1.853e-10,
2503 1.622e-10, 1.426e-10, 1.26e-10, 1.125e-10, 1.022e-10, 9.582e-11,
2504 9.388e-11, 9.801e-11, 1.08e-10, 1.276e-10, 1.551e-10, 1.903e-10,
2505 2.291e-10, 2.724e-10, 3.117e-10, 3.4e-10, 3.562e-10, 3.625e-10,
2506 3.619e-10, 3.429e-10, 3.221e-10, 2.943e-10, 2.645e-10, 2.338e-10,
2507 2.062e-10, 1.901e-10, 1.814e-10, 1.827e-10, 1.906e-10, 1.984e-10,
2508 2.04e-10, 2.068e-10, 2.075e-10, 2.018e-10, 1.959e-10, 1.897e-10,
2509 1.852e-10, 1.791e-10, 1.696e-10, 1.634e-10, 1.598e-10, 1.561e-10,
2510 1.518e-10, 1.443e-10, 1.377e-10, 1.346e-10, 1.342e-10, 1.375e-10,
2511 1.525e-10, 1.767e-10, 2.108e-10, 2.524e-10, 2.981e-10, 3.477e-10,
2512 4.262e-10, 5.326e-10, 6.646e-10, 8.321e-10, 1.069e-9, 1.386e-9,
2513 1.743e-9, 2.216e-9, 2.808e-9, 3.585e-9, 4.552e-9, 5.907e-9,
2514 7.611e-9, 9.774e-9, 1.255e-8, 1.666e-8, 2.279e-8, 3.221e-8,
2515 4.531e-8, 6.4e-8, 9.187e-8, 1.295e-7, 1.825e-7, 2.431e-7,
2516 3.181e-7, 4.009e-7, 4.941e-7, 5.88e-7, 6.623e-7, 7.155e-7,
2517 7.451e-7, 7.594e-7, 7.541e-7, 7.467e-7, 7.527e-7, 7.935e-7,
2518 8.461e-7, 8.954e-7, 9.364e-7, 9.843e-7, 1.024e-6, 1.05e-6,
2519 1.059e-6, 1.074e-6, 1.072e-6, 1.043e-6, 9.789e-7, 8.803e-7,
2520 7.662e-7, 6.378e-7, 5.133e-7, 3.958e-7, 2.914e-7, 2.144e-7,
2521 1.57e-7, 1.14e-7, 8.47e-8, 6.2e-8, 4.657e-8, 3.559e-8, 2.813e-8,
2522 2.222e-8, 1.769e-8, 1.391e-8, 1.125e-8, 9.186e-9, 7.704e-9,
2523 6.447e-9, 5.381e-9, 4.442e-9, 3.669e-9, 3.057e-9, 2.564e-9,
2524 2.153e-9, 1.784e-9, 1.499e-9, 1.281e-9, 1.082e-9, 9.304e-10,
2525 8.169e-10, 6.856e-10, 5.866e-10, 5.043e-10, 4.336e-10, 3.731e-10,
2526 3.175e-10, 2.745e-10, 2.374e-10, 2.007e-10, 1.737e-10, 1.508e-10,
2527 1.302e-10, 1.13e-10, 9.672e-11, 8.375e-11, 7.265e-11, 6.244e-11,
2528 5.343e-11, 4.654e-11, 3.975e-11, 3.488e-11, 3.097e-11, 2.834e-11,
2529 2.649e-11, 2.519e-11, 2.462e-11, 2.443e-11, 2.44e-11, 2.398e-11,
2530 2.306e-11, 2.183e-11, 2.021e-11, 1.821e-11, 1.599e-11, 1.403e-11,
2531 1.196e-11, 1.023e-11, 8.728e-12, 7.606e-12, 6.941e-12, 6.545e-12,
2532 6.484e-12, 6.6e-12, 6.718e-12, 6.785e-12, 6.746e-12, 6.724e-12,
2533 6.764e-12, 6.995e-12, 7.144e-12, 7.32e-12, 7.33e-12, 7.208e-12,
2534 6.789e-12, 6.09e-12, 5.337e-12, 4.62e-12, 4.037e-12, 3.574e-12,
2535 3.311e-12, 3.346e-12, 3.566e-12, 3.836e-12, 4.076e-12, 4.351e-12,
2536 4.691e-12, 5.114e-12, 5.427e-12, 6.167e-12, 7.436e-12, 8.842e-12,
2537 1.038e-11, 1.249e-11, 1.54e-11, 1.915e-11, 2.48e-11, 3.256e-11,
2538 4.339e-11, 5.611e-11, 7.519e-11, 1.037e-10, 1.409e-10, 1.883e-10,
2539 2.503e-10, 3.38e-10, 4.468e-10, 5.801e-10, 7.335e-10, 8.98e-10,
2540 1.11e-9, 1.363e-9, 1.677e-9, 2.104e-9, 2.681e-9, 3.531e-9,
2541 4.621e-9, 6.106e-9, 8.154e-9, 1.046e-8, 1.312e-8, 1.607e-8,
2542 1.948e-8, 2.266e-8, 2.495e-8, 2.655e-8, 2.739e-8, 2.739e-8,
2543 2.662e-8, 2.589e-8, 2.59e-8, 2.664e-8, 2.833e-8, 3.023e-8,
2544 3.305e-8, 3.558e-8, 3.793e-8, 3.961e-8, 4.056e-8, 4.102e-8,
2545 4.025e-8, 3.917e-8, 3.706e-8, 3.493e-8, 3.249e-8, 3.096e-8,
2546 3.011e-8, 3.111e-8, 3.395e-8, 3.958e-8, 4.875e-8, 6.066e-8,
2547 7.915e-8, 1.011e-7, 1.3e-7, 1.622e-7, 2.003e-7, 2.448e-7,
2548 2.863e-7, 3.317e-7, 3.655e-7, 3.96e-7, 4.098e-7, 4.168e-7,
2549 4.198e-7, 4.207e-7, 4.289e-7, 4.384e-7, 4.471e-7, 4.524e-7,
2550 4.574e-7, 4.633e-7, 4.785e-7, 5.028e-7, 5.371e-7, 5.727e-7,
2551 5.955e-7, 5.998e-7, 5.669e-7, 5.082e-7, 4.397e-7, 3.596e-7,
2552 2.814e-7, 2.074e-7, 1.486e-7, 1.057e-7, 7.25e-8, 4.946e-8,
2553 3.43e-8, 2.447e-8, 1.793e-8, 1.375e-8, 1.096e-8, 9.091e-9,
2554 7.709e-9, 6.631e-9, 5.714e-9, 4.886e-9, 4.205e-9, 3.575e-9,
2555 3.07e-9, 2.631e-9, 2.284e-9, 2.002e-9, 1.745e-9, 1.509e-9,
2556 1.284e-9, 1.084e-9, 9.163e-10, 7.663e-10, 6.346e-10, 5.283e-10,
2557 4.354e-10, 3.59e-10, 2.982e-10, 2.455e-10, 2.033e-10, 1.696e-10,
2558 1.432e-10, 1.211e-10, 1.02e-10, 8.702e-11, 7.38e-11, 6.293e-11,
2559 5.343e-11, 4.532e-11, 3.907e-11, 3.365e-11, 2.945e-11, 2.558e-11,
2560 2.192e-11, 1.895e-11, 1.636e-11, 1.42e-11, 1.228e-11, 1.063e-11,
2561 9.348e-12, 8.2e-12, 7.231e-12, 6.43e-12, 5.702e-12, 5.052e-12,
2562 4.469e-12, 4e-12, 3.679e-12, 3.387e-12, 3.197e-12, 3.158e-12,
2563 3.327e-12, 3.675e-12, 4.292e-12, 5.437e-12, 7.197e-12, 1.008e-11,
2564 1.437e-11, 2.035e-11, 2.905e-11, 4.062e-11, 5.528e-11, 7.177e-11,
2565 9.064e-11, 1.109e-10, 1.297e-10, 1.473e-10, 1.652e-10, 1.851e-10,
2566 2.079e-10, 2.313e-10, 2.619e-10, 2.958e-10, 3.352e-10, 3.796e-10,
2567 4.295e-10, 4.923e-10, 5.49e-10, 5.998e-10, 6.388e-10, 6.645e-10,
2568 6.712e-10, 6.549e-10, 6.38e-10, 6.255e-10, 6.253e-10, 6.459e-10,
2569 6.977e-10, 7.59e-10, 8.242e-10, 8.92e-10, 9.403e-10, 9.701e-10,
2570 9.483e-10, 9.135e-10, 8.617e-10, 7.921e-10, 7.168e-10, 6.382e-10,
2571 5.677e-10, 5.045e-10, 4.572e-10, 4.312e-10, 4.145e-10, 4.192e-10,
2572 4.541e-10, 5.368e-10, 6.771e-10, 8.962e-10, 1.21e-9, 1.659e-9,
2573 2.33e-9, 3.249e-9, 4.495e-9, 5.923e-9, 7.642e-9, 9.607e-9,
2574 1.178e-8, 1.399e-8, 1.584e-8, 1.73e-8, 1.816e-8, 1.87e-8,
2575 1.868e-8, 1.87e-8, 1.884e-8, 1.99e-8, 2.15e-8, 2.258e-8,
2576 2.364e-8, 2.473e-8, 2.602e-8, 2.689e-8, 2.731e-8, 2.816e-8,
2577 2.859e-8, 2.839e-8, 2.703e-8, 2.451e-8, 2.149e-8, 1.787e-8,
2578 1.449e-8, 1.111e-8, 8.282e-9, 6.121e-9, 4.494e-9, 3.367e-9,
2579 2.487e-9, 1.885e-9, 1.503e-9, 1.249e-9, 1.074e-9, 9.427e-10,
2580 8.439e-10, 7.563e-10, 6.772e-10, 6.002e-10, 5.254e-10, 4.588e-10,
2581 3.977e-10, 3.449e-10, 3.003e-10, 2.624e-10, 2.335e-10, 2.04e-10,
2582 1.771e-10, 1.534e-10, 1.296e-10, 1.097e-10, 9.173e-11, 7.73e-11,
2583 6.547e-11, 5.191e-11, 4.198e-11, 3.361e-11, 2.732e-11, 2.244e-11,
2584 1.791e-11, 1.509e-11, 1.243e-11, 1.035e-11, 8.969e-12, 7.394e-12,
2585 6.323e-12, 5.282e-12, 4.543e-12, 3.752e-12, 3.14e-12, 2.6e-12,
2586 2.194e-12, 1.825e-12, 1.511e-12, 1.245e-12, 1.024e-12, 8.539e-13,
2587 7.227e-13, 6.102e-13, 5.189e-13, 4.43e-13, 3.774e-13, 3.236e-13,
2588 2.8e-13, 2.444e-13, 2.156e-13, 1.932e-13, 1.775e-13, 1.695e-13,
2589 1.672e-13, 1.704e-13, 1.825e-13, 2.087e-13, 2.614e-13, 3.377e-13,
2590 4.817e-13, 6.989e-13, 1.062e-12, 1.562e-12, 2.288e-12, 3.295e-12,
2591 4.55e-12, 5.965e-12, 7.546e-12, 9.395e-12, 1.103e-11, 1.228e-11,
2592 1.318e-11, 1.38e-11, 1.421e-11, 1.39e-11, 1.358e-11, 1.336e-11,
2593 1.342e-11, 1.356e-11, 1.424e-11, 1.552e-11, 1.73e-11, 1.951e-11,
2594 2.128e-11, 2.249e-11, 2.277e-11, 2.226e-11, 2.111e-11, 1.922e-11,
2595 1.775e-11, 1.661e-11, 1.547e-11, 1.446e-11, 1.323e-11, 1.21e-11,
2596 1.054e-11, 9.283e-12, 8.671e-12, 8.67e-12, 9.429e-12, 1.062e-11,
2597 1.255e-11, 1.506e-11, 1.818e-11, 2.26e-11, 2.831e-11, 3.723e-11,
2598 5.092e-11, 6.968e-11, 9.826e-11, 1.349e-10, 1.87e-10, 2.58e-10,
2599 3.43e-10, 4.424e-10, 5.521e-10, 6.812e-10, 8.064e-10, 9.109e-10,
2600 9.839e-10, 1.028e-9, 1.044e-9, 1.029e-9, 1.005e-9, 1.002e-9,
2601 1.038e-9, 1.122e-9, 1.233e-9, 1.372e-9, 1.524e-9, 1.665e-9,
2602 1.804e-9, 1.908e-9, 2.015e-9, 2.117e-9, 2.219e-9, 2.336e-9,
2603 2.531e-9, 2.805e-9, 3.189e-9, 3.617e-9, 4.208e-9, 4.911e-9,
2604 5.619e-9, 6.469e-9, 7.188e-9, 7.957e-9, 8.503e-9, 9.028e-9,
2605 9.571e-9, 9.99e-9, 1.055e-8, 1.102e-8, 1.132e-8, 1.141e-8,
2606 1.145e-8, 1.145e-8, 1.176e-8, 1.224e-8, 1.304e-8, 1.388e-8,
2607 1.445e-8, 1.453e-8, 1.368e-8, 1.22e-8, 1.042e-8, 8.404e-9,
2608 6.403e-9, 4.643e-9, 3.325e-9, 2.335e-9, 1.638e-9, 1.19e-9,
2609 9.161e-10, 7.412e-10, 6.226e-10, 5.516e-10, 5.068e-10, 4.831e-10,
2610 4.856e-10, 5.162e-10, 5.785e-10, 6.539e-10, 7.485e-10, 8.565e-10,
2611 9.534e-10, 1.052e-9, 1.115e-9, 1.173e-9, 1.203e-9, 1.224e-9,
2612 1.243e-9, 1.248e-9, 1.261e-9, 1.265e-9, 1.25e-9, 1.217e-9,
2613 1.176e-9, 1.145e-9, 1.153e-9, 1.199e-9, 1.278e-9, 1.366e-9,
2614 1.426e-9, 1.444e-9, 1.365e-9, 1.224e-9, 1.051e-9, 8.539e-10,
2615 6.564e-10, 4.751e-10, 3.404e-10, 2.377e-10, 1.631e-10, 1.114e-10,
2616 7.87e-11, 5.793e-11, 4.284e-11, 3.3e-11, 2.62e-11, 2.152e-11,
2617 1.777e-11, 1.496e-11, 1.242e-11, 1.037e-11, 8.725e-12, 7.004e-12,
2618 5.718e-12, 4.769e-12, 3.952e-12, 3.336e-12, 2.712e-12, 2.213e-12,
2619 1.803e-12, 1.492e-12, 1.236e-12, 1.006e-12, 8.384e-13, 7.063e-13,
2620 5.879e-13, 4.93e-13, 4.171e-13, 3.569e-13, 3.083e-13, 2.688e-13,
2621 2.333e-13, 2.035e-13, 1.82e-13, 1.682e-13, 1.635e-13, 1.674e-13,
2622 1.769e-13, 2.022e-13, 2.485e-13, 3.127e-13, 4.25e-13, 5.928e-13,
2623 8.514e-13, 1.236e-12, 1.701e-12, 2.392e-12, 3.231e-12, 4.35e-12,
2624 5.559e-12, 6.915e-12, 8.519e-12, 1.013e-11, 1.146e-11, 1.24e-11,
2625 1.305e-11, 1.333e-11, 1.318e-11, 1.263e-11, 1.238e-11, 1.244e-11,
2626 1.305e-11, 1.432e-11, 1.623e-11, 1.846e-11, 2.09e-11, 2.328e-11,
2627 2.526e-11, 2.637e-11, 2.702e-11, 2.794e-11, 2.889e-11, 2.989e-11,
2628 3.231e-11, 3.68e-11, 4.375e-11, 5.504e-11, 7.159e-11, 9.502e-11,
2629 1.279e-10, 1.645e-10, 2.098e-10, 2.618e-10, 3.189e-10, 3.79e-10,
2630 4.303e-10, 4.753e-10, 5.027e-10, 5.221e-10, 5.293e-10, 5.346e-10,
2631 5.467e-10, 5.796e-10, 6.2e-10, 6.454e-10, 6.705e-10, 6.925e-10,
2632 7.233e-10, 7.35e-10, 7.538e-10, 7.861e-10, 8.077e-10, 8.132e-10,
2633 7.749e-10, 7.036e-10, 6.143e-10, 5.093e-10, 4.089e-10, 3.092e-10,
2634 2.299e-10, 1.705e-10, 1.277e-10, 9.723e-11, 7.533e-11, 6.126e-11,
2635 5.154e-11, 4.428e-11, 3.913e-11, 3.521e-11, 3.297e-11, 3.275e-11,
2636 3.46e-11, 3.798e-11, 4.251e-11, 4.745e-11, 5.232e-11, 5.606e-11,
2637 5.82e-11, 5.88e-11, 5.79e-11, 5.661e-11, 5.491e-11, 5.366e-11,
2638 5.341e-11, 5.353e-11, 5.336e-11, 5.293e-11, 5.248e-11, 5.235e-11,
2639 5.208e-11, 5.322e-11, 5.521e-11, 5.725e-11, 5.827e-11, 5.685e-11,
2640 5.245e-11, 4.612e-11, 3.884e-11, 3.129e-11, 2.404e-11, 1.732e-11,
2641 1.223e-11, 8.574e-12, 5.888e-12, 3.986e-12, 2.732e-12, 1.948e-12,
2642 1.414e-12, 1.061e-12, 8.298e-13, 6.612e-13, 5.413e-13, 4.472e-13,
2643 3.772e-13, 3.181e-13, 2.645e-13, 2.171e-13, 1.778e-13, 1.464e-13,
2644 1.183e-13, 9.637e-14, 7.991e-14, 6.668e-14, 5.57e-14, 4.663e-14,
2645 3.848e-14, 3.233e-14, 2.706e-14, 2.284e-14, 1.944e-14, 1.664e-14,
2646 1.43e-14, 1.233e-14, 1.066e-14, 9.234e-15, 8.023e-15, 6.993e-15,
2647 6.119e-15, 5.384e-15, 4.774e-15, 4.283e-15, 3.916e-15, 3.695e-15,
2648 3.682e-15, 4.004e-15, 4.912e-15, 6.853e-15, 1.056e-14, 1.712e-14,
2649 2.804e-14, 4.516e-14, 7.113e-14, 1.084e-13, 1.426e-13, 1.734e-13,
2650 1.978e-13, 2.194e-13, 2.388e-13, 2.489e-13, 2.626e-13, 2.865e-13,
2651 3.105e-13, 3.387e-13, 3.652e-13, 3.984e-13, 4.398e-13, 4.906e-13,
2652 5.55e-13, 6.517e-13, 7.813e-13, 9.272e-13, 1.164e-12, 1.434e-12,
2653 1.849e-12, 2.524e-12, 3.328e-12, 4.523e-12, 6.108e-12, 8.207e-12,
2654 1.122e-11, 1.477e-11, 1.9e-11, 2.412e-11, 2.984e-11, 3.68e-11,
2655 4.353e-11, 4.963e-11, 5.478e-11, 5.903e-11, 6.233e-11, 6.483e-11,
2656 6.904e-11, 7.569e-11, 8.719e-11, 1.048e-10, 1.278e-10, 1.557e-10,
2657 1.869e-10, 2.218e-10, 2.61e-10, 2.975e-10, 3.371e-10, 3.746e-10,
2658 4.065e-10, 4.336e-10, 4.503e-10, 4.701e-10, 4.8e-10, 4.917e-10,
2659 5.038e-10, 5.128e-10, 5.143e-10, 5.071e-10, 5.019e-10, 5.025e-10,
2660 5.183e-10, 5.496e-10, 5.877e-10, 6.235e-10, 6.42e-10, 6.234e-10,
2661 5.698e-10, 4.916e-10, 4.022e-10, 3.126e-10, 2.282e-10, 1.639e-10,
2662 1.142e-10, 7.919e-11, 5.69e-11, 4.313e-11, 3.413e-11, 2.807e-11,
2663 2.41e-11, 2.166e-11, 2.024e-11, 1.946e-11, 1.929e-11, 1.963e-11,
2664 2.035e-11, 2.162e-11, 2.305e-11, 2.493e-11, 2.748e-11, 3.048e-11,
2665 3.413e-11, 3.754e-11, 4.155e-11, 4.635e-11, 5.11e-11, 5.734e-11,
2666 6.338e-11, 6.99e-11, 7.611e-11, 8.125e-11, 8.654e-11, 8.951e-11,
2667 9.182e-11, 9.31e-11, 9.273e-11, 9.094e-11, 8.849e-11, 8.662e-11,
2668 8.67e-11, 8.972e-11, 9.566e-11, 1.025e-10, 1.083e-10, 1.111e-10,
2669 1.074e-10, 9.771e-11, 8.468e-11, 6.958e-11, 5.47e-11, 4.04e-11,
2670 2.94e-11, 2.075e-11, 1.442e-11, 1.01e-11, 7.281e-12, 5.409e-12,
2671 4.138e-12, 3.304e-12, 2.784e-12, 2.473e-12, 2.273e-12, 2.186e-12,
2672 2.118e-12, 2.066e-12, 1.958e-12, 1.818e-12, 1.675e-12, 1.509e-12,
2673 1.349e-12, 1.171e-12, 9.838e-13, 8.213e-13, 6.765e-13, 5.378e-13,
2674 4.161e-13, 3.119e-13, 2.279e-13, 1.637e-13, 1.152e-13, 8.112e-14,
2675 5.919e-14, 4.47e-14, 3.492e-14, 2.811e-14, 2.319e-14, 1.948e-14,
2676 1.66e-14, 1.432e-14, 1.251e-14, 1.109e-14, 1.006e-14, 9.45e-15,
2677 9.384e-15, 1.012e-14, 1.216e-14, 1.636e-14, 2.305e-14, 3.488e-14,
2678 5.572e-14, 8.479e-14, 1.265e-13, 1.905e-13, 2.73e-13, 3.809e-13,
2679 4.955e-13, 6.303e-13, 7.861e-13, 9.427e-13, 1.097e-12, 1.212e-12,
2680 1.328e-12, 1.415e-12, 1.463e-12, 1.495e-12, 1.571e-12, 1.731e-12,
2681 1.981e-12, 2.387e-12, 2.93e-12, 3.642e-12, 4.584e-12, 5.822e-12,
2682 7.278e-12, 9.193e-12, 1.135e-11, 1.382e-11, 1.662e-11, 1.958e-11,
2683 2.286e-11, 2.559e-11, 2.805e-11, 2.988e-11, 3.106e-11, 3.182e-11,
2684 3.2e-11, 3.258e-11, 3.362e-11, 3.558e-11, 3.688e-11, 3.8e-11,
2685 3.929e-11, 4.062e-11, 4.186e-11, 4.293e-11, 4.48e-11, 4.643e-11,
2686 4.704e-11, 4.571e-11, 4.206e-11, 3.715e-11, 3.131e-11, 2.541e-11,
2687 1.978e-11, 1.508e-11, 1.146e-11, 8.7e-12, 6.603e-12, 5.162e-12,
2688 4.157e-12, 3.408e-12, 2.829e-12, 2.405e-12, 2.071e-12, 1.826e-12,
2689 1.648e-12, 1.542e-12, 1.489e-12, 1.485e-12, 1.493e-12, 1.545e-12,
2690 1.637e-12, 1.814e-12, 2.061e-12, 2.312e-12, 2.651e-12, 3.03e-12,
2691 3.46e-12, 3.901e-12, 4.306e-12, 4.721e-12, 5.008e-12, 5.281e-12,
2692 5.541e-12, 5.791e-12, 6.115e-12, 6.442e-12, 6.68e-12, 6.791e-12,
2693 6.831e-12, 6.839e-12, 6.946e-12, 7.128e-12, 7.537e-12, 8.036e-12,
2694 8.392e-12, 8.526e-12, 8.11e-12, 7.325e-12, 6.329e-12, 5.183e-12,
2695 4.081e-12, 2.985e-12, 2.141e-12, 1.492e-12, 1.015e-12, 6.684e-13,
2696 4.414e-13, 2.987e-13, 2.038e-13, 1.391e-13, 9.86e-14, 7.24e-14,
2697 5.493e-14, 4.288e-14, 3.427e-14, 2.787e-14, 2.296e-14, 1.909e-14,
2698 1.598e-14, 1.344e-14, 1.135e-14, 9.616e-15, 8.169e-15, 6.957e-15,
2699 5.938e-15, 5.08e-15, 4.353e-15, 3.738e-15, 3.217e-15, 2.773e-15,
2700 2.397e-15, 2.077e-15, 1.805e-15, 1.575e-15, 1.382e-15, 1.221e-15,
2701 1.09e-15, 9.855e-16, 9.068e-16, 8.537e-16, 8.27e-16, 8.29e-16,
2702 8.634e-16, 9.359e-16, 1.055e-15, 1.233e-15, 1.486e-15, 1.839e-15,
2703 2.326e-15, 2.998e-15, 3.934e-15, 5.256e-15, 7.164e-15, 9.984e-15,
2704 1.427e-14, 2.099e-14, 3.196e-14, 5.121e-14, 7.908e-14, 1.131e-13,
2705 1.602e-13, 2.239e-13, 3.075e-13, 4.134e-13, 5.749e-13, 7.886e-13,
2706 1.071e-12, 1.464e-12, 2.032e-12, 2.8e-12, 3.732e-12, 4.996e-12,
2707 6.483e-12, 8.143e-12, 1.006e-11, 1.238e-11, 1.484e-11, 1.744e-11,
2708 2.02e-11, 2.274e-11, 2.562e-11, 2.848e-11, 3.191e-11, 3.617e-11,
2709 4.081e-11, 4.577e-11, 4.937e-11, 5.204e-11, 5.401e-11, 5.462e-11,
2710 5.507e-11, 5.51e-11, 5.605e-11, 5.686e-11, 5.739e-11, 5.766e-11,
2711 5.74e-11, 5.754e-11, 5.761e-11, 5.777e-11, 5.712e-11, 5.51e-11,
2712 5.088e-11, 4.438e-11, 3.728e-11, 2.994e-11, 2.305e-11, 1.715e-11,
2713 1.256e-11, 9.208e-12, 6.745e-12, 5.014e-12, 3.785e-12, 2.9e-12,
2714 2.239e-12, 1.757e-12, 1.414e-12, 1.142e-12, 9.482e-13, 8.01e-13,
2715 6.961e-13, 6.253e-13, 5.735e-13, 5.433e-13, 5.352e-13, 5.493e-13,
2716 5.706e-13, 6.068e-13, 6.531e-13, 7.109e-13, 7.767e-13, 8.59e-13,
2717 9.792e-13, 1.142e-12, 1.371e-12, 1.65e-12, 1.957e-12, 2.302e-12,
2718 2.705e-12, 3.145e-12, 3.608e-12, 4.071e-12, 4.602e-12, 5.133e-12,
2719 5.572e-12, 5.987e-12, 6.248e-12, 6.533e-12, 6.757e-12, 6.935e-12,
2720 7.224e-12, 7.422e-12, 7.538e-12, 7.547e-12, 7.495e-12, 7.543e-12,
2721 7.725e-12, 8.139e-12, 8.627e-12, 9.146e-12, 9.443e-12, 9.318e-12,
2722 8.649e-12, 7.512e-12, 6.261e-12, 4.915e-12, 3.647e-12, 2.597e-12,
2723 1.785e-12, 1.242e-12, 8.66e-13, 6.207e-13, 4.61e-13, 3.444e-13,
2724 2.634e-13, 2.1e-13, 1.725e-13, 1.455e-13, 1.237e-13, 1.085e-13,
2725 9.513e-14, 7.978e-14, 6.603e-14, 5.288e-14, 4.084e-14, 2.952e-14,
2726 2.157e-14, 1.593e-14, 1.199e-14, 9.267e-15, 7.365e-15, 6.004e-15,
2727 4.995e-15, 4.218e-15, 3.601e-15, 3.101e-15, 2.692e-15, 2.36e-15,
2728 2.094e-15, 1.891e-15, 1.755e-15, 1.699e-15, 1.755e-15, 1.987e-15,
2729 2.506e-15, 3.506e-15, 5.289e-15, 8.311e-15, 1.325e-14, 2.129e-14,
2730 3.237e-14, 4.595e-14, 6.441e-14, 8.433e-14, 1.074e-13, 1.383e-13,
2731 1.762e-13, 2.281e-13, 2.831e-13, 3.523e-13, 4.38e-13, 5.304e-13,
2732 6.29e-13, 7.142e-13, 8.032e-13, 8.934e-13, 9.888e-13, 1.109e-12,
2733 1.261e-12, 1.462e-12, 1.74e-12, 2.099e-12, 2.535e-12, 3.008e-12,
2734 3.462e-12, 3.856e-12, 4.098e-12, 4.239e-12, 4.234e-12, 4.132e-12,
2735 3.986e-12, 3.866e-12, 3.829e-12, 3.742e-12, 3.705e-12, 3.694e-12,
2736 3.765e-12, 3.849e-12, 3.929e-12, 4.056e-12, 4.092e-12, 4.047e-12,
2737 3.792e-12, 3.407e-12, 2.953e-12, 2.429e-12, 1.931e-12, 1.46e-12,
2738 1.099e-12, 8.199e-13, 6.077e-13, 4.449e-13, 3.359e-13, 2.524e-13,
2739 1.881e-13, 1.391e-13, 1.02e-13, 7.544e-14, 5.555e-14, 4.22e-14,
2740 3.321e-14, 2.686e-14, 2.212e-14, 1.78e-14, 1.369e-14, 1.094e-14,
2741 9.13e-15, 8.101e-15, 7.828e-15, 8.393e-15, 1.012e-14, 1.259e-14,
2742 1.538e-14, 1.961e-14, 2.619e-14, 3.679e-14, 5.049e-14, 6.917e-14,
2743 8.88e-14, 1.115e-13, 1.373e-13, 1.619e-13, 1.878e-13, 2.111e-13,
2744 2.33e-13, 2.503e-13, 2.613e-13, 2.743e-13, 2.826e-13, 2.976e-13,
2745 3.162e-13, 3.36e-13, 3.491e-13, 3.541e-13, 3.595e-13, 3.608e-13,
2746 3.709e-13, 3.869e-13, 4.12e-13, 4.366e-13, 4.504e-13, 4.379e-13,
2747 3.955e-13, 3.385e-13, 2.741e-13, 2.089e-13, 1.427e-13, 9.294e-14,
2748 5.775e-14, 3.565e-14, 2.21e-14, 1.398e-14, 9.194e-15, 6.363e-15,
2749 4.644e-15, 3.55e-15, 2.808e-15, 2.274e-15, 1.871e-15, 1.557e-15,
2750 1.308e-15, 1.108e-15, 9.488e-16, 8.222e-16, 7.238e-16, 6.506e-16,
2751 6.008e-16, 5.742e-16, 5.724e-16, 5.991e-16, 6.625e-16, 7.775e-16,
2752 9.734e-16, 1.306e-15, 1.88e-15, 2.879e-15, 4.616e-15, 7.579e-15,
2753 1.248e-14, 2.03e-14, 3.244e-14, 5.171e-14, 7.394e-14, 9.676e-14,
2754 1.199e-13, 1.467e-13, 1.737e-13, 2.02e-13, 2.425e-13, 3.016e-13,
2755 3.7e-13, 4.617e-13, 5.949e-13, 7.473e-13, 9.378e-13, 1.191e-12,
2756 1.481e-12, 1.813e-12, 2.232e-12, 2.722e-12, 3.254e-12, 3.845e-12,
2757 4.458e-12, 5.048e-12, 5.511e-12, 5.898e-12, 6.204e-12, 6.293e-12,
2758 6.386e-12, 6.467e-12, 6.507e-12, 6.466e-12, 6.443e-12, 6.598e-12,
2759 6.873e-12, 7.3e-12, 7.816e-12, 8.368e-12, 8.643e-12, 8.466e-12,
2760 7.871e-12, 6.853e-12, 5.714e-12, 4.482e-12, 3.392e-12, 2.613e-12,
2761 2.008e-12, 1.562e-12, 1.228e-12, 9.888e-13, 7.646e-13, 5.769e-13,
2762 4.368e-13, 3.324e-13, 2.508e-13, 1.916e-13
2765 static double xfcrev[15] =
2766 { 1.003, 1.009, 1.015, 1.023, 1.029, 1.033, 1.037,
2767 1.039, 1.04, 1.046, 1.036, 1.027, 1.01, 1.002, 1.
2773 double xw = nu / 10 + 1;
2774 if (xw >= 1 && xw < 2001) {
2776 double dw = xw - iw;
2778 double cw296 = ew * h2o296[iw - 1] + dw * h2o296[iw];
2779 double cw260 = ew * h2o260[iw - 1] + dw * h2o260[iw];
2780 double cwfrn = ew * h2ofrn[iw - 1] + dw * h2ofrn[iw];
2781 if (nu <= 820 || nu >= 960) {
2784 double xx = (nu - 820) / 10;
2786 double dx = xx - ix;
2787 sfac = (1 - dx) * xfcrev[ix] + dx * xfcrev[ix + 1];
2790 sfac * cw296 * pow(cw260 / cw296, (296 - t) / (296 - 260));
2791 double vf2 =
POW2(nu - 370);
2792 double vf6 =
POW3(vf2);
2793 double fscal = 36100 / (vf2 + vf6 * 1e-8 + 36100) * -.25 + 1;
2794 double ctwfrn = cwfrn * fscal;
2795 double a1 = nu * u * tanh(.7193876 / t * nu);
2796 double a2 = 296 / t;
2797 double a3 = p /
P0 * (q * ctwslf + (1 - q) * ctwfrn) * 1e-20;
2798 return a1 * a2 * a3;
2810 static double ba[98] = { 0., 4.45e-8, 5.22e-8, 6.46e-8, 7.75e-8, 9.03e-8,
2811 1.06e-7, 1.21e-7, 1.37e-7, 1.57e-7, 1.75e-7, 2.01e-7, 2.3e-7,
2812 2.59e-7, 2.95e-7, 3.26e-7, 3.66e-7, 4.05e-7, 4.47e-7, 4.92e-7,
2813 5.34e-7, 5.84e-7, 6.24e-7, 6.67e-7, 7.14e-7, 7.26e-7, 7.54e-7,
2814 7.84e-7, 8.09e-7, 8.42e-7, 8.62e-7, 8.87e-7, 9.11e-7, 9.36e-7,
2815 9.76e-7, 1.03e-6, 1.11e-6, 1.23e-6, 1.39e-6, 1.61e-6, 1.76e-6,
2816 1.94e-6, 1.97e-6, 1.87e-6, 1.75e-6, 1.56e-6, 1.42e-6, 1.35e-6,
2817 1.32e-6, 1.29e-6, 1.29e-6, 1.29e-6, 1.3e-6, 1.32e-6, 1.33e-6,
2818 1.34e-6, 1.35e-6, 1.33e-6, 1.31e-6, 1.29e-6, 1.24e-6, 1.2e-6,
2819 1.16e-6, 1.1e-6, 1.04e-6, 9.96e-7, 9.38e-7, 8.63e-7, 7.98e-7,
2820 7.26e-7, 6.55e-7, 5.94e-7, 5.35e-7, 4.74e-7, 4.24e-7, 3.77e-7,
2821 3.33e-7, 2.96e-7, 2.63e-7, 2.34e-7, 2.08e-7, 1.85e-7, 1.67e-7,
2822 1.47e-7, 1.32e-7, 1.2e-7, 1.09e-7, 9.85e-8, 9.08e-8, 8.18e-8,
2823 7.56e-8, 6.85e-8, 6.14e-8, 5.83e-8, 5.77e-8, 5e-8, 4.32e-8, 0.
2826 static double betaa[98] = { 802., 802., 761., 722., 679., 646., 609., 562.,
2827 511., 472., 436., 406., 377., 355., 338., 319., 299., 278., 255.,
2828 233., 208., 184., 149., 107., 66., 25., -13., -49., -82., -104.,
2829 -119., -130., -139., -144., -146., -146., -147., -148., -150.,
2830 -153., -160., -169., -181., -189., -195., -200., -205., -209.,
2831 -211., -210., -210., -209., -205., -199., -190., -180., -168.,
2832 -157., -143., -126., -108., -89., -63., -32., 1., 35., 65., 95.,
2833 121., 141., 152., 161., 164., 164., 161., 155., 148., 143., 137.,
2834 133., 131., 133., 139., 150., 165., 187., 213., 248., 284., 321.,
2835 372., 449., 514., 569., 609., 642., 673., 673.
2838 static double nua[98] = { 2120., 2125., 2130., 2135., 2140., 2145., 2150.,
2839 2155., 2160., 2165., 2170., 2175., 2180., 2185., 2190., 2195.,
2840 2200., 2205., 2210., 2215., 2220., 2225., 2230., 2235., 2240.,
2841 2245., 2250., 2255., 2260., 2265., 2270., 2275., 2280., 2285.,
2842 2290., 2295., 2300., 2305., 2310., 2315., 2320., 2325., 2330.,
2843 2335., 2340., 2345., 2350., 2355., 2360., 2365., 2370., 2375.,
2844 2380., 2385., 2390., 2395., 2400., 2405., 2410., 2415., 2420.,
2845 2425., 2430., 2435., 2440., 2445., 2450., 2455., 2460., 2465.,
2846 2470., 2475., 2480., 2485., 2490., 2495., 2500., 2505., 2510.,
2847 2515., 2520., 2525., 2530., 2535., 2540., 2545., 2550., 2555.,
2848 2560., 2565., 2570., 2575., 2580., 2585., 2590., 2595., 2600., 2605.
2851 const double q_n2 = 0.79, t0 = 273.0, tr = 296.0;
2854 if (nu < nua[0] || nu > nua[97])
2859 double b =
LIN(nua[idx], ba[idx], nua[idx + 1], ba[idx + 1], nu);
2860 double beta =
LIN(nua[idx], betaa[idx], nua[idx + 1], betaa[idx + 1], nu);
2863 return 0.1 *
POW2(p /
P0 * t0 / t) * exp(beta * (1 / tr - 1 / t))
2864 * q_n2 * b * (q_n2 + (1 - q_n2) * (1.294 - 0.4545 * t / tr));
2874 static double ba[90] = { 0., .061, .074, .084, .096, .12, .162, .208, .246,
2875 .285, .314, .38, .444, .5, .571, .673, .768, .853, .966, 1.097,
2876 1.214, 1.333, 1.466, 1.591, 1.693, 1.796, 1.922, 2.037, 2.154,
2877 2.264, 2.375, 2.508, 2.671, 2.847, 3.066, 3.417, 3.828, 4.204,
2878 4.453, 4.599, 4.528, 4.284, 3.955, 3.678, 3.477, 3.346, 3.29,
2879 3.251, 3.231, 3.226, 3.212, 3.192, 3.108, 3.033, 2.911, 2.798,
2880 2.646, 2.508, 2.322, 2.13, 1.928, 1.757, 1.588, 1.417, 1.253,
2881 1.109, .99, .888, .791, .678, .587, .524, .464, .403, .357, .32,
2882 .29, .267, .242, .215, .182, .16, .146, .128, .103, .087, .081,
2886 static double betaa[90] = { 467., 467., 400., 315., 379., 368., 475., 521.,
2887 531., 512., 442., 444., 430., 381., 335., 324., 296., 248., 215.,
2888 193., 158., 127., 101., 71., 31., -6., -26., -47., -63., -79.,
2889 -88., -88., -87., -90., -98., -99., -109., -134., -160., -167.,
2890 -164., -158., -153., -151., -156., -166., -168., -173., -170.,
2891 -161., -145., -126., -108., -84., -59., -29., 4., 41., 73., 97.,
2892 123., 159., 198., 220., 242., 256., 281., 311., 334., 319., 313.,
2893 321., 323., 310., 315., 320., 335., 361., 378., 373., 338., 319.,
2894 346., 322., 291., 290., 350., 371., 504., 504.
2897 static double nua[90] = { 1360., 1365., 1370., 1375., 1380., 1385., 1390.,
2898 1395., 1400., 1405., 1410., 1415., 1420., 1425., 1430., 1435.,
2899 1440., 1445., 1450., 1455., 1460., 1465., 1470., 1475., 1480.,
2900 1485., 1490., 1495., 1500., 1505., 1510., 1515., 1520., 1525.,
2901 1530., 1535., 1540., 1545., 1550., 1555., 1560., 1565., 1570.,
2902 1575., 1580., 1585., 1590., 1595., 1600., 1605., 1610., 1615.,
2903 1620., 1625., 1630., 1635., 1640., 1645., 1650., 1655., 1660.,
2904 1665., 1670., 1675., 1680., 1685., 1690., 1695., 1700., 1705.,
2905 1710., 1715., 1720., 1725., 1730., 1735., 1740., 1745., 1750.,
2906 1755., 1760., 1765., 1770., 1775., 1780., 1785., 1790., 1795.,
2910 const double q_o2 = 0.21, t0 = 273, tr = 296;
2913 if (nu < nua[0] || nu > nua[89])
2918 double b =
LIN(nua[idx], ba[idx], nua[idx + 1], ba[idx + 1], nu);
2919 double beta =
LIN(nua[idx], betaa[idx], nua[idx + 1], betaa[idx + 1], nu);
2922 return 0.1 *
POW2(p /
P0 * t0 / t) * exp(beta * (1 / tr - 1 / t)) * q_o2 *
2935 size_t s = (size_t) atm_src->
np *
sizeof(
double);
2938 atm_dest->
np = atm_src->
np;
2939 memcpy(atm_dest->
time, atm_src->
time, s);
2940 memcpy(atm_dest->
z, atm_src->
z, s);
2941 memcpy(atm_dest->
lon, atm_src->
lon, s);
2942 memcpy(atm_dest->
lat, atm_src->
lat, s);
2943 memcpy(atm_dest->
p, atm_src->
p, s);
2944 memcpy(atm_dest->
t, atm_src->
t, s);
2945 for (
int ig = 0; ig < ctl->
ng; ig++)
2946 memcpy(atm_dest->
q[ig], atm_src->
q[ig], s);
2947 for (
int iw = 0; iw < ctl->
nw; iw++)
2948 memcpy(atm_dest->
k[iw], atm_src->
k[iw], s);
2949 atm_dest->
clz = atm_src->
clz;
2951 for (
int icl = 0; icl < ctl->
ncl; icl++)
2952 atm_dest->
clk[icl] = atm_src->
clk[icl];
2953 atm_dest->
sfz = atm_src->
sfz;
2954 atm_dest->
sfp = atm_src->
sfp;
2955 atm_dest->
sft = atm_src->
sft;
2956 for (
int isf = 0; isf < ctl->
nsf; isf++)
2961 for (
int ip = 0; ip < atm_dest->
np; ip++) {
2962 atm_dest->
p[ip] = 0;
2963 atm_dest->
t[ip] = 0;
2964 for (
int ig = 0; ig < ctl->
ng; ig++)
2965 atm_dest->
q[ig][ip] = 0;
2966 for (
int iw = 0; iw < ctl->
nw; iw++)
2967 atm_dest->
k[iw][ip] = 0;
2970 for (
int icl = 0; icl < ctl->
ncl; icl++)
2971 atm_dest->
clk[icl] = 0;
2975 for (
int isf = 0; isf < ctl->
nsf; isf++)
2976 atm_dest->
sfeps[isf] = 1;
2989 size_t s = (size_t) obs_src->
nr *
sizeof(
double);
2992 obs_dest->
nr = obs_src->
nr;
2993 memcpy(obs_dest->
time, obs_src->
time, s);
2994 memcpy(obs_dest->
obsz, obs_src->
obsz, s);
2997 memcpy(obs_dest->
vpz, obs_src->
vpz, s);
3000 memcpy(obs_dest->
tpz, obs_src->
tpz, s);
3003 for (
int id = 0;
id < ctl->
nd;
id++)
3004 memcpy(obs_dest->
rad[
id], obs_src->
rad[
id], s);
3005 for (
int id = 0;
id < ctl->
nd;
id++)
3006 memcpy(obs_dest->
tau[
id], obs_src->
tau[
id], s);
3010 for (
int id = 0;
id < ctl->
nd;
id++)
3011 for (
int ir = 0; ir < obs_dest->
nr; ir++)
3012 if (isfinite(obs_dest->
rad[
id][ir])) {
3013 obs_dest->
rad[id][ir] = 0;
3014 obs_dest->
tau[id][ir] = 0;
3022 const char *emitter) {
3024 for (
int ig = 0; ig < ctl->
ng; ig++)
3025 if (strcasecmp(ctl->
emitter[ig], emitter) == 0)
3045 for (
int id = 0;
id < ctl->
nd;
id++)
3046 for (
int ir = 0; ir < obs->
nr; ir++)
3047 mask[
id *
NR + ir] = !isfinite(obs->
rad[
id][ir]);
3054 for (
int ir = 0; ir < obs->
nr; ir++)
3058 else if (ctl->
formod == 2)
3066 for (
int id = 0;
id < ctl->
nd;
id++)
3067 for (
int ir = 0; ir < obs->
nr; ir++)
3071 for (
int id = 0;
id < ctl->
nd;
id++)
3072 for (
int ir = 0; ir < obs->
nr; ir++)
3073 if (mask[
id *
NR + ir])
3074 obs->
rad[id][ir] = NAN;
3088 static int ig_co2 = -999, ig_h2o = -999;
3091 for (
int id = 0;
id < ctl->
nd;
id++)
3092 beta[
id] = los->
k[ip][
id];
3099 for (
int id = 0;
id < ctl->
nd;
id++)
3100 beta[
id] +=
ctmco2(ctl->
nu[
id], los->
p[ip], los->
t[ip],
3101 los->
u[ip][ig_co2]) / los->
ds[ip];
3109 for (
int id = 0;
id < ctl->
nd;
id++)
3110 beta[
id] +=
ctmh2o(ctl->
nu[
id], los->
p[ip], los->
t[ip],
3111 los->
q[ip][ig_h2o], los->
u[ip][ig_h2o])
3117 for (
int id = 0;
id < ctl->
nd;
id++)
3118 beta[
id] +=
ctmn2(ctl->
nu[
id], los->
p[ip], los->
t[ip]);
3122 for (
int id = 0;
id < ctl->
nd;
id++)
3123 beta[
id] +=
ctmo2(ctl->
nu[
id], los->
p[ip], los->
t[ip]);
3134 static int init = 0, n;
3141 if (ctl->
fov[0] ==
'-')
3157 for (
int ir = 0; ir < obs->
nr; ir++) {
3161 for (
int ir2 =
MAX(ir -
NFOV, 0);
3162 ir2 <
MIN(ir + 1 +
NFOV, obs->
nr); ir2++)
3163 if (obs->
time[ir2] == obs->
time[ir]) {
3164 z[nz] = obs2->
vpz[ir2];
3165 for (
int id = 0;
id < ctl->
nd;
id++) {
3166 rad[id][nz] = obs2->
rad[id][ir2];
3167 tau[id][nz] = obs2->
tau[id][ir2];
3172 ERRMSG(
"Cannot apply FOV convolution!");
3176 for (
int id = 0;
id < ctl->
nd;
id++) {
3177 obs->
rad[id][ir] = 0;
3178 obs->
tau[id][ir] = 0;
3180 for (
int i = 0; i < n; i++) {
3181 double zfov = obs->
vpz[ir] + dz[i];
3183 for (
int id = 0;
id < ctl->
nd;
id++) {
3184 obs->
rad[id][ir] += w[i]
3185 *
LIN(z[idx], rad[
id][idx], z[idx + 1], rad[
id][idx + 1], zfov);
3186 obs->
tau[id][ir] += w[i]
3187 *
LIN(z[idx], tau[
id][idx], z[idx + 1], tau[
id][idx + 1], zfov);
3191 for (
int id = 0;
id < ctl->
nd;
id++) {
3192 obs->
rad[id][ir] /= wsum;
3193 obs->
tau[id][ir] /= wsum;
3211 static int init = 0;
3215 double beta_ctm[
ND], rad[
ND], tau[
ND], tau_refl[
ND],
3216 tau_path[
ND][
NG], tau_gas[
ND], x0[3], x1[3];
3230 for (
int id = 0;
id < ctl->
nd;
id++) {
3233 for (
int ig = 0; ig < ctl->
ng; ig++)
3234 tau_path[
id][ig] = 1;
3241 for (
int ip = 0; ip < los->
np; ip++) {
3256 for (
int id = 0;
id < ctl->
nd;
id++)
3257 if (tau_gas[
id] > 0) {
3260 los->
eps[ip][id] = 1 - tau_gas[id] * exp(-beta_ctm[
id] * los->
ds[ip]);
3263 rad[id] += los->
src[ip][id] * los->
eps[ip][id] * tau[id];
3266 tau[id] *= (1 - los->
eps[ip][id]);
3276 for (
int id = 0;
id < ctl->
nd;
id++)
3277 rad[
id] += los->
sfeps[
id] * src_sf[
id] * tau[
id];
3282 for (
int id = 0;
id < ctl->
nd;
id++)
3283 if (los->
sfeps[
id] < 1) {
3292 for (
int id = 0;
id < ctl->
nd;
id++)
3296 for (
int ip = los->
np - 1; ip >= 0; ip--)
3297 for (
int id = 0;
id < ctl->
nd;
id++) {
3298 rad[id] += los->
src[ip][id] * los->
eps[ip][id] * tau_refl[id]
3299 * tau[id] * (1 - los->
sfeps[id]);
3300 tau_refl[id] *= (1 - los->
eps[ip][id]);
3315 if (sza2 < 89.999) {
3319 los->
lat[los->
np - 1], x0);
3321 for (
int i = 0; i < 3; i++)
3326 double rcos = cosa / cos(sza2 * M_PI / 180.);
3329 for (
int id = 0;
id < ctl->
nd;
id++)
3330 rad[
id] += 6.764e-5 / (2. * M_PI) *
planck(
TSUN, ctl->
nu[
id])
3331 * tau_refl[id] * (1 - los->
sfeps[id]) * tau[
id] * rcos;
3338 for (
int id = 0;
id < ctl->
nd;
id++) {
3339 obs->
rad[id][ir] = rad[id];
3340 obs->
tau[id][ir] = tau[id];
3358 char cmd[2 *
LEN], filename[2 *
LEN],
3359 rfmflg[
LEN] = {
"RAD TRA MIX LIN SFC" };
3361 double f[
NSHAPE], nu[
NSHAPE], nu0, nu1, obsz = -999, tsurf,
3362 xd[3], xo[3], xv[3], z[
NR], zmin, zmax;
3364 int i, id, ig, ip, ir, iw, n, nadir = 0;
3370 for (ir = 1; ir < obs->
nr; ir++)
3374 ERRMSG(
"RFM interface requires identical observer positions!");
3377 for (iw = 0; iw < ctl->
nw; iw++)
3378 for (ip = 0; ip < atm->
np; ip++)
3379 if (atm->
k[iw][ip] != 0)
3380 ERRMSG(
"RFM interface cannot handle extinction data!");
3383 gsl_stats_minmax(&zmin, &zmax, atm->
z, 1, (
size_t) atm->
np);
3386 if (obs->
obsz[0] >= zmin && obs->
obsz[0] <= zmax) {
3387 obsz = obs->
obsz[0];
3388 strcat(rfmflg,
" OBS");
3392 for (ir = 0; ir < obs->
nr; ir++) {
3398 if (obs->
tpz[ir] <= zmin) {
3401 for (i = 0; i < 3; i++)
3402 xd[i] = xo[i] - xv[i];
3406 z[ir] = obs->
tpz[ir];
3408 if (nadir > 0 && nadir < obs->nr)
3409 ERRMSG(
"Limb and nadir not simultaneously possible!");
3413 strcat(rfmflg,
" NAD");
3416 tsurf = atm->
t[gsl_stats_min_index(atm->
z, 1, (
size_t) atm->
np)];
3419 if (!nadir && !ctl->
refrac)
3420 strcat(rfmflg,
" GEO");
3424 strcat(rfmflg,
" CTM");
3430 for (
id = 0;
id < ctl->
nd;
id++) {
3433 sprintf(filename,
"%s_%.4f.filt", ctl->
tblbase, ctl->
nu[
id]);
3441 if (!(out = fopen(
"rfm.drv",
"w")))
3442 ERRMSG(
"Cannot create file!");
3443 fprintf(out,
"*HDR\nRFM call by JURASSIC.\n");
3444 fprintf(out,
"*FLG\n%s\n", rfmflg);
3445 fprintf(out,
"*SPC\n%.4f %.4f 0.0005\n", nu0, nu1);
3446 fprintf(out,
"*GAS\n");
3447 for (ig = 0; ig < ctl->
ng; ig++)
3448 fprintf(out,
"%s\n", ctl->
emitter[ig]);
3449 fprintf(out,
"*ATM\nrfm.atm\n");
3450 fprintf(out,
"*TAN\n");
3451 for (ir = 0; ir < obs->
nr; ir++)
3452 fprintf(out,
"%g\n", z[ir]);
3453 fprintf(out,
"*SFC\n%g 1.0\n", tsurf);
3455 fprintf(out,
"*OBS\n%g\n", obsz);
3456 fprintf(out,
"*HIT\n%s\n", ctl->
rfmhit);
3457 fprintf(out,
"*XSC\n");
3458 for (ig = 0; ig < ctl->
ng; ig++)
3459 if (ctl->
rfmxsc[ig][0] !=
'-')
3460 fprintf(out,
"%s\n", ctl->
rfmxsc[ig]);
3461 fprintf(out,
"*END\n");
3465 if (system(
"rm -f rfm.runlog rad_*.asc tra_*.asc"))
3466 ERRMSG(
"Cannot remove temporary files!");
3469 sprintf(cmd,
"echo | %s", ctl->
rfmbin);
3471 ERRMSG(
"Error while calling RFM!");
3474 for (ir = 0; ir < obs->
nr; ir++) {
3481 if (system(
"rm -f rfm.drv rfm.atm rfm.runlog rad_*.asc tra_*.asc"))
3482 ERRMSG(
"Error while removing temporary files!");
3500 for (
int id = 0;
id < ctl->
nd;
id++)
3501 src[
id] =
LIN(tbl->
st[it], tbl->
sr[it][
id],
3502 tbl->
st[it + 1], tbl->
sr[it + 1][
id], t);
3513 double radius = z +
RE;
3515 x[0] = radius * cos(lat / 180 * M_PI) * cos(lon / 180 * M_PI);
3516 x[1] = radius * cos(lat / 180 * M_PI) * sin(lon / 180 * M_PI);
3517 x[2] = radius * sin(lat / 180 * M_PI);
3526 const double mmair = 28.96456e-3, mmh2o = 18.0153e-3;
3528 const int ipts = 20;
3530 static int ig_h2o = -999;
3532 double dzmin = 1e99, e = 0;
3545 for (
int ip = 0; ip < atm->
np; ip++)
3546 if (fabs(atm->
z[ip] - ctl->
hydz) < dzmin) {
3547 dzmin = fabs(atm->
z[ip] - ctl->
hydz);
3552 for (
int ip = ipref + 1; ip < atm->
np; ip++) {
3554 for (
int i = 0; i < ipts; i++) {
3556 e =
LIN(0.0, atm->
q[ig_h2o][ip - 1],
3557 ipts - 1.0, atm->
q[ig_h2o][ip], (
double) i);
3558 mean += (e * mmh2o + (1 - e) * mmair)
3560 /
LIN(0.0, atm->
t[ip - 1], ipts - 1.0, atm->
t[ip], (
double) i) / ipts;
3565 exp(log(atm->
p[ip - 1]) - mean * 1000 * (atm->
z[ip] - atm->
z[ip - 1]));
3569 for (
int ip = ipref - 1; ip >= 0; ip--) {
3571 for (
int i = 0; i < ipts; i++) {
3573 e =
LIN(0.0, atm->
q[ig_h2o][ip + 1],
3574 ipts - 1.0, atm->
q[ig_h2o][ip], (
double) i);
3575 mean += (e * mmh2o + (1 - e) * mmair)
3577 /
LIN(0.0, atm->
t[ip + 1], ipts - 1.0, atm->
t[ip], (
double) i) / ipts;
3582 exp(log(atm->
p[ip + 1]) - mean * 1000 * (atm->
z[ip] - atm->
z[ip + 1]));
3594 sprintf(quantity,
"PRESSURE");
3597 sprintf(quantity,
"TEMPERATURE");
3599 for (
int ig = 0; ig < ctl->
ng; ig++)
3600 if (idx ==
IDXQ(ig))
3601 sprintf(quantity,
"%s", ctl->
emitter[ig]);
3603 for (
int iw = 0; iw < ctl->
nw; iw++)
3604 if (idx ==
IDXK(iw))
3605 sprintf(quantity,
"EXTINCT_WINDOW_%d", iw);
3608 sprintf(quantity,
"CLOUD_HEIGHT");
3611 sprintf(quantity,
"CLOUD_DEPTH");
3613 for (
int icl = 0; icl < ctl->
ncl; icl++)
3615 sprintf(quantity,
"CLOUD_EXTINCT_%.4f", ctl->
clnu[icl]);
3618 sprintf(quantity,
"SURFACE_HEIGHT");
3621 sprintf(quantity,
"SURFACE_PRESSURE");
3624 sprintf(quantity,
"SURFACE_TEMPERATURE");
3626 for (
int isf = 0; isf < ctl->
nsf; isf++)
3628 sprintf(quantity,
"SURFACE_EMISSIVITY_%.4f", ctl->
sfnu[isf]);
3637 char filename[2 *
LEN];
3644 LOG(1,
"Initialize source function table...");
3645 LOG(2,
"Number of data points: %d",
TBLNS);
3648 for (
int id = 0;
id < ctl->
nd;
id++) {
3651 sprintf(filename,
"%s_%.4f.filt", ctl->
tblbase, ctl->
nu[
id]);
3656 for (
int i = 1; i < n; i++)
3657 dnu =
MIN(dnu, nu[i] - nu[i - 1]);
3660#pragma omp parallel for default(none) shared(ctl,tbl,id,nu,f,n,dnu)
3661 for (
int it = 0; it <
TBLNS; it++) {
3667 double fsum = tbl->
sr[it][id] = 0;
3668 for (
double fnu = nu[0]; fnu <= nu[n - 1]; fnu += dnu) {
3670 double ff =
LIN(nu[i], f[i], nu[i + 1], f[i + 1], fnu);
3672 tbl->
sr[it][id] += ff *
planck(tbl->
st[it], fnu);
3674 tbl->
sr[it][id] /= fsum;
3679 "channel= %.4f cm^-1 | T= %g ... %g K | B= %g ... %g W/(m^2 sr cm^-1)",
3680 ctl->
nu[
id], tbl->
st[0], tbl->
st[
TBLNS - 1], tbl->
sr[0][
id],
3700 *p =
LOGY(atm->
z[ip], atm->
p[ip], atm->
z[ip + 1], atm->
p[ip + 1], z);
3701 *t =
LIN(atm->
z[ip], atm->
t[ip], atm->
z[ip + 1], atm->
t[ip + 1], z);
3702 for (
int ig = 0; ig < ctl->
ng; ig++)
3704 LIN(atm->
z[ip], atm->
q[ig][ip], atm->
z[ip + 1], atm->
q[ig][ip + 1], z);
3705 for (
int iw = 0; iw < ctl->
nw; iw++)
3707 LIN(atm->
z[ip], atm->
k[iw][ip], atm->
z[ip + 1], atm->
k[iw][ip + 1], z);
3717 double tau_path[
ND][
NG],
3718 double tau_seg[
ND]) {
3723 for (
int id = 0;
id < ctl->
nd;
id++) {
3729 for (
int ig = 0; ig < ctl->
ng; ig++) {
3732 if (tbl->
np[
id][ig] < 30)
3736 else if (tau_path[
id][ig] < 1e-9)
3745 int it0 =
locate_reg(tbl->
t[
id][ig][ipr], tbl->
nt[
id][ig][ipr],
3748 locate_reg(tbl->
t[
id][ig][ipr + 1], tbl->
nt[
id][ig][ipr + 1],
3752 if (tbl->
nt[
id][ig][ipr] < 2 || tbl->
nt[
id][ig][ipr + 1] < 2
3753 || tbl->
nu[
id][ig][ipr][it0] < 2
3754 || tbl->
nu[
id][ig][ipr][it0 + 1] < 2
3755 || tbl->
nu[
id][ig][ipr + 1][it1] < 2
3756 || tbl->
nu[
id][ig][ipr + 1][it1 + 1] < 2)
3772 eps00 =
LIN(tbl->
t[
id][ig][ipr][it0], eps00,
3773 tbl->
t[
id][ig][ipr][it0 + 1], eps01, los->
cgt[ip][ig]);
3774 eps11 =
LIN(tbl->
t[
id][ig][ipr + 1][it1], eps10,
3775 tbl->
t[
id][ig][ipr + 1][it1 + 1],
3776 eps11, los->
cgt[ip][ig]);
3779 eps00 =
LOGX(tbl->
p[
id][ig][ipr], eps00,
3780 tbl->
p[
id][ig][ipr + 1], eps11, los->
cgp[ip][ig]);
3783 eps00 =
MAX(
MIN(eps00, 1), 0);
3786 eps = 1 - (1 - eps00) / tau_path[
id][ig];
3791 tau_path[id][ig] *= (1 - eps);
3794 tau_seg[id] *= (1 - eps);
3806 double tau_path[
ND][
NG],
3807 double tau_seg[
ND]) {
3812 for (
int id = 0;
id < ctl->
nd;
id++) {
3818 for (
int ig = 0; ig < ctl->
ng; ig++) {
3821 if (tbl->
np[
id][ig] < 30)
3825 else if (tau_path[
id][ig] < 1e-9)
3832 int ipr =
locate_irr(tbl->
p[
id][ig], tbl->
np[
id][ig], los->
p[ip]);
3834 locate_reg(tbl->
t[
id][ig][ipr], tbl->
nt[
id][ig][ipr], los->
t[ip]);
3836 locate_reg(tbl->
t[
id][ig][ipr + 1], tbl->
nt[
id][ig][ipr + 1],
3840 if (tbl->
nt[
id][ig][ipr] < 2 || tbl->
nt[
id][ig][ipr + 1] < 2
3841 || tbl->
nu[
id][ig][ipr][it0] < 2
3842 || tbl->
nu[
id][ig][ipr][it0 + 1] < 2
3843 || tbl->
nu[
id][ig][ipr + 1][it1] < 2
3844 || tbl->
nu[
id][ig][ipr + 1][it1 + 1] < 2)
3850 u =
intpol_tbl_u(tbl, ig,
id, ipr, it0, 1 - tau_path[
id][ig]);
3854 u =
intpol_tbl_u(tbl, ig,
id, ipr, it0 + 1, 1 - tau_path[
id][ig]);
3858 u =
intpol_tbl_u(tbl, ig,
id, ipr + 1, it1, 1 - tau_path[
id][ig]);
3863 intpol_tbl_u(tbl, ig,
id, ipr + 1, it1 + 1, 1 - tau_path[
id][ig]);
3868 eps00 =
LIN(tbl->
t[
id][ig][ipr][it0], eps00,
3869 tbl->
t[
id][ig][ipr][it0 + 1], eps01, los->
t[ip]);
3870 eps11 =
LIN(tbl->
t[
id][ig][ipr + 1][it1], eps10,
3871 tbl->
t[
id][ig][ipr + 1][it1 + 1], eps11, los->
t[ip]);
3874 eps00 =
LIN(tbl->
p[
id][ig][ipr], eps00,
3875 tbl->
p[
id][ig][ipr + 1], eps11, los->
p[ip]);
3878 eps00 =
MAX(
MIN(eps00, 1), 0);
3881 eps = 1 - (1 - eps00) / tau_path[
id][ig];
3886 tau_path[id][ig] *= (1 - eps);
3889 tau_seg[id] *= (1 - eps);
3905 if (u < tbl->u[
id][ig][ip][it][0])
3906 return LIN(0, 0, tbl->
u[
id][ig][ip][it][0], tbl->
eps[
id][ig][ip][it][0],
3910 else if (u > tbl->
u[
id][ig][ip][it][tbl->
nu[
id][ig][ip][it] - 1]) {
3913 tbl->
eps[
id][ig][ip][it][tbl->
nu[
id][ig][ip][it] -
3915 tbl->
u[id][ig][ip][it][tbl->
nu[id][ig][ip][it] - 1];
3916 return 1 - exp(a * u);
3923 int idx =
locate_tbl(tbl->
u[
id][ig][ip][it], tbl->
nu[
id][ig][ip][it], u);
3927 LIN(tbl->
u[
id][ig][ip][it][idx], tbl->
eps[
id][ig][ip][it][idx],
3928 tbl->
u[
id][ig][ip][it][idx + 1], tbl->
eps[
id][ig][ip][it][idx + 1],
3944 if (eps < tbl->eps[
id][ig][ip][it][0])
3945 return LIN(0, 0, tbl->
eps[
id][ig][ip][it][0], tbl->
u[
id][ig][ip][it][0],
3949 else if (eps > tbl->
eps[
id][ig][ip][it][tbl->
nu[
id][ig][ip][it] - 1]) {
3952 tbl->
eps[
id][ig][ip][it][tbl->
nu[
id][ig][ip][it] -
3954 tbl->
u[id][ig][ip][it][tbl->
nu[id][ig][ip][it] - 1];
3955 return log(1 - eps) / a;
3967 LIN(tbl->
eps[
id][ig][ip][it][idx], tbl->
u[
id][ig][ip][it][idx],
3968 tbl->
eps[
id][ig][ip][it][idx + 1], tbl->
u[
id][ig][ip][it][idx + 1],
3994 time_t jsec0 = (time_t) jsec + timegm(&t0);
3995 t1 = gmtime(&jsec0);
3997 *year = t1->tm_year + 1900;
3998 *mon = t1->tm_mon + 1;
4000 *hour = t1->tm_hour;
4003 *remain = jsec - floor(jsec);
4017 gsl_vector *x0, *x1, *yy0, *yy1;
4022 size_t m = k->size1;
4023 size_t n = k->size2;
4026 x0 = gsl_vector_alloc(n);
4027 yy0 = gsl_vector_alloc(m);
4035 atm2x(ctl, atm, x0, iqa, NULL);
4036 obs2y(ctl, obs, yy0, NULL, NULL);
4039 gsl_matrix_set_zero(k);
4042#pragma omp parallel for default(none) shared(ctl,atm,obs,k,x0,yy0,n,m,iqa) private(x1, yy1, atm1, obs1)
4043 for (
size_t j = 0; j < n; j++) {
4046 x1 = gsl_vector_alloc(n);
4047 yy1 = gsl_vector_alloc(m);
4054 h =
MAX(fabs(0.01 * gsl_vector_get(x0, j)), 1e-7);
4055 else if (iqa[j] ==
IDXT)
4057 else if (iqa[j] >=
IDXQ(0) && iqa[j] <
IDXQ(ctl->
ng))
4058 h =
MAX(fabs(0.01 * gsl_vector_get(x0, j)), 1e-15);
4059 else if (iqa[j] >=
IDXK(0) && iqa[j] <
IDXK(ctl->
nw))
4065 else if (iqa[j] ==
IDXSFZ)
4067 else if (iqa[j] ==
IDXSFP)
4069 else if (iqa[j] ==
IDXSFT)
4074 ERRMSG(
"Cannot set perturbation size!");
4077 gsl_vector_memcpy(x1, x0);
4078 gsl_vector_set(x1, j, gsl_vector_get(x1, j) + h);
4081 x2atm(ctl, x1, atm1);
4087 obs2y(ctl, obs1, yy1, NULL, NULL);
4090 for (
size_t i = 0; i < m; i++)
4091 gsl_matrix_set(k, i, j,
4092 (gsl_vector_get(yy1, i) - gsl_vector_get(yy0, i)) / h);
4095 gsl_vector_free(x1);
4096 gsl_vector_free(yy1);
4102 gsl_vector_free(x0);
4103 gsl_vector_free(yy0);
4116 int i = (ihi + ilo) >> 1;
4118 if (xx[i] < xx[i + 1])
4119 while (ihi > ilo + 1) {
4120 i = (ihi + ilo) >> 1;
4126 while (ihi > ilo + 1) {
4127 i = (ihi + ilo) >> 1;
4145 int i = (int) ((x - xx[0]) / (xx[1] - xx[0]));
4165 int i = (ihi + ilo) >> 1;
4167 while (ihi > ilo + 1) {
4168 i = (ihi + ilo) >> 1;
4190 for (
int ir = 0; ir < obs->
nr; ir++)
4191 for (
int id = 0;
id < ctl->
nd;
id++)
4192 if (isfinite(obs->
rad[
id][ir])) {
4194 gsl_vector_set(y, m, obs->
rad[
id][ir]);
4211 return C1 *
POW3(nu) / gsl_expm1(
C2 * nu / t);
4223 const double h = 0.02, zrefrac = 60;
4225 double ds, ex0[3], ex1[3], k[
NW], lat, lon, n, ng[3], norm,
4226 p, q[
NG], t, x[3], xh[3], xobs[3], xvp[3], z = 1e99, zmax, zmin;
4233 obs->
tpz[ir] = obs->
vpz[ir];
4238 gsl_stats_minmax(&zmin, &zmax, atm->
z, 1, (
size_t) atm->
np);
4240 zmin =
MAX(atm->
sfz, zmin);
4243 double zip =
LIN(log(atm->
p[ip]), atm->
z[ip],
4244 log(atm->
p[ip + 1]), atm->
z[ip + 1], log(atm->
sfp));
4245 zmin =
MAX(zip, zmin);
4250 if (obs->
obsz[ir] < zmin)
4251 ERRMSG(
"Observer below surface!");
4254 if (obs->
vpz[ir] > zmax)
4262 for (
int i = 0; i < 3; i++)
4263 ex0[i] = xvp[i] - xobs[i];
4265 for (
int i = 0; i < 3; i++)
4269 for (
int i = 0; i < 3; i++)
4273 if (obs->
obsz[ir] > zmax) {
4274 double dmax = norm, dmin = 0;
4275 while (fabs(dmin - dmax) > 0.001) {
4276 double d = (dmax + dmin) / 2;
4277 for (
int i = 0; i < 3; i++)
4278 x[i] = xobs[i] + d * ex0[i];
4280 if (z <= zmax && z > zmax - 0.001)
4282 if (z < zmax - 0.0005)
4294 if (ctl->
raydz > 0) {
4296 for (
int i = 0; i < 3; i++)
4297 xh[i] = x[i] / norm;
4298 double cosa = fabs(
DOTP(ex0, xh));
4307 if (z < zmin || z > zmax) {
4308 stop = (z < zmin ? 2 : 1);
4311 zmin ? zmin : zmax) - los->
z[los->
np - 1]) / (z - los->
z[los->
np -
4314 los->
lat[los->
np - 1], xh);
4315 for (
int i = 0; i < 3; i++)
4316 x[i] = xh[i] + frac * (x[i] - xh[i]);
4318 los->
ds[los->
np - 1] = ds * frac;
4326 los->
lon[los->
np] = lon;
4327 los->
lat[los->
np] = lat;
4328 los->
z[los->
np] = z;
4329 los->
p[los->
np] = p;
4330 los->
t[los->
np] = t;
4331 for (
int ig = 0; ig < ctl->
ng; ig++)
4332 los->
q[los->
np][ig] = q[ig];
4333 for (
int id = 0;
id < ctl->
nd;
id++)
4334 los->
k[los->
np][
id] = k[ctl->
window[
id]];
4335 los->
ds[los->
np] = ds;
4338 if (ctl->
ncl > 0 && atm->
cldz > 0) {
4339 double aux = exp(-0.5 *
POW2((z - atm->
clz) / atm->
cldz));
4340 for (
int id = 0;
id < ctl->
nd;
id++) {
4344 ctl->
clnu[icl + 1], atm->
clk[icl + 1], ctl->
nu[
id]);
4350 ERRMSG(
"Too many LOS points!");
4356 if (ctl->
nsf > 0 && atm->
sft > 0)
4358 los->
sft = (stop == 2 ? t : -999);
4361 for (
int id = 0;
id < ctl->
nd;
id++) {
4362 los->
sfeps[id] = 1.0;
4366 ctl->
sfnu[isf + 1], atm->
sfeps[isf + 1],
4376 if (ctl->
refrac && z <= zrefrac)
4382 for (
int i = 0; i < 3; i++)
4383 ex1[i] = ex0[i] * n;
4386 if (ctl->
refrac && z <= zrefrac) {
4387 for (
int i = 0; i < 3; i++)
4388 xh[i] = x[i] + 0.5 * ds * ex0[i];
4392 for (
int i = 0; i < 3; i++) {
4400 for (
int i = 0; i < 3; i++)
4404 for (
int i = 0; i < 3; i++)
4405 ex1[i] += ds * ng[i];
4409 for (
int i = 0; i < 3; i++)
4413 for (
int i = 0; i < 3; i++)
4414 x[i] += 0.5 * ds * (ex0[i] + ex1[i]);
4417 for (
int i = 0; i < 3; i++)
4425 for (
int ip = los->
np - 1; ip >= 1; ip--)
4426 los->
ds[ip] = 0.5 * (los->
ds[ip - 1] + los->
ds[ip]);
4430 for (
int ip = 0; ip < los->
np; ip++)
4431 for (
int ig = 0; ig < ctl->
ng; ig++)
4432 los->
u[ip][ig] = 10 * los->
q[ip][ig] * los->
p[ip]
4433 / (
KB * los->
t[ip]) * los->
ds[ip];
4436 for (
int ig = 0; ig < ctl->
ng; ig++) {
4437 los->
cgu[0][ig] = los->
u[0][ig];
4438 los->
cgp[0][ig] = los->
u[0][ig] * los->
p[0];
4439 los->
cgt[0][ig] = los->
u[0][ig] * los->
t[0];
4441 for (
int ip = 1; ip < los->
np; ip++)
4442 for (
int ig = 0; ig < ctl->
ng; ig++) {
4443 los->
cgu[ip][ig] = los->
cgu[ip - 1][ig] + los->
u[ip][ig];
4444 los->
cgp[ip][ig] = los->
cgp[ip - 1][ig] + los->
u[ip][ig] * los->
p[ip];
4445 los->
cgt[ip][ig] = los->
cgt[ip - 1][ig] + los->
u[ip][ig] * los->
t[ip];
4447 for (
int ip = 0; ip < los->
np; ip++)
4448 for (
int ig = 0; ig < ctl->
ng; ig++) {
4449 los->
cgp[ip][ig] /= los->
cgu[ip][ig];
4450 los->
cgt[ip][ig] /= los->
cgu[ip][ig];
4457 const char *dirname,
4458 const char *filename,
4464 char file[
LEN], line[
LEN], *tok;
4470 if (dirname != NULL)
4471 sprintf(file,
"%s/%s", dirname, filename);
4473 sprintf(file,
"%s", filename);
4476 LOG(1,
"Read atmospheric data: %s", file);
4479 if (!(in = fopen(file,
"r")))
4480 ERRMSG(
"Cannot open file!");
4483 while (fgets(line,
LEN, in)) {
4486 TOK(line, tok,
"%lg", atm->
time[atm->
np]);
4487 TOK(NULL, tok,
"%lg", atm->
z[atm->
np]);
4488 TOK(NULL, tok,
"%lg", atm->
lon[atm->
np]);
4489 TOK(NULL, tok,
"%lg", atm->
lat[atm->
np]);
4490 TOK(NULL, tok,
"%lg", atm->
p[atm->
np]);
4491 TOK(NULL, tok,
"%lg", atm->
t[atm->
np]);
4492 for (
int ig = 0; ig < ctl->
ng; ig++)
4493 TOK(NULL, tok,
"%lg", atm->
q[ig][atm->
np]);
4494 for (
int iw = 0; iw < ctl->
nw; iw++)
4495 TOK(NULL, tok,
"%lg", atm->
k[iw][atm->
np]);
4496 if (ctl->
ncl > 0 && atm->
np == 0) {
4497 TOK(NULL, tok,
"%lg", atm->
clz);
4498 TOK(NULL, tok,
"%lg", atm->
cldz);
4499 for (
int icl = 0; icl < ctl->
ncl; icl++)
4500 TOK(NULL, tok,
"%lg", atm->
clk[icl]);
4502 if (ctl->
nsf > 0 && atm->
np == 0) {
4503 TOK(NULL, tok,
"%lg", atm->
sfz);
4504 TOK(NULL, tok,
"%lg", atm->
sfp);
4505 TOK(NULL, tok,
"%lg", atm->
sft);
4506 for (
int isf = 0; isf < ctl->
nsf; isf++)
4507 TOK(NULL, tok,
"%lg", atm->
sfeps[isf]);
4511 if ((++atm->
np) >
NP)
4512 ERRMSG(
"Too many data points!");
4520 ERRMSG(
"Could not read any data!");
4524 LOG(2,
"Number of data points: %d", atm->
np);
4525 gsl_stats_minmax(&mini, &maxi, atm->
time, 1, (
size_t) atm->
np);
4526 LOG(2,
"Time range: %.2f ... %.2f s", mini, maxi);
4527 gsl_stats_minmax(&mini, &maxi, atm->
z, 1, (
size_t) atm->
np);
4528 LOG(2,
"Altitude range: %g ... %g km", mini, maxi);
4529 gsl_stats_minmax(&mini, &maxi, atm->
lon, 1, (
size_t) atm->
np);
4530 LOG(2,
"Longitude range: %g ... %g deg", mini, maxi);
4531 gsl_stats_minmax(&mini, &maxi, atm->
lat, 1, (
size_t) atm->
np);
4532 LOG(2,
"Latitude range: %g ... %g deg", mini, maxi);
4533 gsl_stats_minmax(&mini, &maxi, atm->
p, 1, (
size_t) atm->
np);
4534 LOG(2,
"Pressure range: %g ... %g hPa", maxi, mini);
4535 gsl_stats_minmax(&mini, &maxi, atm->
t, 1, (
size_t) atm->
np);
4536 LOG(2,
"Temperature range: %g ... %g K", mini, maxi);
4537 for (
int ig = 0; ig < ctl->
ng; ig++) {
4538 gsl_stats_minmax(&mini, &maxi, atm->
q[ig], 1, (
size_t) atm->
np);
4539 LOG(2,
"Emitter %s range: %g ... %g ppv", ctl->
emitter[ig], mini, maxi);
4541 for (
int iw = 0; iw < ctl->
nw; iw++) {
4542 gsl_stats_minmax(&mini, &maxi, atm->
k[iw], 1, (
size_t) atm->
np);
4543 LOG(2,
"Extinction range (window %d): %g ... %g km^-1", iw, mini, maxi);
4545 if (ctl->
ncl > 0 && atm->
np == 0) {
4546 LOG(2,
"Cloud layer: z= %g km | dz= %g km | k= %g ... %g km^-1",
4549 LOG(2,
"Cloud layer: none");
4550 if (ctl->
nsf > 0 && atm->
np == 0) {
4552 "Surface layer: z_s= %g km | p_s= %g hPa | T_s = %g K | eps= %g ... %g",
4556 LOG(2,
"Surface layer: none");
4567 LOG(1,
"\nJuelich Rapid Spectral Simulation Code (JURASSIC)\n"
4568 "(executable: %s | version: %s | compiled: %s, %s)\n",
4569 argv[0], VERSION, __DATE__, __TIME__);
4572 ctl->
ng = (int)
scan_ctl(argc, argv,
"NG", -1,
"0", NULL);
4573 if (ctl->
ng < 0 || ctl->
ng >
NG)
4574 ERRMSG(
"Set 0 <= NG <= MAX!");
4575 for (
int ig = 0; ig < ctl->
ng; ig++)
4579 ctl->
nd = (int)
scan_ctl(argc, argv,
"ND", -1,
"0", NULL);
4580 if (ctl->
nd < 0 || ctl->
nd >
ND)
4581 ERRMSG(
"Set 0 <= ND <= MAX!");
4582 for (
int id = 0;
id < ctl->
nd;
id++)
4583 ctl->
nu[
id] =
scan_ctl(argc, argv,
"NU",
id,
"", NULL);
4586 ctl->
nw = (int)
scan_ctl(argc, argv,
"NW", -1,
"1", NULL);
4587 if (ctl->
nw < 0 || ctl->
nw >
NW)
4588 ERRMSG(
"Set 0 <= NW <= MAX!");
4589 for (
int id = 0;
id < ctl->
nd;
id++)
4590 ctl->
window[
id] = (
int)
scan_ctl(argc, argv,
"WINDOW",
id,
"0", NULL);
4593 ctl->
ncl = (int)
scan_ctl(argc, argv,
"NCL", -1,
"0", NULL);
4595 ERRMSG(
"Set 0 <= NCL <= MAX!");
4598 for (
int icl = 0; icl < ctl->
ncl; icl++)
4599 ctl->
clnu[icl] =
scan_ctl(argc, argv,
"CLNU", icl,
"", NULL);
4602 ctl->
nsf = (int)
scan_ctl(argc, argv,
"NSF", -1,
"0", NULL);
4604 ERRMSG(
"Set 0 <= NSF <= MAX!");
4607 for (
int isf = 0; isf < ctl->
nsf; isf++)
4608 ctl->
sfnu[isf] =
scan_ctl(argc, argv,
"SFNU", isf,
"", NULL);
4609 ctl->
sftype = (int)
scan_ctl(argc, argv,
"SFTYPE", -1,
"2", NULL);
4611 ERRMSG(
"Set 0 <= SFTYPE <= 3!");
4612 ctl->
sfsza =
scan_ctl(argc, argv,
"SFSZA", -1,
"-999", NULL);
4616 ctl->
tblfmt = (int)
scan_ctl(argc, argv,
"TBLFMT", -1,
"1", NULL);
4619 ctl->
hydz =
scan_ctl(argc, argv,
"HYDZ", -1,
"-999", NULL);
4624 ctl->
ctm_n2 = (int)
scan_ctl(argc, argv,
"CTM_N2", -1,
"1", NULL);
4625 ctl->
ctm_o2 = (int)
scan_ctl(argc, argv,
"CTM_O2", -1,
"1", NULL);
4628 ctl->
refrac = (int)
scan_ctl(argc, argv,
"REFRAC", -1,
"1", NULL);
4630 ctl->
raydz =
scan_ctl(argc, argv,
"RAYDZ", -1,
"0.1", NULL);
4640 for (
int ig = 0; ig < ctl->
ng; ig++) {
4644 for (
int iw = 0; iw < ctl->
nw; iw++) {
4659 (int)
scan_ctl(argc, argv,
"WRITE_MATRIX", -1,
"0", NULL);
4662 ctl->
formod = (int)
scan_ctl(argc, argv,
"FORMOD", -1,
"1", NULL);
4665 for (
int ig = 0; ig < ctl->
ng; ig++)
4672 const char *dirname,
4673 const char *filename,
4674 gsl_matrix * matrix) {
4685 if (dirname != NULL)
4686 sprintf(file,
"%s/%s", dirname, filename);
4688 sprintf(file,
"%s", filename);
4691 LOG(1,
"Read matrix: %s", file);
4694 if (!(in = fopen(file,
"r")))
4695 ERRMSG(
"Cannot open file!");
4698 gsl_matrix_set_zero(matrix);
4699 while (fgets(line,
LEN, in))
4700 if (sscanf(line,
"%d %s %s %s %s %s %d %s %s %s %s %s %lg",
4701 &i, dum, dum, dum, dum, dum,
4702 &j, dum, dum, dum, dum, dum, &value) == 13)
4703 gsl_matrix_set(matrix, (
size_t) i, (
size_t) j, value);
4712 const char *dirname,
4713 const char *filename,
4719 char file[
LEN], line[
LEN], *tok;
4725 if (dirname != NULL)
4726 sprintf(file,
"%s/%s", dirname, filename);
4728 sprintf(file,
"%s", filename);
4731 LOG(1,
"Read observation data: %s", file);
4734 if (!(in = fopen(file,
"r")))
4735 ERRMSG(
"Cannot open file!");
4738 while (fgets(line,
LEN, in)) {
4741 TOK(line, tok,
"%lg", obs->
time[obs->
nr]);
4742 TOK(NULL, tok,
"%lg", obs->
obsz[obs->
nr]);
4745 TOK(NULL, tok,
"%lg", obs->
vpz[obs->
nr]);
4748 TOK(NULL, tok,
"%lg", obs->
tpz[obs->
nr]);
4751 for (
int id = 0;
id < ctl->
nd;
id++)
4752 TOK(NULL, tok,
"%lg", obs->
rad[
id][obs->
nr]);
4753 for (
int id = 0;
id < ctl->
nd;
id++)
4754 TOK(NULL, tok,
"%lg", obs->
tau[
id][obs->
nr]);
4757 if ((++obs->
nr) >
NR)
4758 ERRMSG(
"Too many rays!");
4766 ERRMSG(
"Could not read any data!");
4770 LOG(2,
"Number of ray paths: %d", obs->
nr);
4771 gsl_stats_minmax(&mini, &maxi, obs->
time, 1, (
size_t) obs->
nr);
4772 LOG(2,
"Time range: %.2f ... %.2f s", mini, maxi);
4773 gsl_stats_minmax(&mini, &maxi, obs->
obsz, 1, (
size_t) obs->
nr);
4774 LOG(2,
"Observer altitude range: %g ... %g km", mini, maxi);
4775 gsl_stats_minmax(&mini, &maxi, obs->
obslon, 1, (
size_t) obs->
nr);
4776 LOG(2,
"Observer longitude range: %g ... %g deg", mini, maxi);
4777 gsl_stats_minmax(&mini, &maxi, obs->
obslat, 1, (
size_t) obs->
nr);
4778 LOG(2,
"Observer latitude range: %g ... %g deg", mini, maxi);
4779 gsl_stats_minmax(&mini, &maxi, obs->
vpz, 1, (
size_t) obs->
nr);
4780 LOG(2,
"View point altitude range: %g ... %g km", mini, maxi);
4781 gsl_stats_minmax(&mini, &maxi, obs->
vplon, 1, (
size_t) obs->
nr);
4782 LOG(2,
"View point longitude range: %g ... %g deg", mini, maxi);
4783 gsl_stats_minmax(&mini, &maxi, obs->
vplat, 1, (
size_t) obs->
nr);
4784 LOG(2,
"View point latitude range: %g ... %g deg", mini, maxi);
4785 gsl_stats_minmax(&mini, &maxi, obs->
tpz, 1, (
size_t) obs->
nr);
4786 LOG(2,
"Tangent point altitude range: %g ... %g km", mini, maxi);
4787 gsl_stats_minmax(&mini, &maxi, obs->
tplon, 1, (
size_t) obs->
nr);
4788 LOG(2,
"Tangent point longitude range: %g ... %g deg", mini, maxi);
4789 gsl_stats_minmax(&mini, &maxi, obs->
tplat, 1, (
size_t) obs->
nr);
4790 LOG(2,
"Tangent point latitude range: %g ... %g deg", mini, maxi);
4791 for (
int id = 0;
id < ctl->
nd;
id++) {
4792 gsl_stats_minmax(&mini, &maxi, obs->
rad[
id], 1, (
size_t) obs->
nr);
4794 LOG(2,
"Brightness temperature (%.4f cm^-1) range: %g ... %g K",
4795 ctl->
nu[
id], mini, maxi);
4797 LOG(2,
"Radiance (%.4f cm^-1) range: %g ... %g W/(m^2 sr cm^-1)",
4798 ctl->
nu[
id], mini, maxi);
4801 for (
int id = 0;
id < ctl->
nd;
id++) {
4802 gsl_stats_minmax(&mini, &maxi, obs->
tau[
id], 1, (
size_t) obs->
nr);
4804 LOG(2,
"Transmittance (%.4f cm^-1) range: %g ... %g",
4805 ctl->
nu[
id], mini, maxi);
4813 const char *basename,
4823 double filt, fsum = 0, nu2[
NSHAPE], *nurfm, *rad, radsum = 0;
4825 int i, idx, ipts, npts;
4828 ALLOC(nurfm,
double,
4834 sprintf(filename,
"%s_%05d.asc", basename, (
int) (z * 1000));
4835 if (!(in = fopen(filename,
"r"))) {
4836 sprintf(filename,
"%s_%05d.asc", basename, (
int) (z * 1000) + 1);
4837 if (!(in = fopen(filename,
"r")))
4838 ERRMSG(
"Cannot find RFM data file!");
4847 nu2[n - 1] = nu[n - 1];
4848 for (i = 1; i < n - 1; i++)
4849 nu2[i] =
LIN(0.0, nu2[0], n - 1.0, nu2[n - 1], i);
4852 for (ipts = 0; ipts < npts; ipts++)
4853 if (nurfm[ipts] >= nu2[0] && nurfm[ipts] <= nu2[n - 1]) {
4855 filt =
LIN(nu2[idx], f[idx], nu2[idx + 1], f[idx + 1], nurfm[ipts]);
4857 radsum += filt * rad[ipts];
4865 return radsum / fsum;
4871 const char *filename,
4880 double dnu, nu0, nu1;
4885 LOG(1,
"Read RFM data: %s", filename);
4888 if (!(in = fopen(filename,
"r")))
4889 ERRMSG(
"Cannot open file!");
4892 for (i = 0; i < 4; i++)
4893 if (fgets(line,
RFMLINE, in) == NULL)
4894 ERRMSG(
"Error while reading file header!");
4895 sscanf(line,
"%d %lg %lg %lg", npts, &nu0, &dnu, &nu1);
4897 ERRMSG(
"Too many spectral grid points!");
4900 while (fgets(line,
RFMLINE, in) && ipts < *npts) {
4901 if ((tok = strtok(line,
" \t\n")) != NULL)
4902 if (sscanf(tok,
"%lg", &rad[ipts]) == 1)
4904 while ((tok = strtok(NULL,
" \t\n")) != NULL)
4905 if (sscanf(tok,
"%lg", &rad[ipts]) == 1)
4909 ERRMSG(
"Error while reading RFM data!");
4912 for (ipts = 0; ipts < *npts; ipts++)
4913 nu[ipts] =
LIN(0.0, nu0, (
double) (*npts - 1), nu1, (
double) ipts);
4922 const char *filename,
4932 LOG(1,
"Read shape function: %s", filename);
4935 if (!(in = fopen(filename,
"r")))
4936 ERRMSG(
"Cannot open file!");
4940 while (fgets(line,
LEN, in))
4941 if (sscanf(line,
"%lg %lg", &x[*n], &y[*n]) == 2)
4943 ERRMSG(
"Too many data points!");
4950 ERRMSG(
"Could not read any data!");
4954 LOG(2,
"Number of data points: %d", *n);
4955 gsl_stats_minmax(&mini, &maxi, x, 1, (
size_t) *n);
4956 LOG(2,
"Range of x values: %.4f ... %.4f", mini, maxi);
4957 gsl_stats_minmax(&mini, &maxi, y, 1, (
size_t) *n);
4958 LOG(2,
"Range of y values: %g ... %g", mini, maxi);
4969 char filename[2 *
LEN], line[
LEN];
4971 double eps, press, temp, u;
4974 for (
int id = 0;
id < ctl->
nd;
id++)
4975 for (
int ig = 0; ig < ctl->
ng; ig++) {
4978 tbl->
np[id][ig] = -1;
4979 double eps_old = -999;
4980 double press_old = -999;
4981 double temp_old = -999;
4982 double u_old = -999;
4986 sprintf(filename,
"%s_%.4f_%s.%s", ctl->
tblbase,
4988 ctl->
tblfmt == 1 ?
"tab" :
"bin");
4991 LOG(1,
"Read emissivity table: %s", filename);
4994 if (!(in = fopen(filename,
"r"))) {
4995 WARN(
"Missing emissivity table: %s", filename);
5003 while (fgets(line,
LEN, in)) {
5006 if (sscanf(line,
"%lg %lg %lg %lg", &press, &temp, &u, &eps) != 4)
5010 if (u < UMIN || u >
UMAX || eps < EPSMIN || eps >
EPSMAX) {
5016 if (press != press_old) {
5018 if ((++tbl->
np[
id][ig]) >=
TBLNP)
5019 ERRMSG(
"Too many pressure levels!");
5020 tbl->
nt[id][ig][tbl->
np[id][ig]] = -1;
5024 if (temp != temp_old) {
5026 if ((++tbl->
nt[
id][ig][tbl->
np[
id][ig]]) >=
TBLNT)
5027 ERRMSG(
"Too many temperatures!");
5028 tbl->
nu[id][ig][tbl->
np[id][ig]]
5029 [tbl->
nt[id][ig][tbl->
np[id][ig]]] = -1;
5033 if ((eps > eps_old && u > u_old) || tbl->
nu[
id][ig][tbl->
np[
id][ig]]
5034 [tbl->
nt[
id][ig][tbl->
np[
id][ig]]] < 0) {
5037 if ((++tbl->
nu[
id][ig][tbl->
np[
id][ig]]
5038 [tbl->
nt[
id][ig][tbl->
np[
id][ig]]]) >=
TBLNU)
5039 ERRMSG(
"Too many column densities!");
5043 tbl->
p[id][ig][tbl->
np[id][ig]] = press;
5044 tbl->
t[id][ig][tbl->
np[id][ig]][tbl->
nt[id][ig][tbl->
np[id][ig]]]
5046 tbl->
u[id][ig][tbl->
np[id][ig]][tbl->
nt[id][ig][tbl->
np[id][ig]]]
5047 [tbl->
nu[id][ig][tbl->
np[id][ig]]
5048 [tbl->
nt[id][ig][tbl->
np[id][ig]]]] = (float) u;
5049 tbl->
eps[id][ig][tbl->
np[id][ig]][tbl->
nt[id][ig][tbl->
np[id][ig]]]
5050 [tbl->
nu[id][ig][tbl->
np[id][ig]]
5051 [tbl->
nt[id][ig][tbl->
np[id][ig]]]] = (float) eps;
5056 for (
int ip = 0; ip < tbl->
np[id][ig]; ip++) {
5057 tbl->
nt[id][ig][ip]++;
5058 for (
int it = 0; it < tbl->
nt[id][ig][ip]; it++)
5059 tbl->
nu[
id][ig][ip][it]++;
5064 else if (ctl->
tblfmt == 2) {
5071 ERRMSG(
"Too many pressure levels!");
5072 FREAD(tbl->
p[
id][ig],
double,
5073 (
size_t) tbl->
np[
id][ig],
5075 for (
int ip = 0; ip < tbl->
np[id][ig]; ip++) {
5076 FREAD(&tbl->
nt[
id][ig][ip],
int,
5079 if (tbl->
nt[
id][ig][ip] >
TBLNT)
5080 ERRMSG(
"Too many temperatures!");
5081 FREAD(tbl->
t[
id][ig][ip],
double,
5082 (
size_t) tbl->
nt[
id][ig][ip],
5084 for (
int it = 0; it < tbl->
nt[id][ig][ip]; it++) {
5085 FREAD(&tbl->
nu[
id][ig][ip][it],
int,
5088 if (tbl->
nu[
id][ig][ip][it] >
TBLNU)
5089 ERRMSG(
"Too many column densities!");
5090 FREAD(tbl->
u[
id][ig][ip][it],
float,
5091 (
size_t) tbl->
nu[
id][ig][ip][it],
5093 FREAD(tbl->
eps[
id][ig][ip][it],
float,
5094 (
size_t) tbl->
nu[
id][ig][ip][it],
5102 ERRMSG(
"Unknown look-up table format!");
5106 WARN(
"Column density or emissivity out of range (%d data points)!",
5113 for (
int ip = 0; ip < tbl->
np[id][ig]; ip++)
5115 "p[%2d]= %.5e hPa | T[0:%2d]= %.2f ... %.2f K | u[0:%3d]= %.5e ... %.5e molec/cm^2 | eps[0:%3d]= %.5e ... %.5e",
5116 ip, tbl->
p[
id][ig][ip], tbl->
nt[
id][ig][ip] - 1,
5117 tbl->
t[
id][ig][ip][0],
5118 tbl->
t[
id][ig][ip][tbl->
nt[
id][ig][ip] - 1],
5119 tbl->
nu[
id][ig][ip][0] - 1, tbl->
u[
id][ig][ip][0][0],
5120 tbl->
u[
id][ig][ip][0][tbl->
nu[
id][ig][ip][0] - 1],
5121 tbl->
nu[
id][ig][ip][0] - 1, tbl->
eps[
id][ig][ip][0][0],
5122 tbl->
eps[
id][ig][ip][0][tbl->
nu[
id][ig][ip][0] - 1]);
5133 return 7.753e-05 * p / t;
5141 const char *varname,
5143 const char *defvalue,
5148 char dummy[
LEN], fullname1[
LEN], fullname2[
LEN], line[
LEN],
5149 rvarname[
LEN], rval[
LEN];
5154 if (argv[1][0] !=
'-')
5155 if (!(in = fopen(argv[1],
"r")))
5156 ERRMSG(
"Cannot open file!");
5160 sprintf(fullname1,
"%s[%d]", varname, arridx);
5161 sprintf(fullname2,
"%s[*]", varname);
5163 sprintf(fullname1,
"%s", varname);
5164 sprintf(fullname2,
"%s", varname);
5169 while (fgets(line,
LEN, in))
5170 if (sscanf(line,
"%s %s %s", rvarname, dummy, rval) == 3)
5171 if (strcasecmp(rvarname, fullname1) == 0 ||
5172 strcasecmp(rvarname, fullname2) == 0) {
5176 for (
int i = 1; i < argc - 1; i++)
5177 if (strcasecmp(argv[i], fullname1) == 0 ||
5178 strcasecmp(argv[i], fullname2) == 0) {
5179 sprintf(rval,
"%s", argv[i + 1]);
5190 if (strlen(defvalue) > 0)
5191 sprintf(rval,
"%s", defvalue);
5193 ERRMSG(
"Missing variable %s!\n", fullname1);
5197 LOG(1,
"%s = %s", fullname1, rval);
5201 sprintf(value,
"%s", rval);
5213 double D = sec / 86400 - 0.5;
5216 double g = (357.529 + 0.98560028 * D) * M_PI / 180;
5217 double q = 280.459 + 0.98564736 * D;
5218 double L = (q + 1.915 * sin(g) + 0.020 * sin(2 * g)) * M_PI / 180;
5221 double e = (23.439 - 0.00000036 * D) * M_PI / 180;
5224 double dec = asin(sin(e) * sin(L));
5227 double ra = atan2(cos(e) * sin(L), cos(L));
5230 double GMST = 18.697374558 + 24.06570982441908 * D;
5233 double LST = GMST + lon / 15;
5236 double h = LST / 12 * M_PI - ra;
5242 return acos(sin(lat) * sin(dec) +
5243 cos(lat) * cos(dec) * cos(h)) * 180 / M_PI;
5254 double dummy, v[3], v0[3], v2[3];
5257 size_t ip = gsl_stats_min_index(los->
z, 1, (
size_t) los->
np);
5260 if (ip <= 0 || ip >= (
size_t) los->
np - 1) {
5261 *tpz = los->
z[los->
np - 1];
5262 *tplon = los->
lon[los->
np - 1];
5263 *tplat = los->
lat[los->
np - 1];
5270 double yy0 = los->
z[ip - 1];
5271 double yy1 = los->
z[ip];
5272 double yy2 = los->
z[ip + 1];
5273 double x1 = sqrt(
POW2(los->
ds[ip]) -
POW2(yy1 - yy0));
5274 double x2 = x1 + sqrt(
POW2(los->
ds[ip + 1]) -
POW2(yy2 - yy1));
5275 double a = 1 / (x1 - x2) * (-(yy0 - yy1) / x1 + (yy0 - yy2) / x2);
5276 double b = -(yy0 - yy1) / x1 - a * x1;
5280 double x = -b / (2 * a);
5281 *tpz = a * x * x + b * x + c;
5284 for (
int i = 0; i < 3; i++)
5285 v[i] =
LIN(0.0, v0[i], x2, v2[i], x);
5311 t1.tm_year = year - 1900;
5312 t1.tm_mon = mon - 1;
5318 *jsec = (double) timegm(&t1) - (double) timegm(&t0) + remain;
5330 static double w0[10];
5332 static int l0[10], nt;
5336 w0[nt] = omp_get_wtime();
5339 ERRMSG(
"Too many timers!");
5350 LOG(1,
"Timer '%s' (%s, %s, l%d-%d): %.3f sec",
5351 name, file, func, l0[nt - 1], line, omp_get_wtime() - w0[nt - 1]);
5362 const char *dirname,
5363 const char *filename,
5374 if (dirname != NULL)
5375 sprintf(file,
"%s/%s", dirname, filename);
5377 sprintf(file,
"%s", filename);
5380 LOG(1,
"Write atmospheric data: %s", file);
5383 if (!(out = fopen(file,
"w")))
5384 ERRMSG(
"Cannot create file!");
5388 "# $1 = time (seconds since 2000-01-01T00:00Z)\n"
5389 "# $2 = altitude [km]\n"
5390 "# $3 = longitude [deg]\n"
5391 "# $4 = latitude [deg]\n"
5392 "# $5 = pressure [hPa]\n" "# $6 = temperature [K]\n");
5393 for (
int ig = 0; ig < ctl->
ng; ig++)
5394 fprintf(out,
"# $%d = %s volume mixing ratio [ppv]\n",
5396 for (
int iw = 0; iw < ctl->
nw; iw++)
5397 fprintf(out,
"# $%d = extinction (window %d) [km^-1]\n", ++n, iw);
5399 fprintf(out,
"# $%d = cloud layer height [km]\n", ++n);
5400 fprintf(out,
"# $%d = cloud layer depth [km]\n", ++n);
5401 for (
int icl = 0; icl < ctl->
ncl; icl++)
5402 fprintf(out,
"# $%d = cloud layer extinction (%.4f cm^-1) [km^-1]\n",
5403 ++n, ctl->
clnu[icl]);
5406 fprintf(out,
"# $%d = surface layer height [km]\n", ++n);
5407 fprintf(out,
"# $%d = surface layer pressure [hPa]\n", ++n);
5408 fprintf(out,
"# $%d = surface layer temperature [K]\n", ++n);
5409 for (
int isf = 0; isf < ctl->
nsf; isf++)
5410 fprintf(out,
"# $%d = surface layer emissivity (%.4f cm^-1)\n",
5411 ++n, ctl->
sfnu[isf]);
5415 for (
int ip = 0; ip < atm->
np; ip++) {
5416 if (ip == 0 || atm->
time[ip] != atm->
time[ip - 1])
5418 fprintf(out,
"%.2f %g %g %g %g %g", atm->
time[ip], atm->
z[ip],
5419 atm->
lon[ip], atm->
lat[ip], atm->
p[ip], atm->
t[ip]);
5420 for (
int ig = 0; ig < ctl->
ng; ig++)
5421 fprintf(out,
" %g", atm->
q[ig][ip]);
5422 for (
int iw = 0; iw < ctl->
nw; iw++)
5423 fprintf(out,
" %g", atm->
k[iw][ip]);
5425 fprintf(out,
" %g %g", atm->
clz, atm->
cldz);
5426 for (
int icl = 0; icl < ctl->
ncl; icl++)
5427 fprintf(out,
" %g", atm->
clk[icl]);
5430 fprintf(out,
" %g %g %g", atm->
sfz, atm->
sfp, atm->
sft);
5431 for (
int isf = 0; isf < ctl->
nsf; isf++)
5432 fprintf(out,
" %g", atm->
sfeps[isf]);
5442 LOG(2,
"Number of data points: %d", atm->
np);
5443 gsl_stats_minmax(&mini, &maxi, atm->
time, 1, (
size_t) atm->
np);
5444 LOG(2,
"Time range: %.2f ... %.2f s", mini, maxi);
5445 gsl_stats_minmax(&mini, &maxi, atm->
z, 1, (
size_t) atm->
np);
5446 LOG(2,
"Altitude range: %g ... %g km", mini, maxi);
5447 gsl_stats_minmax(&mini, &maxi, atm->
lon, 1, (
size_t) atm->
np);
5448 LOG(2,
"Longitude range: %g ... %g deg", mini, maxi);
5449 gsl_stats_minmax(&mini, &maxi, atm->
lat, 1, (
size_t) atm->
np);
5450 LOG(2,
"Latitude range: %g ... %g deg", mini, maxi);
5451 gsl_stats_minmax(&mini, &maxi, atm->
p, 1, (
size_t) atm->
np);
5452 LOG(2,
"Pressure range: %g ... %g hPa", maxi, mini);
5453 gsl_stats_minmax(&mini, &maxi, atm->
t, 1, (
size_t) atm->
np);
5454 LOG(2,
"Temperature range: %g ... %g K", mini, maxi);
5455 for (
int ig = 0; ig < ctl->
ng; ig++) {
5456 gsl_stats_minmax(&mini, &maxi, atm->
q[ig], 1, (
size_t) atm->
np);
5457 LOG(2,
"Emitter %s range: %g ... %g ppv", ctl->
emitter[ig], mini, maxi);
5459 for (
int iw = 0; iw < ctl->
nw; iw++) {
5460 gsl_stats_minmax(&mini, &maxi, atm->
k[iw], 1, (
size_t) atm->
np);
5461 LOG(2,
"Extinction range (window %d): %g ... %g km^-1", iw, mini, maxi);
5463 if (ctl->
ncl > 0 && atm->
np == 0) {
5464 LOG(2,
"Cloud layer: z= %g km | dz= %g km | k= %g ... %g km^-1",
5467 LOG(2,
"Cloud layer: none");
5468 if (ctl->
nsf > 0 && atm->
np == 0) {
5470 "Surface layer: z_s= %g km | p_s= %g hPa | T_s = %g K | eps= %g ... %g",
5474 LOG(2,
"Surface layer: none");
5480 const char *filename,
5489 LOG(1,
"Write RFM data: %s", filename);
5492 if (!(out = fopen(filename,
"w")))
5493 ERRMSG(
"Cannot create file!");
5496 fprintf(out,
"%d\n", atm->
np);
5497 fprintf(out,
"*HGT [km]\n");
5498 for (ip = 0; ip < atm->
np; ip++)
5499 fprintf(out,
"%g\n", atm->
z[ip]);
5500 fprintf(out,
"*PRE [mb]\n");
5501 for (ip = 0; ip < atm->
np; ip++)
5502 fprintf(out,
"%g\n", atm->
p[ip]);
5503 fprintf(out,
"*TEM [K]\n");
5504 for (ip = 0; ip < atm->
np; ip++)
5505 fprintf(out,
"%g\n", atm->
t[ip]);
5506 for (ig = 0; ig < ctl->
ng; ig++) {
5507 fprintf(out,
"*%s [ppmv]\n", ctl->
emitter[ig]);
5508 for (ip = 0; ip < atm->
np; ip++)
5509 fprintf(out,
"%g\n", atm->
q[ig][ip] * 1e6);
5511 fprintf(out,
"*END\n");
5520 const char *dirname,
5521 const char *filename,
5523 gsl_matrix * matrix,
5526 const char *rowspace,
5527 const char *colspace,
5532 char file[
LEN], quantity[
LEN];
5534 int *cida, *ciqa, *cipa, *cira, *rida, *riqa, *ripa, *rira;
5536 size_t i, j, nc, nr;
5561 if (dirname != NULL)
5562 sprintf(file,
"%s/%s", dirname, filename);
5564 sprintf(file,
"%s", filename);
5567 LOG(1,
"Write matrix: %s", file);
5570 if (!(out = fopen(file,
"w")))
5571 ERRMSG(
"Cannot create file!");
5574 if (rowspace[0] ==
'y') {
5577 "# $1 = Row: index (measurement space)\n"
5578 "# $2 = Row: channel wavenumber [cm^-1]\n"
5579 "# $3 = Row: time (seconds since 2000-01-01T00:00Z)\n"
5580 "# $4 = Row: view point altitude [km]\n"
5581 "# $5 = Row: view point longitude [deg]\n"
5582 "# $6 = Row: view point latitude [deg]\n");
5585 nr =
obs2y(ctl, obs, NULL, rida, rira);
5590 "# $1 = Row: index (state space)\n"
5591 "# $2 = Row: name of quantity\n"
5592 "# $3 = Row: time (seconds since 2000-01-01T00:00Z)\n"
5593 "# $4 = Row: altitude [km]\n"
5594 "# $5 = Row: longitude [deg]\n" "# $6 = Row: latitude [deg]\n");
5597 nr =
atm2x(ctl, atm, NULL, riqa, ripa);
5601 if (colspace[0] ==
'y') {
5604 "# $7 = Col: index (measurement space)\n"
5605 "# $8 = Col: channel wavenumber [cm^-1]\n"
5606 "# $9 = Col: time (seconds since 2000-01-01T00:00Z)\n"
5607 "# $10 = Col: view point altitude [km]\n"
5608 "# $11 = Col: view point longitude [deg]\n"
5609 "# $12 = Col: view point latitude [deg]\n");
5612 nc =
obs2y(ctl, obs, NULL, cida, cira);
5617 "# $7 = Col: index (state space)\n"
5618 "# $8 = Col: name of quantity\n"
5619 "# $9 = Col: time (seconds since 2000-01-01T00:00Z)\n"
5620 "# $10 = Col: altitude [km]\n"
5621 "# $11 = Col: longitude [deg]\n" "# $12 = Col: latitude [deg]\n");
5624 nc =
atm2x(ctl, atm, NULL, ciqa, cipa);
5628 fprintf(out,
"# $13 = Matrix element\n\n");
5632 while (i < nr && j < nc) {
5635 if (rowspace[0] ==
'y')
5636 fprintf(out,
"%d %.4f %.2f %g %g %g",
5637 (
int) i, ctl->
nu[rida[i]],
5638 obs->
time[rira[i]], obs->
vpz[rira[i]],
5642 fprintf(out,
"%d %s %.2f %g %g %g", (
int) i, quantity,
5643 atm->
time[ripa[i]], atm->
z[ripa[i]],
5644 atm->
lon[ripa[i]], atm->
lat[ripa[i]]);
5648 if (colspace[0] ==
'y')
5649 fprintf(out,
" %d %.4f %.2f %g %g %g",
5650 (
int) j, ctl->
nu[cida[j]],
5651 obs->
time[cira[j]], obs->
vpz[cira[j]],
5655 fprintf(out,
" %d %s %.2f %g %g %g", (
int) j, quantity,
5656 atm->
time[cipa[j]], atm->
z[cipa[j]],
5657 atm->
lon[cipa[j]], atm->
lat[cipa[j]]);
5661 fprintf(out,
" %g\n", gsl_matrix_get(matrix, i, j));
5664 if (sort[0] ==
'r') {
5698 const char *dirname,
5699 const char *filename,
5710 if (dirname != NULL)
5711 sprintf(file,
"%s/%s", dirname, filename);
5713 sprintf(file,
"%s", filename);
5716 LOG(1,
"Write observation data: %s", file);
5719 if (!(out = fopen(file,
"w")))
5720 ERRMSG(
"Cannot create file!");
5724 "# $1 = time (seconds since 2000-01-01T00:00Z)\n"
5725 "# $2 = observer altitude [km]\n"
5726 "# $3 = observer longitude [deg]\n"
5727 "# $4 = observer latitude [deg]\n"
5728 "# $5 = view point altitude [km]\n"
5729 "# $6 = view point longitude [deg]\n"
5730 "# $7 = view point latitude [deg]\n"
5731 "# $8 = tangent point altitude [km]\n"
5732 "# $9 = tangent point longitude [deg]\n"
5733 "# $10 = tangent point latitude [deg]\n");
5734 for (
int id = 0;
id < ctl->
nd;
id++)
5736 fprintf(out,
"# $%d = brightness temperature (%.4f cm^-1) [K]\n",
5739 fprintf(out,
"# $%d = radiance (%.4f cm^-1) [W/(m^2 sr cm^-1)]\n",
5741 for (
int id = 0;
id < ctl->
nd;
id++)
5742 fprintf(out,
"# $%d = transmittance (%.4f cm^-1) [-]\n", ++n,
5746 for (
int ir = 0; ir < obs->
nr; ir++) {
5747 if (ir == 0 || obs->
time[ir] != obs->
time[ir - 1])
5749 fprintf(out,
"%.2f %g %g %g %g %g %g %g %g %g", obs->
time[ir],
5753 for (
int id = 0;
id < ctl->
nd;
id++)
5754 fprintf(out,
" %g", obs->
rad[
id][ir]);
5755 for (
int id = 0;
id < ctl->
nd;
id++)
5756 fprintf(out,
" %g", obs->
tau[
id][ir]);
5765 LOG(2,
"Number of ray paths: %d", obs->
nr);
5766 gsl_stats_minmax(&mini, &maxi, obs->
time, 1, (
size_t) obs->
nr);
5767 LOG(2,
"Time range: %.2f ... %.2f s", mini, maxi);
5768 gsl_stats_minmax(&mini, &maxi, obs->
obsz, 1, (
size_t) obs->
nr);
5769 LOG(2,
"Observer altitude range: %g ... %g km", mini, maxi);
5770 gsl_stats_minmax(&mini, &maxi, obs->
obslon, 1, (
size_t) obs->
nr);
5771 LOG(2,
"Observer longitude range: %g ... %g deg", mini, maxi);
5772 gsl_stats_minmax(&mini, &maxi, obs->
obslat, 1, (
size_t) obs->
nr);
5773 LOG(2,
"Observer latitude range: %g ... %g deg", mini, maxi);
5774 gsl_stats_minmax(&mini, &maxi, obs->
vpz, 1, (
size_t) obs->
nr);
5775 LOG(2,
"View point altitude range: %g ... %g km", mini, maxi);
5776 gsl_stats_minmax(&mini, &maxi, obs->
vplon, 1, (
size_t) obs->
nr);
5777 LOG(2,
"View point longitude range: %g ... %g deg", mini, maxi);
5778 gsl_stats_minmax(&mini, &maxi, obs->
vplat, 1, (
size_t) obs->
nr);
5779 LOG(2,
"View point latitude range: %g ... %g deg", mini, maxi);
5780 gsl_stats_minmax(&mini, &maxi, obs->
tpz, 1, (
size_t) obs->
nr);
5781 LOG(2,
"Tangent point altitude range: %g ... %g km", mini, maxi);
5782 gsl_stats_minmax(&mini, &maxi, obs->
tplon, 1, (
size_t) obs->
nr);
5783 LOG(2,
"Tangent point longitude range: %g ... %g deg", mini, maxi);
5784 gsl_stats_minmax(&mini, &maxi, obs->
tplat, 1, (
size_t) obs->
nr);
5785 LOG(2,
"Tangent point latitude range: %g ... %g deg", mini, maxi);
5786 for (
int id = 0;
id < ctl->
nd;
id++) {
5787 gsl_stats_minmax(&mini, &maxi, obs->
rad[
id], 1, (
size_t) obs->
nr);
5789 LOG(2,
"Brightness temperature (%.4f cm^-1) range: %g ... %g K",
5790 ctl->
nu[
id], mini, maxi);
5792 LOG(2,
"Radiance (%.4f cm^-1) range: %g ... %g W/(m^2 sr cm^-1)",
5793 ctl->
nu[
id], mini, maxi);
5796 for (
int id = 0;
id < ctl->
nd;
id++) {
5797 gsl_stats_minmax(&mini, &maxi, obs->
tau[
id], 1, (
size_t) obs->
nr);
5799 LOG(2,
"Transmittance (%.4f cm^-1) range: %g ... %g",
5800 ctl->
nu[
id], mini, maxi);
5808 const char *filename,
5816 LOG(1,
"Write shape function: %s", filename);
5819 if (!(out = fopen(filename,
"w")))
5820 ERRMSG(
"Cannot create file!");
5824 "# $1 = shape function x-value [-]\n"
5825 "# $2 = shape function y-value [-]\n\n");
5828 for (
int i = 0; i < n; i++)
5829 fprintf(out,
"%.10g %.10g\n", x[i], y[i]);
5843 char filename[2 *
LEN];
5846 for (
int ig = 0; ig < ctl->
ng; ig++)
5847 for (
int id = 0;
id < ctl->
nd;
id++) {
5850 sprintf(filename,
"%s_%.4f_%s.%s", ctl->
tblbase,
5852 ctl->
tblfmt == 1 ?
"tab" :
"bin");
5855 LOG(1,
"Write emissivity table: %s", filename);
5858 if (!(out = fopen(filename,
"w")))
5859 ERRMSG(
"Cannot create file!");
5866 "# $1 = pressure [hPa]\n"
5867 "# $2 = temperature [K]\n"
5868 "# $3 = column density [molecules/cm^2]\n"
5869 "# $4 = emissivity [-]\n");
5872 for (
int ip = 0; ip < tbl->
np[id][ig]; ip++)
5873 for (
int it = 0; it < tbl->
nt[id][ig][ip]; it++) {
5875 for (
int iu = 0; iu < tbl->
nu[id][ig][ip][it]; iu++)
5876 fprintf(out,
"%g %g %e %e\n",
5877 tbl->
p[
id][ig][ip], tbl->
t[
id][ig][ip][it],
5878 tbl->
u[
id][ig][ip][it][iu],
5879 tbl->
eps[
id][ig][ip][it][iu]);
5884 else if (ctl->
tblfmt == 2) {
5888 FWRITE(tbl->
p[
id][ig],
double,
5889 (
size_t) tbl->
np[
id][ig],
5891 for (
int ip = 0; ip < tbl->
np[id][ig]; ip++) {
5895 FWRITE(tbl->
t[
id][ig][ip],
double,
5896 (
size_t) tbl->
nt[
id][ig][ip],
5898 for (
int it = 0; it < tbl->
nt[id][ig][ip]; it++) {
5899 FWRITE(&tbl->
nu[
id][ig][ip][it],
int,
5902 FWRITE(tbl->
u[
id][ig][ip][it],
float,
5903 (
size_t) tbl->
nu[
id][ig][ip][it],
5906 (
size_t) tbl->
nu[
id][ig][ip][it],
5914 ERRMSG(
"Unknown look-up table format!");
5931 for (
int ip = 0; ip < atm->
np; ip++)
5936 for (
int ip = 0; ip < atm->
np; ip++)
5941 for (
int ig = 0; ig < ctl->
ng; ig++)
5942 for (
int ip = 0; ip < atm->
np; ip++)
5948 for (
int iw = 0; iw < ctl->
nw; iw++)
5949 for (
int ip = 0; ip < atm->
np; ip++)
5960 for (
int icl = 0; icl < ctl->
ncl; icl++)
5971 for (
int isf = 0; isf < ctl->
nsf; isf++)
5983 *value = gsl_vector_get(x, *n);
5997 for (
int ir = 0; ir < obs->
nr; ir++)
5998 for (
int id = 0;
id < ctl->
nd;
id++)
5999 if (isfinite(obs->
rad[
id][ir])) {
6000 obs->
rad[id][ir] = gsl_vector_get(y, m);
void write_shape(const char *filename, double *x, double *y, int n)
Write shape function.
double planck(double t, double nu)
Compute Planck function.
int locate_tbl(float *xx, int n, double x)
Find array index in float array.
void read_matrix(const char *dirname, const char *filename, gsl_matrix *matrix)
Read matrix.
void timer(const char *name, const char *file, const char *func, int line, int mode)
Measure wall-clock time.
void read_rfm_spec(const char *filename, double *nu, double *rad, int *npts)
Read RFM spectrum.
void x2atm(ctl_t *ctl, gsl_vector *x, atm_t *atm)
Decompose parameter vector or state vector.
int locate_irr(double *xx, int n, double x)
Find array index for irregular grid.
void read_atm(const char *dirname, const char *filename, ctl_t *ctl, atm_t *atm)
Read atmospheric data.
void climatology(ctl_t *ctl, atm_t *atm)
Interpolate climatological data.
void init_srcfunc(ctl_t *ctl, tbl_t *tbl)
Initialize source function table.
void x2atm_help(double *value, gsl_vector *x, size_t *n)
Get element from state vector.
void read_ctl(int argc, char *argv[], ctl_t *ctl)
Read forward model control parameters.
void y2obs(ctl_t *ctl, gsl_vector *y, obs_t *obs)
Decompose measurement vector.
void raytrace(ctl_t *ctl, atm_t *atm, obs_t *obs, los_t *los, int ir)
Do ray-tracing to determine LOS.
void copy_obs(ctl_t *ctl, obs_t *obs_dest, obs_t *obs_src, int init)
Copy and initialize observation data.
void write_atm(const char *dirname, const char *filename, ctl_t *ctl, atm_t *atm)
Write atmospheric data.
double intpol_tbl_eps(tbl_t *tbl, int ig, int id, int ip, int it, double u)
Interpolate emissivity from look-up tables.
void read_tbl(ctl_t *ctl, tbl_t *tbl)
Read look-up table data.
void formod_fov(ctl_t *ctl, obs_t *obs)
Apply field of view convolution.
size_t obs2y(ctl_t *ctl, obs_t *obs, gsl_vector *y, int *ida, int *ira)
Compose measurement vector.
void time2jsec(int year, int mon, int day, int hour, int min, int sec, double remain, double *jsec)
Convert date to seconds.
void formod_pencil(ctl_t *ctl, atm_t *atm, obs_t *obs, int ir)
Compute radiative transfer for a pencil beam.
void tangent_point(los_t *los, double *tpz, double *tplon, double *tplat)
Find tangent point of a given LOS.
void write_obs(const char *dirname, const char *filename, ctl_t *ctl, obs_t *obs)
Write observation data.
void write_atm_rfm(const char *filename, ctl_t *ctl, atm_t *atm)
Write atmospheric data in RFM format.
void write_matrix(const char *dirname, const char *filename, ctl_t *ctl, gsl_matrix *matrix, atm_t *atm, obs_t *obs, const char *rowspace, const char *colspace, const char *sort)
Write matrix.
double refractivity(double p, double t)
Compute refractivity (return value is n - 1).
void hydrostatic(ctl_t *ctl, atm_t *atm)
Set hydrostatic equilibrium.
int locate_reg(double *xx, int n, double x)
Find array index for regular grid.
void intpol_atm(ctl_t *ctl, atm_t *atm, double z, double *p, double *t, double *q, double *k)
Interpolate atmospheric data.
double ctmo2(double nu, double p, double t)
Compute oxygen continuum (absorption coefficient).
void idx2name(ctl_t *ctl, int idx, char *quantity)
Determine name of state vector quantity for given index.
void intpol_tbl_ega(ctl_t *ctl, tbl_t *tbl, los_t *los, int ip, double tau_path[ND][NG], double tau_seg[ND])
Get transmittance from look-up tables (EGA method).
void formod_srcfunc(ctl_t *ctl, tbl_t *tbl, double t, double *src)
Compute Planck source function.
void jsec2time(double jsec, int *year, int *mon, int *day, int *hour, int *min, int *sec, double *remain)
Convert seconds to date.
double brightness(double rad, double nu)
Compute brightness temperature.
void intpol_tbl_cga(ctl_t *ctl, tbl_t *tbl, los_t *los, int ip, double tau_path[ND][NG], double tau_seg[ND])
Get transmittance from look-up tables (CGA method).
void read_obs(const char *dirname, const char *filename, ctl_t *ctl, obs_t *obs)
Read observation data.
double ctmn2(double nu, double p, double t)
Compute nitrogen continuum (absorption coefficient).
int find_emitter(ctl_t *ctl, const char *emitter)
Find index of an emitter.
double scan_ctl(int argc, char *argv[], const char *varname, int arridx, const char *defvalue, char *value)
Search control parameter file for variable entry.
double sza(double sec, double lon, double lat)
Calculate solar zenith angle.
void read_shape(const char *filename, double *x, double *y, int *n)
Read shape function.
void geo2cart(double z, double lon, double lat, double *x)
Convert geolocation to Cartesian coordinates.
void formod(ctl_t *ctl, atm_t *atm, obs_t *obs)
Determine ray paths and compute radiative transfer.
double ctmh2o(double nu, double p, double t, double q, double u)
Compute water vapor continuum (optical depth).
double read_obs_rfm(const char *basename, double z, double *nu, double *f, int n)
Read observation data in RFM format.
void kernel(ctl_t *ctl, atm_t *atm, obs_t *obs, gsl_matrix *k)
Compute Jacobians.
void formod_continua(ctl_t *ctl, los_t *los, int ip, double *beta)
Compute absorption coefficient of continua.
void atm2x_help(double value, int value_iqa, int value_ip, gsl_vector *x, int *iqa, int *ipa, size_t *n)
Add element to state vector.
double intpol_tbl_u(tbl_t *tbl, int ig, int id, int ip, int it, double eps)
Interpolate column density from look-up tables.
void write_tbl(ctl_t *ctl, tbl_t *tbl)
Write look-up table data.
void copy_atm(ctl_t *ctl, atm_t *atm_dest, atm_t *atm_src, int init)
Copy and initialize atmospheric data.
size_t atm2x(ctl_t *ctl, atm_t *atm, gsl_vector *x, int *iqa, int *ipa)
Compose state vector or parameter vector.
void formod_rfm(ctl_t *ctl, atm_t *atm, obs_t *obs)
Apply RFM for radiative transfer calculations.
void cart2geo(double *x, double *z, double *lon, double *lat)
Convert Cartesian coordinates to geolocation.
double ctmco2(double nu, double p, double t, double u)
Compute carbon dioxide continuum (optical depth).
JURASSIC library declarations.
#define N
Maximum size of state vector.
#define IDXCLZ
Index for cloud layer height.
#define LEN
Maximum length of ASCII data lines.
#define RE
Mean radius of Earth [km].
#define P0
Standard pressure [hPa].
#define KB
Boltzmann constant [kg m^2/(K s^2)].
#define POW2(x)
Compute x^2.
#define NFOV
Number of ray paths used for FOV calculations.
#define FWRITE(ptr, type, size, out)
Write binary data.
#define DOTP(a, b)
Compute dot product of two vectors.
#define UMAX
Maximum column density [molecules/cm^2].
#define MIN(a, b)
Macro to determine the minimum of two values.
#define IDXCLDZ
Index for cloud layer depth.
#define ERRMSG(...)
Print error message and quit program.
#define C1
First spectroscopic constant (c_1 = 2 h c^2) [W/(m^2 sr cm^-4)].
#define RFMNPTS
Maximum number of RFM spectral grid points.
#define IDXK(iw)
Indices for extinction.
#define M
Maximum size of measurement vector.
#define G0
Standard gravity [m/s^2].
#define ND
Maximum number of radiance channels.
#define NA
Avogadro's number.
#define LOGY(x0, y0, x1, y1, x)
Compute logarithmic interpolation in y.
#define NSHAPE
Maximum number of shape function grid points.
#define IDXSFT
Index for surface layer temperature.
#define RI
Ideal gas constant [J/(mol K)].
#define NORM(a)
Compute norm of a vector.
#define IDXSFEPS(isf)
Indices for surface layer emissivity.
#define IDXCLK(icl)
Indices for cloud layer extinction.
#define LOGX(x0, y0, x1, y1, x)
Compute logarithmic interpolation in x.
#define TOK(line, tok, format, var)
Read string tokens.
#define WARN(...)
Print warning message.
#define TBLNU
Maximum number of column densities in emissivity tables.
#define IDXP
Index for pressure.
#define ALLOC(ptr, type, n)
Allocate memory.
#define TSUN
Effective temperature of the sun [K].
#define IDXSFP
Index for surface layer pressure.
#define TBLNT
Maximum number of temperatures in emissivity tables.
#define NP
Maximum number of atmospheric data points.
#define POW3(x)
Compute x^3.
#define NG
Maximum number of emitters.
#define EPSMAX
Maximum emissivity.
#define LOG(level,...)
Print log message.
#define TBLNS
Maximum number of source function temperature levels.
#define C2
Second spectroscopic constant (c_2 = h c / k) [K/cm^-1].
#define TBLNP
Maximum number of pressure levels in emissivity tables.
#define NSF
Maximum number of surface layer spectral grid points.
#define NCL
Maximum number of cloud layer spectral grid points.
#define FREAD(ptr, type, size, out)
Read binary data.
#define LIN(x0, y0, x1, y1, x)
Compute linear interpolation.
#define NLOS
Maximum number of LOS points.
#define NR
Maximum number of ray paths.
#define IDXQ(ig)
Indices for volume mixing ratios.
#define RFMLINE
Maximum length of RFM data lines.
#define TMAX
Maximum temperature for source function [K].
#define TMIN
Minimum temperature for source function [K].
#define NW
Maximum number of spectral windows.
#define MAX(a, b)
Macro to determine the maximum of two values.
#define IDXT
Index for temperature.
#define IDXSFZ
Index for surface layer height.
double time[NP]
Time (seconds since 2000-01-01T00:00Z).
double sfeps[NSF]
Surface emissivity.
double k[NW][NP]
Extinction [km^-1].
double sfz
Surface height [km].
double lat[NP]
Latitude [deg].
double lon[NP]
Longitude [deg].
double t[NP]
Temperature [K].
double sfp
Surface pressure [hPa].
double clz
Cloud layer height [km].
int np
Number of data points.
double cldz
Cloud layer depth [km].
double sft
Surface temperature [K].
double z[NP]
Altitude [km].
double clk[NCL]
Cloud layer extinction [km^-1].
double q[NG][NP]
Volume mixing ratio [ppv].
double p[NP]
Pressure [hPa].
Forward model control parameters.
int write_matrix
Write matrix file (0=no, 1=yes).
int nw
Number of spectral windows.
double retp_zmin
Minimum altitude for pressure retrieval [km].
double nu[ND]
Centroid wavenumber of each channel [cm^-1].
double retk_zmax[NW]
Maximum altitude for extinction retrieval [km].
double sfnu[NSF]
Surface layer wavenumber [cm^-1].
char rfmhit[LEN]
HITRAN file for RFM.
char tblbase[LEN]
Basename for table files and filter function files.
char rfmbin[LEN]
Path to RFM binary.
double hydz
Reference height for hydrostatic pressure profile (-999 to skip) [km].
int ret_sfz
Retrieve surface layer height (0=no, 1=yes).
int ctm_co2
Compute CO2 continuum (0=no, 1=yes).
double rett_zmax
Maximum altitude for temperature retrieval [km].
int ret_sfeps
Retrieve surface layer emissivity (0=no, 1=yes).
int ret_sft
Retrieve surface layer temperature (0=no, 1=yes).
int ret_clz
Retrieve cloud layer height (0=no, 1=yes).
int ctm_n2
Compute N2 continuum (0=no, 1=yes).
char fov[LEN]
Field-of-view data file.
char rfmxsc[NG][LEN]
Emitter cross-section files for RFM.
int window[ND]
Window index of each channel.
int ctm_h2o
Compute H2O continuum (0=no, 1=yes).
int formod
Forward model (0=CGA, 1=EGA, 2=RFM).
double retq_zmax[NG]
Maximum altitude for volume mixing ratio retrieval [km].
double retq_zmin[NG]
Minimum altitude for volume mixing ratio retrieval [km].
int ng
Number of emitters.
double clnu[NCL]
Cloud layer wavenumber [cm^-1].
int refrac
Take into account refractivity (0=no, 1=yes).
double rett_zmin
Minimum altitude for temperature retrieval [km].
double sfsza
Solar zenith angle at the surface [deg] (-999=auto).
int nd
Number of radiance channels.
int sftype
Surface treatment (0=none, 1=emissions, 2=downward, 3=solar).
int ret_sfp
Retrieve surface layer pressure (0=no, 1=yes).
double retk_zmin[NW]
Minimum altitude for extinction retrieval [km].
int ncl
Number of cloud layer spectral grid points.
int ctm_o2
Compute O2 continuum (0=no, 1=yes).
int ret_clk
Retrieve cloud layer extinction (0=no, 1=yes).
char emitter[NG][LEN]
Name of each emitter.
int nsf
Number of surface layer spectral grid points.
double rayds
Maximum step length for raytracing [km].
int ret_cldz
Retrieve cloud layer depth (0=no, 1=yes).
int tblfmt
Look-up table file format (1=ASCII, 2=binary).
double raydz
Vertical step length for raytracing [km].
int write_bbt
Use brightness temperature instead of radiance (0=no, 1=yes).
double retp_zmax
Maximum altitude for pressure retrieval [km].
double z[NLOS]
Altitude [km].
double eps[NLOS][ND]
Segment emissivity.
double cgu[NLOS][NG]
Curtis-Godson column density [molecules/cm^2].
double q[NLOS][NG]
Volume mixing ratio [ppv].
double sft
Surface temperature [K].
double cgt[NLOS][NG]
Curtis-Godson temperature [K].
double lon[NLOS]
Longitude [deg].
double ds[NLOS]
Segment length [km].
int np
Number of LOS points.
double u[NLOS][NG]
Column density [molecules/cm^2].
double lat[NLOS]
Latitude [deg].
double src[NLOS][ND]
Segment source function [W/(m^2 sr cm^-1)].
double k[NLOS][ND]
Extinction [km^-1].
double sfeps[ND]
Surface emissivity.
double cgp[NLOS][NG]
Curtis-Godson pressure [hPa].
double t[NLOS]
Temperature [K].
double p[NLOS]
Pressure [hPa].
Observation geometry and radiance data.
double tau[ND][NR]
Transmittance of ray path.
double rad[ND][NR]
Radiance [W/(m^2 sr cm^-1)].
double tplon[NR]
Tangent point longitude [deg].
double vpz[NR]
View point altitude [km].
double vplat[NR]
View point latitude [deg].
double obslon[NR]
Observer longitude [deg].
double obslat[NR]
Observer latitude [deg].
double obsz[NR]
Observer altitude [km].
double tplat[NR]
Tangent point latitude [deg].
double vplon[NR]
View point longitude [deg].
double time[NR]
Time (seconds since 2000-01-01T00:00Z).
double tpz[NR]
Tangent point altitude [km].
int nr
Number of ray paths.
Emissivity look-up tables.
double sr[TBLNS][ND]
Source function radiance [W/(m^2 sr cm^-1)].
double p[ND][NG][TBLNP]
Pressure [hPa].
int nu[ND][NG][TBLNP][TBLNT]
Number of column densities.
int nt[ND][NG][TBLNP]
Number of temperatures.
float eps[ND][NG][TBLNP][TBLNT][TBLNU]
Emissivity.
float u[ND][NG][TBLNP][TBLNT][TBLNU]
Column density [molecules/cm^2].
double t[ND][NG][TBLNP][TBLNT]
Temperature [K].
double st[TBLNS]
Source function temperature [K].
int np[ND][NG]
Number of pressure levels.