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