Line data Source code
1 : /*******************************************************************************
2 : * ALMA - Atacama Large Millimiter Array
3 : * (c) Instituto de Estructura de la Materia, 2009
4 : *
5 : * This library is free software; you can redistribute it and/or
6 : * modify it under the terms of the GNU Lesser General Public
7 : * License as published by the Free Software Foundation; either
8 : * version 2.1 of the License, or (at your option) any later version.
9 : *
10 : * This library is distributed in the hope that it will be useful,
11 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 : * Lesser General Public License for more details.
14 : *
15 : * You should have received a copy of the GNU Lesser General Public
16 : * License along with this library; if not, write to the Free Software
17 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 : *
19 : * "@(#) $Id: ATMRefractiveIndex.cpp Exp $"
20 : *
21 : * who when what
22 : * -------- -------- ----------------------------------------------
23 : * pardo 24/03/09 created
24 : */
25 :
26 : #include "ATMRefractiveIndex.h"
27 :
28 : #include <stdio.h>
29 : #include <iostream>
30 : #include <math.h>
31 :
32 : using namespace std;
33 :
34 : using std::cout;
35 :
36 :
37 : ATM_NAMESPACE_BEGIN
38 :
39 : // Constructors
40 :
41 :
42 140 : RefractiveIndex::RefractiveIndex(){ }
43 :
44 140 : RefractiveIndex::~RefractiveIndex()
45 : {
46 : // rmRefractiveIndex(); // nonexistent method
47 140 : }
48 :
49 52910 : std::complex<double> RefractiveIndex::getRefractivity_o2(double temperature, double pressure, double wvpressure, double frequency){
50 :
51 : static const double abun_18o=0.0020439;
52 : static const double abun_17o=0.0003750;
53 : static const double o2_mixing_ratio=0.2092;
54 :
55 52910 : std::complex<double> ccc = (mkSpecificRefractivity_16o16o(temperature,pressure,wvpressure,frequency)*(1.0-2.0*(abun_18o+abun_17o))*
56 105820 : (1.0-exp(-1556.38*1.43/temperature))+
57 52910 : mkSpecificRefractivity_16o16o_vib(temperature,pressure,wvpressure,frequency)*(1.0-2.0*(abun_18o+abun_17o))*
58 158730 : exp(-1556.38*1.43/temperature)
59 105820 : +mkSpecificRefractivity_16o18o(temperature,pressure,wvpressure,frequency)*2.0*abun_18o
60 105820 : +mkSpecificRefractivity_16o17o(temperature,pressure,wvpressure,frequency)*2.0*abun_17o
61 105820 : )*o2_mixing_ratio*pressure*100.0/(1.380662e-23*temperature);
62 :
63 : // if(frequency<143&&frequency>142.21){cout << "O2: " << frequency << " " << ccc << " " << pressure << endl;}
64 :
65 52910 : return ccc;
66 :
67 : }
68 :
69 0 : std::complex<double> RefractiveIndex::getRefractivity_o2(double temperature,double pressure,double wvpressure,
70 : double frequency,double width,unsigned int n)
71 : {
72 0 : std::complex<double> average(0.0,0.0);
73 : double newfreq;
74 0 : for(unsigned int i=0; i<n; i++){
75 0 : if(n==1){
76 0 : newfreq=frequency;
77 : }else{
78 0 : newfreq=frequency-(width/2.0)+(width/(n-1))*i;
79 : }
80 0 : average=average+getRefractivity_o2(temperature,pressure,wvpressure,newfreq);
81 : }
82 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
83 0 : return averagen;
84 : }
85 :
86 :
87 :
88 52910 : std::complex<double> RefractiveIndex::getRefractivity_h2o(double temperature, double pressure, double wvpressure, double frequency){
89 :
90 : static const double abun_18o=0.0020439;
91 : static const double abun_17o=0.0003750;
92 : static const double abun_D=0.000298444;
93 : static const double mmol_h2o=18.005059688;
94 :
95 52910 : return (mkSpecificRefractivity_hh16o(temperature,pressure,wvpressure,frequency)*(1-abun_18o-abun_17o-2.0*abun_D)*
96 105820 : (1.0-exp(-2322.92/temperature))+
97 52910 : mkSpecificRefractivity_hh16o_v2(temperature,pressure,wvpressure,frequency)*(1-abun_18o-abun_17o-2.0*abun_D)*
98 158730 : exp(-2322.92/temperature)+
99 105820 : mkSpecificRefractivity_hh18o(temperature,pressure,wvpressure,frequency)*abun_18o+
100 105820 : mkSpecificRefractivity_hh17o(temperature,pressure,wvpressure,frequency)*abun_17o+ //)* //+
101 105820 : mkSpecificRefractivity_hdo(temperature,pressure,frequency)*2.0*abun_D)*
102 105820 : (6.023e23*wvpressure*217.0/(temperature*mmol_h2o));
103 : }
104 :
105 0 : std::complex<double> RefractiveIndex::getRefractivity_h2o(double temperature,double pressure,double wvpressure,
106 : double frequency,double width,unsigned int n)
107 : {
108 0 : std::complex<double> average(0.0,0.0);
109 : double newfreq;
110 0 : for(unsigned int i=0; i<n; i++){
111 0 : if(n==1){
112 0 : newfreq=frequency;
113 : }else{
114 0 : newfreq=frequency-(width/2.0)+(width/(n-1))*i;
115 : }
116 0 : average=average+getRefractivity_h2o(temperature,pressure,wvpressure,newfreq);
117 : }
118 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
119 0 : return averagen;
120 : }
121 :
122 :
123 52910 : std::complex<double> RefractiveIndex::getSpecificRefractivity_o3(double temperature, double pressure, double frequency){
124 :
125 : static const double abun_18o=0.0020439;
126 : static const double abun_17o=0.0003750;
127 : static const double Tex_nu2=1009.5; //(in Kelvin) Degeneracy=1 http://www.cfa.harvard.edu/hitran/vibrational.html
128 : static const double Tex_nu1=1588.41; //(in Kelvin) Degeneracy=1
129 : static const double Tex_nu3=1500.48; //(in Kelvin) Degeneracy=1
130 :
131 :
132 52910 : double pob_v2=exp(-Tex_nu2/temperature);
133 52910 : double pob_v1=exp(-Tex_nu1/temperature);
134 52910 : double pob_v3=exp(-Tex_nu3/temperature);
135 :
136 :
137 : std::complex<double> ccc =
138 0 : ((1-pob_v2-pob_v1-pob_v3)/(1.0+3.0*(abun_18o+abun_17o)))*
139 : (
140 52910 : mkSpecificRefractivity_16o16o16o(temperature,pressure,frequency)
141 105820 : +mkSpecificRefractivity_16o16o17o(temperature,pressure,frequency)*(2*abun_17o)
142 105820 : +mkSpecificRefractivity_16o16o18o(temperature,pressure,frequency)*(2*abun_18o)
143 105820 : +mkSpecificRefractivity_16o17o16o(temperature,pressure,frequency)*(abun_17o)
144 105820 : +mkSpecificRefractivity_16o18o16o(temperature,pressure,frequency)*(abun_18o)
145 52910 : )
146 105820 : +mkSpecificRefractivity_16o16o16o_v2(temperature,pressure,frequency)*pob_v2
147 105820 : +mkSpecificRefractivity_16o16o16o_v1(temperature,pressure,frequency)*pob_v1
148 105820 : +mkSpecificRefractivity_16o16o16o_v3(temperature,pressure,frequency)*pob_v3; //m^2
149 :
150 : //cout << "temperature=" << temperature << " pob_v2=" << pob_v2 << endl;
151 :
152 52910 : return ccc;
153 :
154 : }
155 :
156 0 : std::complex<double> RefractiveIndex::getSpecificRefractivity_o3(double temperature,double pressure,double frequency,
157 : double width,unsigned int n)
158 : {
159 0 : std::complex<double> average(0.0,0.0);
160 : double newfreq;
161 0 : for(unsigned int i=0; i<n; i++){
162 0 : if(n==1){
163 0 : newfreq=frequency;
164 : }else{
165 0 : newfreq=frequency-(width/2.0)+(width/(n-1))*i;
166 : }
167 0 : average=average+getSpecificRefractivity_o3(temperature,pressure,newfreq);
168 : }
169 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
170 0 : return averagen;
171 : }
172 :
173 687830 : unsigned int RefractiveIndex::vpIndex(double nu)
174 : {
175 : unsigned int vp;
176 687830 : if(nu<1.0){
177 0 : vp=0;
178 : }else{
179 687830 : vp = (int) round((nu+1.0)/2.0);
180 687830 : vp=vp-1;
181 : }
182 687830 : return vp;
183 : }
184 :
185 39119852 : double RefractiveIndex::linebroadening(double nu, double temp, double pr, double mmol, double dv0_lines, double texp_lines){
186 :
187 : // pr = pp.get(Pressure::UnitMilliBar);
188 : // temp = tt.get(Temperature::UnitKelvin);
189 : double dv0;
190 : double dv;
191 :
192 39119852 : dv0=dv0_lines*pr*pow(300/temp,texp_lines); // EN GHz
193 :
194 39119852 : double beta_dop=4.30e-7*nu*sqrt(temp/mmol);
195 39119852 : if((dv0/beta_dop)<1.25){
196 0 : dv=0.535*dv0+sqrt(0.217*pow(dv0,2)+0.6931*pow(beta_dop,2)); // "Atmospheric Remote Sensing", Janssen, pag. 59
197 : }else{
198 39119852 : dv=dv0;
199 : }
200 39119852 : return dv; //in GHz
201 : }
202 :
203 :
204 3831293 : double RefractiveIndex::linebroadening_o2(double nu, double temp, double pr, double eh2o, double mmol, double ensanche1, double ensanche2){
205 :
206 : // pr = pp.get(Pressure::UnitMilliBar);
207 : // eh2o = ph2o.get(Pressure::UnitMilliBar);
208 : // temp = tt.get(Temperature::UnitKelvin);
209 : // nu in GHz
210 : double dv0;
211 : double dv;
212 :
213 3831293 : dv0=1e-3*ensanche1*((pr-eh2o)*pow(300/temp,ensanche2)+1.1*eh2o*300/temp); // EN GHz
214 :
215 3831293 : double beta_dop=4.30e-7*nu*sqrt(temp/mmol);
216 :
217 3831293 : if((dv0/beta_dop)<1.25){
218 0 : dv=0.535*dv0+sqrt(0.217*pow(dv0,2)+0.6931*pow(beta_dop,2)); // "Atmospheric Remote Sensing", Janssen, pag. 59
219 : // cout << pp.get(Pressure::UnitMilliBar) << "mb: usando beta_dop" << endl;
220 : }else{
221 3831293 : dv=dv0;
222 : }
223 :
224 3831293 : return dv; // in GHz
225 :
226 : }
227 :
228 :
229 1979443 : double RefractiveIndex::interf_o2(double temp, double pp, double ensanche3,double ensanche4){
230 :
231 : // temp = tt.get(Temperature::UnitKelvin);
232 :
233 1979443 : double interf=1e-3*(ensanche3+ensanche4*(300/temp))*pp*pow(300/temp,0.8);
234 1979443 : return interf; // GHz
235 :
236 : }
237 :
238 :
239 7810189 : double RefractiveIndex::linebroadening_water(double nu, double temp, double pr, double eh2o, double ensanche1, double ensanche2, double ensanche3, double ensanche4){
240 :
241 : static const double mmol=18.0;
242 :
243 : // nu GHz
244 : // pr = pp.get(Pressure::UnitMilliBar);
245 : // eh2o = ph2o.get(Pressure::UnitMilliBar);
246 : // temp = tt.get(Temperature::UnitKelvin);
247 : double dv0;
248 : double dv;
249 :
250 :
251 7810189 : if(ensanche2>0){
252 7810189 : dv0=1e-3*ensanche1*((pr-eh2o)*pow(300/temp,ensanche3)+ensanche2*eh2o*pow(300.0/temp,ensanche4)); // EN GHz
253 : }else{
254 0 : dv0=1e-3*ensanche1*((pr-eh2o)*pow(300/temp,0.68)+4.50*eh2o*pow(300.0/temp,0.80)); // EN GHz
255 : }
256 :
257 7810189 : double beta_dop=3.58e-7*nu*sqrt(temp/mmol);
258 :
259 7810189 : if((dv0/beta_dop)<1.25){
260 0 : dv=0.535*dv0+sqrt(0.217*pow(dv0,2)+0.6931*pow(beta_dop,2)); // "Atmospheric Remote Sensing", Janssen, pag. 59
261 : // cout << pp.get(Pressure::UnitMilliBar) << "mb: usando beta_dop" << endl;
262 : }else{
263 7810189 : dv=dv0;
264 : }
265 :
266 : // cout << nu.get(Frequency::UnitGigaHertz) << " " << pr << " " << eh2o << " " << dv << endl;
267 :
268 7810189 : return dv; // GHz
269 : }
270 :
271 108545 : double RefractiveIndex::linebroadening_hh18o_hh17o(double temp, double pr, double eh2o, double dv0, double dvlm, double temp_exp){
272 :
273 : // pr = pp.gPressure::UnitMilliBar);
274 : // eh2o = ph2o.get(Pressure::UnitMilliBar);
275 : // temp = tt.get(Temperature::UnitKelvin);
276 : double dv;
277 108545 : double rho=18.0*eh2o*100/(8.315727226*temp); // Na*Kb=8.315727226
278 108545 : double c2=4.6E-03*rho*temp/pr;
279 :
280 108545 : dv=(dv0*(pr/1013.0)/(pow(temp/300.0,temp_exp)))*(1.+c2*(dvlm/dv0-1.));
281 :
282 108545 : return dv; // GHz
283 : }
284 :
285 : // std::complex<double> RefractiveIndex::lineshape(Frequency nu, Frequency linefreq, Frequency linebroad, Frequency interf){
286 51053583 : std::complex<double> RefractiveIndex::lineshape(double v, double vl, double dv, double itf){
287 :
288 : // *********************************************************************************
289 : // * CALCULATION OF THIS PART OF THE COMPLEX VAN-VLECK WEISSKOPF LINE PROFILE: *
290 : // * (1-i*itf)/(vl-v-idv) - (1+i*itf)/(vl+v+idv) *
291 : // * FOR MOST CASES itf=0 AND THEN THE REAL AND IMAGINARY PARTS ARE: *
292 : // * {[dv/((v-vl)**2+dv**2)]+[1/((v+vl)**2+dv**2)]} IMAG (UNITS 1/freq) *
293 : // * {[(vl-v)/((v-vl)**2+dv**2)]-[(vl+v)/((v+vl)**2+dv**2)]} REAL (UNITS 1/freq) *
294 : // *********************************************************************************
295 :
296 : // dv = linebroad.get(Frequency::UnitGigaHertz); LINE BROADENING PARAMETER
297 : // itf = interf.get(Frequency::UnitGigaHertz); LINE INTERFERENCE
298 : // vl = linefreq.get(Frequency::UnitGigaHertz); FREQUENCY OF RESONANT LINE
299 : // v = nu.get(Frequency::UnitGigaHertz); CURRENT WORKING FREQUENCY
300 :
301 : // double lf=dv*itf;
302 : // double dv2=dv*dv;
303 : // double dv2v2=dv2+v*v;
304 : // double vl2=vl*vl;
305 : // double vvl=2*v*vl;
306 : // double aa=dv2v2+vl2;
307 : // double a1=aa-vvl;
308 : // double a2=aa+vvl;
309 :
310 : // double fv=((dv-(vl-v)*itf)/a1+(dv-(vl+v)*itf)/a2); // ! line profile (imaginary)
311 : // ! in 1/frec units
312 : // double frv=((vl-v+lf)/a1-(vl+v+lf)/a2); // ! delay profile (real part)
313 :
314 : // return std::complex<double> (frv,fv)*(v/vl);
315 :
316 102107166 : return std::complex<double> (v/vl)*(std::complex<double>(1.0,-itf)/std::complex<double>(vl-v,-dv)
317 204214332 : - std::complex<double>(1.0,itf)/std::complex<double>(vl+v, dv) );
318 : }
319 :
320 : ////////////////////////////////////////////////////////////////////////////////
321 : // ATM 1: 16o16o 7: no2 13: hh18o 19: 16o16o16o_v3 //
322 : // opacity 2: 16o16o_vib 8: so2 14: hh17o 20: 16o16o18o //
323 : // sources 3: 16o18o 9: cnth2o 15: hdo 21: 16o16o17o //
324 : // 4: 16o17o 10: cntdry 16: 16o16o16o 22: 16o18o16o //
325 : // Jan-24 5: co 11: hh16o 17: 16o16o16o_v2 23: 16o17o16o //
326 : // 2011 6: n2o 12: hh16o_v2 18: 16o16o16o_v1 //
327 : ////////////////////////////////////////////////////////////////////////////////
328 :
329 :
330 0 : std::complex<double> RefractiveIndex::mkSpecificRefractivity(unsigned int species,
331 : double tt, double pp, double eh2o,
332 : double nu, double width, unsigned int n)
333 : {
334 0 : std::complex<double> average(0.0,0.0);
335 : double newfreq;
336 0 : for(unsigned int i=0; i<n; i++){
337 0 : if(n==1){
338 0 : newfreq=nu;
339 : }else{
340 0 : newfreq=nu-(width/2.0)+(width/(n-1))*i;
341 : }
342 : // average=average+mkSpecificRefractivity(species,tt,pp,eh2o,nu);
343 0 : average=average+mkSpecificRefractivity(species,tt,pp,eh2o,newfreq); // 2015-11-30 replace nu with newfreq
344 : }
345 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
346 0 : return averagen;
347 : }
348 :
349 317460 : std::complex<double> RefractiveIndex::mkSpecificRefractivity(unsigned int species,
350 : double tt, double pp, double eh2o,
351 : double nu)
352 : {
353 317460 : if(species==1){return mkSpecificRefractivity_16o16o(tt,pp,eh2o,nu);}
354 317460 : if(species==2){return mkSpecificRefractivity_16o16o_vib(tt,pp,eh2o,nu);}
355 317460 : if(species==3){return mkSpecificRefractivity_16o18o(tt,pp, eh2o, nu);}
356 317460 : if(species==4){return mkSpecificRefractivity_16o17o(tt, pp, eh2o, nu);}
357 317460 : if(species==5){return mkSpecificRefractivity_co(tt, pp, nu);}
358 264550 : if(species==6){return mkSpecificRefractivity_n2o(tt, pp, nu);}
359 211640 : if(species==7){return mkSpecificRefractivity_no2(tt, pp, nu);}
360 158730 : if(species==8){return mkSpecificRefractivity_so2(tt, pp, nu);}
361 105820 : if(species==9){return mkSpecificRefractivity_cnth2o(tt, pp, eh2o, nu);}
362 52910 : if(species==10){return mkSpecificRefractivity_cntdry(tt, pp, eh2o, nu);}
363 0 : if(species==11){return mkSpecificRefractivity_hh16o(tt, pp, eh2o, nu);}
364 0 : if(species==12){return mkSpecificRefractivity_hh16o_v2(tt, pp, eh2o, nu);}
365 0 : if(species==13){return mkSpecificRefractivity_hh18o(tt, pp, eh2o, nu);}
366 0 : if(species==14){return mkSpecificRefractivity_hh17o(tt, pp, eh2o, nu);}
367 : //if(species==15){return mkSpecificRefractivity_hdo(tt, pp, eh2o, nu);} // eh2o removed (unused parameter)
368 0 : if(species==15){return mkSpecificRefractivity_hdo(tt, pp, nu);}
369 0 : if(species==16){return mkSpecificRefractivity_16o16o16o(tt, pp, nu);}
370 0 : if(species==17){return mkSpecificRefractivity_16o16o16o_v2(tt, pp, nu);}
371 0 : if(species==18){return mkSpecificRefractivity_16o16o16o_v1(tt, pp, nu);}
372 0 : if(species==19){return mkSpecificRefractivity_16o16o16o_v3(tt, pp, nu);}
373 0 : if(species==20){return mkSpecificRefractivity_16o16o18o(tt, pp, nu);}
374 0 : if(species==21){return mkSpecificRefractivity_16o16o17o(tt, pp, nu);}
375 0 : if(species==22){return mkSpecificRefractivity_16o18o16o(tt, pp, nu);}
376 0 : if(species==23){return mkSpecificRefractivity_16o17o16o(tt, pp, nu);}
377 0 : std::complex<double> aa(0.0,0.0);
378 0 : return aa;
379 : }
380 :
381 :
382 : //////////////////////// Opacity Source Number: 8 //////////////////////////////
383 :
384 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_so2(double tt, double pp, double nu){
385 :
386 :
387 : static const double fre[594]={
388 : 0.52147, 2.83885, 3.04563, 4.02705, 4.19571, 4.54605, 6.83736, 6.84843, 7.16957, 7.50320, 8.42030, 8.91115, 9.40319, 11.78890, 12.13252, 12.25659, 14.58779, 16.68105,
389 : 17.54005, 19.63706, 20.33545, 22.48252, 23.03485, 23.41427, 24.03967, 24.08350, 24.31960, 24.91578, 25.04943, 25.39279, 26.77654, 27.93237, 28.17912, 28.85797, 29.32132, 30.20556,
390 : 31.08995, 31.92232, 34.09779, 36.06531, 36.33809, 37.35175, 38.51826, 38.90964, 39.44715, 41.17747, 42.68011, 43.01623, 43.17812, 44.05289, 44.87585, 47.66058, 47.91339, 48.12038,
391 : 48.95807, 51.18525, 51.73671, 52.05180, 52.18853, 53.01527, 53.52887, 54.13910, 54.63360, 58.04268, 59.22487, 59.88371, 61.48988, 61.63615, 64.27712, 65.71408, 66.72482, 66.76118,
392 : 67.01127, 67.84868, 68.97216, 69.46413, 69.48032, 69.57593, 69.65360, 70.13439, 72.43729, 72.66803, 72.75822, 73.43035, 74.86656, 76.41213, 76.53999, 77.92675, 82.40958, 82.75315,
393 : 82.95197, 83.68810, 84.32088, 85.24708, 86.15376, 86.63912, 86.82893, 87.92624, 90.00505, 90.54808, 91.55049, 94.06474, 97.46642, 97.70237, 97.99401, 98.97634, 99.39246,100.87813,
394 : 102.69010,102.70750,104.02941,104.03355,104.23930,106.67484,107.06014,107.84351,108.91541,108.95594,109.75763,110.36378,111.75494,111.87567,113.97066,114.56530,115.31760,116.98043,
395 : 118.57740,118.99428,119.48306,120.02345,123.05772,123.19474,124.86480,125.42722,126.96254,126.98068,127.42819,128.10397,128.60512,129.10574,129.51482,130.67995,130.85936,131.01485,
396 : 131.27490,132.74484,134.00482,134.20367,134.94334,135.69601,135.96306,139.35506,139.47455,140.30617,143.05710,143.35788,146.39380,146.55008,146.60553,147.23933,150.38110,150.48698,
397 : 150.87881,151.37868,153.67711,154.37321,155.38968,157.13519,158.19980,158.84526,159.44798,160.34300,160.54305,160.82782,163.11934,163.56773,163.60553,163.92471,165.12367,165.14465,
398 : 165.22543,166.38710,167.36740,168.78999,170.29376,170.75459,171.01808,171.03688,174.46376,175.10136,175.27574,176.29582,176.46619,179.00612,179.56100,180.04527,182.70601,183.58279,
399 : 184.96985,185.27838,187.05534,187.33788,187.37022,187.44678,188.65498,190.14864,191.02101,191.06718,192.23622,192.65096,193.60941,194.49162,195.08032,195.32047,197.14211,197.58531,
400 : 198.84799,199.41592,200.28749,200.80931,203.39146,203.57016,204.24680,204.38422,205.30055,207.42152,208.30310,208.70035,209.93608,211.05316,213.06850,213.70328,214.45181,214.68942,
401 : 214.72833,215.09442,216.64333,217.63318,219.27603,221.96521,222.86903,223.43456,223.88359,224.26479,224.47337,225.15372,226.30006,226.50830,227.33588,229.34766,229.74986,230.96532,
402 : 234.18713,234.35303,234.42163,235.15172,236.21666,237.06886,237.50179,238.99258,240.94278,241.61580,243.08768,243.24550,244.25420,245.33923,245.56343,247.16985,248.05740,248.83086,
403 : 248.99515,250.81686,251.19966,251.21060,252.56393,253.93600,253.95660,254.19490,254.28055,254.28334,255.55331,255.81860,255.95807,256.24695,257.09998,257.31879,258.38882,258.66702,
404 : 258.94223,259.59955,260.26941,262.25693,262.33401,262.52478,262.96979,263.21649,263.54404,265.48209,265.60849,266.94342,267.42841,267.53748,267.71994,268.16837,270.60559,271.52899,
405 : 273.46268,273.75296,273.98270,275.24020,275.37555,277.08588,278.25101,280.80731,281.40262,281.68909,281.76260,282.03656,282.29279,282.63629,283.46475,285.74362,286.41626,286.65143,
406 : 287.48553,288.51996,290.33868,292.88263,293.71786,296.16870,296.53549,296.80597,297.25723,297.78262,298.57632,299.31683,300.27353,301.89664,302.23627,306.30380,306.73886,307.18549,
407 : 309.54858,310.01730,312.25842,312.54257,313.27972,313.40408,313.41232,313.66086,316.09891,316.48105,317.25043,318.23843,319.26062,319.27725,319.69891,321.33017,321.42068,321.78265,
408 : 322.47549,323.02646,323.52637,325.90112,325.96033,326.41226,326.86752,327.21698,329.64603,329.68954,331.58023,332.09140,332.50525,333.04352,334.67334,336.08929,336.11356,336.66959,
409 : 338.30603,338.61182,338.86969,340.31644,341.27557,341.40329,341.67410,342.76175,345.14896,345.33853,345.44907,346.52390,346.65219,348.38782,349.22714,349.78360,350.86279,351.25723,
410 : 351.87390,352.63910,355.04553,355.15479,355.70557,356.04065,356.75522,357.16541,357.24121,357.38760,357.58148,357.67184,357.89246,357.92587,357.96295,358.01315,358.03790,358.21564,
411 : 358.44186,359.15118,359.77075,360.29053,360.72186,363.15930,363.89084,363.92581,364.95016,366.21448,368.63004,368.76419,370.10861,371.17245,372.19308,375.17828,375.25922,375.37115,
412 : 376.64117,377.97897,379.78131,380.12445,380.43369,380.49139,382.97345,383.01794,384.40851,384.44281,384.93539,385.02859,385.87186,386.60449,386.73801,387.56464,388.25970,388.32281,
413 : 388.91223,389.32504,391.70807,394.43689,394.43954,394.58194,394.66473,394.77649,396.07956,397.00986,397.48270,398.91498,399.29984,399.48795,399.91473,401.65280,403.15308,403.82706,
414 : 407.60602,407.71667,408.51663,408.91190,410.60822,411.18625,413.37518,413.92636,414.25943,414.74249,416.82565,416.95471,418.81583,419.01917,419.28638,419.76932,421.45184,423.20920,
415 : 423.51370,427.13766,427.68845,428.76810,429.86411,430.19373,430.22870,430.23233,430.34766,430.62994,431.00177,433.16010,433.70990,434.58508,436.39667,436.57852,438.11185,438.70535,
416 : 439.63260,440.41272,440.85318,441.39597,442.55783,443.17911,443.79178,446.52524,447.48734,449.38419,450.04132,451.49039,452.24777,452.36996,452.78699,453.12976,453.47855,453.70404,
417 : 453.71707,454.09821,455.14191,455.15967,455.24725,455.34827,455.76855,455.81012,456.35239,457.31552,457.37933,457.46689,458.09818,458.38678,458.53168,458.61191,459.07056,459.25800,
418 : 459.52841,459.66837,459.79990,459.87900,459.93613,459.96918,459.98718,461.87595,463.01144,463.32639,464.28793,465.41611,465.62198,465.75122,465.88190,466.78979,466.88785,469.42245,
419 : 471.19046,471.55963,471.89441,472.03772,472.13968,472.52078,472.70630,472.85135,475.19659,475.86591,476.62155,477.46619,478.82608,479.73309,481.16629,481.23663,482.50317,483.99429,
420 : 484.20007,484.22736,484.27087,485.20999,488.72867,488.77545,489.81982,490.73245,491.88474,491.93472,494.55759,494.77975,495.84152,496.81067,498.97610,500.43149,500.65533,501.10776};
421 :
422 :
423 :
424 : static const double flin[594]={
425 : 6.01, 9.11, 6.78, 2.85, 1.07, 1.87, 4.47,5.25,2.02,7.55,0.782, 4.28, 2.79, 0.91, 3.49,0.522E+00,0.621E+00,0.505E+01,0.698E+01,0.581E+01,0.183E+01,0.372E+01,0.621E+01,0.952E+00,
426 : 0.332E+01,0.935E+00,0.658E+01,0.141E+01,0.543E+01,0.161E+01,0.385E+01,0.116E+01,0.735E+01,0.207E+01,0.167E+01,0.474E+00,0.720E+00,0.251E+01,0.408E+01,0.485E+01,0.468E+01,0.311E+01,
427 : 0.236E+01,0.131E+01,0.717E+01,0.561E+01,0.640E+01,0.196E+01,0.144E+01,0.808E+00,0.638E+01,0.483E+01,0.239E+01,0.173E+01,0.714E+01,0.563E+01,0.310E+01,0.152E+01,0.388E+01,0.140E+01,
428 : 0.246E+01,0.887E+00,0.359E+00,0.464E+01,0.420E+01,0.736E+01,0.541E+01,0.322E+01,0.415E+01,0.617E+01,0.325E+01,0.659E+01,0.580E+01,0.291E+01,0.554E+01,0.212E+01,0.694E+01,0.100E+01,
429 : 0.405E+00,0.528E+00,0.579E+00,0.412E+01,0.301E+01,0.163E+01,0.367E+01,0.240E+01,0.169E+01,0.444E+01,0.520E+01,0.755E+01,0.193E+01,0.638E+01,0.505E+01,0.677E+01,0.597E+01,0.113E+01,
430 : 0.276E+00,0.516E+01,0.673E+01,0.326E+01,0.269E+01,0.346E+01,0.600E+01,0.940E+00,0.201E+01,0.423E+01,0.437E+01,0.161E+00,0.499E+01,0.773E+01,0.201E+01,0.299E+01,0.670E+01,0.576E+01,
431 : 0.310E+01,0.170E+01,0.755E+00,0.614E+01,0.248E+01,0.652E+01,0.242E+01,0.695E+01,0.729E+01,0.281E+01,0.324E+01,0.460E+01,0.369E+01,0.401E+01,0.479E+00,0.206E+01,0.711E+00,0.478E+01,
432 : 0.149E+01,0.218E+00,0.555E+01,0.543E+01,0.450E+01,0.711E+01,0.990E+01,0.338E+01,0.779E+01,0.631E+01,0.449E+01,0.664E+01,0.226E+01,0.117E+02,0.569E+01,0.708E+01,0.303E+01,0.313E+01,
433 : 0.541E+01,0.505E+00,0.380E+01,0.383E+01,0.130E+02,0.457E+01,0.635E+01,0.127E+01,0.227E+01,0.534E+01,0.204E+01,0.645E+01,0.610E+01,0.871E+00,0.250E+01,0.687E+01,0.281E+01,0.447E+01,
434 : 0.144E+01,0.730E+01,0.358E+01,0.136E+02,0.303E+00,0.643E+01,0.372E+01,0.435E+01,0.641E+01,0.563E+01,0.105E+01,0.246E+01,0.443E+01,0.661E+00,0.512E+01,0.179E+00,0.408E+00,0.182E+01,
435 : 0.589E+01,0.743E+01,0.666E+01,0.259E+01,0.330E+01,0.301E+01,0.430E+01,0.127E+00,0.337E+01,0.422E+01,0.458E+01,0.414E+01,0.136E+02,0.838E+00,0.397E+01,0.352E+01,0.491E+01,0.491E+01,
436 : 0.400E+01,0.160E+01,0.670E+01,0.568E+01,0.575E+01,0.148E+01,0.596E+01,0.644E+01,0.238E+01,0.177E+02,0.154E+02,0.574E+01,0.667E+01,0.315E+01,0.194E+02,0.617E+01,0.843E+01,0.392E+01,
437 : 0.130E+02,0.630E+00,0.455E+01,0.469E+01,0.763E+01,0.167E+01,0.139E+01,0.546E+01,0.204E+02,0.772E+01,0.623E+01,0.106E+02,0.216E+01,0.152E+00,0.132E+02,0.700E+01,0.293E+01,0.771E+01,
438 : 0.359E+00,0.370E+01,0.433E+00,0.462E+01,0.594E+00,0.497E+01,0.861E+01,0.572E+01,0.447E+01,0.117E+01,0.689E+01,0.524E+01,0.207E+02,0.601E+01,0.194E+01,0.171E+01,0.605E+01,0.690E+01,
439 : 0.678E+01,0.271E+01,0.599E+01,0.212E+01,0.253E+00,0.348E+01,0.105E+02,0.486E+01,0.544E+01,0.425E+01,0.527E+01,0.961E+00,0.554E+01,0.503E+01,0.963E+01,0.414E+01,0.537E+01,0.611E+01,
440 : 0.172E+01,0.580E+01,0.289E+01,0.127E+02,0.161E+01,0.699E+01,0.891E+00,0.226E+01,0.348E+01,0.657E+01,0.255E+02,0.249E+01,0.465E+01,0.233E+02,0.415E+01,0.578E+01,0.101E+00,0.134E+00,
441 : 0.326E+01,0.521E+01,0.203E+02,0.271E+02,0.699E+01,0.404E+01,0.473E+01,0.687E+01,0.206E+02,0.757E+00,0.481E+01,0.267E+01,0.151E+01,0.548E+01,0.558E+01,0.788E+01,0.324E+00,0.635E+01,
442 : 0.227E+01,0.180E+02,0.545E+00,0.277E+02,0.116E+02,0.187E+01,0.588E+01,0.304E+01,0.126E+02,0.878E+01,0.573E+01,0.382E+01,0.562E+00,0.779E+01,0.459E+01,0.129E+01,0.536E+01,0.123E+02,
443 : 0.155E+02,0.613E+01,0.698E+01,0.206E+01,0.332E+01,0.954E+01,0.197E+02,0.561E+01,0.283E+01,0.360E+01,0.380E+00,0.276E+02,0.121E+00,0.437E+01,0.109E+01,0.134E+02,0.249E+01,0.514E+01,
444 : 0.567E+01,0.137E+02,0.102E+02,0.591E+01,0.184E+01,0.730E+01,0.669E+01,0.313E+02,0.334E+02,0.147E+02,0.650E+01,0.261E+01,0.593E+01,0.409E+01,0.584E+01,0.338E+01,0.217E+00,0.297E+00,
445 : 0.116E+02,0.285E+02,0.415E+01,0.346E+02,0.884E+00,0.570E+01,0.259E+01,0.492E+01,0.186E+01,0.107E+02,0.570E+01,0.163E+01,0.101E+02,0.976E+01,0.647E+01,0.120E+02,0.239E+01,0.270E+02,
446 : 0.256E+02,0.190E+02,0.846E-01,0.503E+01,0.316E+01,0.866E+01,0.157E+02,0.711E+01,0.393E+01,0.349E+02,0.690E+00,0.275E+01,0.736E+01,0.470E+01,0.611E+01,0.111E+00,0.548E+01,0.142E+01,
447 : 0.489E+01,0.670E+01,0.793E+01,0.549E+01,0.366E+01,0.427E+01,0.303E+01,0.238E+01,0.916E+01,0.168E+01,0.916E+00,0.167E+02,0.625E+01,0.110E+02,0.104E+02,0.228E+02,0.217E+01,0.116E+02,
448 : 0.583E+01,0.576E+01,0.294E+01,0.618E+01,0.127E+02,0.371E+01,0.506E+00,0.290E+01,0.448E+01,0.277E+00,0.526E+01,0.121E+01,0.138E+02,0.603E+01,0.345E+02,0.196E+01,0.178E+02,0.203E+02,
449 : 0.261E+02,0.669E+01,0.272E+01,0.366E+02,0.118E+02,0.113E+02,0.119E+02,0.759E+01,0.763E+01,0.147E+02,0.349E+01,0.309E+01,0.185E+02,0.338E+00,0.426E+01,0.188E+02,0.698E+01,0.167E+01,
450 : 0.101E+01,0.504E+01,0.664E+01,0.579E+01,0.581E+01,0.103E+00,0.335E+02,0.175E+01,0.182E+02,0.155E+02,0.583E+01,0.251E+01,0.924E+01,0.327E+01,0.190E+00,0.878E+01,0.323E+01,0.405E+01,
451 : 0.114E+02,0.817E+00,0.482E+01,0.198E+02,0.164E+02,0.559E+01,0.154E+01,0.161E+02,0.636E+01,0.304E+02,0.260E+00,0.229E+01,0.344E+01,0.306E+01,0.725E-01,0.118E+02,0.253E+02,0.140E+02,
452 : 0.208E+02,0.111E+02,0.148E+02,0.383E+01,0.581E+01,0.633E+00,0.460E+01,0.349E+01,0.537E+01,0.181E+02,0.134E+01,0.614E+01,0.166E+02,0.133E+02,0.960E-01,0.583E+01,0.208E+01,0.275E+02,
453 : 0.116E+02,0.284E+01,0.119E+02,0.218E+02,0.361E+01,0.350E+01,0.106E+02,0.461E+00,0.797E+01,0.438E+01,0.138E+02,0.151E+02,0.357E+01,0.125E+02,0.131E+02,0.112E+02,0.164E+02,0.935E+01,
454 : 0.379E+01,0.515E+01,0.997E+01,0.811E+01,0.114E+01,0.872E+01,0.593E+01,0.749E+01,0.689E+01,0.177E+02,0.628E+01,0.567E+01,0.505E+01,0.443E+01,0.380E+01,0.314E+01,0.246E+01,0.173E+01,
455 : 0.932E+00,0.187E+01,0.139E+01,0.170E+02,0.188E+02,0.246E+00,0.583E+01,0.229E+02,0.263E+01,0.107E+02,0.251E+02,0.339E+01,0.117E+02,0.304E+00,0.162E+02,0.755E+01,0.758E+01,0.416E+01,
456 : 0.199E+02,0.370E+01,0.493E+01,0.116E+02,0.944E+00,0.571E+01,0.584E+01,0.247E+02,0.166E+01,0.902E-01,0.152E+02,0.179E+02,0.208E+02,0.239E+02,0.415E+01,0.241E+01,0.230E+02,0.317E+01,
457 : 0.172E+02,0.169E+00,0.394E+01,0.385E+01,0.471E+01,0.367E+01,0.759E+00,0.549E+01,0.216E+02,0.146E+01,0.584E+01,0.249E+02};
458 :
459 : static const double el[594]={
460 : 839.1, 350.8,1069.2, 196.8, 733.2, 82.6, 462.2, 636.8, 119.0,1326.8, 82.2, 435.9, 180.1, 60.3, 293.7, 2.7, 107.4, 605.5,
461 : 1109.9, 803.1, 93.0, 315.5, 875.1, 22.5, 272.8, 41.9,1028.4,1161.6, 668.1, 35.5, 337.7, 302.4,1281.6, 147.8, 7.8, 136.1,
462 : 401.6, 163.0, 409.8, 575.0, 489.0, 232.9, 147.9, 662.1,1151.4, 767.9, 912.1, 180.5, 257.8, 27.1, 988.7, 516.7, 105.8, 217.2,
463 : 1237.3, 700.4, 252.1, 70.2, 384.9, 61.0, 2.7, 805.8, 168.2, 545.3, 9.2, 1193.9, 733.7, 214.2, 384.9, 949.9, 272.8, 949.9,
464 : 733.8, 232.9, 19.2, 132.6,1193.9, 0.0, 12.0, 15.6, 455.6, 360.8, 15.7, 594.7, 360.8, 51.0,1071.4, 516.8, 700.4,1237.3,
465 : 119.0, 32.7, 545.4, 988.7, 912.1, 51.0, 203.6, 575.0,1151.4, 316.7, 214.3, 337.8, 767.9, 43.1, 531.1, 488.9, 435.9, 7.8,
466 : 668.2,1281.6, 2.7, 132.5, 49.7, 875.1, 364.3, 105.8, 881.8, 803.1, 196.8,1109.9, 471.5,1028.4,1372.4, 415.9, 315.6, 27.1,
467 : 252.1, 462.2, 513.0, 984.9, 35.5, 636.7, 94.0, 242.5, 839.1, 637.1, 409.8, 1069.2, 76.4, 70.2, 54.7,1069.3, 490.7, 70.1,
468 : 180.1, 101.7, 36.7,1327.3, 294.3, 9.2, 605.5, 29.2, 436.3, 22.5, 130.6, 606.3, 839.2, 82.8, 12.0, 804.0, 164.5, 876.2,
469 : 1029.7, 5.3, 902.3,1283.0, 273.9, 549.4, 7.7, 1110.8, 411.4, 163.1, 23.6, 42.0, 163.0, 576.7, 93.9, 702.9, 72.7, 15.7,
470 : 19.2, 961.1, 769.9, 284.7, 573.8, 149.7, 990.9,1153.3,1239.6, 254.6, 27.1, 823.7, 612.0, 19.0, 387.5, 293.8, 93.0, 548.2,
471 : 198.9, 63.5, 678.5, 749.1, 462.5, 736.7, 41.9, 135.9, 953.1, 953.0, 669.4, 3.4, 32.7, 1197.3, 236.1, 248.4, 207.7, 772.6,
472 : 914.1, 364.4, 292.8, 121.1, 60.3, 520.4, 170.8, 55.2, 60.3, 704.4,1196.8, 5.3, 123.0, 916.2, 340.6,1241.2,1155.7, 137.5,
473 : 218.7, 330.3, 238.1,1423.1, 342.3, 49.7, 638.0, 493.8, 47.9, 197.0,1043.8, 82.2, 108.1, 846.1, 673.1, 111.0,1033.8, 880.2,
474 : 391.9,1115.2, 202.0, 7.7, 119.4, 82.6, 1377.9, 321.0, 151.5, 12.0, 41.4, 467.9, 82.2, 339.0, 60.9, 642.6, 107.4, 100.0,
475 : 923.7, 845.2, 70.1, 43.1, 519.0, 736.9, 186.4,1075.6, 29.2, 280.6, 19.0, 992.8, 15.3, 23.6, 35.5, 1333.7, 518.7, 300.8,
476 : 51.1, 459.0, 1180.1, 70.2, 35.9, 379.2, 443.1,1005.1, 446.5, 582.0,1118.4, 613.2, 1090.6, 93.0, 403.1, 89.8, 811.1, 22.5,
477 : 171.7, 136.1,1036.9, 119.3, 705.5,1290.4, 281.4, 350.8,1129.9, 648.7, 93.9, 15.7, 185.4, 419.1, 107.4, 149.2, 234.8, 584.6,
478 : 80.6, 149.3, 778.0, 157.8, 999.1, 326.4, 302.4,1248.1,1206.7, 263.0, 36.7, 182.6, 504.3, 168.1, 396.1, 557.0, 72.4, 718.7,
479 : 431.5, 745.7, 145.0, 257.8, 12.6, 962.3, 388.1, 121.0, 219.5,1206.5, 245.6,1075.3, 1478.6, 808.5, 887.1, 136.1,808.4, 374.0,
480 : 579.2, 54.7, 222.6, 530.3, 65.1, 776.3, 217.2, 733.4, 714.4, 969.1, 133.1, 203.6, 15.3, 926.3, 27.0, 259.9, 1166.1, 228.9,
481 : 180.6, 182.6,1433.5, 375.5, 352.8, 792.0, 662.2, 565.5, 58.6, 76.4, 504.4, 147.9, 151.6, 276.1, 683.9,1054.6, 122.1, 19.0,
482 : 119.0, 891.3, 94.0, 487.3,1126.4, 213.3, 72.7, 105.9, 132.6, 82.8, 55.2, 63.4, 47.8, 41.4, 162.9, 35.9, 31.3, 168.1,
483 : 1389.3, 303.8, 197.0,594.7, 332.5, 234.7, 263.1, 242.4, 479.6, 101.7, 276.0, 654.5, 111.9, 23.6, 857.2, 850.6,1087.8, 198.6,
484 : 320.9,1346.1,1143.4, 313.3, 185.3, 531.1, 868.6, 440.7, 455.7,1161.6, 427.9, 350.9, 219.6, 130.6,1161.5, 369.4, 626.0, 29.2,
485 : 630.0, 102.7, 824.1, 203.6, 883.5, 42.0, 184.9,1050.1, 643.2, 284.6,1303.7, 546.4, 1071.4, 294.8, 471.5,421.4, 307.1, 432.6,
486 : 163.0, 598.3, 94.4, 321.0, 35.5, 791.9, 401.6, 171.9,1013.2, 222.5, 415.9,1262.3, 277.3, 476.9,1539.1, 985.0, 928.3, 410.6,
487 : 43.2, 571.7, 87.1, 483.7, 948.5, 260.0, 242.5, 198.9, 364.2, 760.5, 330.2, 160.0, 977.3, 27.6,1221.8, 697.7, 260.8,1493.9,
488 : 535.8, 316.6, 608.8, 354.3, 389.4, 902.3, 455.6, 545.9, 272.8, 263.1, 730.2, 51.0, 232.9, 149.0, 497.0, 942.3, 339.0, 388.0,
489 : 31.3, 293.7, 238.1, 252.2, 440.7, 196.8, 60.9,1182.1, 214.3, 164.5, 245.1, 180.1, 1449.7, 149.7,135.9, 497.0, 123.0, 111.1,
490 : 99.9, 89.8, 80.6, 72.3, 65.0, 58.6, 53.1, 369.1, 60.4, 598.3, 556.9,1009.3, 379.3, 284.6, 521.0, 369.4, 823.8, 700.8,
491 : 542.9, 138.9, 303.8, 710.7, 962.2, 908.2, 620.5, 35.9,1143.5, 513.0, 230.4,1406.5, 405.0,1031.6, 349.8, 674.6, 280.5, 768.8,
492 : 687.6, 307.1, 82.6, 497.1, 749.1, 672.2, 664.0, 129.6, 875.1, 41.4,1105.8, 70.3, 216.6,1364.2, 758.2, 331.5, 431.6, 330.3};
493 :
494 :
495 :
496 :
497 : static const double brdSO2air[594] ={
498 : 2.8352,2.9476,2.7848,3.0127,2.8352,3.0690,2.9239,2.8795,3.0512,2.7405,3.0630,2.9269,3.0216,3.0778,2.9713,3.1577,3.0453,2.8825,2.7848,2.8381,
499 : 3.0601,2.9683,2.8292,3.1222,2.9802,3.0956,2.7937,2.7552,2.8736,3.1104,2.9624,2.9654,2.7493,3.0334,3.1459,3.0275,2.9239,3.0246,2.9358,2.8914,
500 : 2.9180,2.9979,3.0334,2.8618,2.7760,2.8470,2.8204,3.0157,2.9802,3.1133,2.8026,2.9091,3.0571,2.9979,2.7582,2.8647,2.9890,3.0778,2.9447,3.0867,
501 : 3.1577,2.8204,3.0098,2.9003,3.1400,2.7671,2.8559,3.0068,2.9447,2.8115,2.9802,2.8115,2.8559,2.9979,3.1222,3.0423,2.7671,3.1755,3.1400,3.1311,
502 : 2.9062,2.9535,3.1311,2.8766,2.9535,3.0956,2.7730,2.9091,2.8647,2.7582,3.0512,3.1074,2.9003,2.8026,2.8204,3.0956,2.9950,2.8914,2.7760,2.9624,
503 : 3.0068,2.9624,2.8470,3.1015,2.8943,2.9180,2.9269,3.1459,2.8736,2.7493,3.1577,3.1577,3.0897,2.8292,2.9447,3.0571,2.8026,2.8381,3.0127,2.7848,
504 : 2.9121,2.7937,2.7405,2.9299,2.9683,3.1133,2.9890,2.9239,2.8884,2.7908,3.1104,2.8795,3.0660,2.9772,2.8352,2.8736,2.9358,2.7848,3.0690,3.0778,
505 : 3.0867,2.7908,2.9091,3.0719,3.0216,3.0542,3.1045,2.7493,2.9772,3.1400,2.8825,3.1193,2.9328,3.1222,3.0364,2.8884,2.8292,3.0749,3.1400,2.8440,
506 : 3.0305,2.8204,2.7996,3.1548,2.8085,2.7552,2.9861,2.8943,3.1459,2.7760,2.9417,3.0186,3.1281,3.0956,3.0246,2.8973,3.0542,2.8559,3.0837,3.1311,
507 : 3.1222,2.7848,2.8529,2.9595,2.8736,3.0394,2.8085,2.7671,2.7641,2.9950,3.1133,2.8233,2.8766,3.1370,2.9506,2.9713,3.0601,2.9062,3.0009,3.0926,
508 : 2.8588,2.8411,2.9180,2.8618,3.0956,3.0482,2.8056,2.8174,2.8647,3.1637,3.1074,2.7730,3.0038,2.9831,3.0009,2.8411,2.8115,2.9595,2.9654,3.0394,
509 : 3.0778,2.9151,3.0186,3.1015,3.0778,2.8618,2.7612,3.1548,3.0571,2.8263,2.9506,2.7523,2.7819,3.0334,3.0127,2.9417,2.9861,2.7375,2.9683,3.0897,
510 : 2.8559,2.9239,3.1104,3.0068,2.7671,3.0630,3.0512,2.8233,2.8795,3.0660,2.7878,2.8352,2.9328,2.7908,3.0216,3.1459,3.0423,3.0690,2.7464,2.9772,
511 : 3.0216,3.1400,3.1193,2.9328,3.0630,2.9535,2.6457,2.8884,3.0453,3.0749,2.8056,2.8440,3.0719,3.1015,2.9003,2.8500,3.0305,2.7996,3.1193,3.1193,
512 : 3.1370,2.6457,3.1459,3.1281,3.1015,2.7552,2.8973,2.9861,3.0956,2.9121,2.7552,3.0778,3.1281,2.9239,2.9417,2.7878,2.9151,2.8795,2.7700,2.8973,
513 : 2.7730,3.0601,2.9299,3.0837,2.8529,3.1222,3.0394,3.0275,2.8085,3.0423,2.8381,2.7641,2.9950,2.9476,2.7523,2.8618,3.0542,3.1311,3.0038,2.9506,
514 : 3.0453,3.0246,2.9890,2.9062,3.0897,3.0246,2.8618,3.0453,2.8174,2.9506,2.9654,2.7730,2.7523,3.0009,3.1045,3.0098,2.8973,3.0098,2.9565,2.9121,
515 : 3.0985,2.8440,2.9091,2.8677,3.0542,2.9802,3.1548,2.8233,2.9387,3.0394,2.9920,2.7789,3.0098,2.7789,2.7345,2.8263,2.8085,3.0275,2.8322,2.9654,
516 : 2.8855,3.0867,2.9861,2.9210,3.1074,2.8204,2.9979,2.8440,2.8766,2.7908,3.0630,2.9950,3.1459,2.8322,3.1133,2.9742,2.7878,2.6457,3.0157,3.0098,
517 : 2.7434,2.9328,2.9742,2.8292,2.8618,2.8795,2.6457,3.0690,2.9299,3.0334,3.0216,2.9742,2.8855,2.7760,3.0719,3.1370,3.0512,2.8411,3.0660,2.8914,
518 : 2.7967,3.0275,3.0837,3.0571,2.8322,3.0749,3.1015,3.0926,3.1104,3.1193,3.0246,3.1281,3.1341,3.0098,2.9180,2.9565,3.0068,2.8766,2.9831,2.9890,
519 : 2.9683,2.9772,2.9387,3.0542,2.9742,2.8943,3.0808,3.1281,2.8500,2.8056,2.8056,3.0364,2.9565,2.7612,2.7582,2.9920,3.0038,2.8943,2.8115,2.9210,
520 : 2.9476,2.7552,2.9180,2.9417,2.9920,2.8322,2.7612,2.9387,2.9032,3.1193,2.8647,3.0897,2.8588,2.9950,2.9950,3.0956,3.0453,2.8144,2.8677,2.9595,
521 : 2.7700,2.8736,2.7730,3.0009,2.9121,2.9210,2.9535,2.9565,3.0186,2.9121,3.0985,2.9565,3.1104,2.8677,2.9239,3.0542,2.8233,2.9861,2.9299,2.7789,
522 : 3.0098,2.9062,2.7345,2.7908,2.7878,2.9654,3.1015,2.9210,3.1074,2.9003,2.7937,2.9742,2.9772,2.9772,2.9447,2.8766,2.9417,3.0630,2.8322,3.1429,
523 : 2.7878,2.8470,3.0186,2.7434,2.8884,2.9624,2.8559,2.9358,2.9742,2.8085,2.9062,2.9299,2.9802,2.9683,2.8855,3.0956,2.9979,3.0690,2.9032,2.8411,
524 : 2.9535,2.9387,3.1341,2.9713,2.9861,2.9890,2.9210,3.0127,2.6724,2.7967,3.0068,3.0305,3.0246,3.0216,2.7523,3.0394,3.0482,2.9032,3.0571,3.0660,
525 : 3.0749,3.0837,3.0897,3.0985,3.1074,3.1163,3.1252,2.9802,3.0778,2.8707,2.8855,2.7700,2.9239,2.9595,2.9387,2.9387,2.8233,2.8943,2.8825,3.0778,
526 : 2.9565,2.8500,2.7967,2.8500,2.8677,3.1281,2.8056,2.8884,3.0334,2.7612,2.9180,2.7760,2.9890,2.8411,2.9683,2.8292,2.8529,2.9535,3.0690,2.9447,
527 : 2.8411,2.9003,2.8292,3.0867,2.8559,3.1193,2.8115,3.0778,3.0423,2.7671,2.8352,2.9979,2.9091,2.9417};
528 :
529 :
530 : static const double pi=3.141592654;
531 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
532 : static const double mu=1.62; //Debyes
533 : static const double mmol=64.0644;
534 :
535 : //double q=1.1346738633*pow(tt,1.5);
536 52910 : double q=1.1346738633*tt*sqrt(tt);
537 : // unsigned int vp;
538 : unsigned int ini;
539 : unsigned int ifin;
540 52910 : std::complex<double> lshape;
541 52910 : std::complex<double> lshapeacum;
542 :
543 52910 : if(nu>999.9){
544 :
545 0 : return std::complex<double> (0.0,0.0);
546 :
547 : }else{
548 :
549 : // vp = vpIndex(nu);
550 :
551 : // if(pp<100){
552 : // ini=ini3[vp];
553 : // ifin=ifin3[vp];
554 : // }else{
555 : // if(pp<300){
556 : // ini=ini2[vp];
557 : // ifin=ifin2[vp];
558 : // }else{
559 : // ini=ini1[vp];
560 : // ifin=ifin1[vp];
561 : // }
562 : // }
563 :
564 :
565 52910 : ini=0;
566 52910 : ifin=592;
567 :
568 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
569 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
570 :
571 52910 : if(ifin==0||ifin<ini){
572 :
573 52910 : return std::complex<double> (0.0,0.0);
574 :
575 : }else{
576 :
577 0 : for(unsigned int i=ini; i<ifin+1; i++){
578 :
579 0 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdSO2air[i]*0.001,0.75),0.0); // broadenind en GHz/mb 14/11/2018
580 : //lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0); //2.5 MHz/mb
581 :
582 0 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
583 :
584 0 : lshapeacum=lshapeacum+lshape;
585 :
586 : }
587 :
588 0 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
589 : // real part: delay in rad*cm^2
590 :
591 0 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
592 :
593 :
594 : }
595 :
596 : }
597 :
598 : }
599 :
600 :
601 :
602 : //////////////////////// Opacity Source Number: 7 //////////////////////////////
603 :
604 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_no2(double tt, double pp, double nu){
605 :
606 :
607 : static const double fre[248]={
608 : 15.30343, 16.02118, 26.60164, 29.46970, 39.16471, 40.81380, 53.08387, 58.66464, 70.22883, 83.41473, 90.50039, 93.44682,
609 : 98.02563,103.79987,105.96584,106.13308,109.94896,110.49490,118.00321,119.06157,123.85385,123.88433,124.75224,130.01474,
610 : 131.81161,145.83722,148.69461,149.07330,156.21632,161.19983,161.31075,165.29567,167.25842,169.63437,176.21133,188.19188,
611 : 196.22234,199.62996,212.99927,214.31096,215.25284,228.22141,229.50119,230.12486,230.68661,234.59933,239.83878,240.01106,
612 : 243.42845,246.99138,252.13086,255.62711,266.02109,270.10626,274.98672,275.22241,275.31757,278.29013,281.63333,290.49454,
613 : 292.56226,299.81137,301.00867,308.97278,309.75595,324.83261,327.65967,331.81830,335.25684,335.80057,346.19440,346.53149,
614 : 348.50708,348.75742,350.20975,369.26804,370.28265,372.39059,385.44745,388.96729,394.65579,394.79709,394.81833,395.89322,
615 : 398.66660,408.62247,414.78375,426.32617,427.66861,439.50418,441.44064,443.84738,445.02673,452.38419,456.72156,459.44934,
616 : 461.23657,465.71219,469.01208,483.12143,493.26385,494.02573,500.12354,508.49557,508.62653,513.17657,513.37378,517.56873,
617 : 521.46198,525.59619,531.37561,542.97479,554.37964,556.44196,559.30530,563.68805,567.03601,571.43597,571.51337,572.08887,
618 : 572.97400,574.88635,575.85791,576.26593,578.26855,580.07306,581.16528,585.37109,587.43103,587.79901,592.91760,594.80762,
619 : 598.19824,603.02985,604.96832,606.72717,607.56641,607.90997,611.38959,611.82776,614.10382,617.72015,620.93292,630.08392,
620 : 638.66748,639.03223,643.03845,647.32861,647.54645,653.97833,655.41650,657.89435,659.23828,660.82092,662.45618,668.50519,
621 : 670.87683,673.43024,677.12579,679.51447,682.66016,685.83246,686.47723,690.41980,693.29193,696.42761,698.62994,703.38617,
622 : 703.86249,706.66449,712.73193,713.20947,723.04419,723.30933,725.17651,730.60724,731.52454,734.80737,743.64032,748.02948,
623 : 753.11591,755.44745,756.17896,758.04236,762.71759,763.59540,765.16272,775.16144,778.87732,781.71918,783.92804,794.05292,
624 : 796.51251,801.90253,803.10101,803.36237,803.65295,805.04199,807.55530,815.62439,816.75818,816.81555,826.56580,832.24298,
625 : 836.21124,837.80072,840.26038,844.50592,850.47626,853.28424,856.09827,858.26794,868.06360,874.88586,876.00659,877.64093,
626 : 878.81915,881.78546,882.73639,893.21283,894.98120,895.92072,903.61682,906.75049,906.98358,917.71210,919.13794,928.48956,
627 : 932.21454,933.14526,933.19623,939.99255,945.46600,950.26135,954.05829,957.05078,957.72675,960.94727,970.03180,979.19727,
628 : 979.78198,982.70105,983.62170,988.78534,990.12921,995.58112,995.95210,996.92308};
629 :
630 :
631 : static const double el[248]={
632 : 43.7, 1044.5, 378.6,1526.2, 322.1, 64.8,1143.7,1409.2, 25.5, 947.8,1297.0,438.0,90.0, 269.3, 851.0, 942.7, 763.9, 1039.3,
633 : 681.6,1140.5,1246.8, 12.2,1189.5, 604.1,1246.4, 531.2,1357.1, 856.0,119.9,1086.8,502.3, 463.1, 221.4,1472.5, 3.6, 399.8,
634 : 1354.8, 988.9, 769.2, 341.2, 154.6, 3.6,178.3, 571.4, 12.1, 25.5, 895.8, 43.7,287.4, 66.7, 0.0, 94.6, 127.3,1467.6,
635 : 194.1, 687.3, 238.4, 164.9, 807.5, 140.2,207.3, 645.2, 3.7, 254.5, 194.1, 723.9,306.4,1527.6, 238.3, 610.3,1585.2, 154.6,
636 : 12.2, 363.2, 106.9, 645.2, 723.9, 424.6,119.9,1412.0, 25.5,1467.6, 538.2, 287.4,490.9, 78.6, 571.3, 89.9, 561.9, 43.7,
637 : 807.4,1354.8,1301.2, 471.0, 341.2, 637.5,502.3, 55.2, 64.8, 66.8,1246.8, 718.0,1195.5, 438.0, 408.8, 895.8, 44.5, 399.8,
638 : 36.8, 94.7, 803.1,1143.6, 1094.5, 378.6,28.9, 351.4, 127.4, 893.0, 828.7, 920.3,741.7,1017.0, 23.3, 659.6, 463.1,1118.4,
639 : 582.4, 988.9, 510.0,1224.5,1045.3, 442.5,1335.5, 379.9, 324.0, 18.1,164.9, 998.4,1451.3, 322.1, 987.5, 299.1,269.3, 221.4,
640 : 531.1, 178.3, 951.8, 207.3, 140.1, 274.2,106.9,1086.8,1086.8, 907.3, 78.6, 55.2,251.6, 36.8, 23.2, 14.6, 18.1, 28.9,
641 : 254.5, 44.5, 863.2, 64.8, 604.1, 229.3,89.9,1190.6, 119.9, 821.0, 154.6, 209.0,306.4,1189.4, 12.1, 194.1, 779.4, 238.4,
642 : 189.3, 14.6,1299.2, 681.6, 287.4, 363.2,739.5, 171.2, 341.2,1661.2, 18.1, 700.5,399.8, 424.6, 154.1,1296.9, 23.2,1601.9,
643 : 1412.4, 463.1, 662.9,763.9, 138.4,1543.6,531.2, 28.9, 490.9, 626.4, 36.8, 123.7,1486.5, 604.0, 591.2,851.0,1409.2, 110.4,
644 : 561.8, 681.6,1430.6, 44.4, 557.1, 55.2,98.2, 763.9,1376.1, 637.6, 524.4, 87.3,942.8, 851.0,1322.6, 78.6, 492.7, 64.8,
645 : 77.6, 718.0,1270.4, 942.8, 462.4, 69.1,1480.6,106.9,1219.5,1039.2,1039.3,1364.2,433.2, 803.2};
646 :
647 : static const double flin[248]={
648 : 0.362E+01,0.842E+01,0.604E+01,0.791E+01,0.536E+01,0.473E+01,0.891E+01,0.788E+01,0.255E+01,0.793E+01,0.780E+01,0.675E+01,
649 : 0.588E+01,0.471E+01,0.321E+01,0.302E+01,0.337E+01,0.283E+01,0.351E+01,0.263E+01,0.943E+01,0.152E+01,0.767E+01,0.362E+01,
650 : 0.244E+01,0.368E+01,0.225E+01,0.746E+01,0.709E+01,0.750E+01,0.751E+01,0.370E+01,0.410E+01,0.207E+01,0.502E+00,0.366E+01,
651 : 0.997E+01,0.728E+01,0.700E+01,0.357E+01,0.837E+01,0.250E+01,0.350E+01,0.831E+01,0.447E+01,0.640E+01,0.702E+01,0.827E+01,
652 : 0.343E+01,0.101E+02,0.100E+01,0.118E+02,0.133E+02,0.105E+02,0.971E+01,0.654E+01,0.322E+01,0.148E+02,0.673E+01,0.294E+01,
653 : 0.161E+02,0.915E+01,0.200E+01,0.173E+02,0.296E+01,0.640E+01,0.183E+02,0.968E+01,0.111E+02,0.608E+01,0.975E+01,0.265E+01,
654 : 0.301E+01,0.191E+02,0.239E+01,0.605E+01,0.101E+02,0.197E+02,0.230E+01,0.926E+01,0.405E+01,0.937E+01,0.562E+01,0.126E+02,
655 : 0.202E+02,0.185E+01,0.567E+01,0.191E+01,0.205E+02,0.511E+01,0.110E+02,0.898E+01,0.884E+01,0.516E+01,0.142E+02,0.207E+02,
656 : 0.527E+01,0.134E+01,0.149E+01,0.621E+01,0.858E+01,0.208E+02,0.841E+01,0.485E+01,0.470E+01,0.120E+02,0.104E+01,0.159E+02,
657 : 0.845E+00,0.735E+01,0.208E+02,0.816E+01,0.798E+01,0.441E+01,0.593E+00,0.423E+01,0.855E+01,0.207E+02,0.284E+02,0.305E+02,
658 : 0.263E+02,0.324E+02,0.378E+00,0.242E+02,0.176E+02,0.343E+02,0.221E+02,0.131E+02,0.200E+02,0.359E+02,0.774E+01,0.180E+02,
659 : 0.375E+02,0.161E+02,0.397E+01,0.166E+00,0.981E+01,0.754E+01,0.388E+02,0.143E+02,0.205E+02,0.376E+01,0.126E+02,0.110E+02,
660 : 0.194E+02,0.946E+01,0.730E+01,0.111E+02,0.805E+01,0.351E+01,0.673E+01,0.143E+02,0.203E+02,0.709E+01,0.549E+01,0.431E+01,
661 : 0.329E+01,0.317E+01,0.205E+01,0.837E+00,0.146E+01,0.255E+01,0.125E+02,0.358E+01,0.686E+01,0.457E+01,0.212E+02,0.304E+01,
662 : 0.553E+01,0.201E+02,0.646E+01,0.664E+01,0.735E+01,0.282E+01,0.140E+02,0.155E+02,0.150E+01,0.821E+01,0.641E+01,0.904E+01,
663 : 0.257E+01,0.167E+01,0.198E+02,0.232E+02,0.983E+01,0.156E+02,0.619E+01,0.234E+01,0.106E+02,0.972E+01,0.186E+01,0.595E+01,
664 : 0.113E+02,0.172E+02,0.210E+01,0.169E+02,0.210E+01,0.950E+01,0.196E+02,0.119E+02,0.573E+01,0.251E+02,0.187E+01,0.928E+01,
665 : 0.126E+02,0.228E+01,0.189E+02,0.549E+01,0.258E+01,0.163E+01,0.906E+01,0.132E+02,0.526E+01,0.271E+02,0.183E+02,0.140E+01,
666 : 0.207E+02,0.137E+02,0.883E+01,0.271E+01,0.503E+01,0.308E+01,0.117E+01,0.142E+02,0.861E+01,0.225E+02,0.479E+01,0.937E+00,
667 : 0.291E+02,0.146E+02,0.838E+01,0.360E+01,0.456E+01,0.311E+01,0.714E+00,0.244E+02,0.815E+01,0.151E+02,0.432E+01,0.500E+00,
668 : 0.304E+02,0.413E+01,0.792E+01,0.312E+02,0.154E+02,0.284E+02,0.409E+01,0.264E+02};
669 :
670 : static const double texpNO2[248] ={
671 : 0.76,0.70,0.74,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.72,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
672 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.73,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
673 : 0.76,0.76,0.76,0.76,0.76,0.76,0.73,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.73,0.73,0.76,0.76,0.76,0.76,0.76,0.73,0.69,
674 : 0.75,0.75,0.76,0.76,0.76,0.76,0.76,0.76,0.74,0.76,0.71,0.72,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.72,0.76,
675 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.72,0.76,0.74,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.70,0.76,0.76,
676 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.73,0.76,0.76,0.76,0.76,0.76,0.76,0.73,0.76,
677 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.72,0.76,0.76,0.76,0.73,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.74,
678 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.73,0.76,
679 : 0.76,0.76,0.76,0.76,0.69,0.76,0.76,0.76,0.72,0.71,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.69,0.76,0.76,0.76,0.76,0.76,
680 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.74,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
681 : 0.76,0.70,0.76,0.76,0.76,0.76,0.76,0.76};
682 :
683 : static const double brdNO2air[248] ={
684 : 2.3000,1.9769,2.3912,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.0450,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
685 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
686 : 2.3000,2.3000,2.3000,2.3000,2.1989,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
687 : 2.1663,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.2048,2.1219,2.3000,2.3000,2.3000,2.3000,2.3000,2.2048,2.0095,
688 : 2.5096,2.5096,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4475,2.3000,2.0391,2.0983,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
689 : 2.3000,2.3000,2.3000,2.3000,2.0716,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.0450,
690 : 2.3000,2.2877,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,1.9828,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
691 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.1959,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.1486,2.3000,
692 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.1426,2.3000,2.3000,2.3000,2.1604,2.3000,2.3000,2.3000,2.3000,
693 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3409,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
694 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.1663,2.3000,2.3000,2.3000,2.3000,2.3000,1.9651,2.3000,
695 : 2.3000,2.3000,2.0479,1.9532,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.0006,2.3000,2.3000,2.3000,2.3000,2.3000,
696 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4356,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
697 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,1.9947,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000};
698 :
699 :
700 :
701 : static const double pi=3.141592654;
702 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
703 : static const double mu=0.3161; //Debyes
704 : static const double mmol=46.0;
705 :
706 : //double q=0.430965924*pow(tt,1.5);
707 52910 : double q=0.430965924*tt*sqrt(tt);
708 : // unsigned int vp;
709 : unsigned int ini;
710 : unsigned int ifin;
711 52910 : std::complex<double> lshape;
712 52910 : std::complex<double> lshapeacum;
713 :
714 52910 : if(nu>999.9){
715 :
716 0 : return std::complex<double> (0.0,0.0);
717 :
718 : }else{
719 :
720 : // vp = vpIndex(nu);
721 :
722 : // if(pp<100){
723 : // ini=ini3[vp];
724 : // ifin=ifin3[vp];
725 : // }else{
726 : // if(pp<300){
727 : // ini=ini2[vp];
728 : // ifin=ifin2[vp];
729 : // }else{
730 : // ini=ini1[vp];
731 : // ifin=ifin1[vp];
732 : // }
733 : // }
734 :
735 :
736 52910 : ini=0;
737 52910 : ifin=246;
738 :
739 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
740 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
741 :
742 52910 : if(ifin==0||ifin<ini){
743 :
744 52910 : return std::complex<double> (0.0,0.0);
745 :
746 : }else{
747 :
748 0 : for(unsigned int i=ini; i<ifin+1; i++){
749 :
750 0 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdNO2air[i]*0.001,texpNO2[i]),0.0); // broadenind en GHz/mb 14/11/2018
751 : //lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
752 :
753 0 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
754 :
755 0 : lshapeacum=lshapeacum+lshape;
756 :
757 : }
758 :
759 0 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
760 : // real part: delay in rad*cm^2
761 :
762 0 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
763 :
764 :
765 : }
766 :
767 : }
768 :
769 : }
770 :
771 : //////////////////////// Opacity Source Number: 6 //////////////////////////////
772 :
773 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_n2o(double tt, double pp, double nu){
774 :
775 : // tt in K, pp in mb, nu in GHz
776 :
777 : static const double fre[39]={
778 : 25.123248, 50.246371, 75.369242,100.491727,125.613711,150.735063,175.855641,200.975344,226.094031,251.211578,
779 : 276.327844,301.442750,326.556094,351.667813,376.777750,401.885813,426.991813,452.095656,477.197250,502.296438,
780 : 527.393063,552.487063,577.578250,602.666500,627.751750,652.833813,677.912563,702.987938,728.059750,753.127875,
781 : 778.192188,803.252625,828.309000,853.361188,878.409063,903.452500,928.491375,953.525563,978.554938};
782 :
783 : static const double el[39]={
784 : 0.0, 1.2, 3.6, 7.3, 12.1, 18.1, 25.4, 33.7, 43.4, 54.3, 66.3, 79.6, 94.0, 109.7, 126.6,
785 : 144.7, 164.0, 184.5, 206.2, 229.1, 253.2, 278.5, 305.0, 332.7, 361.7, 391.8, 423.1, 455.7, 489.4, 524.3,
786 : 560.5, 597.8, 636.4, 676.1, 717.1, 759.3, 802.6, 847.2, 893.0};
787 :
788 : static const double flin[39]={
789 : 0.100E+01,0.200E+01,0.300E+01,0.400E+01,0.500E+01, 0.600E+01,0.700E+01,0.800E+01,0.900E+01,0.100E+02,
790 : 0.110E+02,0.120E+02,0.130E+02,0.140E+02,0.150E+02, 0.160E+02,0.170E+02,0.180E+02,0.190E+02,0.200E+02,
791 : 0.210E+02,0.220E+02,0.230E+02,0.240E+02,0.250E+02, 0.260E+02,0.270E+02,0.280E+02,0.290E+02,0.300E+02,
792 : 0.310E+02,0.320E+02,0.330E+02,0.340E+02,0.350E+02, 0.360E+02,0.370E+02,0.380E+02,0.390E+02};
793 :
794 : static const double texpN2O[39] ={
795 : 0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,
796 : 0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.75};
797 :
798 : static const double brdN2Oair[39] ={
799 : 2.9180,2.7552,2.7109,2.6665,2.6250,2.5866,2.5481,2.5126,2.4800,2.4475,2.4179,2.3883,2.3616,2.3380,2.3143,2.2906,2.2699,2.2521,2.2314,2.2166,
800 : 2.1989,2.1841,2.1722,2.1604,2.1486,2.1367,2.1278,2.1190,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.0627};
801 :
802 :
803 :
804 : static const unsigned int ifin1[500]={
805 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
806 : 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
807 : 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
808 : 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10,
809 : 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
810 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
811 : 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
812 : 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,
813 : 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
814 : 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25,
815 : 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27,
816 : 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
817 : 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32,
818 : 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34,
819 : 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
820 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39,
821 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0};
822 :
823 : static const unsigned int ini1[500]={
824 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
825 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5,
826 : 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
827 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10,
828 : 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
829 : 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15,
830 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17,
831 : 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
832 : 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
833 : 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24,
834 : 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27,
835 : 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29,
836 : 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
837 : 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34,
838 : 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36,
839 : 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39,
840 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0};
841 :
842 : static const unsigned int ifin2[500]={
843 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
844 : 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
845 : 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
846 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
847 : 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
848 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
849 : 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
850 : 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20,
851 : 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22,
852 : 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
853 : 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27,
854 : 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29,
855 : 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32,
856 : 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34,
857 : 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
858 : 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39,
859 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
860 :
861 : static const unsigned int ini2[500]={
862 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
863 : 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5,
864 : 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8,
865 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10,
866 : 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
867 : 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15,
868 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17,
869 : 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20,
870 : 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,
871 : 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
872 : 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27,
873 : 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29,
874 : 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
875 : 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34,
876 : 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
877 : 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39,
878 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
879 :
880 : static const unsigned int ifin3[500]={
881 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
882 : 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
883 : 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
884 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
885 : 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
886 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
887 : 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
888 : 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20,
889 : 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22,
890 : 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
891 : 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27,
892 : 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29,
893 : 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32,
894 : 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34,
895 : 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
896 : 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39,
897 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
898 :
899 : static const unsigned int ini3[500]={
900 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
901 : 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
902 : 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8,
903 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
904 : 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
905 : 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
906 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
907 : 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20,
908 : 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,
909 : 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
910 : 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27,
911 : 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29,
912 : 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32,
913 : 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34,
914 : 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
915 : 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39,
916 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
917 :
918 :
919 : static const double pi=3.141592654;
920 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
921 : static const double mu=0.161; //Debyes
922 : static const double mmol=44.0;
923 :
924 52910 : double q=1.65873970*tt;
925 : unsigned int vp;
926 : unsigned int ini;
927 : unsigned int ifin;
928 52910 : std::complex<double> lshape;
929 52910 : std::complex<double> lshapeacum;
930 :
931 52910 : if(nu>999.9){
932 :
933 0 : return std::complex<double> (0.0,0.0);
934 :
935 : }else{
936 :
937 52910 : vp = vpIndex(nu);
938 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
939 :
940 52910 : if(ini>4){ini=ini-3;}else{ini=1;} // NEW PATCH 02 SEP 2016
941 52910 : if(ifin<37){ifin=ifin+3;}else{ifin=39;} // NEW PATCH 02 SEP 2016
942 :
943 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
944 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
945 :
946 52910 : if(ifin==0||ifin<ini){
947 :
948 0 : return std::complex<double> (0.0,0.0);
949 :
950 : }else{
951 :
952 424057 : for(unsigned int i=ini; i<ifin+1; i++){
953 :
954 371147 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdN2Oair[i]*0.001,texpN2O[i]),0.0); // broadening en GHz/mb 14/11/2018
955 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
956 :
957 371147 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
958 :
959 371147 : lshapeacum=lshapeacum+lshape;
960 :
961 : }
962 :
963 52910 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
964 : // real part: delay in rad*cm^2
965 :
966 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
967 :
968 :
969 : }
970 :
971 : }
972 :
973 : }
974 :
975 : //////////////////////// Opacity Source Number: 5 //////////////////////////////
976 :
977 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_co(double tt, double pp, double nu){
978 :
979 : static const double fre[8] = {115.271203,230.538000,345.796000,461.04075,576.267938,691.47300,806.651688,921.799563};
980 : static const double flin[8] = {0.100E+01,0.200E+01,0.300E+01,0.400E+01,0.500E+01,0.600E+01,0.700E+01,0.800E+01};
981 : static const double el[8] = {0.0, 5.5, 16.6, 33.2, 55.3,83.0, 116.2, 154.9};
982 :
983 :
984 : static const double texpCO[8] ={
985 : 0.76,0.75,0.74,0.74,0.74,0.74,0.75,0.75};
986 :
987 : static const double brdCOair[8] ={
988 : 2.3587,2.2137,2.0983,2.0006,1.9236,1.8615,1.8112,1.7727};
989 :
990 : static const unsigned int ifin1[500] ={
991 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
992 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
993 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
994 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
995 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
996 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4,
997 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
998 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
999 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1000 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1001 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1002 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1003 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1004 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1005 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1006 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1007 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1008 :
1009 : static const unsigned int ini1[500]={
1010 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1011 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1012 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1013 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
1014 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1015 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
1016 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1017 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5,
1018 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1019 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1020 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1021 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1022 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1023 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1024 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1025 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1026 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1027 :
1028 :
1029 : static const unsigned int ifin2[500]={
1030 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1031 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
1032 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1033 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1034 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1035 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
1036 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1037 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1038 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1039 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1040 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1041 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1042 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1043 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1044 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1045 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1046 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1047 :
1048 : static const unsigned int ini2[500]={
1049 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1050 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1051 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1052 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
1053 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1054 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
1055 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1056 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1057 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1058 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1059 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1060 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1061 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1062 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1063 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1064 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1066 :
1067 : static const unsigned int ifin3[500]={
1068 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1069 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
1070 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1071 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1072 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1073 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
1074 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1075 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1076 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1077 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1078 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1079 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1080 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1081 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1082 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1083 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1085 :
1086 : static const unsigned int ini3[500]={
1087 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1088 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1089 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1090 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
1091 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1092 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
1093 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1094 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1095 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1096 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1097 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1098 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1099 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
1100 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1101 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1102 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1103 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1104 :
1105 :
1106 : static const double pi=3.141592654;
1107 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
1108 : static const double mu=0.112; //Debyes
1109 : static const double mmol=28.0;
1110 :
1111 52910 : double q=0.3615187262*tt;
1112 : unsigned int vp;
1113 : unsigned int ini;
1114 : unsigned int ifin;
1115 52910 : std::complex<double> lshape;
1116 52910 : std::complex<double> lshapeacum;
1117 :
1118 52910 : if(nu>999.9){
1119 :
1120 0 : return std::complex<double> (0.0,0.0);
1121 :
1122 : }else{
1123 :
1124 52910 : vp = vpIndex(nu);
1125 :
1126 52910 : if(pp<25){
1127 7881 : ini=ini3[vp];
1128 7881 : ifin=ifin3[vp];
1129 : }else{
1130 45029 : if(pp<300){
1131 18806 : ini=ini2[vp];
1132 18806 : ifin=ifin2[vp];
1133 : }else{
1134 26223 : ini=ini1[vp];
1135 26223 : ifin=ifin1[vp];
1136 : }
1137 : }
1138 :
1139 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
1140 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
1141 :
1142 52910 : if(ifin==0||ifin<ini){
1143 :
1144 48200 : return std::complex<double> (0.0,0.0);
1145 :
1146 : }else{
1147 :
1148 12720 : for(unsigned int i=ini; i<ifin+1; i++){
1149 :
1150 8010 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdCOair[i]*0.001,texpCO[i]),0.0); // broadening en GHz/mb 14/11/2018
1151 : //lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
1152 :
1153 8010 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
1154 :
1155 8010 : lshapeacum=lshapeacum+lshape;
1156 :
1157 : }
1158 :
1159 4710 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
1160 : // real part: delay in rad*cm^2
1161 :
1162 4710 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
1163 :
1164 :
1165 : }
1166 :
1167 : }
1168 :
1169 : }
1170 :
1171 : //////////////////////// Opacity Source Number: 9 //////////////////////////////
1172 :
1173 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_cnth2o(double tt, double pp, double eh2o, double nu){
1174 :
1175 : // cnth2o, empirical
1176 :
1177 :
1178 52910 : double t300=300/tt;
1179 52910 : double eee=eh2o/1013.0;
1180 52910 : double ppp=(pp-eh2o)/1013.0;
1181 :
1182 : double cnth2o;
1183 :
1184 52910 : if(nu<900){
1185 52910 : cnth2o=0.0315*pow(nu/225,2)*(eee*ppp)*pow(t300,3);
1186 : }else{
1187 0 : cnth2o=0.0315*pow(nu/225,1.8)*(eee*ppp)*pow(t300,3)-
1188 0 : 0.0315*pow((double)(900/225),1.8)*(eee*ppp)*pow(t300,3)+
1189 0 : 0.0315*pow((double)(900/225),2)*(eee*ppp)*pow(t300,3);
1190 : }
1191 :
1192 52910 : double delayh2o=(4.163*t300+0.239)*eh2o*t300*nu*1.2008e-3/57.29578; // VERSIÓN INSTALADA ANTES DE 16/12/2015 // AÑADIR REFERENCIA
1193 :
1194 : // double delayh2o=eh2o*pow(t300,2.5)*.791e-6*pow(nu,2)*nu*1.2008e-3/57.29578; //VERSION DE PRUEBA 16/12/2015
1195 :
1196 52910 : return std::complex<double> (delayh2o,cnth2o); // ( rad m^-1 , m^-1 )
1197 :
1198 : }
1199 :
1200 :
1201 : //////////////////////// Opacity Source Number: 10 /////////////////////////////
1202 :
1203 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_cntdry(double tt, double pp, double eh2o, double nu){
1204 :
1205 : // cntdry, empirical
1206 :
1207 :
1208 52910 : double t300=300/tt;
1209 52910 : double ppp=(pp-eh2o);
1210 52910 : double gamma0=5.6E-04*pp*pow(t300,0.8);
1211 :
1212 :
1213 52910 : double nsec1=6.14e-5*ppp*pow(t300,2)*nu*gamma0/(pow(nu,2)+pow(gamma0,2));
1214 : //double nsec2=1.4E-12*pow(ppp,2)*pow(t300,3.5)*nu; //(1+1.9e-5*pow(nu,1.5));
1215 52910 : double nsec2=1.4E-12*pow(ppp,2)*pow(t300,3.5)*nu; //(1+1.9e-5*nu*sqrt(nu));
1216 :
1217 :
1218 52910 : double cntair=(nsec1+0.85633*nsec2)*nu*0.1820/4.34e3; // From fitting FTS data, JQSRT, Pardo et al. 2001
1219 :
1220 52910 : double delaydry=(0.2588*ppp*t300
1221 52910 : -6.14e-5*ppp*pow(t300,2)*pow(nu,2)/(pow(nu,2)+pow(gamma0,2))
1222 52910 : )*nu*1.2008e-3/57.29578;
1223 :
1224 :
1225 : // double delaydry_deltap=(0.2588*(pp+1.0-eh2o)*t300
1226 : // -6.14e-5*(pp+1.0-eh2o)*pow(t300,2)*pow(nu,2)/(pow(nu,2)+pow(gamma0,2))
1227 : // )*nu*1.2008e-3/57.29578;
1228 :
1229 : // double delaydry_deltat=(0.2588*ppp*(300/(tt+1.0))
1230 : // -6.14e-5*ppp*pow((300/(tt+1.0)),2)*pow(nu,2)/(pow(nu,2)+pow(gamma0,2))
1231 : // )*nu*1.2008e-3/57.29578;
1232 :
1233 :
1234 : // cout << "tt=" << tt << " K" << " ppp=" << ppp << " mb" << " delaydry=" << delaydry << " " << delaydry_deltap/delaydry << " " << delaydry_deltat/delaydry << endl;
1235 :
1236 :
1237 :
1238 52910 : return std::complex<double> (delaydry,cntair); // ( rad m^-1 , m^-1 )
1239 :
1240 : }
1241 :
1242 :
1243 : //////////////////////// Opacity Source Number: 12 /////////////////////////////
1244 :
1245 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh16o_v2(double tt, double pp, double eh2o, double nu){
1246 :
1247 : static const double fre[335]={
1248 : 67.790245, 96.738518, 120.066833, 209.379730, 232.941650, 272.749756, 273.308319, 294.911926, 298.692719, 336.318604,
1249 : 424.615814, 429.827271, 432.365814, 439.689758, 462.861206, 498.342834, 546.492249, 577.889099, 593.817871, 594.784973,
1250 : 657.968628, 774.061768, 859.918091, 899.371277, 902.622192, 902.633484, 923.067688, 925.892395, 968.111328, 1077.804199,
1251 : 1132.792358, 1141.902466, 1148.058960, 1195.768677, 1205.750488,1214.630005, 1214.944824, 1222.725098, 1406.612549, 1421.820068,
1252 : 1428.340332, 1473.516479, 1494.088989, 1591.912231, 1637.113037,1644.029663, 1647.032227, 1699.797241, 1739.387451, 1740.511841,
1253 : 1753.855347, 1835.131104, 1849.346802, 1862.525635, 1864.789307,1894.290527, 1933.400635, 1946.366089, 1956.037354, 1991.469849,
1254 : 2086.665283, 2091.183838, 2106.667236, 2140.248047, 2218.246338,2227.581299, 2233.940186, 2247.307861, 2294.118164, 2337.540771,
1255 : 2372.200684, 2401.381836, 2484.194580, 2488.897461, 2501.917480,2503.204346, 2541.946533, 2561.416992, 2585.798584, 2590.757080,
1256 : 2646.906982, 2689.032715, 2742.224365, 2783.789062, 2808.305664,2820.776855, 2842.404785, 2852.419434, 2902.184814, 2973.164551,
1257 : 2998.129883, 3024.840576, 3036.465576, 3037.561279, 3051.924316,3065.634766, 3112.744141, 3132.590088, 3142.544922, 3159.035889,
1258 : 3161.792969, 3216.594727, 3253.378174, 3275.678467, 3310.530273,3328.204102, 3348.107178, 3396.036621, 3425.261475, 3474.651367,
1259 : 3495.020508, 3553.504395, 3566.186523, 3601.603516, 3624.354004,3631.654297, 3638.812988, 3639.941162, 3656.975342, 3661.215088,
1260 : 3708.865479, 3719.691895, 3741.291260, 3756.302002, 3781.373779,3797.620850, 3805.620850, 3870.276611, 3883.985840, 3907.251221,
1261 : 4007.915527, 4032.301270, 4048.079346, 4065.159668, 4120.685547,4133.917969, 4176.322754, 4196.534668, 4253.582520, 4265.271973,
1262 : 4265.930664, 4272.971680, 4450.476074, 4450.689453, 4457.209961,4520.783691, 4522.206543, 4550.888672, 4557.868164, 4574.724121,
1263 : 4583.926270, 4608.368164, 4625.347656, 4630.292480, 4631.189941,4632.965332, 4645.110352, 4655.048828, 4673.143555, 4681.702148,
1264 : 4688.050781, 4707.438477, 4715.640625, 4721.811035, 4758.667480,4809.098145, 4890.160645, 4915.819824, 4919.379883, 4956.141602,
1265 : 4991.813965, 5045.965820, 5085.471680, 5106.055664, 5151.291992,5164.418457, 5197.080566, 5234.995605, 5243.801758, 5264.706055,
1266 : 5270.681152, 5326.873535, 5343.042969, 5347.410645, 5348.099121,5364.738770, 5370.276367, 5397.082520, 5427.933105, 5430.001465,
1267 : 5430.668945, 5435.439941, 5439.126465, 5441.707031, 5441.996582,5442.362305, 5452.062012, 5483.936523, 5498.748047, 5550.827148,
1268 : 5558.973633, 5560.731934, 5602.951660, 5643.037598, 5760.064453,5777.882324, 5781.895508, 5783.031738, 5783.865723, 5822.762207,
1269 : 5937.895508, 5973.528809, 5974.892090, 6002.918457, 6046.645996,6101.024414, 6129.086914, 6140.286621, 6140.372559, 6159.938965,
1270 : 6160.485352, 6166.656738, 6173.993652, 6176.440918, 6178.348145,6179.314941, 6186.974609, 6192.049805, 6193.727051, 6318.125977,
1271 : 6319.972656, 6328.667969, 6372.734863, 6486.106445, 6490.986816,6505.577148, 6527.715820, 6592.956543, 6611.653809, 6655.116699,
1272 : 6660.624023, 6669.819336, 6691.077637, 6764.869629, 6783.576172,6783.586914, 6814.936523, 6815.015137, 6845.112305, 6845.504395,
1273 : 6856.315918, 6857.177734, 6857.993652, 6872.185059, 6873.719238,6936.190918, 6966.458496, 6993.731445, 7001.683594, 7122.857910,
1274 : 7240.887207, 7250.316406, 7260.501465, 7269.827148, 7312.422852,7352.959961, 7363.332031, 7368.429199, 7392.671875, 7393.081055,
1275 : 7406.447266, 7432.064941, 7432.066406, 7472.024414, 7472.035645,7485.548828, 7514.537598, 7530.646973, 7624.821289, 7747.829102,
1276 : 7884.774902, 7889.549805, 7927.257324, 7927.455078, 7929.243652,7941.633789, 8027.130859, 8031.218262, 8041.744141, 8177.214844,
1277 : 8181.974609, 8289.856445, 8290.503906, 8323.575195, 8455.500977,8460.076172, 8460.172852, 8526.576172, 8529.013672, 8538.893555,
1278 : 8564.284180, 8571.694336, 8601.731445, 8645.142578, 8759.967773,8991.116211, 8991.165039, 9006.700195, 9023.595703, 9029.281250,
1279 : 9041.551758, 9048.492188, 9098.749023, 9102.541016, 9111.836914,9167.686523, 9168.944336, 9233.576172, 9262.232422, 9262.603516,
1280 : 9369.607422, 9520.371094, 9520.396484, 9589.912109, 9631.456055,9633.417969, 9663.334961, 9729.836914, 9739.676758, 9748.269531,
1281 : 9766.947266, 9828.917969, 9828.990234, 9890.300781, 9945.291992};
1282 :
1283 : static const double flin[335]={
1284 : .1440E+00, .1170E+00, .1090E+00, .1000E+00, .1000E+00, .7910E-01, .7910E-01, .8790E-01, .8790E-01, .7650E-01,
1285 : .2300E+00, .2110E+00, .2110E+00, .2310E+00, .1560E+00, .2550E+00, .2760E+00, .2570E+00, .1860E+00, .2820E+00,
1286 : .1500E+01, .9220E-01, .2120E+01, .7260E+00, .2820E+00, .4930E-01, .3540E+00, .3000E+00, .2640E+00, .3390E+00,
1287 : .3800E+00, .3800E+00, .4080E+00, .4090E+00, .1000E+01, .2310E+01, .4390E+00, .4500E+00, .2450E+01, .3600E+01,
1288 : .4500E+00, .4100E+00, .1210E+01, .4340E+01, .7090E-01, .1670E+01, .3370E-01, .3300E+00, .2210E+01, .5750E+00,
1289 : .1500E+01, .5740E+00, .7680E+00, .5750E+00, .6050E+00, .6260E+00, .5300E+00, .4540E+01, .8330E+00, .6120E+00,
1290 : .4460E+00, .6150E+00, .5820E+01, .4570E+01, .5590E+00, .1310E+01, .2140E+01, .6610E+01, .3240E+01, .2740E+01,
1291 : .6700E+00, .2070E+01, .4380E+01, .2070E+01, .2500E-01, .7890E+00, .7830E+00, .8080E+00, .6820E+01, .1610E+01,
1292 : .1060E+01, .2960E+01, .7990E+01, .1490E+01, .1020E+01, .6660E+01, .8860E+01, .8320E+00, .1830E+01, .3820E+01,
1293 : .8920E+00, .5240E+01, .8300E+00, .1780E+01, .1500E+01, .2480E+01, .6620E+01, .2000E+01, .9130E+01, .3910E+01,
1294 : .4150E+01, .9990E+00, .1270E+01, .3990E+01, .2990E+01, .9050E+00, .1010E+02, .2010E-01, .9270E+00, .8660E+01,
1295 : .2950E+01, .1880E+01, .4880E+01, .1670E+01, .1330E+01, .8940E+01, .2010E+01, .3350E+01, .4910E+01, .2440E+01,
1296 : .1070E+01, .7190E+01, .1060E+01, .1980E+01, .6320E+01, .2810E+01, .1070E+01, .1980E+01, .3570E+01, .4010E+01,
1297 : .5880E+01, .4220E+01, .3590E+01, .1960E+01, .1930E+01, .5900E+01, .5920E+01, .1240E+01, .4750E+01, .9950E+00,
1298 : .4800E+01, .1710E-01, .3850E+01, .3530E+01, .2400E+01, .6100E+01, .3740E+01, .5150E+01, .2950E+01, .1250E+01,
1299 : .1980E+01, .2050E+01, .1080E+01, .1080E+01, .2040E+01, .2930E+01, .3780E+01, .3960E+01, .2090E+01, .4580E+01,
1300 : .6920E+01, .6920E+01, .7710E+01, .1970E+01, .5320E+01, .3020E+01, .5970E+01, .2410E+01, .5430E+01, .2380E+01,
1301 : .6610E+01, .3840E+01, .6520E+01, .1510E-01, .4640E+01, .3840E+01, .5650E+01, .7920E+01, .7920E+01, .5990E+01,
1302 : .2000E+01, .4760E+01, .1990E+01, .6940E+01, .5620E+01, .1820E+01, .3960E+01, .3880E+01, .3000E+01, .1100E+01,
1303 : .1100E+01, .2080E+01, .2080E+01, .3870E+01, .4720E+01, .3000E+01, .5540E+01, .6320E+01, .6930E+00, .7050E+01,
1304 : .4790E+01, .2350E+01, .3900E+01, .3070E+01, .2230E+01, .8920E+01, .8920E+01, .1680E+01, .5720E+01, .5740E+01,
1305 : .2020E+01, .5960E+01, .2010E+01, .5790E+01, .3980E+01, .2360E+01, .5650E+01, .1120E+01, .1120E+01, .2120E+01,
1306 : .2120E+01, .4800E+01, .3060E+01, .3050E+01, .3940E+01, .3950E+01, .3940E+01, .4800E+01, .5630E+01, .9920E+01,
1307 : .9920E+01, .5830E+01, .6760E+01, .6800E+01, .2610E+01, .4190E+01, .2470E+01, .2040E+01, .2030E+01, .3410E+01,
1308 : .3400E+01, .1980E+01, .4010E+01, .3990E+01, .1130E+01, .1130E+01, .2160E+01, .2160E+01, .3110E+01, .3110E+01,
1309 : .1090E+02, .1090E+02, .2720E+01, .4010E+01, .4010E+01, .7780E+01, .4570E+00, .7800E+01, .2280E+01, .3150E+01,
1310 : .2060E+01, .2050E+01, .5340E+01, .1030E-01, .4040E+01, .4030E+01, .3780E+01, .3310E+01, .1190E+02, .1190E+02,
1311 : .3300E+01, .1150E+01, .1150E+01, .2200E+01, .2200E+01, .8790E+01, .8800E+01, .3610E+01, .4600E+01, .1620E+01,
1312 : .2080E+01, .2080E+01, .1290E+02, .1290E+02, .6450E+01, .5560E+01, .9780E+01, .3230E+01, .9790E+01, .3170E+01,
1313 : .4200E-01, .4410E+01, .4410E+01, .6570E+01, .4750E+01, .1390E+02, .1390E+02, .2100E+01, .2100E+01, .7530E+01,
1314 : .1080E+02, .1080E+02, .3160E+01, .3070E+00, .7590E+01, .1490E+02, .1490E+02, .2970E+01, .4300E+01, .4300E+01,
1315 : .1220E+01, .3130E+01, .1180E+02, .1180E+02, .8570E+01, .2120E+01, .2120E+01, .8600E+01, .8570E-01, .5930E+01,
1316 : .3200E+01, .1590E+02, .1590E+02, .3430E+01, .1270E+02, .1270E+02, .9590E+01, .9610E+01, .4210E+01, .3840E+01,
1317 : .4210E+01, .5410E+01, .5410E+01, .4470E+01, .2650E+01};
1318 :
1319 : static const double el[335]={
1320 : 323.147, 764.957, 208.238, 1157.451, 1156.320, 2167.610, 2167.583, 1625.146, 1624.965, 644.659,
1321 : 1886.021, 2463.271, 2463.250, 1885.998, 449.986, 1378.683, 591.672, 1378.666, 1548.301, 945.555,
1322 : 34.222, 2218.351, 101.030, 57.837, 212.281, 843.680, 770.899, 945.264, 1249.138, 989.773,
1323 : 2780.334, 2780.397, 2167.602, 2167.612, .033, 197.307, 1625.091, 1157.518, 255.693, 403.963,
1324 : 1624.950, 590.082, 142.295, 584.400, 2578.130, 118.399, 1068.954, 2793.122, 320.422, 1406.368,
1325 : 34.228, 3131.727, 315.145, 3131.712, 2484.004, 1907.088, 1156.311, 793.589, 118.424, 2483.924,
1326 : 2387.155, 1693.538, 1147.995, 886.984, 2020.240, 208.292, 101.087, 1440.446, 660.799, 208.315,
1327 : 1906.352, 469.151, 1028.777, 472.151, 1320.426, 2224.964, 765.005, 2835.171, 1760.800, 326.462,
1328 : 323.168, 197.346, 2255.493, 450.798, 315.222, 1884.823, 2656.685, 2834.705, 450.816, 326.410,
1329 : 2579.511, 1548.330, 1402.572, 472.119, 65.830, 617.872, 2106.111, 643.258, 3084.881, 320.489,
1330 : 1288.757, 3221.127, 57.861, 1249.191, 815.219, 2971.670, 3711.515, 1597.715, 2222.712, 3235.642,
1331 : 989.764, 644.658, 472.049, 142.349, 974.057, 3537.207, 770.863, 1041.509, 469.092, 617.888,
1332 : 591.601, 2793.082, 590.045, 765.025, 2475.221, 974.142, 3219.758, 843.055, 1216.197, 1573.180,
1333 : 2387.149, 1489.879, 1295.622, 255.702, 843.737, 644.602, 643.267, 1683.497, 1793.859, 118.498,
1334 : 2020.266, 1901.028, 1693.509, 815.199, 403.986, 2867.835, 1576.867, 2126.690, 1406.355, 2573.547,
1335 : 1068.705, 1157.532, 945.517, 945.280, 1156.336, 1402.551, 1683.468, 1882.692, 1216.223, 1998.012,
1336 : 843.708, 843.077, 3872.183, 1068.987, 2345.118, 584.398, 2723.408, 214.076, 2487.305, 212.341,
1337 : 3402.429, 1884.530, 3131.434, 2230.146, 1041.475, 793.645, 2971.678, 1068.958, 1068.736, 3284.532,
1338 : 1320.245, 2579.549, 1320.373, 3567.763, 2874.730, 1998.031, 2217.466, 2224.979, 1907.099, 1378.699,
1339 : 1378.667, 1625.138, 1624.961, 2222.738, 2573.524, 1906.406, 2958.141, 3375.511, 208.300, 3824.401,
1340 : 1028.810, 323.225, 2218.399, 1489.875, 315.159, 1320.404, 1320.311, 2958.156, 1295.616, 3288.350,
1341 : 1597.724, 3725.614, 1597.749, 1288.703, 2577.705, 472.195, 3642.048, 1886.011, 1886.007, 2167.668,
1342 : 2167.641, 3221.045, 2484.093, 2483.976, 2835.184, 2578.138, 2834.770, 3219.826, 3638.646, 1597.776,
1343 : 1597.687, 3727.670, 1576.855, 1573.214, 2345.180, 1793.880, 660.817, 1900.986, 1901.089, 450.203,
1344 : 449.938, 450.797, 2963.377, 2963.635, 2463.337, 2463.337, 2780.332, 2780.329, 3131.684, 3131.665,
1345 : 1901.047, 1901.005, 887.066, 3517.085, 3517.011, 1884.513, 326.461, 1882.751, 3375.470, 1148.055,
1346 : 2230.090, 2230.137, 2126.749, 101.101, 3374.657, 3374.811, 1440.514, 591.669, 2230.105, 2230.086,
1347 : 590.044, 3107.515, 3107.515, 3460.297, 3460.296, 2218.348, 2217.457, 2723.384, 1760.764, 617.860,
1348 : 2584.988, 2584.959, 2584.949, 2584.939, 2487.354, 2106.159, 2578.156, 770.960, 2577.655, 765.053,
1349 : 197.425, 769.647, 769.616, 2475.229, 3131.397, 2965.478, 2965.473, 2965.486, 2965.469, 2874.695,
1350 : 2963.677, 2963.421, 989.779, 472.096, 2867.885, 3371.492, 3371.489, 974.144, 945.533, 945.360,
1351 : 815.171, 1249.138, 3374.826, 3374.644, 3288.298, 3371.518, 3371.457, 3284.555, 320.480, 3567.762,
1352 : 1548.327, 3803.091, 3803.090, 1884.854, 3811.560, 3811.566, 3727.730, 3725.638, 1157.466, 2255.554,
1353 : 1156.357, 1167.583, 1167.580, 2656.737, 1216.198};
1354 :
1355 : static const double ensanche[335][4]={
1356 : {2.788,4.50,0.68,0.80},{2.001,4.50,0.68,0.80},{2.838,4.50,0.68,0.80},{1.808,4.50,0.68,0.80},{1.657,4.50,0.68,0.80},{1.172,4.50,0.68,0.80},
1357 : {1.166,4.50,0.68,0.80},{1.423,4.50,0.68,0.80},{1.382,4.50,0.68,0.80},{2.681,4.50,0.68,0.80},{1.418,4.50,0.68,0.80},{1.225,4.50,0.68,0.80},
1358 : {1.252,4.50,0.68,0.80},{1.527,4.50,0.68,0.80},{2.524,4.50,0.68,0.80},{1.716,4.50,0.68,0.80},{2.424,4.50,0.68,0.80},{1.986,4.50,0.68,0.80},
1359 : {2.368,4.50,0.68,0.80},{2.039,4.50,0.68,0.80},{3.096,4.50,0.68,0.80},{1.924,4.50,0.68,0.80},{2.933,4.50,0.68,0.80},{2.921,4.50,0.68,0.80},
1360 : {2.767,4.50,0.68,0.80},{2.518,4.50,0.68,0.80},{2.453,4.50,0.68,0.80},{2.397,4.50,0.68,0.80},{2.445,4.50,0.68,0.80},{2.442,4.50,0.68,0.80},
1361 : {1.278,4.50,0.68,0.80},{1.326,4.50,0.68,0.80},{1.489,4.50,0.68,0.80},{1.648,4.50,0.68,0.80},{2.811,4.50,0.68,0.80},{2.877,4.50,0.68,0.80},
1362 : {1.758,4.50,0.68,0.80},{2.072,4.50,0.68,0.80},{2.702,4.50,0.68,0.80},{2.732,4.50,0.68,0.80},{2.131,4.50,0.68,0.80},{2.619,4.50,0.68,0.80},
1363 : {2.794,4.50,0.68,0.80},{2.764,4.50,0.68,0.80},{1.702,4.50,0.68,0.80},{2.897,4.50,0.68,0.80},{2.273,4.50,0.68,0.80},{2.078,4.50,0.68,0.80},
1364 : {2.841,4.50,0.68,0.80},{2.107,4.50,0.68,0.80},{2.986,4.50,0.68,0.80},{1.281,4.50,0.68,0.80},{2.770,4.50,0.68,0.80},{1.344,4.50,0.68,0.80},
1365 : {1.471,4.50,0.68,0.80},{1.708,4.50,0.68,0.80},{2.501,4.50,0.68,0.80},{2.687,4.50,0.68,0.80},{2.773,4.50,0.68,0.80},{1.719,4.50,0.68,0.80},
1366 : {2.181,4.50,0.68,0.80},{2.137,4.50,0.68,0.80},{2.693,4.50,0.68,0.80},{2.690,4.50,0.68,0.80},{2.181,4.50,0.68,0.80},{2.714,4.50,0.68,0.80},
1367 : {2.942,4.50,0.68,0.80},{2.590,4.50,0.68,0.80},{2.664,4.50,0.68,0.80},{2.776,4.50,0.68,0.80},{2.237,4.50,0.68,0.80},{2.664,4.50,0.68,0.80},
1368 : {2.450,4.50,0.68,0.80},{2.590,4.50,0.68,0.80},{2.015,4.50,0.68,0.80},{1.669,4.50,0.68,0.80},{2.616,4.50,0.68,0.80},{1.388,4.50,0.68,0.80},
1369 : {2.359,4.50,0.68,0.80},{2.563,4.50,0.68,0.80},{2.498,4.50,0.68,0.80},{2.847,4.50,0.68,0.80},{2.450,4.50,0.68,0.80},{2.684,4.50,0.68,0.80},
1370 : {2.427,4.50,0.68,0.80},{2.524,4.50,0.68,0.80},{2.270,4.50,0.68,0.80},{1.826,4.50,0.68,0.80},{2.397,4.50,0.68,0.80},{2.477,4.50,0.68,0.80},
1371 : {1.666,4.50,0.68,0.80},{2.584,4.50,0.68,0.80},{2.492,4.50,0.68,0.80},{2.302,4.50,0.68,0.80},{2.894,4.50,0.68,0.80},{2.302,4.50,0.68,0.80},
1372 : {2.069,4.50,0.68,0.80},{2.314,4.50,0.68,0.80},{1.995,4.50,0.68,0.80},{2.595,4.50,0.68,0.80},{2.149,4.50,0.68,0.80},{1.264,4.50,0.68,0.80},
1373 : {2.779,4.50,0.68,0.80},{2.584,4.50,0.68,0.80},{2.149,4.50,0.68,0.80},{1.758,4.50,0.68,0.80},{2.101,4.50,0.68,0.80},{1.711,4.50,0.68,0.80},
1374 : {2.255,4.50,0.68,0.80},{2.172,4.50,0.68,0.80},{2.489,4.50,0.68,0.80},{1.989,4.50,0.68,0.80},{2.075,4.50,0.68,0.80},{2.838,4.50,0.68,0.80},
1375 : {2.486,4.50,0.68,0.80},{1.728,4.50,0.68,0.80},{2.320,4.50,0.68,0.80},{1.935,4.50,0.68,0.80},{2.163,4.50,0.68,0.80},{2.445,4.50,0.68,0.80},
1376 : {2.107,4.50,0.68,0.80},{2.270,4.50,0.68,0.80},{1.980,4.50,0.68,0.80},{2.051,4.50,0.68,0.80},{1.782,4.50,0.68,0.80},{2.039,4.50,0.68,0.80},
1377 : {1.885,4.50,0.68,0.80},{1.850,4.50,0.68,0.80},{1.971,4.50,0.68,0.80},{1.782,4.50,0.68,0.80},{2.332,4.50,0.68,0.80},{1.832,4.50,0.68,0.80},
1378 : {1.684,4.50,0.68,0.80},{2.797,4.50,0.68,0.80},{1.642,4.50,0.68,0.80},{1.645,4.50,0.68,0.80},{1.672,4.50,0.68,0.80},{2.350,4.50,0.68,0.80},
1379 : {1.622,4.50,0.68,0.80},{2.823,4.50,0.68,0.80},{2.288,4.50,0.68,0.80},{1.332,4.50,0.68,0.80},{2.184,4.50,0.68,0.80},{2.083,4.50,0.68,0.80},
1380 : {2.717,4.50,0.68,0.80},{1.438,4.50,0.68,0.80},{1.432,4.50,0.68,0.80},{1.400,4.50,0.68,0.80},{2.036,4.50,0.68,0.80},{2.163,4.50,0.68,0.80},
1381 : {1.367,4.50,0.68,0.80},{1.859,4.50,0.68,0.80},{1.663,4.50,0.68,0.80},{1.607,4.50,0.68,0.80},{1.708,4.50,0.68,0.80},{1.752,4.50,0.68,0.80},
1382 : {1.737,4.50,0.68,0.80},{1.364,4.50,0.68,0.80},{2.264,4.50,0.68,0.80},{1.654,4.50,0.68,0.80},{1.246,4.50,0.68,0.80},{1.240,4.50,0.68,0.80},
1383 : {1.965,4.50,0.68,0.80},{1.311,4.50,0.68,0.80},{1.471,4.50,0.68,0.80},{2.557,4.50,0.68,0.80},{1.240,4.50,0.68,0.80},{2.483,4.50,0.68,0.80},
1384 : {1.216,4.50,0.68,0.80},{2.456,4.50,0.68,0.80},{1.921,4.50,0.68,0.80},{1.225,4.50,0.68,0.80},{1.036,4.50,0.68,0.80},{ .962,4.50,0.68,0.80},
1385 : {1.684,4.50,0.68,0.80},{2.267,4.50,0.68,0.80},{1.814,4.50,0.68,0.80},{ .923,4.50,0.68,0.80},{ .909,4.50,0.68,0.80},{1.074,4.50,0.68,0.80},
1386 : { .968,4.50,0.68,0.80},{1.734,4.50,0.68,0.80},{1.033,4.50,0.68,0.80},{ .894,4.50,0.68,0.80},{1.065,4.50,0.68,0.80},{2.104,4.50,0.68,0.80},
1387 : { .977,4.50,0.68,0.80},{1.666,4.50,0.68,0.80},{1.577,4.50,0.68,0.80},{1.302,4.50,0.68,0.80},{1.293,4.50,0.68,0.80},{1.462,4.50,0.68,0.80},
1388 : {1.423,4.50,0.68,0.80},{1.492,4.50,0.68,0.80},{1.453,4.50,0.68,0.80},{1.477,4.50,0.68,0.80},{1.314,4.50,0.68,0.80},{1.110,4.50,0.68,0.80},
1389 : {2.847,4.50,0.68,0.80},{ .912,4.50,0.68,0.80},{1.873,4.50,0.68,0.80},{2.560,4.50,0.68,0.80},{1.042,4.50,0.68,0.80},{1.938,4.50,0.68,0.80},
1390 : {2.513,4.50,0.68,0.80},{ .687,4.50,0.68,0.80},{ .669,4.50,0.68,0.80},{1.944,4.50,0.68,0.80},{1.320,4.50,0.68,0.80},{ .938,4.50,0.68,0.80},
1391 : { .684,4.50,0.68,0.80},{ .758,4.50,0.68,0.80},{ .838,4.50,0.68,0.80},{1.444,4.50,0.68,0.80},{ .681,4.50,0.68,0.80},{2.625,4.50,0.68,0.80},
1392 : {1.278,4.50,0.68,0.80},{1.057,4.50,0.68,0.80},{1.057,4.50,0.68,0.80},{1.204,4.50,0.68,0.80},{1.199,4.50,0.68,0.80},{1.341,4.50,0.68,0.80},
1393 : {1.305,4.50,0.68,0.80},{1.284,4.50,0.68,0.80},{1.350,4.50,0.68,0.80},{ .873,4.50,0.68,0.80},{1.302,4.50,0.68,0.80},{1.270,4.50,0.68,0.80},
1394 : {1.160,4.50,0.68,0.80},{ .518,4.50,0.68,0.80},{ .503,4.50,0.68,0.80},{ .870,4.50,0.68,0.80},{1.027,4.50,0.68,0.80},{1.086,4.50,0.68,0.80},
1395 : {1.832,4.50,0.68,0.80},{1.569,4.50,0.68,0.80},{2.669,4.50,0.68,0.80},{ .500,4.50,0.68,0.80},{ .675,4.50,0.68,0.80},{1.971,4.50,0.68,0.80},
1396 : {1.930,4.50,0.68,0.80},{2.592,4.50,0.68,0.80},{ .494,4.50,0.68,0.80},{ .740,4.50,0.68,0.80},{ .900,4.50,0.68,0.80},{ .900,4.50,0.68,0.80},
1397 : {1.042,4.50,0.68,0.80},{1.042,4.50,0.68,0.80},{1.148,4.50,0.68,0.80},{1.145,4.50,0.68,0.80},{ .405,4.50,0.68,0.80},{ .400,4.50,0.68,0.80},
1398 : {2.592,4.50,0.68,0.80},{1.190,4.50,0.68,0.80},{1.181,4.50,0.68,0.80},{ .829,4.50,0.68,0.80},{2.850,4.50,0.68,0.80},{ .817,4.50,0.68,0.80},
1399 : {1.716,4.50,0.68,0.80},{2.388,4.50,0.68,0.80},{ .391,4.50,0.68,0.80},{ .539,4.50,0.68,0.80},{1.255,4.50,0.68,0.80},{2.681,4.50,0.68,0.80},
1400 : { .382,4.50,0.68,0.80},{ .666,4.50,0.68,0.80},{2.143,4.50,0.68,0.80},{2.175,4.50,0.68,0.80},{ .337,4.50,0.68,0.80},{ .334,4.50,0.68,0.80},
1401 : {2.060,4.50,0.68,0.80},{ .796,4.50,0.68,0.80},{ .796,4.50,0.68,0.80},{ .935,4.50,0.68,0.80},{ .935,4.50,0.68,0.80},{ .669,4.50,0.68,0.80},
1402 : { .619,4.50,0.68,0.80},{1.497,4.50,0.68,0.80},{1.817,4.50,0.68,0.80},{2.625,4.50,0.68,0.80},{ .326,4.50,0.68,0.80},{ .441,4.50,0.68,0.80},
1403 : { .296,4.50,0.68,0.80},{ .296,4.50,0.68,0.80},{1.033,4.50,0.68,0.80},{1.462,4.50,0.68,0.80},{ .533,4.50,0.68,0.80},{2.362,4.50,0.68,0.80},
1404 : {.488,4.50,0.68,0.80},{2.157,4.50,0.68,0.80},{2.678,4.50,0.68,0.80},{1.506,4.50,0.68,0.80},{ 1.492,4.50,0.68,0.80},{1.148,4.50,0.68,0.80},
1405 : {1.142,4.50,0.68,0.80},{ .275,4.50,0.68,0.80},{ .272,4.50,0.68,0.80},{ .290,4.50,0.68,0.80},{ .370,4.50,0.68,0.80},{ .864,4.50,0.68,0.80},
1406 : { .441,4.50,0.68,0.80},{ .397,4.50,0.68,0.80},{2.456,4.50,0.68,0.80},{2.737,4.50,0.68,0.80},{ .885,4.50,0.68,0.80},{ .263,4.50,0.68,0.80},
1407 : { .263,4.50,0.68,0.80},{2.231,4.50,0.68,0.80},{1.711,4.50,0.68,0.80},{1.666,4.50,0.68,0.80},{2.592,4.50,0.68,0.80},{2.510,4.50,0.68,0.80},
1408 : { .370,4.50,0.68,0.80},{.334,4.50,0.68,0.80},{.719,4.50,0.68,0.80},{ .272,4.50,0.68,0.80},{ .323,4.50,0.68,0.80},{ .725,4.50,0.68,0.80},
1409 : { 2.539,4.50,0.68,0.80},{.882,4.50,0.68,0.80},{2.465,4.50,0.68,0.80},{.257,4.50,0.68,0.80},{ .257,4.50,0.68,0.80},{ 2.279,4.50,0.68,0.80},
1410 : { .323,4.50,0.68,0.80},{ .299,4.50,0.68,0.80},{ .645,4.50,0.68,0.80},{.627,4.50,0.68,0.80},{ 1.891,4.50,0.68,0.80},{2.033,4.50,0.68,0.80},
1411 : { 1.770,4.50,0.68,0.80},{1.184,4.50,0.68,0.80},{1.181,4.50,0.68,0.80},{1.773,4.50,0.68,0.80},{2.282,4.50,0.68,0.80} };
1412 :
1413 : static const double gl[335]={
1414 : 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00,
1415 : 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00,
1416 : 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00,
1417 : 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00,
1418 : 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 1.00,
1419 : 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00,
1420 : 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00,
1421 : 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00,
1422 : 1.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00,
1423 : 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00,
1424 : 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00,
1425 : 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00,
1426 : 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00,
1427 : 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00,
1428 : 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00,
1429 : 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00,
1430 : 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00};
1431 :
1432 :
1433 : static const unsigned int ifin1[800]={
1434 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1435 : 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1436 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1437 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1438 : 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1439 : 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1440 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15,
1441 : 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17,
1442 : 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1443 : 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1444 : 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1445 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1446 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1447 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24,
1448 : 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 29, 29,
1449 : 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1450 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1451 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1452 : 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1453 : 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 36, 36, 36, 36, 38, 38, 38, 38, 39, 39, 39, 39,
1454 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1455 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1456 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40,
1457 : 40, 40, 40, 40, 40, 40, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
1458 : 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1459 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1460 : 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45};
1461 :
1462 : static const unsigned int ini1[800]={
1463 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1464 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1465 : 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1466 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1467 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
1468 : 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1469 : 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1470 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15,
1471 : 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17,
1472 : 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
1473 : 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1474 : 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1475 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1476 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1477 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24,
1478 : 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 29, 29,
1479 : 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1480 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1481 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1482 : 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1483 : 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 36, 36, 36, 36, 38, 38, 38, 38, 39, 39, 39, 39,
1484 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1485 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1486 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40,
1487 : 40, 40, 40, 40, 40, 40, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
1488 : 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1489 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44};
1490 :
1491 : static const unsigned int ifin2[800]={
1492 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1493 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
1494 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1495 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
1496 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 10,
1497 : 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1498 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12,
1499 : 13, 13, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1500 : 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18,
1501 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 21, 21, 21, 21, 21, 21, 21,
1502 : 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,
1503 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1504 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23,
1505 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1506 : 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 27, 27, 27,
1507 : 27, 27, 27, 27, 27, 27, 27, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1508 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1509 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31,
1510 : 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 33,
1511 : 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 36, 36,
1512 : 36, 36, 36, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1513 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1514 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1515 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
1516 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44,
1517 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1518 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45};
1519 :
1520 : static const unsigned int ini2[800]={
1521 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1522 : 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
1523 : 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1524 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1525 : 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1526 : 8, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11,
1527 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1528 : 11, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16,
1529 : 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1530 : 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19,
1531 : 19, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1532 : 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1533 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1534 : 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1535 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1536 : 24, 24, 24, 24, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1537 : 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1538 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1539 : 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1540 : 31, 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1541 : 34, 34, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1542 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1543 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1544 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42,
1545 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43,
1546 : 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1547 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44};
1548 :
1549 : static const unsigned int ifin3[800]={
1550 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1551 : 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
1552 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1553 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
1554 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10,
1555 : 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1556 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1557 : 11, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1558 : 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1559 : 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 21, 21, 21, 21,
1560 : 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22,
1561 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1562 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23,
1563 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1564 : 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25,
1565 : 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1566 : 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1567 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31,
1568 : 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 33,
1569 : 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35,
1570 : 35, 36, 36, 36, 36, 36, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1571 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1572 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1573 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42,
1574 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44,
1575 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1576 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45};
1577 :
1578 : static const unsigned int ini3[800]={
1579 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1580 : 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1581 : 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1582 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
1583 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
1584 : 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1585 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1586 : 11, 11, 11, 11, 12, 12, 13, 13, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16,
1587 : 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
1588 : 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 21,
1589 : 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1590 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1591 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,
1592 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1593 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1594 : 24, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1595 : 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1596 : 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
1597 : 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32,
1598 : 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35,
1599 : 35, 35, 35, 35, 36, 36, 36, 36, 36, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1600 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1601 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1602 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42,
1603 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44,
1604 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1605 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45};
1606 :
1607 :
1608 :
1609 : static const double pi=3.141592654;
1610 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
1611 : static const double mu=1.82332; //Debyes
1612 :
1613 : //double q=0.034256116*pow(tt,1.5); // Q(300 K)=178.120 JPL Line Catalog
1614 52910 : double q=0.034256116*tt*sqrt(tt); // Q(300 K)=178.120 JPL Line Catalog
1615 : unsigned int vp;
1616 : unsigned int ini;
1617 : unsigned int ifin;
1618 52910 : std::complex<double> lshape;
1619 52910 : std::complex<double> lshapeacum;
1620 :
1621 :
1622 52910 : if(nu>999.9){
1623 :
1624 0 : return std::complex<double> (0.0,0.0);
1625 :
1626 : }else{
1627 :
1628 52910 : vp=vpIndex(nu);
1629 :
1630 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
1631 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
1632 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
1633 52910 : if(ifin==0||ifin<ini){
1634 :
1635 0 : return std::complex<double> (0.0,0.0);
1636 :
1637 : }else{
1638 :
1639 155894 : for(unsigned int i=ini; i<ifin+1; i++){
1640 :
1641 102984 : lshape=lineshape(nu,fre[i],linebroadening_water(fre[i],tt,pp,eh2o,ensanche[i][0],ensanche[i][1],ensanche[i][2],ensanche[i][3]),0.0);
1642 :
1643 102984 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
1644 :
1645 102984 : lshapeacum=lshapeacum+lshape;
1646 :
1647 : }
1648 :
1649 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
1650 : // real part: delay in rad*cm^2
1651 :
1652 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
1653 :
1654 : }
1655 :
1656 : }
1657 :
1658 : }
1659 :
1660 :
1661 : //////////////////////// Opacity Source Number: 11 /////////////////////////////
1662 :
1663 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh16o(double tt, double pp, double eh2o, double nu){
1664 :
1665 : static const double fre[522] = {
1666 : 22.234617, 183.310001, 321.195929, 325.152822, 380.197554, 390.188508, 437.365786, 439.141666, 443.037657, 448.001261, 470.880416, 474.688922, 488.491469, 503.499954, 504.414095,
1667 : 556.936071, 620.701223, 752.033047, 906.190476, 916.171369, 970.314874, 987.926855, 1001.293579, 1074.447510, 1074.450439, 1097.364624, 1113.343506,
1668 : 1146.620850, 1153.125610, 1153.447754, 1158.324585, 1162.914429, 1168.382690, 1172.519287, 1190.854004, 1207.642456, 1215.775879, 1219.918213, 1228.790894, 1236.490234, 1236.490723, 1271.173706,
1669 : 1278.261353, 1296.401855, 1322.062134, 1333.029297, 1333.734253, 1410.622559, 1440.775879, 1512.243286, 1512.358032, 1541.968506, 1602.218750, 1661.009277, 1669.905884, 1716.770142, 1717.219971,
1670 : 1717.238281, 1762.049683, 1766.194336, 1794.793213, 1797.164917, 1856.496704, 1856.499512, 1867.754028, 1879.747314, 1884.868042, 1898.843628, 1903.470215, 1903.569214, 1918.484741, 1919.361206,
1671 : 1930.157104, 1944.950439, 1969.209473, 2015.986694, 2022.371338, 2025.167603, 2040.480347, 2074.430908, 2162.357178, 2164.134033, 2175.395752, 2175.892090, 2196.348389, 2221.749512, 2244.798096,
1672 : 2264.152344, 2317.860596, 2344.252930, 2347.451904, 2355.093506, 2355.178223, 2356.748779, 2358.515137, 2365.902100, 2391.573486, 2428.252197, 2446.835449, 2462.936035, 2531.894287, 2547.394775,
1673 : 2567.174561, 2571.751709, 2574.961426, 2602.496582, 2618.201416, 2619.323242, 2630.963867, 2640.476562, 2644.914307, 2664.570557, 2685.642334, 2689.044434, 2712.224365, 2721.470215, 2773.979004,
1674 : 2801.812500, 2836.786133, 2838.571289, 2848.771729, 2864.042969, 2880.030518, 2884.277588, 2884.942383, 2962.107666, 2968.750732, 2970.798340, 2989.611328, 2989.938721, 2991.528076, 2997.372559,
1675 : 2998.565918, 3003.360596, 3011.131104, 3013.200928, 3043.768066, 3074.613281, 3118.934814, 3126.589844, 3135.013916, 3149.856445, 3165.537598, 3167.581543, 3182.188721, 3210.361084, 3230.147705,
1676 : 3242.007324, 3245.232666, 3307.299072, 3323.194336, 3329.184326, 3331.462158, 3350.895508, 3354.355713, 3365.210938, 3402.357422, 3428.800049, 3468.105957, 3477.542969, 3495.348633, 3497.691406,
1677 : 3497.700195, 3503.236084, 3509.395996, 3524.848633, 3536.664062, 3538.082275, 3547.178223, 3569.766602, 3599.643311, 3612.967041, 3654.606445, 3669.865967, 3674.246826, 3682.703857, 3691.316895,
1678 : 3718.042969, 3721.492676, 3736.993408, 3762.439941, 3775.912109, 3798.278564, 3807.263916, 3809.183594, 3830.651611, 3855.278809, 3922.859619, 3936.949463, 3949.330811, 3953.483643, 3954.344238,
1679 : 3956.030518, 3970.992676, 3977.049316, 3981.654053, 4000.157471, 4020.075195, 4035.976318, 4046.934570, 4053.368896, 4072.539307, 4080.917480, 4090.253662, 4101.301270, 4118.583008, 4157.245117,
1680 : 4158.798828, 4161.912109, 4166.852051, 4174.057129, 4190.579102, 4218.437500, 4239.429688, 4240.187500, 4241.226074, 4279.597656, 4305.398926, 4345.487305, 4348.334961, 4366.788574, 4372.642578,
1681 : 4380.344727, 4435.662109, 4467.616699, 4468.573730, 4509.372559, 4512.388672, 4519.476562, 4535.935059, 4571.626465, 4600.438477, 4602.698242, 4619.316406, 4668.626465, 4681.352051, 4684.310547,
1682 : 4684.646484, 4687.294434, 4687.478027, 4689.498047, 4690.042969, 4690.502441, 4692.996094, 4700.997070, 4703.642090, 4715.733398, 4724.263672, 4734.295898, 4739.351074, 4749.300293, 4764.022461,
1683 : 4769.729004, 4801.924316, 4802.988281, 4806.478027, 4843.365234, 4851.373535, 4869.814453, 4922.436523, 4929.354492, 4947.516113, 4971.006836, 4983.063477, 4993.749023, 4995.889160, 4997.618652,
1684 : 5031.587891, 5039.218262, 5094.389648, 5107.286133, 5141.480469, 5162.856445, 5194.858398, 5197.115234, 5201.435059, 5205.333984, 5227.480469, 5264.046875, 5276.513672, 5280.730957, 5297.037109,
1685 : 5322.554199, 5331.894531, 5340.038086, 5350.834961, 5354.925293, 5355.066406, 5363.381348, 5364.864258, 5365.890625, 5367.713867, 5368.607422, 5368.771484, 5372.354492, 5372.546387, 5376.338379,
1686 : 5377.333496, 5380.180664, 5404.980957, 5424.200684, 5429.517090, 5437.819824, 5476.755859, 5508.605957, 5563.786133, 5566.169922, 5590.651855, 5628.669434, 5641.758789, 5642.085938, 5652.221191,
1687 : 5734.314453, 5745.763672, 5772.804199, 5791.293457, 5800.348633, 5801.258789, 5825.623535, 5827.402832, 5831.823242, 5862.105957, 5870.084961, 5870.382324, 5913.849609, 5920.743164, 5927.955566,
1688 : 5936.366699, 5948.863770, 5948.883301, 5951.507812, 5974.460938, 5974.598145, 5993.568848, 5995.089355, 5995.770996, 5998.833496, 6002.584473, 6002.696289, 6008.021973, 6009.441406, 6010.683105,
1689 : 6011.272461, 6017.750977, 6018.080078, 6069.846680, 6076.475098, 6083.241699, 6132.811523, 6144.350098, 6166.270996, 6204.464844, 6232.336426, 6249.174805, 6252.356934, 6333.647461, 6334.460938,
1690 : 6372.369629, 6373.128418, 6374.534180, 6413.186523, 6432.151855, 6449.397461, 6459.154785, 6482.924805, 6482.927734, 6498.508301, 6502.453125, 6520.811035, 6520.831543, 6554.908691, 6555.020020,
1691 : 6583.322266, 6583.687988, 6583.797363, 6591.576172, 6603.834473, 6605.517090, 6608.801758, 6613.626465, 6617.330566, 6618.762207, 6622.659668, 6645.573242, 6647.482422, 6685.065430, 6702.183105,
1692 : 6706.533691, 6772.161133, 6781.169434, 6783.467285, 6830.006348, 6837.352051, 6884.583496, 6916.979980, 6917.308594, 6925.285156, 6931.553711, 6951.812500, 6958.659668, 6992.815430, 6992.815918,
1693 : 6994.716309, 7041.973145, 7041.976074, 7054.262695, 7064.055176, 7065.917480, 7087.209961, 7087.227539, 7126.841797, 7126.923340, 7159.030762, 7159.341309, 7181.690918, 7182.708984, 7224.776367,
1694 : 7233.533691, 7306.716797, 7321.074707, 7330.934570, 7337.663086, 7355.121582, 7367.564941, 7375.817383, 7432.240723, 7459.451660, 7459.596680, 7479.122070, 7491.806152, 7567.957520, 7567.957520,
1695 : 7609.100098, 7612.908691, 7613.799805, 7625.316895, 7625.520508, 7625.520996, 7626.206543, 7677.482910, 7677.485352, 7707.561523, 7722.062988, 7722.076660, 7747.363281, 7754.206543, 7758.712402,
1696 : 7814.349121, 7831.405273, 7879.645508, 7948.519043, 7980.320801, 7999.686035, 7999.751465, 8021.053711, 8027.005371, 8149.468262, 8182.586426, 8183.017578, 8267.326172, 8274.441406, 8276.783203,
1697 : 8278.713867, 8341.956055, 8349.770508, 8404.710938, 8404.710938, 8404.716797, 8451.620117, 8461.892578, 8464.212891, 8464.212891, 8525.195312, 8537.547852, 8537.579102, 8559.085938, 8561.903320,
1698 : 8568.458984, 8629.490234, 8677.352539, 8686.968750, 8715.722656, 8735.931641, 8736.146484, 8785.902344, 8787.137695, 8823.014648, 8946.191406, 9049.722656, 9072.887695, 9072.902344, 9077.880859,
1699 : 9083.127930, 9083.238281, 9087.024414, 9093.927734, 9095.279297, 9131.275391, 9139.863281, 9285.300781, 9285.409180, 9288.641602, 9289.305664, 9345.036133, 9390.063477, 9435.738281, 9445.885742,
1700 : 9449.122070, 9602.740234, 9605.547852, 9605.554688, 9616.522461, 9625.801758, 9626.460938, 9643.747070, 9702.218750, 9711.139648, 9783.533203, 9819.860352, 9821.017578, 9830.557617, 9830.613281};
1701 :
1702 :
1703 : static const double flin[522]= {
1704 : .56800E-01, .10200E+00, .89500E-01, .90700E-01, .12300E+00, .65100E-01, .88400E-01, .10100E+00, .88400E-01, .13200E+00, .10200E+00, .11800E+00, .35900E-01, .78600E-01, .78600E-01,
1705 : .15000E+01, .12200E+00, .20700E+01, .13200E+00, .16300E+00, .26400E+00, .75600E+00, .8270E-01, .6070E-01, .6070E-01, .2180E+01, .1000E+01,
1706 : .2470E-01, .3020E+00, .5130E-01, .2830E+00, .2540E+01, .2310E+00, .2580E+00, .2320E+00, .3640E+01, .2090E+00, .2090E+00, .1260E+01, .5700E-01, .5700E-01, .1600E+00,
1707 : .2610E+00, .1980E+00, .3160E+00, .1920E+00, .1920E+00, .4220E+01, .2760E+00, .1780E+00, .1780E+00, .3090E+00, .2050E+01, .8330E+00, .1500E+01, .1740E+01, .1670E+00,
1708 : .1670E+00, .4800E+01, .4390E+00, .4240E+01, .5910E+01, .1580E+00, .1580E+00, .3430E+01, .1870E-01, .4390E+00, .4070E+00, .2240E+00, .4300E-01, .4390E+00, .1300E+01,
1709 : .3750E+00, .3750E+00, .4100E+00, .6410E+01, .3480E+00, .3480E+00, .2170E+01, .8360E+00, .4570E+00, .2160E+01, .3250E+00, .3250E+00, .1090E+01, .1920E+01, .5330E+00,
1710 : .1570E+01, .7060E+01, .4010E+01, .8160E+01, .3070E+00, .3070E+00, .3190E+00, .2510E+00, .1040E+01, .2830E+01, .6340E+01, .5620E+01, .1850E+01, .5270E+00, .6150E+00,
1711 : .5580E+00, .8610E+01, .4360E+00, .3750E-01, .6000E+00, .1530E-01, .2480E+01, .3010E+01, .5640E+00, .4220E+01, .1710E+01, .5660E+00, .5290E+00, .5290E+00, .1500E+01,
1712 : .6120E+00, .4990E+00, .4990E+00, .9270E+01, .1040E+02, .2950E+01, .1860E+01, .3060E+01, .8640E+00, .1240E+01, .1630E+01, .4740E+00, .4740E+00, .8490E+01, .7770E+01,
1713 : .3810E+01, .6030E+01, .3390E+00, .3910E+01, .2070E+01, .1080E+02, .7500E+00, .1090E+01, .3970E+01, .6880E+00, .1090E+01, .1790E+01, .2020E+01, .3270E+01, .2870E+01,
1714 : .3360E-01, .6290E+01, .7910E+00, .1320E-01, .3610E+01, .1670E+01, .1260E+02, .7650E+00, .1140E+02, .7270E+00, .7280E+00, .7730E+00, .1070E+02, .4230E+01, .6910E+00,
1715 : .4640E+00, .6910E+00, .5030E+01, .1310E+02, .1860E+01, .9850E+01, .8000E+00, .8120E+01, .4950E+01, .3460E+01, .4980E+01, .9030E+00, .5760E+01, .3720E+01, .1830E+01,
1716 : .8340E+00, .3990E+01, .4700E+01, .6150E+00, .7470E+00, .2660E+01, .1970E+01, .8310E+01, .3060E-01, .3030E+01, .2100E+01, .9570E+00, .1110E+01, .2090E+01, .3010E+01,
1717 : .1110E+01, .3870E+01, .9240E+00, .1170E-01, .1500E+01, .4680E+01, .1030E+02, .9670E+00, .5030E+01, .3580E+01, .1180E+02, .9350E+00, .6990E+01, .5400E+01, .9400E+00,
1718 : .8970E+00, .1870E+01, .5980E+01, .8980E+00, .5980E+01, .2450E+01, .7800E+01, .1860E+01, .9750E+00, .6010E+01, .9930E+00, .3710E+01, .5890E+01, .5630E+01, .1020E+02,
1719 : .2810E-01, .5250E+01, .1060E+01, .2390E+01, .6490E+01, .2370E+01, .4920E+01, .3780E+01, .3650E+01, .3130E+01, .1050E-01, .4000E+01, .3080E+01, .8900E+01, .4850E+01,
1720 : .3980E+01, .9940E+01, .2130E+01, .1120E+01, .3070E+01, .1120E+01, .2130E+01, .5700E+01, .1160E+01, .6460E+00, .6990E+01, .6990E+01, .1090E+01, .6490E+01, .1880E+01,
1721 : .1150E+01, .1880E+01, .1400E+01, .6840E+01, .7200E+01, .1080E+01, .5390E+01, .1160E+01, .7610E+01, .7770E+01, .3720E+01, .2380E+01, .7810E+01, .8290E+00, .4000E+01,
1722 : .5600E+01, .9920E+00, .3690E+01, .2320E+01, .6780E+01, .7080E+01, .4880E+01, .9580E-02, .6110E+00, .8290E+01, .1230E+01, .5850E+01, .7990E+01, .7990E+01, .1310E+01,
1723 : .2160E+01, .4950E+01, .5480E+01, .1890E+01, .1140E+01, .1140E+01, .4050E+01, .6670E+01, .5810E+01, .2160E+01, .2160E+01, .1890E+01, .3130E+01, .4940E+01, .3130E+01,
1724 : .4040E+01, .7500E+01, .1360E+01, .8280E+01, .1350E+01, .4980E+01, .8660E+01, .8980E+01, .3740E+01, .7240E+01, .7550E+01, .3730E+01, .2330E+01, .9600E+01, .5600E+01,
1725 : .8600E+01, .1390E+01, .8830E-02, .1390E+01, .5950E+01, .8930E+01, .8990E+01, .8990E+01, .5550E+01, .1390E+01, .3470E+01, .7670E+01, .2110E+01, .5990E+01, .1910E+01,
1726 : .1910E+01, .1150E+01, .1150E+01, .6780E+01, .2200E+01, .2200E+01, .5890E+01, .3170E+01, .3170E+01, .8450E+01, .7350E+01, .7610E+01, .4100E+01, .5010E+01, .4100E+01,
1727 : .6750E+01, .5890E+01, .5000E+01, .2460E+01, .3390E+01, .3390E+01, .3770E+01, .1390E+01, .3760E+01, .7540E+01, .5630E+01, .1850E+01, .1490E+01, .5600E+01, .8200E-02,
1728 : .9990E+01, .9990E+01, .6980E+01, .2760E+01, .7000E+01, .1330E-01, .7430E+01, .1160E+01, .1160E+01, .1920E+01, .1920E+01, .2220E+01, .2220E+01, .3220E+01, .3220E+01,
1729 : .4160E+01, .7680E+01, .4160E+01, .1910E+01, .5070E+01, .5070E+01, .6820E+01, .5950E+01, .7670E+01, .5950E+01, .6820E+01, .3890E+00, .4620E+01, .3800E+01, .3790E+01,
1730 : .3260E+01, .7560E+01, .5660E+01, .3270E+01, .3250E+01, .5650E+01, .7680E-02, .1100E+02, .1100E+02, .7500E+01, .7990E+01, .3050E+01, .8000E+01, .1170E+01, .1170E+01,
1731 : .3990E+01, .2250E+01, .2250E+01, .1810E+01, .1940E+01, .1940E+01, .3260E+01, .3260E+01, .4220E+01, .4220E+01, .5130E+01, .5130E+01, .6010E+01, .6010E+01, .3830E+01,
1732 : .3830E+01, .5700E+01, .4890E+01, .5760E+01, .5690E+01, .1430E+01, .5080E-01, .1810E+01, .3160E+01, .1200E+02, .1200E+02, .9000E+01, .9000E+01, .1190E+01, .1190E+01,
1733 : .3070E+01, .4390E+01, .4390E+01, .1960E+01, .2280E+01, .2280E+01, .1960E+01, .3300E+01, .3300E+01, .5890E+01, .4270E+01, .4270E+01, .2660E+01, .3860E+01, .3860E+01,
1734 : .5740E+01, .5730E+01, .4180E+01, .6850E+01, .3060E+01, .1300E+02, .1300E+02, .9990E+01, .9990E+01, .6910E+01, .1980E+01, .1980E+01, .2370E+01, .3890E+01, .3890E+01,
1735 : .2590E+00, .4260E+01, .4260E+01, .1200E+01, .1200E+01, .3050E+01, .9580E-01, .2790E+01, .2310E+01, .2310E+01, .7900E+01, .1400E+02, .1400E+02, .1100E+02, .1100E+02,
1736 : .2230E+01, .7930E+01, .1020E+01, .5370E+01, .3170E+01, .2000E+01, .2000E+01, .3930E+01, .3920E+01, .3640E+01, .3480E+01, .4140E+01, .1500E+02, .1500E+02, .8920E+01,
1737 : .5390E+01, .5390E+01, .4130E+01, .1200E+02, .1200E+02, .8940E+01, .4020E+01, .2020E+01, .2020E+01, .3960E+01, .3960E+01, .4770E+01, .6540E+01, .4410E-02, .2380E+01,
1738 : .3140E+01, .5700E+01, .1600E+02, .1600E+02, .9930E+01, .1300E+02, .1300E+02, .9940E+01, .1240E+00, .4020E+01, .4790E+01, .5250E+01, .5250E+01, .2040E+01, .2040E+01};
1739 :
1740 : static const double el[522] = {
1741 : 642.4,195.9,1846.0,454.4, 305.2, 2194.5, 1503.7, 1067.7, 1503.7, 410.7, 1067.8, 702.4, 843.9, 2006.9, 2007.0, 34.3, 702.3, 100.8, 1511.1, 410.9, 552.3, 53.5,
1742 : 4620.445, 3892.334, 3892.334, 196.834, 0.032, 1070.771, 194.158, 2553.643, 878.209, 249.489, 1749.926, 1278.628, 1749.948, 396.442, 2288.852,
1743 : 2288.853, 136.927, 4645.157, 4645.157, 3173.693, 1278.553, 1212.082, 732.151, 2892.024, 2891.990, 574.800, 951.853, 3556.723, 3556.718, 877.897,
1744 : 319.505, 114.384, 34.257, 114.407, 4281.886, 4281.885, 867.334, 1090.335, 781.163, 1125.849, 5070.502, 5070.501, 642.461, 1324.086, 1525.040,
1745 : 2031.169, 2732.447, 2938.743, 550.427, 204.685, 2605.266, 2605.257, 2031.192, 1414.347, 3243.741, 3243.707, 454.372, 296.842, 1524.723, 100.837,
1746 : 3943.897, 3943.873, 305.291, 468.172, 1339.966, 323.537, 1845.959, 1013.293, 2213.239, 4704.473, 4704.469, 2325.893, 4835.409, 296.854, 204.722,
1747 : 1729.462, 1511.070, 432.197, 1628.487, 1807.144, 1088.894, 2609.074, 1957.221, 3349.599, 2347.345, 1603.692, 598.933, 196.776, 2955.963, 1212.020,
1748 : 470.009, 2955.945, 3629.333, 3629.289, 60.969, 2347.233, 4364.355, 4364.369, 3173.679, 3645.847, 795.579, 642.776, 951.944, 725.140, 53.421,
1749 : 432.223, 5159.621, 5159.604, 3030.128, 2732.448, 1270.391, 2069.061, 4292.688, 323.488, 732.121, 4145.141, 2125.714, 552.346, 319.542, 1806.030,
1750 : 550.377, 643.579, 725.178, 1021.026, 933.776, 3786.107, 2325.952, 2698.574, 1909.611, 1175.123, 136.914, 5407.781, 3340.915, 4835.494, 4048.312,
1751 : 4048.342, 3340.856, 4668.503, 1447.749, 4817.536, 3783.336, 4817.470, 1957.274, 6006.033, 843.566, 4292.698, 2481.661, 3474.477, 469.943, 1274.304,
1752 : 468.105, 1334.973, 2432.663, 1552.657, 843.844, 2697.861, 1628.495, 1750.051, 3310.430, 2876.284, 598.910, 249.479, 3783.287, 4248.057, 1339.975,
1753 : 1090.331, 3085.055, 878.261, 1088.861, 1334.920, 877.939, 1615.421, 114.430, 2241.609, 933.821, 1929.366, 5214.102, 3759.877, 2080.868, 1554.548,
1754 : 6175.246, 4500.597, 3310.467, 2275.338, 4500.482, 5303.108, 1070.658, 643.521, 5303.075, 642.783, 396.446, 3941.738, 1070.802, 2122.352, 2651.910,
1755 : 3759.472, 1860.548, 2876.312, 2820.526, 5568.645, 4735.476, 2439.020, 3507.287, 195.941, 3057.583, 194.138, 2481.698, 795.608, 1861.395, 574.812,
1756 : 2599.604, 2125.706, 1807.140, 4996.929, 2473.087, 2122.371, 5781.144, 1525.035, 1278.638, 1806.012, 1278.590, 1524.770, 2857.286, 4212.859, 5568.579,
1757 : 843.870, 843.588, 3082.945, 3273.968, 1324.061, 4985.688, 1324.142, 1615.491, 3491.024, 3721.654, 3966.169, 2823.784, 4985.359, 4431.927, 4462.555,
1758 : 2194.128, 1175.149, 4198.937, 4996.934, 781.151, 3233.020, 4462.554, 2194.506, 305.287, 3966.146, 3951.220, 1021.084, 2983.576, 204.769, 4704.382,
1759 : 4211.619, 3507.264, 1070.766, 1070.663, 4699.981, 296.856, 3085.008, 3234.717, 1603.699, 1750.002, 1749.996, 2698.597, 3954.125, 3501.976, 2031.189,
1760 : 2031.146, 1603.738, 2347.366, 3082.957, 2347.175, 2697.927, 4438.690, 2473.100, 4954.278, 5503.422, 1013.324, 5236.755, 5499.627, 2553.479, 4437.264,
1761 : 4945.689, 2553.665, 454.437, 6073.421, 3670.434, 5778.495, 5502.745, 3393.347, 5221.660, 1274.325, 5794.981, 1324.112, 1324.027, 3671.315, 3501.961,
1762 : 1447.678, 5221.664, 1929.378, 1270.447, 1909.601, 1909.597, 2288.798, 2288.797, 4699.971, 2605.269, 2605.263, 4212.952, 2955.979, 2955.947, 5764.000,
1763 : 4948.620, 5214.614, 3340.958, 3759.890, 3340.831, 4696.902, 4211.691, 3759.476, 642.491, 410.673, 410.449, 2938.669, 5778.516, 2938.764, 5483.331,
1764 : 4132.793, 432.185, 4696.932, 4133.231, 3828.792, 1603.772, 1603.736, 1554.569, 867.314, 1552.703, 100.876, 5484.907, 2891.967, 2891.967, 2241.619,
1765 : 2241.629, 3243.748, 3243.747, 3629.312, 3629.306, 4048.348, 6053.731, 4048.325, 2857.352, 4500.564, 4500.483, 5503.426, 4985.694, 6051.916, 4985.448,
1766 : 5502.660, 323.561, 1750.069, 3349.565, 3349.644, 1125.835, 6044.885, 4620.253, 552.343, 550.409, 4620.457, 4289.790, 1909.635, 1909.620, 6045.737,
1767 : 1861.436, 2275.364, 1860.535, 3556.696, 3556.696, 1414.304, 3943.936, 3943.936, 3954.147, 2599.577, 2599.587, 4364.365, 4364.364, 4817.563, 4817.560,
1768 : 5303.119, 5303.104, 5820.631, 5820.582, 3786.063, 3786.143, 5132.630, 1729.442, 2080.868, 5132.745, 598.908, 196.810, 5214.614, 732.106, 2241.601,
1769 : 2241.594, 2194.556, 2194.148, 4281.893, 4281.893, 725.218, 702.436, 702.393, 2983.540, 4704.530, 4704.530, 2983.597, 5159.637, 5159.637, 2069.093,
1770 : 5646.697, 5646.696, 3273.983, 4248.055, 4248.138, 5669.768, 5669.850, 2651.934, 2439.029, 951.903, 2599.573, 2599.570, 2553.648, 2553.462, 2432.685,
1771 : 3393.395, 3393.375, 4438.628, 4735.487, 4735.475, 469.982, 878.247, 877.872, 5070.535, 5070.535, 1212.135, 319.584, 933.791, 5528.079, 5528.079,
1772 : 2823.853, 2983.560, 2983.558, 2938.726, 2938.691, 5763.976, 2820.547, 795.650, 3057.589, 1511.109, 3828.839, 3828.828, 5248.140, 5248.181, 3721.760,
1773 : 1846.048, 1090.379, 3393.367, 3393.366, 3234.728, 1067.776, 1067.770, 1088.889, 3349.657, 3349.593, 3233.065, 2213.253, 4289.873, 4289.868, 5785.812,
1774 : 5785.881, 2609.006, 3491.045, 249.453, 1175.166, 4954.311, 3030.138, 3828.803, 3828.803, 3671.276, 3786.131, 3786.100, 3670.470, 468.164, 1339.936,
1775 : 4198.961, 1278.718, 1278.662, 4776.305, 4776.302};
1776 :
1777 : static const double ensanche[522][4] ={
1778 : {2.811,4.80,0.69,1.00},{3.050,5.30,0.64,0.85},{2.303,4.69,0.67,0.54}, {2.783,4.85,0.68,0.74},{2.873,5.38,0.54,0.89},{2.152,4.81,0.63,0.55},
1779 : {1.845,4.23,0.60,0.48},{2.100,4.29,0.63,0.52},{1.860,4.23,0.60,0.50}, {2.632,4.84,0.66,0.67},{2.152,4.57,0.66,0.65},{2.355,4.65,0.65,0.64},
1780 : {2.602,5.04,0.69,0.72},{1.612,3.98,0.61,0.43},{1.612,4.01,0.61,0.45}, {3.210,4.11,0.69,1.00},{2.438,4.68,0.71,0.68},{3.060,4.09,0.68,0.84},
1781 : {2.408,4.70,0.70,0.53},{2.670,4.78,0.70,0.78},{2.550,4.94,0.64,0.67}, {2.985,4.55,0.68,0.90},
1782 : {1.216,4.50,0.68,0.80},{ .823,4.50,0.68,0.80},{ .823,4.50,0.68,0.80}, {2.877,4.50,0.68,0.80},{2.811,4.50,0.68,0.80},{2.273,4.50,0.68,0.80},
1783 : {2.767,4.50,0.68,0.80},{1.702,4.50,0.68,0.80},{2.039,4.50,0.68,0.80}, {2.702,4.50,0.68,0.80},{1.418,4.50,0.68,0.80},{1.716,4.50,0.68,0.80},
1784 : {1.527,4.50,0.68,0.80},{2.732,4.50,0.68,0.80},{1.225,4.50,0.68,0.80}, {1.252,4.50,0.68,0.80},{2.794,4.50,0.68,0.80},{ .758,4.50,0.68,0.80},
1785 : { .758,4.50,0.68,0.80},{1.867,4.50,0.68,0.80},{1.986,4.50,0.68,0.80}, {2.445,4.50,0.68,0.80},{2.453,4.50,0.68,0.80},{1.092,4.50,0.68,0.80},
1786 : {1.095,4.50,0.68,0.80},{2.764,4.50,0.68,0.80},{2.442,4.50,0.68,0.80}, { .994,4.50,0.68,0.80},{ .994,4.50,0.68,0.80},{2.397,4.50,0.68,0.80},
1787 : {2.841,4.50,0.68,0.80},{2.773,4.50,0.68,0.80},{2.986,4.50,0.68,0.80}, {2.897,4.50,0.68,0.80},{ .914,4.50,0.68,0.80},{ .914,4.50,0.68,0.80},
1788 : {2.690,4.50,0.68,0.80},{2.072,4.50,0.68,0.80},{2.687,4.50,0.68,0.80}, {2.693,4.50,0.68,0.80},{ .838,4.50,0.68,0.80},{ .838,4.50,0.68,0.80},
1789 : {2.664,4.50,0.68,0.80},{2.015,4.50,0.68,0.80},{1.758,4.50,0.68,0.80}, {1.489,4.50,0.68,0.80},{2.078,4.50,0.68,0.80},{1.409,4.50,0.68,0.80},
1790 : {2.619,4.50,0.68,0.80},{2.714,4.50,0.68,0.80},{1.278,4.50,0.68,0.80}, {1.326,4.50,0.68,0.80},{1.648,4.50,0.68,0.80},{2.590,4.50,0.68,0.80},
1791 : {1.151,4.50,0.68,0.80},{1.160,4.50,0.68,0.80},{2.590,4.50,0.68,0.80}, {2.770,4.50,0.68,0.80},{2.131,4.50,0.68,0.80},{2.942,4.50,0.68,0.80},
1792 : {1.054,4.50,0.68,0.80},{1.057,4.50,0.68,0.80},{2.498,4.50,0.68,0.80}, {2.664,4.50,0.68,0.80},{2.107,4.50,0.68,0.80},{2.563,4.50,0.68,0.80},
1793 : {2.524,4.50,0.68,0.80},{2.450,4.50,0.68,0.80},{2.450,4.50,0.68,0.80}, { .965,4.50,0.68,0.80},{ .965,4.50,0.68,0.80},{2.181,4.50,0.68,0.80},
1794 : {1.557,4.50,0.68,0.80},{2.427,4.50,0.68,0.80},{2.776,4.50,0.68,0.80}, {2.359,4.50,0.68,0.80},{2.584,4.50,0.68,0.80},{2.397,4.50,0.68,0.80},
1795 : {2.137,4.50,0.68,0.80},{1.708,4.50,0.68,0.80},{2.501,4.50,0.68,0.80}, {2.270,4.50,0.68,0.80},{2.181,4.50,0.68,0.80},{1.062,4.50,0.68,0.80},
1796 : {1.471,4.50,0.68,0.80},{1.711,4.50,0.68,0.80},{2.302,4.50,0.68,0.80}, {2.847,4.50,0.68,0.80},{1.281,4.50,0.68,0.80},{2.584,4.50,0.68,0.80},
1797 : {2.302,4.50,0.68,0.80},{1.344,4.50,0.68,0.80},{1.145,4.50,0.68,0.80}, {1.163,4.50,0.68,0.80},{2.894,4.50,0.68,0.80},{1.719,4.50,0.68,0.80},
1798 : {1.048,4.50,0.68,0.80},{1.051,4.50,0.68,0.80},{2.172,4.50,0.68,0.80}, {2.101,4.50,0.68,0.80},{2.149,4.50,0.68,0.80},{2.314,4.50,0.68,0.80},
1799 : {2.489,4.50,0.68,0.80},{2.616,4.50,0.68,0.80},{2.779,4.50,0.68,0.80}, {2.684,4.50,0.68,0.80},{ .953,4.50,0.68,0.80},{ .953,4.50,0.68,0.80},
1800 : {1.995,4.50,0.68,0.80},{2.270,4.50,0.68,0.80},{2.149,4.50,0.68,0.80}, {2.069,4.50,0.68,0.80},{1.752,4.50,0.68,0.80},{2.477,4.50,0.68,0.80},
1801 : {2.320,4.50,0.68,0.80},{1.927,4.50,0.68,0.80},{1.669,4.50,0.68,0.80}, {2.107,4.50,0.68,0.80},{2.595,4.50,0.68,0.80},{2.237,4.50,0.68,0.80},
1802 : {1.980,4.50,0.68,0.80},{1.989,4.50,0.68,0.80},{2.051,4.50,0.68,0.80}, {1.935,4.50,0.68,0.80},{2.039,4.50,0.68,0.80},{ .758,4.50,0.68,0.80},
1803 : {2.332,4.50,0.68,0.80},{1.388,4.50,0.68,0.80},{1.332,4.50,0.68,0.80}, {1.971,4.50,0.68,0.80},{2.838,4.50,0.68,0.80},{1.731,4.50,0.68,0.80},
1804 : {1.222,4.50,0.68,0.80},{1.779,4.50,0.68,0.80},{1.089,4.50,0.68,0.80}, {1.107,4.50,0.68,0.80},{1.329,4.50,0.68,0.80},{1.657,4.50,0.68,0.80},
1805 : {1.832,4.50,0.68,0.80},{ .983,4.50,0.68,0.80},{1.861,4.50,0.68,0.80}, { .985,4.50,0.68,0.80},{2.288,4.50,0.68,0.80},{1.601,4.50,0.68,0.80},
1806 : {1.850,4.50,0.68,0.80},{1.888,4.50,0.68,0.80},{1.666,4.50,0.68,0.80}, {1.728,4.50,0.68,0.80},{2.075,4.50,0.68,0.80},{1.684,4.50,0.68,0.80},
1807 : {2.163,4.50,0.68,0.80},{2.492,4.50,0.68,0.80},{1.782,4.50,0.68,0.80}, {1.782,4.50,0.68,0.80},{1.642,4.50,0.68,0.80},{1.826,4.50,0.68,0.80},
1808 : {2.184,4.50,0.68,0.80},{1.622,4.50,0.68,0.80},{1.847,4.50,0.68,0.80}, {1.758,4.50,0.68,0.80},{2.445,4.50,0.68,0.80},{2.797,4.50,0.68,0.80},
1809 : {1.965,4.50,0.68,0.80},{ .542,4.50,0.68,0.80},{2.036,4.50,0.68,0.80}, {1.859,4.50,0.68,0.80},{1.264,4.50,0.68,0.80},{1.663,4.50,0.68,0.80},
1810 : {1.708,4.50,0.68,0.80},{1.752,4.50,0.68,0.80},{1.607,4.50,0.68,0.80}, {1.737,4.50,0.68,0.80},{2.823,4.50,0.68,0.80},{ .962,4.50,0.68,0.80},
1811 : {2.486,4.50,0.68,0.80},{1.654,4.50,0.68,0.80},{1.429,4.50,0.68,0.80}, {1.095,4.50,0.68,0.80},{1.400,4.50,0.68,0.80},{1.432,4.50,0.68,0.80},
1812 : {1.533,4.50,0.68,0.80},{ .977,4.50,0.68,0.80},{1.921,4.50,0.68,0.80}, {1.471,4.50,0.68,0.80},{1.009,4.50,0.68,0.80},{ .873,4.50,0.68,0.80},
1813 : {1.367,4.50,0.68,0.80},{1.645,4.50,0.68,0.80},{ .876,4.50,0.68,0.80}, {1.672,4.50,0.68,0.80},{2.717,4.50,0.68,0.80},{1.492,4.50,0.68,0.80},
1814 : {1.311,4.50,0.68,0.80},{2.255,4.50,0.68,0.80},{1.240,4.50,0.68,0.80}, {1.347,4.50,0.68,0.80},{1.364,4.50,0.68,0.80},{1.814,4.50,0.68,0.80},
1815 : {1.438,4.50,0.68,0.80},{1.604,4.50,0.68,0.80},{ .408,4.50,0.68,0.80}, {1.216,4.50,0.68,0.80},{1.169,4.50,0.68,0.80},{2.483,4.50,0.68,0.80},
1816 : {1.036,4.50,0.68,0.80},{2.456,4.50,0.68,0.80},{1.734,4.50,0.68,0.80}, {2.083,4.50,0.68,0.80},{1.225,4.50,0.68,0.80},{2.557,4.50,0.68,0.80},
1817 : { .678,4.50,0.68,0.80},{1.666,4.50,0.68,0.80},{1.577,4.50,0.68,0.80}, {1.554,4.50,0.68,0.80},{1.453,4.50,0.68,0.80},{1.492,4.50,0.68,0.80},
1818 : {1.258,4.50,0.68,0.80},{1.462,4.50,0.68,0.80},{1.302,4.50,0.68,0.80}, {1.477,4.50,0.68,0.80},{1.293,4.50,0.68,0.80},{1.423,4.50,0.68,0.80},
1819 : {1.314,4.50,0.68,0.80},{ .935,4.50,0.68,0.80},{1.539,4.50,0.68,0.80}, {1.246,4.50,0.68,0.80},{1.240,4.50,0.68,0.80},{1.885,4.50,0.68,0.80},
1820 : {1.110,4.50,0.68,0.80},{ .968,4.50,0.68,0.80},{ .829,4.50,0.68,0.80}, {1.033,4.50,0.68,0.80},{2.350,4.50,0.68,0.80},{ .894,4.50,0.68,0.80},
1821 : { .912,4.50,0.68,0.80},{1.246,4.50,0.68,0.80},{1.065,4.50,0.68,0.80}, { .926,4.50,0.68,0.80},{1.204,4.50,0.68,0.80},{1.421,4.50,0.68,0.80},
1822 : { .977,4.50,0.68,0.80},{2.264,4.50,0.68,0.80},{ .764,4.50,0.68,0.80}, {1.506,4.50,0.68,0.80},{2.267,4.50,0.68,0.80},{1.074,4.50,0.68,0.80},
1823 : {1.391,4.50,0.68,0.80},{1.042,4.50,0.68,0.80},{2.560,4.50,0.68,0.80}, {1.281,4.50,0.68,0.80},{ .814,4.50,0.68,0.80},{1.684,4.50,0.68,0.80},
1824 : { .491,4.50,0.68,0.80},{2.847,4.50,0.68,0.80},{ .657,4.50,0.68,0.80}, {1.418,4.50,0.68,0.80},{1.278,4.50,0.68,0.80},{ .923,4.50,0.68,0.80},
1825 : { .909,4.50,0.68,0.80},{ .802,4.50,0.68,0.80},{2.513,4.50,0.68,0.80}, {1.341,4.50,0.68,0.80},{ .938,4.50,0.68,0.80},{ .684,4.50,0.68,0.80},
1826 : {1.057,4.50,0.68,0.80},{1.057,4.50,0.68,0.80},{1.350,4.50,0.68,0.80}, { .985,4.50,0.68,0.80},{1.160,4.50,0.68,0.80},{1.204,4.50,0.68,0.80},
1827 : {1.199,4.50,0.68,0.80},{ .838,4.50,0.68,0.80},{1.305,4.50,0.68,0.80}, {1.270,4.50,0.68,0.80},{1.284,4.50,0.68,0.80},{1.302,4.50,0.68,0.80},
1828 : { .808,4.50,0.68,0.80},{2.163,4.50,0.68,0.80},{ .678,4.50,0.68,0.80}, { .681,4.50,0.68,0.80},{1.873,4.50,0.68,0.80},{ .574,4.50,0.68,0.80},
1829 : { .592,4.50,0.68,0.80},{ .681,4.50,0.68,0.80},{ .787,4.50,0.68,0.80}, { .917,4.50,0.68,0.80},{ .873,4.50,0.68,0.80},{2.625,4.50,0.68,0.80},
1830 : { .527,4.50,0.68,0.80},{ .758,4.50,0.68,0.80},{ .938,4.50,0.68,0.80}, { .956,4.50,0.68,0.80},{ .382,4.50,0.68,0.80},{ .811,4.50,0.68,0.80},
1831 : {1.320,4.50,0.68,0.80},{ .530,4.50,0.68,0.80},{ .687,4.50,0.68,0.80}, { .669,4.50,0.68,0.80},{ .870,4.50,0.68,0.80},{1.900,4.50,0.68,0.80},
1832 : {1.938,4.50,0.68,0.80},{ .843,4.50,0.68,0.80},{2.104,4.50,0.68,0.80}, {1.444,4.50,0.68,0.80},{ .500,4.50,0.68,0.80},
1833 : { .675,4.50,0.68,0.80},{ .900,4.50,0.68,0.80},{ .900,4.50,0.68,0.80}, { .912,4.50,0.68,0.80},{1.042,4.50,0.68,0.80},
1834 : {1.042,4.50,0.68,0.80},{1.051,4.50,0.68,0.80},{1.148,4.50,0.68,0.80}, {1.145,4.50,0.68,0.80},{ .589,4.50,0.68,0.80},
1835 : { .766,4.50,0.68,0.80},{ .710,4.50,0.68,0.80},{1.190,4.50,0.68,0.80}, {1.157,4.50,0.68,0.80},{1.181,4.50,0.68,0.80},
1836 : { .873,4.50,0.68,0.80},{1.030,4.50,0.68,0.80},{1.142,4.50,0.68,0.80}, {2.669,4.50,0.68,0.80},{1.971,4.50,0.68,0.80},
1837 : {1.930,4.50,0.68,0.80},{ .494,4.50,0.68,0.80},{ .935,4.50,0.68,0.80}, { .740,4.50,0.68,0.80},{ .684,4.50,0.68,0.80},
1838 : { .539,4.50,0.68,0.80},{2.592,4.50,0.68,0.80},{1.524,4.50,0.68,0.80}, { .820,4.50,0.68,0.80},{ .320,4.50,0.68,0.80},
1839 : { .518,4.50,0.68,0.80},{ .503,4.50,0.68,0.80},{1.027,4.50,0.68,0.80}, {2.592,4.50,0.68,0.80},{1.086,4.50,0.68,0.80},
1840 : {2.681,4.50,0.68,0.80},{ .728,4.50,0.68,0.80},{ .796,4.50,0.68,0.80}, { .796,4.50,0.68,0.80},{ .391,4.50,0.68,0.80},
1841 : { .539,4.50,0.68,0.80},{ .935,4.50,0.68,0.80},{ .935,4.50,0.68,0.80}, {1.045,4.50,0.68,0.80},{1.042,4.50,0.68,0.80},
1842 : {1.086,4.50,0.68,0.80},{ .639,4.50,0.68,0.80},{1.083,4.50,0.68,0.80}, {1.944,4.50,0.68,0.80},{1.045,4.50,0.68,0.80},
1843 : {1.042,4.50,0.68,0.80},{ .784,4.50,0.68,0.80},{ .932,4.50,0.68,0.80}, { .630,4.50,0.68,0.80},{ .929,4.50,0.68,0.80},
1844 : { .781,4.50,0.68,0.80},{2.850,4.50,0.68,0.80},{1.569,4.50,0.68,0.80}, { .382,4.50,0.68,0.80},{ .666,4.50,0.68,0.80},
1845 : {2.388,4.50,0.68,0.80},{ .518,4.50,0.68,0.80},{ .405,4.50,0.68,0.80}, {2.175,4.50,0.68,0.80},{2.060,4.50,0.68,0.80},
1846 : { .740,4.50,0.68,0.80},{ .287,4.50,0.68,0.80},{ .405,4.50,0.68,0.80}, { .400,4.50,0.68,0.80},{ .719,4.50,0.68,0.80},
1847 : { .829,4.50,0.68,0.80},{1.832,4.50,0.68,0.80},{ .817,4.50,0.68,0.80}, { .722,4.50,0.68,0.80},{ .722,4.50,0.68,0.80},
1848 : {2.143,4.50,0.68,0.80},{ .858,4.50,0.68,0.80},{ .858,4.50,0.68,0.80}, {1.790,4.50,0.68,0.80},{ .326,4.50,0.68,0.80},
1849 : { .441,4.50,0.68,0.80},{ .959,4.50,0.68,0.80},{ .959,4.50,0.68,0.80}, { .988,4.50,0.68,0.80},{ .988,4.50,0.68,0.80},
1850 : { .938,4.50,0.68,0.80},{ .938,4.50,0.68,0.80},{ .829,4.50,0.68,0.80}, { .829,4.50,0.68,0.80},{ .320,4.50,0.68,0.80},
1851 : { .604,4.50,0.68,0.80},{ .334,4.50,0.68,0.80},{1.817,4.50,0.68,0.80}, {1.255,4.50,0.68,0.80},{ .669,4.50,0.68,0.80},
1852 : {2.625,4.50,0.68,0.80},{2.678,4.50,0.68,0.80},{1.554,4.50,0.68,0.80}, {2.362,4.50,0.68,0.80},{ .337,4.50,0.68,0.80},
1853 : { .334,4.50,0.68,0.80},{ .669,4.50,0.68,0.80},{ .619,4.50,0.68,0.80}, { .666,4.50,0.68,0.80},{ .666,4.50,0.68,0.80},
1854 : {2.157,4.50,0.68,0.80},{1.506,4.50,0.68,0.80},{1.492,4.50,0.68,0.80}, { .290,4.50,0.68,0.80},{ .790,4.50,0.68,0.80},
1855 : { .790,4.50,0.68,0.80},{ .370,4.50,0.68,0.80},{ .873,4.50,0.68,0.80}, { .873,4.50,0.68,0.80},{1.462,4.50,0.68,0.80},
1856 : { .885,4.50,0.68,0.80},{ .885,4.50,0.68,0.80},{1.716,4.50,0.68,0.80}, { .287,4.50,0.68,0.80},{ .515,4.50,0.68,0.80},
1857 : { .293,4.50,0.68,0.80},{ .636,4.50,0.68,0.80},{1.497,4.50,0.68,0.80}, {1.033,4.50,0.68,0.80},{2.456,4.50,0.68,0.80},
1858 : { .296,4.50,0.68,0.80},{ .296,4.50,0.68,0.80},{ .533,4.50,0.68,0.80}, { .488,4.50,0.68,0.80},{1.148,4.50,0.68,0.80},
1859 : { .272,4.50,0.68,0.80},{ .323,4.50,0.68,0.80},{1.571,4.50,0.68,0.80}, { .269,4.50,0.68,0.80},{ .450,4.50,0.68,0.80},
1860 : {2.737,4.50,0.68,0.80},{1.711,4.50,0.68,0.80},{1.666,4.50,0.68,0.80}, { .610,4.50,0.68,0.80},{ .610,4.50,0.68,0.80},
1861 : {2.510,4.50,0.68,0.80},{2.539,4.50,0.68,0.80},{2.231,4.50,0.68,0.80}, { .716,4.50,0.68,0.80},{ .716,4.50,0.68,0.80},
1862 : { .864,4.50,0.68,0.80},{ .275,4.50,0.68,0.80},{ .272,4.50,0.68,0.80}, { .441,4.50,0.68,0.80},{ .397,4.50,0.68,0.80},
1863 : {1.462,4.50,0.68,0.80},{ .885,4.50,0.68,0.80},{2.592,4.50,0.68,0.80}, {1.142,4.50,0.68,0.80},{2.465,4.50,0.68,0.80},
1864 : { .260,4.50,0.68,0.80},{ .293,4.50,0.68,0.80},{ .260,4.50,0.68,0.80}, { .400,4.50,0.68,0.80},{1.500,4.50,0.68,0.80},
1865 : {2.279,4.50,0.68,0.80},{1.891,4.50,0.68,0.80},{ .263,4.50,0.68,0.80}, { .263,4.50,0.68,0.80},{ .719,4.50,0.68,0.80},
1866 : {1.184,4.50,0.68,0.80},{1.181,4.50,0.68,0.80},{1.770,4.50,0.68,0.80}, { .370,4.50,0.68,0.80},{ .334,4.50,0.68,0.80},
1867 : { .725,4.50,0.68,0.80},{2.033,4.50,0.68,0.80},{ .257,4.50,0.68,0.80}, { .275,4.50,0.68,0.80},{ .257,4.50,0.68,0.80},
1868 : { .355,4.50,0.68,0.80},{1.773,4.50,0.68,0.80},{ .882,4.50,0.68,0.80}, {2.418,4.50,0.68,0.80},{2.282,4.50,0.68,0.80},
1869 : {1.382,4.50,0.68,0.80},{1.447,4.50,0.68,0.80},{ .257,4.50,0.68,0.80}, { .257,4.50,0.68,0.80},{ .645,4.50,0.68,0.80},
1870 : { .323,4.50,0.68,0.80},{ .299,4.50,0.68,0.80},{ .627,4.50,0.68,0.80}, {2.270,4.50,0.68,0.80},{2.045,4.50,0.68,0.80},
1871 : {1.219,4.50,0.68,0.80},{1.344,4.50,0.68,0.80},{1.335,4.50,0.68,0.80}, { .255,4.50,0.68,0.80},{ .263,4.50,0.68,0.80}};
1872 :
1873 : static const double gl[522] = {
1874 : 3.00,1.00,3.00,1.00,3.00,1.00,1.00,3.00,3.00,3.00,1.00,1.00,1.00,3.00,1.00,3.00,3.00,1.00,1.00,1.00,1.00,1.00,
1875 : 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00,
1876 : 3.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00,
1877 : 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00,
1878 : 3.00, 1.00, 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00,
1879 : 3.00, 3.00, 3.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00,
1880 : 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00,
1881 : 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00,
1882 : 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00,
1883 : 1.00, 3.00, 3.00, 3.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00,
1884 : 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00,
1885 : 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00,
1886 : 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 3.00, 1.00,
1887 : 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00,
1888 : 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00,
1889 : 3.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00,
1890 : 3.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00,
1891 : 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00,
1892 : 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00,
1893 : 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 3.00, 1.00, 1.00, 3.00,
1894 : 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00,
1895 : 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 3.00, 1.00, 1.00,
1896 : 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00,
1897 : 1.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00, 1.00, 3.00, 3.00, 1.00, 3.00, 3.00, 1.00,
1898 : 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00,
1899 : 1.00, 3.00, 1.00, 3.00, 1.00, 1.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 1.00, 3.00, 3.00, 3.00, 1.00, 3.00, 1.00, 3.00};
1900 :
1901 : static const unsigned int ifin1[800] = {
1902 : 226, 226, 226, 226, 226, 227, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1903 : 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1904 : 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235,
1905 : 235, 236, 238, 238, 240, 243, 244, 244, 244, 244, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 248, 249, 249, 249,
1906 : 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
1907 : 253, 255, 255, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, 257, 257, 257, 258, 258, 258, 258,
1908 : 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
1909 : 259, 260, 260, 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 263, 263, 263, 263,
1910 : 263, 263, 264, 264, 264, 264, 264, 265, 266, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 268, 268, 268, 268,
1911 : 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 270, 270, 270,
1912 : 270, 270, 270, 270, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, 272, 272, 272, 272,
1913 : 272, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 275, 275, 276, 276, 277, 277, 277, 277, 277, 277, 277,
1914 : 277, 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 279, 279, 279, 279, 279, 279, 280, 280,
1915 : 281, 281, 281, 281, 281, 281, 281, 281, 281, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 283, 283, 283, 283, 283, 284, 284, 284, 284,
1916 : 285, 285, 285, 285, 285, 286, 286, 287, 288, 288, 288, 288, 290, 291, 294, 294, 296, 296, 297, 298, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
1917 : 299, 299, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 301, 301, 301, 302, 302, 302, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
1918 : 303, 303, 303, 303, 303, 303, 303, 303, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 305, 305, 305, 305, 305,
1919 : 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 306, 307, 307, 307, 307, 307, 307, 307,
1920 : 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 309, 309, 309, 309, 309, 309,
1921 : 309, 311, 311, 311, 311, 311, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1922 : 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 314, 314, 314, 314, 314, 314, 314,
1923 : 314, 314, 314, 314, 314, 314, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 316, 316, 316, 316, 317, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1924 : 318, 318, 318, 319, 320, 320, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 322, 322, 322, 322, 324, 324, 324, 324, 324,
1925 : 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 325, 325, 325, 326, 326, 326, 326, 327, 327, 327, 327, 328, 328,
1926 : 328, 328, 328, 328, 330, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 334, 336, 337,
1927 : 337, 339, 339, 339, 340, 342, 343, 343, 343, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345,
1928 : 345, 345, 345, 345, 345, 346, 346, 346, 347, 347, 347, 347, 348, 348, 348, 348, 348, 348, 348, 348};
1929 :
1930 : static const unsigned int ini1[800]={
1931 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1932 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1933 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1934 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1935 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1936 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1937 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1938 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1939 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1940 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1941 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1942 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1943 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1944 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1945 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1946 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1947 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1948 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1949 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1950 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1951 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1952 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1953 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1954 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1955 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1956 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1957 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
1958 :
1959 : static const unsigned int ifin2[800]={
1960 : 75, 75, 75, 75, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
1961 : 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
1962 : 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 82, 82, 82, 82, 82, 82, 84, 84,
1963 : 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86,
1964 : 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1965 : 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, 91, 91, 91, 91, 94, 95,
1966 : 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
1967 : 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1968 : 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101,
1969 : 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1970 : 105, 106, 106, 106, 106, 106, 106, 106, 106, 107, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 110, 111, 111, 111, 111, 111, 111, 111, 111,
1971 : 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, 113, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115,
1972 : 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
1973 : 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 120,
1974 : 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 125, 125, 125, 125, 125, 125, 125, 125,
1975 : 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
1976 : 125, 126, 126, 126, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 130, 131, 131, 131, 133, 133, 133, 134, 134, 134, 134, 135, 136, 136, 136,
1977 : 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138,
1978 : 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 141, 141,
1979 : 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 142, 142, 142, 143, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1980 : 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 148, 148, 149, 149, 149, 149, 149, 149, 149,
1981 : 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150,
1982 : 150, 150, 151, 151, 151, 152, 153, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 155, 155, 155, 155, 155, 155, 156, 156, 156, 156, 156, 156, 156,
1983 : 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158,
1984 : 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, 163,
1985 : 163, 163, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169,
1986 : 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170};
1987 :
1988 : static const unsigned int ini2[800]= {
1989 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1990 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1991 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1992 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1993 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1994 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1995 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1996 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1997 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1998 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1999 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2000 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2001 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2002 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2003 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2004 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2005 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2006 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2007 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2008 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2009 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2010 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2011 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2012 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2013 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2014 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2015 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
2016 :
2017 : static const unsigned int ifin3[800] = {
2018 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2019 : 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2020 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2021 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2022 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
2023 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
2024 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 10, 10, 10, 10, 10,
2025 : 10, 10, 10, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 15, 15, 15, 15, 15, 15, 15, 15,
2026 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
2027 : 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
2028 : 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
2029 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2030 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2031 : 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2032 : 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
2033 : 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,
2034 : 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
2035 : 23, 23, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27,
2036 : 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 30, 30, 31, 31, 32, 32, 32, 33, 33, 34, 34, 34, 34,
2037 : 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 41, 41,
2038 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44,
2039 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
2040 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48,
2041 : 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
2042 : 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2043 : 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
2044 : 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53};
2045 :
2046 : static const unsigned int ini3[800] = {
2047 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2048 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2049 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2050 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2051 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2052 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2053 : 3, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2054 : 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8,
2055 : 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
2056 : 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17,
2057 : 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
2058 : 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18,
2059 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2060 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2061 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2062 : 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 21, 21,
2063 : 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22,
2064 : 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
2065 : 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27,
2066 : 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 31, 31, 32,
2067 : 32, 33, 33, 33, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38,
2068 : 39, 39, 39, 39, 40, 40, 40, 40, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 44,
2069 : 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 48, 48, 48,
2070 : 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
2071 : 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
2072 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 52, 52, 52, 52,
2073 : 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53};
2074 :
2075 :
2076 :
2077 : static const double pi=3.141592654;
2078 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2079 : static const double mu=1.855; //Debyes
2080 :
2081 : //double q=0.034278209*pow(tt,1.5); // Q(300 K)=178.120 JPL Line Catalog
2082 52910 : double q=0.034278209*tt*sqrt(tt); // Q(300 K)=178.120 JPL Line Catalog
2083 : unsigned int vp;
2084 : unsigned int ini;
2085 : unsigned int ifin;
2086 52910 : std::complex<double> lshape;
2087 52910 : std::complex<double> lshapeacum;
2088 :
2089 :
2090 52910 : if(nu>1595.9){
2091 :
2092 0 : ini=0;
2093 0 : ifin=521;
2094 :
2095 :
2096 : }else{
2097 :
2098 52910 : vp=vpIndex(nu);
2099 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; if(ini>2){ini=ini-2;} if(ifin<520){ifin=ifin+2;} }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
2100 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
2101 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
2102 :
2103 : }
2104 :
2105 :
2106 52910 : if(ifin==0||ifin<ini){
2107 :
2108 0 : return std::complex<double> (0.0,0.0);
2109 :
2110 : }else{
2111 :
2112 : // cout << "nu=" << nu << " GHz: including lines from " << fre[ini] << " GHz to " << fre[ifin] << " GHz" << endl;
2113 :
2114 7760115 : for(unsigned int i=ini; i<ifin+1; i++){
2115 :
2116 7707205 : lshape=lineshape(nu,fre[i],linebroadening_water(fre[i],tt,pp,eh2o,ensanche[i][0],ensanche[i][1],ensanche[i][2],ensanche[i][3]),0.0);
2117 7707205 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2118 7707205 : lshapeacum=lshapeacum+lshape;
2119 :
2120 : }
2121 :
2122 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2123 : // real part: delay in rad*cm^2
2124 :
2125 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
2126 :
2127 : }
2128 :
2129 :
2130 :
2131 : }
2132 :
2133 :
2134 : //////////////////////// Opacity Source Number: 14 /////////////////////////////
2135 :
2136 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh17o(double tt, double pp, double eh2o, double nu){
2137 :
2138 :
2139 : static const double fre[16]={
2140 : 13.522059,194.001224,323.819514,385.783293, 482.981450,481.712039,489.015848,469.795466,
2141 : 514.973492,507.838397,552.020778,658.391131, 748.458444,944.845857,987.845579,991.503015};
2142 :
2143 : static const double gl[16]={
2144 : 3.,1.,1.,3.,1.,3.,3., 3.,1.,1.,3.,3.,1.,1.,1.,1.};
2145 :
2146 : static const double flin[16]={
2147 : .0548,.101,.088,.121,.0891,.0102,.0891, .132,.102,.119,1.5,.122,2.073,.164,.262,.760};
2148 :
2149 : static const double el[16]={
2150 : 642.1,204.2,468.9,322.7, 1518.4,1084.6,1518.7,430.9,1086.2,722.6,
2151 : 60.7,729.8,136.7,453.4,597.3,100.7};
2152 :
2153 : static const double dv0[16]={
2154 : 2.85,2.68,3.03,3.19,1.5,1.94,1.51, 2.47,1.89,2.07,3.33,2.28,3.13,2.59,2.48,3.09};
2155 :
2156 : static const double dvlm[16]={
2157 : 13.68,14.49,15.21,15.84,7.94,10.44,8.13,14.24,
2158 : 10.56,11.95,14.66,12.78,13.93,14.06,14.16,15.20};
2159 :
2160 : static const double temp_exp[16]={
2161 : .626,.649,.619,.63,.29,.36,.332,.51, .380,.38,.645,.6,.69,.676,.56,.66};
2162 :
2163 :
2164 : static const unsigned int ifin1[500]={
2165 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2166 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2167 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2168 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2169 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
2170 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5,
2171 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2172 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2173 : 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2174 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2175 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2176 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14,
2177 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2178 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2179 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2180 : 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
2181 : 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
2182 :
2183 : static const unsigned int ini1[500]={
2184 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2185 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2186 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2187 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2188 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2189 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
2190 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5,
2191 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2192 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2193 : 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2194 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2195 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2196 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14,
2197 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2198 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2199 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2200 : 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2201 :
2202 : static const unsigned int ifin2[500]={
2203 : 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2204 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2205 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2206 : 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2207 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2208 : 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2209 : 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2210 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7,
2211 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2212 : 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2213 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13,
2214 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2215 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2216 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2217 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2218 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
2219 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
2220 :
2221 : static const unsigned int ini2[500]={
2222 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2223 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2224 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2225 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2226 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2227 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2228 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2229 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2230 : 5, 5, 5, 5, 5, 5, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11,
2231 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2232 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2233 : 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2234 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2235 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2236 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2237 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15,
2238 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16};
2239 :
2240 : static const unsigned int ifin3[500]={
2241 : 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2242 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2243 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2244 : 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2245 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2246 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2247 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2248 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2249 : 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2250 : 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2251 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13,
2252 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2253 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2254 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2255 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2256 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15,
2257 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 0, 0, 0};
2258 :
2259 : static const unsigned int ini3[500]={
2260 : 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2261 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2262 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2263 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2264 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2265 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2266 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2267 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2268 : 5, 5, 5, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2269 : 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2270 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2271 : 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2272 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2273 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2274 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2275 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
2276 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 0, 0, 0};
2277 :
2278 :
2279 : static const double pi=3.141592654;
2280 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2281 : static const double mu=1.855; //Debyes
2282 :
2283 : //double q=0.034412578*pow(tt,1.5); // Q(300 K)=178.813 JPL Line Catalog
2284 52910 : double q=0.034412578*tt*sqrt(tt); // Q(300 K)=178.813 JPL Line Catalog
2285 : unsigned int vp;
2286 : unsigned int ini;
2287 : unsigned int ifin;
2288 52910 : std::complex<double> lshape;
2289 52910 : std::complex<double> lshapeacum;
2290 :
2291 :
2292 52910 : if(nu>999.9){
2293 :
2294 0 : return std::complex<double> (0.0,0.0);
2295 :
2296 : }else{
2297 :
2298 52910 : vp=vpIndex(nu);
2299 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
2300 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
2301 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
2302 :
2303 52910 : if(ifin==0||ifin<ini){
2304 :
2305 0 : return std::complex<double> (0.0,0.0);
2306 :
2307 : }else{
2308 :
2309 107320 : for(unsigned int i=ini; i<ifin+1; i++){
2310 :
2311 54410 : lshape=lineshape(nu,fre[i],linebroadening_hh18o_hh17o(tt,pp,eh2o,dv0[i],dvlm[i],temp_exp[i]),0.0);
2312 54410 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2313 54410 : lshapeacum=lshapeacum+lshape;
2314 :
2315 : }
2316 :
2317 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2318 : // real part: delay in rad*cm^2
2319 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
2320 :
2321 : }
2322 :
2323 : }
2324 :
2325 : }
2326 :
2327 : //////////////////////// Opacity Source Number: 15 /////////////////////////////
2328 :
2329 : // std::complex<double> RefractiveIndex::mkSpecificRefractivity_hdo(double tt, double pp, double eh2o, double nu){
2330 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hdo(double tt, double pp, double nu){ // eh2o removed (unused parameter)
2331 :
2332 : static const double fre[58]={
2333 : 5.70284, 10.27828, 22.30749, 50.23643, 64.42724, 80.57828, 143.72739,151.61604,207.11122,241.56151,305.03867,310.53348,
2334 : 464.92450,481.77936,537.79272,540.37543,559.81665,797.48669, 848.96191,862.66339,890.26971,919.31085, 20.46006, 61.18605,
2335 : 87.96289,120.77818,138.53059,207.34569,225.89665,241.97346, 255.05026,266.16098,313.75076,317.15128,335.39542,382.06503,
2336 : 479.94748,490.59668,509.29245,539.93585,599.92676,622.48346, 753.41113,766.16309,774.77631,827.26306,836.99475,838.66260,
2337 : 838.95593,853.55231,859.35687,893.63861,895.87488,904.89404, 938.41833,958.56860,984.13788,995.41144};
2338 :
2339 : static const double flin[58]={
2340 : 0.401E+01,0.332E+01,0.322E+01,0.227E+01,0.264E+01,0.150E+01, 0.168E+01,0.219E+01,0.178E-01,0.833E+00,0.181E+01,0.130E+01,
2341 : 0.100E+01,0.587E+00,0.632E-02,0.150E+01,0.103E+01,0.463E+00, 0.150E+01,0.126E+01,0.848E+00,0.199E+01,0.223E+00,0.298E+00,
2342 : 0.448E+00,0.238E+00,0.200E+00,0.105E+00,0.228E+00,0.460E+00, 0.338E+00,0.132E+00,0.450E+00,0.270E+00,0.138E+00,0.267E+00,
2343 : 0.131E+00,0.633E+00,0.150E+01,0.629E+00,0.228E+01,0.548E+00, 0.275E+01,0.231E+00,0.231E+00,0.580E+00,0.108E+00,0.789E+00,
2344 : 0.567E+00,0.670E+00,0.108E+00,0.100E+01,0.589E+00,0.414E+00, 0.511E+00,0.787E+00,0.290E+01,0.142E+01};
2345 :
2346 : static const double el[58]={
2347 : 425.1, 156.7, 537.6, 223.6, 672.7, 42.9, 312.3, 830.1, 216.1, 83.6,1009.6, 422.5,
2348 : 0.0, 144.5, 131.4,1210.7, 553.8, 225.0, 42.9,1432.9, 705.7, 22.3, 225.0, 422.5,
2349 : 825.9, 319.2, 437.5, 738.4, 156.8, 825.8, 425.2, 144.4, 538.7, 675.8, 319.2, 672.7,
2350 : 312.3, 42.9, 22.4, 983.7, 66.4, 675.8, 131.4, 983.6, 983.2, 223.6, 538.7,1558.1,
2351 : 837.3, 983.2, 537.7, 0.0, 537.7,1236.6, 1024.2,1164.6, 216.1, 83.6};
2352 :
2353 : /* static const double tr[58]={
2354 : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
2355 : 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
2356 : 1,1,1,1,1,1}; */
2357 :
2358 : static const unsigned int ifin11[500]={
2359 : 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
2360 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2361 : 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2362 : 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2363 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 13, 13, 13,
2364 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2365 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2366 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15,
2367 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
2368 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2369 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2370 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2371 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19,
2372 : 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20,
2373 : 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
2374 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2375 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2376 :
2377 : static const unsigned int ini11[500]={
2378 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2379 : 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2380 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,
2381 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10,
2382 : 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2383 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2384 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2385 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2386 : 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
2387 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2388 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2389 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2390 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2391 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2392 : 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21,
2393 : 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2394 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2395 :
2396 : static const unsigned int ifin21[500]={
2397 : 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6,
2398 : 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2399 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2400 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11,
2401 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2402 : 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2403 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2404 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15,
2405 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 17, 17, 17,
2406 : 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2407 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2408 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2409 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2410 : 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2411 : 19, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
2412 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2413 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2414 :
2415 : static const unsigned int ini21[500]={
2416 : 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5,
2417 : 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2418 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2419 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2420 : 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2421 : 11, 11, 11, 11, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2422 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2423 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14,
2424 : 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
2425 : 15, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2426 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2427 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2428 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2429 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2430 : 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22,
2431 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2432 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2433 :
2434 : static const unsigned int ifin31[500]={
2435 : 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5,
2436 : 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2437 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2438 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2439 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2440 : 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2441 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2442 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2443 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 17,
2444 : 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2445 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2446 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2447 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2448 : 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2449 : 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22,
2450 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2452 :
2453 : static const unsigned int ini31[500]={
2454 : 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
2455 : 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2456 : 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
2457 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2458 : 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2459 : 11, 11, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2460 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2461 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14,
2462 : 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
2463 : 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2464 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2465 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2466 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2467 : 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
2468 : 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
2469 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2470 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
2471 :
2472 : static const unsigned int ifin12[500]={
2473 : 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25,
2474 : 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28,
2475 : 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
2476 : 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 32, 32,
2477 : 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 35,
2478 : 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
2479 : 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2480 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39,
2481 : 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
2482 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
2483 : 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2484 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2485 : 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
2486 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 48, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51,
2487 : 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55,
2488 : 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
2489 : 57, 57, 58, 58, 58, 58, 58, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
2490 :
2491 : static const unsigned int ini12[500]={
2492 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
2493 : 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26,
2494 : 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
2495 : 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29,
2496 : 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33,
2497 : 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36,
2498 : 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2499 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2500 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40,
2501 : 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
2502 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2503 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2504 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44,
2505 : 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
2506 : 46, 46, 46, 46, 47, 47, 47, 47, 48, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
2507 : 52, 52, 52, 52, 52, 52, 52, 53, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56,
2508 : 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57};
2509 :
2510 :
2511 : static const unsigned int ifin22[500]={
2512 : 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25,
2513 : 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27,
2514 : 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
2515 : 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31,
2516 : 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
2517 : 33, 33, 33, 33, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
2518 : 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2519 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38,
2520 : 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41,
2521 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42,
2522 : 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2523 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2524 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46,
2525 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 48, 50, 50, 50, 50,
2526 : 50, 50, 50, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 54, 54, 54, 54, 55,
2527 : 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57,
2528 : 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 0, 0, 0, 0, 0};
2529 :
2530 : static const unsigned int ini22[500]={
2531 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
2532 : 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
2533 : 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
2534 : 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30,
2535 : 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
2536 : 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36,
2537 : 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2538 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2539 : 37, 37, 37, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
2540 : 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
2541 : 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2542 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2543 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45,
2544 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47,
2545 : 47, 48, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
2546 : 53, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56,
2547 : 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58};
2548 :
2549 : static const unsigned int ifin32[500]={
2550 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
2551 : 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27,
2552 : 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
2553 : 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30,
2554 : 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
2555 : 33, 33, 33, 33, 33, 33, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
2556 : 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2557 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38,
2558 : 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41,
2559 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42,
2560 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2561 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2562 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46,
2563 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 48, 50, 50,
2564 : 50, 50, 50, 50, 50, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 54, 54, 54,
2565 : 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57,
2566 : 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 0, 0, 0};
2567 :
2568 : static const unsigned int ini32[500]={
2569 : 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
2570 : 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
2571 : 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
2572 : 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30,
2573 : 30, 30, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
2574 : 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
2575 : 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2576 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
2577 : 37, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
2578 : 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
2579 : 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2580 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
2581 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46,
2582 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 48,
2583 : 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 54,
2584 : 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
2585 : 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 0};
2586 :
2587 : static const double pi=3.141592654;
2588 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2589 : static const double mua=0.657; //Debyes
2590 : static const double mub=1.732; //Debyes
2591 :
2592 : //double q=0.028263028*pow(tt,1.5); // Q(300 K)=179.639 JPL Line Catalog
2593 52910 : double q=0.028263028*tt*sqrt(tt); // Q(300 K)=179.639 JPL Line Catalog
2594 : unsigned int vp;
2595 : unsigned int ini1, ini2;
2596 : unsigned int ifin1, ifin2;
2597 52910 : std::complex<double> lshape;
2598 52910 : std::complex<double> lshapeacum;
2599 :
2600 :
2601 52910 : if(nu>999.9){
2602 :
2603 0 : return std::complex<double> (0.0,0.0);
2604 :
2605 : }else{
2606 :
2607 52910 : vp=vpIndex(nu);
2608 :
2609 52910 : if(pp<25){ ini1=ini31[vp]; ifin1=ifin31[vp]; ini2=ini32[vp]; ifin2=ifin32[vp]; }else{ if(pp<300){ ini1=ini21[vp]; ifin1=ifin21[vp]; ini2=ini22[vp]; ifin2=ifin22[vp]; }else{ ini1=ini11[vp]; ifin1=ifin11[vp]; ini2=ini12[vp]; ifin2=ifin12[vp]; } }
2610 52910 : if(ini1>0){ini1=ini1-1;}else{ifin1=0;}
2611 52910 : if(ifin1>0){ifin1=ifin1-1;}else{ifin1=0;}
2612 52910 : if(ini2>0){ini2=ini2-1;}else{ifin2=0;}
2613 52910 : if(ifin2>0){ifin2=ifin2-1;}else{ifin2=0;}
2614 :
2615 :
2616 52910 : std::complex<double> lshapeacum1(0.0,0.0);
2617 :
2618 52910 : if(ifin1==0||ifin1<ini1){
2619 :
2620 :
2621 : }else{
2622 :
2623 136472 : for(unsigned int i=ini1; i<ifin1+1; i++){
2624 :
2625 83562 : lshape=lineshape(nu,fre[i],0.003*pp*pow((300/tt),0.7),0.0);
2626 83562 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2627 83562 : lshapeacum1=lshapeacum1+lshape;
2628 :
2629 : }
2630 :
2631 52910 : lshapeacum1=lshapeacum1*(nu/pi)*(picube8div3hcesu*pow(mua,2)/q); // imaginary part: absorption coefficient in cm^2
2632 : // real part: delay in rad*cm^2
2633 : }
2634 :
2635 52910 : std::complex<double> lshapeacum2(0.0,0.0);
2636 :
2637 52910 : if(ifin2==0||ifin2<ini2){
2638 :
2639 :
2640 : }else{
2641 :
2642 153052 : for(unsigned int i=ini2; i<ifin2+1; i++){
2643 :
2644 100142 : lshape=lineshape(nu,fre[i],0.003*pp,0.0);
2645 100142 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2646 100142 : lshapeacum2=lshapeacum2+lshape;
2647 :
2648 : }
2649 :
2650 52910 : lshapeacum2=lshapeacum2*(nu/pi)*(picube8div3hcesu*pow(mub,2)/q); // imaginary part: absorption coefficient in cm^2
2651 : // real part: delay in rad*cm^2
2652 : }
2653 :
2654 52910 : return (lshapeacum1+lshapeacum2)*1e-4*0.25; // to give it in SI units ( rad m^2 , m^2 ) (20181121: 0.25 is an empirical factor to fit FTS Data from Mauna Kea)
2655 :
2656 :
2657 : }
2658 :
2659 : }
2660 :
2661 :
2662 : //////////////////////// Opacity Source Number: 13 /////////////////////////////
2663 :
2664 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh18o(double tt, double pp, double eh2o, double nu){
2665 :
2666 :
2667 : static const double fre[15]={
2668 : 5.624962,203.407381,322.464764,390.607954, 525.168274,520.138510,531.577390,489.054219,
2669 : 554.860949,537.337649,547.676612,692.079249, 745.320024,970.300490,994.634718};
2670 :
2671 : static const double gl[15]={
2672 : 3.,1.,1.,3.,1.,3.,3.,3.,1.,1.,3.,3.,1.,1.,1.};
2673 :
2674 : static const double flin[15]={
2675 : .053,.100,.086,.119,.090,.103,.090, .132,.103,.119,1.5,.123,2.060,.165,.764};
2676 :
2677 : static const double el[15]={
2678 : 640.5,203.7,467.9,322.1,1512.3, 1080.7,1512.6,429.7,1082.3,720.3, 60.5,727.7,136.4,452.5,100.6};
2679 :
2680 : static const double dv0[15]={
2681 : 2.85,2.68,3.03,3.19,1.5,1.94,1.51, 2.47,1.89,2.07,3.33,2.28,3.13,2.59,3.09};
2682 :
2683 : static const double dvlm[15]={
2684 : 13.68,14.49,15.21,15.84,7.94,10.44,8.13, 14.24,10.56,11.95,14.66,12.78,13.93,14.06,15.20};
2685 :
2686 : static const double temp_exp[15]={
2687 : .626,.649,.619,.63,.29,.36,.332,.51, .380,.38,.645,.6,.69,.676,.66};
2688 :
2689 : static const unsigned int ifin1[500]={
2690 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2691 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2692 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2693 : 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2694 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2695 : 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2696 : 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2697 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2698 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 12, 12,
2699 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2700 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2701 : 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2702 : 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2703 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2704 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2705 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
2706 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2707 :
2708 : static const unsigned int ini1[500]={
2709 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2710 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2711 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2712 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2713 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2714 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2715 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
2716 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2717 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2718 : 5, 5, 5, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2719 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2720 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
2721 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14,
2722 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2723 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2724 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2725 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15};
2726 :
2727 : static const unsigned int ifin2[500]={
2728 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2729 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2730 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2731 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2732 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2733 : 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2734 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2735 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2736 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9,
2737 : 9, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2738 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2739 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2740 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2741 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2742 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2743 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2744 : 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2745 :
2746 : static const unsigned int ini2[500]={
2747 : 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2748 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2749 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2750 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2751 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2752 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2753 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2754 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2755 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 9,
2756 : 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2757 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2758 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2759 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2760 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2761 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2762 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2763 : 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2764 :
2765 : static const unsigned int ifin3[500]={
2766 : 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2767 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2768 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2769 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2770 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2771 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2772 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2773 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2774 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 9, 9, 9, 9, 9,
2775 : 9, 9, 9, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2776 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2777 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2778 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2779 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2780 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2781 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2782 : 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2783 :
2784 : static const unsigned int ini3[500]={
2785 : 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2786 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2787 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2788 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2789 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2790 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2791 : 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2792 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2793 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 9, 9, 9,
2794 : 9, 9, 9, 9, 9, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2795 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
2796 : 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
2797 : 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2798 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2799 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2800 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
2801 : 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2802 :
2803 :
2804 :
2805 : static const double pi=3.141592654;
2806 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2807 : static const double mu=1.855; //Debyes
2808 :
2809 : //double q=0.034571542*pow(tt,1.5); // Q(300 K)=179.639 JPL Line Catalog
2810 52910 : double q=0.034571542*tt*sqrt(tt); // Q(300 K)=179.639 JPL Line Catalog
2811 : unsigned int vp;
2812 : unsigned int ini;
2813 : unsigned int ifin;
2814 52910 : std::complex<double> lshape;
2815 52910 : std::complex<double> lshapeacum;
2816 :
2817 :
2818 52910 : if(nu>999.9){
2819 :
2820 0 : return std::complex<double> (0.0,0.0);
2821 :
2822 : }else{
2823 :
2824 52910 : vp=vpIndex(nu);
2825 :
2826 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
2827 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
2828 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
2829 :
2830 52910 : if(ifin==0||ifin<ini){
2831 :
2832 0 : return std::complex<double> (0.0,0.0);
2833 :
2834 : }else{
2835 :
2836 107045 : for(unsigned int i=ini; i<ifin+1; i++){
2837 :
2838 54135 : lshape=lineshape(nu,fre[i],linebroadening_hh18o_hh17o(tt,pp,eh2o,dv0[i],dvlm[i],temp_exp[i]),0.0);
2839 54135 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2840 54135 : lshapeacum=lshapeacum+lshape;
2841 :
2842 : }
2843 :
2844 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2845 : // real part: delay in rad*cm^2
2846 :
2847 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
2848 :
2849 : }
2850 :
2851 : }
2852 :
2853 : }
2854 :
2855 : //////////////////////// Opacity Source Number: 2 //////////////////////////////
2856 :
2857 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o_vib(double tt, double pp, double eh2o, double nu){
2858 :
2859 : static const double fre[6]={363.717932,420.232268,482.757899,706.772490,765.423334,825.814211};
2860 :
2861 : static const double flin[6]={.04800, .39245, .12804, .04000, .21283, .06343};
2862 :
2863 : static const double el[6]={5.70,2.95,2.95,25.97,23.18,23.18};
2864 :
2865 : static const double pi=3.141592654;
2866 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2867 : static const double mu=0.0186; //Debyes (M1 Transitions)
2868 :
2869 52910 : double q=0.72923*tt;
2870 52910 : std::complex<double> lshape;
2871 52910 : std::complex<double> lshapeacum;
2872 :
2873 52910 : double dv0=2.0;
2874 :
2875 52910 : if(nu>999.9){return std::complex<double> (0.0,0.0);}
2876 :
2877 370370 : for(unsigned int i=0; i<6; i++){
2878 :
2879 317460 : lshape=lineshape(nu,fre[i], linebroadening_o2(fre[i],tt,pp,eh2o,32.0,dv0,0.2),0.0);
2880 317460 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2881 317460 : lshapeacum=lshapeacum+lshape;
2882 :
2883 : }
2884 :
2885 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2886 : // real part: delay in rad*cm^2
2887 :
2888 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
2889 :
2890 : }
2891 :
2892 : //////////////////////// Opacity Source Number: 4 //////////////////////////////
2893 :
2894 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o17o(double tt, double pp, double eh2o, double nu){
2895 :
2896 : static const double fre[14]={
2897 : 239.89920,304.81682,412.53217,474.78769,356.03171,582.32937,
2898 : 643.33256,524.57590,751.19854,811.40203,692.64446,919.63186,
2899 : 979.23889,860.48018};
2900 :
2901 : static const double flin[14]={
2902 : .738E+00, .261E+00, .416E+00, .136E+00, .510E-01, .292E+00,
2903 : .900E-01, .480E-01, .226E+00, .670E-01, .420E-01, .184E+00,
2904 : .530E-01, .370E-01};
2905 :
2906 : static const double el[14]={
2907 : .000, .000, 3.900, 3.900, 6.600, 11.900,
2908 : 11.900, 14.600, 23.900, 23.900, 26.700, 39.900,
2909 : 39.900, 42.800};
2910 :
2911 :
2912 : static const double pi=3.141592654;
2913 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2914 : static const double mu=0.0186; //Debyes (M1 Transitions)
2915 :
2916 52910 : double q=1.536568889*tt;
2917 52910 : std::complex<double> lshape;
2918 52910 : std::complex<double> lshapeacum;
2919 :
2920 52910 : double dv0=2.0;
2921 :
2922 52910 : if(nu>999.9){return std::complex<double> (0.0,0.0);}
2923 :
2924 793650 : for(unsigned int i=0; i<14; i++){
2925 :
2926 740740 : lshape=lineshape(nu,fre[i],linebroadening_o2(fre[i],tt,pp,eh2o,33.0,dv0,0.2),0.0);
2927 740740 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2928 740740 : lshapeacum=lshapeacum+lshape;
2929 :
2930 : }
2931 :
2932 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2933 : // real part: delay in rad*cm^2
2934 :
2935 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
2936 :
2937 : }
2938 :
2939 :
2940 : //////////////////////// Opacity Source Number: 3 //////////////////////////////
2941 :
2942 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o18o(double tt, double pp, double eh2o, double nu){
2943 :
2944 : static const double fre[15]={
2945 : 233.94611,298.47306,401.73972,463.77817,345.01768,566.89542,
2946 : 627.75661,508.99550,731.18612,791.29170,672.52976,895.07000,
2947 : 954.60941,835.84642,999.02720};
2948 :
2949 : static const double flin[15]={
2950 : .776E+00, .276E+00, .439E+00, .143E+00, .540E-01, .308E+00,
2951 : .950E-01, .510E-01, .238E+00, .710E-01, .440E-01, .194E+00,
2952 : .560E-01, .390E-01, .340E-01};
2953 :
2954 : static const double el[15]={
2955 : .000, .000, 3.800, 3.800, 6.500, 11.600,
2956 : 11.600, 14.300, 23.300, 23.300, 26.100, 38.900,
2957 : 38.900, 41.700, 61.300};
2958 :
2959 : static const double pi=3.141592654;
2960 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2961 : static const double mu=0.0186; //Debyes (M1 Transitions)
2962 :
2963 52910 : double q=1.536568889*tt;
2964 52910 : std::complex<double> lshape;
2965 52910 : std::complex<double> lshapeacum;
2966 :
2967 52910 : double dv0=2.0;
2968 :
2969 52910 : if(nu>999.9){return std::complex<double> (0.0,0.0);}
2970 :
2971 846560 : for(unsigned int i=0; i<15; i++){
2972 :
2973 793650 : lshape=lineshape(nu,fre[i], linebroadening_o2(fre[i],tt,pp,eh2o,34.0,dv0,0.2),0.0);
2974 793650 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2975 793650 : lshapeacum=lshapeacum+lshape;
2976 :
2977 : }
2978 :
2979 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2980 : // real part: delay in rad*cm^2
2981 :
2982 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
2983 :
2984 : }
2985 :
2986 : //////////////////////// Opacity Source Number: 1 //////////////////////////////
2987 :
2988 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o(double tt, double pp, double eh2o, double nu){
2989 :
2990 : static const double fre[55]={
2991 : 50.473557,50.987199,51.502912,52.021065,52.542126,53.066702,53.595595,54.129887,54.671077,55.221309,
2992 : 55.783762,56.264778,56.363362,56.968188,57.612473,58.323870,58.446594,59.164203,59.590988,60.306059,
2993 : 60.434783,61.150565,61.800158,62.411215,62.486259,62.997970,63.568500,64.127733,64.678846,65.223985,
2994 : 65.764647,66.301917,66.836594,67.369286,67.900462,68.430489,68.959664,118.750345,368.498440,424.763123,
2995 : 487.249381,715.393320,773.839669,834.145728,1061.124062,1120.715051,1179.879254,1406.372391,1466.807173,
2996 : 1525.131044,1751.254916,1812.405481,1870.017954,2095.777726,2157.577883};
2997 :
2998 : static const double flin[55]={
2999 : 74.96623,70.96429,66.96212,62.95966,58.95686,54.95363,50.94989,46.94549,42.94023,38.93385,
3000 : 34.92593, 2.45198,30.91587,26.90263,22.88444,18.85787, 6.71035,14.81540,10.80290,10.73657,
3001 : 14.85057,18.87966,22.89926,26.91337,6.53862,30.92400,34.93231,38.93898,42.94445,46.94902,
3002 : 50.95289,54.95621,58.95910,62.96162,66.96385,70.96584,74.96761, 2.00000, .04800, .39245,
3003 : .12804, .04000, .21283, .06343, .03044,.14656, .04174, .02443, .11187, .03102,
3004 : .02034, .09050, .02465, .01740, .07601};
3005 :
3006 : static const double el[55]={
3007 : 2893.8,2594.5,2311.3,2044.2,1793.4,1558.9,1340.6,1138.7, 953.1, 784.0,
3008 : 631.2, 3.0, 494.9, 375.1, 271.7,184.9, 23.6, 114.5, 60.8, 60.7,
3009 : 114.5, 184.7, 271.5, 374.8, 23.4,494.6, 630.8, 783.5, 952.7,1138.2,
3010 : 1340.0,1558.2,1792.7,2043.5,2310.5,2593.6,2892.9, .0, 5.7, 3.0,
3011 : 3.0, 26.5, 23.6, 23.6, 63.6,60.8, 60.8, 117.4, 114.5, 114.5,
3012 : 187.7, 184.7, 184.7, 274.5, 271.5};
3013 :
3014 : static const double ensanche[55][4]={
3015 : {.890 , .8 , .240 , .790},{.910 , .8 , .220 , .780},{.940 , .8 , .197 , .774},{.970 , .8 , .166 , .764},
3016 : {.990 , .8 , .136 , .751},{1.020 , .8 , .131 , .714},{1.050 , .8 , .230 , .584},{1.070 , .8 , .335 , .431},
3017 : {1.100 , .8 , .374 , .305},{1.130 , .8 , .258 , .339},{1.170 , .8 , -0.166 , .705},{1.730 , .8 , .390 , -0.113},
3018 : {1.200 , .8 , -0.297 , .753},{1.240 , .8 , -0.416 , 0.742},{1.280 , .8 , -0.613 , 0.697},{1.330 , .8 , -0.205 , 0.051},
3019 : {1.520 , .8 , 0.748 , -0.146},{1.390 , .8 , -0.722 , 0.266},{1.430 , .8 , 0.765 , -0.090},{1.450 , .8 , -0.705 , 0.081},
3020 : {1.360 , .8 , 0.697 , -0.324},{1.310 , .8 , 0.104 , -0.067},{1.270 , .8 , 0.570 , -0.761},{1.230 , .8 , 0.360 , -0.777},
3021 : {1.540 , .8 , -0.498 , 0.097},{1.200 , .8 , 0.239 , -0.768},{1.170 , .8 , 0.108 , -0.706},{1.130 , .8 , -0.311 , -0.332},
3022 : {1.100 , .8 , -0.421 , -0.298},{1.070 , .8 , -0.375 , -0.423},{1.050 , .8 , -0.267 , -0.575},{1.020 , .8 , -0.168 , -0.700},
3023 : {0.990 , .8 , -0.169 , -0.735},{0.970 , .8 , -0.200 , -0.744},{0.940 , .8 , -0.228 , -0.753},{.920 , .8 , -0.240 , -0.760},
3024 : {.900 , .8 , -0.250 , -0.765},{1.630 , .8 , -0.036 , 0.009},{1.920 , .2 , .0 , .0},{1.930 , .2 , .0 , .0},
3025 : {1.920 , .2 , .0 , .0},{1.810 , .2 , .0 , .0},{1.820 , .2 , .0 , .0},{1.810 , .2 , .0 , .0},
3026 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},
3027 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},
3028 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0}};
3029 :
3030 :
3031 : static const unsigned int ifin1[800]={ // NEW PATCH 16 SEP 2016
3032 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3033 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3034 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3035 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3036 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3037 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3038 : 42, 42, 42, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3039 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3040 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3041 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3042 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3043 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3044 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3045 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3046 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3047 : 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
3048 : 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
3049 : 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
3050 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
3051 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
3052 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51,
3053 : 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52,
3054 : 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53,
3055 : 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
3056 : 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
3057 : 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
3058 : 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54}; // NEW PATCH 16 SEP 2016
3059 :
3060 : static const unsigned int ini1[800]={ // NEW PATCH 16 SEP 2016
3061 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3062 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3063 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3064 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3065 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3066 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3067 : 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3068 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3069 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3070 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3071 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3072 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3073 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3074 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3075 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
3076 : 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3077 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3078 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3079 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3080 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3081 : 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
3082 : 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3083 : 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3084 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3085 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3086 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3087 : 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46}; // NEW PATCH 16 SEP 2016
3088 :
3089 : static const unsigned int ifin2[800]={ // NEW PATCH 16 SEP 2016
3090 : 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3091 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3092 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
3093 : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3094 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3095 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
3096 : 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3097 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3098 : 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3099 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3100 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3101 : 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
3102 : 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3103 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3104 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3105 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3106 : 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3107 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
3108 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3109 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3110 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3111 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
3112 : 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49,
3113 : 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50,
3114 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
3115 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
3116 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}; // NEW PATCH 16 SEP 2016
3117 :
3118 : static const unsigned int ini2[800]={ // NEW PATCH 16 SEP 2016
3119 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3120 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3121 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3122 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3123 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3124 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3125 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
3126 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40,
3127 : 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41,
3128 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3129 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
3130 : 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42,
3131 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
3132 : 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
3133 : 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3134 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
3135 : 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3136 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3137 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
3138 : 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
3139 : 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
3140 : 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48,
3141 : 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
3142 : 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
3143 : 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
3144 : 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
3145 : 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}; // NEW PATCH 16 SEP 2016
3146 :
3147 :
3148 : static const double pi=3.141592654;
3149 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3150 : static const double mu=0.0186; //Debyes (M1 Transitions)
3151 :
3152 52910 : double q=0.72923*tt;
3153 : unsigned int vp;
3154 : unsigned int ini;
3155 : unsigned int ifin;
3156 52910 : std::complex<double> lshape;
3157 52910 : std::complex<double> lshapeacum;
3158 :
3159 :
3160 52910 : if(nu>1599.9){ // FIXED 15/11/2018 999.0 --> 1599.9
3161 :
3162 0 : return std::complex<double> (0.0,0.0);
3163 :
3164 : }else{
3165 :
3166 52910 : vp=vpIndex(nu);
3167 :
3168 52910 : if(pp<25){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ if(pp<300){ ini=ini1[vp]; ifin=ifin1[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; }} // NEW PATCH 16 SEP 2016
3169 :
3170 :
3171 52910 : if(ini<38&&nu>135.0){ini=38;}
3172 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
3173 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
3174 :
3175 52910 : if(ifin==0||ifin<ini||(ini>0&&ifin==36)){
3176 :
3177 0 : return std::complex<double> (0.0,0.0);
3178 :
3179 : }else{
3180 :
3181 2032353 : for(unsigned int i=ini; i<ifin+1; i++){
3182 :
3183 1979443 : lshape=lineshape(nu,fre[i],linebroadening_o2(fre[i],tt,pp,eh2o,32.0,ensanche[i][0],ensanche[i][1]),
3184 1979443 : interf_o2(tt,pp,ensanche[i][2],ensanche[i][3]));
3185 :
3186 1979443 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3187 1979443 : lshapeacum=lshapeacum+lshape;
3188 :
3189 : }
3190 :
3191 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
3192 : // real part: delay in rad*cm^2
3193 :
3194 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
3195 :
3196 :
3197 :
3198 : }
3199 :
3200 : }
3201 :
3202 : }
3203 :
3204 : //////////////////////// Opacity Source Number: 18 /////////////////////////////
3205 :
3206 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o_v1(double tt, double pp, double nu){
3207 :
3208 : static const double fre[666] = {
3209 : 56.32262, 60.12735, 60.56912, 66.33307, 69.29689, 71.61163, 77.99631, 84.18972, 85.54551, 91.15601, 93.31576, 96.15456, 98.34086, 98.85639, 100.60193, 101.21991, 103.23577, 106.45254,
3210 : 108.13591,109.55845, 113.54478, 116.71116, 118.49730, 121.65349,123.84758,126.06654, 126.98120, 127.32609, 136.63433, 138.10425,138.71323,139.65140, 141.66940, 143.54189, 148.81509, 156.99209,
3211 : 158.26782,159.53502, 163.99924, 165.31612, 167.11342, 167.19221,171.58626,174.51850, 174.66182, 177.42096, 180.42414, 180.63175,181.73112,182.37700, 186.46039, 188.35683, 191.11182, 192.19449,
3212 : 196.18717,196.86555, 200.44139, 207.24943, 207.47224, 209.45354,210.05138,210.81483, 212.72347, 214.58850, 217.26735, 219.13616,227.28131,227.93809, 229.74040, 233.99684, 236.06780, 237.31443,
3213 : 238.67545,239.63524, 241.15622, 244.21723, 244.40412, 244.43116,244.80601,247.28023, 250.36649, 251.20555, 252.10022, 253.13974,254.38199,256.46118, 257.02686, 257.44821, 260.55560, 261.68853,
3214 : 262.81577,266.18744, 266.69739, 268.62829, 269.85384, 274.97493,275.34705,277.43617, 278.63404, 279.54118, 279.97645, 286.25673,286.47214,288.86771, 291.05313, 292.60275, 294.24302, 296.35055,
3215 : 298.12033,299.44582, 300.14008, 300.88199, 301.82362, 302.66557,305.37588,313.11752, 313.96726, 315.01457, 318.07600, 321.90121,322.83151,325.39926, 329.07958, 329.35203, 329.63537, 331.46240,
3216 : 331.83284,332.10204, 333.07112, 337.67805, 338.29249, 340.94843,344.17252,347.19298, 347.96235, 348.03847, 348.57830, 354.14930,355.41835,356.65047, 357.21948, 359.07333, 360.07834, 363.76751,
3217 : 364.31640,366.89976, 367.63664, 367.68432, 368.31439, 369.01238,370.68160,373.08180, 373.51896, 380.00239, 382.37914, 383.07177,385.73513,387.08528, 389.63299, 392.41460, 392.70860, 399.28973,
3218 : 399.45174,400.00220, 400.31612, 400.83638, 402.60472, 404.70342,405.10461,405.33098, 405.91996, 408.72750, 412.40257, 414.15575,415.29120,415.32681, 415.39755, 418.49538, 418.60926, 419.42034,
3219 : 421.88499,424.79251, 427.08175, 427.14631, 428.46758, 430.06011,430.55019,432.93300, 433.45322, 434.39927, 434.72439, 440.62363,442.26964,443.47072, 444.18047, 444.31909, 444.51987, 444.93163,
3220 : 446.24275,449.21056, 450.36394, 452.33435, 452.34094, 454.28219,455.73534,459.75325, 459.94793, 460.82371, 464.69765, 465.13074,465.61929,466.06593, 466.57682, 467.61732, 469.08544, 469.66185,
3221 : 469.82535,469.84092, 469.99313, 470.42049, 471.10105, 471.33768,472.14969,473.00787, 474.12556, 475.72953, 475.79012, 476.01751,479.41275,479.43414, 479.82150, 480.02805, 480.99720, 481.32413,
3222 : 481.61774,482.00733, 483.36690, 485.09307, 485.22282, 485.47628,485.60725,486.39632, 488.41537, 490.17272, 491.36155, 491.48542,493.39923,495.08933, 495.39256, 501.13332, 501.22029, 503.48418,
3223 : 503.87637,505.72286, 505.86547, 506.05667, 506.16194, 506.18081,507.41626,508.98621, 510.92231, 515.36205, 516.10994, 516.43384,516.67450,518.37829, 518.91860, 519.24151, 520.61070, 520.91304,
3224 : 523.47669,524.90463, 526.54528, 526.56774, 530.96732, 531.35734,531.36725,531.47446, 534.22109, 536.33441, 541.92030, 542.09896,544.43620,545.28283, 545.67584, 546.37068, 549.33079, 549.71760,
3225 : 551.89532,553.41942, 555.34228, 556.73365, 556.94081, 560.03381,561.68767,566.30070, 566.46331, 566.63082, 567.15473, 567.85064,567.90728,569.24221, 570.28707, 570.49040, 570.58137, 570.91661,
3226 : 571.78117,572.58147, 575.38384, 577.17245, 582.46959, 584.35818,586.42326,587.00477, 587.73352, 587.77395, 588.17021, 589.00198,592.28135,592.31326, 592.35663, 593.67464, 595.08456, 595.48245,
3227 : 597.13876,598.19171, 599.42247, 602.42489, 602.97283, 604.03380,607.94872,609.89261, 612.27768, 613.02473, 613.34754, 616.84709,617.54397,618.21007, 618.84739, 619.40050, 620.82655, 621.00256,
3228 : 622.17134,622.45182, 622.94655, 625.01144, 627.64469, 630.65976,632.83383,633.06397, 633.24384, 633.37721, 637.51756, 638.93754,639.61072,642.71497, 645.08659, 645.09537, 645.26291, 646.06934,
3229 : 647.06520,647.71941, 648.89081, 650.51085, 652.06684, 652.84289,653.41797,655.22008, 655.92342, 656.06902, 656.09226, 656.26647,656.35466,656.65907, 656.80170, 656.82310, 656.91045, 657.07878,
3230 : 657.08186,657.16521, 657.17467, 657.18785, 657.19025, 657.68899,658.32316,658.75796, 660.37246, 660.96246, 662.72351, 664.02630,665.04551,665.76740, 667.87623, 670.20403, 670.51512, 670.73289,
3231 : 670.90212,671.85036, 672.94655, 698.13443, 702.12840, 702.28165,703.03398,703.18050, 709.11752, 709.37874, 713.05428, 716.50097,716.63048,717.17953, 717.89948, 717.94774, 718.91078, 719.58275,
3232 : 721.90903,723.28663, 723.31186, 724.58165, 728.32796, 728.68187,728.83776,730.00683, 734.62132, 735.16339, 736.62060, 738.18520,740.96718,740.96869, 741.51835, 745.29940, 747.43936, 747.60839,
3233 : 748.40523,748.89572, 748.95189, 753.46564, 756.75160, 757.83732,758.35661,758.76748, 759.82029, 761.19917, 761.89788, 762.85226,763.29730,767.09468, 767.61829, 772.93131, 773.49326, 773.89629,
3234 : 775.76903,776.98342, 778.09753, 778.59628, 781.60703, 783.01085,783.10450,784.15200, 784.97654, 786.66768, 787.22610, 787.62016,788.39401,789.18530, 793.73899, 793.92795, 795.85039, 797.08155,
3235 : 798.38487,798.55318, 799.02592, 801.28418, 803.72267, 804.53158,805.40569,805.93141, 806.41119, 806.57472, 807.17167, 807.31748,808.18410,809.43467, 810.09119, 810.79538, 811.85443, 813.24529,
3236 : 813.47820,816.08254, 817.19729, 819.02300, 821.69574, 823.58783,823.79976,826.29262, 828.84723, 828.92001, 829.72303, 831.69679,833.12055,833.24483, 833.34268, 833.98244, 834.05825, 835.16522,
3237 : 835.29911,835.64609, 835.85913, 836.15160, 836.60828, 836.67342,836.74895,838.23638, 838.48614, 838.54520, 838.55288, 839.25786,839.63705,839.95928, 840.49380, 840.87026, 841.29986, 841.38826,
3238 : 841.88368,841.89298, 842.69243, 842.81886, 843.27828, 843.42213,843.67512,843.78616, 843.91606, 843.98153, 844.02407, 844.03747,844.04424,844.06150, 844.06279, 844.07257, 844.07512, 845.73163,
3239 : 848.59988,849.17560, 849.82640, 851.79636, 853.77428, 853.97218,854.90212,856.49894, 858.51174, 860.19968, 860.47862, 861.83011,862.59832,863.62080, 863.69239, 864.01684, 864.24009, 864.35788,
3240 : 865.26485,866.05879, 866.31374, 867.74952, 868.99315, 872.73940,873.59215,874.43623, 874.51177, 877.47019, 877.70572, 878.75871,881.35897,881.36681, 883.07892, 883.61046, 885.19563, 885.80968,
3241 : 887.98885,888.68465, 891.26726, 893.56860, 893.98398, 894.64506,897.42056,897.47360, 898.56741, 899.80748, 900.56569, 901.01586,903.15000,907.16521, 908.16879, 908.79727, 909.48601, 909.91393,
3242 : 909.98112,910.15419, 913.29503, 913.74695, 914.12012, 914.34311,915.63434,917.26602, 920.00036, 922.04927, 923.52855, 924.82275,925.06173,929.53532, 932.70720, 933.73116, 934.14079, 934.53741,
3243 : 934.66297,935.01694, 935.07653, 935.29581, 935.67426, 938.35059,938.81009,941.94142, 943.26205, 943.33399, 944.81071, 947.68152,948.47843,950.27326, 953.02120, 957.08315, 959.02762, 959.96394,
3244 : 960.39622,960.49677, 960.83281, 961.09020, 961.90512, 961.93041,962.17344,963.87630, 966.24899, 966.41783, 967.70572, 968.43274,969.25619,969.47424, 969.84707, 973.41999, 973.61940, 975.44060,
3245 : 975.56576,981.37877, 981.53804, 982.66663, 983.57350, 984.81783,986.50649,987.26748, 987.81624, 988.47613, 988.83493, 988.94762,989.44755,989.44802, 995.03809, 995.24924, 997.58337, 998.35617 };
3246 :
3247 : static const double texpO3[666] ={
3248 : 0.77,0.78,0.77,0.76,0.79,0.77,0.79,0.79,0.80,0.77,0.80,0.76,0.77,0.78,0.81,0.76,0.78,0.80,0.80,0.78,0.82,0.76,0.76,0.77,0.77,0.80,0.77,0.79,0.81,0.77,0.77,0.82,0.78,
3249 : 0.83,0.77,0.77,0.80,0.77,0.81,0.76,0.76,0.82,0.79,0.76,0.83,0.78,0.80,0.79,0.82,0.77,0.77,0.83,0.82,0.81,0.77,0.78,0.83,0.83,0.78,0.76,0.79,0.76,0.77,0.83,0.81,0.78,
3250 : 0.83,0.78,0.84,0.79,0.78,0.78,0.77,0.76,0.77,0.78,0.77,0.81,0.77,0.79,0.78,0.77,0.77,0.82,0.83,0.79,0.81,0.78,0.77,0.79,0.76,0.77,0.76,0.76,0.80,0.79,0.76,0.78,0.78,
3251 : 0.82,0.76,0.76,0.79,0.76,0.77,0.76,0.77,0.80,0.76,0.77,0.79,0.78,0.77,0.77,0.82,0.79,0.78,0.84,0.76,0.80,0.76,0.79,0.77,0.77,0.77,0.82,0.83,0.80,0.76,0.81,0.78,0.83,
3252 : 0.78,0.77,0.80,0.78,0.79,0.77,0.76,0.78,0.81,0.80,0.81,0.80,0.78,0.83,0.81,0.77,0.78,0.76,0.80,0.79,0.79,0.77,0.82,0.81,0.79,0.76,0.78,0.78,0.83,0.79,0.79,0.76,0.79,
3253 : 0.76,0.76,0.82,0.77,0.80,0.78,0.81,0.78,0.84,0.78,0.81,0.78,0.83,0.79,0.78,0.82,0.79,0.79,0.79,0.78,0.78,0.77,0.76,0.79,0.81,0.83,0.78,0.78,0.77,0.82,0.76,0.76,0.78,
3254 : 0.78,0.79,0.79,0.77,0.79,0.76,0.77,0.77,0.80,0.76,0.77,0.81,0.78,0.78,0.78,0.77,0.76,0.76,0.82,0.76,0.76,0.77,0.76,0.77,0.83,0.77,0.76,0.77,0.79,0.84,0.76,0.83,0.78,
3255 : 0.84,0.77,0.76,0.79,0.76,0.77,0.78,0.76,0.80,0.78,0.80,0.79,0.83,0.77,0.76,0.78,0.76,0.82,0.76,0.79,0.79,0.76,0.84,0.82,0.77,0.80,0.76,0.76,0.82,0.80,0.84,0.79,0.79,
3256 : 0.77,0.76,0.81,0.79,0.77,0.82,0.76,0.82,0.79,0.78,0.76,0.76,0.76,0.79,0.76,0.80,0.77,0.76,0.76,0.76,0.81,0.81,0.76,0.80,0.78,0.80,0.77,0.79,0.83,0.80,0.79,0.76,0.76,
3257 : 0.81,0.77,0.81,0.76,0.79,0.76,0.76,0.79,0.80,0.81,0.77,0.82,0.78,0.83,0.76,0.80,0.79,0.76,0.78,0.76,0.76,0.76,0.80,0.77,0.76,0.76,0.76,0.81,0.83,0.76,0.78,0.76,0.80,
3258 : 0.83,0.76,0.79,0.79,0.81,0.76,0.77,0.78,0.79,0.76,0.79,0.76,0.81,0.81,0.80,0.76,0.78,0.79,0.81,0.76,0.83,0.82,0.79,0.76,0.79,0.77,0.76,0.77,0.77,0.78,0.78,0.80,0.81,
3259 : 0.78,0.82,0.78,0.78,0.77,0.78,0.78,0.79,0.77,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.80,0.79,0.76,0.76,0.80,0.79,0.76,0.80,0.81,0.77,0.80,0.76,0.84,
3260 : 0.81,0.77,0.80,0.80,0.82,0.79,0.80,0.77,0.76,0.76,0.78,0.84,0.76,0.82,0.83,0.82,0.80,0.83,0.83,0.80,0.77,0.77,0.77,0.82,0.76,0.79,0.76,0.76,0.83,0.78,0.83,0.83,0.77,
3261 : 0.76,0.83,0.81,0.79,0.81,0.84,0.77,0.83,0.76,0.84,0.80,0.81,0.76,0.82,0.83,0.78,0.81,0.82,0.76,0.79,0.76,0.77,0.76,0.84,0.77,0.82,0.76,0.76,0.76,0.81,0.77,0.76,0.76,
3262 : 0.78,0.80,0.76,0.81,0.84,0.82,0.83,0.79,0.76,0.76,0.77,0.76,0.76,0.81,0.82,0.83,0.76,0.76,0.76,0.81,0.76,0.76,0.78,0.76,0.78,0.81,0.83,0.81,0.81,0.79,0.76,0.80,0.77,
3263 : 0.78,0.77,0.80,0.82,0.82,0.77,0.83,0.81,0.76,0.81,0.79,0.76,0.83,0.76,0.76,0.80,0.80,0.79,0.76,0.78,0.76,0.77,0.84,0.79,0.79,0.76,0.82,0.78,0.79,0.78,0.78,0.78,0.78,
3264 : 0.78,0.77,0.77,0.77,0.76,0.77,0.76,0.77,0.77,0.77,0.77,0.76,0.79,0.76,0.76,0.83,0.76,0.77,0.76,0.81,0.77,0.80,0.76,0.82,0.82,0.77,0.77,0.76,0.76,0.76,0.76,0.83,0.76,
3265 : 0.78,0.76,0.76,0.79,0.76,0.76,0.77,0.76,0.76,0.76,0.83,0.76,0.77,0.80,0.78,0.82,0.77,0.84,0.77,0.76,0.77,0.84,0.78,0.78,0.76,0.76,0.76,0.78,0.78,0.76,0.77,0.76,0.82,
3266 : 0.76,0.80,0.76,0.77,0.76,0.84,0.82,0.83,0.76,0.76,0.78,0.78,0.76,0.76,0.82,0.77,0.79,0.76,0.83,0.76,0.79,0.76,0.76,0.76,0.77,0.76,0.83,0.76,0.78,0.76,0.78,0.76,0.83,
3267 : 0.83,0.77,0.79,0.76,0.78,0.76,0.76,0.76,0.79,0.76,0.77,0.76,0.76,0.83,0.76,0.83,0.76,0.76,0.78,0.83,0.76,0.76,0.83,0.76,0.76,0.77,0.79,0.79,0.76,0.84,0.76,0.76,0.77,
3268 : 0.76,0.76,0.76,0.83,0.83,0.78};
3269 :
3270 :
3271 :
3272 :
3273 : static const double brdO3air[666] ={
3274 : 2.4859,2.2877,2.3439,2.5155,2.1574,2.3883,2.1870,2.2018,2.1338,2.4060,2.1130,2.5895,2.3498,2.2314,2.0953,2.5244,2.3291,2.1130,2.1249,2.2314,2.0687,2.5392,2.7405,2.4149,2.4386,2.1249,2.4771,
3275 : 2.2166,2.0835,2.3705,2.3439,2.0716,2.2314,2.0598,2.3735,2.3942,2.1338,2.3291,2.0775,2.6428,2.5540,2.0716,2.2018,2.5925,2.0568,2.2492,2.1042,2.1456,2.0598,2.3735,2.2936,2.0568,2.0627,2.0835,
3276 : 2.4208,2.2669,2.0568,2.0598,2.3025,2.5540,2.1574,2.6428,2.4445,2.0568,2.0894,2.2610,2.0598,2.2877,2.0598,2.1722,2.2610,2.2344,2.2936,2.3000,2.3143,2.2078,2.3291,2.0953,2.4711,2.1722,2.3084,
3277 : 2.4771,2.3705,2.0598,2.0568,2.1841,2.0894,2.2344,2.4149,2.1870,2.3000,2.4978,2.0627,2.4682,2.1042,2.1604,2.5244,2.2640,2.3291,2.0627,2.5895,2.5570,2.2018,2.3000,2.4060,2.4948,2.5244,2.1130,
3278 : 2.3000,2.2640,2.1397,2.2078,2.4415,2.3498,2.0687,2.2166,2.2196,2.0598,2.5540,2.1249,2.3000,2.1456,2.3498,2.3735,2.3439,2.0716,2.0568,2.1190,2.6901,2.0775,2.2314,2.0568,2.2255,2.3113,2.1338,
3279 : 2.2255,2.1841,2.3113,2.6191,2.2166,2.0775,2.1900,2.1663,2.1190,2.2492,2.0568,2.1456,2.2877,2.2788,2.6132,2.1900,2.1397,2.1456,2.4208,2.1249,2.0835,2.1604,2.5984,2.2669,2.2462,2.0568,2.1574,
3280 : 2.1604,2.3000,2.1841,2.5658,2.3000,2.1071,2.4445,2.1249,2.2403,2.0894,2.1782,2.0598,2.2877,2.1663,2.2078,2.0598,2.1900,2.2196,2.0687,2.1722,2.1456,2.1722,2.2196,2.2344,2.4711,2.3000,2.2018,
3281 : 2.0953,2.0923,2.3084,2.2610,2.5126,2.0598,2.3000,2.5155,2.1959,2.2314,2.1959,2.1870,2.2936,2.1397,2.3000,2.4978,2.3291,2.1042,2.3000,2.3705,2.1456,2.2669,2.3291,2.1426,2.4149,2.4682,2.5244,
3282 : 2.0627,2.5570,2.4948,2.4415,2.3000,2.3912,2.0746,2.3498,2.0509,2.3113,2.2018,2.0627,2.3000,2.0746,2.2788,2.0598,2.5244,2.3000,2.1722,2.3000,2.4623,2.1604,2.0391,2.1130,2.2462,2.1042,2.1574,
3283 : 2.0923,2.3498,2.3000,2.2196,2.3000,2.0687,2.3000,2.2166,2.1959,2.0302,2.0598,2.1071,2.4386,2.1190,2.5540,2.3000,2.0598,2.1249,2.0627,2.1722,2.1515,2.3735,2.3000,2.1574,2.1130,2.4120,2.0716,
3284 : 2.3000,2.1249,2.1278,2.2314,2.0213,2.0302,2.5836,2.1515,2.3000,2.1338,2.3942,2.3000,2.3000,2.4948,2.1456,2.0775,2.3000,2.1308,2.2492,2.1308,2.3676,2.1278,2.0568,2.1900,2.1456,2.3000,2.0154,
3285 : 2.1663,2.4208,2.0894,2.3000,2.0983,2.0509,2.6132,2.0864,2.1071,2.0835,2.3735,2.1071,2.2669,2.0568,2.3000,2.1900,2.1574,2.3000,2.3232,2.3000,2.3000,2.3000,2.1071,2.4445,2.3000,2.5836,2.5836,
3286 : 2.0894,2.0568,2.0154,2.2877,2.3000,2.1190,2.0598,2.0095,2.1722,2.0746,2.1663,2.0213,2.4711,2.2817,2.1397,2.3000,2.0657,2.5540,2.1574,2.0953,2.0983,2.0391,2.3084,2.1604,2.1782,2.3000,2.0923,
3287 : 2.0598,2.1870,2.0302,2.1841,2.4978,2.3000,2.3143,2.5244,2.2078,2.2433,2.1042,2.0775,2.2344,2.1367,2.3291,2.2610,2.2936,2.2196,2.2462,2.1959,2.3291,2.2788,2.3113,2.3291,2.3705,2.3498,2.3912,
3288 : 2.3912,2.4415,2.3705,2.5244,2.5244,2.0539,2.1515,2.0391,2.3000,2.1308,2.2018,2.0391,2.1071,2.1456,2.5244,2.0450,2.3000,2.0598,2.1782,2.4978,2.1130,2.1249,2.1160,2.1722,2.0361,2.3735,2.3000,
3289 : 2.3000,2.2314,2.0627,2.3000,2.1249,2.0983,2.1367,2.0272,2.0983,2.0568,2.1338,2.4445,2.2640,2.3942,2.0687,2.3000,2.1426,2.3000,2.3000,2.0835,2.2492,2.0746,2.0746,2.4208,2.3000,2.0568,2.0479,
3290 : 2.1456,2.0183,2.0627,2.4208,2.0835,2.4356,2.0687,2.1130,2.0835,2.3000,2.1160,2.0923,2.2669,2.0124,2.1071,2.3000,2.1574,2.3000,2.3942,2.3000,2.0598,2.4445,2.1071,2.5836,2.0568,2.3000,2.0894,
3291 : 2.3735,2.3000,2.3000,2.2877,2.0864,2.3000,2.0035,2.0687,2.1249,2.0598,2.1722,2.3000,2.3000,2.4711,2.3000,2.0509,2.0272,2.0598,2.0983,2.3000,2.3000,2.5540,2.1456,2.3000,2.0450,2.2166,2.3000,
3292 : 2.3084,1.9976,2.0923,2.1663,2.0598,2.1870,2.3000,2.1900,2.4978,2.3291,2.3498,2.1190,2.1160,2.1367,2.5244,2.0983,2.1574,2.3000,2.1782,2.1397,2.3000,2.0835,2.0568,2.3000,2.1071,2.1308,2.1604,
3293 : 2.3000,2.3291,2.3000,2.5244,2.0687,2.1841,2.1722,2.0331,1.9888,2.2078,2.1959,2.2196,2.2344,2.2462,2.2610,2.2788,2.2936,2.3113,2.3291,2.4948,2.3498,2.4682,2.4415,2.4415,2.4149,2.4149,2.0568,
3294 : 2.2018,2.3000,2.3000,2.0835,2.0450,2.5244,2.3000,2.0391,2.4978,2.1130,2.0391,2.0095,1.9828,2.3498,2.3291,2.3000,2.3000,2.0331,2.3000,2.0746,2.3000,2.2877,2.3000,2.3000,2.2166,2.0243,2.3000,
3295 : 2.2936,2.0243,2.0450,2.3000,2.0568,2.3000,2.4711,2.1249,2.3084,1.9740,2.3735,2.0598,2.4711,2.0183,2.4445,2.0687,2.2610,2.2314,2.3000,2.3000,2.3000,2.2492,2.1782,2.3000,2.4445,2.3000,1.9680,
3296 : 2.0183,2.1338,2.0124,2.3942,2.0302,2.0627,1.9917,2.0568,2.3000,2.0331,2.2492,2.2344,2.3000,2.0065,2.0006,2.4208,2.2166,2.3000,1.9592,2.3000,2.1456,2.3000,2.0095,2.3000,2.4208,2.0302,2.0568,
3297 : 2.0568,2.2669,2.0124,2.2669,2.3000,2.0568,1.9532,2.3942,2.1574,2.0391,2.2078,2.3000,2.3000,2.3000,2.1870,2.0509,2.4445,2.0243,2.0213,1.9799,2.3000,2.0568,2.3000,2.3853,2.2877,1.9858,2.3000,
3298 : 2.0509,1.9444,2.3000,2.3000,2.3735,2.1722,2.1574,2.3000,2.0627,2.3000,2.3000,2.4711,2.0450,2.0450,2.5540,2.0598,2.0746,2.3084};
3299 :
3300 :
3301 :
3302 : static const double flin[666] = {
3303 : .148E+01, .278E+01, .144E+01, .281E+01, .318E+01, .284E+01, .392E+01, .378E+01, .301E+01, .125E+01, .275E+01, .253E+01, .236E+01, .386E+01, .501E+01, .443E+01, .244E+01, .498E+01,
3304 : .506E+01, .613E+01, .638E+01, .908E+00, .102E+01, .754E+01, .415E+01, .478E+01, .955E+00, .353E+01, .508E+01, .860E+01, .366E+01, .600E+01, .334E+01, .664E+01, .205E+01, .189E+01,
3305 : .456E+01, .927E+01, .580E+01, .205E+01, .575E+00, .504E+01, .446E+01, .397E+00, .702E+01, .310E+01, .550E+01, .435E+01, .676E+01, .567E+01, .958E+01, .682E+01, .488E+01, .558E+01,
3306 : .162E+01, .289E+01, .681E+01, .461E+01, .460E+01, .313E+01, .413E+01, .167E+00, .142E+01, .425E+01, .537E+01, .961E+01, .659E+01, .266E+01, .693E+01, .391E+01, .131E+02, .131E+02,
3307 : .109E+02, .204E+01, .736E+01, .169E+02, .877E+01, .515E+01, .118E+01, .513E+01, .244E+01, .430E+01, .680E+01, .638E+01, .713E+01, .182E+02, .598E+01, .944E+01, .506E+01, .369E+01,
3308 : .760E+01, .955E+00, .693E+01, .354E+01, .493E+01, .191E+02, .219E+01, .570E+01, .221E+01, .616E+01, .868E+00, .148E+01, .346E+01, .738E+01, .561E+01, .256E+01, .727E+00, .470E+01,
3309 : .683E+01, .922E+01, .195E+02, .919E+01, .352E+01, .198E+01, .594E+01, .323E+01, .438E+01, .716E+01, .512E+00, .448E+01, .661E+01, .591E+01, .515E+01, .175E+01, .708E+01, .572E+01,
3310 : .752E+01, .195E+02, .152E+01, .652E+01, .301E+01, .694E+01, .307E+00, .582E+01, .425E+01, .696E+01, .894E+01, .152E+01, .170E+01, .112E+02, .549E+01, .240E+02, .262E+02, .217E+02,
3311 : .278E+01, .672E+01, .278E+02, .873E+01, .638E+01, .128E+00, .192E+02, .192E+02, .403E+01, .129E+01, .290E+02, .527E+01, .168E+02, .183E+01, .255E+01, .685E+01, .650E+01, .380E+01,
3312 : .872E+01, .912E+01, .145E+02, .215E+01, .772E+01, .296E+02, .107E+01, .681E+01, .105E+02, .504E+01, .133E+02, .795E+01, .232E+01, .188E+02, .125E+02, .628E+01, .841E+01, .723E+01,
3313 : .714E+01, .357E+01, .197E+00, .178E+00, .750E+01, .925E+01, .851E+00, .210E+00, .153E+00, .482E+01, .296E+02, .209E+01, .919E+01, .267E+01, .605E+01, .216E+00, .214E+01, .125E+02,
3314 : .122E+00, .753E+01, .334E+01, .779E+01, .856E+01, .727E+01, .639E+00, .650E+01, .459E+01, .217E+00, .527E+01, .183E+02, .898E-01, .186E+01, .154E+02, .409E+01, .289E+01, .162E+01,
3315 : .583E+01, .900E+00, .227E+01, .348E+01, .457E+00, .465E+01, .291E+02, .579E+01, .353E+02, .693E+01, .311E+01, .326E+02, .414E+00, .326E+02, .806E+01, .705E+01, .439E+00, .946E+01,
3316 : .775E+01, .215E+00, .324E+01, .145E+02, .384E+02, .436E+01, .916E+01, .787E+01, .101E+02, .300E+02, .163E+01, .593E-01, .102E+02, .359E+00, .560E+01, .843E+01, .288E+01, .112E+02,
3317 : .395E+02, .682E+01, .273E+02, .236E+01, .846E+01, .256E+00, .210E+00, .787E+01, .413E+01, .266E+02, .121E+02, .792E+01, .141E+01, .297E+00, .179E+02, .175E+02, .387E+01, .537E+01,
3318 : .343E-01, .247E+02, .166E+02, .265E+01, .398E+02, .659E+01, .103E+00, .130E+02, .138E+01, .390E+01, .119E+01, .780E+01, .222E+01, .254E+01, .223E+02, .514E+01, .233E+00, .137E+02,
3319 : .243E+01, .804E+01, .458E+01, .119E+02, .637E+01, .840E+01, .368E+01, .297E+00, .395E+02, .201E+02, .975E+00, .911E+01, .757E+01, .187E+02, .267E+02, .266E+01, .196E+02, .144E+02,
3320 : .492E+01, .245E+01, .175E+02, .220E+01, .614E+01, .464E+02, .182E+02, .345E+01, .172E+00, .538E+01, .441E+02, .481E+02, .899E+01, .813E+01, .767E+00, .734E+01, .149E+02, .283E+01,
3321 : .469E+01, .872E+01, .413E+02, .197E+01, .488E+02, .165E+02, .591E+01, .389E+02, .322E+01, .207E+02, .837E+01, .383E+02, .569E+00, .630E+01, .149E+02, .711E+01, .218E+02, .301E+01,
3322 : .154E+02, .446E+01, .139E+02, .272E+02, .175E+01, .135E+02, .818E+01, .119E+00, .172E+02, .568E+01, .299E+01, .354E+02, .121E+02, .384E+00, .688E+01, .240E+01, .321E+01, .109E+02,
3323 : .736E+01, .423E+01, .105E+02, .962E+01, .157E+02, .153E+01, .841E+01, .723E+01, .102E+02, .899E+01, .114E+02, .605E+01, .781E+01, .664E+01, .126E+02, .487E+01, .546E+01, .428E+01,
3324 : .367E+01, .304E+01, .239E+01, .925E+00, .170E+01, .228E+02, .139E+02, .545E+01, .379E+02, .151E+02, .276E+01, .326E+02, .163E+02, .835E+01, .220E+00, .239E+02, .299E+00, .665E+01,
3325 : .174E+02, .340E+01, .400E+01, .377E+01, .206E+02, .999E+01, .249E+02, .110E+01, .759E+01, .500E+01, .231E+01, .278E+02, .369E+02, .835E+01, .215E+02, .830E+01, .259E+02, .162E+02,
3326 : .619E+01, .354E+01, .379E+01, .224E+01, .895E+00, .122E+02, .221E+00, .116E+02, .477E+01, .736E+01, .222E+02, .209E+01, .464E-01, .257E+02, .402E+01, .263E+02, .596E+01, .181E+02,
3327 : .332E+01, .270E+02, .169E+02, .698E+00, .164E+02, .356E+01, .229E+02, .134E+02, .454E+01, .712E+01, .832E+01, .239E+02, .187E+01, .280E+02, .836E+01, .573E+01, .309E+01, .433E+02,
3328 : .415E+01, .355E+02, .103E+02, .512E+00, .223E+02, .366E+01, .235E+02, .105E+02, .431E+01, .442E+01, .688E+01, .377E+01, .165E+01, .153E+02, .156E+00, .228E+02, .165E+02, .207E+02,
3329 : .550E+01, .287E+01, .624E+01, .261E-01, .341E+00, .404E+02, .169E+02, .203E+02, .140E+02, .834E+01, .666E+00, .260E+02, .380E+01, .193E+02, .408E+01, .239E+02, .200E+01, .664E+01,
3330 : .143E+01, .236E+02, .836E+01, .179E+02, .173E+02, .264E+01, .527E+01, .166E+02, .192E+00, .481E+01, .446E+01, .153E+02, .211E+02, .198E+02, .397E+01, .224E+02, .184E+02, .386E+01,
3331 : .172E+02, .140E+02, .378E+02, .237E+02, .166E+02, .797E+00, .159E+02, .146E+02, .128E+02, .316E+02, .122E+01, .641E+01, .134E+02, .249E+02, .116E+02, .122E+02, .243E+02, .311E+02,
3332 : .104E+02, .110E+02, .979E+01, .920E+01, .861E+01, .802E+01, .744E+01, .685E+01, .626E+01, .566E+01, .942E+00, .506E+01, .175E+01, .248E+01, .444E+01, .317E+01, .382E+01, .261E+02,
3333 : .242E+01, .504E+01, .835E-02, .835E+01, .273E+02, .732E-01, .239E-01, .194E+02, .415E+01, .363E+01, .169E+02, .226E+02, .321E+02, .102E+01, .539E-01, .107E+00, .137E-01, .284E+02,
3334 : .617E+01, .837E+01, .354E+02, .521E+01, .258E+02, .115E+02, .220E+01, .246E+02, .481E+01, .101E+00, .293E+02, .167E+02, .728E+01, .160E+02, .114E+02, .434E+01, .340E+01, .471E+01,
3335 : .332E+02, .826E+00, .593E+01, .216E+02, .302E+02, .333E+02, .836E+01, .163E+00, .198E+01, .458E+01, .262E+00, .770E-01, .490E+01, .148E+01, .704E+01, .454E+01, .236E+00, .342E+02,
3336 : .248E+02, .318E+01, .310E+02, .639E+00, .168E+02, .837E+01, .247E+02, .569E+01, .314E+02, .167E+02, .177E+01, .231E+00, .435E+01, .256E+02, .237E+02, .474E+01, .607E+01, .269E+00,
3337 : .353E+02, .679E+01, .296E+01, .742E-01, .317E+02, .709E-01, .465E+00, .297E+02, .545E+01, .837E+01, .486E+01, .250E+02, .155E+01, .412E+01, .182E+02, .363E+02, .494E+01, .274E+01,
3338 : .281E+02, .293E+00, .137E+02, .322E+02, .655E+01, .659E+01, .838E+01, .307E+00, .168E+02, .168E+02, .269E+02, .276E+00, .521E+01, .708E-01, .458E+01, .135E+01, .259E+02, .389E+01,
3339 : .266E+02, .373E+02, .141E-01, .126E+02, .515E+01, .252E+01, .720E+01, .251E+02, .251E+02, .256E+02, .630E+01, .171E+00, .838E+01, .327E+02, .466E+01, .498E+01, .237E+02, .115E+01};
3340 :
3341 :
3342 :
3343 :
3344 : static const double el[666] = {
3345 : 47.992, 201.070, 80.695, 20.970, 403.476, 96.488, 373.096, 346.143, 465.831, 56.122, 533.230, 2.479, 144.689, 269.119, 633.829, 10.918, 161.444, 597.026,
3346 : 528.040, 24.154, 873.006, 29.412, -1.141, 42.154, 36.210, 562.219, 36.210, 318.696, 710.385, 64.875, 126.578, 873.006, 293.800, 1007.542, 126.578, 111.655,
3347 : 528.040, 92.269, 830.764, 2.479, 20.970, 791.917, 318.696, 15.776, 1201.024, 269.119, 597.026, 495.531, 961.308, 56.122, 124.286, 1103.275, 878.456, 789.551,
3348 : 96.488, 246.415, 1151.523, 970.030, 161.444, 10.918, 463.904, 10.413, 83.602, 1066.664, 749.692, 160.884, 1103.176, 224.376, 1203.931, 433.743, 171.401, 214.385,
3349 : 133.235, 214.385, 80.695, 262.143, 99.925, 710.944, 71.190, 373.096, 203.956, 24.154, 71.503, 1056.080, 1054.456, 314.622, 670.856, 202.030, 47.992, 404.618,
3350 : 1468.777, 60.497, 1309.532, 29.412, 673.485, 371.767, 15.776, 201.070, 184.472, 1010.163, 7.094, 10.413, 376.839, 1414.500, 42.154, 20.970, 50.695, 637.184,
3351 : 1420.106, 109.915, 433.521, 247.703, 36.210, 166.398, 965.476, 350.183, 56.122, 1361.417, 42.304, 602.135, 1535.682, 432.309, 80.695, 149.409, 64.875, 921.982,
3352 : 1152.444, 499.834, 4.546, 749.522, 324.807, 1309.545, 35.013, 109.915, 568.270, 245.440, 297.893, 133.720, 7.094, 143.767, 879.708, 588.452, 665.910, 515.772,
3353 : 300.599, 1258.872, 748.085, 92.269, 143.767, 28.991, 570.662, 447.926, 535.636, 119.189, 834.913, 838.635, 384.964, 10.413, 277.634, 182.237, 1209.406, 504.200,
3354 : 352.596, 1762.755, 326.931, 15.776, 1647.669, 926.329, 105.904, 496.319, 124.286, 798.775, 182.237, 1255.269, 255.863, 645.977, 273.864, 1161.142, 294.532, 225.311,
3355 : 833.017, 473.985, 411.812, 352.596, 1591.044, 225.775, 93.811, 475.541, 297.893, 760.120, 1022.276, 235.315, 182.730, 29.412, 1114.084, 543.785, 20.970, 160.884,
3356 : 247.703, 272.973, 444.974, 144.689, 411.812, 1535.617, 82.939, 111.655, 722.675, 616.541, 83.602, 725.762, 202.030, 215.972, 225.311, 60.497, 42.304, 28.991,
3357 : 1068.229, 24.151, 35.013, 50.695, 898.715, 71.190, 1122.701, 96.488, 1364.217, 126.578, 417.177, 1252.300, 810.008, 1145.361, 161.444, 1481.391, 73.272, 1889.583,
3358 : 325.213, 693.810, 47.992, 202.030, 1480.527, 686.436, 201.070, 565.109, 348.327, 1043.139, 197.844, 160.884, 245.440, 725.762, 1023.579, 1362.921, 390.588, 294.532,
3359 : 1601.443, 1428.363, 945.752, 36.210, 475.541, 64.817, 775.589, 921.325, 651.406, 1227.566, 348.327, 382.017, 180.924, 645.977, 810.008, 272.973, 71.503, 980.132,
3360 : 124.286, 853.264, 247.703, 365.211, 1726.865, 1376.536, 57.569, 406.802, 1336.847, 617.584, 165.216, 1840.317, 1227.566, 20.531, 765.729, 937.890, 570.662, 469.937,
3361 : 341.042, 443.377, 99.925, 406.802, 1325.908, 543.785, 584.969, 225.775, 1856.729, 683.191, 150.716, 638.657, 1781.346, 297.893, 1336.847, 24.151, 325.213, 537.709,
3362 : 896.852, 56.122, 898.715, 318.083, 1276.481, 2161.296, 605.685, 553.562, 499.834, 133.235, 2020.257, 2306.952, 1475.389, 509.282, 137.427, 1723.571, 610.097, 28.991,
3363 : 857.019, 1014.431, 1883.915, 296.334, 2457.134, 533.230, 1228.254, 1990.987, 523.363, 352.596, 616.541, 1752.348, 125.346, 171.401, 465.831, 1666.991, 382.017, 35.013,
3364 : 687.083, 818.391, 469.937, 1450.531, 275.794, 403.476, 579.726, 433.521, 991.885, 1181.227, 494.372, 1625.625, 346.143, 114.474, 1611.607, 80.695, 42.304, 293.800,
3365 : 214.385, 780.968, 716.943, 246.415, 768.647, 256.462, 203.956, 166.398, 269.119, 224.376, 318.696, 133.720, 184.472, 149.409, 373.096, 105.904, 119.189, 93.811,
3366 : 82.939, 73.272, 64.817, 51.531, 57.569, 411.812, 432.309, 1135.402, 2129.603, 496.319, 466.588, 1503.814, 565.109, 693.810, 104.811, 443.377, 1022.276, 1557.420,
3367 : 638.657, 50.695, 744.749, 709.735, 887.628, 314.622, 475.541, 221.426, 1985.376, 1047.354, 414.643, 1275.145, 2272.558, 775.589, 979.977, 734.190, 509.282, 945.442,
3368 : 1452.634, 675.927, 71.190, 109.915, 205.721, 799.941, 926.329, 371.767, 1005.132, 1925.258, 1076.963, 390.482, 314.622, 1168.370, 83.602, 1691.096, 1402.037, 610.097,
3369 : 643.324, 543.785, 1191.622, 191.224, 1040.644, 46.700, 1178.561, 433.521, 964.112, 1866.333, 818.206, 1066.664, 367.529, 579.726, 861.875, 1352.637, 611.926, 2486.072,
3370 : 96.488, 2419.844, 1214.957, 177.936, 970.030, 51.531, 1284.748, 1714.714, 924.294, 111.655, 1808.601, 654.644, 345.784, 499.834, 834.913, 616.541, 1140.366, 878.456,
3371 : 1304.435, 581.734, 616.541, 262.143, 165.855, 2335.219, 1298.194, 687.083, 887.628, 906.732, 1214.957, 1817.984, 57.569, 791.917, 885.678, 1395.502, 143.767, 1752.063,
3372 : 325.246, 654.644, 952.665, 710.385, 570.662, 552.748, 1257.431, 633.829, 154.984, 144.689, 126.578, 562.219, 921.325, 833.017, 64.817, 1014.431, 749.522, 848.264,
3373 : 670.856, 495.531, 2189.341, 1112.315, 1244.597, 1322.332, 597.026, 528.040, 433.743, 2571.460, 305.916, 1696.718, 463.904, 1214.957, 376.839, 404.618, 1510.800, 693.810,
3374 : 324.807, 350.183, 300.599, 277.634, 255.863, 235.315, 215.972, 197.844, 180.924, 165.216, 89.110, 150.716, 96.356, 104.811, 137.427, 114.474, 125.346, 1322.332,
3375 : 524.968, 1211.625, 42.154, 999.764, 1434.414, 145.320, 64.875, 645.977, 73.272, 812.053, 1409.234, 768.647, 734.190, 287.794, 92.269, 748.085, 214.385, 1551.176,
3376 : 1642.567, 1047.955, 2048.485, 182.730, 1949.281, 1322.332, 498.394, 1630.624, 1167.017, 124.286, 1672.590, 1353.327, 2140.718, 979.977, 1841.534, 82.939, 777.046, 161.444,
3377 : 775.589, 270.880, 1589.610, 725.762, 1798.629, 1912.683, 1097.297, 160.884, 473.026, 1123.608,1166.793, 786.922, 225.775, 182.237, 2079.468, 93.811, 182.237, 818.206,
3378 : 1754.957, 743.241, 1929.265, 255.173, 1524.742, 1147.740, 854.771, 1537.848, 1781.952, 1466.548, 448.865, 202.030, 1081.399, 2084.992, 810.008, 105.904, 273.864, 1125.795,
3379 : 861.875, 2019.408, 710.640, 755.516, 2064.470, 665.910, 240.675, 1656.290, 1487.281, 1199.324, 201.070, 1883.783, 425.910, 1040.388, 1076.963, 906.732, 119.189, 679.242,
3380 : 1535.682, 247.703, 1434.414, 2204.219, 1960.541, 326.931, 1252.016, 227.385, 1584.251, 1644.715, 945.442, 1085.995, 1437.909, 725.313, 83.071, 404.162, 898.715, 1000.578,
3381 : 1420.106, 952.665, 273.864, 1973.096, 133.720, 649.048, 384.964, 2017.088, 1309.532, 2225.119, 1902.865, 215.303, 1305.841, 2348.489, 89.110, 1389.732, 1203.931, 383.621};
3382 :
3383 :
3384 : static const double pi=3.141592654;
3385 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3386 : static const double mu=0.53; //Debyes
3387 : static const double mmol=48.0;
3388 :
3389 : //double q=0.6531261*pow(tt,1.5);
3390 52910 : double q=0.6531261*tt*sqrt(tt);
3391 : // unsigned int vp;
3392 : unsigned int ini;
3393 : unsigned int ifin;
3394 52910 : std::complex<double> lshape;
3395 52910 : std::complex<double> lshapeacum;
3396 :
3397 52910 : if(nu>999.9){
3398 :
3399 0 : return std::complex<double> (0.0,0.0);
3400 :
3401 : }else{
3402 :
3403 : // vp=vpIndex(nu);
3404 :
3405 : // if(pp<100){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
3406 :
3407 52910 : ini=1; ifin=666;
3408 :
3409 : // cout << " 16O16O16O_V1 LINES: " << INI << " TO " << IFIN << ENDL;
3410 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
3411 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
3412 :
3413 : // COUT << "16O16O16O_V1 LINES: " << INI << " TO " << IFIN << ENDL;
3414 52910 : if(ifin==0||ifin<ini){
3415 :
3416 0 : return std::complex<double> (0.0,0.0);
3417 :
3418 : }else{
3419 :
3420 35290970 : for(unsigned int i=ini; i<ifin+1; i++){
3421 :
3422 35238060 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // BROADENING EN GHZ/MB 13/11/2018
3423 : // lshape=lineshape(nu,FRE[I],linebroadening(FRE[I],TT,PP,MMOL,0.0025,0.76),0.0);
3424 :
3425 35238060 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
3426 35238060 : lshapeacum=lshapeacum+lshape;
3427 :
3428 : }
3429 :
3430 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // IMAGINARY PART: ABSORPTION COEFFICIENT IN CM^2
3431 105820 : *(0.047992745509/tt); // REAL PART: DELAY IN RAD*CM^2
3432 :
3433 52910 : return lshapeacum*1e-4; // TO GIVE IT IN SI UNITS (M^2) // ( RAD M^2 , M^2 )
3434 :
3435 :
3436 : }
3437 :
3438 : }
3439 :
3440 : }
3441 :
3442 :
3443 :
3444 : //////////////////////// OPACITY SOURCE nuMBER: 19 /////////////////////////////
3445 :
3446 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o_v3(double tt, double pp, double nu){
3447 :
3448 : static const double fre[714] = {
3449 : 39.09919, 46.68817, 56.31397, 59.37148, 70.67795, 71.31757, 81.40063, 81.69261, 81.84813, 81.85942, 83.18435, 93.32343, 96.01244, 97.45686, 98.08377, 98.33634, 99.87943, 100.44234,
3450 : 101.44661,105.22493, 111.11407, 111.50954, 114.35847, 117.16976,118.96953,119.10333, 120.08235, 122.59458, 123.84501, 124.97200,134.00847,139.60779, 139.77685, 139.88235, 141.26423, 145.15114,
3451 : 146.36667,146.86776, 151.08574, 152.36101, 154.25082, 156.51318,156.71500,159.07537, 160.62386, 163.14446, 169.65230, 174.22265,174.23933,176.21774, 177.91557, 180.72455, 183.85477, 183.89299,
3452 : 184.95077,185.32046, 186.34011, 189.94632, 195.18668, 196.12409,196.41510,198.10334, 203.88183, 206.43895, 212.86355, 213.00711,214.83851,216.37864, 220.71547, 225.02702, 225.27681, 225.91657,
3453 : 228.31577,231.99098, 233.34657, 233.89331, 234.35531, 234.55758,234.71210,237.14768, 240.41085, 243.06352, 246.51218, 246.71158,248.72084,249.14141, 254.70408, 256.37786, 257.23543, 257.77634,
3454 : 258.30920,259.79627, 262.47687, 263.75388, 263.83197, 263.88321,264.47849,266.16883, 267.62942, 268.47544, 268.95182, 270.92335,272.73801,277.48932, 279.89566, 280.89113, 281.47260, 285.58829,
3455 : 286.21130,286.62239, 290.03185, 294.58276, 296.82921, 301.03658,301.89343,306.93223, 308.52760, 309.85125, 311.13891, 312.56410,313.43416,315.12208, 316.44165, 320.61793, 322.68848, 326.05417,
3456 : 326.34915,327.69918, 328.83138, 329.61263, 333.91337, 337.36735,337.55237,338.95325, 341.88537, 342.38055, 342.50280, 345.42507,345.57338,347.15354, 347.95418, 349.00327, 351.81312, 352.64428,
3457 : 353.72509,354.13392, 354.53033, 358.74277, 360.31940, 360.87484,361.65922,362.86334, 364.52166, 364.84272, 368.66611, 371.41163,371.75879,371.98619, 372.68295, 372.82991, 374.28730, 379.89213,
3458 : 382.77304,385.78790, 387.49541, 390.54582, 390.91931, 393.52106,393.96301,394.61634, 395.41512, 397.08168, 397.13736, 397.36822,397.38946,403.55134, 405.08268, 410.49289, 411.76524, 411.97287,
3459 : 414.38491,416.48702, 416.71004, 419.17740, 419.84555, 420.58599,422.25817,423.26273, 426.66993, 427.73930, 430.06234, 430.66334,430.87705,432.99665, 436.04847, 437.20714, 437.23156, 442.55416,
3460 : 444.10520,445.01674, 446.41875, 446.94336, 447.42916, 449.10612,451.04435,452.16602, 452.24386, 453.59450, 455.85826, 457.37440,459.19324,460.29664, 461.65025, 462.11152, 462.27195, 462.58702,
3461 : 462.66605,462.89248, 463.25341, 463.39447, 464.90975, 465.01466,466.35671,466.87517, 467.81711, 468.22791, 468.54116, 468.92807,469.35946,470.95848, 471.06644, 472.19788, 472.23103, 472.36600,
3462 : 472.91125,474.87294, 476.44574, 478.55581, 479.86914, 480.72140,481.07216,481.16483, 481.57203, 486.32859, 487.26936, 487.50281,487.66632,488.25556, 489.71659, 491.62835, 493.89180, 497.34217,
3463 : 497.49977,497.94921, 498.67587, 500.07611, 500.60177, 500.78155,502.04290,502.96803, 506.29697, 509.02036, 510.19153, 513.05419,513.74153,513.77157, 513.81648, 518.91445, 519.44673, 520.44281,
3464 : 521.80551,522.24840, 522.92457, 523.63012, 523.88596, 524.21201,524.99061,525.25294, 525.33421, 526.27144, 527.60158, 529.70612,530.61128,530.94345, 531.23091, 531.43282, 532.98698, 533.62161,
3465 : 534.31710,534.59446, 536.74619, 536.98013, 537.89095, 538.77909,539.00010,539.86282, 544.96566, 546.52408, 547.56815, 549.24148,551.47300,551.90192, 552.42944, 553.11723, 553.48850, 556.48519,
3466 : 559.67393,561.52013, 561.88766, 562.35447, 563.97990, 565.41560,567.75371,568.07788, 570.38955, 570.40853, 573.89276, 574.48101,574.78438,574.81063, 574.83960, 575.67912, 576.79970, 576.91325,
3467 : 577.48476,578.59779, 581.51079, 581.80322, 581.97080, 582.24037,584.59055,585.12906, 585.98225, 586.55485, 587.01742, 589.49577,595.80764,597.47996, 599.06331, 599.60708, 599.83860, 600.32501,
3468 : 602.84893,603.03063, 603.18300, 604.04251, 604.69219, 606.49093,607.40884,608.41303, 609.78758, 610.80310, 614.12519, 614.15603,614.66068,616.28081, 618.83159, 620.12619, 620.90570, 621.14914,
3469 : 621.41401,623.57601, 625.05123, 625.79792, 626.78454, 628.20479,628.53712,628.90598, 629.45650, 630.72714, 631.44302, 632.94974,633.85593,634.02096, 634.86006, 635.31657, 636.67237, 638.36251,
3470 : 639.78883,641.22369, 641.88357, 643.55294, 643.58506, 644.05509,644.16587,644.47503, 644.65275, 644.72177, 645.15818, 645.31835,645.55530,645.61980, 646.00423, 646.00924, 646.28600, 646.34514,
3471 : 646.44747,646.45135, 646.49502, 646.53130, 647.53611, 650.97870,650.98302,651.22566, 654.01034, 654.04800, 654.84084, 656.29568,656.36728,659.21263, 659.46520, 660.73218, 661.58526, 663.86181,
3472 : 664.87155,665.70228, 667.49634, 670.82056, 671.49939, 671.69956,671.96229,696.91242, 698.91918, 701.96621, 702.56173, 703.32398,703.84342,704.24695, 704.86177, 705.53353, 706.01042, 706.85680,
3473 : 710.99343,713.41005, 713.89970, 714.93298, 716.87548, 720.52073,722.08691,722.44056, 722.57413, 722.81797, 723.54465, 724.78411,727.28295,727.97156, 729.30860, 730.24523, 730.27575, 730.84681,
3474 : 739.26512,739.81978, 739.91878, 740.65338, 740.84549, 741.61408,742.59389,743.40501, 745.65618, 745.93991, 746.24695, 747.22711,747.88676,748.02926, 750.33083, 752.56660, 753.20158, 754.34819,
3475 : 755.60374,756.14126, 756.62779, 764.87940, 767.52745, 769.76767,770.77792,771.81390, 772.33504, 775.46196, 775.98989, 776.65944,777.23539,777.81980, 779.36801, 780.40563, 780.93897, 781.40535,
3476 : 781.41954,782.52219, 783.42052, 788.14706, 789.81805, 791.33108,792.81898,795.60420, 796.27541, 797.41357, 798.45957, 798.79600,799.12017,799.74738, 799.98925, 801.18407, 801.71940, 802.49344,
3477 : 803.04415,804.37052, 805.69022, 805.85729, 805.97629, 806.25307,806.68396,810.98457, 811.21300, 813.00576, 814.73763, 816.86728,817.25565,817.44320, 817.57614, 818.23637, 818.39041, 819.76161,
3478 : 819.96497,820.43049, 821.28228, 821.72759, 822.01158, 822.46491,823.48609,823.81236, 823.98136, 824.48118, 824.70817, 825.10636,825.68749,825.99029, 826.50233, 826.61637, 827.95207, 828.00829,
3479 : 828.24161,828.36805, 828.60667, 828.87293, 829.10443, 829.26640,829.35812,829.49380, 829.73413, 829.89908, 830.04475, 830.10560,830.15182,830.23700, 830.29986, 830.34643, 830.37958, 830.39654,
3480 : 831.54765,831.93698, 833.58635, 833.73926, 835.20152, 835.24269,838.98655,839.64079, 840.10371, 845.20198, 847.49134, 847.70500,848.50996,848.87457, 848.88063, 848.93878, 849.09005, 850.56316,
3481 : 850.75028,853.41371, 854.33332, 855.92833, 856.03459, 856.82441,857.18087,861.12481, 863.78096, 864.17044, 865.62679, 868.57350,868.78011,869.98065, 870.03206, 870.57647, 870.61728, 872.49491,
3482 : 873.10523,873.36309, 878.56200, 879.29868, 879.80749, 880.77698,882.08477,882.17679, 882.41792, 882.61098, 883.77057, 885.70311,888.62776,888.85785, 889.63331, 891.78422, 894.62064, 894.64526,
3483 : 897.47757,897.75514, 900.64976, 900.82919, 903.68781, 904.25682,905.25492,906.48064, 907.33005, 907.65032, 908.43907, 911.07262,914.21020,915.09228, 915.85199, 916.21185, 917.06324, 919.56880,
3484 : 919.89775,922.11594, 922.44111, 928.38607, 928.79238, 929.21043,930.07129,930.07477, 930.24522, 930.41045, 932.42488, 932.56140,932.88020,933.46307, 935.36704, 936.12485, 936.88095, 938.74141,
3485 : 940.73759,940.78592, 942.51094, 943.78460, 946.37784, 946.44649,947.38721,950.15740, 952.73608, 953.74414, 953.87679, 954.16230,954.62620,956.08885, 956.46610, 957.77977, 958.10959, 958.13385,
3486 : 960.35333,961.05773, 963.46976, 963.67305, 964.69648, 966.06562,969.05696,969.48407, 970.08086, 970.74781, 972.31740, 972.66903,972.83374,975.98704, 976.60894, 978.00527, 978.94204, 979.11532,
3487 : 979.40697,979.45560, 979.87814, 981.01288, 981.50855, 982.98596,983.34043,983.76009, 983.86039, 984.87760, 985.16300, 985.20989,986.11031,986.97831, 988.15861, 988.78224, 988.87549, 988.96324,
3488 : 989.28987,991.33885, 991.84738, 992.38406, 994.98341, 995.02088,996.38805,996.39151, 996.41823, 997.23313, 998.00653, 999.20740 };
3489 :
3490 : static const double texpO3[714] ={
3491 : 0.79,0.77,0.78,0.77,0.80,0.80,0.77,0.77,0.76,0.80,0.78,0.76,0.77,0.76, 0.82,0.79,0.80,0.79,0.81,0.76,0.77,0.82,0.77,0.77,0.82,0.77,0.82,0.80,
3492 : 0.81,0.77,0.77,0.80,0.76,0.82,0.76,0.82,0.76,0.78,0.81,0.83,0.77,0.77, 0.79,0.78,0.83,0.79,0.77,0.79,0.81,0.80,0.77,0.83,0.76,0.78,0.82,0.77,
3493 : 0.76,0.76,0.79,0.83,0.78,0.76,0.81,0.83,0.77,0.80,0.78,0.77,0.78,0.76, 0.84,0.79,0.81,0.78,0.77,0.82,0.77,0.78,0.79,0.77,0.77,0.78,0.78,0.79,
3494 : 0.77,0.79,0.78,0.80,0.81,0.77,0.79,0.82,0.78,0.83,0.77,0.84,0.77,0.76, 0.76,0.78,0.76,0.77,0.76,0.79,0.81,0.79,0.80,0.76,0.77,0.82,0.76,0.76,
3495 : 0.77,0.77,0.79,0.77,0.80,0.78,0.79,0.82,0.76,0.79,0.83,0.77,0.77,0.78, 0.76,0.78,0.78,0.76,0.80,0.76,0.77,0.81,0.77,0.81,0.83,0.76,0.76,0.77,
3496 : 0.83,0.80,0.72,0.80,0.80,0.78,0.76,0.81,0.79,0.79,0.79,0.76,0.77,0.81, 0.83,0.76,0.77,0.76,0.79,0.81,0.77,0.78,0.78,0.79,0.79,0.78,0.81,0.76,
3497 : 0.80,0.83,0.82,0.79,0.80,0.77,0.76,0.78,0.78,0.76,0.79,0.78,0.76,0.79, 0.81,0.78,0.78,0.82,0.77,0.76,0.82,0.72,0.78,0.78,0.78,0.78,0.78,0.79,
3498 : 0.84,0.80,0.77,0.81,0.82,0.76,0.77,0.84,0.78,0.77,0.82,0.77,0.78,0.77, 0.76,0.77,0.76,0.76,0.76,0.76,0.79,0.79,0.79,0.77,0.83,0.77,0.83,0.79,
3499 : 0.77,0.80,0.84,0.79,0.83,0.77,0.78,0.77,0.82,0.77,0.79,0.84,0.76,0.78, 0.80,0.78,0.76,0.77,0.80,0.78,0.78,0.79,0.79,0.79,0.77,0.78,0.80,0.76,
3500 : 0.82,0.82,0.78,0.80,0.83,0.81,0.76,0.76,0.77,0.78,0.76,0.79,0.78,0.83, 0.78,0.81,0.80,0.76,0.82,0.76,0.77,0.81,0.81,0.82,0.76,0.76,0.79,0.83,
3501 : 0.76,0.80,0.79,0.76,0.81,0.77,0.76,0.79,0.76,0.79,0.76,0.77,0.79,0.76, 0.78,0.81,0.79,0.81,0.76,0.81,0.79,0.83,0.76,0.76,0.77,0.77,0.82,0.76,
3502 : 0.80,0.81,0.78,0.79,0.84,0.76,0.80,0.79,0.76,0.76,0.76,0.81,0.76,0.80, 0.79,0.76,0.83,0.76,0.77,0.78,0.76,0.80,0.76,0.76,0.80,0.76,0.79,0.78,
3503 : 0.76,0.76,0.76,0.80,0.79,0.81,0.80,0.82,0.80,0.76,0.76,0.77,0.80,0.78, 0.77,0.76,0.79,0.83,0.78,0.76,0.76,0.82,0.79,0.79,0.76,0.76,0.79,0.82,
3504 : 0.76,0.76,0.82,0.81,0.84,0.76,0.77,0.78,0.81,0.76,0.76,0.80,0.77,0.78, 0.78,0.81,0.78,0.79,0.81,0.77,0.76,0.78,0.78,0.78,0.77,0.77,0.79,0.77,
3505 : 0.77,0.77,0.77,0.82,0.79,0.76,0.76,0.76,0.79,0.80,0.80,0.80,0.82,0.76, 0.84,0.80,0.77,0.77,0.79,0.76,0.80,0.80,0.77,0.80,0.81,0.78,0.84,0.79,
3506 : 0.76,0.78,0.83,0.80,0.76,0.82,0.82,0.76,0.81,0.83,0.77,0.83,0.80,0.79, 0.76,0.77,0.76,0.81,0.78,0.76,0.82,0.82,0.76,0.83,0.79,0.76,0.76,0.81,
3507 : 0.81,0.83,0.77,0.76,0.77,0.83,0.76,0.81,0.82,0.80,0.83,0.76,0.79,0.78, 0.82,0.82,0.77,0.79,0.76,0.76,0.81,0.83,0.81,0.77,0.82,0.76,0.76,0.83,
3508 : 0.78,0.76,0.80,0.81,0.81,0.79,0.76,0.78,0.81,0.76,0.82,0.81,0.83,0.82, 0.77,0.77,0.77,0.76,0.81,0.78,0.82,0.84,0.84,0.76,0.76,0.84,0.76,0.81,
3509 : 0.79,0.84,0.76,0.80,0.76,0.80,0.82,0.76,0.81,0.80,0.77,0.81,0.81,0.76, 0.82,0.79,0.80,0.82,0.80,0.77,0.76,0.79,0.79,0.78,0.79,0.82,0.82,0.76,
3510 : 0.79,0.79,0.72,0.83,0.78,0.78,0.78,0.82,0.79,0.78,0.78,0.78,0.76,0.77, 0.84,0.77,0.77,0.77,0.77,0.83,0.77,0.77,0.77,0.76,0.76,0.82,0.80,0.82,
3511 : 0.76,0.76,0.76,0.76,0.84,0.77,0.76,0.77,0.77,0.76,0.82,0.81,0.78,0.76, 0.77,0.76,0.76,0.79,0.83,0.76,0.76,0.80,0.82,0.78,0.77,0.76,0.76,0.76,
3512 : 0.76,0.84,0.77,0.82,0.83,0.77,0.76,0.76,0.78,0.83,0.78,0.76,0.80,0.82, 0.81,0.76,0.76,0.78,0.76,0.76,0.78,0.76,0.82,0.77,0.78,0.76,0.76,0.72,
3513 : 0.78,0.83,0.76,0.76,0.79,0.81,0.78,0.76,0.79,0.76,0.76,0.78,0.83,0.77, 0.76,0.76,0.77,0.76,0.78,0.83,0.76,0.76,0.76,0.76,0.83,0.79,0.81,0.76,
3514 : 0.79,0.76,0.76,0.83,0.76,0.83,0.76,0.77,0.76,0.76,0.77,0.76,0.84,0.79, 0.78,0.82,0.76,0.86,0.78,0.79,0.81,0.76,0.76,0.76,0.83,0.76,0.76,0.83,
3515 : 0.77,0.76,0.80,0.76,0.77,0.78,0.83,0.76,0.83,0.76,0.78,0.82,0.76,0.76, 0.76,0.76,0.83,0.79,0.80,0.76,0.76,0.82,0.84,0.80,0.83,0.83,0.76,0.83,
3516 : 0.76,0.78,0.76,0.82,0.82,0.77,0.82,0.76,0.81,0.81,0.76,0.77,0.81,0.76};
3517 :
3518 :
3519 :
3520 : static const double brdO3air[714] ={
3521 : 2.1456,2.4120,2.3291,2.3143,2.1042,2.1042,2.5126,2.3735,2.0568,2.1130,2.3084,2.6250,2.4771,2.5570,2.0687,2.2018,2.1338,2.2166,2.0894,2.4948,
3522 : 2.4386,2.0716,2.3676,2.4415,2.0716,2.3735,2.0598,2.1249,2.0775,2.3498,2.3912,2.1338,2.6901,2.0687,2.5658,2.0598,2.5155,2.2314,2.0775,2.0568,
3523 : 2.4060,2.3498,2.2166,2.2492,2.0568,2.0657,2.3942,2.1456,2.0835,2.1130,2.4208,2.0568,2.5984,2.3232,2.0627,2.3113,2.5984,2.0627,2.1574,2.0568,
3524 : 2.2669,2.6191,2.0894,2.0598,2.3439,2.0450,2.2877,2.4445,2.2788,2.5155,2.0598,2.1722,2.0953,2.2788,2.4711,2.0598,2.3113,2.2462,2.1870,2.2936,
3525 : 2.3498,2.2196,2.3084,2.1722,2.3912,2.1870,2.2817,2.1042,2.0953,2.4415,2.1959,2.0627,2.2462,2.0598,2.4386,2.0598,2.4978,2.4948,2.0509,2.3291,
3526 : 2.3000,2.2877,2.5570,2.2018,2.0894,2.1722,2.1130,2.5244,2.5244,2.0687,2.0065,2.4682,2.3498,2.3735,2.2166,2.4149,2.1249,2.2196,2.1515,2.0716,
3527 : 2.5540,2.1574,2.0568,2.3735,2.3705,2.2433,2.6487,2.2403,2.2314,2.3000,2.1338,2.5836,2.3143,2.0775,2.3291,2.0835,2.0568,2.3000,2.0391,2.3942,
3528 : 2.0568,2.1308,2.2729,2.1071,2.1308,2.2492,2.6428,2.1782,2.1456,2.1515,2.1959,2.6132,2.2936,2.0835,2.0568,2.3000,2.4208,2.5925,2.1722,2.1574,
3529 : 2.2640,2.2669,2.1959,2.1574,2.1959,2.2610,2.0894,2.3000,2.1071,2.0598,2.1367,2.2078,2.1338,2.4445,2.0509,2.2196,2.2877,2.5540,2.1722,2.2166,
3530 : 2.5392,2.1722,2.0953,2.2462,2.2344,2.0598,2.4711,2.0568,2.1160,2.3054,2.2344,2.3084,2.2344,2.2788,2.1604,2.1870,2.0598,2.1042,2.3113,2.1782,
3531 : 2.0627,2.3000,2.4978,2.0598,2.1782,2.3498,2.0687,2.4859,2.3291,2.3912,2.3000,2.4415,2.4948,2.5570,2.5244,2.4682,2.1870,2.2018,2.2166,2.4149,
3532 : 2.0835,2.3705,2.0983,2.1722,2.3291,2.1130,2.0687,2.1574,2.0983,2.4771,2.2492,2.2936,2.0687,2.5244,2.1515,2.0598,2.3000,2.2610,2.1130,2.2788,
3533 : 2.0568,2.3498,2.1338,2.2877,2.2344,2.1841,2.1278,2.2166,2.4356,2.1426,2.1249,2.5540,2.1367,2.0716,2.2078,2.1130,2.0568,2.1574,2.3000,2.0450,
3534 : 2.3735,2.3291,2.3000,2.1841,2.2314,2.0835,2.1782,2.1574,2.1338,2.3000,2.0627,2.5836,2.3883,2.0775,2.0953,2.0183,2.3000,2.3000,2.1604,2.0568,
3535 : 2.3000,2.1308,2.1604,2.0627,2.0391,2.3942,2.3000,2.1130,2.0331,2.1426,2.4948,2.4060,2.0983,2.3000,2.2492,2.1782,2.1456,2.0598,2.3000,2.0835,
3536 : 2.1397,2.0568,2.3000,2.3000,2.3439,2.4208,2.1367,2.6132,2.1071,2.0953,2.2669,2.1397,2.0687,2.3000,2.0864,2.1574,2.0183,2.0124,2.0243,2.0894,
3537 : 2.3000,2.1190,2.0864,2.3000,2.0598,2.0509,2.4445,2.3025,2.0243,2.1308,2.0095,2.3000,2.1071,2.5836,2.0746,2.2877,2.0154,2.0331,2.3000,2.1130,
3538 : 2.1515,2.0953,2.1130,2.0598,2.1900,2.0568,2.0065,2.4711,2.1190,2.2640,2.3439,2.5540,2.1722,2.0598,2.3084,2.0509,2.0450,2.1160,2.0657,2.1870,
3539 : 2.3000,2.0183,2.1959,2.0598,2.0568,2.0509,2.0627,2.1663,2.0598,2.3000,2.4978,2.2196,2.1663,2.0065,2.3000,2.0539,2.5244,2.2462,2.3291,2.1782,
3540 : 2.2788,2.1426,2.0835,2.3113,2.0568,2.2344,2.2078,2.2610,2.2936,2.3498,2.1841,2.3291,2.3912,2.3912,2.4149,2.0627,2.2018,2.4682,2.4948,2.5244,
3541 : 2.1604,2.1900,2.1900,2.1130,2.0687,2.3000,2.0598,2.1190,2.5244,2.4978,2.1900,2.3000,2.0864,2.1900,2.3498,2.0450,2.1456,2.1278,2.0687,2.2166,
3542 : 2.3000,2.2314,2.0835,2.1338,2.3000,2.1249,2.1249,2.3000,2.0775,2.0568,2.4445,2.0568,2.0272,2.1278,2.3000,2.3942,2.3000,2.0598,2.2492,2.3000,
3543 : 2.0716,2.1071,2.3000,2.0983,2.1456,2.0391,2.3000,2.0835,2.0183,2.0568,2.4208,2.0065,2.4208,2.0835,2.0095,2.1456,2.1071,2.0983,2.0923,2.4356,
3544 : 2.2078,2.2669,2.1160,2.1367,2.3942,2.1574,2.0331,2.0509,2.0894,2.0598,2.0124,2.4445,2.1367,2.0095,2.5836,2.0746,2.2877,2.3000,2.0716,2.0391,
3545 : 2.0035,2.1722,2.0568,2.2403,2.0953,2.3000,2.0598,2.1574,2.0923,2.1249,2.4711,2.3498,2.3735,2.5540,2.1782,2.3084,2.0627,2.0598,2.0687,2.3000,
3546 : 2.3000,2.0627,2.0124,1.9976,2.1870,2.0598,2.3000,2.1071,2.3000,2.1042,2.0627,2.3000,2.0479,2.1308,2.4978,2.1456,2.1663,2.0243,2.1249,2.1515,
3547 : 2.1900,2.1071,2.1190,2.5244,2.3000,2.1397,2.1722,2.3291,2.1604,2.1160,1.9888,2.3000,2.1959,2.1841,2.3054,2.0746,2.2078,2.2196,2.2462,2.0598,
3548 : 2.2018,2.3084,2.2610,2.2788,2.0302,2.2936,2.0598,2.3113,2.3291,2.3498,2.3705,2.0746,2.3912,2.4149,2.4415,2.4682,2.4948,2.0183,2.1130,2.0687,
3549 : 2.0509,2.0183,2.3000,2.3000,2.0627,2.5244,2.3000,2.4978,2.3498,2.3000,1.9828,2.0272,2.3291,2.3000,2.3498,2.3000,2.0509,2.2166,2.0568,2.0568,
3550 : 2.3000,2.1249,2.0716,2.2669,2.3113,2.0243,2.0391,2.3000,2.0391,2.0627,2.4711,1.9740,2.0598,2.3735,2.3000,2.3000,2.2314,2.0568,2.1959,2.0183,
3551 : 2.1338,2.0006,2.0775,2.3000,2.0302,2.2788,2.0331,2.0627,2.2314,2.0331,1.9680,2.4445,2.2610,2.3000,2.3000,2.2729,2.2492,2.0568,2.0213,2.0302,
3552 : 2.1456,2.0835,2.2877,2.0450,2.2018,2.0509,2.0450,2.2462,1.9592,2.4208,2.3000,2.3000,2.4208,2.3000,2.2669,2.0598,2.0154,2.0154,2.3000,2.0213,
3553 : 1.9858,2.1574,2.0894,2.3000,2.1722,2.0568,2.3000,2.0568,2.3000,1.9532,2.0124,2.3942,2.0213,2.3000,2.4445,2.3000,2.0687,2.1456,2.2877,2.0598,
3554 : 2.3853,1.9651,2.2196,2.1722,2.0953,2.3000,2.3000,2.0391,1.9444,2.3000,2.0331,2.0835,2.3735,2.3000,2.1249,2.3000,2.4711,2.2492,1.9799,2.0509,
3555 : 2.0983,2.3000,2.3084,2.0627,2.0509,2.5540,2.0391,2.0302,1.9710,2.1870,2.1042,2.3000,2.0213,2.1160,2.0627,2.1042,2.0746,1.9355,2.0154,2.0923,
3556 : 2.0154,2.1604,2.3000,2.1367,2.1071,2.3498,2.1249,2.3000,2.1574,2.1574,
3557 : 2.3000,2.4978,2.1456,2.3000};
3558 :
3559 :
3560 :
3561 : static const double flin[714] = {
3562 : .450e+01, .515e+01, .527e+01, .274e+01, .934e+01, .103e+02, .244e+01, .259e+01, .740e+01, .100e+02, .515e+01, .309e+01, .715e+01, .706e+01, .124e+02, .743e+01, .978e+01, .717e+01,
3563 : .933e+01, .106e+02, .218e+01, .124e+02, .681e+01, .136e+02, .121e+02, .429e+01, .126e+02, .954e+01, .701e+01, .448e+01, .159e+02, .919e+01, .309e+01, .856e+01, .131e+01, .787e+01,
3564 : .154e+01, .665e+01, .116e+02, .141e+02, .102e+02, .173e+02, .865e+01, .628e+01, .128e+02, .900e+00, .369e+01, .872e+01, .112e+02, .107e+02, .334e+01, .137e+02, .522e+01, .875e+01,
3565 : .131e+02, .179e+02, .741e+00, .146e+02, .833e+01, .128e+02, .580e+01, .355e+00, .108e+02, .133e+02, .136e+02, .744e+00, .538e+01, .282e+01, .179e+02, .753e+01, .126e+02, .786e+01,
3566 : .104e+02, .250e+02, .240e+01, .129e+02, .206e+02, .290e+02, .101e+02, .153e+02, .163e+02, .324e+02, .491e+01, .121e+02, .123e+02, .744e+01, .110e+02, .993e+01, .118e+02, .885e+01,
3567 : .348e+02, .124e+02, .176e+02, .139e+02, .101e+02, .149e+02, .192e+01, .585e+01, .157e+02, .447e+01, .626e+00, .173e+02, .315e+01, .698e+01, .172e+01, .362e+02, .949e+01, .411e+01,
3568 : .148e+01, .120e+02, .145e+02, .614e+01, .400e+01, .130e+02, .653e+01, .794e+01, .905e+01, .170e+02, .366e+02, .116e+02, .103e+01, .118e+02, .140e+02, .354e+01, .952e+01, .137e+02,
3569 : .309e+01, .214e+02, .607e+01, .539e+00, .859e+01, .623e+00, .163e+02, .111e+02, .109e+02, .130e+02, .136e+02, .161e+02, .170e+02, .308e+01, .148e+02, .363e+02, .805e+00, .478e+02,
3570 : .433e+02, .481e+01, .335e+01, .515e+02, .814e+01, .384e+02, .166e+02, .260e+00, .120e+02, .107e+02, .132e+02, .157e+02, .262e+01, .387e+01, .334e+02, .540e+02, .200e+02, .515e+01,
3571 : .256e+02, .768e+01, .287e+02, .130e+02, .102e+02, .474e+00, .355e+02, .127e+02, .554e+02, .168e+02, .138e+02, .217e+01, .152e+02, .245e+02, .469e+01, .398e+01, .723e+01, .239e+02,
3572 : .487e+01, .162e+02, .976e+01, .208e+02, .137e+02, .123e+02, .172e+01, .148e+02, .556e+02, .305e+01, .178e+02, .423e+01, .145e+02, .175e+02, .299e+02, .676e+01, .158e+02, .930e+01,
3573 : .147e+02, .345e+02, .118e+02, .534e+01, .130e+01, .143e+02, .280e+02, .120e+02, .143e+02, .600e+01, .377e+01, .953e+01, .425e+00, .710e+01, .462e+01, .182e+01, .329e+01, .586e+01,
3574 : .346e+00, .630e+01, .300e+00, .826e+01, .667e+02, .106e+02, .550e+02, .203e+02, .129e+02, .884e+01, .707e+02, .377e+00, .618e+02, .445e+01, .241e+00, .152e+02, .114e+02, .890e+00,
3575 : .159e+02, .139e+02, .164e+02, .175e+02, .162e+02, .564e+02, .734e+02, .331e+01, .395e+00, .177e+00, .196e+02, .147e+02, .342e+02, .584e+01, .725e+01, .322e+02, .838e+01, .520e+00,
3576 : .509e+02, .109e+02, .216e+02, .402e+00, .134e+02, .336e+02, .160e+02, .748e+02, .286e+01, .115e+00, .398e+01, .234e+02, .537e+01, .539e+02, .975e+01, .359e+02, .792e+01, .187e+02,
3577 : .162e+02, .208e+00, .866e+01, .105e+02, .400e+00, .841e+00, .906e+00, .388e+00, .150e+02, .130e+02, .155e+02, .158e+02, .251e+02, .170e+02, .751e+00, .241e+01, .947e+00, .364e+02,
3578 : .750e+02, .241e+02, .514e+01, .466e+01, .385e+02, .643e-01, .492e+01, .407e+02, .746e+01, .638e+00, .966e+00, .100e+02, .265e+02, .125e+02, .391e+00, .151e+02, .103e+02, .198e+01,
3579 : .329e+02, .538e+01, .365e+02, .190e+02, .386e+01, .152e+02, .525e+02, .967e+00, .512e+00, .700e+01, .855e+02, .898e+02, .742e+02, .954e+01, .297e-01, .277e+02, .407e+02, .127e+01,
3580 : .121e+02, .146e+02, .156e+01, .122e+02, .802e+02, .328e+02, .928e+02, .379e+00, .157e+02, .570e+01, .427e+02, .400e+01, .653e+01, .743e+02, .110e+01, .283e+02, .294e+02, .908e+01,
3581 : .385e+00, .116e+02, .287e+02, .142e+02, .945e+02, .115e+01, .154e+02, .144e+02, .457e+01, .608e+01, .264e+02, .182e+02, .355e+01, .196e+02, .684e+02, .324e+02, .449e+02, .607e+01,
3582 : .364e+00, .727e+02, .236e+02, .862e+01, .512e+02, .184e+02, .112e+02, .162e+02, .137e+02, .919e+00, .779e+00, .210e+02, .294e+02, .169e+02, .947e+02, .470e+02, .646e+01, .184e+02,
3583 : .310e+01, .157e+02, .159e+02, .269e+00, .222e+02, .135e+02, .626e+02, .196e+02, .220e+02, .171e+02, .147e+02, .111e+02, .245e+02, .123e+02, .868e+01, .990e+01, .745e+01, .618e+01,
3584 : .561e+01, .485e+01, .344e+01, .187e+01, .270e+02, .155e+02, .295e+02, .815e+01, .107e+02, .158e+02, .132e+02, .319e+02, .446e+00, .687e+01, .199e+02, .349e+00, .326e+02, .342e+02,
3585 : .266e+01, .491e+02, .301e+02, .310e+01, .573e+02, .515e+01, .730e+00, .470e+01, .526e+02, .723e+01, .334e+00, .402e+02, .305e+02, .148e+02, .977e+01, .123e+02, .767e+01, .207e+02,
3586 : .533e+02, .270e+02, .920e+02, .182e+01, .207e+02, .370e+02, .424e+01, .551e+00, .258e+02, .418e+02, .923e+02, .485e+02, .677e+01, .202e+02, .144e+02, .931e+01, .554e+02, .119e+02,
3587 : .794e+01, .856e+02, .142e+01, .319e+02, .694e+02, .157e+02, .309e+02, .310e+02, .431e+02, .721e+01, .104e+00, .379e+01, .448e+02, .157e+02, .846e+01, .631e+01, .493e+02, .139e+02,
3588 : .885e+01, .114e+02, .575e+02, .104e+01, .415e+02, .795e+02, .739e+01, .443e+02, .335e+01, .160e+02, .352e+02, .415e+02, .595e+02, .585e+01, .135e+02, .371e+01, .838e+01, .397e+00,
3589 : .109e+02, .308e+02, .311e+02, .157e+02, .693e+00, .924e+01, .855e+01, .767e+01, .354e+02, .292e+01, .298e+02, .236e+02, .318e+02, .158e+02, .155e+02, .452e+02, .739e+02, .616e+02,
3590 : .539e+01, .130e+02, .571e-01, .327e+02, .679e+02, .792e+01, .105e+02, .131e+02, .395e+02, .300e+02, .390e+00, .392e+02, .365e+02, .488e+02, .418e+02, .274e+02, .339e+02, .444e+02,
3591 : .312e+02, .801e+01, .221e+02, .287e+02, .249e+02, .249e+01, .261e+02, .470e+02, .637e+02, .150e+02, .224e+02, .236e+02, .247e+01, .313e+02, .211e+02, .200e+02, .175e+02, .163e+02,
3592 : .494e+01, .100e+02, .163e+02, .151e+02, .222e+02, .139e+02, .125e+02, .127e+02, .115e+02, .103e+02, .902e+01, .494e+02, .775e+01, .642e+01, .504e+01, .355e+01, .191e+01, .459e+02,
3593 : .746e+01, .100e+02, .459e+02, .689e+02, .157e+02, .122e-01, .517e+02, .149e+00, .403e-01, .837e+01, .208e+01, .273e+00, .658e+02, .439e+02, .902e+01, .145e+02, .989e-01, .158e+02,
3594 : .539e+02, .449e+01, .121e+02, .318e+02, .365e-01, .700e+01, .954e+01, .109e+02, .195e+00, .645e+02, .558e+02, .288e-01, .465e+02, .315e+02, .875e+01, .679e+02, .341e+02, .168e+01,
3595 : .668e+02, .141e+02, .404e+01, .116e+02, .314e+01, .485e+02, .654e+01, .503e+02, .908e+01, .158e+02, .575e+02, .324e+00, .482e+02, .269e+02, .118e+02, .605e+02, .699e+02, .915e+01,
3596 : .130e+01, .136e+02, .158e+02, .147e+01, .360e+01, .111e+02, .590e+02, .469e+02, .609e+01, .861e+01, .927e+01, .318e+02, .129e+02, .316e+02, .570e+02, .461e+00, .720e+02, .954e+01,
3597 : .180e+00, .131e+02, .946e+00, .238e+02, .317e+01, .107e+02, .603e+02, .525e+02, .158e+02, .247e+02, .546e+02, .563e+01, .815e+01, .133e-01, .142e+02, .536e+02, .151e+02, .386e+02,
3598 : .658e+02, .741e+02, .482e+02, .994e+01, .473e+02, .126e+02, .625e+00, .158e+02, .505e+02, .158e+02, .275e+01, .102e+02, .927e+01, .380e+01, .576e+00, .518e+01, .769e+01, .613e+02,
3599 : .146e+02, .317e+02, .761e+02, .265e-01, .318e+02, .475e+02, .103e+02, .851e+02, .176e+02, .122e+02, .347e+00, .929e+01, .568e+02, .306e+02, .447e+02, .158e+02, .234e+01, .973e+01,
3600 : .514e+02, .942e+01, .565e+02, .596e+02, .589e+02, .474e+01, .723e+01, .141e+02, .623e+02, .419e+02, .477e+02, .199e+02, .483e+02, .782e+02, .475e+02, .458e+02, .649e+02, .258e+01,
3601 : .621e+02, .392e+02, .431e+02, .107e+02, .405e+02, .117e+02, .365e+02, .114e+00, .674e+02, .130e+00, .378e+02, .159e+02};
3602 :
3603 : static const double el[714] = {
3604 : 14.829, 82.112, 161.460, 93.041, 590.668, 625.920, 37.736, 66.625, 243.057, 590.668, 178.249, .048, 27.505, 6.005, 905.909, 341.078, 489.372, 315.800,
3605 : 664.175, 16.705, 44.775, 820.852, 109.449, 32.113, 863.040, 126.185, 950.679, 555.244, 742.728, 141.501, 52.178, 522.109, .048, 826.204, 21.755, 914.786,
3606 : 27.505, 289.682, 820.852, 1187.079, 44.775, 76.841, 289.682, 266.353, 1043.227, 404.527, 109.449, 489.372, 780.284, 555.244, 95.891, 1137.927, 6.005, 141.501,
3607 : 905.909, 106.043, 14.829, 1341.535, 458.464,1140.715, 243.057, 10.682, 740.615, 1090.097, 66.625, 466.967, 221.847, 82.112, 139.734, 16.705, 1243.178, 428.311,
3608 : 702.390, 150.326, 70.546, 1043.386, 114.937, 190.473, 341.078, 1451.368, 84.353, 235.320, 201.216,1350.651, 58.609, 399.702, 178.249, 665.197, 625.920, 37.736,
3609 : 284.806, 997.946, 177.876, 995.784, 32.113,1397.560, 59.505, 21.755, 1450.326, 182.241, 533.869, 93.041, 10.682, 372.060, 6.757, 338.862, 629.343, 14.829,
3610 : 50.107, 953.661, 1344.976, 27.505, 164.163, 52.178, 345.798, 44.775, 594.596, 220.450, 397.425, 910.617, 41.643, 397.233, 1293.576, 147.499, 66.625, 219.672,
3611 : 4.527, 124.007, 320.620, 605.230, 561.127, 34.529, 76.841, 868.749, 93.041, 701.393, 1243.388, 1684.808, 1564.176, 131.901, 1090.473, 460.440, 296.730,546.777,
3612 : 477.190, 296.730, 6.757, 621.049, 528.809, 412.357, 267.449, 28.535, 124.007, 828.103, 1194.392,1627.500, 117.591, 10.682, 352.343, 699.931, 106.043, 273.988,
3613 : 159.505, 497.734, 297.203, 159.505, 788.646, 681.045, 527.869, 1146.601, 783.350, 265.749, 458.130, 104.429, 1571.386, 246.986, 252.484, 14.829, 467.832,139.734,
3614 : 21.755, 318.874, 750.400, 201.730, 199.523, 1100.005, 92.496, 1516.471, 871.237, 313.726, 1682.795, 232.158, 781.648, 161.460, 199.523, 439.153, 1189.967, 713.348,
3615 : 126.185, 599.691, 1054.611, 1341.535, 81.745,1462.749, 177.876, 95.891, 244.044, 37.736, 213.047, 70.546, 761.313, 50.107, 34.529, 23.772, 28.535, 41.643,
3616 : 318.874, 411.659, 267.449, 59.505, 1084.860, 82.112, 963.535, 316.455, 109.449, 677.501, 1188.464, 374.728, 985.917, 27.505, 220.450, 141.501, 1010.414, 72.198,
3617 : 374.728, 1410.225, 1876.720, 178.249, 523.747, 891.714, 1296.648, 195.126, 435.018, 177.876, 219.672, 293.059, 244.044, 385.378, 58.609, 220.450, 642.852, 63.843,
3618 : 802.327, 967.417, 265.749, 499.746, 1358.896, 675.897, 1817.083, 1409.332, 178.409, 139.734,1450.326, 316.455, 360.286, 1060.202, 717.824, 717.824, 609.403,1806.210,
3619 : 866.672, 56.685, 84.353, 925.617, 568.917, 756.490, 841.476, 846.029, 346.556, 1308.763, 1758.638, 435.018, 371.768, 1294.255, 675.897, 162.886, 930.862, 267.449,
3620 : 1526.443, 371.768, 20.190, 44.775, 293.059, 106.043, 336.402, 638.266, 577.153, 599.691, 1024.657, 885.016, 431.663, 1259.826, 642.531, 1701.385, 114.937, 148.562,
3621 : 756.490, 23.772, 563.701, 594.060, 313.726, 404.527, 1161.216, 1122.864, 527.869, 546.102,1803.645, 1936.420, 1647.919, 845.613, 76.841, 496.118, 318.874, 1266.567,
3622 : 1212.085, 1645.325, 135.433, 150.326, 1675.505,494.166, 2073.742, 720.590, 499.746, 28.535, 346.556,292.220, 516.249, 1552.086, 1161.216, 431.663, 429.677, 807.407,
3623 : 460.440, 1165.539, 565.111, 1590.458, 2215.529, 123.500, 466.967, 190.473, 66.625, 34.529, 370.229, 956.442, 271.925, 1934.413, 1433.471, 841.476, 374.728, 487.594,
3624 : 803.094, 1773.718, 315.800, 770.399, 1266.567,1403.322, 1120.190, 2019.973, 1536.784, 1060.202, 112.762, 266.353, 638.623, 235.320, 2361.700, 404.527, 41.643, 221.847,
3625 : 252.827, 568.917, 182.241, 397.425, 669.044, 147.499, 1319.736, 243.057, 289.682, 201.216, 164.163, 117.591, 341.078, 131.901, 92.496, 104.429, 81.745, 72.198,
3626 : 460.136, 63.843, 56.685, 50.720, 397.233, 533.869, 458.130, 734.587, 1076.036, 1959.185, 1484.303, 523.747, 103.218, 50.107, 284.806, 890.041, 496.118, 594.060,
3627 : 234.925, 435.018, 716.637, 742.728, 1210.951, 433.875, 963.535, 408.810, 1107.172, 666.555, 981.432, 832.917, 799.138, 1841.177, 991.315, 1382.921, 70.546, 1050.936,
3628 : 499.746, 397.425, 2392.169, 202.707, 2067.394, 565.111, 384.942, 871.237, 748.672, 921.752, 2666.957, 1008.443, 634.333, 1517.149, 1783.959, 950.748, 533.869, 1334.020,
3629 : 82.112, 2244.549, 188.391, 1024.657, 2038.187, 681.045, 886.113, 460.440, 1015.150, 45.950, 284.806, 362.270, 914.786, 720.590, 95.891, 603.307, 1490.294, 1727.931,
3630 : 911.376, 1286.313, 568.917, 175.269, 826.204, 2101.799, 50.720, 1113.086, 340.793, 2172.881, 527.869, 638.623, 605.230, 573.477, 1673.094, 124.007, 873.200, 783.350,
3631 : 1239.800, 742.728, 977.551, 761.313, 163.341, 126.185, 109.449, 56.685, 664.175, 320.511, 832.917, 1150.128, 1122.864, 803.094, 2110.925,1215.538, 1963.991, 642.531,
3632 : 544.843, 1619.448, 235.320, 590.668, 2176.847, 836.219, 1194.480, 742.728, 599.691, 522.109, 152.607, 781.648, 701.393, 1608.688, 866.672, 458.464, 625.920, 956.442,
3633 : 555.244, 63.843, 2205.134, 489.372, 399.702, 301.424, 428.311, 1050.936, 681.045, 2050.156, 345.798, 372.060, 273.988, 1073.445, 320.620, 296.730, 252.484, 273.988,
3634 : 517.404, 161.460, 232.158, 213.047, 1635.714, 195.126, 1566.993, 178.409, 162.886, 148.562,135.433, 1150.128, 123.500, 112.762, 103.218, 94.868, 87.712, 716.637,
3635 : 800.433, 1150.355, 1322.486, 1831.187, 846.029, 32.113, 1253.989, 143.066, 52.178, 72.198, 283.532, 699.931, 720.590, 675.897, 141.501, 1990.574, 76.841, 890.041,
3636 : 1362.492, 491.160, 1515.731, 1225.489, 320.620, 765.842, 1107.424, 201.730, 106.043, 1703.435, 1475.605, 190.473, 1433.910, 1173.786, 81.745, 761.313, 921.752, 266.834,
3637 : 2319.798, 1932.181, 466.111, 1465.660, 159.505, 1731.447, 732.445, 799.138, 1065.686, 935.192, 1593.299, 139.734, 756.490, 1253.989, 246.986, 1580.761, 803.094, 92.496,
3638 : 251.329, 1874.976, 981.432, 313.726, 442.257, 1416.782, 1715.546, 1549.795, 700.244,1025.143, 178.249, 1332.532, 297.203, 1278.568, 1463.170, 177.876, 846.029, 104.429,
3639 : 621.049, 1818.961, 237.019, 2347.613, 419.597, 1369.096, 1842.318, 841.476, 1028.800, 1758.992, 886.113, 669.237, 985.794, 150.326, 352.343, 1350.651, 2272.061, 1015.150,
3640 : 2467.044, 890.041, 1858.577, 117.591, 1670.127, 1764.134, 223.902, 1077.263, 1243.178, 412.357, 398.131, 1322.603, 81.749, 1294.255, 220.450, 639.425, 947.640, 1973.589,
3641 : 2210.097, 1387.786, 935.192, 360.286, 1443.996, 1140.715, 131.901, 2734.393, 477.190, 1710.498, 211.978, 219.672, 930.862, 1362.492, 1043.227, 1126.848, 377.859, 1277.302,
3642 : 1403.322, 87.712, 1517.149, 1635.714, 977.551, 610.807, 910.679, 2149.318, 1758.992, 950.679, 1294.255, 546.777, 1189.967, 981.432, 1794.894, 1090.473, 1886.955, 199.523,
3643 : 2109.336, 863.040, 995.784, 147.499, 905.909, 1658.052, 780.284, 546.777, 2019.573, 201.247, 820.852, 1177.534 };
3644 :
3645 : static const double pi=3.141592654;
3646 : static const double picube8div3hcesu=4.1623755e-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755e-19
3647 : static const double mu=0.53; //debyes
3648 : static const double mmol=48.0;
3649 :
3650 : //double q=1.321477358*pow(tt,1.5);
3651 52910 : double q=1.321477358*tt*sqrt(tt);
3652 : // unsigned int vp;
3653 : unsigned int ini;
3654 : unsigned int ifin;
3655 52910 : std::complex<double> lshape;
3656 52910 : std::complex<double> lshapeacum;
3657 :
3658 52910 : if(nu>999.9){
3659 :
3660 0 : return std::complex<double> (0.0,0.0);
3661 :
3662 : }else{
3663 :
3664 : // vp=vpIndex(nu);
3665 :
3666 :
3667 : // if(pp<100){
3668 : // ini=ini3[vp];
3669 : // ifin=ifin3[vp];
3670 : // }else{
3671 : // if(pp<300){
3672 : // ini=ini2[vp];
3673 : // ifin=ifin2[vp];
3674 : // }else{
3675 : // ini=ini1[vp];
3676 : // ifin=ifin1[vp];
3677 : // }
3678 : // }
3679 :
3680 52910 : ini=0;
3681 52910 : ifin=712;
3682 :
3683 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
3684 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
3685 :
3686 52910 : if(ifin==0||ifin<ini){
3687 :
3688 52910 : return std::complex<double> (0.0,0.0);
3689 :
3690 : }else{
3691 :
3692 0 : for(unsigned int i=ini; i<ifin+1; i++){
3693 :
3694 0 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening en ghz/mb 13/11/2018
3695 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
3696 0 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
3697 0 : lshapeacum=lshapeacum+lshape;
3698 :
3699 : }
3700 :
3701 0 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // imaginary part: absorption coefficient in cm^2
3702 0 : *(0.047992745509/tt); // real part: delay in rad*cm^2
3703 :
3704 0 : return lshapeacum*1e-4; // to give it in si units (m^2) // ( rad m^2 , m^2 )
3705 :
3706 :
3707 : }
3708 :
3709 : }
3710 :
3711 : }
3712 :
3713 :
3714 : //////////////////////// opacity source number: 17 /////////////////////////////
3715 :
3716 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o_v2(double tt, double pp, double nu){
3717 :
3718 :
3719 : static const double fre[568] ={
3720 : 9.07727, 23.55104, 27.94782, 28.91511, 34.91645, 36.14138, 39.09470, 39.14995, 39.45918, 41.92214, 42.42771, 43.05170, 43.19104, 44.68612, 51.27430, 51.46276, 51.91341, 58.38593,
3721 : 58.95080, 65.26705, 67.70191, 71.44926, 72.47378, 72.65745, 78.48808, 80.19127, 80.82543, 83.73572, 90.32472, 90.78593, 97.93066,100.21080,100.58295,100.89980,103.15038,103.55400,
3722 : 110.77082,111.78292,112.84448,114.01002,114.31108,117.92264,119.31675,119.89632,120.25361,121.67815,123.23891,126.11106,126.37692,134.49941,136.41544,136.53050,139.08888,139.98778,
3723 : 144.85117,150.05959,153.13392,153.46995,158.53177,160.17711,160.41170,163.25498,166.19094,167.85177,168.96758,171.26122,173.30980,176.41264,177.02866,178.71439,182.18019,187.19189,
3724 : 187.20753,188.89419,192.26473,199.25041,205.21400,206.49597,206.50472,209.52911,210.20611,215.13955,216.13514,219.94913,223.27097,231.24697,235.86802,239.29203,239.86189,241.20384,
3725 : 241.27375,242.65594,243.38308,246.51308,246.55117,250.27164,252.74195,253.39203,254.28748,254.89639,259.23598,260.79831,263.20694,265.23459,268.20463,268.59950,268.66475,271.92656,
3726 : 273.94763,275.17088,278.52175,279.28491,281.53528,284.39544,284.58697,289.00091,289.95894,291.34566,291.69631,295.49575,298.36513,299.48881,299.67969,302.54516,308.56663,311.62706,
3727 : 313.57466,321.49663,322.00313,322.13866,326.04841,326.44759,326.48119,326.85763,335.68550,337.23994,337.63997,338.72216,340.67963,347.96406,348.56738,351.95719,352.27903,353.27259,
3728 : 353.27531,356.42228,357.62791,358.75147,359.60594,359.95072,363.56725,363.67178,364.50469,365.30888,365.83550,370.05756,372.99022,373.92394,376.99006,378.28294,378.52150,382.08419,
3729 : 383.28641,383.86066,384.64384,389.34978,391.32825,391.91619,399.25669,400.08503,401.06497,403.61106,404.34025,404.66594,404.71734,408.66675,409.88913,411.68025,415.19147,415.38469,
3730 : 416.36244,418.03241,424.60925,425.95484,429.43828,430.87925,433.42947,434.57950,435.93016,436.98288,438.39050,439.58853,441.02566,441.72063,441.84878,444.99916,445.99381,450.03809,
3731 : 451.88844,454.80788,455.38150,456.63503,461.83681,465.21550,465.36981,466.79322,466.99206,471.08938,471.27872,472.74159,474.81219,476.61241,477.33438,477.56059,477.64869,477.72138,
3732 : 478.20375,479.26484,479.47713,480.34153,481.18059,481.21731,482.58103,484.41191,484.62709,487.39081,487.71963,489.21794,489.86122,492.23491,492.35197,492.47447,494.69928,496.00325,
3733 : 500.01206,501.11381,503.40666,505.11475,505.66988,506.54347,510.83794,511.42366,512.82278,513.50809,516.86134,517.17709,517.37250,517.55106,517.93194,518.65200,520.35219,520.80363,
3734 : 529.05481,529.96006,531.02625,531.49919,532.70088,538.29756,539.25725,542.51088,543.39544,544.48863,546.68750,548.58725,549.22050,552.77113,553.35113,554.67256,556.28781,560.46125,
3735 : 562.76738,563.45056,564.93550,567.81325,568.83831,569.57150,570.14550,571.32831,574.31050,577.90487,580.21512,581.31881,581.53313,582.34819,583.89875,584.03556,584.63006,590.57006,
3736 : 594.21044,594.31769,599.98038,602.54025,602.77669,603.07944,605.71838,606.73050,607.20313,612.38725,616.14838,617.39475,619.54994,620.03894,621.70319,625.28488,625.60675,626.65838,
3737 : 626.72900,628.22719,628.28538,629.42363,630.10213,631.16613,631.90444,634.33369,639.34588,641.68387,644.84219,645.37494,648.50456,651.18725,651.82275,652.19394,652.27100,653.46219,
3738 : 656.57475,656.68450,657.05119,658.54256,659.09250,662.82150,665.16688,665.44538,665.85600,666.15088,666.16975,666.29031,666.45525,666.55975,666.64750,667.05931,667.17300,667.33156,
3739 : 667.42369,667.48806,667.69206,667.72163,667.85663,667.89350,667.93650,667.95325,669.58106,670.10263,670.26513,673.09713,674.88350,676.72750,678.41094,679.06831,681.94013,682.17938,
3740 : 685.61463,685.88850,690.76550,691.11463,691.36369,691.47250,692.62288,695.32938,695.86706,697.08969,700.68500,702.22769,702.58563,707.27037,707.29169,708.63775,712.87313,714.34444,
3741 : 715.15731,718.03356,718.26231,718.47687,720.52944,721.73394,724.43113,727.69156,729.85275,730.59444,732.56600,736.30963,740.01300,742.82113,743.40675,743.40950,745.64106,745.70506,
3742 : 746.59163,747.28206,750.35725,751.59244,753.12038,755.23294,757.83163,760.27844,761.06781,761.76231,762.07981,765.64688,766.07113,768.29750,768.75225,770.86019,777.06050,777.70738,
3743 : 778.51681,783.06950,783.33219,787.18413,788.87456,791.15450,791.24994,793.37881,794.06481,795.99775,796.73963,800.94869,803.88256,807.21200,807.76225,808.28281,809.49625,810.00688,
3744 : 810.87494,811.23494,812.23619,812.57694,818.25144,818.45744,819.34931,819.85563,821.12081,822.55250,824.43763,829.21981,831.84294,832.15219,833.47400,833.78169,835.14306,837.89656,
3745 : 837.94219,840.77938,843.43500,843.51525,844.60819,844.96056,845.40413,845.48931,845.52100,845.92763,846.23187,846.52600,847.44106,848.04375,849.66094,849.72650,851.09012,851.39838,
3746 : 851.60544,852.33419,852.93706,854.22400,854.26869,854.53031,855.04231,855.35981,855.53963,856.20763,856.43656,856.68088,856.83106,856.83306,857.03013,857.26206,857.40594,857.53869,
3747 : 857.62863,857.69963,857.74769,857.78075,857.80113,857.81263,858.64569,861.68419,863.28150,865.01181,868.52863,868.58619,868.63575,869.57456,869.84356,871.33350,875.92800,879.81600,
3748 : 881.54875,883.33775,883.80025,886.19825,887.43269,888.59650,889.82831,893.56488,895.05750,895.06713,895.94994,901.07756,902.49744,902.74506,903.69513,905.07863,908.93988,913.88856,
3749 : 914.18431,918.66119,920.20431,920.25206,923.23988,924.80769,928.03606,929.56475,930.31994,932.65425,933.58512,934.06669,939.15919,943.42700,945.42906,950.58156,950.74106,954.30694,
3750 : 955.15775,955.54156,955.79763,959.18256,964.40975,964.82688,965.11381,965.47175,968.67456,970.28650,970.59038,972.06238,974.34419,974.56569,975.78650,978.83894,980.74506,983.23825,
3751 : 984.28937,989.64163,990.02188,991.23331,992.93944,994.59844,995.73769,997.30344,997.36875,998.92956};
3752 :
3753 : static const double texpo3[568] ={
3754 : 0.76,0.79,0.79,0.78,0.78,0.78,0.79,0.78,0.78,0.79,0.78,0.80, 0.79,0.76,0.80,0.80,0.77,0.79,0.77,0.76,0.81,0.77,0.78,0.77,
3755 : 0.80,0.81,0.82,0.79,0.79,0.79,0.76,0.82,0.77,0.78,0.77,0.76, 0.80,0.81,0.76,0.78,0.82,0.79,0.80,0.76,0.76,0.82,0.77,0.83,
3756 : 0.77,0.77,0.80,0.82,0.79,0.77,0.77,0.78,0.82,0.82,0.77,0.80, 0.83,0.77,0.76,0.83,0.77,0.80,0.76,0.79,0.81,0.76,0.77,0.82,
3757 : 0.80,0.78,0.79,0.77,0.77,0.78,0.81,0.76,0.78,0.76,0.76,0.77, 0.79,0.81,0.78,0.78,0.78,0.77,0.77,0.83,0.78,0.78,0.79,0.77,
3758 : 0.78,0.77,0.77,0.79,0.81,0.78,0.77,0.83,0.81,0.82,0.79,0.76, 0.77,0.79,0.78,0.76,0.78,0.76,0.80,0.77,0.78,0.76,0.79,0.82,
3759 : 0.76,0.77,0.79,0.77,0.77,0.80,0.77,0.82,0.77,0.79,0.76,0.78, 0.77,0.79,0.79,0.80,0.76,0.77,0.77,0.80,0.83,0.78,0.76,0.78,
3760 : 0.78,0.78,0.83,0.77,0.76,0.80,0.77,0.80,0.80,0.77,0.80,0.81, 0.79,0.81,0.76,0.79,0.79,0.78,0.81,0.83,0.79,0.79,0.77,0.76,
3761 : 0.79,0.81,0.78,0.78,0.76,0.80,0.82,0.78,0.83,0.78,0.78,0.79, 0.77,0.80,0.79,0.81,0.78,0.78,0.79,0.76,0.83,0.84,0.78,0.78,
3762 : 0.79,0.82,0.77,0.78,0.77,0.76,0.81,0.78,0.81,0.77,0.82,0.78, 0.77,0.79,0.77,0.79,0.77,0.83,0.77,0.76,0.76,0.76,0.80,0.76,
3763 : 0.77,0.77,0.78,0.78,0.76,0.77,0.83,0.77,0.77,0.76,0.82,0.78, 0.79,0.77,0.79,0.76,0.79,0.78,0.76,0.80,0.80,0.78,0.77,0.79,
3764 : 0.81,0.76,0.77,0.82,0.79,0.79,0.76,0.76,0.79,0.76,0.77,0.79, 0.80,0.76,0.77,0.79,0.82,0.76,0.82,0.76,0.78,0.79,0.80,0.83,
3765 : 0.79,0.76,0.77,0.80,0.77,0.76,0.79,0.79,0.76,0.79,0.78,0.82, 0.80,0.76,0.83,0.76,0.79,0.77,0.77,0.80,0.78,0.81,0.80,0.76,
3766 : 0.78,0.80,0.78,0.76,0.76,0.80,0.79,0.77,0.79,0.78,0.76,0.79, 0.78,0.79,0.76,0.83,0.76,0.80,0.76,0.80,0.76,0.76,0.76,0.79,
3767 : 0.77,0.79,0.78,0.76,0.78,0.79,0.76,0.76,0.80,0.81,0.77,0.78, 0.79,0.77,0.77,0.81,0.78,0.78,0.77,0.79,0.81,0.78,0.80,0.78,
3768 : 0.79,0.77,0.77,0.77,0.76,0.77,0.77,0.79,0.77,0.77,0.77,0.76, 0.76,0.76,0.79,0.78,0.81,0.80,0.76,0.76,0.80,0.77,0.76,0.77,
3769 : 0.76,0.76,0.80,0.76,0.76,0.79,0.76,0.77,0.76,0.80,0.77,0.76, 0.76,0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.79,0.76,0.77,0.76,
3770 : 0.76,0.76,0.76,0.77,0.76,0.76,0.77,0.81,0.80,0.76,0.76,0.77, 0.80,0.77,0.81,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.81,0.76,
3771 : 0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.76,0.77,0.76,0.81,0.76, 0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
3772 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76, 0.78,0.78,0.76,0.80,0.76,0.77,0.76,0.76,0.76,0.77,0.76,0.76,
3773 : 0.76,0.76,0.76,0.79,0.77,0.76,0.76,0.76,0.79,0.80,0.76,0.79, 0.76,0.79,0.79,0.78,0.79,0.76,0.76,0.78,0.78,0.78,0.78,0.76,
3774 : 0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76, 0.76,0.76,0.76,0.76,0.78,0.77,0.76,0.76,0.76,0.77,0.76,0.76,
3775 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.78,0.76,0.78, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,
3776 : 0.76,0.79,0.76,0.76,0.78,0.79,0.76,0.77,0.76,0.76,0.76,0.79, 0.76,0.76,0.78,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,
3777 : 0.76,0.76,0.79,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76, 0.76,0.76,0.76,0.76};
3778 :
3779 : static const double brdo3air[568] ={
3780 : 2.5984,2.1870,2.1722,2.2669,2.2492,2.1959,2.1456,2.3084,2.2403, 2.1574,2.1604,2.1130,2.1574,2.6901,2.1130,2.1338,2.2877,2.1278,
3781 : 2.4859,2.5155,2.0953,2.3883,2.2877,2.3439,2.1042,2.0953,2.0627, 2.0983,2.1870,2.2018,2.5895,2.0627,2.4060,2.2314,2.3498,2.5244,
3782 : 2.1249,2.0835,2.4682,2.3291,2.0687,2.0746,2.1130,2.7405,2.5392, 2.0687,2.4386,2.0598,2.4149,2.4771,2.1249,2.0716,2.2166,2.3439,
3783 : 2.3705,2.2314,2.0627,2.0716,2.3735,2.0539,2.0598,2.3942,2.6428, 2.0568,2.3291,2.1338,2.5540,2.2018,2.0775,2.5925,2.3735,2.0598,
3784 : 2.1042,2.2492,2.1456,2.2936,2.4208,2.2669,2.0835,2.5540,2.3025, 2.0154,2.6428,2.4445,2.1574,2.0894,2.2610,2.2877,2.2610,2.3143,
3785 : 2.2936,2.0598,2.2344,2.3084,2.1722,2.4771,2.2078,2.4711,2.3705, 2.1722,2.0953,2.3084,2.4149,2.0568,2.0894,2.0598,2.1841,2.4682,
3786 : 2.4978,2.1870,2.2344,2.5244,2.2640,2.5895,2.1042,2.4060,2.3291, 2.5570,2.1604,2.0627,2.4948,2.2640,2.2018,2.5244,2.4415,2.1130,
3787 : 2.3498,2.0687,2.3912,2.1397,2.5540,2.2078,2.3439,2.2166,2.1456, 2.1249,2.6901,2.3498,2.3735,2.1338,2.0568,2.2314,2.5836,2.2255,
3788 : 2.2255,2.2166,2.0568,2.3113,2.6191,2.1190,2.2877,2.1338,2.1900, 2.3942,2.1190,2.1663,2.1397,2.0775,2.6132,2.1604,2.1841,2.2788,
3789 : 2.1456,2.0568,2.1604,2.1456,2.4208,2.5984,2.1841,2.0835,2.2403, 2.2669,2.5658,2.1900,2.1249,2.2462,2.0568,2.1782,2.2078,2.1574,
3790 : 2.4445,2.1249,2.1900,2.0894,2.2877,2.2344,2.1604,2.3000,2.0598, 2.0598,2.2196,2.1959,2.1722,2.0687,2.4711,2.2610,2.5126,2.5155,
3791 : 2.0953,2.3084,2.1663,2.2936,2.0598,2.1426,2.3291,2.1870,2.4978, 2.1959,2.3705,2.0923,2.4149,2.4682,2.5244,2.5570,2.1042,2.4948,
3792 : 2.4415,2.3912,2.1604,2.3291,2.3000,2.3498,2.0923,2.3113,2.4623, 2.3000,2.0627,2.2788,2.1397,2.5244,2.2018,2.3000,2.1574,2.2462,
3793 : 2.3000,2.1042,2.1130,2.2196,2.3498,2.1722,2.1456,2.3000,2.4386, 2.0687,2.1959,2.1130,2.5540,2.3000,2.2166,2.3000,2.4120,2.1278,
3794 : 2.1249,2.0568,2.3735,2.1722,2.0598,2.3000,2.0716,2.5836,2.2314, 2.1515,2.1190,2.0568,2.1515,2.4948,2.3676,2.1338,2.3942,2.3000,
3795 : 2.1278,2.0983,2.3000,2.0864,2.2492,2.1249,2.1308,2.3000,2.0568, 2.6132,2.1456,2.3735,2.4208,2.1900,2.3232,2.0894,2.1308,2.3000,
3796 : 2.2669,2.1071,2.2877,2.3000,2.5836,2.1900,2.1574,2.4445,2.0746, 2.2817,2.3000,2.0657,2.2877,2.1397,2.3000,2.0568,2.3000,2.1071,
3797 : 2.3000,2.0983,2.5540,2.3000,2.3000,2.1722,2.4711,2.1604,2.2433, 2.3000,2.3084,2.1841,2.3000,2.3000,2.0539,2.1574,2.5244,2.2078,
3798 : 2.1870,2.3143,2.4978,2.1663,2.2344,2.2610,2.2936,2.2078,2.0775, 2.2196,2.0450,2.2462,2.1959,2.3291,2.2936,2.3113,2.3000,2.3705,
3799 : 2.3498,2.1722,2.3912,2.4149,2.4415,2.4682,2.4948,2.5244,2.1515, 2.3291,2.1782,2.1308,2.3000,2.3000,2.1071,2.4978,2.3000,2.5244,
3800 : 2.3000,2.3000,2.0716,2.3000,2.3000,2.1722,2.3000,2.3498,2.3000, 2.0361,2.4711,2.3000,2.3000,2.3000,2.5540,2.3000,2.3000,2.0272,
3801 : 2.3000,2.3000,2.1426,2.3000,2.3735,2.3000,2.3000,2.3000,2.3000, 2.4445,2.3000,2.3000,2.2640,2.0183,2.0983,2.3000,2.3000,2.3942,
3802 : 2.1130,2.4208,2.0479,2.3000,2.3000,2.3000,2.4356,2.3000,2.3000, 2.3000,2.0124,2.3000,2.3000,2.4356,2.3000,2.3000,2.0864,2.3000,
3803 : 2.3000,2.3000,2.3942,2.3000,2.0035,2.3000,2.3735,2.5836,2.5836, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
3804 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.5540,2.3000,2.3000,2.4711, 2.3000,2.3000,2.3000,2.3291,2.2166,2.3000,2.1900,2.3000,2.3498,
3805 : 2.3000,2.3000,2.3000,2.5244,2.3000,2.3000,2.3000,2.3000,2.3000, 2.1397,2.4978,2.3000,2.3000,2.3000,2.1604,2.1308,2.3000,2.1515,
3806 : 2.3000,2.1841,2.1722,2.2078,2.1959,2.3000,2.3000,2.2196,2.2344, 2.2462,2.2610,2.3000,2.2788,2.2788,2.2936,2.3113,2.3291,2.3498,
3807 : 2.3705,2.3912,2.4149,2.4415,2.4682,2.4948,2.3000,2.3000,2.3000, 2.3000,2.2877,2.4978,2.3000,2.3000,2.3000,2.5244,2.0154,2.3000,
3808 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4711,2.3000, 2.3084,2.3000,2.2492,2.3000,2.0302,2.3000,2.0568,2.3000,2.3000,
3809 : 2.3000,2.4445,2.3000,2.3000,2.3000,2.3000,2.3000,2.2166,2.3000, 2.3000,2.1782,2.2166,2.3000,2.4208,2.3000,2.3000,2.3000,2.1870,
3810 : 2.3000,2.3000,2.2669,2.3000,2.3000,2.3000,2.3000,2.3000,2.3942, 2.3000,2.3000,2.3000,2.3000,2.3000,2.1574,2.3000,2.3000,2.3853,
3811 : 2.3000,2.3000,2.3000,2.3000,2.3735,2.3000,2.3000,2.3000,2.3000, 2.3000};
3812 :
3813 :
3814 : static const double flin[568] ={
3815 : .159e+01, .301e+01, .412e+01, .329e+01, .290e+01, .118e+01, .453e+01, .279e+01, .132e+01, .290e+01, .100e+01, .462e+01,
3816 : .415e+01, .512e+00, .240e+01, .268e+01, .139e+01, .833e+00, .147e+01, .278e+01, .524e+01, .284e+01, .268e+01, .136e+01,
3817 : .508e+01, .473e+01, .615e+01, .681e+00, .381e+01, .370e+01, .248e+01, .626e+01, .120e+01, .384e+01, .231e+01, .434e+01,
3818 : .496e+01, .473e+01, .597e+01, .237e+01, .622e+01, .555e+00, .486e+01, .100e+01, .896e+00, .608e+01, .413e+01, .635e+01,
3819 : .731e+01, .926e+00, .468e+01, .462e+01, .344e+01, .367e+01, .827e+01, .327e+01, .438e+01, .587e+01, .200e+01, .455e+00,
3820 : .405e+01, .185e+01, .201e+01, .647e+01, .884e+01, .446e+01, .561e+00, .445e+01, .567e+01, .391e+00, .565e+01, .659e+01,
3821 : .542e+01, .303e+01, .426e+01, .905e+01, .159e+01, .284e+01, .546e+01, .307e+01, .465e+01, .667e+01, .164e+00, .139e+01,
3822 : .404e+01, .525e+01, .900e+01, .261e+01, .130e+02, .735e+01, .109e+02, .646e+01, .149e+02, .878e+01, .383e+01, .424e+01,
3823 : .165e+02, .115e+01, .680e+01, .516e+01, .504e+01, .239e+01, .503e+01, .697e+01, .592e+01, .625e+01, .176e+02, .351e+01,
3824 : .937e+00, .361e+01, .880e+01, .216e+01, .578e+01, .854e+00, .483e+01, .555e+01, .216e+01, .145e+01, .183e+02, .604e+01,
3825 : .251e+01, .922e+01, .339e+01, .714e+00, .344e+01, .461e+01, .194e+01, .582e+01, .427e+01, .184e+02, .502e+00, .855e+01,
3826 : .703e+01, .317e+01, .599e+01, .439e+01, .149e+01, .501e+01, .172e+01, .561e+01, .738e+01, .295e+01, .302e+00, .709e+01,
3827 : .651e+01, .112e+02, .682e+01, .564e+01, .167e+01, .183e+02, .868e+01, .417e+01, .240e+02, .149e+01, .218e+02, .258e+02,
3828 : .194e+02, .539e+01, .126e+00, .272e+01, .831e+01, .616e+01, .271e+02, .661e+01, .170e+02, .395e+01, .127e+01, .179e+01,
3829 : .147e+02, .517e+01, .105e+02, .250e+01, .211e+01, .179e+02, .278e+02, .659e+01, .639e+01, .133e+02, .126e+02, .373e+01,
3830 : .105e+01, .696e+01, .861e+01, .495e+01, .228e+01, .107e+02, .813e+01, .280e+02, .617e+01, .785e+01, .693e+01, .124e+02,
3831 : .351e+01, .719e+01, .836e+00, .914e+01, .263e+01, .208e+01, .473e+01, .205e+01, .174e+02, .772e+01, .595e+01, .153e+02,
3832 : .642e+01, .328e+01, .628e+00, .720e+01, .520e+01, .278e+02, .402e+01, .284e+01, .160e+01, .884e+00, .451e+01, .223e+01,
3833 : .342e+01, .457e+01, .144e+02, .183e+01, .330e+02, .570e+01, .350e+02, .682e+01, .319e+01, .305e+02, .573e+01, .792e+01,
3834 : .801e+01, .431e+00, .306e+01, .365e+02, .103e+02, .899e+01, .279e+02, .811e+01, .429e+01, .100e+02, .161e+01, .740e+01,
3835 : .170e+02, .374e+02, .227e+01, .551e+01, .110e+02, .174e+02, .252e+00, .252e+02, .283e+01, .272e+02, .382e+01, .165e+02,
3836 : .406e+01, .839e+01, .139e+01, .119e+02, .800e+01, .226e+02, .529e+01, .101e+00, .261e+01, .754e+01, .794e+01, .651e+01,
3837 : .126e+02, .249e+01, .454e+01, .384e+01, .117e+01, .203e+02, .122e+02, .185e+02, .507e+01, .195e+02, .238e+01, .166e+02,
3838 : .133e+02, .266e+02, .629e+01, .261e+01, .361e+01, .233e+01, .958e+00, .183e+02, .536e+01, .944e+01, .765e+01, .484e+01,
3839 : .216e+01, .139e+02, .607e+01, .165e+02, .277e+01, .790e+01, .339e+01, .754e+00, .206e+02, .630e+01, .462e+01, .216e+02,
3840 : .194e+01, .148e+02, .144e+02, .897e+01, .585e+01, .773e+01, .904e+01, .142e+02, .295e+01, .259e+02, .163e+02, .316e+01,
3841 : .559e+00, .134e+02, .740e+01, .439e+01, .172e+01, .120e+02, .334e+02, .562e+01, .226e+02, .148e+02, .314e+01, .107e+02,
3842 : .294e+01, .225e+01, .378e+00, .789e+01, .949e+01, .829e+01, .712e+01, .867e+01, .110e+02, .100e+02, .236e+02, .886e+01,
3843 : .112e+02, .595e+01, .769e+01, .653e+01, .417e+01, .479e+01, .537e+01, .125e+02, .420e+01, .361e+01, .299e+01, .235e+01,
3844 : .167e+01, .909e+00, .137e+02, .150e+01, .778e+01, .148e+02, .306e+02, .540e+01, .160e+02, .333e+01, .272e+01, .216e+00,
3845 : .151e+02, .171e+02, .163e+02, .161e+02, .253e+02, .101e+02, .395e+01, .129e+01, .182e+02, .247e+02, .354e+01, .518e+01,
3846 : .281e+02, .249e+01, .840e-01, .192e+02, .789e+01, .257e+02, .782e+01, .372e+01, .118e+02, .101e+02, .108e+01, .153e+02,
3847 : .201e+02, .495e+01, .259e+02, .370e+01, .227e+01, .618e+01, .206e+01, .267e+02, .208e+02, .350e+01, .127e+02, .879e+00,
3848 : .136e+02, .393e+01, .185e+02, .160e+02, .473e+01, .240e+02, .205e+01, .155e+02, .785e+01, .595e+01, .277e+02, .215e+02,
3849 : .789e+01, .350e+01, .327e+01, .686e+00, .156e+02, .222e+02, .450e+01, .184e+01, .404e+01, .573e+01, .287e+02, .221e+02,
3850 : .431e+01, .359e+01, .305e+01, .503e+00, .206e+02, .156e+02, .428e+01, .206e+02, .787e+01, .162e+01, .297e+02, .176e+02,
3851 : .160e+02, .115e+02, .191e+02, .551e+01, .790e+01, .372e+01, .283e+01, .226e+02, .336e+00, .147e+02, .177e+02, .405e+01,
3852 : .469e+01, .180e+01, .141e+01, .164e+02, .307e+02, .433e+01, .528e+01, .151e+02, .157e+02, .389e+01, .261e+01, .195e+02,
3853 : .182e+02, .197e+02, .208e+02, .139e+02, .189e+00, .170e+02, .221e+02, .157e+02, .126e+02, .144e+02, .233e+02, .132e+02,
3854 : .229e+02, .114e+02, .120e+02, .102e+02, .108e+02, .383e+01, .789e+01, .964e+01, .906e+01, .848e+01, .790e+01, .317e+02,
3855 : .732e+01, .245e+02, .674e+01, .615e+01, .557e+01, .497e+01, .437e+01, .375e+01, .311e+01, .244e+01, .172e+01, .925e+00,
3856 : .121e+01, .228e+02, .506e+01, .257e+02, .508e+01, .407e+01, .159e+02, .791e+01, .239e+01, .720e-01, .267e+02, .360e+01,
3857 : .328e+02, .218e+02, .101e+01, .232e+02, .158e+02, .483e+01, .277e+02, .425e+01, .217e+01, .453e+01, .167e+02, .550e+01,
3858 : .130e+02, .790e+01, .338e+02, .338e+01, .812e+00, .461e+01, .249e+02, .445e+01, .792e+01, .195e+01, .239e+02, .159e+02,
3859 : .348e+02, .597e+01, .316e+01, .158e+02, .152e+01, .629e+00, .438e+01, .464e+01, .174e+01, .358e+02, .792e+01, .651e+01,
3860 : .280e+02, .294e+01, .464e+01, .458e+00, .416e+01, .260e+02, .270e+02, .189e+02, .483e+01, .793e+01, .153e+01, .539e+01,
3861 : .265e+02, .368e+02, .715e+01, .159e+02, .272e+01, .450e+01, .151e+00, .394e+01, .250e+02, .148e+02, .503e+01, .792e+01,
3862 : .133e+01, .516e+01, .378e+02, .793e+01};
3863 :
3864 :
3865 : static const double el[568] ={
3866 : 11.564, 347.469, 404.758, 225.711, 246.123, 182.264, 465.222, 184.019, 144.105, 404.786, 225.062, 563.532,
3867 : 433.125, 3.654, 534.637, 467.128, 110.406, 272.396, 49.168, 22.065, 671.848, 97.668, 201.919, 81.410,
3868 : 635.130, 635.048, 918.018, 324.278, 374.061, 347.439, 3.596, 962.487, 56.969, 270.353, 145.945, 12.026,
3869 : 529.279, 711.631, 25.180, 162.424, 874.309, 380.636, 598.169, .041, 30.624, 918.055, 37.180, 1008.843,
3870 : 43.130, 37.240, 563.548, 793.142, 319.819, 127.676, 65.742, 295.092, 879.744, 874.328, 127.685, 441.506,
3871 : 971.495, 112.958, 3.617, 1104.538, 92.984, 529.274, 22.075, 319.826, 832.197, 17.016, 57.049, 962.509,
3872 : 598.108, 270.327, 496.865, 124.829, 97.643, 247.781, 790.981, 12.036, 162.403, 1153.066, 11.618, 84.935,
3873 : 465.276, 751.192, 161.170, 225.706, 172.479, 81.414, 134.411, 1104.844, 215.410, 101.059, 435.157, 25.179,
3874 : 263.060, 72.429, 72.686, 374.056, 712.448, 205.373, 49.157, 1055.560, 671.817, 1057.798, 315.395, 30.638,
3875 : 61.841, 406.083, 202.022, 16.985, 201.877, 8.340, 675.130, 43.118, 185.872, 11.606, 372.289, 1011.906,
3876 : 22.069, 110.415, 378.405, 52.068, 37.179, 638.832, 167.838, 967.257, 57.033, 433.727, 43.639, 247.320,
3877 : 65.718, 351.800, 433.076, 603.901, 5.782, 81.430, 150.936, 923.886, 1153.357, 326.494, 36.379, 246.031,
3878 : 750.331, 144.080, 1311.622, 110.468, 8.327, 499.710, 92.937, 570.032, 589.592, 135.253, 517.028, 666.925,
3879 : 449.184, 881.639, 30.392, 302.330, 297.218, 144.047, 748.890, 1260.962, 386.324, 537.498, 120.803, 11.575,
3880 : 328.222, 840.683, 124.836, 279.413, 16.978, 570.163, 835.460, 182.270, 1211.612, 182.226, 275.157, 506.148,
3881 : 107.501, 496.921, 295.005, 800.840, 257.673, 227.103, 351.481, 926.626, 1163.461, 1256.110, 225.043, 161.185,
3882 : 476.016, 833.683, 95.477, 184.025, 30.577, 22.083, 762.294, 237.154, 645.127, 145.966, 1116.416, 225.054,
3883 : 112.947, 446.978, 84.569, 272.372, 84.863, 1022.193, 61.793, 43.707, 30.372, 25.561, 724.957, 36.353,
3884 : 52.030, 72.479, 202.069, 217.828, 1146.987, 97.686, 1253.920, 127.632, 49.222, 1044.889, 1070.673, 162.401,
3885 : 410.270, 74.956, 419.251, 1365.445, 348.538, 201.875, 947.483, 565.530, 688.720, 246.038, 199.811, 324.269,
3886 : 724.463, 1481.535, 37.167, 1026.034, 294.973, 272.358, 66.549, 854.940, 392.722, 1122.087, 72.706, 247.384,
3887 : 653.788, 1363.644, 182.893, 348.570, 921.913, 767.344, 982.698, 59.341, 367.499, 380.646, 473.541, 1379.350,
3888 : 406.719, 21.949, 101.121, 620.057, 167.280, 684.679, 406.768, 297.136, 940.564, 324.226, 343.377, 808.142,
3889 : 469.614, 1226.457, 1328.814, 25.541, 587.530, 56.977, 152.767, 607.128, 134.353, 638.947, 441.518, 899.633,
3890 : 320.458, 537.053, 1279.381, 534.558, 30.347, 541.232, 556.205, 139.557, 351.434, 172.485, 859.804, 380.645,
3891 : 298.741, 467.118, 609.038, 1014.866, 1231.250, 507.000, 1475.996, 469.624, 36.421, 1335.267, 896.334, 526.083,
3892 : 127.448, 404.731, 215.390, 821.278, 278.226, 347.401, 1506.150, 1184.321, 410.291, 685.673, 43.669, 295.112,
3893 : 497.163, 81.357, 116.640, 613.468, 247.742, 205.363, 167.850, 263.037, 717.017, 270.303, 441.502, 225.696,
3894 : 319.788, 135.283, 185.879, 150.859, 783.954, 107.546, 120.741, 374.038, 95.429, 84.627, 74.921, 66.519,
3895 : 59.317, 53.316, 433.138, 259.013, 576.905, 496.969, 1389.083, 1138.595, 565.614, 51.982, 469.444, 107.033,
3896 : 766.768, 638.955, 537.020, 989.004, 1448.392, 315.386, 747.831, 240.901, 716.975, 473.517, 61.844, 1094.070,
3897 : 1277.053, 442.928, 98.627, 799.662, 690.158, 506.988, 651.349, 712.911, 372.300, 1112.489, 224.091, 852.433,
3898 : 887.103, 1050.747, 1170.143, 72.407, 417.612, 1456.133, 110.455, 541.220, 979.192, 679.192, 799.684, 208.381,
3899 : 433.739, 84.906, 609.058, 1086.099, 1008.625, 1068.224, 393.499, 942.681, 730.243, 1405.610, 576.895, 1075.823,
3900 : 771.403, 48.496, 646.674, 193.973, 499.775, 971.444, 967.705, 370.587, 97.674, 1356.289, 613.508, 1176.998,
3901 : 112.894, 53.291, 615.359, 180.666, 879.730, 1037.328, 927.887, 685.627, 813.701, 348.976, 651.317, 570.193,
3902 : 1187.551, 1214.934, 793.186, 1308.169, 857.097, 59.287, 585.244, 1282.820, 168.659, 887.090, 711.600, 889.370,
3903 : 145.944, 144.029, 328.466, 635.051, 690.185, 127.653, 1261.251, 563.515, 1136.487, 66.483, 556.331, 833.714,
3904 : 750.393, 645.088, 921.887, 496.867, 157.853, 671.839, 1014.795, 598.166, 435.188, 529.285, 1112.519, 465.205,
3905 : 1393.095, 378.360, 406.031, 326.469, 351.767, 852.054, 901.630, 302.314, 279.406, 257.674, 237.163, 730.251,
3906 : 217.844, 1214.944, 199.734, 182.923, 167.216, 152.810, 139.505, 127.502, 116.600, 106.998, 98.597, 91.396,
3907 : 309.256, 766.811, 1215.534, 1322.151, 183.982, 74.979, 1293.577, 947.232, 528.619, 148.147, 1433.926, 815.940,
3908 : 771.356, 724.370, 291.148, 1507.933, 1240.174, 1171.018, 1550.459, 84.579, 502.107, 162.407, 979.165, 227.018,
3909 : 1322.150, 994.038, 813.693, 781.026, 274.241,1127.703, 852.489, 95.474, 1041.900, 476.897, 808.154, 1403.979,
3910 : 857.023, 275.150, 747.314, 1348.302, 182.257, 258.634, 1085.589, 107.484, 452.788, 901.640, 1090.933, 328.262,
3911 : 1537.221, 714.802, 201.890, 244.127, 1044.676, 896.356, 942.642, 1075.825, 120.771, 1140.994, 429.879, 1442.209,
3912 : 1421.499, 947.188, 386.230, 1460.983, 683.592, 85.372, 230.921, 1005.064, 1310.746, 1433.988, 135.206, 449.226,
3913 : 408.172, 1394.096, 993.993, 1192.218};
3914 :
3915 :
3916 : static const double pi=3.141592654;
3917 : static const double picube8div3hcesu=4.1623755e-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755e-19
3918 : static const double mu=0.53; //debyes
3919 : static const double mmol=48.0;
3920 :
3921 : //double q=0.647739935*pow(tt,1.5);
3922 52910 : double q=0.647739935*tt*sqrt(tt);
3923 : // unsigned int vp;
3924 : unsigned int ini;
3925 : unsigned int ifin;
3926 52910 : std::complex<double> lshape;
3927 52910 : std::complex<double> lshapeacum;
3928 :
3929 52910 : if(nu>999.9){
3930 :
3931 0 : return std::complex<double> (0.0,0.0);
3932 :
3933 : }else{
3934 :
3935 : // vp=vpIndex(nu);
3936 :
3937 : // if(pp<100){
3938 : // ini=ini3[vp];
3939 : // ifin=ifin3[vp];
3940 : // }else{
3941 : // if(pp<300){
3942 : // ini=ini2[vp];
3943 : // ifin=ifin2[vp];
3944 : // }else{
3945 : // ini=ini1[vp];
3946 : // ifin=ifin1[vp];
3947 : // }
3948 : // }
3949 :
3950 52910 : ini=0;
3951 52910 : ifin=566;
3952 :
3953 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
3954 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
3955 :
3956 52910 : if(ifin==0||ifin<ini){
3957 :
3958 52910 : return std::complex<double> (0.0,0.0);
3959 :
3960 : }else{
3961 :
3962 0 : for(unsigned int i=ini; i<ifin+1; i++){
3963 :
3964 0 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdo3air[i]*0.001,texpo3[i]),0.0); // broadening en ghz/mb 13/11/2018
3965 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
3966 :
3967 0 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
3968 0 : lshapeacum=lshapeacum+lshape;
3969 :
3970 : }
3971 :
3972 0 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // imaginary part: absorption coefficient in cm^2
3973 0 : *(0.047992745509/tt); // real part: delay in rad*cm^2
3974 :
3975 0 : return lshapeacum*1e-4; // to give it in si units (m^2) // ( rad m^2 , m^2 )
3976 :
3977 :
3978 : }
3979 :
3980 : }
3981 :
3982 : }
3983 :
3984 :
3985 : // return std::complex<double> (0.0,0.0);
3986 :
3987 :
3988 :
3989 : //////////////////////// opacity source number: 16 /////////////////////////////
3990 :
3991 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o(double tt, double pp, double nu){
3992 :
3993 : static const double fre[1151] ={
3994 : .78976, 1.08767, 2.59593, 9.20030, 10.22572, 10.61320, 11.07245, 14.82086, 14.86659, 16.16240, 23.85967, 25.22979, 25.51069, 25.65096, 27.45849, 27.86192, 28.96050, 30.05176,
3995 : 30.18124, 30.52406, 32.10058, 36.02192, 37.83244, 39.43795, 42.83246, 43.65329, 43.85406, 44.87117, 50.03501, 51.05293, 51.97576, 51.98456, 53.68814, 55.35451, 56.97138, 58.09390,
3996 : 58.41096, 61.34749, 61.92676, 63.07862, 65.23609, 66.05852, 67.24960, 67.35624, 67.83418, 68.42197, 73.91994, 75.84892, 76.39355, 76.53375, 77.60251, 78.99297, 80.84080, 81.28997,
3997 : 93.84435, 93.95511, 95.79638, 96.22841, 99.24696,100.63735,100.69174,101.73676,101.83535,103.87833,109.55926,110.76027,110.83592,111.04747,114.97919,118.36451,119.27765,123.34913,
3998 : 124.08738,125.38943,125.41324,127.71597,128.09479,128.31390,130.95467,132.38531,133.04182,136.33851,136.86024,139.84279,140.76732,142.17510,143.88753,143.96251,144.91038,144.91937,
3999 : 148.74487,153.72392,153.95322,154.04643,156.10713,164.77106,164.95185,165.78451,166.58440,167.57277,170.29955,171.41234,173.48552,175.18642,175.44569,178.57654,180.00098,183.96584,
4000 : 184.37781,184.74874,185.55711,187.13209,187.63116,187.88484,190.57362,193.35113,195.43042,195.72116,197.53299,199.38432,203.45298,206.13208,207.48507,208.64242,210.42326,210.76234,
4001 : 210.80322,214.95567,218.11966,223.89749,224.85276,226.05407,229.57500,231.28151,232.98522,235.70982,237.14613,238.43215,239.09326,240.90420,242.31869,243.45378,244.14666,244.15842,
4002 : 247.76177,248.18340,249.78857,249.96196,250.72901,252.32213,256.88481,258.20217,258.71612,262.85791,263.69263,263.88630,264.92592,267.26655,271.09271,273.05091,274.47843,276.92353,
4003 : 277.04073,279.47150,279.48579,279.89250,280.99444,281.95751,282.83714,286.08769,286.15656,286.29474,288.95915,290.97525,293.17135,293.54831,297.17368,298.60079,298.79388,300.68514,
4004 : 301.81299,303.16494,303.57254,310.06346,315.87514,316.32719,316.68179,317.19502,319.99655,320.36011,323.70451,326.90097,327.84458,329.78920,332.70454,332.88174,335.27126,335.64323,
4005 : 343.18080,343.23744,343.50567,349.74474,352.32405,352.59292,352.81524,355.01819,356.08933,357.62983,358.19981,358.85334,359.64942,359.64962,361.66938,361.82624,363.46929,363.71411,
4006 : 364.40371,364.44990,366.77690,368.33221,368.94938,371.02286,375.17918,375.97875,376.23838,378.28118,378.69490,382.19229,387.09846,387.28764,387.98989,390.29654,392.65396,395.06319,
4007 : 396.52948,397.02778,400.07700,401.21773,401.93101,402.39532,403.83738,408.29394,408.30687,413.01193,414.05422,414.25452,420.79513,422.69422,423.66944,424.84594,425.15777,426.06961,
4008 : 427.94447,428.79221,429.42011,430.33383,434.29166,437.49354,438.48078,440.08212,441.34037,442.11759,445.45871,446.14385,446.64933,448.87627,451.42006,452.23896,453.79011,454.66871,
4009 : 457.41562,460.25306,462.36541,463.18961,463.24632,464.10876,466.03399,466.64126,467.96711,468.39935,469.10425,469.32511,469.48238,469.95390,470.99090,472.30100,472.89886,473.07366,
4010 : 474.16599,476.02061,479.39607,479.63320,480.01423,480.18234,480.71724,481.19896,481.62011,483.54546,486.12325,486.45055,487.34851,489.53718,491.94286,491.95142,496.25398,497.09785,
4011 : 497.97297,498.74741,500.43357,501.77262,505.25728,505.36989,507.73610,507.81539,508.03152,508.19293,509.27262,511.95526,514.99270,517.43040,517.79039,520.13476,522.04607,522.96962,
4012 : 523.30879,523.53191,529.68389,530.50108,531.07699,534.27304,535.92257,537.71873,539.37266,540.35606,542.58044,543.59397,543.61287,544.85750,548.76415,549.07066,549.82036,550.98944,
4013 : 551.43571,556.71114,557.97024,559.47804,559.83438,563.43980,565.70359,566.29352,566.73496,569.34609,570.09715,570.99933,572.87715,573.60274,574.51809,574.54071,576.51486,582.14407,
4014 : 582.30716,583.47499,589.10641,590.33759,591.00445,591.24880,592.63069,595.05617,595.08096,599.97903,600.23048,607.84932,609.73051,610.26257,610.36515,611.27659,611.98653,614.73166,
4015 : 614.78406,616.27977,616.28251,617.30449,620.68671,620.72197,620.82566,623.68767,625.37152,625.90529,632.17691,633.35354,634.46153,634.52013,638.53691,638.90302,639.54779,640.09254,
4016 : 640.31195,641.53424,642.34964,644.80494,645.66998,646.34897,647.84000,650.73303,651.47581,651.54302,651.55697,653.76244,654.71344,654.85300,655.00521,655.12032,655.20355,655.29016,
4017 : 655.60630,655.87260,655.96211,656.00568,656.22377,656.25258,656.38405,656.41983,656.46161,656.47779,657.51496,658.03858,658.81583,661.45825,664.48824,665.67764,665.85431,666.63088,
4018 : 666.76787,669.85708,671.66925,671.80444,671.93737,672.45339,672.79461,673.91438,676.06188,676.90348,677.14338,677.14643,683.63910,684.24403,691.35879,691.66547,691.98609,692.36851,
4019 : 693.47373,694.76090,696.09057,697.49073,698.98040,700.85298,701.36487,701.50803,702.71667,707.09907,708.14345,709.63870,711.49549,716.82967,718.29616,718.35952,719.79226,723.01028,
4020 : 723.37729,726.64407,727.08660,728.25588,730.01142,731.02271,732.62802,734.38955,735.00438,736.48234,740.36731,742.26844,743.16504,745.87234,746.50099,746.87407,748.49865,748.71056,
4021 : 751.17579,751.30176,751.72060,751.90349,753.76544,754.45631,757.24983,758.13032,760.34313,765.10202,766.30130,767.67812,773.95746,776.26805,776.62787,777.14588,779.24717,779.71446,
4022 : 782.43831,783.60719,783.66087,784.69136,785.65813,785.68858,787.72308,792.26350,793.06067,793.21304,794.66359,798.76156,799.38884,802.36591,802.37422,804.66276,804.70251,807.62416,
4023 : 809.05998,810.64622,810.95175,811.46341,813.14024,813.99104,818.41849,819.26277,819.74577,824.79452,825.71518,825.84467,826.56013,827.28922,827.59102,828.00631,830.13306,830.55691,
4024 : 830.94177,831.00898,831.07889,831.57387,832.11797,832.78965,832.92176,833.60896,834.48990,835.21016,835.25747,835.68548,836.22654,836.44614,836.89268,837.81431,838.39607,838.60022,
4025 : 839.65543,839.69616,839.76456,840.76066,840.93713,841.58733,841.81086,842.00871,842.19483,842.38878,842.61448,842.75442,842.88346,842.97080,843.03967,843.08617,843.11810,843.13769,
4026 : 843.14864,843.75362,849.05109,849.94415,850.17635,851.35740,852.70682,852.79868,855.54027,857.96792,859.89817,860.54837,861.45133,861.48476,862.91528,866.12613,869.06812,869.49660,
4027 : 870.37565,874.06409,875.53602,880.92558,883.05624,885.28598,885.35070,886.45181,886.72861,887.28515,888.15902,888.66322,894.36392,896.06374,900.87519,901.28523,902.35869,906.29038,
4028 : 906.48993,908.25899,908.74287,910.01156,910.65449,911.96010,914.01207,914.66584,918.84528,919.64288,920.57170,925.23034,926.19546,926.39868,927.53952,931.63601,932.38690,933.13981,
4029 : 933.21985,936.00479,937.18113,939.34455,939.87274,944.90674,948.85039,950.72195,951.46451,951.49837,955.90760,956.96379,958.48951,958.54005,959.90335,961.33800,962.39343,964.66154,
4030 : 969.10916,969.45417,970.01419,970.15719,970.77567,971.29614,973.00835,973.78714,976.78538,979.60929,980.02984,982.27496,982.88204,986.02067,986.65516,987.59861,989.96393,992.66980,
4031 : 994.30024,995.39579,995.71631,997.54150,998.32354,998.61320,1000.142334,1000.616089,1002.057922,1002.973938,1003.242737,1003.342834,1006.224670,1007.570740,1008.683655,1009.31878,
4032 : 1009.338623, 1010.374207, 1011.957336, 1012.409058, 1012.673767, 1012.798096, 1013.995117, 1014.107178, 1015.252563, 1015.307312, 1017.653748, 1017.947327, 1019.487915,1019.981934,
4033 : 1020.279663, 1020.515137, 1020.624084, 1022.284546, 1022.748901, 1022.907410, 1023.964233, 1024.485107, 1025.336792, 1025.823853, 1026.430298, 1026.843262, 1026.854492, 1026.873291,
4034 : 1026.942383, 1027.278198, 1027.317261, 1027.605713, 1027.916016, 1028.161987, 1028.379395, 1028.554443, 1028.701660, 1028.819092, 1028.913452, 1028.986572, 1029.042480, 1029.083374,
4035 : 1029.112305, 1029.131348, 1029.142944, 1029.148926, 1032.042480, 1032.852295, 1036.147095, 1036.412598, 1037.245483, 1040.528198, 1042.734497, 1042.999756, 1044.670044, 1045.843262,
4036 : 1048.484863, 1049.960571,1052.564819, 1056.882690, 1058.120850, 1058.917603, 1059.646240, 1062.520508, 1065.791870, 1067.967041, 1069.038208, 1069.843384, 1071.055054,
4037 : 1073.674805, 1074.329956, 1076.277222, 1077.712769, 1077.801880, 1080.274780, 1083.291016, 1083.377319, 1085.138794, 1087.783325, 1091.044067, 1093.189697, 1095.005981, 1096.260254, 1096.562744,
4038 : 1096.879761, 1098.021973, 1098.394531, 1101.819458, 1103.029541, 1108.622925, 1109.341919, 1113.035156, 1116.285889, 1117.412720, 1118.403198, 1120.150635, 1120.477051, 1121.218872, 1121.460205,
4039 : 1127.107788, 1128.248779, 1132.504395, 1133.858643, 1138.276489, 1141.517700, 1143.608154, 1143.739014, 1145.281860, 1146.656006, 1147.276978, 1147.689575, 1153.460815, 1154.850220, 1157.105469,
4040 : 1159.085205, 1160.202881, 1163.185181, 1163.508423, 1165.281494, 1166.740601, 1167.251587, 1168.805054, 1170.376221, 1170.447266, 1171.848633, 1171.941650, 1177.531494, 1178.542114, 1178.666626,
4041 : 1180.300537, 1182.944458, 1184.303955, 1185.175049, 1187.243652, 1188.731567, 1190.542603, 1190.629272, 1191.254883, 1191.954956, 1192.794556, 1193.096924, 1193.994507, 1194.919922, 1195.130981,
4042 : 1195.466064, 1198.208130, 1198.857666, 1201.110718, 1201.947632, 1203.635376, 1203.867065, 1204.508789, 1205.493286, 1205.800781, 1206.626465, 1207.632690, 1208.369019, 1209.161499, 1209.515503,
4043 : 1209.791992, 1210.418823, 1210.585449, 1210.942505, 1211.437012, 1211.860474, 1211.864258, 1212.246704, 1212.580811, 1212.775269, 1212.878052, 1213.024658, 1213.134521, 1213.358032, 1213.549194,
4044 : 1213.712524, 1213.849731, 1213.947021, 1213.964355, 1214.058472, 1214.073608, 1214.134644, 1214.195068, 1214.241943, 1214.277222, 1214.302612, 1214.320068, 1214.330933, 1214.336670, 1214.338501,
4045 : 1217.161743, 1219.177246, 1220.016724, 1220.474854, 1229.063232, 1230.683350, 1234.720825, 1239.155273, 1242.361328, 1244.353638, 1245.153442, 1245.524902, 1246.510254, 1249.386963, 1252.765747,
4046 : 1254.255737, 1255.869385, 1258.291748, 1259.920654, 1264.357178, 1264.826782, 1267.554810, 1269.524292, 1270.285889, 1270.386230, 1281.049805, 1282.001831, 1285.115601, 1287.351074, 1289.553345,
4047 : 1292.742065, 1294.689697, 1295.414185, 1295.426025, 1304.632935, 1306.222290, 1310.306763, 1314.744507, 1317.355469, 1317.924561, 1319.744873, 1319.850464, 1320.028320, 1320.538574, 1329.906616,
4048 : 1331.385010, 1342.587891, 1344.641724, 1345.006958, 1345.144897, 1345.659912, 1356.535278, 1360.679443, 1363.169678, 1368.275757, 1369.288086, 1375.074219, 1377.438110, 1377.654297, 1378.891479,
4049 : 1379.498413, 1380.942261, 1381.670776, 1382.180786, 1383.842651, 1385.012451, 1386.380005, 1387.444946, 1388.581787, 1389.526367, 1390.294189, 1390.476318, 1390.682739, 1391.297974, 1392.092651,
4050 : 1392.180542, 1392.795776, 1393.445801, 1393.458374, 1394.051514, 1394.600464, 1394.673340, 1395.093750, 1395.217529, 1395.309326, 1395.544434, 1395.894409, 1395.948730, 1396.313843, 1396.640015,
4051 : 1396.931396, 1397.189575, 1397.417725, 1397.617798, 1397.792114, 1397.942871, 1398.072266, 1398.182129, 1398.274536, 1398.350952, 1398.413330, 1398.463379, 1398.502441, 1398.532104, 1398.553711,
4052 : 1398.568359, 1398.577393, 1398.581909, 1401.963867, 1406.787598, 1408.207886, 1409.693237, 1415.471680, 1415.876953, 1416.285889, 1416.883179, 1418.008301, 1418.612915, 1420.284790, 1422.716309,
4053 : 1429.991211, 1431.884521, 1438.892334, 1439.103394, 1440.646729, 1441.068848, 1444.031250, 1445.600464, 1449.490112, 1456.954712, 1461.404419, 1465.970703, 1466.257446, 1470.743042, 1471.231445,
4054 : 1482.000610, 1486.584229, 1490.992920, 1491.441650, 1493.280151, 1493.410278, 1495.484009, 1496.341431, 1505.242676, 1507.007324, 1512.878174, 1516.164795, 1516.619751, 1519.260254, 1520.550537,
4055 : 1521.023560, 1531.989868, 1541.336304, 1541.790649, 1542.540039, 1544.418945, 1556.910889, 1558.333740, 1558.594849, 1564.069458, 1566.952393, 1566.974731, 1568.224243, 1568.455444, 1569.334839,
4056 : 1569.577515, 1570.418213, 1570.685303, 1571.300903, 1571.399292, 1572.337524, 1573.195801, 1574.005737, 1574.750366, 1575.446167, 1576.086426, 1576.680176, 1577.225586, 1577.726807, 1577.728271,
4057 : 1578.188477, 1578.609863, 1578.993896, 1579.343018, 1579.659424, 1579.944824, 1580.201538, 1580.431274, 1580.635864, 1580.817261, 1580.977051, 1581.116577, 1581.238037, 1581.342529, 1581.431641,
4058 : 1581.506592, 1581.569092, 1581.620117, 1581.661133, 1581.692993, 1581.717041, 1581.734253, 1581.745605, 1581.753540, 1581.754395, 1581.820435, 1585.437500, 1591.679932, 1592.007202, 1592.103271,
4059 : 1600.119385, 1601.828735, 1606.624268, 1608.413574, 1616.852661, 1617.241333, 1621.577637, 1621.886963, 1625.314941, 1631.458984, 1641.974365, 1642.026367, 1642.364746, 1642.742920, 1646.291382,
4060 : 1656.097412, 1657.602173, 1667.470947, 1668.445923, 1670.213623, 1670.969238, 1672.109009, 1675.698975, 1680.371338, 1680.872559, 1682.616333, 1684.010864, 1688.135376, 1692.557861, 1692.849121,
4061 : 1693.472778, 1695.374878, 1696.044556, 1697.221924, 1700.885498, 1705.268555, 1706.074463, 1713.986694, 1717.623047, 1718.064819, 1718.502686, 1720.537354, 1722.336304, 1726.067017, 1730.031372,
4062 : 1742.663208, 1742.934082, 1745.172485, 1745.701538, 1746.027344, 1746.201660, 1747.452515, 1751.242554, 1753.478149, 1753.956055, 1754.058228, 1754.780518, 1755.550659, 1756.272827, 1756.946533,
4063 : 1757.575439, 1758.160645, 1758.704712, 1759.209351, 1759.676636, 1760.108032, 1760.505737, 1760.871094, 1761.206299, 1761.512329};
4064 :
4065 : static const double texpO3[1151] ={
4066 : 0.81,0.81,0.76,0.79,0.77,0.82,0.76,0.83,0.79,0.80,0.78,0.76,0.83,0.78,0.82, 0.83,0.79,0.78,0.78,0.78,0.76,0.79,0.78,0.81,0.76,0.77,0.82,0.79,0.81,0.82,
4067 : 0.79,0.76,0.77,0.79,0.76,0.80,0.81,0.80,0.78,0.81,0.77,0.80,0.80,0.76,0.76, 0.79,0.83,0.83,0.79,0.77,0.79,0.82,0.84,0.84,0.77,0.77,0.81,0.76,0.82,0.79,
4068 : 0.82,0.76,0.80,0.78,0.78,0.76,0.76,0.84,0.76,0.76,0.80,0.80,0.77,0.77,0.79, 0.83,0.81,0.77,0.82,0.82,0.76,0.83,0.78,0.84,0.80,0.77,0.76,0.76,0.83,0.77,
4069 : 0.77,0.82,0.80,0.77,0.81,0.83,0.76,0.77,0.84,0.76,0.76,0.82,0.76,0.79,0.78, 0.83,0.83,0.76,0.77,0.79,0.81,0.83,0.84,0.80,0.83,0.78,0.77,0.77,0.76,0.80,
4070 : 0.82,0.79,0.76,0.76,0.81,0.76,0.77,0.78,0.83,0.76,0.84,0.78,0.79,0.78,0.76, 0.78,0.77,0.81,0.78,0.81,0.77,0.77,0.82,0.77,0.78,0.78,0.77,0.77,0.76,0.76,
4071 : 0.76,0.79,0.77,0.79,0.79,0.84,0.81,0.76,0.82,0.78,0.76,0.78,0.84,0.76,0.76, 0.81,0.83,0.76,0.79,0.78,0.79,0.76,0.77,0.80,0.76,0.77,0.82,0.81,0.76,0.77,
4072 : 0.77,0.77,0.84,0.79,0.79,0.77,0.80,0.76,0.78,0.76,0.82,0.77,0.77,0.83,0.77, 0.76,0.78,0.76,0.80,0.79,0.76,0.81,0.77,0.77,0.80,0.76,0.83,0.83,0.80,0.78,
4073 : 0.80,0.80,0.78,0.76,0.81,0.83,0.81,0.77,0.79,0.76,0.79,0.80,0.78,0.81,0.81, 0.79,0.77,0.83,0.78,0.76,0.76,0.76,0.79,0.79,0.80,0.82,0.76,0.78,0.81,0.78,
4074 : 0.77,0.78,0.83,0.78,0.76,0.78,0.79,0.82,0.78,0.79,0.80,0.82,0.81,0.79,0.77, 0.78,0.82,0.78,0.78,0.76,0.78,0.77,0.76,0.81,0.79,0.77,0.84,0.82,0.80,0.77,
4075 : 0.77,0.82,0.79,0.77,0.83,0.78,0.84,0.77,0.78,0.76,0.76,0.76,0.76,0.77,0.77, 0.79,0.77,0.83,0.84,0.84,0.83,0.80,0.77,0.79,0.78,0.77,0.79,0.76,0.82,0.83,
4076 : 0.78,0.77,0.84,0.82,0.78,0.79,0.79,0.79,0.81,0.76,0.76,0.80,0.79,0.80,0.83, 0.77,0.82,0.82,0.77,0.83,0.83,0.79,0.79,0.76,0.79,0.78,0.81,0.76,0.80,0.79,
4077 : 0.80,0.81,0.79,0.77,0.82,0.83,0.76,0.76,0.76,0.78,0.83,0.77,0.81,0.79,0.82, 0.84,0.80,0.81,0.77,0.79,0.79,0.83,0.76,0.79,0.80,0.80,0.76,0.78,0.77,0.78,
4078 : 0.79,0.80,0.81,0.81,0.77,0.80,0.80,0.83,0.76,0.78,0.76,0.79,0.79,0.81,0.79, 0.78,0.84,0.81,0.80,0.76,0.76,0.82,0.76,0.82,0.79,0.79,0.78,0.76,0.80,0.79,
4079 : 0.79,0.83,0.76,0.78,0.76,0.81,0.80,0.77,0.78,0.77,0.81,0.76,0.78,0.78,0.78, 0.76,0.77,0.77,0.78,0.78,0.79,0.77,0.78,0.80,0.77,0.77,0.77,0.79,0.77,0.77,
4080 : 0.77,0.76,0.76,0.76,0.81,0.79,0.79,0.80,0.76,0.79,0.81,0.80,0.77,0.80,0.77, 0.81,0.82,0.76,0.82,0.81,0.77,0.76,0.83,0.83,0.81,0.79,0.80,0.84,0.76,0.79,
4081 : 0.77,0.80,0.82,0.76,0.81,0.80,0.77,0.81,0.76,0.76,0.82,0.78,0.82,0.80,0.80, 0.83,0.79,0.81,0.77,0.77,0.83,0.76,0.79,0.76,0.76,0.77,0.78,0.83,0.77,0.79,
4082 : 0.83,0.83,0.82,0.81,0.81,0.80,0.82,0.82,0.83,0.77,0.76,0.81,0.83,0.76,0.78, 0.82,0.81,0.79,0.81,0.77,0.84,0.77,0.76,0.80,0.76,0.76,0.82,0.77,0.78,0.83,
4083 : 0.76,0.82,0.79,0.81,0.84,0.81,0.81,0.82,0.77,0.76,0.76,0.76,0.76,0.81,0.78, 0.81,0.81,0.81,0.79,0.84,0.80,0.76,0.78,0.78,0.80,0.84,0.77,0.82,0.76,0.82,
4084 : 0.77,0.81,0.82,0.79,0.81,0.77,0.83,0.80,0.76,0.82,0.80,0.76,0.78,0.83,0.79, 0.79,0.79,0.83,0.78,0.79,0.82,0.78,0.78,0.78,0.78,0.84,0.78,0.77,0.77,0.77,
4085 : 0.77,0.78,0.77,0.77,0.77,0.76,0.76,0.79,0.81,0.76,0.80,0.76,0.83,0.77,0.78, 0.77,0.76,0.76,0.82,0.77,0.78,0.82,0.79,0.76,0.76,0.76,0.80,0.76,0.77,0.76,
4086 : 0.83,0.82,0.77,0.82,0.78,0.76,0.78,0.78,0.80,0.83,0.83,0.76,0.76,0.77,0.82, 0.76,0.76,0.77,0.76,0.76,0.82,0.78,0.76,0.79,0.79,0.78,0.82,0.76,0.84,0.77,
4087 : 0.83,0.76,0.77,0.76,0.76,0.78,0.78,0.79,0.84,0.76,0.83,0.76,0.77,0.76,0.76, 0.76,0.77,0.76,0.76,0.83,0.83,0.78,0.83,0.76,0.79,0.84,0.79,0.76,0.83,0.76,
4088 : 0.77,0.83,0.76,0.77,0.76,0.80,0.76,0.78,0.83,0.76,0.76,0.76,0.76,0.76,0.79, 0.83,0.84,0.82,0.83,0.76,0.77,0.82,0.79,0.80,0.76,0.82,0.83,0.77,0.81,0.78,
4089 : 0.76,0.82,0.81,0.81,0.77,0.83,0.81,0.80,0.78,0.80,0.80,0.77,0.80,0.84,0.80, 0.79,0.79,0.79,0.84,0.81,0.76,0.79,0.76,0.78,0.78,0.78,0.78,0.78,0.78,0.77,
4090 : 0.77,0.77,0.82,0.77,0.77,0.77,0.77,0.76,0.78,0.76,0.78,0.84,0.76,0.76,0.76, 0.80,0.77,0.77,0.76,0.84,0.76,0.84,0.76,0.78,0.82,0.76,0.76,0.76,0.76,0.77,
4091 : 0.77,0.76,0.76,0.77,0.82,0.76,0.78,0.76,0.76,0.79,0.76,0.76,0.76,0.77,0.77, 0.76,0.76,0.83,0.76,0.76,0.76,0.76,0.78,0.76,0.76,0.76,0.76,0.77,0.76,0.83,
4092 : 0.77,0.78,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.76,0.84,0.76,0.83, 0.76,0.76,0.78,0.79,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.77,0.79,0.76,0.76,
4093 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.84,0.76,0.76,0.77,0.76,0.76,0.84, 0.83,0.77,0.83,0.83,0.83,0.82,0.82,0.76,0.82,0.77,0.82,0.81,0.81,0.81,0.81,
4094 : 0.76,0.80,0.80,0.76,0.80,0.80,0.79,0.79,0.79,0.79,0.76,0.79,0.76,0.79,0.79, 0.78,0.78,0.78,0.76,0.78,0.78,0.79,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,
4095 : 0.77,0.76,0.76,0.76,0.78,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.78,0.76,0.79, 0.79,0.76,0.77,0.78,0.76,0.76,0.79,0.76,0.76,0.76,0.78,0.77,0.79,0.76,0.80,
4096 : 0.76,0.76,0.76,0.76,0.78,0.80,0.77,0.76,0.76,0.80,0.76,0.79,0.76,0.78,0.76, 0.78,0.77,0.81,0.80,0.76,0.78,0.76,0.77,0.76,0.81,0.76,0.79,0.79,0.80,0.76,
4097 : 0.76,0.82,0.76,0.77,0.76,0.76,0.84,0.84,0.83,0.83,0.83,0.76,0.83,0.77,0.82, 0.82,0.82,0.82,0.76,0.82,0.81,0.81,0.79,0.81,0.82,0.76,0.81,0.76,0.80,0.80,
4098 : 0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77, 0.77,0.77,0.77,0.77,0.83,0.78,0.78,0.83,0.76,0.77,0.84,0.79,0.79,0.76,0.76,
4099 : 0.76,0.76,0.78,0.80,0.76,0.76,0.77,0.79,0.76,0.80,0.78,0.76,0.79,0.77,0.76, 0.76,0.78,0.76,0.76,0.77,0.79,0.79,0.76,0.76,0.81,0.78,0.80,0.76,0.77,0.76,
4100 : 0.76,0.76,0.78,0.76,0.77,0.80,0.76,0.79,0.80,0.80,0.81,0.77,0.79,0.76,0.77, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.82,
4101 : 0.82,0.76,0.82,0.81,0.76,0.81,0.76,0.80,0.76,0.80,0.76,0.76,0.76,0.79,0.76, 0.76,0.76,0.78,0.76,0.78,0.76,0.79,0.77,0.77,0.77,0.77,0.79,0.79,0.76,0.80,
4102 : 0.78,0.77,0.81,0.79,0.77,0.76,0.78,0.76,0.76,0.77,0.79,0.81,0.76,0.78,0.81, 0.77,0.79,0.82,0.78,0.76,0.76,0.71,0.76,0.77,0.82,0.79,0.77,0.79,0.81,0.83,
4103 : 0.81,0.76,0.76,0.76,0.76,0.77,0.80,0.80,0.82,0.78,0.78,0.76,0.76,0.76,0.77, 0.80,0.79,0.83,0.82,0.76,0.82,0.76,0.76,0.83,0.78,0.76,0.80,0.76,0.76,0.76,
4104 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76};
4105 :
4106 : static const double brdO3air[1151] ={ // MHz/mb
4107 : 2.0894,2.0835,2.0450,2.2166,2.4356,2.0716,2.5984,2.0568,2.1722,2.1338, 2.2492,2.0509,2.0598,2.1959,2.0627,2.0568,2.1574,2.3084,2.2403,2.1604,
4108 : 2.0450,2.1870,2.2669,2.0835,2.6901,2.2877,2.0598,2.1278,2.0953,2.0627, 2.1456,2.0391,2.4859,2.1574,2.0568,2.1130,2.0953,2.1042,2.2877,2.0775,
4109 : 2.3439,2.1338,2.1130,2.5155,2.0391,2.0983,2.0598,2.0568,2.1870,2.3883, 2.2018,2.0627,2.0598,2.0598,2.4060,2.3498,2.0953,2.5895,2.0627,2.0746,
4110 : 2.0687,2.5244,2.1130,2.3291,2.2314,2.0509,2.4682,2.0598,2.5392,2.7405, 2.1249,2.1249,2.4149,2.4386,2.2166,2.0568,2.0835,2.4771,2.0687,2.0716,
4111 : 2.0627,2.0568,2.2314,2.0598,2.0539,2.3705,2.0627,2.0331,2.0598,2.3439, 2.3735,2.0716,2.1338,2.3942,2.0775,2.0568,2.6428,2.3291,2.0598,2.5540,
4112 : 2.0391,2.0627,2.5925,2.1456,2.2492,2.0568,2.0598,2.0509,2.3735,2.2018, 2.0835,2.0568,2.0598,2.0361,2.0568,2.2669,2.2936,2.4208,2.0450,2.1042,
4113 : 2.0598,2.1574,2.0568,2.5540,2.0894,2.6428,2.4445,2.3025,2.0598,2.0509, 2.0598,2.2877,2.1722,2.2610,2.0391,2.2610,2.2936,2.0953,2.2344,2.0183,
4114 : 2.3291,2.3143,2.0598,2.4711,2.3084,2.2078,2.4771,2.3705,2.0568,2.0568, 2.0627,2.1870,2.4149,2.1722,2.1841,2.0598,2.0183,2.4682,2.0627,2.2344,
4115 : 2.5244,2.3291,2.0598,2.0450,2.5895,2.0894,2.0568,2.0509,2.2018,2.2640, 2.1604,2.5570,2.4060,2.1130,2.4948,2.5244,2.0687,2.0035,2.0391,2.3498,
4116 : 2.2640,2.4415,2.0598,2.2166,2.1397,2.3912,2.1249,2.5540,2.2078,2.0450, 2.0716,2.3439,2.3735,2.0568,2.3498,2.6901,2.2314,2.0331,2.1338,2.1456,
4117 : 2.5836,2.0775,2.3113,2.3942,2.1190,2.6191,2.0568,2.0568,2.1900,2.2166, 2.1190,2.1190,2.2492,2.3000,2.1663,2.0568,2.0775,2.2877,2.1397,2.6132,
4118 : 2.1456,2.1900,2.2788,2.0835,2.1456,2.1604,2.4208,2.0568,2.2669,2.5984, 2.0450,2.0331,2.1841,2.1574,2.1900,2.1249,2.5658,2.2462,2.0894,2.2403,
4119 : 2.4445,2.2078,2.0598,2.2877,2.0509,2.1782,2.1722,1.9740,2.2344,2.1604, 2.1249,2.1071,2.0953,2.1900,2.4711,2.2196,2.0598,2.2610,2.3084,2.0568,
4120 : 2.1959,2.5126,2.5155,2.1663,2.1870,2.2936,2.0598,2.0687,2.1042,2.4978, 2.3291,2.0627,2.1959,2.3705,2.0923,2.3291,2.0598,2.4149,2.1426,2.4682,
4121 : 2.5244,2.5570,2.4948,2.4415,2.3912,2.2018,2.3498,2.0746,2.0627,2.0627, 2.0923,2.1130,2.5244,2.1397,2.2788,2.4623,2.1722,2.0509,2.0687,1.9592,
4122 : 2.2462,2.3498,2.0598,2.1071,2.2196,2.1722,2.2166,2.1574,2.1456,2.0391, 2.5540,2.1249,2.1959,2.1042,2.0746,2.4386,2.1249,2.0716,2.3735,1.9680,
4123 : 2.0568,2.1130,2.1722,2.3000,2.1278,2.2314,2.1456,2.5836,2.1338,2.1515, 2.1190,2.0775,2.1515,2.3942,2.0598,2.0568,2.0568,2.4948,2.3000,2.2492,
4124 : 1.9444,2.3676,2.1663,2.1456,2.1249,2.0627,2.1308,2.0835,2.4208,2.0983, 2.1278,2.0568,2.6132,2.0864,2.1900,2.1308,2.3000,2.2669,2.3735,2.3232,
4125 : 2.1574,2.1071,2.0894,2.0894,2.4445,2.1900,2.1190,2.0598,2.5836,2.2877, 2.3000,2.1722,2.1397,2.1782,2.0746,2.2817,1.9266,2.0953,2.1071,2.0509,
4126 : 2.0509,2.1071,2.5540,2.0598,2.0657,2.1604,2.3084,2.3000,2.0983,2.1870, 2.1841,2.0568,2.0391,2.2433,2.0450,2.1574,2.1042,2.4978,2.2078,2.5244,
4127 : 2.1663,2.3000,2.2344,2.3291,2.2610,2.3000,2.3143,2.2936,2.2196,2.2462, 2.1959,2.3291,2.2788,2.0539,2.3113,2.3705,2.3498,2.1722,2.3912,2.4149,
4128 : 2.4415,2.4682,2.4948,2.5244,2.1782,2.1515,2.2018,2.1308,2.0509,2.2078, 2.0775,2.1071,2.5244,2.0450,2.4978,2.0775,2.0687,2.0568,2.1367,2.1782,
4129 : 2.3498,2.0391,2.0923,2.0923,2.1574,2.2166,2.1249,2.0627,2.5540,2.1722, 2.4711,2.0716,2.1367,2.3000,2.1456,2.0361,2.3735,2.1574,2.3000,2.3000,
4130 : 2.1160,2.2314,2.1160,2.1338,2.0272,2.0746,2.1426,2.0775,2.4445,2.3942, 2.0568,2.3000,2.1426,2.0450,2.3000,2.2640,2.2492,2.0746,2.4208,2.1456,
4131 : 2.0923,2.0983,2.1367,2.0183,2.0835,2.1130,2.1249,2.0687,2.0835,2.4208, 2.3000,2.0479,2.0983,2.3000,2.2669,2.1071,2.0124,2.1574,2.0894,2.3942,
4132 : 2.0687,2.4445,2.3000,2.0864,2.5836,2.3000,2.1249,2.3735,2.2877,2.0835, 2.0331,2.1160,2.1722,2.0035,2.0627,2.1456,2.0953,2.1071,2.4711,2.0568,
4133 : 2.5836,2.5540,2.3000,2.1663,2.3084,2.0272,2.0598,1.9976,2.1870,2.0598, 2.1900,2.3000,2.3291,2.2166,2.1190,2.0687,2.4978,2.0598,2.3000,2.1367,
4134 : 2.3498,2.1574,2.1160,2.1397,2.1782,2.5244,2.0983,2.1071,2.3000,2.1071, 2.1308,2.0450,2.3291,2.0835,2.1515,2.1841,2.1722,2.0983,2.2078,2.1959,
4135 : 1.9888,2.2196,2.2344,2.2462,2.2610,2.0687,2.2788,2.2936,2.3113,2.3291, 2.3498,2.2610,2.3912,2.4149,2.4415,2.4682,2.4948,2.2018,2.0391,2.0568,
4136 : 2.1130,2.0509,2.0923,2.5244,2.2344,2.4978,2.3000,2.0450,1.9828,2.3498, 2.2877,2.0095,2.2166,2.0331,2.0568,2.0331,2.1249,2.3000,2.4711,2.3000,
4137 : 2.0835,1.9740,2.3735,2.0183,2.3084,2.3000,2.2314,2.2492,2.1338,2.0568, 2.0746,2.3000,2.0391,2.4445,1.9680,2.0568,2.3000,2.3942,2.3000,2.0450,
4138 : 1.9917,2.2492,2.3000,2.2166,2.1456,2.1782,2.0006,2.3000,2.0687,2.4208, 1.9592,2.3000,2.4208,2.3000,2.0391,2.2669,2.2669,2.1870,2.0627,2.3000,
4139 : 1.9532,2.3000,2.3942,2.0509,2.0331,2.3000,2.4445,2.3000,2.3853,1.9858, 1.9799,2.2877,2.0568,2.5836,2.1574,2.0627,2.1722,2.0568,1.9444,2.3000,
4140 : 2.3735,2.0746,2.3000,2.4711,2.3000,2.1338,2.5540,2.3084,2.0923,2.0331, 2.0450,2.0450,2.0509,2.0568,2.1870,1.9355,2.0687,2.1071,2.0835,2.3000,
4141 : 2.3498,2.1249,2.1722,2.1130,2.3000,2.1160,1.9710,2.4978,2.1456,2.2314, 2.3000,2.1367,2.1663,2.1574,2.5244,1.9680,2.1782,2.1900,2.3291,2.1071,
4142 : 2.1190,2.5244,2.1308,1.9621,2.1042,2.1604,2.1722,2.1841,1.9266,2.0953, 2.0450,2.1959,2.3000,2.2078,2.2196,2.2344,2.2462,2.2610,2.2788,2.2936,
4143 : 2.3113,2.3291,2.0716,2.3705,2.3912,2.4149,2.4415,2.4682,2.3291,2.3000, 2.1426,2.0598,2.3000,2.3000,2.3000,2.1071,2.4978,2.3498,2.0391,1.9177,
4144 : 2.3000,1.9621,2.3000,2.3084,2.0716,2.3000,2.3000,2.3000,2.0065,2.4711, 2.3735,2.0627,2.0331,2.4711,2.0627,2.3000,2.2877,2.0331,2.3000,2.2018,
4145 : 2.3000,2.3000,2.3000,2.4445,2.3942,2.0302,2.0568,2.0598,2.0568,2.0627, 2.3000,2.3000,2.2669,2.3000,2.3000,2.0568,2.3000,2.4208,2.0509,2.0568,
4146 : 2.4208,2.2492,2.3000,2.4208,2.3000,2.3000,2.3000,2.3000,2.0450,2.3942, 2.4445,2.0509,2.0598,2.3000,2.0568,2.0450,2.3000,2.2314,2.1722,2.3000,
4147 : 2.0450,2.3000,2.0391,2.3000,2.3735,2.0302,2.4711,2.2166,2.0627,2.0391, 2.3000,2.3380,2.3000,2.3000,2.0509,2.0450,2.3000,2.0331,2.0627,2.0568,
4148 : 2.0420,2.3735,2.0391,2.3000,2.0687,2.0746,2.3498,2.0835,2.0923,2.0983, 2.1071,2.1160,2.3000,2.1249,2.5244,2.1367,2.1456,2.1574,2.1663,2.1782,
4149 : 2.3000,2.1900,2.1071,2.0509,2.1190,2.1308,2.1397,2.1397,2.1515,2.1604, 2.0331,2.1722,2.0331,2.1841,2.1959,2.2078,2.2196,2.2344,2.3000,2.2462,
4150 : 2.2610,2.1870,2.2788,2.2936,2.3113,2.3291,2.3498,2.3705,2.3912,2.4149, 2.4149,2.3000,2.3000,2.3000,2.3291,2.3000,2.4978,2.3000,2.0302,2.3000,
4151 : 2.3000,2.3000,2.3084,2.0391,2.1456,2.1574,2.3000,2.4711,2.3291,2.3000, 2.3000,2.1722,2.3000,2.3000,2.3000,2.2877,2.4445,2.0864,2.3000,2.1338,
4152 : 2.3000,2.3000,2.3000,2.3000,2.2669,2.0983,2.4208,2.3000,2.3000,2.1130, 2.3000,2.1456,2.3000,2.2492,2.3000,2.2877,2.3942,2.0953,2.1249,2.3000,
4153 : 2.2314,2.3000,2.3735,2.3000,2.0835,2.3000,2.2166,2.1959,2.1249,2.3000, 2.3000,2.0716,2.3000,2.3498,2.3000,2.0568,2.0627,2.0687,2.0746,2.0835,
4154 : 2.0923,2.3000,2.0983,2.2906,2.1071,2.1160,2.0627,2.1249,2.3000,2.1367, 2.1456,2.1574,2.2018,2.1663,2.0687,2.3000,2.1782,2.3000,2.1900,2.1071,
4155 : 2.1190,2.1308,2.1397,2.1515,2.1604,2.1722,2.1841,2.1959,2.2078,2.2196, 2.2344,2.2462,2.2610,2.2788,2.2936,2.3113,2.3291,2.3498,2.3705,2.0598,
4156 : 2.3291,2.2492,2.0568,2.3000,2.4978,2.0598,2.0657,2.1870,2.3000,2.3000, 2.0627,2.0509,2.3084,2.1042,2.0391,2.3000,2.4711,2.1722,2.3000,2.1042,
4157 : 2.2877,2.3000,2.1574,2.4445,2.3000,2.3000,2.2669,2.3000,2.3000,2.4208, 2.1456,2.2166,2.3000,2.3000,2.0894,2.2492,2.1338,2.3000,2.3942,2.3000,
4158 : 2.3000,2.3000,2.2314,2.3000,2.3735,2.1249,2.3000,2.2166,2.1130,2.0450, 2.0894,2.3498,2.1870,2.3000,2.5126,2.3000,2.3000,2.3000,2.3000,2.3000,
4159 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.1160, 2.1160,2.3000,2.1367,2.1456,2.3000,2.1663,2.3000,2.1900,2.3000,2.1190,
4160 : 2.3000,2.3000,2.3000,2.1604,2.0065,2.3000,2.3000,2.2078,2.3000,2.2344, 2.3000,2.1604,2.3912,2.2936,2.3291,2.3291,2.2018,2.1870,2.3000,2.1042,
4161 : 2.3291,2.2462,2.0953,2.1870,2.4623,2.3000,2.3084,2.3000,2.3000,2.4711, 2.1722,2.0894,2.3000,2.2877,2.0835,2.4120,2.1574,2.0687,2.2669,2.3000,
4162 : 2.3000,2.4475,2.3000,2.4208,2.0716,2.1456,2.3676,2.1574,2.0775,2.0746, 2.0775,2.3000,2.3000,2.3000,2.3000,2.3942,2.1338,2.0272,2.0627,2.2314,
4163 : 2.3232,2.3000,2.0450,2.3000,2.3735,2.1249,2.2166,2.0598,2.0687,2.3000, 2.0598,2.3000,2.3000,2.0598,2.2817,2.3000,2.1130,2.3000,2.3000,2.3000,
4164 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000 };
4165 :
4166 : static const double flin[1151]={
4167 : .548E+01, .559E+01, .804E+01, .302E+01, .211E+01, .150E+01, .159E+01, .685E+01, .412E+01, .443E+01, .290E+01, .786E+01, .664E+01, .118E+01, .126E+01, .700E+01, .415E+01, .279E+01,
4168 : .132E+01, .101E+01, .824E+01, .302E+01, .329E+01, .178E+01, .512E+00, .139E+01, .647E+01, .837E+00, .524E+01, .590E+01, .453E+01, .840E+01, .147E+01, .291E+01, .767E+01, .463E+01,
4169 : .209E+01, .508E+01, .268E+01, .586E+01, .136E+01, .269E+01, .241E+01, .278E+01, .207E+01, .684E+00, .106E+01, .722E+01, .382E+01, .283E+01, .370E+01, .627E+01, .733E+01, .748E+01,
4170 : .120E+01, .231E+01, .474E+01, .248E+01, .616E+01, .558E+00, .608E+01, .434E+01, .486E+01, .237E+01, .384E+01, .242E+01, .597E+01, .728E+01, .896E+00, .100E+01, .468E+01, .496E+01,
4171 : .731E+01, .412E+01, .344E+01, .905E+00, .474E+01, .926E+00, .623E+01, .587E+01, .763E+01, .708E+01, .327E+01, .757E+01, .458E+00, .827E+01, .282E+01, .828E+01, .636E+01, .367E+01,
4172 : .200E+01, .463E+01, .446E+01, .185E+01, .567E+01, .687E+01, .201E+01, .885E+01, .324E+01, .561E+00, .808E+01, .440E+01, .391E+00, .426E+01, .303E+01, .367E+01, .407E+01, .789E+01,
4173 : .564E+01, .445E+01, .546E+01, .648E+01, .781E+00, .380E+00, .667E+01, .284E+01, .906E+01, .159E+01, .787E+01, .542E+01, .659E+01, .404E+01, .790E+01, .307E+01, .526E+01, .164E+00,
4174 : .139E+01, .464E+01, .646E+01, .767E+01, .651E+01, .261E+01, .383E+01, .902E+01, .809E+01, .130E+02, .109E+02, .504E+01, .149E+02, .322E+00, .877E+01, .735E+01, .625E+01, .115E+01,
4175 : .239E+01, .165E+02, .424E+01, .679E+01, .746E+01, .684E+00, .643E+01, .361E+01, .503E+01, .516E+01, .176E+02, .483E+01, .937E+00, .350E+01, .604E+01, .882E+01, .216E+01, .216E+01,
4176 : .725E+01, .823E+01, .854E+00, .592E+01, .697E+01, .623E+01, .339E+01, .577E+01, .183E+02, .145E+01, .555E+01, .461E+01, .251E+01, .714E+00, .583E+01, .277E+00, .592E+01, .194E+01,
4177 : .922E+01, .344E+01, .704E+01, .317E+01, .185E+02, .428E+01, .439E+01, .502E+00, .857E+01, .610E+00, .561E+01, .702E+01, .172E+01, .682E+01, .501E+01, .149E+01, .295E+01, .803E+01,
4178 : .417E+01, .598E+01, .302E+00, .539E+01, .564E+01, .149E+01, .183E+02, .167E+01, .661E+01, .708E+01, .240E+02, .112E+02, .244E+00, .218E+02, .272E+01, .782E+01, .258E+02, .738E+01,
4179 : .650E+01, .868E+01, .194E+02, .126E+00, .395E+01, .833E+01, .617E+01, .517E+01, .271E+02, .169E+02, .127E+01, .639E+01, .250E+01, .179E+01, .760E+01, .553E+00, .146E+02, .373E+01,
4180 : .179E+02, .278E+02, .211E+01, .660E+01, .495E+01, .105E+02, .105E+01, .126E+02, .617E+01, .228E+01, .739E+01, .133E+02, .351E+01, .219E+00, .107E+02, .815E+01, .695E+01, .280E+02,
4181 : .473E+01, .860E+01, .836E+00, .694E+01, .595E+01, .914E+01, .205E+01, .717E+01, .124E+02, .262E+01, .208E+01, .174E+02, .328E+01, .771E+01, .785E+01, .718E+01, .451E+01, .628E+00,
4182 : .642E+01, .573E+01, .720E+01, .520E+01, .278E+02, .183E+01, .695E+01, .402E+01, .153E+02, .284E+01, .160E+01, .884E+00, .223E+01, .342E+01, .457E+01, .306E+01, .570E+01, .329E+02,
4183 : .350E+02, .682E+01, .305E+02, .429E+01, .431E+00, .802E+01, .792E+01, .319E+01, .144E+02, .365E+02, .551E+01, .200E+00, .899E+01, .161E+01, .673E+01, .278E+02, .100E+02, .740E+01,
4184 : .283E+01, .103E+02, .170E+02, .375E+02, .252E+00, .406E+01, .110E+02, .809E+01, .273E+02, .227E+01, .251E+02, .529E+01, .139E+01, .382E+01, .651E+01, .174E+02, .119E+02, .773E+01,
4185 : .165E+02, .261E+01, .226E+02, .101E+00, .384E+01, .755E+01, .795E+01, .507E+01, .126E+02, .117E+01, .799E+01, .629E+01, .838E+01, .249E+01, .751E+01, .238E+01, .185E+00, .454E+01,
4186 : .203E+02, .361E+01, .166E+02, .266E+02, .133E+02, .484E+01, .958E+00, .185E+02, .122E+02, .607E+01, .261E+01, .195E+02, .183E+02, .766E+01, .729E+01, .216E+01, .233E+01, .535E+01,
4187 : .339E+01, .139E+02, .462E+01, .942E+01, .754E+00, .791E+01, .164E+02, .585E+01, .277E+01, .194E+01, .707E+01, .316E+01, .148E+02, .144E+02, .206E+02, .630E+01, .173E+00, .440E+01,
4188 : .774E+01, .260E+02, .559E+00, .163E+02, .295E+01, .562E+01, .216E+02, .134E+02, .172E+01, .685E+01, .142E+02, .294E+01, .120E+02, .895E+01, .333E+02, .739E+01, .903E+01, .148E+02,
4189 : .417E+01, .378E+00, .107E+02, .314E+01, .790E+01, .540E+01, .949E+01, .150E+01, .829E+01, .663E+01, .225E+01, .712E+01, .100E+02, .886E+01, .112E+02, .595E+01, .769E+01, .226E+02,
4190 : .653E+01, .479E+01, .537E+01, .124E+02, .420E+01, .361E+01, .299E+01, .235E+01, .167E+01, .908E+00, .779E+01, .137E+02, .272E+01, .148E+02, .306E+02, .866E+01, .395E+01, .160E+02,
4191 : .216E+00, .236E+02, .333E+01, .110E+02, .518E+01, .163E+00, .151E+02, .171E+02, .129E+01, .254E+02, .161E+02, .640E+01, .182E+02, .249E+01, .372E+01, .281E+02, .840E-01, .101E+02,
4192 : .354E+01, .163E+02, .192E+02, .495E+01, .790E+01, .246E+02, .108E+01, .783E+01, .618E+01, .741E+01, .153E+02, .227E+01, .201E+02, .350E+01, .257E+02, .259E+02, .118E+02, .473E+01,
4193 : .370E+01, .879E+00, .101E+02, .596E+01, .209E+02, .154E+00, .718E+01, .206E+01, .205E+01, .160E+02, .393E+01, .327E+01, .239E+02, .155E+02, .786E+01, .267E+02, .450E+01, .136E+02,
4194 : .790E+01, .127E+02, .215E+02, .686E+00, .573E+01, .185E+02, .350E+01, .696E+01, .184E+01, .222E+02, .277E+02, .305E+01, .428E+01, .404E+01, .221E+02, .503E+00, .551E+01, .155E+02,
4195 : .359E+01, .674E+01, .206E+02, .431E+01, .162E+01, .156E+02, .147E+00, .788E+01, .283E+01, .287E+02, .160E+02, .191E+02, .405E+01, .791E+01, .336E+00, .226E+02, .528E+01, .372E+01,
4196 : .651E+01, .177E+02, .141E+01, .206E+02, .176E+02, .297E+02, .261E+01, .114E+02, .164E+02, .383E+01, .469E+01, .181E+01, .151E+02, .157E+02, .189E+00, .146E+02, .506E+01, .195E+02,
4197 : .433E+01, .182E+02, .208E+02, .138E+02, .170E+02, .389E+01, .221E+02, .157E+02, .629E+01, .126E+02, .144E+02, .230E+02, .121E+01, .233E+02, .132E+02, .114E+02, .120E+02, .790E+01,
4198 : .102E+02, .108E+02, .307E+02, .964E+01, .906E+01, .848E+01, .790E+01, .245E+02, .732E+01, .674E+01, .615E+01, .557E+01, .497E+01, .437E+01, .375E+01, .311E+01, .244E+01, .172E+01,
4199 : .925E+00, .239E+01, .197E+02, .257E+02, .361E+01, .160E+02, .792E+01, .720E-01, .483E+01, .407E+01, .606E+01, .267E+02, .317E+02, .101E+01, .508E+01, .228E+02, .217E+01, .233E+02,
4200 : .158E+02, .277E+02, .338E+01, .461E+01, .425E+01, .584E+01, .792E+01, .328E+02, .812E+00, .218E+02, .454E+01, .707E+01, .195E+01, .550E+01, .316E+01, .167E+02, .793E+01, .438E+01,
4201 : .159E+02, .445E+01, .338E+02, .130E+02, .561E+01, .629E+00, .684E+01, .158E+02, .249E+02, .174E+01, .307E-04, .597E+01, .294E+01, .153E+01, .239E+02, .416E+01, .793E+01, .464E+01,
4202 : .348E+02, .539E+01, .458E+00, .662E+01, .280E+02, .153E+01, .465E+01, .651E+01, .794E+01, .272E+01, .358E+02, .394E+01, .484E+01, .264E+02, .159E+02, .516E+01, .151E+00, .639E+01,
4203 : .450E+01, .260E+02, .270E+02, .133E+01, .189E+02, .514E-03, .715E+01, .250E+02, .250E+01, .794E+01, .368E+02, .371E+01, .503E+01, .235E+02, .494E+01, .840E-01, .617E+01, .791E+01,
4204 : .457E+01, .113E+01, .222E+02, .282E+02, .147E+02, .268E+02, .7940E+01, .2540E+02, .2290E+01, .3780E+02,
4205 : .2410E+02, .2080E+02, .2280E+02, .3490E+01, .5220E+01, .1950E+02, .2140E+02, .8820E+01, .4720E+01, .2010E+02, .2810E+02, .3150E-01, .1820E+02, .4640E+01, .5940E+01,
4206 : .1890E+02, .1700E+02, .1760E+02, .4690E+01, .2910E+02, .1640E+02, .1580E+02, .9390E+00, .1510E+02, .1450E+02, .2720E-02, .1390E+02, .1340E+02, .1280E+02, .1220E+02,
4207 : .1160E+02, .1100E+02, .3880E+02, .9910E+01, .7950E+01, .1040E+02, .2070E+01, .9840E+01, .9260E+01, .8680E+01, .8100E+01, .7520E+01, .6930E+01, .6340E+01, .5740E+01,
4208 : .5130E+01, .4510E+01, .3870E+01, .3210E+01, .2510E+01, .1760E+01, .9370E+00, .5410E+01, .3270E+01, .1260E+01, .2110E+02, .4490E+01, .5720E+01, .6950E+01, .1120E+02,
4209 : .4840E+01, .3770E+00, .7950E+01, .3980E+02, .1860E+01, .3010E+02, .3050E+01, .5590E+01, .1260E+02, .4270E+01, .5500E+01, .6720E+01, .3120E+02, .5000E+01, .2900E+00,
4210 : .4080E+02, .7960E+01, .9060E-02, .1430E+02, .1660E+01, .5780E+01, .1670E+02, .2840E+01, .4510E+01, .4050E+01, .5270E+01, .6500E+01, .5180E+01, .2100E+00, .7960E+01,
4211 : .4180E+02, .1620E+02, .2330E+02, .3220E+02, .7270E+00, .2600E+01, .5940E+01, .1910E+01, .5040E+01, .3320E+02, .6270E+01, .5370E+01, .4280E+02, .1810E+02, .1370E+00,
4212 : .6130E+01, .6280E+00, .2280E-01, .1200E+01, .1800E+01, .4790E+01, .5680E+01, .4380E+02, .5560E+01, .7480E-01, .3430E+02, .2020E+02, .5340E+00, .1030E+01, .2560E+02,
4213 : .1100E+01, .6260E+01, .4240E+01, .3370E+01, .3530E+02, .2300E+01, .4480E+02, .2910E+01, .5750E+01, .2800E+02, .5600E-01, .6460E+01, .2240E+02, .2660E+02, .4400E+00,
4214 : .5500E+01, .2720E+02, .9910E+00, .2530E+02, .2590E+02, .3000E+01, .4580E+02, .2390E+02, .2460E+02, .2190E+01, .4690E-01, .3630E+02, .2790E+01, .2330E+02, .2260E+02,
4215 : .5940E+01, .2200E+02, .2140E+02, .2070E+02, .2010E+02, .1950E+02, .3500E+00, .1890E+02, .5560E+01, .1830E+02, .1770E+02, .1710E+02, .1650E+02, .1590E+02, .8910E+00,
4216 : .1530E+02, .1470E+02, .2460E+02, .1410E+02, .1350E+02, .1290E+02, .6540E+01, .1240E+02, .1180E+02, .3730E+02, .1120E+02, .2780E+02, .1060E+02, .1000E+02, .9470E+01,
4217 : .8880E+01, .8300E+01, .1480E+01, .7710E+01, .7110E+01, .6780E+01, .6510E+01, .5890E+01, .5270E+01, .4630E+01, .3970E+01, .3280E+01, .1280E+01, .8940E+00, .4730E+00,
4218 : .2070E+01, .2700E+01, .3320E+01, .6140E+01, .2700E+00, .5660E+01, .7950E+00, .1380E+01, .1980E+01, .2600E+01, .3140E+01, .6330E+01, .2670E+02, .3880E+01, .7070E+01,
4219 : .3870E+00, .5800E+01, .8230E-01, .6850E+00, .1280E+01, .6760E+01, .1830E+01, .2510E+01, .3040E+01, .6530E+01, .5950E+01, .8460E+00, .5950E+00, .7360E+01, .1160E+01,
4220 : .1770E+01, .2360E+01, .3100E+01, .6720E+01, .1370E+00, .6120E+01, .1010E+01, .1220E+01, .7660E+01, .3280E+01, .6920E+01, .2370E+01, .6910E+01, .3080E+01, .1270E+00,
4221 : .6290E+01, .8000E+01, .3440E+01, .1800E+01, .7100E+01, .4070E+01, .6480E+01, .6610E+00, .8380E+01, .1260E+01, .7280E+01, .2710E+02, .6990E+01, .2640E+02, .2580E+02,
4222 : .8850E+01, .2510E+02, .6670E+01, .2450E+02, .2390E+02, .2330E+02, .2260E+02, .2200E+02, .2140E+02, .2080E+02, .1510E+01, .2020E+02, .3250E+01, .1960E+02, .1900E+02,
4223 : .9440E+01, .1840E+02, .1920E+01, .1780E+02, .1720E+02, .1660E+02, .7460E+01, .1610E+02, .5600E+01, .3830E+01, .1550E+02, .5040E+01, .1490E+02, .1430E+02, .1370E+02,
4224 : .1320E+02, .1260E+02, .1200E+02, .1140E+02, .1080E+02, .1020E+02, .9660E+01, .9070E+01, .8480E+01, .7880E+01, .7270E+01, .6660E+01, .6030E+01, .5390E+01, .2370E+01,
4225 : .2030E+01, .1680E+01, .1290E+01, .1020E+02, .6860E+01, .1740E+00, .1100E+02, .1320E+01, .3270E+01, .1210E+02, .6970E+00, .7640E+01, .2440E+01, .6040E+01, .1330E+02,
4226 : .1480E+02, .7050E+01, .6970E+01, .1650E+02, .1130E+01, .3320E+01, .7810E+01, .3400E+01, .2990E+01, .7250E+01, .1260E+00, .7980E+01, .6770E+01, .3190E+01, .4380E+01,
4227 : .7440E+01, .4580E-01, .7830E+00, .6910E+01, .8140E+01, .2190E+00, .5380E+01, .4170E+01, .6820E+01, .7640E+01, .8310E+01, .6220E+00, .7070E+01, .1630E+01, .5160E+01,
4228 : .2770E+01, .7830E+01, .4720E+00, .7230E+01, .8440E+01, .1440E+01, .8030E+01, .8610E+01, .5820E+00, .2550E+01, .7410E+01, .2640E+02, .2580E+02, .1750E-03, .2520E+02,
4229 : .1260E+01, .2460E+02, .4720E+01, .2350E+01, .2400E+02, .2330E+02, .2270E+02, .2210E+02, .2150E+02, .2100E+02, .2040E+02, .1980E+02, .1920E+02, .6540E+01, .1860E+02,
4230 : .1800E+02, .1740E+02, .1680E+02, .1630E+02, .1570E+02, .1510E+02, .1450E+02, .1390E+02, .1340E+02, .1280E+02, .1220E+02, .1160E+02, .1100E+02, .1040E+02, .9840E+01,
4231 : .9250E+01, .8640E+01, .8030E+01, .3710E+01, .3390E+01, .3070E+01, .2730E+01, .2410E+01, .2640E+01, .3400E+01, .8220E+01, .2570E+00, .2160E+00, .8710E+01, .7590E+01,
4232 : .7500E+01, .8890E+01, .8410E+01, .6550E-03, .1160E+00, .7780E+01, .1950E+01, .3100E+01, .7540E+01, .8600E+01, .8940E+01, .4200E-01, .7970E+01, .9150E+01, .1880E-02,
4233 : .8780E+01, .6150E+01, .8160E+01, .5050E+01, .5870E+00, .3850E+01, .2680E+01, .3910E+01, .9380E+01, .8970E+01, .4580E-02, .2840E+00, .2160E+01, .8350E+01, .9130E+01,
4234 : .4830E+01, .4440E+00, .3640E+01, .2480E+01, .3920E+01, .9150E+01, .4950E+00, .9600E+01, .8550E+01, .1000E-01, .4610E+01, .3150E+00, .2280E+01, .4010E+01, .9330E+01,
4235 : .8740E+01, .9810E+01, .9260E+01, .2020E+00, .5640E+01, .3220E+01, .2080E+01, .8180E+01, .2000E-01, .2590E+02, .9500E+01, .2530E+02, .2470E+02, .2410E+02, .2350E+02,
4236 : .2290E+02, .2230E+02, .2170E+02, .2110E+02, .2050E+02, .2000E+02, .1940E+02, .1880E+02, .1820E+02, .1760E+02};
4237 :
4238 : static const double el[1151]={
4239 : 712.962, 751.948, 1527.675, 295.458, 72.409, 769.490, 11.568, 1105.888, 405.486, 497.424, 246.754, 1470.888, 1057.475, 183.068, 856.081, 1154.462, 434.109, 184.357,
4240 : 144.750, 226.134, 1584.658, 347.970, 225.783, 686.506, 3.643, 110.903, 1010.594, 273.645, 673.097, 833.248, 465.603, 1642.703, 49.321, 405.541, 1414.963, 564.310,
4241 : 608.694, 636.153, 202.325, 791.870, 81.766, 468.127, 535.870, 22.065, 1510.442, 325.813, 946.649, 1204.057, 374.731, 97.724, 347.973, 964.106, 1255.017, 1360.495,
4242 : 57.192, 146.187, 636.099, 3.578, 919.433, 382.566, 919.363, 12.113, 599.109, 162.710, 270.538, 1392.980, 25.276, 1307.066, 30.677, .015, 564.271, 529.975,
4243 : 43.340, 37.277, 320.276, 1041.865, 712.947, 37.337, 875.510, 875.541, 1360.510, 1255.051, 295.426, 1307.083, 443.738, 66.071, 1280.589, 1701.985, 1010.539, 127.839,
4244 : 127.855, 794.816, 529.905, 113.001, 833.202, 1204.086, 3.577, 93.437, 1173.198, 22.051, 1642.720, 881.767, 16.967, 497.385, 270.573, 1070.922, 973.854, 1470.864,
4245 : 57.144, 320.226, 791.787, 1106.611, 1141.487, 509.575, 1154.446, 247.913, 125.413, 97.699,1584.612, 599.123, 964.027, 465.599, 1414.934, 12.078, 751.893, 11.576,
4246 : 84.874, 162.675, 1105.923, 1527.745, 1207.700, 225.742, 435.473, 161.891, 1586.209, 172.978, 134.809, 713.047, 216.116, 579.929, 101.361, 81.706, 1058.673, 72.372,
4247 : 205.299, 263.879, 25.302, 72.894, 1472.057, 1245.680, 1313.761, 406.198, 49.273, 374.774, 316.434, 675.525, 61.675, 30.662, 1012.679, 202.984, 16.916, 185.798,
4248 : 1417.693, 1527.676, 8.275, 673.056,1057.503, 1424.857, 378.414, 202.358, 373.655, 11.548, 43.320, 639.124, 22.118, 51.800, 967.826, 654.757, 1541.048, 167.657,
4249 : 110.903, 37.338, 1364.418, 351.707, 435.327, 57.206, 603.989, 43.464, 248.530, 1354.412, 924.251, 65.998, 150.653, 1312.359, 81.719, 5.711, 326.296, 1768.078,
4250 : 570.016, 434.013, 36.100, 881.901, 110.877, 134.964, 501.653, 8.247, 1261.596, 246.722, 591.495, 144.663, 734.125, 518.625, 302.028, 1708.920, 669.041, 1155.730,
4251 : 751.897, 93.394, 450.483, 30.108, 537.278, 298.679, 144.679, 840.641, 751.328, 387.330, 120.410, 1211.942, 279.006, 11.497, 1650.864, 1467.553, 329.140, 505.824,
4252 : 572.453, 838.329, 16.983, 183.128, 800.694, 125.372, 107.102, 275.788, 1163.588, 257.162, 1594.112, 183.102, 475.488, 817.997, 227.550, 353.193, 498.178, 929.734,
4253 : 761.944, 295.904, 94.974, 226.130, 1116.340, 184.286, 236.638, 1538.461, 161.901, 30.664, 22.103, 647.670, 446.446, 146.139, 1258.917, 835.678, 724.503, 84.061,
4254 : 113.029, 1070.393, 273.691, 84.852, 1025.749, 217.207, 1484.115, 61.686, 226.122, 43.401, 30.067, 25.257, 36.149, 51.827, 72.377, 418.614, 97.685, 1150.477,
4255 : 1257.824, 127.835, 1047.973, 688.162, 74.443, 412.335, 162.710, 49.286, 202.966, 1369.774, 1025.650, 906.434, 202.391, 199.086, 1430.970, 950.170, 246.763, 325.823,
4256 : 391.981, 349.644, 727.363, 1486.298, 65.931, 653.025, 295.912, 567.108, 1126.098, 37.290, 857.338, 982.109, 182.163, 72.846, 1378.929, 273.716, 349.724, 1843.380,
4257 : 248.564, 366.553, 769.458, 58.718, 619.191, 382.537, 475.958, 939.772, 408.192, 166.345, 924.138, 1328.189, 1366.889, 21.629, 1784.241, 342.326, 999.290, 101.334,
4258 : 686.513, 586.459, 811.499, 1230.926, 471.309, 898.636, 151.827, 298.599, 408.178, 1278.652, 25.216, 325.773, 608.683, 443.748, 1726.304, 319.303, 57.208, 134.738,
4259 : 555.030, 539.074, 858.703, 640.744, 138.512, 544.000, 535.834, 1230.318, 30.116, 297.581, 1669.469, 524.803, 468.113, 611.387, 353.182, 173.038, 1096.704, 819.972,
4260 : 509.570, 1340.198, 126.498, 900.149, 36.086, 1183.185, 382.480, 405.542, 276.961, 1613.936, 471.335, 495.678, 347.925, 1017.522, 1510.429, 216.111, 1479.680, 688.354,
4261 : 782.544, 115.585, 295.446, 43.428, 616.686, 1137.254, 247.882, 257.643, 205.308, 1559.604, 81.704, 167.698, 270.552, 225.745, 320.238, 134.932, 185.728, 412.324,
4262 : 150.609, 107.096, 120.392, 374.690, 94.979, 84.078, 74.372, 65.970, 58.668, 52.667, 579.917, 434.092, 467.855, 498.128, 1392.982, 263.925, 746.217, 567.080,
4263 : 105.873, 443.725, 51.838, 719.131, 1092.525, 1198.700, 769.884, 640.730, 239.527, 1453.786, 993.175, 1506.474, 719.163, 441.234, 711.192, 1280.577, 97.462, 316.443,
4264 : 61.690, 539.028, 802.265, 1048.997, 693.826, 475.936, 222.511, 654.704, 1454.546, 1927.636, 855.986, 415.914, 890.025, 677.268, 509.598, 1173.195, 373.626, 1006.671,
4265 : 72.354, 206.797, 1115.576, 1403.820, 982.435, 1305.087, 1868.510, 110.925, 391.695, 1090.724, 84.838, 644.646, 1070.903, 946.673, 734.143, 544.025, 965.547, 435.337,
4266 : 775.419, 802.213, 1079.492, 192.284, 1354.294, 611.461, 47.827, 1810.585, 368.678, 973.850, 579.892, 613.226, 925.624, 97.713, 1181.196, 178.971, 1305.970, 501.648,
4267 : 52.617, 1753.861, 881.758, 113.009, 346.962, 1041.761, 1415.963, 817.945, 582.907, 616.699,1192.830, 794.833, 887.003, 861.560, 166.959, 1287.449, 1258.848, 58.707,
4268 : 1698.338, 712.962, 326.347, 688.423, 572.442, 654.701, 553.889, 1218.448, 636.125, 849.482, 146.138, 144.632, 564.298, 1141.463, 156.048, 890.028, 1212.926, 835.606,
4269 : 127.787, 751.884, 924.181, 497.357, 673.031, 65.898, 1017.492, 599.059, 1644.017, 435.382, 529.880, 1398.259, 307.033, 1115.623, 465.601, 378.357, 406.229, 906.419,
4270 : 326.269, 351.667, 693.763, 302.016, 279.007, 257.176, 236.565, 1218.456, 217.247, 199.037, 182.127, 166.420, 151.814, 138.509, 126.406, 115.604, 105.902, 97.401,
4271 : 90.201, 526.072, 647.617, 1326.074, 813.263, 1299.307, 952.242, 146.337, 1168.206, 74.389, 1590.896, 1438.365, 734.122, 288.820, 184.351, 769.897, 499.456, 1513.635,
4272 : 1245.693, 1555.416, 778.145, 1124.786, 84.084, 1538.977, 999.274, 775.421, 271.908, 727.381, 162.639, 2020.615, 474.141, 227.559, 744.328, 982.408, 1047.457, 1082.468,
4273 : 1410.258, 94.973, 817.950, 1326.089,1488.258, 256.196, 1961.497, 1354.366, 855.965, 449.927, 3.582, 275.858, 711.712, 183.102, 811.447, 1041.351, 1096.714, 107.078,
4274 : 861.574, 1438.741, 241.684, 1903.580, 1541.055, 426.913, 202.324, 329.134, 1147.098, 680.296, 906.385, 1001.534, 120.361, 1424.858, 1467.593, 1390.424, 228.373, 1846.964,
4275 : 84.151, 900.134, 946.607, 405.200, 1079.471, 12.046, 387.363, 1313.726, 649.982, 1198.646, 952.226, 962.818, 134.889, 1207.638, 1343.308, 216.262, 1791.449, 450.519,
4276 : 90.141, 384.588, 1106.573, 1597.285, 1438.347, 1479.633, 1251.300, 1366.878, 621.008, 999.365,
4277 : 1258.952, 1010.547, 1155.808, 925.344, 150.691, 919.460, 1057.459, 518.609, 1297.533, 964.112, 993.199, 205.493, 833.236, 246.730, 1737.175,
4278 : 875.473, 751.860, 791.846, 97.472, 1041.848, 713.034, 675.523, 365.317, 639.138, 604.015, 25.308, 570.057, 537.332, 505.791, 475.568,
4279 : 446.439, 418.619, 1047.518, 591.418, 1305.114, 391.998, 593.196, 366.582, 342.367, 319.356, 297.545, 277.037, 257.630, 239.524, 222.620,
4280 : 206.816, 192.313, 179.011, 166.910, 156.109, 146.409, 137.908, 167.669, 889.131, 226.072, 1181.260, 1252.820, 1684.062, 2182.656, 669.044,
4281 : 105.963, 347.207, 1359.980, 1096.809, 566.685, 1090.777, 854.118, 185.780, 751.345,1209.307, 1632.150, 2122.345, 1141.494, 115.555, 330.197,
4282 : 1147.171, 1416.040, 43.347, 838.278, 541.273, 205.355, 1555.410, 820.206, 295.921, 1167.094, 1581.538, 2063.335, 126.448, 314.487,1473.173,
4283 : 1198.658, 929.803, 1287.485, 1192.821, 517.063, 787.594, 225.760, 1125.982, 1532.026, 1245.672, 2005.425, 138.541, 1251.325, 1025.690, 299.978,
4284 : 247.907, 494.052, 66.048, 756.183, 1086.071, 1483.715, 1948.715, 1305.109, 151.935, 286.669, 1299.339, 1126.119, 472.342, 273.676,1398.267,
4285 : 725.972, 270.619, 349.676, 1047.460, 1354.375, 1436.605, 1359.980, 1893.306, 166.430,1706.427, 274.660, 295.455, 1230.987, 1586.138, 451.733,
4286 : 130.654, 1645.227, 696.962, 1470.920, 1527.621, 1009.950, 1416.062, 1360.558, 1414.928,1390.795, 93.455, 1410.340, 1838.997, 1307.052, 1255.042,
4287 : 182.126, 1204.095, 1154.464, 1105.955, 1058.715, 1012.634, 432.423, 967.892, 137.945, 924.230, 881.891, 840.742, 800.707, 761.969, 669.152,
4288 : 724.439, 688.209, 1340.201, 653.084, 619.160, 586.539, 320.239, 555.021, 524.805, 1467.596, 495.791, 1513.684, 467.878, 441.268, 415.858,
4289 : 391.751, 368.744, 973.739, 346.939, 326.434, 347.933, 307.030, 288.927, 271.925, 256.224, 241.722, 228.421, 216.321, 205.421, 195.821,
4290 : 1346.085, 1785.888, 2292.948, 199.126, 414.314, 146.436, 642.542, 938.730, 1302.576, 1733.980, 2232.742, 217.224, 1453.876, 408.138, 405.576,
4291 : 397.405, 156.027, 125.411, 617.133, 904.820, 374.797, 1260.366, 1683.372, 2173.635, 236.631, 166.919, 325.873, 593.024, 468.117, 872.211,
4292 : 1219.258, 1633.864, 2115.830, 257.229, 367.187, 179.011, 570.015, 840.802, 535.876, 1179.449, 434.062, 1585.557, 279.048, 2059.124, 161.974,
4293 : 192.303, 608.665, 471.367, 1538.549, 302.043, 2003.618, 206.896, 527.697, 686.578,1103.333, 326.284, 1762.606, 498.193, 1701.983, 1642.723,
4294 : 769.494, 1584.625, 222.590, 1527.765, 1472.086, 1417.629, 1364.464, 1312.413, 1261.558,1212.013, 753.776, 1163.567, 187.357, 1116.428, 1070.390,
4295 : 857.385, 1025.656, 1067.025, 982.124, 939.796, 898.669, 351.666, 858.746, 2411.740, 1447.935, 820.024, 1896.307, 782.505, 746.287, 711.171,
4296 : 677.357, 644.645, 613.234, 583.024, 553.916, 526.109, 499.503, 474.097, 449.993, 426.989, 405.186, 384.684, 365.282, 347.181, 330.280,
4297 : 314.479, 299.978, 286.678, 950.216, 239.484, 203.016, 1047.945, 727.168, 195.748, 1150.529, 382.500, 378.446, 1032.017, 2351.537, 1257.820,
4298 : 1369.771, 257.680, 567.144, 1486.333, 701.859, 205.439, 406.197, 1362.222, 539.135, 276.977, 457.563, 435.444, 216.330, 1321.215, 1744.292,
4299 : 297.575, 443.055, 654.643, 228.422, 465.633, 248.627, 2177.927, 1695.987, 640.759, 319.375, 497.393, 632.935, 241.713, 903.887, 2122.525,
4300 : 1242.702, 342.376, 612.327, 256.205, 529.969, 874.879, 366.580, 564.311, 443.799, 611.436, 271.998, 1828.597, 1768.137, 30.626, 1708.883,
4301 : 847.072, 1650.931, 2015.119, 1168.989, 1594.084, 1538.539, 1484.098, 1430.959, 1379.023,1328.190, 1278.659, 1230.331, 1183.205, 719.181,1137.281,
4302 : 1092.558, 1049.038, 1006.720, 965.603, 925.688, 886.974, 849.562, 813.251, 778.241, 744.332, 711.725, 680.318, 650.112, 621.007, 593.203,
4303 : 566.599, 541.296, 517.094, 494.092, 472.290, 451.789, 432.388, 414.288, 367.187, 381.687, 391.984, 298.710, 574.911, 599.095, 288.891,
4304 : 254.106, 636.124, 418.594, 49.308, 557.903, 307.084, 1100.076, 1472.661, 263.697, 446.502, 673.097, 542.195, 326.378, 712.960, 72.890,
4305 : 475.519, 802.247, 346.973, 2305.227, 747.942, 1814.906, 1391.751, 286.679, 794.854, 505.830, 101.347, 353.280, 688.382, 368.770, 751.956,
4306 : 2249.726, 726.234, 1767.802, 1353.146, 299.970, 537.359, 509.621, 881.841, 391.667, 134.745, 2195.524, 705.627, 1315.640, 314.561, 570.071,
4307 : 415.865, 973.852, 835.644, 686.319, 890.003, 1677.295, 1279.435, 330.253, 173.046,1903.723, 604.018, 1843.383, 1784.246, 1726.312, 1669.579,
4308 : 1613.949, 1559.621, 1506.495, 1454.571,1403.848, 1354.328, 1306.009, 1258.891, 1212.975,1168.260};
4309 :
4310 :
4311 : static const unsigned int ifin1[800]={
4312 : 7, 8, 10, 11, 11, 11, 11, 12, 15, 18, 21, 22, 22, 23, 24, 25, 26, 29, 29, 29, 30, 33, 34, 36, 38, 38, 40, 41, 43, 47,
4313 : 47, 47, 48, 51, 53, 54, 55, 55, 55, 55, 55, 55, 57, 59, 59, 62, 64, 65, 65, 65, 68, 69, 70, 70, 71, 72, 72, 74, 76, 79,
4314 : 80, 81, 82, 84, 84, 86, 87, 91, 91, 92, 92, 92, 95, 96, 96, 96, 96, 98, 100, 101, 102, 103, 104, 106, 107, 108, 108, 111, 112, 115,
4315 : 116, 116, 117, 119, 120, 121, 121, 122, 123, 125, 128, 128, 129, 129, 130, 130, 130, 132, 133, 133, 134, 136, 136, 137, 139, 141, 142, 145, 145, 147,
4316 : 150, 151, 151, 152, 154, 154, 155, 158, 158, 159, 159, 160, 162, 163, 164, 168, 170, 170, 173, 174, 175, 175, 177, 177, 180, 181, 182, 184, 184, 184,
4317 : 185, 185, 185, 188, 189, 191, 191, 192, 193, 194, 195, 197, 197, 199, 199, 199, 199, 202, 202, 202, 203, 206, 206, 208, 211, 213, 215, 219, 220, 222,
4318 : 222, 223, 223, 226, 228, 228, 229, 229, 229, 232, 233, 234, 234, 236, 237, 238, 241, 242, 242, 244, 244, 244, 247, 247, 247, 248, 249, 251, 253, 255,
4319 : 257, 257, 258, 258, 260, 261, 263, 263, 266, 267, 267, 269, 271, 271, 272, 273, 274, 277, 279, 281, 286, 288, 290, 291, 291, 296, 298, 299, 301, 302,
4320 : 303, 305, 305, 306, 309, 310, 311, 311, 313, 317, 318, 319, 320, 320, 322, 323, 325, 327, 327, 327, 329, 330, 331, 332, 333, 335, 336, 339, 339, 340,
4321 : 343, 344, 344, 345, 346, 348, 348, 349, 352, 352, 355, 356, 359, 360, 360, 360, 362, 363, 363, 363, 365, 368, 368, 370, 370, 372, 372, 372, 372, 373,
4322 : 376, 378, 380, 382, 383, 386, 386, 387, 389, 389, 389, 390, 393, 393, 395, 398, 400, 401, 403, 404, 435, 440, 441, 443, 445, 445, 445, 447, 447, 447,
4323 : 447, 451, 441, 443, 445, 445, 445, 447, 447, 447, 447, 451, 453, 454, 456, 457, 460, 460, 460, 462, 463, 464, 464, 465, 467, 468, 468, 470, 471, 473,
4324 : 474, 476, 477, 479, 479, 480, 481, 482, 485, 487, 487, 491, 493, 493, 495, 496, 496, 496, 498, 499, 499, 499, 500, 502, 503, 505, 506, 509, 511, 512,
4325 : 512, 513, 516, 516, 517, 518, 520, 522, 522, 523, 526, 527, 529, 529, 530, 532, 532, 533, 536, 539, 582, 585, 585, 586, 587, 589, 592, 592, 593, 593,
4326 : 596, 596, 597, 598, 598, 589, 592, 592, 593, 593, 596, 596, 597, 598, 598, 599, 599, 600, 604, 607, 607, 607, 608, 609, 609, 610, 612, 612, 614, 616,
4327 : 618, 619, 621, 621, 622, 624, 624, 624, 627, 628, 628, 630, 632, 633, 634, 636, 636, 637, 637, 638, 639, 641, 641, 643, 645, 646, 648, 649, 649, 649,
4328 : 654, 655, 657, 658, 658, 660, 662, 662, 664, 665, 666, 667, 668, 670, 673, 675, 677, 679, 680, 682, 685, 689, 691, 693, 695, 700, 703, 705, 712, 723,
4329 : 729, 731, 731, 733, 734, 735, 737, 738, 739, 740, 741, 742, 742, 743, 745, 746, 747, 747, 748, 749, 751, 752, 754, 755, 757, 758, 758, 760, 761, 762,
4330 : 762, 763, 764, 768, 770, 770, 771, 772, 772, 773, 774, 774, 775, 776, 778, 780, 782, 782, 782, 784, 784, 785, 786, 786, 787, 787, 788, 790, 792, 794,
4331 : 794, 794, 796, 796, 797, 799, 799, 801, 803, 805, 807, 809, 809, 809, 812, 813, 814, 815, 816, 818, 820, 823, 826, 828, 830, 830, 832, 835, 838, 840,
4332 : 846, 853, 872, 872, 873, 876, 876, 876, 876, 876, 878, 878, 879, 879, 879, 880, 881, 882, 885, 885, 886, 887, 888, 889, 890, 891, 891, 893, 893, 894,
4333 : 897, 897, 897, 897, 897, 897, 899, 899, 900, 901, 902, 903, 904, 906, 906, 906, 906, 907, 908, 908, 909, 909, 910, 910, 912, 916, 916, 916, 916, 916,
4334 : 917, 918, 918, 918, 918, 918, 919, 920, 923, 923, 923, 923, 923, 924, 924, 925, 925, 926, 926, 927, 928, 928, 928, 929, 932, 934, 936, 937, 939, 941,
4335 : 945, 949, 954, 963, 980, 980, 981, 981, 982, 983, 984, 984, 984, 988, 990, 991, 992, 992, 992, 992, 993, 994, 994, 994, 995, 997, 998, 999,1000,1000,
4336 : 1001,1001,1001,1002,1002,1002,1003,1003,1005,1005,1006,1007,1007,1007,1007,1007,1008,1008,1009,1009,1010,1011,1013,1015,1015,1015,1015,1015,1016,1017,
4337 : 1017,1018,1018,1020,1020,1022,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1027,1028,1028,1028,1028,1028,1028,1029,1031,1031,1031,1032,1034,1036,
4338 : 1040,1043,1046,1049,1055,1063,1078,1078,1079,1079,1079,1082,1082,1082,1082,1083,1084,1084,1085,1086};
4339 :
4340 : static const unsigned int ini1[800]={
4341 : 1, 1, 1, 1, 1, 2, 4, 4, 4, 4, 7, 8, 10, 11, 11, 11, 11, 12, 15, 18, 21, 22, 22, 23, 24, 25, 26, 29, 29, 29,
4342 : 30, 33, 34, 36, 38, 38, 40, 41, 43, 47, 47, 47, 48, 51, 53, 54, 55, 55, 55, 55, 55, 55, 57, 59, 59, 62, 64, 65, 65, 65,
4343 : 68, 69, 70, 70, 71, 72, 72, 74, 76, 79, 80, 81, 82, 84, 84, 86, 87, 91, 91, 92, 92, 92, 95, 96, 96, 96, 96, 98, 100, 101,
4344 : 102, 103, 104, 106, 107, 108, 108, 111, 112, 115, 116, 116, 117, 119, 120, 121, 121, 122, 123, 125, 128, 128, 129, 129, 130, 130, 130, 132, 133, 133,
4345 : 134, 136, 136, 137, 139, 141, 142, 145, 145, 147, 150, 151, 151, 152, 154, 154, 155, 158, 158, 159, 159, 160, 162, 163, 164, 168, 170, 170, 173, 174,
4346 : 175, 175, 177, 177, 180, 181, 182, 184, 184, 184, 185, 185, 185, 188, 189, 191, 191, 192, 193, 194, 195, 197, 197, 199, 199, 199, 199, 202, 202, 202,
4347 : 203, 206, 206, 208, 211, 213, 215, 219, 220, 222, 222, 223, 223, 226, 228, 228, 229, 229, 229, 232, 233, 234, 234, 236, 237, 238, 241, 242, 242, 244,
4348 : 244, 244, 247, 247, 247, 248, 249, 251, 253, 255, 257, 257, 258, 258, 260, 261, 263, 263, 266, 267, 267, 269, 271, 271, 272, 273, 274, 277, 279, 281,
4349 : 286, 288, 290, 291, 291, 296, 298, 299, 301, 302, 303, 305, 305, 306, 309, 310, 311, 311, 313, 317, 318, 319, 320, 320, 322, 323, 325, 327, 327, 327,
4350 : 329, 330, 331, 332, 333, 335, 336, 339, 339, 340, 343, 344, 344, 345, 346, 348, 348, 349, 352, 352, 355, 356, 359, 360, 360, 360, 362, 363, 363, 363,
4351 : 365, 368, 368, 370, 370, 372, 372, 372, 372, 373, 376, 378, 380, 382, 383, 386, 386, 387, 389, 389, 376, 378, 380, 382, 383, 386, 386, 387, 389, 389,
4352 : 389, 390, 411, 425, 428, 428, 429, 430, 434, 434, 435, 440, 441, 443, 445, 445, 445, 447, 447, 447, 447, 451, 453, 454, 456, 457, 460, 460, 460, 462,
4353 : 463, 464, 464, 465, 467, 468, 468, 470, 471, 473, 474, 476, 477, 479, 479, 480, 481, 482, 485, 487, 487, 491, 493, 493, 495, 496, 496, 496, 498, 499,
4354 : 499, 499, 500, 502, 503, 505, 506, 509, 511, 512, 512, 513, 516, 516, 517, 518, 520, 522, 522, 523, 512, 513, 516, 516, 517, 518, 520, 522, 522, 523,
4355 : 526, 527, 529, 529, 530, 564, 573, 579, 579, 579, 582, 585, 585, 586, 587, 589, 592, 592, 593, 593, 596, 596, 597, 598, 598, 599, 599, 600, 604, 607,
4356 : 607, 607, 608, 609, 609, 610, 612, 612, 614, 616, 618, 619, 621, 621, 622, 624, 624, 624, 627, 628, 628, 630, 632, 633, 634, 636, 636, 637, 637, 638,
4357 : 639, 641, 641, 643, 645, 646, 648, 649, 649, 649, 654, 655, 657, 658, 658, 660, 662, 662, 664, 665, 666, 667, 668, 670, 673, 675, 677, 679, 680, 682,
4358 : 685, 689, 691, 693, 695, 700, 703, 705, 712, 723, 729, 731, 731, 733, 734, 735, 737, 738, 739, 740, 741, 742, 742, 743, 745, 746, 747, 747, 748, 749,
4359 : 751, 752, 754, 755, 757, 758, 758, 760, 761, 762, 762, 763, 764, 768, 770, 770, 771, 772, 772, 773, 774, 774, 775, 776, 778, 780, 782, 782, 782, 784,
4360 : 784, 785, 786, 786, 787, 787, 788, 790, 792, 794, 794, 794, 796, 796, 797, 799, 799, 801, 803, 805, 807, 809, 809, 809, 812, 813, 814, 815, 816, 818,
4361 : 820, 823, 826, 828, 830, 830, 832, 835, 838, 840, 846, 853, 872, 872, 873, 876, 876, 876, 876, 876, 878, 878, 879, 879, 879, 880, 881, 882, 885, 885,
4362 : 886, 887, 888, 889, 890, 891, 891, 893, 893, 894, 897, 897, 897, 897, 897, 897, 899, 899, 900, 901, 902, 903, 904, 906, 906, 906, 906, 907, 908, 908,
4363 : 909, 909, 910, 910, 912, 916, 916, 916, 916, 916, 917, 918, 918, 918, 918, 918, 919, 920, 923, 923, 923, 923, 923, 924, 924, 925, 925, 926, 926, 927,
4364 : 928, 928, 928, 929, 932, 934, 936, 937, 939, 941, 945, 949, 954, 963, 980, 980, 981, 981, 982, 983, 984, 984, 984, 988, 990, 991, 992, 992, 992, 992,
4365 : 993, 994, 994, 994, 995, 997, 998, 999,1000,1000,1001,1001,1001,1002,1002,1002,1003,1003,1005,1005,1006,1007,1007,1007,1007,1007,1008,1008,1009,1009,
4366 : 1010,1011,1013,1015,1015,1015,1015,1015,1016,1017,1017,1018,1018,1020,1020,1022,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1027,1028,1028,1028,
4367 : 1028,1028,1028,1029,1031,1031,1031,1032,1034,1036,1040,1043,1046,1049,1055,1063,1078,1078,1079,1079};
4368 :
4369 : static const unsigned int ifin2[800]={
4370 : 4, 4, 4, 5, 8, 8, 10, 11, 11, 11, 12, 15, 17, 18, 21, 22, 22, 24, 25, 25, 28, 29, 29, 29, 33, 34, 35, 36, 38, 40,
4371 : 41, 42, 46, 47, 47, 48, 49, 52, 53, 55, 55, 55, 55, 55, 55, 57, 58, 59, 60, 64, 65, 65, 65, 66, 69, 69, 70, 70, 72, 72,
4372 : 73, 76, 77, 79, 80, 82, 82, 84, 85, 86, 89, 91, 91, 92, 92, 94, 95, 96, 96, 96, 96, 99, 101, 101, 103, 104, 106, 106, 107, 108,
4373 : 109, 112, 115, 115, 116, 117, 119, 120, 121, 121, 122, 122, 124, 125, 128, 128, 129, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 141,
4374 : 143, 145, 146, 149, 150, 151, 151, 152, 154, 154, 157, 158, 159, 159, 160, 161, 162, 164, 167, 169, 170, 170, 173, 174, 175, 177, 177, 178, 180, 182,
4375 : 184, 184, 184, 184, 185, 185, 186, 189, 190, 191, 192, 192, 194, 195, 195, 197, 199, 199, 199, 199, 202, 202, 202, 203, 203, 206, 207, 209, 213, 215,
4376 : 217, 219, 220, 222, 223, 223, 225, 226, 228, 228, 229, 229, 232, 232, 233, 234, 235, 237, 237, 240, 242, 242, 242, 244, 244, 245, 247, 247, 247, 248,
4377 : 250, 252, 254, 256, 257, 257, 258, 259, 260, 262, 263, 264, 266, 267, 268, 270, 271, 272, 272, 273, 276, 277, 280, 285, 286, 289, 290, 291, 293, 298,
4378 : 299, 299, 302, 303, 305, 305, 305, 308, 309, 311, 311, 313, 315, 318, 319, 319, 320, 322, 322, 323, 327, 327, 327, 328, 330, 330, 332, 333, 334, 335,
4379 : 338, 339, 339, 342, 344, 344, 344, 346, 348, 348, 349, 350, 352, 353, 355, 357, 359, 360, 360, 360, 363, 363, 363, 364, 367, 368, 370, 370, 371, 372,
4380 : 372, 372, 373, 374, 378, 378, 380, 383, 383, 386, 387, 389, 389, 389, 389, 391, 393, 393, 396, 399, 403, 404, 405, 408, 411, 425, 428, 428, 429, 430,
4381 : 434, 434, 434, 435, 438, 441, 441, 445, 445, 445, 446, 447, 447, 447, 450, 452, 453, 455, 456, 459, 460, 460, 461, 463, 464, 464, 464, 465, 468, 468,
4382 : 470, 470, 472, 473, 475, 476, 478, 479, 479, 480, 482, 483, 485, 487, 491, 492, 493, 494, 495, 496, 496, 497, 499, 499, 499, 500, 500, 503, 505, 505,
4383 : 508, 511, 512, 512, 512, 515, 516, 516, 518, 518, 520, 522, 523, 524, 527, 529, 529, 529, 532, 532, 536, 539, 542, 548, 550, 556, 559, 564, 573, 579,
4384 : 579, 579, 582, 585, 585, 585, 586, 587, 588, 591, 592, 592, 593, 595, 596, 596, 598, 598, 598, 599, 600, 602, 605, 607, 607, 607, 608, 609, 609, 611,
4385 : 612, 612, 614, 616, 619, 619, 621, 621, 623, 624, 624, 625, 628, 628, 629, 632, 632, 634, 636, 636, 636, 637, 637, 638, 641, 641, 642, 643, 646, 647,
4386 : 648, 649, 649, 651, 655, 657, 657, 658, 659, 660, 662, 662, 665, 666, 666, 667, 670, 671, 673, 675, 679, 679, 681, 684, 686, 690, 693, 695, 697, 700,
4387 : 704, 707, 716, 729, 729, 731, 731, 734, 734, 735, 737, 739, 739, 741, 741, 742, 742, 743, 746, 746, 747, 748, 749, 751, 752, 753, 754, 757, 757, 758,
4388 : 760, 761, 762, 762, 763, 764, 765, 768, 770, 771, 772, 772, 772, 774, 774, 775, 775, 777, 778, 782, 782, 782, 783, 784, 784, 786, 786, 786, 787, 788,
4389 : 790, 791, 794, 794, 794, 795, 796, 797, 798, 799, 801, 802, 804, 805, 809, 809, 809, 810, 812, 813, 814, 816, 817, 818, 822, 825, 828, 828, 830, 832,
4390 : 834, 837, 839, 843, 849, 861, 872, 873, 874, 876, 876, 876, 876, 877, 878, 878, 879, 879, 880, 880, 881, 884, 885, 886, 886, 887, 889, 889, 891, 891,
4391 : 891, 893, 894, 895, 897, 897, 897, 897, 897, 898, 899, 900, 901, 902, 902, 903, 906, 906, 906, 906, 906, 907, 908, 908, 909, 909, 910, 912, 914, 916,
4392 : 916, 916, 916, 917, 918, 918, 918, 918, 918, 918, 919, 923, 923, 923, 923, 923, 923, 924, 924, 925, 926, 926, 926, 928, 928, 928, 929, 931, 933, 935,
4393 : 937, 938, 940, 942, 946, 951, 960, 968, 980, 981, 981, 981, 982, 984, 984, 984, 986, 988, 990, 991, 992, 992, 992, 993, 994, 994, 994, 994, 996, 998,
4394 : 998,1000,1000,1001,1001,1001,1001,1002,1002,1003,1003,1004,1005,1005,1007,1007,1007,1007,1007,1007,1008,1008,1009,1009,1011,1013,1014,1015,1015,1015,
4395 : 1015,1016,1017,1017,1017,1018,1018,1020,1021,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1026,1027,1028,1028,1028,1028,1028,1028,1029,1031,1031,
4396 : 1031,1032,1034,1038,1042,1044,1047,1052,1058,1078,1078,1079,1079,1079,1080,1082,1082,1082,1082,1084};
4397 :
4398 : static const unsigned int ini2[800]={
4399 : 1, 1, 3, 4, 4, 4, 5, 8, 8, 10, 11, 11, 11, 12, 15, 17, 18, 21, 22, 22, 24, 25, 25, 28, 29, 29, 29, 33, 34, 35,
4400 : 36, 38, 40, 41, 42, 46, 47, 47, 48, 49, 52, 53, 55, 55, 55, 55, 55, 55, 57, 58, 59, 60, 64, 65, 65, 65, 66, 69, 69, 70,
4401 : 70, 72, 72, 73, 76, 77, 79, 80, 82, 82, 84, 85, 86, 89, 91, 91, 92, 92, 94, 95, 96, 96, 96, 96, 99, 101, 101, 103, 104, 106,
4402 : 106, 107, 108, 109, 112, 115, 115, 116, 117, 119, 120, 121, 121, 122, 122, 124, 125, 128, 128, 129, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137,
4403 : 138, 140, 141, 143, 145, 146, 149, 150, 151, 151, 152, 154, 154, 157, 158, 159, 159, 160, 161, 162, 164, 167, 169, 170, 170, 173, 174, 175, 177, 177,
4404 : 178, 180, 182, 184, 184, 184, 184, 185, 185, 186, 189, 190, 191, 192, 192, 194, 195, 195, 197, 199, 199, 199, 199, 202, 202, 202, 203, 203, 206, 207,
4405 : 209, 213, 215, 217, 219, 220, 222, 223, 223, 225, 226, 228, 228, 229, 229, 232, 232, 233, 234, 235, 237, 237, 240, 242, 242, 242, 244, 244, 245, 247,
4406 : 247, 247, 248, 250, 252, 254, 256, 257, 257, 258, 259, 260, 262, 263, 264, 266, 267, 268, 270, 271, 272, 272, 273, 276, 277, 280, 285, 286, 289, 290,
4407 : 291, 293, 298, 299, 299, 302, 303, 305, 305, 305, 308, 309, 311, 311, 313, 315, 318, 319, 319, 320, 322, 322, 323, 327, 327, 327, 328, 330, 330, 332,
4408 : 333, 334, 335, 338, 339, 339, 342, 344, 344, 344, 346, 348, 348, 349, 350, 352, 353, 355, 357, 359, 360, 360, 360, 363, 363, 363, 364, 367, 368, 370,
4409 : 370, 371, 372, 372, 372, 373, 374, 378, 378, 380, 383, 383, 386, 387, 389, 389, 389, 389, 391, 393, 393, 393, 395, 398, 400, 401, 403, 404, 405, 408,
4410 : 411, 425, 429, 429, 432, 434, 435, 438, 441, 441, 445, 445, 445, 446, 447, 447, 447, 450, 452, 453, 455, 456, 459, 460, 460, 461, 463, 464, 464, 464,
4411 : 465, 468, 468, 470, 470, 472, 473, 475, 476, 478, 479, 479, 480, 482, 483, 485, 487, 491, 492, 493, 494, 495, 496, 496, 497, 499, 499, 499, 500, 500,
4412 : 503, 505, 505, 508, 511, 512, 512, 512, 515, 516, 516, 518, 518, 520, 522, 523, 524, 527, 529, 529, 529, 529, 530, 532, 532, 533, 536, 539, 542, 548,
4413 : 550, 556, 559, 564, 573, 579, 581, 583, 585, 586, 587, 588, 591, 592, 592, 593, 595, 596, 596, 598, 598, 598, 599, 600, 602, 605, 607, 607, 607, 608,
4414 : 609, 609, 611, 612, 612, 614, 616, 619, 619, 621, 621, 623, 624, 624, 625, 628, 628, 629, 632, 632, 634, 636, 636, 636, 637, 637, 638, 641, 641, 642,
4415 : 643, 646, 647, 648, 649, 649, 651, 655, 657, 657, 658, 659, 660, 662, 662, 665, 666, 666, 667, 670, 671, 673, 675, 679, 679, 681, 684, 686, 690, 693,
4416 : 695, 697, 700, 704, 707, 716, 729, 729, 731, 731, 734, 734, 735, 737, 739, 739, 741, 741, 742, 742, 743, 746, 746, 747, 748, 749, 751, 752, 753, 754,
4417 : 757, 757, 758, 760, 761, 762, 762, 763, 764, 765, 768, 770, 771, 772, 772, 772, 774, 774, 775, 775, 777, 778, 782, 782, 782, 783, 784, 784, 786, 786,
4418 : 786, 787, 788, 790, 791, 794, 794, 794, 795, 796, 797, 798, 799, 801, 802, 804, 805, 809, 809, 809, 810, 812, 813, 814, 816, 817, 818, 822, 825, 828,
4419 : 828, 830, 832, 834, 837, 839, 843, 849, 861, 872, 873, 874, 876, 876, 876, 876, 877, 878, 878, 879, 879, 880, 880, 881, 884, 885, 886, 886, 887, 889,
4420 : 889, 891, 891, 891, 893, 894, 895, 897, 897, 897, 897, 897, 898, 899, 900, 901, 902, 902, 903, 906, 906, 906, 906, 906, 907, 908, 908, 909, 909, 910,
4421 : 912, 914, 916, 916, 916, 916, 917, 918, 918, 918, 918, 918, 918, 919, 923, 923, 923, 923, 923, 923, 924, 924, 925, 926, 926, 926, 928, 928, 928, 929,
4422 : 931, 933, 935, 937, 938, 940, 942, 946, 951, 960, 968, 980, 981, 981, 981, 982, 984, 984, 984, 986, 988, 990, 991, 992, 992, 992, 993, 994, 994, 994,
4423 : 994, 996, 998, 998,1000,1000,1001,1001,1001,1001,1002,1002,1003,1003,1004,1005,1005,1007,1007,1007,1007,1007,1007,1008,1008,1009,1009,1011,1013,1014,
4424 : 1015,1015,1015,1015,1016,1017,1017,1017,1018,1018,1020,1021,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1026,1027,1028,1028,1028,1028,1028,1028,
4425 : 1029,1031,1031,1031,1032,1034,1038,1042,1044,1047,1052,1058,1078,1078,1079,1079,1079,1080,1082,1082};
4426 :
4427 : static const unsigned int ifin3[800]={
4428 : 3, 4, 4, 4, 5, 8, 8, 10, 11, 11, 11, 12, 15, 17, 18, 21, 22, 22, 24, 25, 25, 28, 29, 29, 29, 33, 34, 35, 36, 38,
4429 : 40, 41, 42, 46, 47, 47, 48, 49, 52, 53, 55, 55, 55, 55, 55, 55, 57, 58, 59, 60, 64, 65, 65, 65, 66, 69, 69, 70, 70, 72,
4430 : 72, 73, 76, 77, 79, 80, 82, 82, 84, 85, 86, 89, 91, 91, 92, 92, 94, 95, 96, 96, 96, 96, 99, 101, 101, 103, 104, 106, 106, 107,
4431 : 108, 109, 112, 115, 115, 116, 117, 119, 120, 121, 121, 122, 122, 124, 125, 128, 128, 129, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140,
4432 : 141, 143, 145, 146, 149, 150, 151, 151, 152, 154, 154, 157, 158, 159, 159, 160, 161, 162, 164, 167, 169, 170, 170, 173, 174, 175, 177, 177, 178, 180,
4433 : 182, 184, 184, 184, 184, 185, 185, 186, 189, 190, 191, 192, 192, 194, 195, 195, 197, 199, 199, 199, 199, 202, 202, 202, 203, 203, 206, 207, 209, 213,
4434 : 215, 217, 219, 220, 222, 223, 223, 225, 226, 228, 228, 229, 229, 232, 232, 233, 234, 235, 237, 237, 240, 242, 242, 242, 244, 244, 245, 247, 247, 247,
4435 : 248, 250, 252, 254, 256, 257, 257, 258, 259, 260, 262, 263, 264, 266, 267, 268, 270, 271, 272, 272, 273, 276, 277, 280, 285, 286, 289, 290, 291, 293,
4436 : 298, 299, 299, 302, 303, 305, 305, 305, 308, 309, 311, 311, 313, 315, 318, 319, 319, 320, 322, 322, 323, 327, 327, 327, 328, 330, 330, 332, 333, 334,
4437 : 335, 338, 339, 339, 342, 344, 344, 344, 346, 348, 348, 349, 350, 352, 353, 355, 357, 359, 360, 360, 360, 363, 363, 363, 364, 367, 368, 370, 370, 371,
4438 : 372, 372, 372, 373, 374, 378, 378, 380, 383, 383, 386, 387, 389, 389, 389, 389, 391, 393, 393, 396, 400, 401, 403, 404, 405, 408, 411, 425, 428, 428,
4439 : 429, 430, 432, 434, 435, 438, 441, 441, 445, 445, 445, 446, 447, 447, 447, 450, 452, 453, 455, 456, 459, 460, 460, 461, 463, 464, 464, 464, 465, 468,
4440 : 468, 470, 470, 472, 473, 475, 476, 478, 479, 479, 480, 482, 483, 485, 487, 491, 492, 493, 494, 495, 496, 496, 497, 499, 499, 499, 500, 500, 503, 505,
4441 : 505, 508, 511, 512, 512, 512, 515, 516, 516, 518, 518, 520, 522, 523, 524, 527, 529, 529, 529, 532, 532, 533, 536, 539, 542, 548, 550, 556, 559, 564,
4442 : 573, 579, 579, 579, 582, 583, 585, 586, 587, 588, 591, 592, 592, 593, 595, 596, 596, 598, 598, 598, 599, 600, 602, 605, 607, 607, 607, 608, 609, 609,
4443 : 611, 612, 612, 614, 616, 619, 619, 621, 621, 623, 624, 624, 625, 628, 628, 629, 632, 632, 634, 636, 636, 636, 637, 637, 638, 641, 641, 642, 643, 646,
4444 : 647, 648, 649, 649, 651, 655, 657, 657, 658, 659, 660, 662, 662, 665, 666, 666, 667, 670, 671, 673, 675, 679, 679, 681, 684, 686, 690, 693, 695, 697,
4445 : 700, 704, 707, 716, 729, 729, 731, 731, 734, 734, 735, 737, 739, 739, 741, 741, 742, 742, 743, 746, 746, 747, 748, 749, 751, 752, 753, 754, 757, 757,
4446 : 758, 760, 761, 762, 762, 763, 764, 765, 768, 770, 771, 772, 772, 772, 774, 774, 775, 775, 777, 778, 782, 782, 782, 783, 784, 784, 786, 786, 786, 787,
4447 : 788, 790, 791, 794, 794, 794, 795, 796, 797, 798, 799, 801, 802, 804, 805, 809, 809, 809, 810, 812, 813, 814, 816, 817, 818, 822, 825, 828, 828, 830,
4448 : 832, 834, 837, 839, 843, 849, 861, 872, 873, 874, 876, 876, 876, 876, 877, 878, 878, 879, 879, 880, 880, 881, 884, 885, 886, 886, 887, 889, 889, 891,
4449 : 891, 891, 893, 894, 895, 897, 897, 897, 897, 897, 898, 899, 900, 901, 902, 902, 903, 906, 906, 906, 906, 906, 907, 908, 908, 909, 909, 910, 912, 914,
4450 : 916, 916, 916, 916, 917, 918, 918, 918, 918, 918, 918, 919, 923, 923, 923, 923, 923, 923, 924, 924, 925, 926, 926, 926, 928, 928, 928, 929, 931, 933,
4451 : 935, 937, 938, 940, 942, 946, 951, 960, 968, 980, 981, 981, 981, 982, 984, 984, 984, 986, 988, 990, 991, 992, 992, 992, 993, 994, 994, 994, 994, 996,
4452 : 998, 998,1000,1000,1001,1001,1001,1001,1002,1002,1003,1003,1004,1005,1005,1007,1007,1007,1007,1007,1007,1008,1008,1009,1009,1011,1013,1014,1015,1015,
4453 : 1015,1015,1016,1017,1017,1017,1018,1018,1020,1021,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1026,1027,1028,1028,1028,1028,1028,1028,1029,1031,
4454 : 1031,1031,1032,1034,1038,1042,1044,1047,1052,1058,1078,1078,1079,1079,1079,1080,1082,1082,1082,1082};
4455 :
4456 : static const unsigned int ini3[800]={
4457 : 1, 3, 4, 4, 4, 5, 8, 8, 10, 11, 11, 11, 12, 15, 17, 18, 21, 22, 22, 24, 25, 25, 28, 29, 29, 29, 33, 34, 35, 36,
4458 : 38, 40, 41, 42, 46, 47, 47, 48, 49, 52, 53, 55, 55, 55, 55, 55, 55, 57, 58, 59, 60, 64, 65, 65, 65, 66, 69, 69, 70, 70,
4459 : 72, 72, 73, 76, 77, 79, 80, 82, 82, 84, 85, 86, 89, 91, 91, 92, 92, 94, 95, 96, 96, 96, 96, 99, 101, 101, 103, 104, 106, 106,
4460 : 107, 108, 109, 112, 115, 115, 116, 117, 119, 120, 121, 121, 122, 122, 124, 125, 128, 128, 129, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137, 138,
4461 : 140, 141, 143, 145, 146, 149, 150, 151, 151, 152, 154, 154, 157, 158, 159, 159, 160, 161, 162, 164, 167, 169, 170, 170, 173, 174, 175, 177, 177, 178,
4462 : 180, 182, 184, 184, 184, 184, 185, 185, 186, 189, 190, 191, 192, 192, 194, 195, 195, 197, 199, 199, 199, 199, 202, 202, 202, 203, 203, 206, 207, 209,
4463 : 213, 215, 217, 219, 220, 222, 223, 223, 225, 226, 228, 228, 229, 229, 232, 232, 233, 234, 235, 237, 237, 240, 242, 242, 242, 244, 244, 245, 247, 247,
4464 : 247, 248, 250, 252, 254, 256, 257, 257, 258, 259, 260, 262, 263, 264, 266, 267, 268, 270, 271, 272, 272, 273, 276, 277, 280, 285, 286, 289, 290, 291,
4465 : 293, 298, 299, 299, 302, 303, 305, 305, 305, 308, 309, 311, 311, 313, 315, 318, 319, 319, 320, 322, 322, 323, 327, 327, 327, 328, 330, 330, 332, 333,
4466 : 334, 335, 338, 339, 339, 342, 344, 344, 344, 346, 348, 348, 349, 350, 352, 353, 355, 357, 359, 360, 360, 360, 363, 363, 363, 364, 367, 368, 370, 370,
4467 : 371, 372, 372, 372, 373, 374, 378, 378, 380, 383, 383, 386, 387, 389, 389, 389, 389, 391, 393, 393, 395, 398, 400, 401, 403, 404, 405, 408, 411, 425,
4468 : 428, 428, 429, 432, 434, 435, 438, 441, 441, 445, 445, 445, 446, 447, 447, 447, 450, 452, 453, 455, 456, 459, 460, 460, 461, 463, 464, 464, 464, 465,
4469 : 468, 468, 470, 470, 472, 473, 475, 476, 478, 479, 479, 480, 482, 483, 485, 487, 491, 492, 493, 494, 495, 496, 496, 497, 499, 499, 499, 500, 500, 503,
4470 : 505, 505, 508, 511, 512, 512, 512, 515, 516, 516, 518, 518, 520, 522, 523, 524, 527, 529, 529, 529, 530, 532, 532, 533, 536, 539, 542, 548, 550, 556,
4471 : 559, 564, 573, 579, 579, 581, 583, 585, 586, 587, 588, 591, 592, 592, 593, 595, 596, 596, 598, 598, 598, 599, 600, 602, 605, 607, 607, 607, 608, 609,
4472 : 609, 611, 612, 612, 614, 616, 619, 619, 621, 621, 623, 624, 624, 625, 628, 628, 629, 632, 632, 634, 636, 636, 636, 637, 637, 638, 641, 641, 642, 643,
4473 : 646, 647, 648, 649, 649, 651, 655, 657, 657, 658, 659, 660, 662, 662, 665, 666, 666, 667, 670, 671, 673, 675, 679, 679, 681, 684, 686, 690, 693, 695,
4474 : 697, 700, 704, 707, 716, 729, 729, 731, 731, 734, 734, 735, 737, 739, 739, 741, 741, 742, 742, 743, 746, 746, 747, 748, 749, 751, 752, 753, 754, 757,
4475 : 757, 758, 760, 761, 762, 762, 763, 764, 765, 768, 770, 771, 772, 772, 772, 774, 774, 775, 775, 777, 778, 782, 782, 782, 783, 784, 784, 786, 786, 786,
4476 : 787, 788, 790, 791, 794, 794, 794, 795, 796, 797, 798, 799, 801, 802, 804, 805, 809, 809, 809, 810, 812, 813, 814, 816, 817, 818, 822, 825, 828, 828,
4477 : 830, 832, 834, 837, 839, 843, 849, 861, 872, 873, 874, 876, 876, 876, 876, 877, 878, 878, 879, 879, 880, 880, 881, 884, 885, 886, 886, 887, 889, 889,
4478 : 891, 891, 891, 893, 894, 895, 897, 897, 897, 897, 897, 898, 899, 900, 901, 902, 902, 903, 906, 906, 906, 906, 906, 907, 908, 908, 909, 909, 910, 912,
4479 : 914, 916, 916, 916, 916, 917, 918, 918, 918, 918, 918, 918, 919, 923, 923, 923, 923, 923, 923, 924, 924, 925, 926, 926, 926, 928, 928, 928, 929, 931,
4480 : 933, 935, 937, 938, 940, 942, 946, 951, 960, 968, 980, 981, 981, 981, 982, 984, 984, 984, 986, 988, 990, 991, 992, 992, 992, 993, 994, 994, 994, 994,
4481 : 996, 998, 998,1000,1000,1001,1001,1001,1001,1002,1002,1003,1003,1004,1005,1005,1007,1007,1007,1007,1007,1007,1008,1008,1009,1009,1011,1013,1014,1015,
4482 : 1015,1015,1015,1016,1017,1017,1017,1018,1018,1020,1021,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1026,1027,1028,1028,1028,1028,1028,1028,1029,
4483 : 1031,1031,1031,1032,1034,1038,1042,1044,1047,1052,1058,1078,1078,1079,1079,1079,1080,1082,1082,1082};
4484 :
4485 :
4486 :
4487 : static const double pi=3.141592654;
4488 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
4489 : static const double mu=0.53; //Debyes
4490 : static const double mmol=48.0;
4491 :
4492 : //double q=0.649698902072*pow(tt,1.5);
4493 52910 : double q=0.649698902072*tt*sqrt(tt);
4494 : unsigned int vp;
4495 : unsigned int ini;
4496 : unsigned int ifin;
4497 52910 : std::complex<double> lshape;
4498 52910 : std::complex<double> lshapeacum;
4499 :
4500 52910 : if(nu>1599.9){ // FIXED 15/11/2018 999.9 --> 1599.9
4501 :
4502 0 : return std::complex<double> (0.0,0.0);
4503 :
4504 : }else{
4505 :
4506 52910 : vp = vpIndex(nu);
4507 :
4508 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp];} }
4509 52910 : if(ini>21){ini=ini-20;}else{ini=1;} // NEW PATCH 02 SEP 2016
4510 52910 : if(ifin<1132){ifin=ifin+20;}else{ifin=1151;} // NEW PATCH 02 SEP 2016
4511 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
4512 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
4513 :
4514 52910 : if(ifin==0||ifin<ini){
4515 :
4516 0 : return std::complex<double> (0.0,0.0);
4517 :
4518 : }else{
4519 :
4520 2454282 : for(unsigned int i=ini; i<ifin+1; i++){
4521 :
4522 2401372 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening en GHz/mb 20/6/2018
4523 2401372 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
4524 2401372 : lshapeacum=lshapeacum+lshape;
4525 :
4526 : }
4527 :
4528 52910 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // imaginary part: absorption coefficient in cm^2
4529 105820 : *(0.047992745509/tt); // real part: delay in rad*cm^2
4530 :
4531 52910 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
4532 :
4533 : }
4534 :
4535 : }
4536 :
4537 : }
4538 :
4539 : //////////////////////// Opacity Source Number: 20 /////////////////////////////
4540 :
4541 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o18o(double tt, double pp, double nu){
4542 :
4543 :
4544 : static const double fre[1376]={
4545 : 1.21070, 1.40107, 3.24421, 4.44257, 5.07082, 6.45606, 6.46214, 7.18274, 9.22571, 9.64238, 9.82332, 11.81293, 11.82647, 12.32145, 14.04262, 14.87170, 15.08468, 15.96915,
4546 : 17.14708, 18.02649, 19.26349, 19.34807, 20.07627, 21.08581,21.68351, 22.91616, 25.51893, 26.38841, 26.68980, 27.60790, 28.23913, 28.81666, 29.11111, 30.14474, 30.87775, 32.13823,
4547 : 32.25339, 32.32639, 32.74316, 33.53720, 33.59888, 33.93079,34.10322, 34.61207, 37.60662, 38.26852, 38.42324, 39.44573, 40.07897, 40.55548, 41.06401, 43.27116, 44.38350, 44.59401,
4548 : 44.62618, 46.08673, 46.72318, 47.12931, 47.41900, 48.45840,50.03510, 50.37651, 51.06955, 51.64189, 52.14983, 52.73190, 53.05164, 55.78990, 56.49044, 57.11214, 57.21999, 57.36937,
4549 : 58.22631, 58.62853, 58.90553, 58.98963, 59.51822, 60.80101,61.31357, 61.39819, 62.09401, 63.00827, 63.24591, 64.66193, 64.95043, 68.52572, 69.15639, 69.53537, 70.20760, 70.46912,
4550 : 75.33346, 75.63018, 75.66417, 78.29599, 78.52193, 78.57124,79.68900, 80.20561, 81.15699, 81.36882, 82.27121, 82.66297, 83.55060, 83.85309, 83.92603, 85.09023, 86.71541, 87.71149,
4551 : 88.13735, 90.86654, 92.34901, 93.35448, 93.76880, 94.74870,95.57437, 96.67105, 96.86870, 98.64027, 98.65137, 99.74864,100.20649,103.43355,103.78249,104.02308,104.63445,104.66194,
4552 : 105.77239,106.87446,106.98571,107.20001,107.97867,109.69159,110.35937,110.39784,110.67766,112.79684,113.44836,114.25342,114.33874,114.61949,114.73743,115.77980,116.21822,118.28928,
4553 : 118.98282,119.00652,119.91436,120.82849,121.77770,121.91278,123.19865,123.67594,127.37543,127.45341,130.59339,131.46054,131.51147,131.80246,131.99127,132.30167,132.52231,136.14401,
4554 : 136.61964,137.18896,137.46570,138.07772,138.20511,138.71467,140.45848,140.79993,142.04328,143.80623,144.15361,144.42956,145.42213,146.06243,148.07961,148.26074,148.66918,149.09690,
4555 : 149.53689,150.23368,150.30267,154.58863,155.63695,155.93990,156.33691,156.44072,157.27813,157.64697,158.59949,159.16465,159.22943,159.46644,159.94657,162.86428,165.32427,166.27687,
4556 : 166.71393,166.79824,168.32138,169.11601,169.12907,169.27002,169.57357,169.84888,169.99077,171.99468,172.06613,173.26686,174.77337,175.17621,175.85839,176.40117,178.01611,179.44935,
4557 : 181.02347,181.09009,181.43048,181.91066,182.34172,182.90828,183.81597,184.08711,185.12444,185.79099,187.44265,189.03764,189.71983,192.39247,192.94900,193.11355,194.32362,194.65798,
4558 : 196.42626,196.80010,197.99957,199.20019,201.46688,202.22950,202.38556,203.99797,204.59163,205.50254,205.73039,206.58183,207.33057,208.08472,210.67238,211.16086,213.35477,215.99872,
4559 : 216.88220,217.86269,219.30263,219.30829,220.75569,221.31972,221.67886,221.96171,222.37245,222.43228,223.07527,225.03877,225.97494,226.86866,227.76401,230.34551,232.05756,232.52508,
4560 : 232.61065,232.72369,233.17642,233.35120,234.05609,234.18358,235.08209,236.62098,236.77838,237.58731,237.91819,238.11050,240.50749,240.63652,240.72718,240.88279,243.14828,244.21995,
4561 : 244.35517,244.92848,245.79591,246.82881,247.04143,248.32117,249.85553,249.98649,252.00142,252.47524,252.55800,253.04464,253.70145,253.82768,254.92297,256.05710,256.31106,256.67155,
4562 : 257.76324,258.01642,258.18432,258.63286,259.48289,260.77196,260.85656,261.34863,262.04071,264.48142,264.64912,264.92363,268.18885,268.26990,269.05626,270.07786,270.74416,271.29182,
4563 : 271.88301,272.04176,273.30214,273.87460,274.47497,275.21735,275.87025,277.93454,278.10630,279.45353,279.99077,281.47786,282.06916,282.26109,282.79926,283.11005,284.84589,286.16590,
4564 : 287.00506,287.53565,288.31652,288.32538,288.98279,289.83845,292.51278,293.24555,293.81634,294.83623,295.43284,295.79586,296.07556,296.40526,296.77259,296.84768,296.96538,297.41369,
4565 : 300.55634,302.97931,303.03389,303.93073,307.72839,307.95579,308.85807,309.37899,310.26732,311.72203,313.04314,313.99606,314.51046,316.45409,318.09095,318.50051,319.28458,319.37540,
4566 : 320.36075,320.89596,321.72852,321.81515,323.69618,324.26344,324.84141,326.23545,326.39518,326.75229,327.68991,328.35058,331.78907,332.55927,332.72412,332.81002,334.01651,335.91561,
4567 : 336.23573,337.09179,340.63209,342.09518,342.81981,343.11010,343.25458,343.49694,343.51777,344.03505,344.85343,346.53073,346.59400,347.26703,349.54691,351.47981,352.11836,352.26070,
4568 : 352.71111,353.24723,353.52947,354.47160,355.20874,357.29833,357.29960,357.41797,357.54469,358.16141,360.58411,361.11968,361.80965,362.24997,362.61347,362.87669,364.51324,366.41657,
4569 : 367.32397,367.35722,367.44416,367.53860,367.64723,367.76921,367.90274,368.07446,369.00065,371.25908,371.30493,372.59695,373.03881,373.22172,374.36477,376.14807,376.71115,377.01207,
4570 : 377.50259,379.77293,381.49996,381.95635,382.04049,384.76928,384.78635,384.79948,385.12103,385.29918,385.65111,386.07136,386.57446,386.80212,388.93012,390.04362,391.29440,391.97457,
4571 : 392.11465,393.17538,394.13259,395.91801,395.95097,397.86955,399.49470,401.05800,401.25461,401.59086,402.92698,403.44027,404.36556,406.53582,406.59498,407.56509,408.16451,408.90905,
4572 : 409.01121,409.09286,409.39842,409.41079,410.39895,411.45191,411.55042,413.11147,414.85819,416.24018,416.42041,416.51558,418.92858,420.51165,420.53513,421.83401,423.07628,423.14086,
4573 : 424.85389,425.31568,425.44098,427.10250,427.40775,429.59674,430.07153,431.04376,431.08489,431.93129,432.14601,432.93552,433.03452,433.04109,433.97195,433.98085,435.51484,440.40239,
4574 : 440.51886,440.78997,440.82803,440.85359,442.36363,444.49337,445.02359,445.04384,445.06041,445.49603,449.06842,449.49662,449.50509,449.57428,449.78999,450.49226,452.86621,455.48542,
4575 : 455.51367,455.61197,456.81297,456.89766,456.94716,457.79229,457.95642,458.13239,458.49264,458.49899,459.46966,459.51841,460.71411,460.93572,461.59860,462.19501,462.57085,462.78686,
4576 : 462.89527,462.97203,463.01661,463.10521,463.24839,463.25918,463.50350,463.66841,463.86652,464.37959,465.07661,465.09069,465.13247,465.27112,465.57704,465.99368,466.50100,466.51057,
4577 : 467.16853,467.39917,468.23762,468.30861,468.64011,469.51821,469.52980,470.44808,471.33120,471.56604,472.01682,472.63227,473.61159,473.65823,474.16089,475.23223,476.36350,477.69281,
4578 : 478.28672,478.84256,479.86567,479.88482,480.81084,480.83334,481.83326,482.48197,482.65870,482.96312,482.96762,484.55028,485.07625,485.38736,485.90768,489.32926,489.35618,489.62506,
4579 : 489.75896,490.40345,490.54375,490.83933,490.94956,491.04281,493.02604,493.42750,493.93817,493.94619,495.77279,497.66995,497.69697,497.73528,498.01955,498.48951,501.62334,502.11550,
4580 : 504.18900,504.20181,504.68754,504.69654,507.03933,507.07912,507.38591,507.38907,507.98950,508.12085,508.29298,509.30978,513.51173,513.52871,514.90757,515.28747,516.74694,518.30695,
4581 : 518.31244,518.44813,518.53666,521.67988,521.69490,521.97193,523.14180,523.47093,523.50482,524.13541,526.16012,526.83019,528.45962,528.46806,528.53782,528.54082,528.75390,531.01496,
4582 : 531.69871,531.76344,531.76564,534.36396,534.36882,534.38430,536.60446,537.13850,537.19543,537.64362,537.65409,538.70044,539.11790,540.96923,542.62762,542.63134,544.51878,545.64855,
4583 : 545.65651,547.48854,549.62671,550.44846,550.96046,551.13229,552.68145,552.68693,553.28706,554.45594,555.44790,556.09803,556.09955,556.33799,557.70863,558.14266,558.22028,559.22392,
4584 : 561.67547,561.72999,561.73628,563.06379,563.33596,564.35990,564.38276,566.90311,566.90560,567.64302,567.77946,568.92470,568.92529,569.58232,569.58630,573.11337,576.60902,576.85819,
4585 : 576.86169,577.15570,578.60486,579.99351,580.39191,580.39295,581.85702,582.09052,582.20978,582.57828,582.80127,582.85387,585.26930,585.77550,585.77918,586.13341,586.77421,586.81389,
4586 : 588.41716,591.13620,591.13785,592.40975,592.49106,593.20438,593.20479,593.48680,593.48866,594.48768,594.59683,598.13452,600.98317,600.99333,600.99553,602.15579,602.21239,602.56882,
4587 : 604.64725,604.64795,605.46928,605.82998,606.01564,606.60048,609.10048,609.78446,609.78654,610.27681,610.39657,611.69661,611.95624,615.30837,615.32958,615.33066,617.36698,617.36778,
4588 : 617.44993,617.45021,617.55894,618.92843,620.78631,620.78745,622.16715,622.20531,623.98025,625.09017,625.09152,625.56371,625.93958,628.29531,628.86612,628.86659,628.92592,629.67728,
4589 : 630.02155,631.77535,633.17849,633.59738,633.76086,633.76200,636.12410,638.27739,638.57395,638.79307,639.48580,639.48649,640.58817,640.71147,640.84415,641.22732,641.22762,641.66298,
4590 : 641.66317,642.07819,642.22502,642.52477,643.52080,643.53934,644.44788,644.58149,645.11523,645.39685,645.89917,645.90669,645.99080,645.99468,646.02552,646.12819,646.22268,646.29884,
4591 : 646.48600,646.50248,646.61535,646.67610,646.85773,646.85869,647.02614,647.11674,647.17345,647.20729,647.29790,647.30082,647.39871,647.42761,647.47671,647.51154,647.53391,647.56424,
4592 : 647.57321,647.59497,647.59796,647.61098,647.61173,647.65449,648.03515,649.13717,649.13946,649.15182,649.15263,650.55275,652.16298,652.32191,653.05053,653.05084,653.76962,654.13975,
4593 : 654.48483,654.58846,656.38805,656.75948,657.02914,657.08130,657.70843,657.70903,660.15023,661.26387,663.13956,663.60730,663.60774,663.72916,665.02113,665.07175,665.07186,665.84512,
4594 : 665.84525,667.39255,667.85380,669.04196,669.60675,672.54626,672.55760,673.18126,673.18173,675.10720,677.08732,677.20242,677.20263,677.43809,677.87139,678.40771,678.98427,679.78431,
4595 : 680.29571,681.63063,681.63093,682.06554,682.27075,683.22329,683.82297,684.01971,686.64712,687.69645,687.69673,688.90380,688.90383,689.29147,689.99789,689.99798,690.43686,693.11450,
4596 : 695.11110,696.93648,697.18129,697.18157,697.67762,697.73402,700.37592,701.32367,701.32381,702.69069,702.86925,703.94073,705.13677,705.53068,705.53082,705.58801,705.68098,705.73165,
4597 : 705.85869,706.59435,708.21471,708.37987,711.75551,711.75568,714.12279,714.12285,714.44306,717.84641,719.78800,720.82789,721.15460,721.15475,721.66234,723.87750,724.39538,724.42402,
4598 : 725.41609,725.41618,725.49517,725.85055,726.46394,727.57503,728.64719,729.41157,729.41164,729.48425,730.20257,733.51382,733.98269,734.04019,735.52556,735.78664,735.78674,738.22127,
4599 : 738.22131,740.49217,741.35002,741.40945,742.74841,742.85912,742.85923,744.93222,745.10372,745.10381,747.97617,748.21215,749.48144,749.48149,749.86413,750.21580,750.21582,750.79297,
4600 : 752.10047,752.58302,753.11651,753.27609,753.27612,756.55071,757.83843,759.79193,759.79199,760.33449,761.15853,761.48412,761.53470,762.27689,762.29474,762.29477,764.72410,766.66813,
4601 : 766.66888,768.88878,769.03107,769.03112,769.08833,769.51994,769.65027,770.85405,773.52139,773.52143,774.06070,774.27140,774.27141,777.04769,777.12681,777.12682,777.36452,777.95894,
4602 : 780.13672,780.74968,781.93579,782.48747,783.77339,783.77342,784.22447,784.43941,786.34458,786.34459,788.39610,788.48236,790.47164,790.47467,790.64591,791.46491,792.93893,792.93895,
4603 : 793.43155,794.17310,795.67750,796.07213,796.11832,796.35108,797.53761,797.53763,798.30588,798.30589,800.36014,800.96608,800.96608,801.38744,801.40866,801.91008,803.77677,805.80766,
4604 : 807.73293,807.73295,809.66695,810.09626,810.37211,810.37212,812.67120,812.96025,813.02079,813.40062,814.26482,814.27392,814.75766,815.46083,815.92320,815.95370,816.82946,816.82947,
4605 : 818.12520,818.42552,819.47775,819.48443,819.67566,819.73235,820.04328,820.25948,820.33320,820.48590,820.54776,820.57556,821.10480,821.15862,821.53165,821.53167,821.84791,822.30778,
4606 : 822.32035,822.32035,822.41712,822.59040,823.36365,823.90797,823.98981,824.14808,824.79606,824.79606,824.92696,825.17136,825.26691,825.32901,825.68627,825.94455,826.41465,826.46609,
4607 : 827.10322,827.42861,827.74537,828.24064,828.33656,828.45584,828.87411,828.92314,829.35693,829.49427,829.52073,829.76144,829.78510,829.78530,829.96976,830.11913,830.16065,830.36321,
4608 : 830.48531,830.68638,830.76232,830.94950,830.99525,831.16144,831.18802,831.32994,831.34476,831.46180,831.46967,831.47887,831.56298,831.56692,831.63873,831.64057,831.67239,831.67240,
4609 : 831.69369,831.69449,831.73197,831.73228,831.75717,831.75727,831.77243,831.77246,831.78050,831.78051,834.37862,834.37863,835.04892,835.43977,838.04109,838.06387,838.17139,838.42823,
4610 : 839.19916,840.21170,840.61148,840.63667,840.70470,840.70470,842.08261,843.96024,845.50507,845.50507,846.31583,846.31583,847.43928,848.61872,848.61872,848.95703,849.35994,854.93955,
4611 : 855.59353,855.59354,856.05814,857.07756,857.56647,858.36538,858.36538,860.86160,861.23930,861.79181,861.84200,862.32467,864.54651,864.56657,864.56657,865.60487,866.00194,868.34710,
4612 : 869.45932,869.45932,870.29335,870.29335,870.78002,872.49606,876.68766,879.49804,879.49804,879.76652,882.11104,882.33360,882.33360,883.25925,884.24714,884.45818,884.75270,885.50586,
4613 : 885.60640,885.69812,888.41687,888.41687,890.97350,893.39583,893.39583,894.25391,894.25392,895.89991,898.48648,898.70178,899.71318,902.02728,903.22322,903.32775,903.38753,903.38753,
4614 : 904.98777,905.62572,906.28445,906.28445,906.60719,909.16916,909.35615,912.25730,912.25730,912.85657,913.25405,915.56947,917.31597,917.31597,918.19848,918.19849,919.18324,922.80658,
4615 : 924.33760,925.16960,925.95414,927.26352,927.26353,927.96478,928.76747,928.88596,929.16975,929.16975,930.21909,930.21909,931.55544,932.76419,933.09182,936.08941,936.08941,936.66866,
4616 : 936.70166,939.83106,940.78265,941.22106,941.22107,942.12800,942.12800,942.35934,942.64329,942.69961,945.12794,946.68766,947.50874,950.27954,950.83765,950.83765,950.93544,951.12749,
4617 : 951.12749,952.80471,952.89747,953.07341,953.07341,954.13862,954.13862,956.26938,956.81594,957.65233,959.74004,959.91465,959.91465,962.79858,963.74344,963.79680,965.11238,965.11238,
4618 : 965.44009,965.98141,966.04339,966.04339,967.19873,969.06889,971.58011,972.57255,973.10806,973.21488,974.64913,974.64914,974.98080,974.98080,976.21870,976.58902,976.96461,976.96461,
4619 : 977.09168,977.31514,978.04411,978.04411,979.65849,980.53350,981.06081,983.23500,983.73436,983.73436,984.78731,985.04662,985.34090,986.17747,987.19226,987.50214,988.35245,988.43609,
4620 : 988.59501,988.99113,988.99113,989.62723,989.94554,989.94554,990.98800,991.47382,991.75139,992.40854,992.98404,993.86508,994.55760,994.84591,995.05568,995.28280,995.33640,996.80376,
4621 : 997.05175,998.25096,998.45785,998.45787,998.82477,998.82477,999.26827,999.66418};
4622 :
4623 : static const double flin[1376]={
4624 : .150E+01, .849E+01, .208E+01, .848E+01, .314E+01, .709E+01, .158E+01, .725E+01, .451E+01, .318E+01, .582E+01, .464E+01, .327E+01, .570E+01, .598E+01, .163E+01, .455E+01, .434E+01,
4625 : .590E+01, .707E+01, .104E+01, .138E+01, .303E+01, .307E+01, .728E+01, .319E+01, .830E+01, .121E+01, .129E+01, .242E+01, .113E+01, .177E+01, .137E+01, .829E+01, .436E+01, .475E+01,
4626 : .104E+01, .742E+01, .216E+01, .176E+01, .142E+01, .565E+01, .690E+01, .317E+01, .614E+01, .298E+01, .950E+00, .127E+01, .146E+01, .192E+01, .551E+01, .688E+01, .511E+00, .312E+01,
4627 : .353E+01, .413E+01, .866E+00, .475E+01, .608E+01, .147E+01, .208E+01, .746E+01, .278E+01, .485E+01, .811E+01, .305E+01, .420E+01, .810E+01, .286E+01, .786E+00, .224E+01, .758E+01,
4628 : .547E+01, .145E+01, .295E+01, .279E+01, .276E+01, .628E+01, .671E+01, .117E+01, .239E+01, .283E+01, .145E+01, .255E+01, .270E+01, .670E+01, .531E+01, .713E+00, .492E+01, .141E+01,
4629 : .392E+01, .273E+01, .403E+01, .380E+01, .791E+01, .627E+01, .764E+01, .497E+01, .255E+01, .791E+01, .774E+01, .528E+01, .641E+01, .133E+01, .646E+00, .108E+01, .340E+01, .497E+01,
4630 : .651E+01, .318E+01, .116E+01, .150E+01, .650E+01, .248E+01, .257E+01, .511E+01, .343E+01, .385E+01, .123E+01, .435E+01, .586E+00, .521E+01, .371E+01, .499E+01, .252E+01, .772E+01,
4631 : .652E+01, .772E+01, .789E+01, .509E+01, .602E+01, .781E+01, .231E+01, .999E+00, .645E+01, .408E+01, .675E+01, .408E+01, .518E+01, .631E+01, .110E+01, .100E+01, .240E+01, .532E+00,
4632 : .631E+01, .498E+01, .740E+01, .891E+00, .271E+01, .366E+01, .359E+01, .491E+01, .662E+01, .796E+01, .752E+01, .803E+01, .350E+01, .489E+01, .937E+00, .752E+01, .495E+01, .843E+01,
4633 : .292E+01, .927E+00, .221E+01, .484E+00, .150E+01, .208E+01, .798E+01, .611E+01, .480E+01, .664E+01, .611E+01, .489E+01, .346E+01, .881E+01, .438E+01, .671E+01, .632E+00, .313E+01,
4634 : .540E+01, .470E+01, .758E+00, .480E+01, .817E+01, .404E+01, .732E+01, .469E+01, .909E+01, .732E+01, .328E+01, .334E+01, .201E+01, .442E+00, .201E+01, .468E+01, .863E+00, .185E+01,
4635 : .591E+01, .356E+01, .677E+01, .326E+01, .454E+01, .590E+01, .564E+00, .929E+01, .556E+01, .378E+01, .815E+01, .437E+01, .399E+01, .419E+01, .390E+00, .449E+01, .682E+01, .829E+01,
4636 : .253E+01, .448E+01, .181E+01, .711E+01, .405E+00, .711E+01, .940E+01, .470E+01, .306E+01, .563E+01, .681E+01, .452E+01, .362E+00, .570E+01, .305E+01, .162E+01, .570E+01, .806E+00,
4637 : .832E+01, .832E+01, .637E+01, .944E+01, .307E+01, .428E+01, .171E+00, .159E+01, .832E+01, .683E+01, .427E+01, .373E+00, .691E+01, .691E+01, .164E+00, .284E+01, .700E+01, .942E+01,
4638 : .283E+01, .549E+01, .139E+01, .549E+01, .504E+01, .363E+01, .812E+01, .811E+01, .682E+01, .504E+01, .587E+01, .756E+00, .723E+01, .138E+01, .406E+01, .406E+01, .344E+00, .128E+02,
4639 : .670E+01, .139E+02, .670E+01, .118E+02, .148E+02, .936E+01, .107E+02, .157E+02, .262E+01, .964E+01, .679E+01, .848E+01, .166E+02, .422E+01, .861E+01, .261E+01, .527E+01, .527E+01,
4640 : .762E+01, .116E+01, .173E+02, .791E+01, .791E+01, .668E+01, .719E+01, .115E+01, .673E+01, .579E+01, .179E+02, .384E+01, .926E+01, .812E+01, .384E+01, .559E+01, .711E+00, .497E+01,
4641 : .649E+01, .541E+01, .649E+01, .319E+00, .484E+01, .419E+01, .184E+02, .612E+01, .240E+01, .664E+01, .347E+01, .239E+01, .280E+01, .506E+01, .506E+01, .937E+00, .188E+02, .215E+01,
4642 : .770E+01, .770E+01, .933E+00, .152E+01, .915E+01, .652E+01, .852E+00, .551E+01, .362E+01, .362E+01, .833E+00, .905E+01, .145E+01, .190E+02, .627E+01, .627E+01, .200E+01, .298E+00,
4643 : .217E+01, .739E+01, .672E+00, .251E+01, .217E+01, .619E+01, .299E+01, .484E+01, .484E+01, .716E+00, .192E+02, .580E+01, .621E+01, .902E+01, .714E+00, .749E+01, .749E+01, .345E+01,
4644 : .640E+01, .340E+01, .389E+01, .340E+01, .606E+01, .606E+01, .100E+02, .430E+01, .192E+02, .194E+01, .194E+01, .695E+01, .279E+00, .469E+01, .462E+01, .462E+01, .502E+00, .889E+01,
4645 : .501E+00, .638E+00, .727E+01, .727E+01, .683E+01, .506E+01, .150E+01, .149E+01, .759E+01, .192E+02, .318E+01, .318E+01, .774E+01, .584E+01, .584E+01, .540E+01, .623E+01, .110E+02,
4646 : .172E+01, .172E+01, .669E+01, .571E+01, .440E+01, .440E+01, .877E+01, .302E+00, .263E+00, .302E+00, .191E+02, .706E+01, .706E+01, .167E+01, .857E+01, .163E+01, .600E+01, .295E+01,
4647 : .295E+01, .247E+02, .236E+02, .257E+02, .225E+02, .266E+02, .563E+01, .563E+01, .752E+01, .213E+02, .149E+01, .149E+01, .273E+02, .200E+02, .120E+02, .627E+01, .189E+02, .780E+01,
4648 : .188E+02, .944E+01, .418E+01, .126E+00, .418E+01, .126E+00, .866E+01, .280E+02, .188E+01, .684E+01, .684E+01, .669E+01, .248E+00, .176E+02, .651E+01, .285E+02, .273E+01, .273E+01,
4649 : .179E+01, .165E+02, .700E+01, .541E+01, .541E+01, .806E+01, .806E+01, .127E+01, .127E+01, .103E+02, .187E+02, .288E+02, .673E+01, .153E+02, .130E+02, .211E+01, .826E+01, .396E+01,
4650 : .396E+01, .856E+01, .143E+02, .663E+01, .663E+01, .291E+02, .692E+01, .250E+01, .250E+01, .132E+02, .236E+00, .113E+02, .196E+01, .519E+01, .519E+01, .802E+01, .185E+02, .105E+01,
4651 : .123E+02, .105E+01, .784E+01, .784E+01, .236E+01, .719E+01, .292E+02, .710E+01, .141E+02, .114E+02, .374E+01, .374E+01, .848E+01, .641E+01, .641E+01, .122E+02, .734E+01, .106E+02,
4652 : .904E+01, .228E+01, .228E+01, .292E+02, .725E+01, .977E+01, .262E+01, .496E+01, .496E+01, .182E+02, .210E+01, .836E+00, .836E+00, .225E+00, .763E+01, .763E+01, .903E+01, .151E+02,
4653 : .132E+02, .351E+01, .832E+01, .351E+01, .739E+01, .291E+02, .841E+01, .619E+01, .619E+01, .765E+01, .289E+01, .205E+01, .700E+01, .205E+01, .826E+01, .773E+01, .638E+01, .474E+01,
4654 : .474E+01, .577E+01, .180E+02, .628E+00, .628E+00, .518E+01, .751E+01, .988E+01, .741E+01, .741E+01, .459E+01, .142E+02, .401E+01, .222E+01, .343E+01, .284E+01, .223E+01, .159E+01,
4655 : .883E+00, .883E+00, .159E+01, .223E+01, .215E+00, .283E+01, .342E+01, .289E+02, .399E+01, .456E+01, .513E+01, .329E+01, .329E+01, .771E+01, .162E+02, .569E+01, .357E+02, .346E+02,
4656 : .625E+01, .318E+01, .334E+02, .366E+02, .681E+01, .597E+01, .597E+01, .736E+01, .836E+01, .322E+02, .374E+02, .791E+01, .183E+01, .183E+01, .762E+01, .846E+01, .309E+02, .381E+02,
4657 : .899E+01, .152E+02, .452E+01, .452E+01, .431E+00, .431E+00, .952E+01, .295E+02, .178E+02, .719E+01, .719E+01, .286E+02, .348E+01, .386E+02, .100E+02, .306E+01, .306E+01, .831E+01,
4658 : .282E+02, .172E+02, .105E+02, .231E+01, .771E+01, .108E+02, .852E+01, .206E+00, .575E+01, .575E+01, .110E+02, .161E+01, .161E+01, .831E+01, .268E+02, .163E+02, .115E+02, .380E+01,
4659 : .429E+01, .429E+01, .252E+00, .252E+00, .283E+02, .255E+02, .697E+01, .697E+01, .811E+01, .119E+02, .779E+01, .176E+02, .283E+01, .283E+01, .182E+02, .124E+02, .243E+02, .552E+01,
4660 : .552E+01, .173E+02, .414E+01, .139E+01, .139E+01, .237E+01, .128E+02, .199E+00, .117E+02, .828E+01, .786E+01, .230E+02, .407E+01, .407E+01, .101E+00, .101E+00, .894E+01, .280E+02,
4661 : .131E+02, .675E+01, .675E+01, .449E+01, .250E+01, .250E+01, .174E+02, .219E+02, .881E+01, .261E+01, .261E+01, .183E+02, .193E+02, .135E+02, .530E+01, .530E+01, .792E+01, .117E+01,
4662 : .117E+01, .208E+02, .488E+01, .826E+01, .138E+02, .855E+01, .384E+01, .384E+01, .192E+00, .240E+01, .126E+02, .653E+01, .653E+01, .277E+02, .197E+02, .261E+01, .261E+01, .193E+02,
4663 : .141E+02, .238E+01, .238E+01, .203E+02, .797E+01, .528E+01, .172E+02, .508E+01, .508E+01, .188E+02, .961E+01, .775E+01, .775E+01, .958E+00, .958E+00, .144E+02, .824E+01, .362E+01,
4664 : .362E+01, .179E+02, .572E+01, .204E+02, .630E+01, .630E+01, .277E+01, .277E+01, .912E+01, .801E+01, .186E+00, .273E+02, .147E+02, .216E+01, .216E+01, .170E+02, .213E+02, .136E+02,
4665 : .239E+01, .485E+01, .485E+01, .619E+01, .171E+02, .753E+01, .753E+01, .753E+00, .753E+00, .162E+02, .902E+01, .149E+02, .214E+02, .339E+01, .339E+01, .154E+02, .805E+01, .823E+01,
4666 : .608E+01, .608E+01, .296E+01, .669E+01, .295E+01, .103E+02, .146E+02, .194E+01, .194E+01, .224E+02, .270E+02, .151E+02, .180E+00, .139E+02, .463E+01, .463E+01, .559E+00, .559E+00,
4667 : .731E+01, .731E+01, .146E+02, .723E+01, .170E+02, .132E+02, .224E+02, .808E+01, .235E+01, .317E+01, .317E+01, .126E+02, .153E+02, .822E+01, .586E+01, .586E+01, .315E+01, .119E+02,
4668 : .314E+01, .781E+01, .113E+02, .234E+02, .172E+01, .172E+01, .107E+02, .954E+01, .101E+02, .267E+02, .440E+01, .440E+01, .945E+01, .175E+00, .155E+02, .377E+00, .377E+00, .708E+01,
4669 : .708E+01, .333E+02, .885E+01, .811E+01, .234E+02, .826E+01, .843E+01, .768E+01, .111E+02, .709E+01, .106E+02, .100E+02, .942E+01, .112E+02, .652E+01, .883E+01, .118E+02, .825E+01,
4670 : .767E+01, .594E+01, .124E+02, .709E+01, .536E+01, .651E+01, .594E+01, .478E+01, .536E+01, .130E+02, .478E+01, .420E+01, .420E+01, .360E+01, .360E+01, .299E+01, .299E+01, .235E+01,
4671 : .235E+01, .167E+01, .167E+01, .908E+00, .908E+00, .157E+02, .136E+02, .142E+02, .169E+02, .294E+01, .294E+01, .148E+02, .335E+01, .154E+02, .563E+01, .563E+01, .822E+01, .334E+01,
4672 : .160E+02, .320E+02, .156E+02, .244E+02, .910E+01, .166E+02, .150E+01, .150E+01, .171E+02, .229E+01, .813E+01, .417E+01, .417E+01, .177E+02, .244E+02, .216E+00, .216E+00, .686E+01,
4673 : .686E+01, .307E+02, .182E+02, .170E+00, .981E+01, .158E+02, .188E+02, .272E+01, .272E+01, .355E+01, .167E+02, .541E+01, .541E+01, .168E+02, .193E+02, .353E+01, .822E+01, .255E+02,
4674 : .295E+02, .129E+01, .129E+01, .101E+02, .106E+02, .119E+02, .198E+02, .815E+01, .255E+02, .395E+01, .395E+01, .839E-01, .839E-01, .159E+02, .664E+01, .664E+01, .202E+02, .283E+02,
4675 : .114E+02, .166E+00, .249E+01, .249E+01, .375E+01, .207E+02, .219E+01, .518E+01, .518E+01, .265E+02, .372E+01, .822E+01, .816E+01, .108E+01, .108E+01, .167E+02, .272E+02, .211E+02,
4676 : .178E+02, .160E+02, .122E+02, .265E+02, .372E+01, .372E+01, .641E+01, .641E+01, .215E+02, .262E+02, .394E+01, .128E+02, .227E+01, .227E+01, .131E+02, .218E+02, .162E+00, .161E+02,
4677 : .496E+01, .496E+01, .275E+02, .107E+02, .818E+01, .390E+01, .822E+01, .879E+00, .879E+00, .253E+02, .275E+02, .167E+02, .189E+02, .222E+02, .140E+02, .350E+01, .350E+01, .619E+01,
4678 : .619E+01, .243E+02, .414E+01, .208E+01, .162E+02, .350E+01, .350E+01, .225E+02, .205E+01, .205E+01, .819E+01, .285E+02, .473E+01, .473E+01, .150E+02, .742E+01, .742E+01, .235E+02,
4679 : .285E+02, .407E+01, .823E+01, .686E+00, .686E+00, .228E+02, .137E+02, .327E+01, .327E+01, .227E+02, .167E+02, .200E+02, .162E+02, .433E+01, .596E+01, .596E+01, .160E+02, .359E+01,
4680 : .359E+01, .231E+02, .184E+01, .184E+01, .219E+02, .114E+02, .820E+01, .295E+02, .451E+01, .451E+01, .295E+02, .719E+01, .719E+01, .211E+02, .503E+00, .503E+00, .823E+01, .423E+01,
4681 : .170E+02, .163E+02, .233E+02, .453E+01, .305E+01, .305E+01, .204E+02, .196E+01, .574E+01, .574E+01, .210E+02, .166E+02, .373E+01, .373E+01, .196E+02, .821E+01, .162E+01, .162E+01,
4682 : .305E+02, .147E+02, .235E+02, .305E+02, .180E+02, .189E+02, .428E+01, .428E+01, .697E+01, .697E+01, .163E+02, .336E+00, .336E+00, .183E+02, .824E+01, .472E+01, .438E+01, .176E+02,
4683 : .283E+01, .283E+01, .169E+02, .237E+02, .551E+01, .551E+01, .191E+02, .121E+02, .163E+02, .822E+01, .389E+01, .389E+01, .221E+02, .166E+02, .156E+02, .315E+02, .141E+01, .141E+01,
4684 : .316E+02, .150E+02, .200E+02, .207E+02, .194E+02, .213E+02, .188E+02, .220E+02, .164E+02, .491E+01, .181E+02, .144E+02, .226E+02, .175E+02, .406E+01, .406E+01, .169E+02, .232E+02,
4685 : .675E+01, .675E+01, .138E+02, .162E+02, .156E+02, .239E+02, .132E+02, .150E+02, .189E+00, .189E+00, .144E+02, .239E+02, .824E+01, .126E+02, .138E+02, .245E+02, .132E+02, .120E+02,
4686 : .126E+02, .114E+02, .120E+02, .108E+02, .114E+02, .251E+02, .108E+02, .102E+02, .102E+02, .961E+01, .182E+01, .157E+02, .201E+02, .961E+01, .903E+01, .451E+01, .903E+01, .845E+01,
4687 : .845E+01, .788E+01, .788E+01, .730E+01, .730E+01, .672E+01, .672E+01, .614E+01, .614E+01, .556E+01, .556E+01, .257E+02, .497E+01, .497E+01, .436E+01, .436E+01, .261E+01, .261E+01,
4688 : .375E+01, .375E+01, .311E+01, .311E+01, .244E+01, .244E+01, .172E+01, .172E+01, .924E+00, .924E+00, .529E+01, .529E+01, .262E+02, .823E+01, .407E+01, .407E+01, .511E+01, .326E+02,
4689 : .268E+02, .326E+02, .232E+02, .164E+02, .120E+01, .120E+01, .166E+02, .273E+02, .383E+01, .383E+01, .652E+01, .652E+01, .212E+02, .719E-01, .719E-01, .824E+01, .279E+02, .531E+01,
4690 : .239E+01, .239E+01, .128E+02, .462E+01, .824E+01, .506E+01, .506E+01, .336E+02, .164E+02, .426E+01, .426E+01, .336E+02, .167E+02, .100E+01, .100E+01, .222E+02, .243E+02, .166E+02,
4691 : .361E+01, .361E+01, .630E+01, .630E+01, .551E+01, .825E+01, .168E+01, .217E+01, .217E+01, .824E+01, .165E+02, .484E+01, .484E+01, .346E+02, .233E+02, .346E+02, .470E+01, .445E+01,
4692 : .445E+01, .573E+01, .812E+00, .812E+00, .253E+02, .338E+01, .338E+01, .607E+01, .607E+01, .825E+01, .178E+02, .136E+02, .596E+01, .825E+01, .165E+02, .243E+02, .195E+01, .195E+01,
4693 : .261E-04, .356E+02, .461E+01, .461E+01, .356E+02, .465E+01, .465E+01, .629E+00, .629E+00, .621E+01, .477E+01, .264E+02, .316E+01, .316E+01, .584E+01, .584E+01, .826E+01, .254E+02,
4694 : .825E+01, .647E+01, .155E+01, .174E+01, .174E+01, .366E+02, .366E+02, .137E-03, .708E+01, .708E+01, .439E+01, .439E+01, .188E+02, .485E+01, .485E+01, .457E+00, .457E+00, .284E+02,
4695 : .675E+01, .274E+02, .145E+02, .294E+01, .294E+01, .562E+01, .562E+01, .826E+01, .264E+02, .480E+01, .276E+02, .826E+01, .706E+01, .376E+02, .450E+01, .450E+01, .376E+02, .153E+01,
4696 : .153E+01, .269E+02, .438E-03, .685E+01, .685E+01, .416E+01, .416E+01, .505E+01, .504E+01, .740E+01, .261E+02, .151E+00, .151E+00, .275E+02, .199E+02, .285E+02, .272E+01, .272E+01,
4697 : .827E+01, .254E+02, .539E+01, .539E+01, .776E+01, .826E+01, .247E+02, .386E+02, .386E+02, .481E+01, .457E+01, .457E+01, .133E+01, .133E+01, .816E+01, .240E+02, .663E+01, .663E+01,
4698 : .109E-02, .141E+01, .394E+01, .394E+01, .524E+01, .524E+01, .233E+02, .285E+02, .839E-01, .839E-01, .859E+01, .226E+02, .280E+02, .273E+02, .266E+02, .295E+02, .259E+02, .827E+01,
4699 : .220E+02, .250E+01, .250E+01, .253E+02, .517E+01, .517E+01, .246E+02, .827E+01, .213E+02, .239E+02, .906E+01, .232E+02, .207E+02, .396E+02, .211E+02, .396E+02, .226E+02, .219E+02,
4700 : .200E+02, .213E+02, .469E+01, .469E+01, .113E+01, .113E+01, .194E+02, .206E+02};
4701 :
4702 : static const double el[1376]={
4703 : 810.942, 1561.533, 69.044, 1561.387, 280.556, 1097.290, 11.090, 1144.555, 472.557, 305.037, 752.528, 504.033, 215.032, 714.508, 792.025, 768.886, 443.075, 413.633,
4704 : 752.976, 1096.834, 6.875, 853.271, 194.636, 256.787, 1144.558, 330.399, 1505.474, 193.332, 173.518, 80.574, 214.244, 728.016, 154.802, 1505.252, 441.717, 536.156,
4705 : 236.251, 1192.647, 15.527, 57.289, 137.186, 713.570, 1050.162, 356.937, 832.094, 234.062, 259.354, 896.805, 120.575, 688.252, 676.528, 1049.822, 3.468, 384.658,
4706 : 235.656, 384.686, 283.456, 472.836, 791.922, 105.172, 649.797, 1192.680, 174.847, 569.519, 1450.395, 413.667, 411.952, 1450.320, 212.487, 308.757, 612.452, 1241.944,
4707 : 675.703, 90.784, 443.771, 93.067, 21.041, 873.380, 1004.255, 941.351, 576.317, 475.074, 46.762, 541.394, 507.580, 1003.908, 639.678, 335.060, 604.028, 77.515,
4708 : 356.981, 192.067, 383.366, 257.439, 1396.628, 832.026, 1241.872, 503.747, 156.202, 1396.492, 1292.348, 639.029, 915.887, 65.372, 362.469, 986.913, 27.735, 639.687,
4709 : 959.466, 106.735, 37.364, 1.116, 959.196, 3.449, 172.809, 603.957, 6.847, 355.862, 54.261, 11.409, 390.887, 17.132, 330.415, 676.503, 1428.674, 1343.873,
4710 : 959.519, 1343.766, 1343.861, 603.551, 23.913, 1292.231, 138.799, 1033.597, 873.284, 280.282, 31.851, 35.512, 535.908, 915.894, 44.389, .039, 154.618, 420.418,
4711 : 915.685, 714.584, 40.940, 29.096, 1372.651, 329.544, 121.582, 569.459, 1004.282, 51.178, 1292.327, 1396.586, 304.983, 569.069, 35.460, 1292.245, 753.735, 62.461,
4712 : 1317.838, 1081.410, 137.497, 451.068, 1.162, 122.537, 1343.753, 873.437, 44.377, 915.693, 873.276, 794.163, 304.315, 74.884, 304.387, 1050.179, 22.059, 1264.238,
4713 : 569.117, 536.184, 27.680, 835.775, 1450.424, 137.510, 1241.891, 535.886, 88.345, 1241.828, 280.782,1211.855, 121.552, 482.740, 3.417, 878.577, 1130.159, 107.513,
4714 : 832.092, 1160.588, 1097.315, 280.277, 922.576, 831.969, 21.055, 102.942, 54.335, 1110.539, 1396.435, 967.777, 1061.805, 1014.186, 16.153, 504.027, 959.249,1505.480,
4715 : 6.805, 503.802, 106.785, 1192.662, 515.542, 1192.614, 118.671, 329.558, 257.808, 603.476, 1145.597, 154.620, 15.487, 791.959, 257.432, 93.624, 791.866, 1180.050,
4716 : 1617.565, 1617.547, 65.389, 135.432, 11.423, 472.986, 11.479, 93.101, 1450.273, 1195.029, 472.818, 549.377, 1144.641, 1144.605, 11.081, 235.957, 1003.952, 153.325,
4717 : 235.682, 753.035, 80.966, 752.966, 355.896, 17.069, 1561.552, 1561.538, 1245.719, 172.816, 639.085,1231.091, 77.546, 80.603, 443.160, 443.036, 584.354, 163.631,
4718 : 1097.627, 183.422, 1097.600, 144.991, 204.358, 172.251, 127.508, 226.434, 215.227, 111.088, 1297.472, 1505.263, 249.648, 23.941, 95.937, 215.030, 715.221, 715.169,
4719 : 81.863, 69.435, 273.894, 1506.644, 1506.634, 68.972, 1049.799, 69.192, 1350.496, 57.273, 299.369, 414.445, 192.214, 90.808, 414.355, 192.101, 1283.089, 46.671,
4720 : 1051.819, 383.307, 1051.799, 620.277, 31.836, 37.374, 325.870, 675.747, 195.713, 1404.696, 29.088, 195.575, 22.018, 678.514, 678.476, 59.027, 353.495, 16.169,
4721 : 1452.941, 1452.933, 58.872, 11.445, 213.216,1460.080, 7.949, 40.950, 386.942, 386.877, 7.751, 105.180, 11.051, 382.142, 1007.216, 1007.201, 15.518, 657.355,
4722 : 177.314, 1096.789, 1336.151, 21.051, 177.219, 212.478, 27.750, 643.014, 642.987, 49.838, 411.909, 411.892, 51.179, 235.363, 49.745, 1400.341, 1400.336, 35.514,
4723 : 713.563, 360.547, 44.344, 360.501, 963.719, 963.708, 120.565, 54.340, 442.797, 160.127, 160.064, 62.418, 695.493, 65.400, 608.621, 608.601, 41.764, 258.559,
4724 : 41.712, 1390.386, 1348.946, 1348.942, 234.052, 77.525, 5.597, 5.530, 1144.922, 474.705, 335.360, 335.328, 74.863, 921.326, 921.318, 90.814, 441.656, 137.165,
4725 : 144.150, 144.108, 752.538, 105.168, 575.433, 575.419, 282.812, 34.901, 734.700, 34.875, 507.736, 1298.555, 1298.552, 7.920, 88.410, 7.717, 120.587, 311.280,
4726 : 311.258, 595.432, 559.319, 632.774, 524.338, 671.138, 880.138, 880.132, 256.726, 490.396, 129.180, 129.154, 710.621, 457.700, 154.783, 137.170, 541.791, 1194.200,
4727 : 426.156, 102.955, 543.350, 29.246, 543.341, 29.235, 308.228, 751.220, 11.476, 1249.467, 1249.465, 472.503, 774.982, 395.673, 154.818, 792.932, 288.405, 288.391,
4728 : 11.067, 366.458, 792.675, 840.153, 840.149, 1683.018, 1683.017, 115.517, 115.501, 118.693, 576.976, 835.656, 173.532, 338.321, 173.518, 16.165, 280.505, 512.472,
4729 : 512.465, 334.615, 311.469, 1201.383, 1201.381, 879.589, 193.311, 266.636, 266.626, 285.710, 816.346, 135.421, 15.477, 801.173, 801.170, 1244.723, 613.095, 102.859,
4730 : 261.154, 102.850, 1627.035, 1627.035, 22.087, 504.537, 924.532, 214.257, 193.373, 237.807, 482.698, 482.693, 362.078, 1154.501, 1154.500, 153.238, 833.878, 215.575,
4731 : 305.493, 246.071, 246.065, 970.485, 236.270, 194.565, 29.142, 763.496, 763.494, 650.353, 21.043, 91.405, 91.400, 858.800, 1572.155, 1572.154, 174.781, 214.246,
4732 : 172.240, 454.027, 156.226, 454.024, 259.352, 1017.550, 390.624, 1108.823, 1108.822, 138.801, 37.330, 226.609, 122.509, 226.605, 1296.295, 537.661, 107.447, 726.822,
4733 : 726.820, 93.615, 688.658, 81.154, 81.151, 80.911, 283.503, 331.494, 1518.477, 1518.477, 69.430, 192.228, 59.070, 27.760, 49.828, 41.799, 34.881, 29.171,
4734 : 24.666, 24.662, 29.160, 34.856, 902.249, 41.748, 49.736, 1065.729, 58.919, 69.194, 80.561, 426.560, 426.558, 876.352, 236.237, 93.117, 1241.892, 1189.392,
4735 : 106.760, 46.749, 1138.109, 1295.406, 121.590, 1064.248, 1064.247, 137.503, 420.160, 1087.949,1350.028, 154.598, 208.251, 208.249, 308.725, 172.773, 1038.919, 1405.755,
4736 : 192.026, 213.200, 691.351, 691.350, 72.005, 72.004, 212.556, 991.025, 728.016, 1466.002, 1466.002, 1114.825, 57.300, 1462.585, 234.060, 400.296, 400.295, 571.982,
4737 : 944.275, 259.344, 256.738, 35.423, 335.018, 358.614, 1349.018, 946.799, 1020.775, 1020.774, 280.486, 191.095, 191.094, 450.892, 898.679, 235.356, 305.405, 68.982,
4738 : 657.082, 657.082, 63.958, 63.958, 1165.045, 854.243, 1414.629, 1414.628, 919.900, 331.493, 362.385, 768.436, 375.134, 375.134, 283.467, 358.549, 810.979, 978.504,
4739 : 978.504, 258.597, 81.893, 175.142, 175.141, 44.328, 386.772, 992.456, 386.854, 482.624, 390.927, 768.895, 623.916, 623.916, 57.113, 57.112, 607.302, 1216.394,
4740 : 416.161, 1364.358, 1364.358, 95.933, 21.233, 21.232, 809.925, 728.000, 1402.897, 351.075, 351.075, 282.824, 308.704, 446.615, 937.336, 937.336, 420.445, 160.191,
4741 : 160.190, 688.302, 111.100, 515.360, 478.136, 964.527, 591.853, 591.853, 1039.124, 54.268, 416.120, 1315.189, 1315.189, 1268.677, 649.711, 24.591, 24.587, 308.139,
4742 : 510.721, 328.218, 328.218, 335.054, 451.041, 127.492, 852.491, 897.270, 897.270, 612.434, 643.828, 1757.373, 1757.373, 146.541, 146.541, 544.472, 549.304, 560.992,
4743 : 560.991, 576.277, 145.008, 334.541, 1267.222, 1267.222, 29.152, 29.140, 1457.935, 482.717, 1086.906, 1322.004, 579.288, 306.463, 306.463, 541.346, 362.415, 446.613,
4744 : 65.336, 858.406, 858.406, 163.645, 896.041, 1701.406, 1701.406, 133.893, 133.893, 507.645,1010.340, 615.170, 362.033, 531.232, 531.232, 475.077, 515.574, 584.257,
4745 : 1220.457, 1220.457, 34.917, 183.400, 34.891, 681.463, 443.743, 285.910, 285.910, 390.886, 1376.481, 652.118, 1135.706, 413.645, 820.744, 820.744, 122.546, 122.546,
4746 : 1646.642, 1646.642, 478.137, 204.371, 940.682, 384.682, 390.615, 549.413, 77.528, 502.675, 502.675, 356.952, 690.234, 620.221, 1174.694, 1174.694, 41.791, 330.355,
4747 : 41.738, 226.454, 304.986, 420.466, 266.458, 266.458, 280.745, 1057.341, 257.727, 1431.917, 784.183, 784.183, 235.930, 1185.625, 729.318, 112.200, 112.200, 1592.979,
4748 : 1592.979, 1485.859, 215.252, 584.337, 420.190, 195.689, 249.645, 177.339, 720.213, 160.100, 280.275, 257.375, 235.671, 304.371, 144.069, 215.064, 329.560, 195.556,
4749 : 177.247, 129.246, 355.841, 160.038, 115.429, 144.029, 129.221, 102.917, 115.414, 383.313, 102.908, 91.408, 91.403, 81.102, 81.100, 71.998, 71.997, 63.995,
4750 : 63.995, 57.094, 57.094, 51.393, 51.393, 510.691, 411.873, 441.620, 986.420, 475.219, 475.219, 472.552, 49.875, 504.567, 1130.132, 1130.132, 657.297, 49.780,
4751 : 537.663, 1428.658, 769.572, 451.054, 273.941, 571.938, 248.208, 248.208, 607.291, 90.737, 620.347, 748.725, 748.725, 643.819, 450.857, 103.054, 103.054, 1540.517,
4752 : 1540.517, 1372.643, 681.521, 1236.564, 299.337, 810.895, 720.195, 448.965, 448.965, 59.072, 544.477, 1086.772, 1086.772, 1033.160, 760.140, 58.914, 695.486, 482.748,
4753 : 1317.823, 230.959, 230.959, 1105.338, 325.828, 760.083, 801.054, 657.344, 482.618, 714.368, 714.368, 95.110, 95.110, 853.291, 1489.157, 1489.157, 843.136, 1264.207,
4754 : 353.412, 1288.624, 423.812, 423.812, 69.388, 886.386, 105.159, 1044.513, 1044.513, 515.547, 69.139, 734.687, 695.530, 215.011, 215.011, 1081.008, 1211.804, 930.701,
4755 : 579.295, 896.760, 382.182, 515.374, 681.312, 681.312, 1438.898, 1438.898, 976.083, 1160.620, 80.926, 801.076, 399.761, 399.761, 411.936, 1022.530, 1341.705, 941.304,
4756 : 1003.356, 1003.356, 549.352, 1154.535, 734.706, 80.552, 775.001, 200.164, 200.164, 1110.561, 549.226, 1129.867, 615.144, 1070.142, 442.770, 649.258, 649.258, 1389.841,
4757 : 1389.841, 1061.732, 93.591, 120.588, 986.923, 46.818, 46.818, 1118.818, 376.910, 376.910, 774.972, 584.261, 963.400, 963.400, 474.682, 1840.565, 1840.565, 1014.137,
4758 : 584.174, 93.051, 816.325, 186.418, 186.418, 1168.560, 843.199, 618.405, 618.405, 967.779, 1179.839, 652.123, 1033.621, 107.485, 1341.885, 1341.885, 507.768, 51.374,
4759 : 51.374, 1219.468, 355.161, 355.161, 922.558, 1204.937, 816.331, 620.273, 924.545, 924.545, 620.219, 1784.609, 1784.609, 878.576, 173.872, 173.872, 858.761, 106.732,
4760 : 541.828, 1081.298, 1271.341, 122.515, 588.653, 588.653, 835.731, 137.121, 1295.129, 1295.129, 690.231, 1230.827, 57.131, 57.131, 794.123, 858.783, 334.613, 334.613,
4761 : 657.389, 886.353, 1324.381, 657.262, 576.960, 753.749, 886.792, 886.792, 1729.855, 1729.855, 1130.156, 162.427, 162.427, 714.507, 902.206, 138.782, 121.592, 676.494,
4762 : 560.102, 560.102, 639.609, 1378.488, 1249.375, 1249.375, 613.165, 1256.351, 603.948, 902.230, 63.988, 63.988, 729.365, 1282.931, 569.509, 695.507, 315.165, 315.165,
4763 : 695.403, 536.088, 833.938, 876.338, 792.628, 919.826, 752.511, 964.500, 1180.097, 156.189, 713.586, 503.985, 1010.360, 675.657, 850.239, 850.239, 639.024, 1057.302,
4764 : 1676.301, 1676.301, 472.997, 603.488, 569.051, 1105.325, 443.121, 535.814, 152.082, 152.082, 503.776, 1433.664, 946.760, 414.457, 472.840, 1154.527, 443.005, 386.902,
4765 : 414.372, 360.556, 386.841, 335.317, 360.512, 1204.907, 335.286, 311.284, 311.263, 288.357, 154.755, 930.644, 650.343, 288.343, 266.634, 137.527, 266.625, 246.015,
4766 : 246.009, 226.599, 226.596, 208.287, 208.285, 191.077, 191.075, 175.069, 175.068, 160.262, 160.262, 1256.361, 146.457, 146.457, 133.954, 133.954, 532.652, 532.652,
4767 : 122.451, 122.451, 112.249, 112.249, 103.048, 103.048, 95.047, 95.047, 88.247, 88.247, 1204.922, 1204.922, 1308.890, 946.771, 71.946, 71.945, 174.740, 734.728,
4768 : 1362.591, 734.642, 769.623, 1231.022, 296.818, 296.818, 1336.052, 1417.362, 814.788, 814.788,1623.849, 1623.849, 688.695, 142.938, 142.938, 992.422, 1473.302, 194.634,
4769 : 506.403, 506.403, 1308.881, 154.532, 992.408, 1161.470, 1161.470, 774.950, 1283.032, 81.105, 81.103, 774.980, 976.073, 279.672, 279.672, 728.022, 810.903, 1390.190,
4770 : 780.537, 780.537, 1572.497, 1572.497, 215.574, 1039.091, 173.490, 481.255, 481.255, 1039.142, 1336.129, 1119.219, 1119.219, 816.374, 768.427, 816.317, 172.702, 91.466,
4771 : 91.461, 237.757, 263.726, 263.726, 853.304, 747.387, 747.387, 1522.246, 1522.246, 1086.867, 1022.543, 1362.632, 261.084, 1086.873, 1390.315, 809.910, 457.207, 457.207,
4772 : 3.431, 858.800, 1078.168, 1078.168, 858.753, 102.830, 102.821, 248.881, 248.881, 285.653, 192.033, 896.722, 715.438, 715.438, 1473.196, 1473.196, 1135.649, 852.475,
4773 : 1135.701, 311.461, 193.323, 434.361, 434.361, 902.227, 902.188, 6.783, 1932.369, 1932.369, 1038.119, 1038.119, 1070.154, 115.496, 115.481, 235.137, 235.137, 1516.609,
4774 : 338.307, 941.257, 1417.411, 684.590, 684.590, 1425.247, 1425.247, 1185.535, 896.022, 212.519,1460.102, 1185.628, 366.388, 946.755, 82.528, 82.528, 946.823, 412.614,
4775 : 412.614, 1404.634, 11.329, 1876.521, 1876.521, 999.370, 999.370, 129.167, 129.141, 395.701, 1350.501, 222.592, 222.592, 940.654, 1118.808, 986.906, 654.843, 654.843,
4776 : 1236.527, 1297.501, 1378.498, 1378.498, 426.142, 1236.552, 1245.632, 992.384, 992.458, 234.053, 88.184, 88.184, 392.069, 392.069, 457.709, 1194.991, 1821.773, 1821.773,
4777 : 17.067, 214.256, 961.621, 961.621, 144.044, 144.002, 1145.576, 986.372, 211.148, 211.148, 490.397, 1097.285, 1514.071, 1457.831, 1402.882, 1033.567,1349.026, 1288.522,
4778 : 1050.215, 626.296, 626.296, 1296.265,1332.850, 1332.850, 1244.700, 1288.576, 1004.263, 1194.231, 524.304, 1144.861, 959.428, 1039.114, 1168.604, 1039.093, 1096.791, 1049.720,
4779 : 915.808, 1003.851, 95.041, 95.041, 372.623, 372.623, 873.402, 959.183};
4780 :
4781 :
4782 : static const double texpO3[1376] ={
4783 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,
4784 : 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.78,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.78,0.79,0.76,0.76,0.76,0.77, 0.76,0.76,0.78,0.76,0.76,0.76,0.79,0.76,0.78,0.76,0.76,0.76,
4785 : 0.76,0.77,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76, 0.76,0.76,0.76,0.76,0.76,0.77,0.79,0.78,0.79,0.78,0.76,0.76, 0.76,0.80,0.78,0.76,0.76,0.81,0.76,0.77,0.76,0.76,0.77,0.81,
4786 : 0.76,0.77,0.77,0.76,0.76,0.76,0.78,0.80,0.76,0.79,0.77,0.76, 0.76,0.76,0.79,0.81,0.76,0.76,0.76,0.76,0.76,0.80,0.76,0.76, 0.77,0.76,0.76,0.79,0.77,0.77,0.80,0.76,0.77,0.76,0.78,0.76,
4787 : 0.76,0.81,0.77,0.76,0.76,0.79,0.77,0.80,0.76,0.77,0.76,0.76, 0.79,0.80,0.77,0.76,0.82,0.77,0.76,0.76,0.77,0.76,0.76,0.77, 0.76,0.76,0.77,0.76,0.76,0.82,0.79,0.77,0.79,0.76,0.76,0.76,
4788 : 0.80,0.80,0.76,0.76,0.76,0.78,0.76,0.80,0.77,0.76,0.78,0.76, 0.77,0.76,0.76,0.76,0.76,0.77,0.82,0.76,0.76,0.78,0.76,0.82, 0.76,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.80,0.83,0.76,
4789 : 0.76,0.80,0.77,0.76,0.76,0.76,0.77,0.79,0.78,0.81,0.76,0.78, 0.76,0.81,0.78,0.77,0.81,0.76,0.76,0.76,0.77,0.78,0.76,0.79, 0.76,0.77,0.76,0.76,0.79,0.76,0.76,0.76,0.76,0.78,0.83,0.78,
4790 : 0.78,0.81,0.77,0.81,0.79,0.76,0.76,0.76,0.76,0.78,0.81,0.76, 0.77,0.77,0.79,0.79,0.76,0.78,0.76,0.78,0.76,0.78,0.78,0.78, 0.77,0.78,0.78,0.77,0.76,0.76,0.78,0.77,0.77,0.78,0.81,0.81,
4791 : 0.77,0.77,0.79,0.76,0.76,0.77,0.83,0.77,0.76,0.77,0.79,0.79, 0.78,0.77,0.79,0.78,0.76,0.77,0.83,0.79,0.83,0.76,0.77,0.77, 0.79,0.81,0.78,0.76,0.76,0.78,0.76,0.81,0.81,0.77,0.79,0.76,
4792 : 0.76,0.76,0.77,0.76,0.78,0.76,0.76,0.77,0.79,0.79,0.76,0.77, 0.76,0.79,0.82,0.82,0.76,0.76,0.78,0.83,0.76,0.76,0.78,0.78, 0.76,0.80,0.80,0.77,0.79,0.79,0.77,0.78,0.77,0.76,0.76,0.77,
4793 : 0.81,0.79,0.77,0.79,0.82,0.82,0.78,0.77,0.80,0.77,0.77,0.77, 0.76,0.77,0.80,0.80,0.76,0.79,0.76,0.76,0.76,0.76,0.78,0.77, 0.76,0.76,0.84,0.80,0.79,0.79,0.77,0.82,0.82,0.77,0.80,0.78,
4794 : 0.77,0.77,0.82,0.77,0.80,0.80,0.79,0.76,0.76,0.76,0.80,0.76, 0.76,0.76,0.77,0.76,0.77,0.78,0.78,0.81,0.80,0.81,0.80,0.82, 0.82,0.82,0.79,0.80,0.77,0.77,0.81,0.80,0.78,0.78,0.80,0.84,
4795 : 0.79,0.77,0.80,0.76,0.80,0.76,0.79,0.82,0.76,0.76,0.76,0.80, 0.76,0.79,0.78,0.82,0.78,0.78,0.76,0.79,0.82,0.81,0.81,0.76, 0.76,0.77,0.77,0.78,0.81,0.82,0.78,0.79,0.78,0.76,0.79,0.79,
4796 : 0.79,0.79,0.79,0.76,0.76,0.82,0.78,0.78,0.78,0.79,0.76,0.78, 0.76,0.81,0.81,0.76,0.81,0.77,0.78,0.77,0.76,0.76,0.76,0.80, 0.83,0.78,0.78,0.78,0.79,0.79,0.79,0.83,0.83,0.78,0.82,0.78,
4797 : 0.79,0.78,0.78,0.83,0.78,0.78,0.77,0.81,0.81,0.81,0.76,0.77, 0.77,0.76,0.76,0.76,0.78,0.78,0.78,0.79,0.78,0.79,0.79,0.83, 0.79,0.83,0.83,0.77,0.77,0.78,0.77,0.78,0.76,0.80,0.77,0.81,
4798 : 0.81,0.77,0.81,0.77,0.77,0.77,0.79,0.79,0.76,0.76,0.77,0.78, 0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.77,0.83,0.77,0.77,0.77,0.79,0.79,0.82,0.79,0.77,0.76,0.84,
4799 : 0.77,0.77,0.84,0.76,0.77,0.82,0.82,0.77,0.80,0.83,0.76,0.78, 0.78,0.78,0.79,0.78,0.83,0.76,0.78,0.78,0.80,0.80,0.77,0.77, 0.78,0.83,0.82,0.76,0.76,0.84,0.77,0.76,0.78,0.79,0.79,0.81,
4800 : 0.83,0.79,0.78,0.77,0.79,0.79,0.76,0.76,0.82,0.82,0.79,0.77, 0.77,0.80,0.82,0.79,0.79,0.77,0.80,0.80,0.76,0.76,0.84,0.82, 0.76,0.76,0.83,0.79,0.79,0.82,0.79,0.79,0.79,0.79,0.82,0.82,
4801 : 0.82,0.79,0.77,0.77,0.77,0.77,0.79,0.76,0.79,0.80,0.79,0.82, 0.80,0.80,0.76,0.76,0.81,0.76,0.79,0.76,0.76,0.77,0.77,0.76, 0.82,0.81,0.76,0.78,0.78,0.79,0.79,0.80,0.82,0.82,0.80,0.77,
4802 : 0.77,0.81,0.77,0.80,0.80,0.83,0.80,0.80,0.76,0.77,0.80,0.76, 0.76,0.76,0.81,0.76,0.76,0.79,0.80,0.78,0.78,0.79,0.80,0.78, 0.82,0.81,0.81,0.81,0.81,0.76,0.76,0.77,0.77,0.80,0.81,0.79,
4803 : 0.79,0.80,0.78,0.79,0.83,0.83,0.76,0.76,0.76,0.80,0.76,0.76, 0.81,0.78,0.78,0.80,0.79,0.80,0.77,0.81,0.81,0.78,0.83,0.76, 0.76,0.77,0.77,0.80,0.83,0.81,0.79,0.79,0.79,0.80,0.80,0.81,
4804 : 0.83,0.83,0.76,0.78,0.76,0.81,0.79,0.78,0.78,0.80,0.76,0.81, 0.76,0.79,0.81,0.81,0.77,0.77,0.76,0.76,0.80,0.78,0.83,0.83, 0.80,0.81,0.77,0.79,0.79,0.79,0.81,0.81,0.83,0.83,0.77,0.79,
4805 : 0.77,0.78,0.79,0.80,0.78,0.78,0.78,0.83,0.78,0.76,0.81,0.81, 0.78,0.76,0.82,0.77,0.77,0.76,0.76,0.76,0.78,0.81,0.80,0.78, 0.79,0.78,0.82,0.77,0.78,0.78,0.78,0.78,0.77,0.78,0.79,0.78,
4806 : 0.78,0.77,0.79,0.77,0.77,0.77,0.77,0.77,0.77,0.79,0.77,0.77, 0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.80, 0.79,0.79,0.79,0.79,0.79,0.80,0.77,0.80,0.82,0.82,0.81,0.77,
4807 : 0.80,0.76,0.82,0.80,0.79,0.80,0.78,0.78,0.81,0.77,0.81,0.80, 0.80,0.81,0.80,0.77,0.77,0.76,0.76,0.76,0.81,0.76,0.79,0.82, 0.81,0.79,0.79,0.77,0.81,0.82,0.82,0.83,0.82,0.77,0.82,0.80,
4808 : 0.76,0.77,0.77,0.84,0.79,0.82,0.82,0.81,0.80,0.80,0.80,0.76, 0.76,0.82,0.76,0.76,0.82,0.76,0.79,0.76,0.79,0.79,0.77,0.82, 0.77,0.82,0.82,0.81,0.77,0.82,0.82,0.77,0.77,0.76,0.84,0.83,
4809 : 0.81,0.83,0.79,0.81,0.80,0.80,0.76,0.76,0.83,0.84,0.77,0.82, 0.78,0.78,0.80,0.83,0.76,0.83,0.76,0.76,0.81,0.84,0.82,0.77, 0.82,0.77,0.77,0.83,0.81,0.76,0.81,0.83,0.80,0.80,0.80,0.76,
4810 : 0.76,0.83,0.77,0.78,0.83,0.76,0.76,0.84,0.78,0.78,0.82,0.81, 0.76,0.76,0.80,0.76,0.76,0.83,0.81,0.77,0.82,0.77,0.77,0.84, 0.82,0.79,0.79,0.83,0.76,0.81,0.83,0.77,0.76,0.76,0.80,0.76,
4811 : 0.76,0.76,0.78,0.78,0.82,0.76,0.76,0.81,0.76,0.76,0.81,0.76, 0.76,0.82,0.77,0.77,0.76,0.77,0.81,0.84,0.76,0.77,0.79,0.79, 0.82,0.78,0.76,0.76,0.82,0.76,0.76,0.76,0.82,0.76,0.78,0.78,
4812 : 0.82,0.83,0.76,0.82,0.81,0.81,0.76,0.76,0.76,0.76,0.84,0.77, 0.77,0.81,0.76,0.78,0.77,0.81,0.76,0.76,0.81,0.76,0.76,0.76, 0.81,0.76,0.80,0.76,0.77,0.77,0.82,0.76,0.80,0.82,0.78,0.78,
4813 : 0.82,0.80,0.82,0.82,0.82,0.82,0.81,0.83,0.76,0.78,0.81,0.80, 0.83,0.81,0.76,0.76,0.81,0.83,0.76,0.76,0.79,0.80,0.80,0.83, 0.79,0.80,0.77,0.77,0.80,0.76,0.76,0.79,0.79,0.84,0.79,0.79,
4814 : 0.79,0.79,0.79,0.79,0.79,0.84,0.79,0.78,0.78,0.78,0.78,0.83, 0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77, 0.77,0.77,0.77,0.77,0.77,0.76,0.77,0.77,0.77,0.77,0.79,0.79,
4815 : 0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.77,0.77,0.78,0.82,0.76,0.82,0.82,0.76,0.78,0.78, 0.76,0.76,0.76,0.76,0.76,0.76,0.82,0.76,0.76,0.76,0.76,0.78,
4816 : 0.79,0.79,0.76,0.78,0.76,0.76,0.76,0.82,0.76,0.77,0.77,0.82, 0.83,0.77,0.77,0.82,0.82,0.76,0.76,0.76,0.76,0.76,0.78,0.76, 0.78,0.79,0.79,0.76,0.76,0.76,0.76,0.83,0.82,0.83,0.78,0.77,
4817 : 0.77,0.78,0.77,0.77,0.83,0.76,0.76,0.76,0.76,0.76,0.83,0.76, 0.79,0.76,0.76,0.82,0.78,0.78,0.76,0.83,0.76,0.76,0.83,0.77, 0.77,0.77,0.77,0.79,0.78,0.83,0.76,0.76,0.76,0.76,0.76,0.83,
4818 : 0.76,0.79,0.78,0.76,0.76,0.83,0.83,0.76,0.76,0.76,0.76,0.76, 0.84,0.77,0.77,0.77,0.77,0.76,0.79,0.83,0.76,0.76,0.76,0.76, 0.76,0.76,0.83,0.78,0.76,0.76,0.79,0.83,0.76,0.76,0.83,0.76,
4819 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.79,0.76,0.77, 0.77,0.83,0.84,0.83,0.76,0.76,0.76,0.76,0.76,0.76,0.80,0.76, 0.84,0.84,0.84,0.78,0.76,0.76,0.78,0.78,0.80,0.84,0.76,0.76,
4820 : 0.76,0.78,0.76,0.76,0.77,0.77,0.83,0.83,0.77,0.77,0.80,0.83, 0.76,0.76,0.76,0.84,0.76,0.76,0.83,0.77,0.77,0.76,0.79,0.79, 0.84,0.76,0.83,0.84,0.80,0.83,0.82,0.84,0.76,0.84,0.83,0.83,
4821 : 0.82,0.83,0.77,0.77,0.76,0.76,0.82,0.82};
4822 :
4823 : static const double brdO3air[1376] ={
4824 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
4825 : 2.3000,2.3000,2.4120,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.5540,2.4623,2.3000,2.3000,2.3000,2.3000,2.3000, 2.2492,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
4826 : 2.2492,2.1722,2.3000,2.3000,2.3000,2.2877,2.3000,2.3000,2.3084, 2.3000,2.3000,2.3000,2.1574,2.3000,2.2669,2.3000,2.3000,2.3000, 2.3000,2.3143,2.3000,2.3883,2.5155,2.3000,2.3000,2.3000,2.3000,
4827 : 2.3000,2.4859,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3439, 2.1870,2.2877,2.1722,2.2314,2.3000,2.3000,2.3000,2.1249,2.3291, 2.3000,2.3000,2.0953,2.3000,2.3735,2.3000,2.3000,2.4771,2.0894,
4828 : 2.3000,2.3676,2.5126,2.6250,2.3000,2.5895,2.3084,2.1042,2.5570, 2.1870,2.4060,2.5244,2.3000,2.4948,2.2018,2.0835,2.3000,2.3000, 2.3000,2.3000,2.3000,2.1042,2.4682,2.3000,2.3498,2.3000,2.3000,
4829 : 2.2166,2.4415,2.4386,2.1130,2.3000,2.4386,2.7405,2.3291,2.3000, 2.3000,2.0775,2.4149,2.5392,2.3000,2.2018,2.3439,2.1130,2.3000, 2.3912,2.3000,2.3000,2.2166,2.1130,2.4771,2.3000,2.0716,2.3705,
4830 : 2.3000,2.3000,2.3498,2.3000,2.6901,2.3735,2.3000,2.3000,2.4060, 2.3000,2.3000,2.0687,2.2166,2.3498,2.2018,2.3000,2.5658,2.3000, 2.1042,2.1249,2.5155,2.3000,2.3000,2.3232,2.3000,2.1249,2.3291,
4831 : 2.3000,2.2314,2.3000,2.3735,2.3000,2.6428,2.3000,2.3000,2.3942, 2.0716,2.3000,2.3000,2.2314,2.3000,2.0716,2.5540,2.3113,2.3735, 2.3000,2.3000,2.3000,2.3000,2.3000,2.5925,2.1338,2.0598,2.3000,
4832 : 2.5984,2.1338,2.3942,2.3000,2.3000,2.3000,2.2936,2.1870,2.2492, 2.0953,2.3000,2.3025,2.5984,2.0775,2.2492,2.4208,2.0775,2.3000, 2.3000,2.3000,2.3439,2.2788,2.5540,2.1456,2.3000,2.4208,2.3000,
4833 : 2.3000,2.1456,2.3000,2.3000,2.3000,2.3000,2.2669,2.0568,2.2610, 2.2669,2.0835,2.4445,2.0835,2.1722,2.5155,2.3000,2.3000,2.3000, 2.2817,2.0894,2.3000,2.3143,2.4445,2.1574,2.1574,2.3000,2.2610,
4834 : 2.3000,2.2462,2.3000,2.2788,2.2344,2.2462,2.2936,2.2196,2.2877, 2.3113,2.3000,2.3000,2.2078,2.4771,2.3291,2.2877,2.0894,2.0894, 2.3498,2.4711,2.1959,2.3000,2.3000,2.3705,2.0568,2.4711,2.3000,
4835 : 2.3912,2.1841,2.1722,2.2344,2.2877,2.1722,2.2640,2.3000,2.4149, 2.0598,2.1574,2.0598,2.3000,2.4386,2.4415,2.1722,2.0835,2.3084, 2.3000,2.4682,2.3084,2.4948,2.0953,2.0953,2.4978,2.1604,2.5244,
4836 : 2.3000,2.3000,2.4978,2.5570,2.2196,2.3000,2.5895,2.4060,2.1870, 2.1870,2.5895,2.2640,2.5570,2.1515,2.0598,2.0598,2.5244,2.3000, 2.3291,2.0568,2.3000,2.4948,2.3291,2.2433,2.4682,2.1042,2.1042,
4837 : 2.5244,2.1397,2.1456,2.3735,2.2078,2.5244,2.3000,2.3000,2.4415, 2.0775,2.2018,2.4149,2.2018,2.0627,2.0627,2.2403,2.3912,2.1308, 2.3498,2.3498,2.3439,2.3000,2.3705,2.1130,2.1130,2.5540,2.1959,
4838 : 2.5540,2.3000,2.3000,2.3000,2.2255,2.3498,2.6487,2.6901,2.0598, 2.1190,2.2166,2.2166,2.3143,2.0687,2.0687,2.3291,2.1338,2.2166, 2.3735,2.3735,2.0716,2.3113,2.1249,2.1249,2.1841,2.5836,2.3000,
4839 : 2.5836,2.1071,2.3000,2.3000,2.6191,2.2877,2.6428,2.2936,2.2314, 2.2314,2.1782,2.1900,2.1663,2.1071,2.0716,2.0716,2.0716,2.2078, 2.1190,2.3942,2.3942,2.1456,2.1308,2.1959,2.2788,2.1900,2.0598,
4840 : 2.1397,2.2640,2.1338,2.3000,2.1338,2.3000,2.1722,2.1367,2.5925, 2.3000,2.3000,2.1249,2.3000,2.1397,2.2610,2.1249,2.2492,2.2492, 2.5984,2.1604,2.0687,2.0775,2.0775,2.3000,2.3000,2.4208,2.4208,
4841 : 2.2403,2.1782,2.1160,2.2462,2.1722,2.1782,2.5658,2.1900,2.1456, 2.1456,2.1604,2.1841,2.3000,2.3000,2.1071,2.2344,2.2669,2.2669, 2.1959,2.3000,2.2166,2.5540,2.0835,2.0835,2.0627,2.1663,2.4445,
4842 : 2.2078,2.4445,2.3000,2.3000,2.5392,2.1130,2.0983,2.2196,2.1604, 2.2196,2.1574,2.1574,2.1515,2.0568,2.0568,2.1959,2.0627,2.2344, 2.1722,2.2877,2.2877,2.0923,2.2078,2.2462,2.5126,2.0894,2.0894,
4843 : 2.1574,2.5155,2.4711,2.4711,2.3000,2.3000,2.3000,2.2610,2.1426, 2.1782,2.1722,2.2788,2.1722,2.1959,2.0835,2.1397,2.0598,2.0598, 2.2936,2.4859,2.3084,2.3113,2.3084,2.3000,2.1042,2.3291,2.0953,
4844 : 2.0953,2.3498,2.1456,2.4978,2.4978,2.3705,2.1841,2.1574,2.3000, 2.3000,2.3912,2.1604,2.4149,2.4771,2.4415,2.4682,2.4948,2.5244, 2.5570,2.5570,2.5244,2.4948,2.3000,2.4682,2.4415,2.0746,2.4149,
4845 : 2.3912,2.3705,2.1870,2.1870,2.0598,2.1278,2.3498,2.0568,2.0627, 2.3291,2.4623,2.0687,2.0509,2.3113,2.0598,2.0598,2.2936,2.1308, 2.0746,2.0450,2.2788,2.3291,2.3291,2.1722,2.2610,2.0835,2.0391,
4846 : 2.2462,2.1426,2.1042,2.1042,2.5244,2.5244,2.2344,2.0923,2.1367, 2.3000,2.3000,2.0687,2.4356,2.0331,2.2196,2.2018,2.2018,2.0953, 2.0983,2.1130,2.2078,2.4386,2.1604,2.1426,2.3000,2.3000,2.0627,
4847 : 2.0627,2.1959,2.3498,2.3498,2.1190,2.1071,2.1278,2.1841,2.4120, 2.1130,2.1130,2.5540,2.5540,2.0627,2.1160,2.3000,2.3000,2.0598, 2.1722,2.1515,2.1249,2.2166,2.2166,2.0983,2.1604,2.1249,2.0687,
4848 : 2.0687,2.1130,2.3883,2.3735,2.3735,2.4060,2.1515,2.3000,2.1278, 2.1071,2.1397,2.1367,2.1249,2.1249,2.3000,2.3000,2.0894,2.0568, 2.1397,2.3000,2.3000,2.3676,2.3676,2.4948,2.1160,2.1456,2.3000,
4849 : 2.2314,2.2314,2.0983,2.0864,2.1308,2.0716,2.0716,2.1308,2.3942, 2.3942,2.1574,2.3439,2.1900,2.1190,2.0568,2.1338,2.1338,2.3000, 2.3735,2.1130,2.3000,2.3000,2.0509,2.1663,2.6132,2.6132,2.0864,
4850 : 2.1071,2.2492,2.2492,2.0746,2.1190,2.3232,2.1071,2.0775,2.0775, 2.1782,2.0835,2.3000,2.3000,2.4208,2.4208,2.1900,2.1782,2.1456, 2.1456,2.1900,2.3025,2.0746,2.0568,2.0568,2.5836,2.5836,2.3000,
4851 : 2.1071,2.3000,2.0450,2.1782,2.2669,2.2669,2.1071,2.0657,2.0983, 2.3439,2.0835,2.0835,2.2817,2.0983,2.3000,2.3000,2.4445,2.4445, 2.1190,2.0568,2.1663,2.0657,2.1574,2.1574,2.1308,2.1900,2.1663,
4852 : 2.0568,2.0568,2.5540,2.2640,2.5540,2.0775,2.1397,2.2877,2.2877, 2.0539,2.0391,2.1574,2.3000,2.1515,2.0894,2.0894,2.4711,2.4711, 2.3000,2.3000,2.0864,2.2433,2.0923,2.0923,2.0539,2.1782,2.3143,
4853 : 2.1722,2.1722,2.1722,2.1456,2.1574,2.0598,2.0598,2.5244,2.1841, 2.5244,2.2255,2.1959,2.0450,2.3084,2.3084,2.2078,2.0568,2.2196, 2.0331,2.0953,2.0953,2.2344,2.3000,2.1367,2.4978,2.4978,2.3000,
4854 : 2.3000,2.0331,2.2462,2.1663,2.0450,2.2610,2.2078,2.2788,2.0716, 2.2936,2.2078,2.2196,2.2344,2.2344,2.3113,2.2462,2.1841,2.2610, 2.2788,2.3291,2.1722,2.2936,2.3498,2.3498,2.3291,2.3705,2.3498,
4855 : 2.1604,2.3705,2.3705,2.3912,2.4149,2.4149,2.4415,2.4415,2.4682, 2.4682,2.4948,2.4948,2.5244,2.5244,2.0716,2.1515,2.1397,2.1397, 2.1870,2.1870,2.1308,2.4978,2.1190,2.0598,2.0598,2.1456,2.4978,
4856 : 2.1071,2.0391,2.1249,2.0361,2.1900,2.1900,2.3291,2.3291,2.1782, 2.2877,2.1574,2.1042,2.1042,2.1663,2.0361,2.5244,2.5244,2.3000, 2.3000,2.0450,2.1574,2.3000,2.1722,2.1160,2.1456,2.2018,2.2018,
4857 : 2.4711,2.0598,2.0627,2.0627,2.0746,2.1367,2.4711,2.1367,2.0272, 2.0509,2.3498,2.3498,2.0598,2.1574,2.0687,2.1249,2.1456,2.0272, 2.1130,2.1130,2.3000,2.3000,2.1071,2.3000,2.3000,2.1160,2.0568,
4858 : 2.1426,2.3000,2.2166,2.2166,2.4445,2.1071,2.2640,2.0687,2.0687, 2.0183,2.4445,2.1249,2.1367,2.3735,2.3735,2.3000,2.0627,2.0983, 2.0479,2.0983,2.1278,2.0183,2.1249,2.1249,2.3000,2.3000,2.0923,
4859 : 2.0687,2.4208,2.0627,2.2314,2.2314,2.1130,2.0835,2.3000,2.0923, 2.3000,2.3000,2.0124,2.0598,2.1249,2.4208,2.1160,2.3942,2.3942, 2.0746,2.0124,2.3000,2.0391,2.0746,2.0983,2.1338,2.1338,2.3000,
4860 : 2.3000,2.0835,2.3942,2.2403,2.0835,2.4356,2.4356,2.0687,2.2492, 2.2492,2.1160,2.0035,2.3000,2.3000,2.0864,2.3000,2.3000,2.0923, 2.0035,2.3942,2.1071,2.4208,2.4208,2.0627,2.0598,2.1456,2.1456,
4861 : 2.0983,2.3000,2.0272,2.0746,2.3735,2.3000,2.3000,2.0716,2.5836, 2.5836,2.0568,2.2669,2.2669,2.1071,2.0627,2.3000,1.9976,2.3000, 2.3000,1.9976,2.3000,2.3000,2.1160,2.4445,2.4445,2.3000,2.3735,
4862 : 2.0598,2.0687,2.0509,2.3498,2.1574,2.1574,2.1249,2.2166,2.3000, 2.3000,2.0183,2.3000,2.5540,2.5540,2.1367,2.3000,2.2877,2.2877, 1.9888,2.0598,2.0450,1.9888,2.0479,2.1456,2.3000,2.3000,2.3000,
4863 : 2.3000,2.0627,2.4711,2.4711,2.1574,2.3000,2.3291,2.3498,2.1663, 2.3000,2.3000,2.1782,2.0391,2.3000,2.3000,2.0391,2.0568,2.1900, 2.3000,2.5244,2.5244,2.0095,2.3000,2.1071,1.9828,2.3084,2.3084,
4864 : 1.9828,2.1190,2.1249,2.1160,2.1367,2.1071,2.1456,2.0983,2.3000, 2.3084,2.1574,2.1308,2.0923,2.1663,2.3000,2.3000,2.1782,2.0835, 2.3000,2.3000,2.1397,2.1900,2.1071,2.0746,2.1515,2.1190,2.4978,
4865 : 2.4978,2.1308,2.0331,2.3000,2.1604,2.1397,2.0687,2.1515,2.1722, 2.1604,2.1841,2.1722,2.1959,2.1841,2.0627,2.1959,2.2078,2.2078, 2.2196,2.1959,2.0568,2.2196,2.2196,2.2344,2.3291,2.2344,2.2462,
4866 : 2.2462,2.2610,2.2610,2.2788,2.2788,2.2936,2.2936,2.3113,2.3113, 2.3291,2.3291,2.0568,2.3498,2.3498,2.3705,2.3705,2.1870,2.1870, 2.3912,2.3912,2.4149,2.4149,2.4415,2.4415,2.4682,2.4682,2.4948,
4867 : 2.4948,2.3000,2.3000,2.0509,2.3000,2.4978,2.4978,2.2877,1.9740, 2.0450,1.9740,2.0006,2.3000,2.3291,2.3291,2.3000,2.0391,2.3000, 2.3000,2.3000,2.3000,2.0183,2.3000,2.3000,2.3000,2.0331,2.2669,
4868 : 2.2018,2.2018,2.0509,2.3084,2.3000,2.3000,2.3000,1.9680,2.3000, 2.4711,2.4711,1.9680,2.0568,2.3498,2.3498,2.0095,1.9917,2.3000, 2.3000,2.3000,2.3000,2.3000,2.2492,2.3000,2.1782,2.2166,2.2166,
4869 : 2.3000,2.3000,2.3000,2.3000,1.9592,2.0006,1.9592,2.2877,2.4445, 2.4445,2.2314,2.3735,2.3735,1.9858,2.3000,2.3000,2.3000,2.3000, 2.3000,2.0568,2.0450,2.2166,2.3000,2.3000,1.9917,2.2314,2.2314,
4870 : 2.3000,1.9532,2.3000,2.3000,1.9532,2.4208,2.4208,2.3942,2.3942, 2.2018,2.2669,1.9799,2.3000,2.3000,2.3000,2.3000,2.3000,1.9858, 2.3000,2.1870,2.1604,2.3000,2.3000,1.9444,1.9444,2.3000,2.3000,
4871 : 2.3000,2.3000,2.3000,2.0598,2.3942,2.3942,2.4208,2.4208,2.0331, 2.1722,1.9710,2.0391,2.3000,2.3000,2.3000,2.3000,2.3000,1.9799, 2.2492,2.0391,2.3000,2.1574,1.9355,2.3853,2.3853,1.9355,2.3000,
4872 : 2.3000,2.0450,2.3000,2.3000,2.3000,2.3000,2.3000,2.3735,2.3735, 2.1456,2.0509,2.4445,2.4445,1.9710,2.0598,1.9680,2.3000,2.3000, 2.3000,2.0568,2.3000,2.3000,2.1338,2.3000,2.0627,1.9266,1.9266,
4873 : 2.2314,2.5540,2.5540,2.2877,2.2877,2.1249,2.0687,2.3000,2.3000, 2.3000,2.1426,2.3000,2.3000,2.3498,2.3498,2.0746,1.9680,2.4711, 2.4711,2.1130,2.0835,2.0331,2.0391,2.0450,1.9621,2.0509,2.3000,
4874 : 2.0923,2.3498,2.3498,2.0568,2.1841,2.1841,2.0627,2.3000,2.0983, 2.0687,2.1042,2.0746,2.1071,1.9177,2.0627,1.9177,2.0835,2.0923, 2.1160,2.0983,2.5244,2.5244,2.3000,2.3000,2.1249,2.1071};
4875 :
4876 :
4877 : static const unsigned int ifin1[500]={
4878 : 5, 8, 9, 12, 15, 17, 19, 21, 24, 27, 27, 30, 33, 36, 40, 45, 45, 48, 51, 52, 56, 58, 61, 63, 67, 68, 70, 77, 79, 82,
4879 : 86, 86, 87, 91, 91, 91, 94, 97, 99, 103, 106, 108, 110, 111, 112, 115, 118, 120, 122, 122, 127, 130, 132, 136, 137, 142, 144, 146, 149, 151,
4880 : 153, 153, 155, 156, 162, 162, 164, 169, 171, 172, 175, 177, 180, 184, 184, 185, 189, 192, 196, 197, 197, 201, 202, 208, 210, 212, 215, 216, 217, 223,
4881 : 225, 227, 228, 230, 232, 235, 237, 238, 239, 242, 244, 247, 249, 250, 251, 252, 254, 255, 258, 263, 264, 267, 268, 269, 273, 277, 280, 283, 287, 287,
4882 : 291, 293, 295, 297, 300, 304, 307, 311, 314, 316, 319, 319, 321, 324, 327, 330, 332, 334, 336, 340, 342, 343, 348, 349, 350, 353, 360, 361, 362, 363,
4883 : 365, 365, 368, 370, 371, 374, 375, 377, 381, 383, 386, 389, 391, 391, 395, 396, 398, 399, 400, 402, 408, 410, 411, 412, 416, 419, 420, 425, 426, 431,
4884 : 432, 433, 441, 442, 445, 448, 450, 452, 453, 456, 459, 465, 466, 467, 470, 472, 474, 475, 476, 480, 482, 484, 487, 492, 494, 496, 499, 500, 502, 503,
4885 : 506, 508, 510, 512, 517, 521, 522, 522, 527, 528, 529, 533, 533, 539, 540, 540, 546, 551, 555, 561, 569, 577, 582, 585, 589, 592, 594, 597, 601, 606,
4886 : 607, 610, 610, 618, 619, 623, 624, 629, 629, 631, 635, 635, 642, 643, 643, 646, 648, 652, 652, 655, 659, 661, 666, 666, 670, 673, 674, 679, 681, 683,
4887 : 684, 686, 687, 690, 693, 695, 699, 702, 703, 706, 710, 712, 716, 718, 718, 719, 722, 724, 727, 733, 733, 739, 740, 740, 744, 750, 750, 751, 754, 757,
4888 : 759, 763, 763, 768, 770, 770, 773, 779, 781, 783, 784, 788, 792, 794, 795, 799, 800, 803, 808, 815, 819, 835, 854, 859, 861, 867, 869, 873, 874, 875,
4889 : 879, 884, 886, 888, 890, 892, 893, 900, 902, 906, 909, 910, 914, 918, 918, 919, 921, 925, 926, 930, 931, 939, 941, 941, 943, 946, 946, 947, 949, 952,
4890 : 955, 960, 962, 966, 966, 969, 972, 974, 975, 980, 981, 983, 985, 991, 993, 996, 997, 998,1001,1007,1008,1010,1011,1017,1017,1022,1022,1027,1029,1031,
4891 : 1035,1037,1039,1042,1045,1047,1051,1055,1058,1061,1062,1063,1065,1069,1071,1076,1081,1083,1093,1103,1110,1117,1125,1140,1163,1165,1167,1171,1177,1178,
4892 : 1179,1183,1187,1188,1188,1189,1192,1196,1197,1201,1204,1206,1207,1212,1213,1213,1214,1214,1217,1220,1224,1227,1229,1230,1230,1234,1235,1237,1238,1239,
4893 : 1244,1248,1248,1250,1253,1254,1255,1259,1260,1261,1262,1264,1269,1273,1275,1276,1280,1280,1282,1289,1289,1291,1292,1296,1300,1304,1306,1307,1310,1311,
4894 : 1313,1319,1320,1321,1323,1329,1333,1337,1339,1340,1344,1347,1354,1358,1362,1365,1369,1375,1376,1376};
4895 :
4896 : static const unsigned int ini1[500]={
4897 : 1, 1, 1, 3, 5, 8, 9, 12, 15, 17, 19, 21, 24, 27, 27, 30, 33, 36, 40, 45, 45, 48, 51, 52, 56, 58, 61, 63, 67, 68,
4898 : 70, 77, 79, 82, 86, 86, 87, 91, 91, 91, 94, 97, 99, 103, 106, 108, 110, 111, 112, 115, 118, 120, 122, 122, 127, 130, 132, 136, 137, 142,
4899 : 144, 146, 149, 151, 153, 153, 155, 156, 162, 162, 164, 169, 171, 172, 175, 177, 180, 184, 184, 185, 189, 192, 196, 197, 197, 201, 202, 208, 210, 212,
4900 : 215, 216, 217, 223, 225, 227, 228, 230, 232, 235, 237, 238, 239, 242, 244, 247, 249, 250, 251, 252, 254, 255, 258, 263, 264, 267, 268, 269, 273, 277,
4901 : 280, 283, 287, 287, 291, 293, 295, 297, 300, 304, 307, 311, 314, 316, 319, 319, 321, 324, 327, 330, 332, 334, 336, 340, 342, 343, 348, 349, 350, 353,
4902 : 360, 361, 362, 363, 365, 365, 368, 370, 371, 374, 375, 377, 381, 383, 386, 389, 391, 391, 395, 396, 398, 399, 400, 402, 408, 410, 411, 412, 416, 419,
4903 : 420, 425, 426, 431, 432, 433, 441, 442, 445, 448, 450, 452, 453, 456, 459, 465, 466, 467, 470, 472, 474, 475, 476, 480, 482, 484, 487, 492, 494, 496,
4904 : 499, 500, 502, 503, 506, 508, 510, 512, 517, 521, 522, 522, 527, 528, 529, 533, 533, 539, 540, 540, 546, 551, 555, 561, 569, 577, 582, 585, 589, 592,
4905 : 594, 597, 601, 606, 607, 610, 610, 618, 619, 623, 624, 629, 629, 631, 635, 635, 642, 643, 643, 646, 648, 652, 652, 655, 659, 661, 666, 666, 670, 673,
4906 : 674, 679, 681, 683, 684, 686, 687, 690, 693, 695, 699, 702, 703, 706, 710, 712, 716, 718, 718, 719, 722, 724, 727, 733, 733, 739, 740, 740, 744, 750,
4907 : 750, 751, 754, 757, 759, 763, 763, 768, 770, 770, 773, 779, 781, 783, 784, 788, 792, 794, 795, 799, 800, 803, 808, 815, 819, 835, 854, 859, 861, 867,
4908 : 869, 873, 874, 875, 879, 884, 886, 888, 890, 892, 893, 900, 902, 906, 909, 910, 914, 918, 918, 919, 921, 925, 926, 930, 931, 939, 941, 941, 943, 946,
4909 : 946, 947, 949, 952, 955, 960, 962, 966, 966, 969, 972, 974, 975, 980, 981, 983, 985, 991, 993, 996, 997, 998,1001,1007,1008,1010,1011,1017,1017,1022,
4910 : 1022,1027,1029,1031,1035,1037,1039,1042,1045,1047,1051,1055,1058,1061,1062,1063,1065,1069,1071,1076,1081,1083,1093,1103,1110,1117,1125,1140,1163,1165,
4911 : 1167,1171,1177,1178,1179,1183,1187,1188,1188,1189,1192,1196,1197,1201,1204,1206,1207,1212,1213,1213,1214,1214,1217,1220,1224,1227,1229,1230,1230,1234,
4912 : 1235,1237,1238,1239,1244,1248,1248,1250,1253,1254,1255,1259,1260,1261,1262,1264,1269,1273,1275,1276,1280,1280,1282,1289,1289,1291,1292,1296,1300,1304,
4913 : 1306,1307,1310,1311,1313,1319,1320,1321,1323,1329,1333,1337,1339,1340,1344,1347,1354,1358,1362,1365};
4914 :
4915 : static const unsigned int ifin2[500]={
4916 : 3, 5, 8, 9, 12, 15, 16, 19, 21, 24, 26, 27, 29, 32, 35, 39, 44, 45, 48, 50, 52, 54, 57, 61, 63, 66, 68, 70, 74, 78,
4917 : 82, 84, 86, 86, 91, 91, 91, 94, 95, 99, 102, 106, 107, 110, 110, 112, 114, 116, 118, 122, 122, 125, 128, 132, 135, 136, 140, 144, 145, 148,
4918 : 151, 153, 153, 155, 155, 161, 162, 163, 168, 170, 172, 175, 177, 179, 184, 184, 184, 189, 191, 196, 196, 197, 199, 202, 208, 210, 211, 215, 216, 217,
4919 : 222, 225, 227, 228, 230, 231, 234, 236, 238, 239, 242, 243, 246, 249, 249, 251, 252, 253, 255, 257, 263, 264, 266, 268, 269, 270, 277, 278, 283, 283,
4920 : 287, 290, 292, 295, 297, 299, 303, 306, 310, 312, 316, 317, 319, 321, 323, 327, 330, 332, 334, 336, 339, 341, 343, 347, 349, 349, 352, 357, 361, 361,
4921 : 362, 365, 365, 367, 370, 371, 373, 375, 376, 380, 383, 385, 388, 391, 391, 392, 396, 398, 399, 399, 401, 407, 408, 411, 412, 415, 419, 420, 425, 425,
4922 : 429, 431, 433, 441, 442, 444, 448, 449, 452, 453, 456, 456, 463, 465, 467, 470, 472, 474, 475, 476, 479, 482, 482, 486, 492, 494, 495, 498, 499, 500,
4923 : 503, 505, 508, 510, 512, 516, 521, 522, 522, 523, 528, 529, 533, 533, 539, 539, 540, 543, 551, 553, 557, 569, 575, 581, 585, 588, 592, 594, 596, 599,
4924 : 603, 606, 610, 610, 615, 619, 623, 624, 629, 629, 631, 633, 635, 642, 643, 643, 645, 647, 651, 652, 655, 659, 660, 663, 666, 670, 673, 673, 678, 680,
4925 : 681, 683, 686, 687, 689, 691, 695, 699, 702, 703, 706, 710, 710, 714, 718, 718, 719, 719, 723, 727, 730, 733, 737, 740, 740, 744, 749, 750, 751, 751,
4926 : 756, 757, 762, 763, 768, 770, 770, 773, 778, 779, 783, 784, 788, 789, 794, 795, 799, 800, 801, 805, 814, 818, 830, 854, 858, 861, 866, 868, 873, 874,
4927 : 875, 879, 884, 886, 888, 888, 892, 893, 899, 902, 906, 909, 909, 912, 918, 918, 919, 920, 925, 926, 928, 931, 938, 941, 941, 943, 946, 946, 947, 948,
4928 : 952, 955, 960, 961, 966, 966, 969, 972, 974, 975, 977, 980, 983, 985, 990, 992, 996, 996, 998,1001,1007,1007,1008,1010,1016,1017,1022,1022,1027,1028,
4929 : 1031,1035,1037,1039,1041,1043,1047,1051,1055,1056,1061,1062,1063,1065,1069,1069,1075,1079,1083,1091,1102,1107,1117,1123,1136,1163,1165,1167,1171,1173,
4930 : 1178,1179,1183,1184,1188,1188,1188,1192,1196,1196,1201,1201,1206,1207,1211,1213,1213,1213,1214,1217,1220,1223,1227,1229,1229,1230,1234,1235,1236,1238,
4931 : 1239,1243,1247,1248,1250,1252,1254,1255,1259,1260,1260,1262,1264,1267,1273,1274,1276,1278,1280,1281,1287,1289,1290,1292,1293,1298,1304,1305,1307,1310,
4932 : 1310,1313,1319,1320,1321,1322,1325,1330,1337,1338,1340,1343,1347,1351,1357,1361,1363,1368,1373,1376};
4933 :
4934 : static const unsigned int ini2[500]={
4935 : 1, 3, 4, 6, 9, 10, 12, 15, 18, 20, 23, 25, 27, 27, 30, 34, 36, 40, 45, 45, 49, 52, 53, 56, 60, 61, 64, 68, 68, 73,
4936 : 77, 81, 84, 86, 86, 88, 91, 91, 92, 94, 97, 101, 103, 107, 108, 110, 111, 113, 115, 118, 120, 122, 123, 127, 131, 132, 136, 138, 142, 144,
4937 : 147, 149, 152, 153, 155, 155, 157, 162, 162, 166, 169, 171, 172, 176, 177, 181, 184, 184, 185, 190, 195, 196, 197, 198, 201, 205, 208, 211, 213, 215,
4938 : 217, 220, 223, 226, 228, 229, 230, 233, 235, 237, 239, 240, 242, 244, 248, 249, 251, 252, 252, 254, 257, 259, 264, 265, 267, 268, 269, 275, 278, 280,
4939 : 283, 287, 288, 291, 294, 295, 297, 301, 304, 307, 312, 315, 316, 319, 319, 322, 325, 328, 331, 332, 335, 337, 341, 342, 344, 348, 349, 351, 354, 361,
4940 : 361, 362, 364, 365, 365, 369, 370, 372, 374, 375, 379, 381, 383, 386, 389, 391, 391, 395, 396, 399, 399, 400, 405, 408, 411, 411, 413, 417, 420, 423,
4941 : 425, 427, 431, 432, 436, 442, 444, 447, 448, 451, 452, 454, 456, 461, 465, 466, 468, 471, 472, 474, 476, 478, 481, 482, 484, 491, 493, 495, 496, 499,
4942 : 500, 502, 505, 508, 510, 510, 514, 519, 521, 522, 522, 527, 528, 533, 533, 535, 539, 540, 541, 546, 552, 555, 565, 573, 579, 582, 586, 589, 593, 594,
4943 : 597, 601, 606, 609, 610, 612, 619, 621, 623, 624, 629, 629, 631, 635, 639, 643, 643, 643, 647, 648, 652, 652, 657, 659, 661, 666, 667, 670, 673, 676,
4944 : 680, 681, 683, 684, 687, 687, 691, 694, 696, 699, 703, 703, 708, 710, 712, 716, 718, 719, 719, 723, 724, 727, 733, 734, 739, 740, 742, 748, 750, 750,
4945 : 751, 754, 757, 760, 763, 764, 768, 770, 773, 777, 779, 781, 783, 786, 788, 792, 794, 796, 799, 800, 805, 810, 815, 821, 844, 858, 859, 863, 867, 871,
4946 : 873, 875, 876, 882, 885, 887, 888, 892, 893, 897, 900, 902, 907, 909, 910, 915, 918, 919, 920, 923, 925, 928, 930, 932, 939, 941, 941, 943, 946, 946,
4947 : 947, 951, 952, 958, 960, 965, 966, 966, 969, 972, 974, 977, 980, 983, 983, 987, 991, 996, 996, 997, 998,1003,1007,1008,1010,1014,1017,1017,1022,1026,
4948 : 1027,1029,1031,1035,1037,1039,1043,1046,1047,1051,1055,1060,1061,1062,1063,1065,1069,1073,1077,1081,1085,1095,1104,1113,1119,1127,1147,1163,1167,1167,
4949 : 1172,1177,1178,1179,1184,1188,1188,1188,1189,1193,1196,1198,1201,1204,1206,1209,1212,1213,1213,1214,1216,1217,1221,1224,1227,1229,1230,1232,1234,1235,
4950 : 1237,1238,1243,1244,1248,1250,1250,1254,1254,1257,1260,1260,1261,1263,1266,1271,1273,1276,1276,1280,1280,1284,1289,1290,1291,1292,1298,1302,1304,1306,
4951 : 1307,1310,1311,1316,1320,1321,1321,1325,1329,1335,1337,1340,1341,1346,1348,1354,1359,1362,1368,1370};
4952 :
4953 : static const unsigned int ifin3[500]={
4954 : 3, 4, 6, 9, 10, 12, 15, 18, 20, 23, 25, 27, 27, 30, 34, 36, 40, 45, 45, 49, 52, 53, 56, 60, 61, 64, 68, 68, 73, 77,
4955 : 81, 84, 86, 86, 88, 91, 91, 92, 94, 97, 101, 103, 107, 108, 110, 111, 113, 115, 118, 120, 122, 123, 127, 131, 132, 136, 138, 142, 144, 147,
4956 : 149, 152, 153, 155, 155, 157, 162, 162, 166, 169, 171, 172, 176, 177, 181, 184, 184, 185, 190, 195, 196, 197, 198, 201, 205, 208, 211, 213, 215, 217,
4957 : 220, 223, 226, 228, 229, 230, 233, 235, 237, 239, 240, 242, 244, 248, 249, 251, 252, 252, 254, 257, 259, 264, 265, 267, 268, 269, 275, 278, 280, 283,
4958 : 287, 288, 291, 294, 295, 297, 301, 304, 307, 312, 315, 316, 319, 319, 322, 325, 328, 331, 332, 335, 337, 341, 342, 344, 348, 349, 351, 354, 361, 361,
4959 : 362, 364, 365, 365, 369, 370, 372, 374, 375, 379, 381, 383, 386, 389, 391, 391, 395, 396, 399, 399, 400, 405, 408, 411, 411, 413, 417, 420, 423, 425,
4960 : 427, 431, 432, 436, 442, 444, 447, 448, 451, 452, 454, 456, 461, 465, 466, 468, 471, 472, 474, 476, 478, 481, 482, 484, 491, 493, 495, 496, 499, 500,
4961 : 502, 505, 508, 510, 510, 514, 519, 521, 522, 522, 527, 528, 533, 533, 535, 539, 540, 541, 546, 552, 555, 565, 573, 579, 582, 586, 589, 593, 594, 597,
4962 : 601, 606, 609, 610, 612, 619, 621, 623, 624, 629, 629, 631, 635, 639, 643, 643, 643, 647, 648, 652, 652, 657, 659, 661, 666, 667, 670, 673, 676, 680,
4963 : 681, 683, 684, 687, 687, 691, 694, 696, 699, 703, 703, 708, 710, 712, 716, 718, 719, 719, 723, 724, 727, 733, 734, 739, 740, 742, 748, 750, 750, 751,
4964 : 754, 757, 760, 763, 764, 768, 770, 773, 777, 779, 781, 783, 786, 788, 792, 794, 796, 799, 800, 805, 810, 815, 821, 844, 858, 859, 863, 867, 871, 873,
4965 : 875, 876, 882, 885, 887, 888, 892, 893, 897, 900, 902, 907, 909, 910, 915, 918, 919, 920, 923, 925, 928, 930, 932, 939, 941, 941, 943, 946, 946, 947,
4966 : 951, 952, 958, 960, 965, 966, 966, 969, 972, 974, 977, 980, 983, 983, 987, 991, 996, 996, 997, 998,1003,1007,1008,1010,1014,1017,1017,1022,1026,1027,
4967 : 1029,1031,1035,1037,1039,1043,1046,1047,1051,1055,1060,1061,1062,1063,1065,1069,1073,1077,1081,1085,1095,1104,1113,1119,1127,1147,1163,1167,1167,1172,
4968 : 1177,1178,1179,1184,1188,1188,1188,1189,1193,1196,1198,1201,1204,1206,1209,1212,1213,1213,1214,1216,1217,1221,1224,1227,1229,1230,1232,1234,1235,1237,
4969 : 1238,1243,1244,1248,1250,1250,1254,1254,1257,1260,1260,1261,1263,1266,1271,1273,1276,1276,1280,1280,1284,1289,1290,1291,1292,1298,1302,1304,1306,1307,
4970 : 1310,1311,1316,1320,1321,1321,1325,1329,1335,1337,1340,1341,1346,1348,1354,1359,1362,1368,1370,1376};
4971 :
4972 : static const unsigned int ini3[500]={
4973 : 1, 3, 5, 8, 9, 12, 15, 16, 19, 21, 24, 26, 27, 29, 32, 35, 39, 44, 45, 48, 50, 52, 54, 57, 61, 63, 66, 68, 70, 74,
4974 : 78, 82, 84, 86, 86, 91, 91, 91, 94, 95, 99, 102, 106, 107, 110, 110, 112, 114, 116, 118, 122, 122, 125, 128, 132, 135, 136, 140, 144, 145,
4975 : 148, 151, 153, 153, 155, 155, 161, 162, 163, 168, 170, 172, 175, 177, 179, 184, 184, 184, 189, 191, 196, 196, 197, 199, 202, 208, 210, 211, 215, 216,
4976 : 217, 222, 225, 227, 228, 230, 231, 234, 236, 238, 239, 242, 243, 246, 249, 249, 251, 252, 253, 255, 257, 263, 264, 266, 268, 269, 270, 277, 278, 283,
4977 : 283, 287, 290, 292, 295, 297, 299, 303, 306, 310, 312, 316, 317, 319, 321, 323, 327, 330, 332, 334, 336, 339, 341, 343, 347, 349, 349, 352, 357, 361,
4978 : 361, 362, 365, 365, 367, 370, 371, 373, 375, 376, 380, 383, 385, 388, 391, 391, 392, 396, 398, 399, 399, 401, 407, 408, 411, 412, 415, 419, 420, 425,
4979 : 425, 429, 431, 433, 441, 442, 444, 448, 449, 452, 453, 456, 456, 463, 465, 467, 470, 472, 474, 475, 476, 479, 482, 482, 486, 492, 494, 495, 498, 499,
4980 : 500, 503, 505, 508, 510, 512, 516, 521, 522, 522, 523, 528, 529, 533, 533, 539, 539, 540, 543, 551, 553, 557, 569, 575, 581, 585, 588, 592, 594, 596,
4981 : 599, 603, 606, 610, 610, 615, 619, 623, 624, 629, 629, 631, 633, 635, 642, 643, 643, 645, 647, 651, 652, 655, 659, 660, 663, 666, 670, 673, 673, 678,
4982 : 680, 681, 683, 686, 687, 689, 691, 695, 699, 702, 703, 706, 710, 710, 714, 718, 718, 719, 719, 723, 727, 730, 733, 737, 740, 740, 744, 749, 750, 751,
4983 : 751, 756, 757, 762, 763, 768, 770, 770, 773, 778, 779, 783, 784, 788, 789, 794, 795, 799, 800, 801, 805, 814, 818, 830, 854, 858, 861, 866, 868, 873,
4984 : 874, 875, 879, 884, 886, 888, 888, 892, 893, 899, 902, 906, 909, 909, 912, 918, 918, 919, 920, 925, 926, 928, 931, 938, 941, 941, 943, 946, 946, 947,
4985 : 948, 952, 955, 960, 961, 966, 966, 969, 972, 974, 975, 977, 980, 983, 985, 990, 992, 996, 996, 998,1001,1007,1007,1008,1010,1016,1017,1022,1022,1027,
4986 : 1028,1031,1035,1037,1039,1041,1043,1047,1051,1055,1056,1061,1062,1063,1065,1069,1069,1075,1079,1083,1091,1102,1107,1117,1123,1136,1163,1165,1167,1171,
4987 : 1173,1178,1179,1183,1184,1188,1188,1188,1192,1196,1196,1201,1201,1206,1207,1211,1213,1213,1213,1214,1217,1220,1223,1227,1229,1229,1230,1234,1235,1236,
4988 : 1238,1239,1243,1247,1248,1250,1252,1254,1255,1259,1260,1260,1262,1264,1267,1273,1274,1276,1278,1280,1281,1287,1289,1290,1292,1293,1298,1304,1305,1307,
4989 : 1310,1310,1313,1319,1320,1321,1322,1325,1330,1337,1338,1340,1343,1347,1351,1357,1361,1363,1368,1373};
4990 :
4991 : static const double pi=3.141592654;
4992 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
4993 : static const double mu=0.53; //Debyes
4994 : static const double mmol=50.0;
4995 :
4996 : //double q=1.387429043*pow(tt,1.5);
4997 52910 : double q=1.387429043*tt*sqrt(tt);
4998 : unsigned int vp;
4999 : unsigned int ini;
5000 : unsigned int ifin;
5001 52910 : std::complex<double> lshape;
5002 52910 : std::complex<double> lshapeacum;
5003 :
5004 52910 : if(nu>999.9){
5005 :
5006 0 : return std::complex<double> (0.0,0.0);
5007 :
5008 : }else{
5009 :
5010 52910 : vp = vpIndex(nu);
5011 :
5012 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
5013 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
5014 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
5015 :
5016 52910 : if(ifin==0||ifin<ini){
5017 :
5018 0 : return std::complex<double> (0.0,0.0);
5019 :
5020 : }else{
5021 :
5022 423352 : for(unsigned int i=ini; i<ifin+1; i++){
5023 :
5024 370442 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening en GHz/mb 14/11/2018
5025 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
5026 370442 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
5027 370442 : lshapeacum=lshapeacum+lshape;
5028 :
5029 : }
5030 :
5031 52910 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
5032 : // real part: delay in rad*cm^2
5033 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
5034 :
5035 :
5036 : }
5037 :
5038 : }
5039 :
5040 : }
5041 :
5042 : //////////////////////// Opacity Source Number: 21 /////////////////////////////
5043 :
5044 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o17o(double tt, double pp, double nu){
5045 :
5046 : static const double fre[1363]={
5047 : .16176, 1.89024, 1.91956, 3.04142, 3.19196, 3.89097, 3.98601, 4.78954, 7.53146, 8.07908, 8.66614, 8.89708, 10.84322, 13.23648, 14.05621, 16.41521, 17.09709, 17.79825,
5048 : 17.98169, 18.90229, 20.63486, 21.93736, 21.94474, 22.58606, 24.20730, 24.28898, 25.74250, 26.06893, 26.49450, 27.87676, 28.04065, 29.18037, 29.37095, 29.85546, 29.91941, 30.31878,
5049 : 31.25160, 31.27915, 31.86630, 31.86800, 32.58596, 33.34581, 34.13127, 34.21584, 35.00331, 35.70629, 37.96981, 38.90970, 39.16398, 40.61023, 41.05211, 41.33156, 41.43973, 41.95740,
5050 : 43.63227, 44.72885, 45.46450, 46.08818, 47.37485, 47.90563, 49.63892, 49.99009, 50.74731, 51.22195, 53.10312, 54.33059, 55.42888, 55.62713, 55.83772, 56.11096, 56.68505, 57.37603,
5051 : 58.24194, 58.66677, 60.78366, 61.71863, 62.32849, 62.64629, 63.25550, 64.24054, 64.47763, 64.81511, 65.69582, 66.07205, 66.43960, 66.99494, 67.03879, 67.36079, 67.91227, 69.00303,
5052 : 70.63709, 72.25570, 73.87043, 76.01097, 77.40594, 79.36521, 79.36784, 79.85448, 80.19440, 81.25876, 81.35755, 82.69506, 82.98017, 87.93170, 88.15081, 88.66292, 89.24746, 91.23571,
5053 : 91.31394, 91.71814, 92.16217, 93.17298, 93.97666, 94.51998, 95.43642, 96.30901, 97.65726, 99.81734, 99.95576,100.22626, 100.65495,100.67633,102.37038,102.52416,103.34147,104.54263,
5054 : 105.02453,106.70192,107.04454,107.91061,107.92510,108.14973,109.19686,109.31612,109.36213,110.25739,111.72639,112.63072, 115.06657,115.87951,116.99311,117.41811,118.00931,119.55885,
5055 : 120.11865,121.65420,121.87147,124.75045,125.36546,125.72860,128.84477,128.95417,129.81329,130.19322,130.31844,131.89264, 131.90153,131.92750,132.26762,133.55542,133.67831,135.32990,
5056 : 135.46064,135.79457,136.35156,137.09759,138.97576,139.68504,140.00953,140.38775,142.72788,143.12219,146.40438,146.68932, 148.12885,148.21691,148.48269,148.87717,149.43930,150.05814,
5057 : 151.59005,152.92607,154.14075,154.16195,156.79552,160.07718,160.11742,160.41422,160.94716,161.27583,161.37581,162.31051, 162.56888,162.93489,163.22775,165.52922,167.21981,167.29719,
5058 : 168.06224,168.57621,170.24416,170.39093,171.00722,171.49618,171.97143,172.09340,172.88506,173.16004,174.54333,174.68908, 175.04178,175.06221,175.29462,175.69270,176.84444,176.87418,
5059 : 177.39072,177.56918,177.67091,181.31447,183.91704,184.52283,186.38087,187.07582,187.33263,188.15759,189.19894,189.28070, 189.29330,190.90857,193.39711,197.08258,197.19944,197.45271,
5060 : 199.98650,201.36323,201.39318,201.99706,202.62725,202.83385,203.12245,204.86297,205.38126,205.45719,205.50351,205.60283, 205.84344,208.01709,209.08738,210.67028,211.05997,212.48532,
5061 : 213.19967,215.20366,215.68556,218.71310,221.99112,222.86677,223.04200,223.20099,223.32035,223.38631,223.42964,225.19501, 227.47478,228.77953,229.09702,233.73348,233.93689,234.30381,
5062 : 234.46646,234.51826,235.77737,235.98260,236.32325,238.34927,238.44538,238.97727,239.45352,239.56178,239.85730,240.79738, 241.41987,241.64133,241.79123,242.33475,243.99501,244.00067,
5063 : 244.97250,245.03958,245.27379,247.14227,248.89362,249.04875,249.10153,249.74476,250.01357,250.04687,253.28696,253.40055, 254.02916,254.22242,254.35832,255.17235,257.59739,257.66496,
5064 : 258.43014,261.83090,262.83914,262.85415,264.26675,264.27393,264.66665,265.84959,266.91752,267.21793,267.56303,267.65017, 269.23139,269.52956,270.37601,271.07046,272.76284,274.64475,
5065 : 274.79896,275.37046,275.45873,277.54437,277.68432,277.85512,278.39761,279.16153,279.34381,279.85697,280.91669,281.85607, 283.15222,283.15984,283.76367,284.03156,284.62315,286.85382,
5066 : 286.93824,287.61323,289.96746,289.98230,290.26975,290.51376,290.58093,291.17168,293.06050,293.29703,294.41403,294.96520, 295.16722,300.09709,300.30203,300.41556,301.74269,304.77596,
5067 : 304.91185,305.10790,305.27512,305.98278,306.38628,306.53092,307.57362,307.87992,312.62825,315.58057,315.78902,318.22112, 318.39250,318.76172,319.18861,319.39207,319.53757,320.03883,
5068 : 320.11224,320.29505,321.04720,323.49029,325.87147,325.95442,327.88894,328.21886,329.34852,330.25973,330.61362,330.85485, 331.55940,331.63024,332.59826,336.12647,337.17122,338.36792,
5069 : 338.89450,339.88513,341.07766,341.22739,343.12507,343.71061,344.07003,344.59908,346.85358,346.89696,350.90565,351.35858, 351.41871,354.18407,355.31773,355.38116,355.62668,355.87430,
5070 : 356.02410,356.27175,356.43622,356.60752,356.69086,357.29655,357.39492,357.85852,358.30858,358.40360,358.57268,361.18488, 361.20807,362.14550,362.32775,364.43802,366.31170,366.48162,
5071 : 366.58806,366.83697,367.84327,368.09421,368.16027,368.66138,369.24408,369.59760,372.48054,372.59775,373.19803,374.13241, 374.61443,374.92278,375.87011,376.76844,376.81167,378.89869,
5072 : 379.49898,380.68979,380.88895,381.05980,381.60412,381.96781,382.05193,382.10532,385.50594,385.90626,386.56727,386.58408, 391.79965,391.87451,393.31467,393.39531,393.47054,394.30286,
5073 : 394.53386,394.76757,396.92902,397.09981,397.65269,400.93655,401.00741,402.08059,402.10574,402.13654,406.05722,406.17332, 406.40034,406.57240,406.60825,406.99085,408.25199,408.59081,
5074 : 409.19902,409.77847,410.66535,411.88776,411.89985,412.09321,415.10912,415.61759,416.10765,417.03829,417.09034,419.26265, 419.40988,421.23466,423.33345,426.02584,426.19572,427.37484,
5075 : 427.39659,427.47560,427.82570,430.13527,431.06894,431.10474,431.14091,431.21672,431.21853,434.88480,435.75346,436.18271, 436.40464,437.14946,437.15810,437.68166,438.42121,442.06049,
5076 : 442.20350,442.23927,443.54124,443.66169,444.13745,444.22872,447.05077,449.84129,450.35850,451.19291,451.35261,451.81262, 452.57981,452.59503,453.54618,454.97074,455.18296,455.73815,
5077 : 455.79415,456.14843,456.19941,457.93444,458.29463,458.85726,460.29309,461.80680,462.11092,462.35534,462.36146,463.01005, 463.46151,464.42252,465.07109,465.48010,465.71534,465.83351,
5078 : 465.91704,465.96531,466.06140,466.22847,466.49365,466.88764,467.30077,467.32503,467.44437,468.09907,468.13318,468.20048, 468.93936,468.99417,469.19487,469.24341,469.49081,469.98202,
5079 : 470.46817,470.88778,471.52108,472.06218,473.91662,474.01935,474.51501,475.20753,476.38218,477.42484,477.54555,477.72450, 477.73503,477.84786,479.19270,479.23774,480.19856,480.31761,
5080 : 480.34307,480.40581,481.08729,481.12014,482.49196,484.16289,485.01411,486.31948,486.95469,487.50822,487.51252,487.99400, 488.88682,489.89084,489.94540,490.71282,491.96823,492.33514,
5081 : 492.35136,493.67882,493.71058,494.17651,494.67755,495.70714,497.93851,499.02770,501.33477,502.05413,502.52746,502.81252, 502.81973,503.38485,504.55444,504.57542,504.85693,504.86711,
5082 : 505.96426,505.98499,507.01782,507.62491,509.35534,510.24272,511.12197,512.61079,512.61379,512.87735,514.60329,516.00959, 517.31129,517.32199,518.04977,518.36493,518.38258,520.60691,
5083 : 520.80805,522.29192,522.95026,526.09984,527.84728,527.85217,529.36718,529.37057,529.58838,530.70886,530.78550,530.79828, 530.85896,531.22909,531.44929,532.40947,533.39788,537.66565,
5084 : 537.66772,539.21870,539.27832,539.29517,539.49600,539.86805,542.22866,542.23361,542.24055,543.00565,543.01500,543.07801, 544.01867,544.18951,546.28272,546.82930,546.83013,549.77918,
5085 : 551.50741,551.77269,552.83205,552.83532,554.30767,554.62039,555.55662,555.56430,557.31108,557.77438,558.18238,558.32803, 560.44762,560.81804,562.67528,562.67670,563.70461,563.78910,
5086 : 564.86895,565.02515,567.10619,567.11062,567.60799,567.61267,570.01420,571.82903,571.82960,571.87439,572.77599,572.95848, 575.07398,576.67936,577.76991,577.77208,577.89945,578.76463,
5087 : 580.28277,580.28725,581.90576,584.05616,584.43974,584.63074,585.70594,587.27949,587.64208,587.64304,588.06613,588.32033, 589.61387,590.87151,591.93290,591.93567,592.17814,592.18033,
5088 : 593.58513,594.38897,596.75934,596.79061,596.79101,596.98538,597.89734,598.13817,600.08171,601.33850,601.85445,602.66383, 602.66524,602.98963,604.96870,604.97124,608.53737,609.38405,
5089 : 610.65033,611.93881,612.31651,612.56836,612.56900,612.65886,612.91137,615.01460,616.03643,616.14636,616.71736,616.71907, 616.72159,616.72252,618.28630,618.64101,621.71587,621.71614,
5090 : 622.13867,623.27242,625.03540,627.01124,627.37978,627.51663,627.51754,628.37755,629.61882,629.62021,631.90594,632.70295, 634.10335,635.70816,635.76650,636.39752,636.99951,637.45633,
5091 : 637.45676,637.59050,637.80841,637.87387,639.01958,639.03160,639.72569,640.12126,641.24320,641.24356,641.46303,641.46405, 641.50497,641.56070,641.72811,641.78393,643.95650,645.76794,
5092 : 646.46645,646.60656,646.60675,647.22241,647.75793,648.37538,649.27701,649.52824,649.97178,649.98070,650.00936,650.04229, 650.15782,650.16800,650.33521,650.45874,650.49850,650.52488,
5093 : 650.72148,650.85581,650.89054,650.91290,650.94767,651.09020,651.17618,651.24737,651.37908,651.38097,651.48976,651.51881, 651.57432,651.61133,651.63663,651.66259,651.66949,651.67964,
5094 : 651.70351,651.70690,651.72136,651.72220,652.33102,652.33159,652.64351,653.93196,654.23721,654.23794,654.48172,655.57043, 655.88521,657.60185,659.33962,659.87588,660.06899,660.09945,
5095 : 660.23970,662.30815,662.30843,662.39212,663.01390,665.74732,665.74744,666.17315,666.17376,666.47739,667.39863,670.22327, 670.49846,670.74275,671.46440,671.46452,671.62754,672.30147,
5096 : 672.50778,674.54713,675.11383,675.51489,675.74675,676.84072,677.08514,677.10959,677.10995,678.82766,678.82803,680.35058, 680.35750,680.67731,681.45740,682.01903,683.76360,685.76352,
5097 : 686.26033,687.12588,687.12606,687.35723,689.34158,690.23778,690.23781,690.85084,690.85119,692.84970,693.43401,696.29104, 696.29112,698.10641,698.91211,699.47147,700.02534,700.14918,
5098 : 701.23111,701.85484,701.85506,703.07451,703.39372,703.39389,704.28216,705.78501,706.74389,706.88175,706.97482,708.17835, 711.77619,711.91154,711.91165,712.53379,715.49903,715.49922,
5099 : 715.86351,716.43499,716.95252,720.37033,721.08809,721.08815,721.55231,724.19978,724.92159,725.16864,725.66100,726.48268, 726.56915,726.56928,726.64641,726.68373,727.74627,727.93865,
5100 : 727.93873,729.14192,729.43733,729.43735,729.50146,734.39511,734.50691,736.05146,736.66704,736.66712,736.77536,737.97732, 740.12050,740.12060,743.88908,744.90109,745.85712,745.85715,
5101 : 746.97136,747.22646,747.83267,748.88851,749.09516,749.59330,749.59342,751.25482,751.25490,751.52843,751.88526,752.46551, 752.46554,754.04451,754.19221,754.19223,755.57690,757.59559,
5102 : 757.64748,759.15858,759.65229,761.39427,761.39432,762.94270,763.10125,763.75139,763.90678,764.71789,764.71795,767.26428, 768.16681,769.19849,770.53925,770.59964,770.59966,771.61394,
5103 : 772.22760,772.87097,774.05769,774.05854,775.91405,775.91409,776.05213,776.85196,776.97710,776.97711,778.92322,778.92323, 779.49046,782.76977,784.00910,785.41897,785.54782,786.09503,
5104 : 786.09506,789.29372,789.29375,789.92813,791.04762,791.15273,791.36148,791.53797,791.57970,793.44446,794.19023,795.31713, 795.31715,795.66381,797.51621,798.51604,798.51947,799.59819,
5105 : 800.54895,800.54897,801.47601,801.47601,801.60215,802.85916,803.14448,803.63155,803.63155,803.99145,808.09043,810.77107, 810.77108,812.41162,812.43528,812.65197,813.17556,813.85036,
5106 : 813.85037,814.09374,814.36025,814.49537,815.19089,816.16740,816.58880,816.81326,818.79388,819.41661,820.01102,820.01103, 822.21594,822.96306,822.97335,823.33427,824.58190,824.61871,
5107 : 824.64500,824.76025,824.91093,825.16154,825.16155,825.22032,825.34304,825.90705,825.96460,825.96460,826.00354,826.15502, 826.57132,826.67409,827.15202,827.30706,828.08849,828.26535,
5108 : 828.31836,828.31836,828.42678,828.70810,828.89291,829.70072,829.79892,829.81213,829.91688,830.49539,830.71379,831.17997, 831.26331,831.99368,832.00573,832.24736,832.67830,833.14638,
5109 : 833.21026,833.31132,833.88903,833.90082,834.40958,834.53126,834.87271,835.05547,835.27950,835.42406,835.42407,835.48877, 835.63211,835.84440,835.93356,836.13378,836.18752,836.23738,
5110 : 836.36683,836.39805,836.55213,836.56954,836.69722,836.70646,836.72135,836.80866,836.81330,836.89224,836.89441,836.95305, 836.95398,836.99557,836.99593,837.02374,837.02386,837.04101,
5111 : 837.04104,837.05034,837.05035,837.57712,838.39003,838.39004,839.33926,839.47385,839.83319,843.82414,844.03346,844.16060, 844.68269,844.68270,845.92887,846.16826,847.39151,847.41729,
5112 : 847.73650,848.87126,849.75376,849.75377,849.89357,850.44501,850.44501,850.52968,850.98542,852.98479,852.98479,854.37660, 859.44521,859.49469,860.05564,860.05564,860.57606,860.61403,
5113 : 862.16417,862.91485,862.91485,864.16234,865.30469,865.52794,866.21997,866.81583,869.33350,869.33351,871.73471,871.79186, 871.84867,873.16943,874.32746,874.32746,874.74450,877.63194,
5114 : 877.63194,882.24984,882.76712,883.61220,884.66737,884.66737,884.87761,885.21409,886.73429,887.42679,887.42679,891.26568, 893.96475,893.96475,896.15180,896.26560,897.75858,898.81674,
5115 : 898.88440,898.88440,899.18079,899.80532,900.16980,900.43089,902.26090,902.26090,903.33089,904.67893,905.12150,906.57671, 907.60857,908.41871,909.26076,909.26077,909.59440,909.59440,
5116 : 911.81582,911.92770,911.92770,912.25910,916.59917,918.57770,918.57770,920.45575,920.66739,922.76227,923.42628,923.42628, 924.57204,924.97667,926.87270,926.87270,928.04806,929.51177,
5117 : 930.03271,930.32889,930.35232,933.28978,933.30407,933.83728,933.83728,934.18307,934.18307,936.41929,936.41929,936.82059, 937.28891,941.57305,942.80802,943.17358,943.17358,944.68419,
5118 : 944.85034,945.05502,946.58320,946.59550,947.95469,947.95469,948.80841,951.01888,951.45973,951.46838,951.46838,951.55227, 952.42083,953.10490,958.39831,958.39831,958.75731,958.75731,
5119 : 959.29366,959.38668,959.38668,959.59763,960.66907,960.90317,960.90317,961.50530,965.47152,966.22916,966.35435,966.47585, 967.75358,967.75358,968.81314,969.43174,969.72462,970.32930,
5120 : 972.47115,972.47115,972.69306,974.02467,975.30674,975.86298,976.04891,976.04891,978.36493,979.26244,982.94520,982.94520, 983.31793,983.31793,983.42658,983.85357,983.85357,985.38079,
5121 : 985.38079,986.38869,986.39509,987.93415,988.28893,989.14104,990.60603,990.77758,991.43585,991.94190,992.31510,992.31885, 992.31885,992.47661,992.81333,993.37843,993.80363,993.97511,
5122 : 994.59089,995.50114,995.91977,996.88667,996.97711,996.97711,997.05739,997.33479,998.17182,998.62374,998.65962,998.74226, 998.80826};
5123 :
5124 : static const double flin[1363]={
5125 : .433E+01, .308E+01, .826E+01, .447E+01, .209E+01, .826E+01, .703E+01, .150E+01, .578E+01, .568E+01, .159E+01, .303E+01, .688E+01, .138E+01, .303E+01, .311E+01, .562E+01, .104E+01,
5126 : .706E+01, .433E+01, .164E+01, .549E+01, .685E+01, .844E+01, .328E+01, .459E+01, .808E+01, .124E+01, .116E+01, .131E+01, .177E+01, .107E+01, .311E+01, .721E+01, .845E+01, .807E+01,
5127 : .412E+01, .294E+01, .594E+01, .137E+01, .454E+01, .127E+01, .980E+00, .178E+01, .244E+01, .216E+01, .141E+01, .587E+01, .669E+01, .308E+01, .279E+01, .894E+00, .418E+01, .544E+01,
5128 : .512E+00, .469E+01, .193E+01, .143E+01, .725E+01, .667E+01, .284E+01, .302E+01, .812E+00, .530E+01, .789E+01, .209E+01, .116E+01, .737E+01, .609E+01, .142E+01, .788E+01, .293E+01,
5129 : .354E+01, .146E+01, .225E+01, .391E+01, .735E+00, .282E+01, .277E+01, .478E+01, .401E+01, .240E+01, .270E+01, .475E+01, .256E+01, .526E+01, .649E+01, .281E+01, .139E+01, .271E+01,
5130 : .606E+01, .255E+01, .648E+01, .665E+00, .742E+01, .107E+01, .622E+01, .510E+01, .769E+01, .753E+01, .132E+01, .483E+01, .769E+01, .383E+01, .229E+01, .117E+01, .255E+01, .341E+01,
5131 : .370E+01, .602E+00, .507E+01, .382E+01, .150E+01, .629E+01, .248E+01, .122E+01, .343E+01, .629E+01, .487E+01, .321E+01, .496E+01, .434E+01, .634E+01, .231E+01, .625E+01, .520E+01,
5132 : .990E+00, .769E+01, .750E+01, .489E+01, .247E+01, .760E+01, .749E+01, .600E+01, .545E+00, .239E+01, .365E+01, .109E+01, .672E+01, .487E+01, .100E+01, .487E+01, .893E+00, .410E+01,
5133 : .349E+01, .609E+01, .736E+01, .645E+01, .266E+01, .609E+01, .494E+00, .410E+01, .790E+01, .932E+00, .485E+01, .208E+01, .783E+01, .220E+01, .917E+00, .363E+01, .730E+01, .729E+01,
5134 : .469E+01, .345E+01, .518E+01, .643E+01, .836E+01, .777E+01, .150E+01, .287E+01, .467E+01, .480E+01, .653E+01, .633E+00, .483E+01, .328E+01, .589E+01, .755E+00, .871E+01, .450E+00,
5135 : .589E+01, .308E+01, .472E+01, .201E+01, .796E+01, .325E+01, .709E+01, .185E+01, .852E+00, .897E+01, .709E+01, .201E+01, .448E+01, .330E+01, .461E+01, .441E+01, .660E+01, .409E+01,
5136 : .447E+01, .563E+00, .447E+01, .352E+01, .830E+01, .830E+01, .661E+01, .794E+01, .411E+00, .541E+01, .915E+01, .390E+00, .568E+01, .431E+01, .373E+01, .306E+01, .560E+01, .180E+01,
5137 : .568E+01, .413E+01, .394E+01, .808E+01, .253E+01, .304E+01, .689E+01, .665E+01, .689E+01, .162E+01, .361E+00, .924E+01, .427E+01, .794E+00, .426E+01, .809E+01, .376E+00, .809E+01,
5138 : .159E+01, .548E+01, .458E+01, .172E+00, .284E+01, .474E+01, .547E+01, .307E+01, .819E+01, .811E+01, .926E+01, .642E+01, .667E+01, .680E+01, .283E+01, .164E+00, .564E+01, .668E+01,
5139 : .668E+01, .139E+01, .405E+01, .405E+01, .743E+00, .347E+00, .789E+01, .923E+01, .789E+01, .667E+01, .137E+01, .363E+01, .526E+01, .526E+01, .262E+01, .261E+01, .129E+02, .729E+01,
5140 : .119E+02, .139E+02, .511E+01, .108E+02, .149E+02, .973E+01, .647E+01, .647E+01, .158E+02, .664E+01, .827E+01, .509E+01, .869E+01, .116E+01, .384E+01, .915E+01, .383E+01, .165E+02,
5141 : .423E+01, .769E+01, .698E+01, .115E+01, .768E+01, .673E+01, .768E+01, .321E+00, .589E+01, .172E+02, .584E+01, .505E+01, .699E+00, .658E+01, .505E+01, .239E+01, .500E+01, .178E+02,
5142 : .239E+01, .422E+01, .905E+01, .819E+01, .486E+01, .626E+01, .626E+01, .349E+01, .182E+02, .649E+01, .937E+00, .362E+01, .362E+01, .280E+01, .568E+01, .933E+00, .215E+01, .747E+01,
5143 : .747E+01, .843E+01, .152E+01, .853E+00, .298E+00, .185E+02, .638E+01, .484E+01, .547E+01, .483E+01, .217E+01, .833E+00, .217E+01, .553E+01, .718E+01, .145E+01, .892E+01, .659E+00,
5144 : .200E+01, .623E+01, .616E+01, .605E+01, .605E+01, .187E+02, .251E+01, .913E+01, .716E+00, .340E+01, .340E+01, .299E+01, .714E+00, .345E+01, .726E+01, .726E+01, .624E+01, .462E+01,
5145 : .188E+02, .629E+01, .462E+01, .388E+01, .194E+01, .278E+00, .880E+01, .194E+01, .429E+01, .583E+01, .583E+01, .502E+00, .588E+01, .317E+01, .101E+02, .501E+00, .317E+01, .467E+01,
5146 : .699E+01, .625E+00, .188E+02, .738E+01, .705E+01, .705E+01, .150E+01, .503E+01, .149E+01, .440E+01, .440E+01, .644E+01, .867E+01, .172E+01, .172E+01, .261E+00, .537E+01, .778E+01,
5147 : .188E+02, .695E+01, .562E+01, .562E+01, .302E+00, .302E+00, .295E+01, .295E+01, .111E+02, .568E+01, .167E+01, .683E+01, .683E+01, .594E+00, .163E+01, .238E+02, .418E+01, .418E+01,
5148 : .248E+02, .227E+02, .855E+01, .862E+01, .149E+01, .149E+01, .596E+01, .633E+01, .257E+02, .186E+02, .215E+02, .804E+01, .804E+01, .203E+02, .266E+02, .759E+01, .246E+00, .540E+01,
5149 : .540E+01, .191E+02, .126E+00, .126E+00, .272E+02, .622E+01, .273E+01, .273E+01, .179E+02, .675E+01, .188E+01, .121E+02, .766E+01, .950E+01, .278E+02, .662E+01, .662E+01, .167E+02,
5150 : .184E+02, .645E+01, .396E+01, .396E+01, .127E+01, .127E+01, .845E+01, .179E+01, .282E+02, .155E+02, .783E+01, .783E+01, .518E+01, .518E+01, .144E+02, .104E+02, .666E+01, .250E+01,
5151 : .250E+01, .211E+01, .233E+00, .285E+02, .681E+01, .134E+02, .131E+02, .182E+02, .640E+01, .640E+01, .373E+01, .373E+01, .105E+01, .781E+01, .105E+01, .685E+01, .836E+01, .124E+02,
5152 : .842E+01, .195E+01, .286E+02, .761E+01, .761E+01, .114E+02, .708E+01, .236E+01, .115E+02, .496E+01, .496E+01, .228E+01, .228E+01, .702E+01, .106E+02, .180E+02, .286E+02, .618E+01,
5153 : .618E+01, .142E+02, .222E+00, .984E+01, .123E+02, .836E+00, .351E+01, .836E+00, .351E+01, .828E+01, .262E+01, .717E+01, .908E+01, .740E+01, .740E+01, .733E+01, .209E+01, .836E+01,
5154 : .474E+01, .474E+01, .923E+01, .285E+02, .205E+01, .205E+01, .768E+01, .805E+01, .133E+02, .177E+02, .703E+01, .730E+01, .596E+01, .596E+01, .152E+02, .640E+01, .290E+01, .628E+00,
5155 : .628E+00, .328E+01, .328E+01, .578E+01, .744E+01, .212E+00, .519E+01, .822E+01, .460E+01, .718E+01, .718E+01, .284E+02, .401E+01, .343E+01, .284E+01, .223E+01, .159E+01, .884E+00,
5156 : .883E+00, .159E+01, .223E+01, .284E+01, .342E+01, .400E+01, .451E+01, .451E+01, .456E+01, .742E+01, .221E+01, .513E+01, .183E+01, .183E+01, .569E+01, .349E+02, .338E+02, .143E+02,
5157 : .625E+01, .358E+02, .326E+02, .681E+01, .319E+01, .737E+01, .366E+02, .313E+02, .792E+01, .175E+02, .101E+02, .574E+01, .574E+01, .790E+01, .846E+01, .163E+02, .373E+02, .431E+00,
5158 : .431E+00, .300E+02, .306E+01, .306E+01, .899E+01, .281E+02, .752E+01, .952E+01, .287E+02, .696E+01, .696E+01, .379E+02, .817E+01, .203E+00, .153E+02, .100E+02, .349E+01, .429E+01,
5159 : .429E+01, .161E+01, .161E+01, .831E+01, .273E+02, .105E+02, .382E+02, .229E+01, .110E+02, .783E+01, .760E+01, .552E+01, .552E+01, .260E+02, .173E+02, .173E+02, .252E+00, .252E+00,
5160 : .283E+01, .283E+01, .278E+02, .115E+02, .381E+01, .164E+02, .110E+02, .674E+01, .674E+01, .247E+02, .119E+02, .813E+01, .407E+01, .407E+01, .851E+01, .139E+01, .139E+01, .768E+01,
5161 : .195E+00, .123E+02, .234E+02, .415E+01, .529E+01, .529E+01, .101E+00, .101E+00, .183E+02, .127E+02, .261E+01, .261E+01, .174E+02, .235E+01, .275E+02, .171E+02, .222E+02, .652E+01,
5162 : .652E+01, .774E+01, .250E+01, .250E+01, .859E+01, .131E+02, .451E+01, .384E+01, .384E+01, .117E+01, .117E+01, .811E+01, .211E+02, .119E+02, .826E+01, .774E+01, .774E+01, .134E+02,
5163 : .189E+00, .184E+02, .507E+01, .507E+01, .194E+02, .200E+02, .238E+01, .238E+01, .272E+02, .490E+01, .916E+01, .779E+01, .137E+02, .169E+02, .630E+01, .630E+01, .261E+01, .261E+01,
5164 : .236E+01, .190E+02, .362E+01, .362E+01, .958E+00, .958E+00, .809E+01, .752E+01, .752E+01, .140E+02, .532E+01, .194E+02, .180E+02, .129E+02, .485E+01, .485E+01, .784E+01, .204E+02,
5165 : .216E+01, .216E+01, .182E+00, .143E+02, .268E+02, .171E+02, .890E+01, .576E+01, .607E+01, .607E+01, .277E+01, .277E+01, .168E+02, .873E+01, .339E+01, .339E+01, .754E+00, .754E+00,
5166 : .163E+02, .205E+02, .807E+01, .730E+01, .730E+01, .145E+02, .788E+01, .987E+01, .235E+01, .624E+01, .155E+02, .462E+01, .462E+01, .215E+02, .194E+01, .194E+01, .139E+02, .147E+02,
5167 : .148E+02, .177E+00, .295E+01, .585E+01, .585E+01, .265E+02, .295E+01, .675E+01, .215E+02, .140E+02, .317E+01, .317E+01, .559E+00, .559E+00, .791E+01, .167E+02, .708E+01, .708E+01,
5168 : .133E+02, .807E+01, .150E+02, .225E+02, .126E+02, .440E+01, .440E+01, .731E+01, .172E+01, .172E+01, .120E+02, .923E+01, .340E+02, .924E+01, .113E+02, .315E+01, .230E+01, .563E+01,
5169 : .563E+01, .314E+01, .106E+02, .225E+02, .107E+02, .794E+01, .149E+02, .151E+02, .377E+00, .377E+00, .294E+01, .294E+01, .790E+01, .171E+00, .101E+02, .262E+02, .947E+01, .887E+01,
5170 : .326E+02, .685E+01, .685E+01, .828E+01, .166E+02, .769E+01, .710E+01, .806E+01, .653E+01, .100E+02, .106E+02, .943E+01, .112E+02, .884E+01, .826E+01, .118E+02, .595E+01, .768E+01,
5171 : .710E+01, .235E+02, .537E+01, .652E+01, .124E+02, .594E+01, .479E+01, .537E+01, .420E+01, .479E+01, .420E+01, .360E+01, .360E+01, .299E+01, .299E+01, .130E+02, .235E+01, .235E+01,
5172 : .167E+01, .167E+01, .908E+00, .908E+00, .417E+01, .417E+01, .136E+02, .142E+02, .150E+01, .150E+01, .854E+01, .148E+02, .153E+02, .154E+02, .313E+02, .235E+02, .160E+02, .796E+01,
5173 : .334E+01, .540E+01, .540E+01, .333E+01, .166E+02, .216E+00, .216E+00, .272E+01, .272E+01, .171E+02, .923E+01, .160E+02, .177E+02, .167E+00, .663E+01, .663E+01, .259E+02, .154E+02,
5174 : .300E+02, .245E+02, .182E+02, .806E+01, .223E+01, .165E+02, .114E+02, .395E+01, .395E+01, .129E+01, .129E+01, .996E+01, .187E+02, .979E+01, .799E+01, .245E+02, .354E+01, .288E+02,
5175 : .192E+02, .518E+01, .518E+01, .353E+01, .156E+02, .840E-01, .840E-01, .249E+01, .249E+01, .197E+02, .107E+02, .641E+01, .641E+01, .256E+02, .276E+02, .162E+00, .171E+02, .202E+02,
5176 : .806E+01, .372E+01, .372E+01, .800E+01, .108E+01, .108E+01, .256E+02, .164E+02, .116E+02, .374E+01, .157E+02, .206E+02, .266E+02, .495E+01, .495E+01, .371E+01, .227E+01, .227E+01,
5177 : .123E+02, .213E+01, .210E+02, .124E+02, .618E+01, .618E+01, .266E+02, .256E+02, .802E+01, .158E+02, .104E+02, .214E+02, .350E+01, .350E+01, .266E+02, .807E+01, .158E+00, .879E+00,
5178 : .879E+00, .181E+02, .741E+01, .741E+01, .394E+01, .133E+02, .164E+02, .246E+02, .473E+01, .473E+01, .217E+02, .389E+01, .205E+01, .205E+01, .158E+02, .276E+02, .596E+01, .596E+01,
5179 : .803E+01, .237E+02, .220E+02, .143E+02, .276E+02, .350E+01, .350E+01, .327E+01, .327E+01, .413E+01, .807E+01, .686E+00, .686E+00, .132E+02, .719E+01, .719E+01, .154E+00, .192E+02,
5180 : .228E+02, .201E+01, .223E+02, .450E+01, .450E+01, .163E+02, .159E+02, .406E+01, .153E+02, .184E+01, .184E+01, .220E+02, .286E+02, .804E+01, .110E+02, .573E+01, .573E+01, .286E+02,
5181 : .226E+02, .432E+01, .359E+01, .359E+01, .305E+01, .305E+01, .212E+02, .807E+01, .503E+00, .503E+00, .696E+01, .696E+01, .163E+02, .160E+02, .205E+02, .203E+02, .229E+02, .428E+01,
5182 : .428E+01, .162E+01, .162E+01, .421E+01, .163E+02, .197E+02, .296E+02, .141E+02, .805E+01, .452E+01, .296E+02, .551E+01, .551E+01, .173E+02, .190E+02, .372E+01, .372E+01, .231E+02,
5183 : .283E+01, .283E+01, .336E+00, .336E+00, .808E+01, .160E+02, .183E+02, .674E+01, .674E+01, .188E+01, .177E+02, .405E+01, .405E+01, .170E+02, .183E+02, .214E+02, .471E+01, .141E+01,
5184 : .141E+01, .806E+01, .233E+02, .306E+02, .117E+02, .163E+02, .435E+01, .306E+02, .163E+02, .157E+02, .528E+01, .528E+01, .151E+02, .389E+01, .389E+01, .161E+02, .201E+02, .144E+02,
5185 : .195E+02, .208E+02, .188E+02, .261E+01, .261E+01, .214E+02, .182E+02, .175E+02, .189E+00, .189E+00, .220E+02, .808E+01, .169E+02, .138E+02, .227E+02, .163E+02, .156E+02, .151E+02,
5186 : .652E+01, .652E+01, .132E+02, .233E+02, .150E+02, .144E+02, .194E+02, .235E+02, .126E+02, .138E+02, .239E+02, .120E+02, .132E+02, .126E+02, .490E+01, .114E+02, .120E+02, .108E+02,
5187 : .245E+02, .114E+02, .108E+02, .102E+02, .102E+02, .963E+01, .963E+01, .904E+01, .904E+01, .383E+01, .383E+01, .847E+01, .847E+01, .789E+01, .789E+01, .731E+01, .731E+01, .251E+02,
5188 : .673E+01, .673E+01, .615E+01, .615E+01, .556E+01, .556E+01, .807E+01, .497E+01, .497E+01, .437E+01, .437E+01, .375E+01, .375E+01, .311E+01, .311E+01, .244E+01, .244E+01, .172E+01,
5189 : .172E+01, .925E+00, .925E+00, .316E+02, .120E+01, .120E+01, .224E+02, .316E+02, .257E+02, .448E+01, .262E+02, .161E+02, .506E+01, .506E+01, .236E+02, .163E+02, .407E+01, .407E+01,
5190 : .204E+02, .268E+02, .239E+01, .239E+01, .509E+01, .720E-01, .720E-01, .809E+01, .175E+01, .629E+01, .629E+01, .273E+02, .808E+01, .125E+02, .361E+01, .361E+01, .278E+02, .327E+02,
5191 : .327E+02, .100E+01, .100E+01, .162E+02, .161E+02, .235E+02, .215E+02, .530E+01, .483E+01, .483E+01, .458E+01, .426E+01, .426E+01, .163E+02, .217E+01, .217E+01, .809E+01, .607E+01,
5192 : .607E+01, .808E+01, .551E+01, .337E+02, .338E+01, .338E+01, .337E+02, .225E+02, .162E+02, .812E+00, .812E+00, .246E+02, .461E+01, .461E+01, .445E+01, .445E+01, .573E+01, .810E+01,
5193 : .195E+01, .195E+01, .172E+02, .163E+02, .161E+01, .466E+01, .584E+01, .584E+01, .133E+02, .236E+02, .809E+01, .347E+02, .347E+02, .162E+02, .316E+01, .316E+01, .707E+01, .707E+01,
5194 : .596E+01, .629E+00, .629E+00, .283E-04, .256E+02, .438E+01, .438E+01, .465E+01, .465E+01, .810E+01, .174E+01, .174E+01, .246E+02, .621E+01, .562E+01, .562E+01, .810E+01, .357E+02,
5195 : .471E+01, .162E+02, .357E+02, .183E+02, .286E+02, .294E+01, .294E+01, .685E+01, .685E+01, .458E+00, .458E+00, .148E-03, .649E+01, .267E+02, .278E+02, .416E+01, .416E+01, .484E+01,
5196 : .257E+02, .484E+01, .141E+02, .810E+01, .153E+01, .153E+01, .678E+01, .810E+01, .270E+02, .539E+01, .539E+01, .147E+01, .367E+02, .367E+02, .272E+01, .272E+01, .662E+01, .662E+01,
5197 : .263E+02, .450E+01, .450E+01, .710E+01, .474E+01, .302E+00, .302E+00, .474E-03, .267E+02, .277E+02, .255E+02, .194E+02, .394E+01, .394E+01, .504E+01, .504E+01, .745E+01, .811E+01,
5198 : .133E+01, .133E+01, .248E+02, .811E+01, .377E+02, .377E+02, .517E+01, .517E+01, .241E+02, .783E+01, .250E+01, .250E+01, .640E+01, .640E+01, .234E+02, .457E+01, .457E+01, .839E-01,
5199 : .839E-01, .118E-02, .278E+02, .227E+02, .825E+01, .150E+02, .288E+02, .281E+02, .274E+02, .221E+02, .267E+02, .371E+01, .371E+01, .473E+01, .523E+01, .260E+02, .523E+01, .811E+01,
5200 : .254E+02, .214E+02, .247E+02, .870E+01, .113E+01, .113E+01, .811E+01, .240E+02, .387E+02, .387E+02, .207E+02, .205E+02, .233E+02};
5201 :
5202 : static const double el[1363]={
5203 : 424.292, 287.709, 1543.708, 484.554, 70.647, 1543.513, 1124.609, 789.770, 771.538, 732.512, 11.284, 199.673, 1076.979, 832.364, 263.425, 312.612, 731.779, 7.045,
5204 : 1124.536, 452.992, 747.709, 693.846, 1076.446,1600.115, 220.137, 516.433, 1487.264, 178.048, 198.427, 158.861, 58.753, 219.898, 338.689, 1172.866, 1600.063, 1487.044,
5205 : 394.599, 240.098, 811.569, 140.769, 453.735, 875.898, 242.461, 706.857, 82.419, 15.885, 123.776, 771.431, 1029.719, 366.049, 179.328, 266.115, 422.410, 692.885,
5206 : 3.504, 549.552, 667.216, 107.886, 1172.824, 1029.399, 218.016, 394.599, 290.962, 655.940, 1431.849, 628.790, 920.538, 1222.328, 852.818, 93.105, 1431.677, 424.344,
5207 : 241.302, 47.982, 591.680, 366.035, 316.806, 455.291, 21.562, 583.814, 393.003, 555.687, 487.544, 484.426, 521.009, 655.182, 983.680, 95.264, 79.538, 196.986,
5208 : 811.407, 160.229, 983.452, 343.849, 1222.182, 966.188, 895.288, 619.264, 1377.648, 1272.897, 66.992, 619.228, 1377.514, 364.876, 1467.466, 38.241, 177.113, 28.418,
5209 : 338.714, 371.994, 618.673, 263.625, 1.186, 938.860, 3.516, 55.674, 7.009, 938.605, 655.899, 109.286, 516.165, 11.764, 938.883, 142.275, 852.636, 17.578,
5210 : 1013.055, 1324.675, 1324.658, 583.817, 1409.916,1272.805, 1324.555, 24.549, 401.247, 158.404, 337.733, 45.490, 32.773, 693.834, -.020, 583.360, 29.832, 36.357,
5211 : 312.630, 895.257, 42.046, 983.708, 1353.578, 895.061, 431.511, 287.206, 52.565, 36.346, 732.940, 125.565, 1377.664, 140.863, 1060.947, 124.585, 1272.879,1272.800,
5212 : 549.493, 311.877, 549.151, 895.015, 64.125, 1324.590, 1.175, 1298.357, 549.144, 773.225, 1029.768, 22.554, 45.485, 287.781, 852.768, 28.349, 76.922, 462.992,
5213 : 852.619, 1244.454, 814.796, 124.495, 1431.869, 287.211, 1222.309, 110.095, 1109.969, 90.753, 1222.249, 3.504, 516.491, 1191.774, 857.660, 311.849, 1076.968, 140.864,
5214 : 516.227, 21.603, 901.623, 1140.316, 1657.686, 1657.662, 938.640, 1377.534, 495.496, 583.383, 105.716, 16.509, 811.592, 946.891, 1090.080, 264.061, 55.706, 109.304,
5215 : 811.479, 993.371, 1041.166, 1487.191, 7.066, 263.637, 1172.848, 1125.414, 1172.802, 95.862, 15.812, 121.908, 484.608, 1160.030, 484.411, 1600.133, 529.128, 1600.116,
5216 : 95.294, 771.528, 158.426, 11.697, 241.567, 337.757, 771.443, 11.760, 1543.735, 1431.731, 139.029, 67.024, 1175.113, 983.408, 241.257, 11.281, 618.662,1124.594,
5217 : 1124.559, 82.763, 453.940, 453.795, 1211.237, 563.895, 1543.687, 157.379, 1543.673, 1225.970, 82.368, 17.583, 732.574, 732.511, 220.296, 220.173, 168.063, 79.546,
5218 : 148.938, 188.435, 177.175, 130.965, 209.949, 114.151, 1077.547, 1077.521, 232.598, 1277.993, 1486.979, 364.834, 98.504, 70.893, 424.386, 176.860, 424.280, 256.380,
5219 : 24.633, 84.030, 1029.319, 70.629, 1488.445, 70.837, 1488.435, 599.704, 655.191, 281.389, 58.734, 694.928, 1263.598, 1331.289, 694.882, 200.243, 47.927, 307.424,
5220 : 200.087, 38.323, 197.375, 93.174, 32.806, 1031.606, 1031.587, 29.830, 334.679, 1385.765, 60.248, 396.144, 396.068, 22.554, 197.013, 60.080, 16.598, 1434.408,
5221 : 1434.401, 1543.473, 11.669, 8.069, 636.662, 363.054, 1441.528, 658.391, 393.082, 658.358, 181.407, 7.862, 181.299, 42.099, 1076.470, 11.257, 218.929, 1317.021,
5222 : 15.817, 1498.485, 692.872, 986.971, 986.957, 392.546, 21.542, 107.914, 50.823, 369.012, 368.958, 28.332, 50.722, 36.385, 1381.476, 1381.470, 52.506, 623.061,
5223 : 423.054, 217.945, 623.037, 45.403, 163.683, 674.676, 241.626, 163.612, 55.683, 943.442, 943.432, 42.615, 422.407, 343.089, 123.768, 42.559, 343.052, 67.028,
5224 : 64.124, 1371.515, 454.779, 1124.762, 1329.847, 1329.843, 5.650, 79.535, 5.580, 588.937, 588.920, 731.808, 265.474, 147.271, 147.224, 713.855, 93.105, 76.947,
5225 : 487.522, 240.074, 901.117, 901.110, 35.519, 35.490, 318.373, 318.348, 140.740, 107.837, 8.045, 1279.323, 1279.320, 1427.087, 7.833, 574.630, 556.018, 556.006,
5226 : 611.699, 538.587, 290.379, 90.771, 131.967, 131.938, 123.733, 453.011, 649.989, 521.385, 503.777, 1723.351, 1723.350, 470.205, 689.396, 1174.295, 754.105, 859.897,
5227 : 859.892, 437.680, 29.631, 29.619, 730.016, 140.692, 294.864, 294.847, 406.409, 771.803, 11.674, 158.829, 263.406, 105.791, 771.646, 1230.003, 1230.001, 376.400,
5228 : 556.371, 158.814, 524.205, 524.196, 117.770, 117.753, 316.349, 11.346, 814.483, 347.464, 1665.832, 1665.831, 819.981, 819.977, 319.808, 121.904, 178.100, 272.460,
5229 : 272.449, 16.538, 795.434, 858.426, 484.699, 293.342, 178.038, 592.387, 1181.786, 1181.784, 493.696, 493.690, 104.879, 1224.971, 104.869, 198.451, 343.490, 268.074,
5230 : 287.845, 15.817, 903.474, 1609.516, 1609.515, 139.106, 813.061, 22.537, 244.113, 781.168, 781.166, 251.361, 251.354, 219.867, 221.266, 629.537, 949.528, 1134.772,
5231 : 1134.771, 198.467, 837.850, 199.739, 157.394, 93.093, 464.291, 93.087, 464.287, 371.611, 29.869, 242.449, 179.338, 1554.402, 1554.402, 517.577, 21.541, 160.166,
5232 : 743.560, 743.558, 313.395, 996.789, 231.367, 231.362, 142.227, 1276.793, 176.768, 667.728, 125.520, 266.098, 1088.961, 1088.960, 219.915, 110.046, 38.236, 82.509,
5233 : 82.507, 435.990, 435.987, 95.804, 855.487, 881.360, 82.791, 400.918, 70.903, 1500.392, 1500.391, 1045.060, 60.238, 50.792, 42.561, 35.541, 29.630, 24.925,
5234 : 24.920, 29.618, 35.514, 42.506, 50.693, 60.074, 707.054, 707.053, 70.647, 290.916, 28.414, 82.411, 212.475, 212.473, 95.263, 1221.961, 1169.249, 197.325,
5235 : 109.302, 1275.782, 1117.651, 124.525, 47.936, 140.931, 1330.708, 1067.274, 158.418, 707.068, 340.162,1044.353, 1044.353, 551.647, 177.083, 242.481, 1386.835, 73.129,
5236 : 73.128, 1018.025, 408.992, 408.990, 196.924, 1094.444, 316.803, 217.941, 970.010, 1447.583, 1447.583, 1444.060, 431.317, 926.069, 218.966, 240.129, 58.769, 671.852,
5237 : 671.851, 194.887, 194.885, 1329.763, 923.139, 263.390, 1502.382, 36.330, 287.819, 899.085, 343.862,1000.848, 1000.848, 877.421, 747.465, 266.164, 64.950, 64.950,
5238 : 383.097, 383.096, 1144.846, 313.417, 70.834, 241.691, 367.949, 1395.978, 1395.978, 832.965, 340.082, 462.714, 637.752, 637.751, 586.816, 178.401, 178.400, 371.994,
5239 : 971.784, 368.013, 789.681, 84.030, 958.546, 958.546, 57.873, 57.873, 290.962, 396.908, 358.405, 358.404, 265.401, 45.383, 1196.373, 788.927, 747.679, 1345.474,
5240 : 1345.474, 401.200, 21.397, 21.396, 1383.986, 427.068, 98.455, 604.855, 604.854, 163.118, 163.117, 495.314, 706.769, 396.961, 943.760, 1798.134, 1798.134, 458.292,
5241 : 1018.609, 290.397, 917.446, 917.446, 316.875, 667.160, 334.915, 334.914, 1249.031, 114.108, 623.189, 431.482, 490.680, 831.462, 1296.173, 1296.173, 24.923, 24.919,
5242 : 55.668, 628.760, 573.060, 573.060, 149.036, 149.036, 529.020, 1740.733, 1740.733, 524.231, 130.888, 316.379, 591.677, 427.100, 877.548, 877.548, 462.942, 343.800,
5243 : 312.627, 312.627, 1066.549, 558.846, 1302.727, 555.718, 1439.367, 148.891, 1248.074, 1248.074, 29.653, 29.641, 875.079, 989.719, 542.568, 542.567, 136.156, 136.156,
5244 : 520.988, 343.450, 563.736, 1684.434, 1684.434, 594.525, 495.481, 660.669, 66.976, 168.116, 487.491, 838.752, 838.752, 371.936, 291.441, 291.441, 458.270, 455.329,
5245 : 631.368, 1115.507, 35.488, 1201.076, 1201.076, 1357.472, 35.460, 188.459, 371.610, 424.304, 513.177, 513.177, 124.377, 124.377, 529.102, 919.885, 1629.337, 1629.337,
5246 : 394.517, 599.662, 669.378, 401.183, 365.965, 801.158, 801.158, 209.917, 271.457, 271.457, 338.748, 1495.909, 1526.242, 1036.765, 312.562, 42.532, 79.503,1155.281,
5247 : 1155.281, 42.474, 699.364, 400.861, 287.706, 563.905, 490.672, 708.453, 113.799, 113.799, 484.888, 484.888, 232.586, 1165.584, 264.076, 1413.273, 241.569, 220.282,
5248 : 1467.448, 1575.341, 1575.341, 200.312, 965.686, 181.356, 163.713, 636.601, 147.180, 263.679, 287.178, 241.276, 311.871, 220.070, 200.062, 337.756, 131.954, 181.253,
5249 : 163.644, 431.537, 117.836, 147.135, 364.833, 131.926, 104.822, 117.818, 93.112, 104.812, 93.107, 82.505, 82.503, 73.101, 73.100, 392.999, 64.898, 64.898,
5250 : 57.897, 57.896, 51.996, 51.996, 764.766, 764.766, 422.451, 452.990, 252.675, 252.675, 256.363, 484.711, 748.596, 517.613, 1409.930, 431.304, 551.595, 599.693,
5251 : 50.787, 1110.687, 1110.687, 50.683, 586.853, 104.422, 104.422, 457.902, 457.902, 623.187, 281.343, 524.207, 660.694, 1216.782, 1522.547, 1522.547, 1470.140, 789.907,
5252 : 1353.497, 462.999, 699.372, 674.653, 93.142,1012.589, 739.177, 729.476, 729.476, 234.994, 234.994, 307.421, 739.220, 1085.005, 636.667, 462.740, 60.257, 1298.361,
5253 : 780.137, 1067.295, 1067.295, 60.084, 832.389, 96.146, 96.146, 432.016, 432.016, 822.220, 334.692, 1470.955, 1470.955, 495.468, 1244.429, 1269.102, 558.776, 865.470,
5254 : 713.818, 695.388, 695.388, 674.729, 218.614, 218.614, 495.371, 1060.599, 363.053, 70.946, 875.842, 909.784, 1191.711, 1025.005, 1025.005, 70.675, 407.432, 407.432,
5255 : 780.115, 107.887, 955.262, 392.498, 1420.564, 1420.564, 529.142, 1140.314, 713.880, 920.468, 1134.344, 1001.905, 662.501, 662.501, 528.997, 753.995, 1322.544, 203.335,
5256 : 203.335, 594.577, 1881.863, 1881.863, 82.760, 423.025, 1109.619, 1090.045, 983.916, 983.915, 1049.610, 82.353, 383.850, 383.850, 966.169, 563.920, 1371.274, 1371.274,
5257 : 754.121, 1041.108, 1098.479, 454.728, 563.719, 47.295, 47.295, 630.815, 630.815, 95.802, 795.385, 189.157, 189.157, 822.181, 1824.374, 1824.374, 1377.007, 631.410,
5258 : 993.408, 123.735, 1148.511, 943.928, 943.928, 1159.753, 1013.046, 95.215, 487.507, 361.568, 361.568, 946.846, 599.702, 795.453, 1184.889, 1323.186, 1323.186, 599.637,
5259 : 1199.607, 110.077, 52.020, 52.019, 600.330, 600.330, 901.624, 837.785, 176.279, 176.279, 1768.186, 1768.186, 521.359, 1060.901, 857.642, 669.374, 1251.768, 905.241,
5260 : 905.241, 340.388, 340.388, 109.257, 1211.003, 814.798, 636.688, 865.380, 837.878, 125.588, 636.552, 1276.198, 1276.198, 556.382, 773.293, 57.845, 57.845,1305.093,
5261 : 570.947, 570.947, 164.503, 164.503, 881.396, 1109.936, 732.922, 1713.099, 1713.099, 140.682, 693.785, 867.656, 867.656, 655.877, 592.376, 708.466, 142.241, 320.408,
5262 : 320.408, 881.396, 1359.484, 674.677, 1236.644, 619.197, 124.477, 674.666, 1263.371, 583.741, 1230.512, 1230.512, 549.506, 64.870, 64.870, 1160.053, 855.493, 516.391,
5263 : 813.090, 898.984, 771.777, 542.765, 542.765, 943.762, 731.756, 692.929, 153.926, 153.926, 989.724, 926.017, 655.197, 484.592, 1036.769, 618.662, 583.324, 909.816,
5264 : 1659.113, 1659.113, 453.908, 1084.994, 549.186, 516.147, 629.542, 1415.041, 424.436, 484.409, 1134.398, 396.076, 453.772, 424.337, 160.136, 369.024, 396.004, 343.081,
5265 : 1184.978, 368.973, 343.046, 318.345, 318.321, 294.815, 294.798, 272.490, 272.479, 831.272, 831.272, 251.269, 251.262, 231.352, 231.347, 212.538, 212.535, 1236.633,
5266 : 194.827, 194.825, 178.418, 178.417, 163.111, 163.110, 926.010, 149.005, 149.005, 136.101, 136.101, 124.398, 124.398, 113.796, 113.796, 104.395, 104.395, 96.194,
5267 : 96.194, 89.094, 89.094, 713.868, 301.629, 301.629, 748.584, 713.777, 1289.460, 140.868, 1343.458, 1211.252, 1185.927, 1185.927, 1471.667, 1316.856, 73.097, 73.096,
5268 : 667.780, 1398.626, 515.684, 515.684, 179.277, 144.550, 144.550, 971.746, 158.824, 1606.428, 1606.428, 1454.862, 971.718, 1289.516, 795.989, 795.989, 1512.264, 754.062,
5269 : 754.087, 284.051, 284.051, 955.291, 1263.537, 789.926, 707.093, 199.664, 1142.443, 1142.443, 158.428, 82.525, 82.522, 1371.359, 489.903, 489.903, 1018.583, 1554.845,
5270 : 1554.845, 1018.523, 221.298, 795.457, 762.007, 762.007, 795.396, 747.480, 1317.007, 267.574, 267.574, 832.290, 1100.260, 1100.260, 93.055, 93.049, 244.078,1066.527,
5271 : 465.224, 465.224, 1001.909, 1426.979, 178.062, 177.149, 1504.361, 1504.361, 1343.510, 788.945, 1066.524, 837.854, 837.805, 1371.466, 729.125, 729.125, 1974.209, 1974.209,
5272 : 268.103, 252.297, 252.297, 3.481, 875.873, 1059.178, 1059.178, 104.888, 104.877, 1115.477, 441.745, 441.745, 831.490, 293.370, 1455.079, 1455.079, 1115.523, 881.353,
5273 : 196.928, 1427.013, 881.412, 1049.671, 1556.670, 697.445, 697.445, 1916.828, 1916.828, 238.221, 238.221, 7.001, 319.779, 920.473, 1498.514, 1019.196, 1019.196, 117.824,
5274 : 875.116, 117.806, 1398.633, 1165.632, 419.367, 419.367, 347.526, 1165.619, 1441.498, 1406.998, 1406.998, 198.394, 926.052, 926.019, 666.865, 666.865, 1860.548, 1860.548,
5275 : 1385.822, 83.218, 83.218, 376.307, 217.956, 225.345, 225.345, 11.716, 919.825, 966.189, 1331.283, 1098.477, 980.516, 980.516, 131.865, 131.835, 406.421, 1216.792,
5276 : 398.289, 398.289, 1277.978, 1216.814, 971.753, 971.726, 1360.117, 1360.117, 1225.906, 437.663, 637.486, 637.486, 1805.568, 1805.568, 1175.063, 89.142, 89.142, 213.569,
5277 : 213.569, 17.521, 965.620, 1125.446, 470.129, 1454.888, 1013.018, 1553.610, 1495.878, 1076.954, 1439.336, 942.936, 942.936, 240.028, 147.212, 1383.985, 147.164, 1269.056,
5278 : 1329.827, 1029.683, 1276.763, 503.816, 378.312, 378.312, 1269.108, 1224.895, 1018.555, 1018.533, 983.731, 1148.427, 1174.224};
5279 :
5280 : static const double texpO3[1363] ={
5281 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.78, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.82,0.81,0.81,0.76, 0.78,0.76,0.76,0.78,0.78,0.78,0.77,0.78,0.76,0.76,0.76,0.76,
5282 : 0.79,0.76,0.78,0.78,0.79,0.76,0.76,0.76,0.77,0.76,0.77,0.81, 0.76,0.76,0.78,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76, 0.76,0.76,0.76,0.81,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,
5283 : 0.78,0.77,0.76,0.79,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.80, 0.76,0.76,0.76,0.77,0.77,0.78,0.82,0.78,0.76,0.76,0.76,0.76, 0.76,0.80,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.77,0.78,0.77,
5284 : 0.79,0.76,0.76,0.78,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.77, 0.80,0.76,0.76,0.77,0.82,0.76,0.76,0.76,0.76,0.80,0.76,0.76, 0.76,0.76,0.76,0.78,0.76,0.77,0.77,0.76,0.76,0.76,0.76,0.77,
5285 : 0.79,0.76,0.77,0.76,0.76,0.76,0.76,0.79,0.77,0.77,0.76,0.77, 0.76,0.77,0.76,0.77,0.76,0.76,0.80,0.79,0.80,0.82,0.77,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.78,0.76,0.76,0.77,0.76,
5286 : 0.76,0.76,0.76,0.77,0.76,0.78,0.76,0.77,0.76,0.77,0.76,0.76, 0.80,0.76,0.76,0.79,0.76,0.78,0.76,0.76,0.76,0.76,0.76,0.76, 0.82,0.76,0.76,0.80,0.77,0.76,0.76,0.76,0.76,0.78,0.77,0.77,
5287 : 0.76,0.76,0.76,0.76,0.76,0.78,0.76,0.76,0.76,0.77,0.76,0.77, 0.79,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.78,0.76,0.78,0.79, 0.76,0.76,0.76,0.76,0.78,0.77,0.76,0.83,0.78,0.76,0.81,0.76,
5288 : 0.76,0.77,0.79,0.79,0.76,0.76,0.76,0.78,0.76,0.76,0.77,0.76, 0.76,0.76,0.78,0.78,0.78,0.77,0.78,0.78,0.78,0.77,0.78,0.77, 0.76,0.76,0.78,0.76,0.76,0.79,0.77,0.77,0.79,0.76,0.79,0.79,
5289 : 0.77,0.77,0.83,0.77,0.76,0.77,0.76,0.76,0.81,0.76,0.77,0.81, 0.76,0.76,0.76,0.78,0.77,0.76,0.78,0.77,0.76,0.77,0.77,0.76, 0.76,0.76,0.76,0.76,0.77,0.79,0.79,0.76,0.78,0.77,0.76,0.76,
5290 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.80,0.79,0.80,0.78,0.76, 0.78,0.77,0.83,0.76,0.76,0.76,0.76,0.76,0.81,0.76,0.76,0.76, 0.76,0.77,0.77,0.79,0.79,0.76,0.77,0.77,0.76,0.76,0.77,0.80,
5291 : 0.79,0.78,0.80,0.77,0.77,0.76,0.76,0.77,0.77,0.76,0.76,0.76, 0.79,0.79,0.78,0.76,0.79,0.77,0.77,0.76,0.80,0.83,0.76,0.76, 0.76,0.77,0.76,0.80,0.80,0.81,0.76,0.77,0.77,0.76,0.77,0.77,
5292 : 0.80,0.78,0.76,0.76,0.76,0.76,0.78,0.78,0.78,0.77,0.76,0.76, 0.76,0.76,0.76,0.76,0.80,0.80,0.76,0.76,0.76,0.77,0.77,0.77, 0.77,0.80,0.76,0.80,0.76,0.76,0.76,0.76,0.76,0.84,0.76,0.81,
5293 : 0.81,0.76,0.76,0.76,0.76,0.78,0.78,0.78,0.76,0.82,0.76,0.78, 0.79,0.77,0.76,0.76,0.76,0.79,0.80,0.76,0.79,0.79,0.77,0.77, 0.76,0.76,0.76,0.79,0.76,0.76,0.81,0.81,0.79,0.78,0.76,0.78,
5294 : 0.78,0.76,0.76,0.76,0.80,0.79,0.78,0.76,0.83,0.83,0.79,0.79, 0.77,0.84,0.77,0.76,0.76,0.78,0.79,0.76,0.76,0.76,0.76,0.78, 0.82,0.76,0.78,0.81,0.81,0.78,0.78,0.76,0.78,0.76,0.76,0.83,
5295 : 0.83,0.78,0.76,0.78,0.78,0.77,0.79,0.77,0.77,0.76,0.77,0.76, 0.78,0.76,0.76,0.76,0.76,0.78,0.81,0.81,0.76,0.76,0.78,0.78, 0.77,0.76,0.78,0.76,0.77,0.76,0.82,0.82,0.78,0.77,0.77,0.77,
5296 : 0.77,0.79,0.79,0.77,0.76,0.76,0.77,0.76,0.77,0.76,0.76,0.76, 0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.77, 0.80,0.80,0.77,0.76,0.77,0.77,0.78,0.78,0.77,0.76,0.76,0.78,
5297 : 0.77,0.76,0.76,0.77,0.77,0.77,0.76,0.76,0.78,0.76,0.76,0.82, 0.82,0.76,0.78,0.79,0.76,0.77,0.77,0.76,0.79,0.79,0.78,0.76, 0.76,0.78,0.76,0.84,0.84,0.76,0.76,0.76,0.78,0.78,0.77,0.80,
5298 : 0.80,0.77,0.77,0.76,0.76,0.78,0.76,0.77,0.79,0.76,0.76,0.82, 0.82,0.76,0.76,0.79,0.76,0.76,0.79,0.79,0.76,0.79,0.77,0.79, 0.76,0.84,0.84,0.76,0.79,0.76,0.80,0.80,0.76,0.77,0.77,0.76,
5299 : 0.76,0.79,0.76,0.77,0.82,0.82,0.76,0.76,0.79,0.79,0.78,0.78, 0.79,0.77,0.76,0.76,0.76,0.83,0.76,0.76,0.76,0.76,0.76,0.79, 0.77,0.80,0.80,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.80,
5300 : 0.76,0.79,0.81,0.81,0.79,0.81,0.78,0.78,0.76,0.77,0.76,0.76, 0.80,0.76,0.76,0.76,0.76,0.76,0.77,0.81,0.79,0.79,0.77,0.77, 0.76,0.76,0.76,0.76,0.78,0.79,0.80,0.76,0.81,0.81,0.76,0.79,
5301 : 0.78,0.78,0.76,0.76,0.76,0.80,0.76,0.78,0.76,0.76,0.76,0.76, 0.76,0.76,0.79,0.79,0.77,0.77,0.80,0.79,0.76,0.76,0.76,0.76, 0.76,0.76,0.77,0.78,0.80,0.81,0.76,0.79,0.78,0.78,0.76,0.79,
5302 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.78,0.79,0.79,0.79,0.79, 0.77,0.77,0.76,0.76,0.76,0.76,0.79,0.76,0.76,0.80,0.79,0.81, 0.76,0.78,0.78,0.78,0.79,0.76,0.76,0.76,0.79,0.77,0.77,0.76,
5303 : 0.76,0.77,0.76,0.80,0.78,0.76,0.76,0.76,0.77,0.77,0.79,0.79, 0.78,0.76,0.78,0.76,0.78,0.78,0.76,0.76,0.76,0.78,0.76,0.78, 0.77,0.76,0.77,0.78,0.78,0.78,0.79,0.78,0.78,0.79,0.77,0.78,
5304 : 0.77,0.80,0.77,0.77,0.79,0.77,0.77,0.77,0.77,0.77,0.77,0.77, 0.77,0.77,0.77,0.79,0.79,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.79,0.76,0.78,0.78,0.79,0.76,0.76,0.76,0.76,0.80,0.76,0.76,
5305 : 0.77,0.76,0.76,0.77,0.76,0.77,0.77,0.79,0.79,0.76,0.79,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.77,0.76, 0.76,0.76,0.76,0.77,0.77,0.79,0.76,0.76,0.76,0.80,0.77,0.76,
5306 : 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.79,0.79,0.76,0.79,0.76, 0.76,0.80,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.77, 0.76,0.76,0.79,0.77,0.76,0.76,0.76,0.76,0.76,0.77,0.78,0.78,
5307 : 0.76,0.77,0.76,0.79,0.76,0.76,0.81,0.76,0.76,0.76,0.76,0.82, 0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.76,0.76,0.76,0.77,0.80, 0.76,0.83,0.76,0.76,0.76,0.77,0.78,0.78,0.76,0.81,0.76,0.76,
5308 : 0.76,0.83,0.76,0.80,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.77, 0.77,0.76,0.76,0.76,0.76,0.76,0.83,0.78,0.76,0.76,0.76,0.76, 0.76,0.77,0.80,0.78,0.78,0.82,0.76,0.76,0.76,0.76,0.76,0.76,
5309 : 0.76,0.77,0.76,0.76,0.76,0.76,0.82,0.76,0.77,0.77,0.76,0.76, 0.80,0.76,0.82,0.76,0.76,0.76,0.76,0.78,0.78,0.77,0.76,0.82, 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.81,0.81,0.76,0.76,0.76,
5310 : 0.76,0.76,0.77,0.77,0.76,0.76,0.81,0.76,0.76,0.78,0.81,0.76, 0.76,0.81,0.81,0.76,0.78,0.78,0.78,0.76,0.76,0.76,0.76,0.80, 0.77,0.76,0.76,0.80,0.76,0.76,0.80,0.77,0.77,0.76,0.76,0.80,
5311 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.76,0.76, 0.76,0.79,0.76,0.80,0.80,0.76,0.76,0.76,0.79,0.76,0.80,0.80, 0.76,0.76,0.79,0.79,0.76,0.79,0.78,0.79,0.78,0.79,0.79,0.79,
5312 : 0.76,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.76,0.76,0.78, 0.78,0.78,0.78,0.78,0.78,0.76,0.77,0.77,0.77,0.77,0.77,0.77, 0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,
5313 : 0.76,0.76,0.76,0.76,0.78,0.78,0.76,0.76,0.76,0.78,0.76,0.76, 0.76,0.76,0.76,0.76,0.77,0.77,0.81,0.76,0.76,0.76,0.78,0.77, 0.77,0.76,0.78,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
5314 : 0.76,0.77,0.77,0.76,0.76,0.76,0.82,0.78,0.76,0.76,0.78,0.77, 0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.82,0.76,0.77,0.77,0.76,0.76,0.76,0.77,0.77,0.76,0.76,
5315 : 0.76,0.76,0.76,0.76,0.78,0.78,0.76,0.76,0.76,0.82,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.76,0.76,0.76, 0.76,0.77,0.77,0.76,0.76,0.76,0.82,0.76,0.76,0.76,0.76,0.76,
5316 : 0.78,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.76, 0.76,0.76,0.76,0.76,0.76,0.77,0.83,0.77,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
5317 : 0.76,0.76,0.76,0.76,0.78,0.77,0.77,0.76,0.83,0.76,0.76,0.76, 0.76,0.76,0.77,0.77,0.76,0.76,0.76,0.76,0.84,0.76,0.76,0.76, 0.76,0.76,0.84,0.76,0.76,0.76,0.76,0.76,0.83,0.76,0.76,0.77,
5318 : 0.77,0.76,0.83,0.83,0.76,0.76,0.76,0.76,0.76,0.83,0.76,0.76, 0.76,0.78,0.77,0.76,0.77,0.76,0.76,0.83,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.82,0.76,0.76};
5319 :
5320 : static const double brdO3air[1363] ={
5321 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.5984,2.2877,2.3000,2.3000,2.3000,2.3000,2.3000,2.6428, 2.3000,2.3000,2.0716,2.0894,2.0894,2.3000,2.2669,2.3000,2.3000,
5322 : 2.1959,2.1782,2.2166,2.4623,2.1604,2.3000,2.3000,2.3000,2.3000, 2.1722,2.3000,2.2403,2.2403,2.1456,2.3000,2.3000,2.3000,2.4120, 2.5540,2.2640,2.0775,2.3000,2.3000,2.3084,2.3000,2.3000,2.3000,
5323 : 2.6901,2.3000,2.3000,2.2877,2.3000,2.3000,2.3000,2.3000,2.3000, 2.0953,2.3000,2.3000,2.3000,2.3000,2.3000,2.3143,2.3000,2.3000, 2.2492,2.4859,2.3000,2.1870,2.3000,2.3000,2.5155,2.3000,2.3000,
5324 : 2.3000,2.3000,2.1338,2.3000,2.3000,2.3000,2.3883,2.3439,2.2877, 2.0716,2.3291,2.3000,2.3000,2.3000,2.3000,2.3000,2.1042,2.3000, 2.3000,2.3735,2.3000,2.3000,2.3000,2.3000,2.5126,2.3084,2.4771,
5325 : 2.2018,2.3000,2.3000,2.2314,2.6250,2.3000,2.5895,2.4060,2.5570, 2.3000,2.3000,2.3676,2.1249,2.5244,2.3000,2.3498,2.0687,2.4948, 2.3000,2.3000,2.3000,2.1130,2.3000,2.3000,2.3000,2.4682,2.3000,
5326 : 2.3291,2.3000,2.4386,2.4415,2.3000,2.7405,2.3000,2.5392,2.4386, 2.2166,2.3000,2.4149,2.3000,2.3000,2.3000,2.3000,2.2166,2.3912, 2.4771,2.3000,2.3735,2.3000,2.3498,2.3000,2.3439,2.3000,2.3000,
5327 : 2.1249,2.2166,2.1130,2.0627,2.3705,2.3000,2.6901,2.3000,2.3000, 2.3000,2.3000,2.5658,2.4060,2.2314,2.3000,2.5155,2.3498,2.3000, 2.3000,2.3000,2.3000,2.3735,2.3000,2.2314,2.3000,2.3942,2.3000,
5328 : 2.3291,2.3000,2.6428,2.1338,2.3000,2.3000,2.2018,2.3000,2.3232, 2.3000,2.5540,2.3000,2.3000,2.3000,2.3000,2.0598,2.3000,2.3000, 2.1042,2.3113,2.5925,2.3000,2.3000,2.3000,2.2492,2.3735,2.3942,
5329 : 2.3000,2.3000,2.3000,2.3000,2.5984,2.2492,2.3000,2.3000,2.3000, 2.4208,2.5984,2.2936,2.1456,2.3000,2.3000,2.3000,2.3000,2.3000, 2.4208,2.3000,2.3025,2.6191,2.2669,2.1870,2.3000,2.5540,2.3000,
5330 : 2.3000,2.2788,2.3439,2.3000,2.0598,2.2669,2.6428,2.0953,2.3000, 2.3000,2.4445,2.1574,2.1574,2.3000,2.3000,2.3000,2.2610,2.3000, 2.3000,2.4445,2.5155,2.3000,2.3000,2.2877,2.2877,2.2610,2.3143,
5331 : 2.2788,2.2462,2.2817,2.2936,2.2344,2.3113,2.3000,2.3000,2.2196, 2.3000,2.3000,2.1722,2.3291,2.4711,2.1722,2.3000,2.1722,2.1722, 2.4771,2.3498,2.0568,2.4711,2.3000,2.3705,2.3000,2.3000,2.0894,
5332 : 2.3000,2.3912,2.0953,2.3000,2.3000,2.3000,2.3084,2.4149,2.3000, 2.3084,2.4415,2.3000,2.2877,2.4386,2.3000,2.3000,2.4682,2.3000, 2.3000,2.4978,2.1870,2.1870,2.4948,2.2640,2.4978,2.5244,2.3000,
5333 : 2.3000,2.3000,2.5570,2.5895,2.3000,2.3000,2.3000,2.1042,2.1574, 2.1042,2.3291,2.5895,2.3291,2.4060,2.0568,2.5570,2.3000,2.3000, 2.5244,2.3000,2.0835,2.3000,2.3000,2.3000,2.4948,2.2640,2.5244,
5334 : 2.2018,2.2018,2.4682,2.5244,2.4415,2.3000,2.3000,2.3735,2.1130, 2.1397,2.2433,2.1130,2.4149,2.3498,2.3000,2.3000,2.3498,2.3912, 2.3000,2.3000,2.5540,2.1456,2.2166,2.2403,2.5540,2.2166,2.3705,
5335 : 2.3439,2.3000,2.1308,2.0568,2.3000,2.3000,2.6487,2.3498,2.6901, 2.1249,2.1249,2.0775,2.3000,2.3735,2.3735,2.3000,2.3291,2.3143, 2.1190,2.2255,2.3000,2.3000,2.5836,2.5836,2.2314,2.2314,2.2166,
5336 : 2.3113,2.6191,2.3000,2.3000,2.3000,2.6428,2.3000,2.1338,2.1338, 2.3000,2.3000,2.3000,2.2877,2.3942,2.3942,2.2936,2.1338,2.3000, 2.1071,2.3000,2.3000,2.3000,2.3000,2.3000,2.0598,2.3000,2.0775,
5337 : 2.0775,2.3000,2.6132,2.6132,2.3000,2.2788,2.2492,2.2492,2.3000, 2.0716,2.5925,2.1959,2.2078,2.2640,2.3000,2.3000,2.3000,2.1604, 2.1900,2.3000,2.1456,2.1456,2.4208,2.4208,2.3000,2.5984,2.3000,
5338 : 2.1722,2.3000,2.3000,2.0835,2.0835,2.1841,2.2403,2.3000,2.2669, 2.2669,2.5658,2.3000,2.3000,2.1249,2.1959,2.1782,2.3000,2.0568, 2.0568,2.1574,2.1574,2.4445,2.0598,2.4445,2.3000,2.3000,2.2078,
5339 : 2.1900,2.5540,2.3000,2.3000,2.0450,2.2166,2.0687,2.5392,2.2196, 2.0894,2.0894,2.2877,2.2877,2.3000,2.2344,2.3000,2.3000,2.0598, 2.0598,2.1604,2.3000,2.2462,2.1959,2.4711,2.1722,2.4711,2.4711,
5340 : 2.3000,2.5126,2.3000,2.2610,2.0509,2.0509,2.3000,2.5155,2.2788, 2.0953,2.0953,2.3000,2.3000,2.3084,2.3084,2.2936,2.0627,2.1782, 2.3000,2.3113,2.3000,2.0598,2.0598,2.1426,2.3291,2.4859,2.4978,
5341 : 2.4978,2.1870,2.1870,2.3498,2.3000,2.3000,2.3705,2.3000,2.3912, 2.0568,2.0568,2.3000,2.4149,2.4415,2.4682,2.4948,2.5244,2.5570, 2.5570,2.5244,2.4948,2.4682,2.4415,2.4149,2.1042,2.1042,2.3912,
5342 : 2.3000,2.4771,2.3705,2.3291,2.3291,2.3498,2.3000,2.3000,2.1604, 2.3291,2.3000,2.3000,2.3113,2.4623,2.2936,2.3000,2.3000,2.2788, 2.3000,2.3000,2.0627,2.0627,2.3000,2.2610,2.1278,2.3000,2.5244,
5343 : 2.5244,2.3000,2.2018,2.2018,2.2462,2.3000,2.3000,2.2344,2.3000, 2.0598,2.0598,2.3000,2.3000,2.3000,2.1426,2.2196,2.4356,2.1130, 2.1130,2.3498,2.3498,2.0568,2.3000,2.2078,2.3000,2.4386,2.1959,
5344 : 2.3000,2.3000,2.0687,2.0687,2.3000,2.3000,2.1130,2.5540,2.5540, 2.2166,2.2166,2.3000,2.1841,2.4120,2.1278,2.3000,2.0598,2.0598, 2.3000,2.1722,2.3000,2.1249,2.1249,2.3000,2.3735,2.3735,2.3000,
5345 : 2.3000,2.1604,2.3000,2.3883,2.0716,2.0716,2.5836,2.5836,2.0983, 2.1515,2.2314,2.2314,2.1130,2.4060,2.3000,2.3000,2.3000,2.0568, 2.3000,2.3000,2.4948,2.4948,2.0509,2.1397,2.3676,2.1338,2.1338,
5346 : 2.3942,2.3942,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.1308, 2.3000,2.0983,2.0775,2.0775,2.0864,2.1663,2.2492,2.2492,2.3000, 2.3439,2.3000,2.3000,2.1190,2.3000,2.3000,2.3000,2.6132,2.6132,
5347 : 2.3735,2.1782,2.1456,2.1456,2.4208,2.4208,2.3000,2.3000,2.3000, 2.3000,2.3232,2.0864,2.1900,2.3000,2.0835,2.0835,2.3000,2.0746, 2.2669,2.2669,2.3000,2.3000,2.3000,2.1071,2.0450,2.3025,2.3000,
5348 : 2.3000,2.5836,2.5836,2.3000,2.3000,2.1574,2.1574,2.4445,2.4445, 2.1190,2.0746,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3439, 2.2817,2.1308,2.0894,2.3000,2.0657,2.2877,2.2877,2.3000,2.1397,
5349 : 2.3000,2.3000,2.5540,2.3000,2.3000,2.3000,2.5540,2.2640,2.0657, 2.1515,2.1722,2.1722,2.4711,2.4711,2.3000,2.3000,2.3000,2.3000, 2.1604,2.3000,2.3000,2.0539,2.1722,2.0953,2.3000,2.2433,2.3084,
5350 : 2.3084,2.1841,2.0391,2.3000,2.3000,2.1959,2.5244,2.3143,2.3000, 2.3000,2.5244,2.3000,2.0539,2.2078,2.3000,2.3000,2.3000,2.4978, 2.4978,2.1870,2.1870,2.2255,2.3000,2.2196,2.0391,2.2344,2.2462,
5351 : 2.3000,2.3000,2.3000,2.2610,2.3000,2.2788,2.2936,2.3000,2.3113, 2.2196,2.2078,2.2344,2.1959,2.2462,2.2610,2.1841,2.3291,2.2788, 2.2936,2.0450,2.3498,2.3113,2.1722,2.3291,2.3705,2.3498,2.3912,
5352 : 2.3912,2.3912,2.4149,2.4149,2.4415,2.4415,2.1604,2.1604,2.4682, 2.4948,2.4948,2.5244,2.5244,2.3000,2.3000,2.1515,2.3000,2.3291, 2.3291,2.2078,2.3000,2.3000,2.3000,2.3000,2.0450,2.3000,2.3000,
5353 : 2.4978,2.3000,2.3000,2.4978,2.3000,2.5244,2.5244,2.2018,2.2018, 2.3000,2.1900,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.0361,2.3000,2.3000,2.2877,2.3000,2.3000,2.3000,2.3000,
5354 : 2.3498,2.3498,2.1722,2.3000,2.3000,2.3000,2.0361,2.4711,2.3000, 2.3000,2.3000,2.3000,2.4711,2.3000,2.5540,2.5540,2.2166,2.2166, 2.3000,2.1574,2.3000,2.3000,2.0272,2.3000,2.3000,2.3000,2.3000,
5355 : 2.3000,2.3000,2.3000,2.3000,2.3735,2.3735,2.3000,2.3000,2.1426, 2.4445,2.3000,2.3000,2.3000,2.3000,2.3000,2.4445,2.2314,2.2314, 2.3000,2.2640,2.3000,2.1278,2.3000,2.3000,2.0183,2.3000,2.3000,
5356 : 2.3000,2.3000,2.1249,2.3000,2.3000,2.3000,2.3000,2.3000,2.3942, 2.3942,2.3000,2.3000,2.3000,2.4208,2.1130,2.3000,2.0835,2.3000, 2.3000,2.3000,2.4208,2.2492,2.2492,2.3000,2.0124,2.3000,2.3000,
5357 : 2.3000,2.0923,2.3000,2.0983,2.3000,2.4356,2.4356,2.3000,2.3000, 2.3942,2.3000,2.4208,2.4208,2.3000,2.3000,2.3000,2.3000,2.3000, 2.0983,2.2403,2.3000,2.3000,2.3000,2.3000,2.3000,2.3942,2.0864,
5358 : 2.2669,2.2669,2.1071,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3735,2.5836,2.5836,2.3000,2.3000,2.1160,2.3000,2.4445, 2.4445,2.3000,2.3000,2.0716,2.3000,2.1249,2.3000,2.0568,2.3000,
5359 : 2.3000,2.2877,2.2877,2.3735,2.3000,2.1367,2.3000,2.3000,2.3000, 2.3498,2.3000,2.3000,2.3000,2.0598,2.1456,2.5540,2.5540,2.0509, 2.3000,2.3000,2.4711,2.4711,2.3000,2.3000,2.1574,2.3000,2.3000,
5360 : 2.2166,2.1663,2.3000,2.3000,2.1782,2.0479,2.3000,2.3291,2.3084, 2.3084,2.3000,2.3000,2.3000,2.3000,2.1900,2.3498,2.3000,2.3000, 2.1071,2.3000,2.3000,2.1190,2.5244,2.5244,2.3000,2.3000,2.1308,
5361 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4978, 2.4978,2.3000,2.3000,2.3000,2.1397,2.3000,2.1900,2.1071,2.0568, 2.3000,2.3000,2.1515,2.3000,2.1190,2.1308,2.0391,2.3000,2.1604,
5362 : 2.1397,2.3000,2.1722,2.2433,2.1604,2.3084,2.1841,2.1722,2.1959, 2.3000,2.1841,2.1959,2.2078,2.2078,2.2196,2.2196,2.2344,2.2344, 2.3000,2.3000,2.2462,2.2462,2.2610,2.2610,2.2788,2.2788,2.3000,
5363 : 2.2936,2.2936,2.3113,2.3113,2.3291,2.3291,2.3000,2.3498,2.3498, 2.3705,2.3705,2.3912,2.3912,2.4149,2.4149,2.4415,2.4415,2.4682, 2.4682,2.4948,2.4948,2.3000,2.3291,2.3291,2.3000,2.3000,2.3000,
5364 : 2.3291,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4978,2.4978, 2.0272,2.3000,2.3000,2.3000,2.2877,2.5244,2.5244,2.3000,2.1959, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
5365 : 2.3000,2.3498,2.3498,2.3000,2.3000,2.3000,2.0183,2.2669,2.3000, 2.3000,2.3084,2.4711,2.4711,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.0095,2.3000,
5366 : 2.3735,2.3735,2.3000,2.3000,2.3000,2.4445,2.4445,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.1782,2.2877,2.3000,2.3000,2.3000, 2.0006,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
5367 : 2.3000,2.3942,2.3942,2.3000,2.3000,2.3000,2.3000,2.4208,2.4208, 2.3000,2.3000,2.3000,1.9917,2.3000,2.3000,2.3000,2.3000,2.3000, 2.2669,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
5368 : 2.4208,2.4208,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3942, 1.9858,2.3942,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.0450,2.0450,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
5369 : 2.0509,2.3853,2.3853,2.3000,2.2492,2.4445,2.4445,2.3000,1.9799, 2.3000,2.0568,2.3000,2.3000,2.3000,2.3735,2.3735,2.3000,2.3000, 2.3000,2.3000,2.0627,2.3000,2.3000,2.3000,2.3000,2.3000,2.0687,
5370 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.0746,2.5540,2.5540,2.4711, 2.4711,2.5540,1.9710,2.0835,2.3000,2.3000,2.3000,2.3000,2.3000, 2.0923,2.3000,2.3000,2.3000,2.2314,2.3498,2.3000,2.3498,2.3000,
5371 : 2.3000,2.0983,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.1071,2.3000,2.3000};
5372 :
5373 :
5374 :
5375 : static const unsigned int ifin1[500]={
5376 : 9, 9, 13, 14, 14, 16, 17, 21, 22, 25, 27, 30, 32, 37, 42, 45, 47, 49, 51, 55, 57, 59, 61, 64, 65, 67, 72, 75, 76, 79,
5377 : 83, 87, 90, 92, 93, 94, 95, 96, 100, 104, 104, 104, 107, 108, 112, 115, 117, 118, 123, 125, 127, 129, 133, 137, 139, 139, 142, 144, 146, 148,
5378 : 149, 151, 153, 156, 160, 162, 166, 168, 171, 172, 173, 175, 179, 181, 183, 185, 186, 186, 190, 195, 196, 197, 201, 203, 208, 211, 217, 220, 220, 221,
5379 : 223, 224, 227, 231, 231, 232, 232, 235, 236, 241, 243, 248, 249, 251, 253, 254, 256, 257, 257, 259, 264, 265, 267, 268, 268, 273, 276, 279, 283, 287,
5380 : 290, 292, 294, 299, 299, 304, 305, 308, 308, 311, 314, 316, 319, 322, 324, 326, 328, 332, 336, 337, 342, 344, 345, 350, 351, 355, 356, 356, 359, 360,
5381 : 362, 367, 369, 369, 370, 370, 372, 375, 381, 382, 383, 385, 387, 391, 394, 394, 395, 398, 399, 401, 405, 407, 407, 408, 410, 411, 420, 426, 426, 430,
5382 : 431, 435, 439, 441, 443, 447, 450, 451, 454, 459, 459, 463, 463, 463, 465, 471, 472, 474, 475, 479, 479, 485, 487, 490, 493, 493, 496, 498, 500, 501,
5383 : 502, 504, 508, 509, 514, 515, 518, 522, 522, 525, 529, 529, 530, 532, 537, 539, 544, 547, 548, 552, 555, 565, 573, 579, 581, 584, 586, 591, 597, 600,
5384 : 601, 604, 608, 611, 614, 618, 619, 620, 621, 626, 631, 633, 635, 637, 641, 642, 643, 648, 650, 652, 652, 653, 655, 662, 665, 666, 666, 668, 673, 676,
5385 : 681, 684, 684, 685, 689, 691, 693, 697, 699, 701, 704, 705, 709, 710, 715, 715, 717, 721, 723, 724, 727, 728, 733, 735, 739, 741, 745, 747, 748, 753,
5386 : 755, 755, 756, 758, 764, 764, 771, 773, 773, 776, 777, 778, 783, 785, 787, 788, 792, 797, 801, 809, 810, 814, 817, 834, 854, 858, 860, 861, 866, 869,
5387 : 870, 875, 876, 879, 884, 885, 889, 894, 897, 899, 900, 902, 905, 910, 911, 912, 914, 916, 919, 922, 926, 930, 931, 931, 935, 935, 940, 940, 941, 944,
5388 : 946, 953, 956, 960, 960, 962, 966, 967, 969, 969, 971, 974, 977, 980, 986, 989, 990, 992, 994, 997,1002,1002,1004,1008,1011,1013,1019,1021,1022,1023,
5389 : 1024,1028,1028,1031,1036,1038,1041,1044,1047,1051,1055,1055,1056,1058,1061,1067,1071,1072,1075,1078,1084,1095,1104,1110,1116,1124,1150,1159,1162,1162,
5390 : 1167,1169,1173,1180,1182,1183,1183,1183,1189,1192,1193,1197,1197,1199,1202,1206,1206,1208,1208,1210,1214,1216,1218,1218,1219,1221,1223,1227,1231,1233,
5391 : 1235,1237,1239,1243,1247,1247,1248,1250,1252,1253,1257,1259,1260,1264,1264,1270,1273,1274,1274,1276,1280,1283,1286,1286,1292,1293,1293,1297,1304,1305,
5392 : 1305,1309,1312,1315,1318,1319,1323,1324,1325,1327,1332,1336,1338,1341,1348,1352,1357,1363,1363,1363};
5393 :
5394 : static const unsigned int ini1[500]={
5395 : 1, 1, 2, 4, 9, 9, 13, 14, 14, 16, 17, 21, 22, 25, 27, 30, 32, 37, 42, 45, 47, 49, 51, 55, 57, 59, 61, 64, 65, 67,
5396 : 72, 75, 76, 79, 83, 87, 90, 92, 93, 94, 95, 96, 100, 104, 104, 104, 107, 108, 112, 115, 117, 118, 123, 125, 127, 129, 133, 137, 139, 139,
5397 : 142, 144, 146, 148, 149, 151, 153, 156, 160, 162, 166, 168, 171, 172, 173, 175, 179, 181, 183, 185, 186, 186, 190, 195, 196, 197, 201, 203, 208, 211,
5398 : 217, 220, 220, 221, 223, 224, 227, 231, 231, 232, 232, 235, 236, 241, 243, 248, 249, 251, 253, 254, 256, 257, 257, 259, 264, 265, 267, 268, 268, 273,
5399 : 276, 279, 283, 287, 290, 292, 294, 299, 299, 304, 305, 308, 308, 311, 314, 316, 319, 322, 324, 326, 328, 332, 336, 337, 342, 344, 345, 350, 351, 355,
5400 : 356, 356, 359, 360, 362, 367, 369, 369, 370, 370, 372, 375, 381, 382, 383, 385, 387, 391, 394, 394, 395, 398, 399, 401, 405, 407, 407, 408, 410, 411,
5401 : 420, 426, 426, 430, 431, 435, 439, 441, 443, 447, 450, 451, 454, 459, 459, 463, 463, 463, 465, 471, 472, 474, 475, 479, 479, 485, 487, 490, 493, 493,
5402 : 496, 498, 500, 501, 502, 504, 508, 509, 514, 515, 518, 522, 522, 525, 529, 529, 530, 532, 537, 539, 544, 547, 548, 552, 555, 565, 573, 579, 581, 584,
5403 : 586, 591, 597, 600, 601, 604, 608, 611, 614, 618, 619, 620, 621, 626, 631, 633, 635, 637, 641, 642, 643, 648, 650, 652, 652, 653, 655, 662, 665, 666,
5404 : 666, 668, 673, 676, 681, 684, 684, 685, 689, 691, 693, 697, 699, 701, 704, 705, 709, 710, 715, 715, 717, 721, 723, 724, 727, 728, 733, 735, 739, 741,
5405 : 745, 747, 748, 753, 755, 755, 756, 758, 764, 764, 771, 773, 773, 776, 777, 778, 783, 785, 787, 788, 792, 797, 801, 809, 810, 814, 817, 834, 854, 858,
5406 : 860, 861, 866, 869, 870, 875, 876, 879, 884, 885, 889, 894, 897, 899, 900, 902, 905, 910, 911, 912, 914, 916, 919, 922, 926, 930, 931, 931, 935, 935,
5407 : 940, 940, 941, 944, 946, 953, 956, 960, 960, 962, 966, 967, 969, 969, 971, 974, 977, 980, 986, 989, 990, 992, 994, 997,1002,1002,1004,1008,1011,1013,
5408 : 1019,1021,1022,1023,1024,1028,1028,1031,1036,1038,1041,1044,1047,1051,1055,1055,1056,1058,1061,1067,1071,1072,1075,1078,1084,1095,1104,1110,1116,1124,
5409 : 1150,1159,1162,1162,1167,1169,1173,1180,1182,1183,1183,1183,1189,1192,1193,1197,1197,1199,1202,1206,1206,1208,1208,1210,1214,1216,1218,1218,1219,1221,
5410 : 1223,1227,1231,1233,1235,1237,1239,1243,1247,1247,1248,1250,1252,1253,1257,1259,1260,1264,1264,1270,1273,1274,1274,1276,1280,1283,1286,1286,1292,1293,
5411 : 1293,1297,1304,1305,1305,1309,1312,1315,1318,1319,1323,1324,1325,1327,1332,1336,1338,1341,1348,1352};
5412 :
5413 : static const unsigned int ifin2[500]={
5414 : 4, 8, 9, 11, 13, 14, 16, 17, 20, 21, 4, 27, 30, 32, 37, 41, 45, 47, 48, 50, 55, 56, 59, 61, 63, 65, 67, 71, 74, 75,
5415 : 78, 82, 86, 90, 91, 93, 94, 95, 96, 100, 102, 104, 104, 106, 108, 112, 114, 117, 118, 121,124, 126, 128, 133, 137, 138, 139, 141, 144, 146,
5416 : 148, 148, 151, 151, 156, 160, 162, 166, 167, 171,171, 173, 174, 178, 181, 182, 185, 185, 186, 189,193, 196, 197, 200, 203, 207, 209, 215, 220, 220,
5417 : 221, 222, 224, 227, 230, 231, 232, 232, 235, 236,239, 242, 248, 249, 250, 253, 254, 256, 256, 257,258, 264, 265, 266, 268, 268, 272, 276, 278, 282,
5418 : 287, 289, 292, 293, 299, 299, 304, 305, 308, 308,309, 313, 315, 319, 322, 323, 324, 328, 332, 335,337, 341, 342, 345, 348, 351, 354, 356, 356, 359,
5419 : 360, 360, 366, 369, 369, 369, 370, 372, 374, 381,382, 383, 385, 387, 389, 393, 394, 395, 397, 399,401, 404, 405, 407, 407, 410, 411, 418, 425, 426,
5420 : 430, 431, 433, 438, 441, 442, 445, 448, 450, 452,459, 459, 461, 463, 463, 465, 469, 471, 474, 474,479, 479, 482, 486, 489, 493, 493, 496, 498, 500,
5421 : 501, 502, 504, 508, 509, 514, 514, 518, 522, 522,525, 529, 529, 530, 532, 535, 538, 544, 546, 548,552, 555, 564, 571, 578, 581, 583, 586, 591, 597,
5422 : 600, 601, 603, 607, 610, 614, 617, 619, 620, 621,623, 627, 633, 635, 637, 638, 641, 643, 648, 648,651, 652, 653, 655, 658, 665, 666, 666, 668, 673,
5423 : 676, 681, 682, 684, 685, 687, 690, 693, 697, 698,699, 703, 705, 709, 710, 713, 715, 716, 720, 723,724, 726, 728, 733, 734, 739, 741, 741, 747, 748,
5424 : 750, 753, 755, 755, 757, 760, 764, 767, 772, 773,776, 777, 778, 783, 785, 786, 788, 791, 797, 801,809, 810, 812, 817, 828, 853, 858, 860, 861, 866,
5425 : 869, 870, 875, 876, 878, 883, 884, 888, 892, 896,899, 900, 902, 905, 908, 910, 912, 914, 915, 919,922, 926, 927, 931, 931, 934, 935, 939, 940, 941,
5426 : 944, 945, 949, 956, 960, 960, 961, 963, 967, 969,969, 970, 973, 976, 980, 986, 989, 990, 992, 994,996,1000,1002,1004,1005,1010,1013,1016,1019,1022,
5427 : 1022,1024,1028,1028,1031,1036,1038,1041,1042,1045,1050,1055,1055,1056,1056,1060,1067,1069,1071,1075,1076,1079,1093,1102,1109,1115,1122,1137,1159,1162,
5428 : 1162,1165,1169,1172,1178,1180,1183,1183,1183,1187,1190,1193,1196,1197,1199,1202,1205,1206,1208,1208,1209,1211,1215,1218,1218,1219,1221,1223,1224,1231,
5429 : 1233,1234,1236,1239,1243,1247,1247,1247,1248,1251,1252,1255,1257,1260,1264,1264,1270,1272,1274,1274,1275,1278,1281,1285,1286,1292,1293,1293,1295,1301,
5430 : 1305,1305,1309,1311,1315,1317,1319,1323,1324,1325,1325,1332,1336,1338,1339,1347,1351,1354,1360,1363};
5431 :
5432 : static const unsigned int ini2[500]={
5433 : 1, 2, 6, 9, 9, 13, 14, 15, 16, 18, 21, 22, 25, 27, 30, 34, 39, 43, 46, 47, 50, 54, 55, 58, 60, 61, 65, 66, 68, 73,
5434 : 75, 76, 80, 83, 89, 91, 92, 93, 94, 96, 98, 102, 104, 104, 104, 108, 110, 113, 116, 117,118, 123, 126, 128, 130, 136, 137, 139, 140, 143,
5435 : 144, 146, 148, 150, 151, 153, 156, 160, 164, 167,168, 171, 173, 173, 175, 180, 181, 183, 185, 186,186, 192, 196, 196, 199, 201, 205, 209, 214, 218,
5436 : 220, 221, 221, 223, 226, 230, 231, 232, 232, 235,235, 238, 242, 245, 248, 250, 252, 254, 255, 256,257, 257, 264, 265, 266, 268, 268, 268, 273, 276,
5437 : 280, 284, 287, 292, 293, 296, 299, 301, 305, 305,308, 308, 311, 314, 317, 320, 323, 324, 328, 328,334, 336, 339, 342, 344, 345, 351, 353, 356, 356,
5438 : 356, 359, 360, 364, 367, 369, 369, 370, 370, 372,377, 382, 383, 383, 385, 388, 391, 394, 394, 396,398, 401, 402, 405, 407, 407, 410, 410, 413, 422,
5439 : 426, 428, 430, 431, 435, 440, 441, 444, 447, 450,452, 455, 459, 459, 463, 463, 463, 468, 471, 473,474, 476, 479, 479, 485, 488, 490, 493, 494, 498,
5440 : 500, 501, 502, 502, 507, 508, 514, 514, 515, 520,522, 522, 525, 529, 530, 530, 534, 537, 540, 544,547, 548, 554, 557, 568, 576, 579, 581, 585, 587,
5441 : 593, 599, 600, 602, 604, 608, 611, 614, 618, 619,621, 622, 627, 631, 634, 636, 638, 641, 642, 645,648, 650, 652, 652, 653, 657, 664, 666, 666, 666,
5442 : 672, 673, 679, 681, 684, 684, 685, 689, 691, 694,697, 699, 701, 705, 707, 709, 710, 715, 716, 717,721, 723, 724, 727, 729, 733, 735, 739, 741, 745,
5443 : 747, 749, 753, 755, 755, 757, 758, 764, 765, 771,773, 773, 777, 778, 780, 783, 785, 787, 788, 794,799, 805, 809, 810, 815, 818, 840, 854, 858, 860,
5444 : 862, 866, 870, 870, 876, 876, 881, 884, 886, 892,894, 898, 899, 900, 905, 906, 910, 912, 912, 914,917, 920, 925, 926, 930, 931, 931, 935, 937, 940,
5445 : 940, 943, 944, 947, 953, 959, 960, 960, 962, 966,967, 969, 969, 971, 975, 978, 982, 986, 989, 990,993, 996, 998,1002,1003,1005,1008,1011,1013,1019,
5446 : 1022,1022,1023,1025,1028,1030,1034,1037,1040,1041,1044,1049,1052,1055,1055,1056,1058,1062,1068,1071,1073,1075,1079,1088,1097,1104,1112,1119,1129,1156,
5447 : 1161,1162,1162,1167,1171,1173,1180,1182,1183,1183,1185,1189,1192,1194,1197,1199,1199,1203,1206,1206,1208,1208,1210,1215,1218,1218,1219,1219,1221,1223,
5448 : 1228,1231,1234,1236,1237,1241,1243,1247,1247,1248,1250,1252,1255,1257,1259,1260,1264,1266,1270,1274,1274,1274,1278,1281,1283,1286,1290,1293,1293,1293,
5449 : 1300,1304,1305,1306,1309,1313,1315,1318,1320,1323,1325,1325,1330,1334,1336,1339,1342,1349,1352,1359};
5450 :
5451 :
5452 : static const unsigned int ifin3[500]={
5453 : 2, 6, 9, 9, 13, 14, 15, 16, 18, 21, 22, 25, 27, 30, 34, 39, 43, 46, 47, 50, 54, 55, 58, 60, 61, 65, 66, 68, 73, 75,
5454 : 76, 80, 83, 89, 91, 92, 93, 94, 96, 98, 102, 104, 104, 104, 108, 110, 113, 116, 117, 118, 123, 126, 128, 130, 136, 137, 139, 140, 143, 144,
5455 : 146, 148, 150, 151, 153, 156, 160, 164, 167, 168, 171, 173, 173, 175, 180, 181, 183, 185, 186, 186, 192, 196, 196, 199, 201, 205, 209, 214, 218, 220,
5456 : 221, 221, 223, 226, 230, 231, 232, 232, 235, 235, 238, 242, 245, 248, 250, 252, 254, 255, 256, 257, 257, 264, 265, 266, 268, 268, 268, 273, 276, 280,
5457 : 284, 287, 292, 293, 296, 299, 301, 305, 305, 308, 308, 311, 314, 317, 320, 323, 324, 328, 328, 334, 336, 339, 342, 344, 345, 351, 353, 356, 356, 356,
5458 : 359, 360, 364, 367, 369, 369, 370, 370, 372, 377, 382, 383, 383, 385, 388, 391, 394, 394, 396, 398, 401, 402, 405, 407, 407, 410, 410, 413, 422, 426,
5459 : 428, 430, 431, 435, 440, 441, 444, 447, 450, 452, 455, 459, 459, 463, 463, 463, 468, 471, 473, 474, 476, 479, 479, 485, 488, 490, 493, 494, 498, 500,
5460 : 501, 502, 502, 507, 508, 514, 514, 515, 520, 522, 522, 525, 529, 530, 530, 534, 537, 540, 544, 547, 548, 554, 557, 568, 576, 579, 581, 585, 587, 593,
5461 : 599, 600, 602, 604, 608, 611, 614, 618, 619, 621, 622, 627, 631, 634, 636, 638, 641, 642, 645, 648, 650, 652, 652, 653, 657, 664, 666, 666, 666, 672,
5462 : 673, 679, 681, 684, 684, 685, 689, 691, 694, 697, 699, 701, 705, 707, 709, 710, 715, 716, 717, 721, 723, 724, 727, 729, 733, 735, 739, 741, 745, 747,
5463 : 749, 753, 755, 755, 757, 758, 764, 765, 771, 773, 773, 777, 778, 780, 783, 785, 787, 788, 794, 799, 805, 809, 810, 815, 818, 840, 854, 858, 860, 862,
5464 : 866, 870, 870, 876, 876, 881, 884, 886, 892, 894, 898, 899, 900, 905, 906, 910, 912, 912, 914, 917, 920, 925, 926, 930, 931, 931, 935, 937, 940, 940,
5465 : 943, 944, 947, 953, 959, 960, 960, 962, 966, 967, 969, 969, 971, 975, 978, 982, 986, 989, 990, 993, 996, 998,1002,1003,1005,1008,1011,1013,1019,1022,
5466 : 1022,1023,1025,1028,1030,1034,1037,1040,1041,1044,1049,1052,1055,1055,1056,1058,1062,1068,1071,1073,1075,1079,1088,1097,1104,1112,1119,1129,1156,1161,
5467 : 1162,1162,1167,1171,1173,1180,1182,1183,1183,1185,1189,1192,1194,1197,1199,1199,1203,1206,1206,1208,1208,1210,1215,1218,1218,1219,1219,1221,1223,1228,
5468 : 1231,1234,1236,1237,1241,1243,1247,1247,1248,1250,1252,1255,1257,1259,1260,1264,1266,1270,1274,1274,1274,1278,1281,1283,1286,1290,1293,1293,1293,1300,
5469 : 1304,1305,1306,1309,1313,1315,1318,1320,1323,1325,1325,1330,1334,1336,1339,1342,1349,1352,1359,1363};
5470 :
5471 :
5472 : static const unsigned int ini3[500]={
5473 : 2, 4, 8, 9, 11, 13, 14, 16, 17, 20, 21, 24, 27, 30, 32, 37, 41, 45, 47, 48, 50, 55, 56, 59, 61, 63, 65, 67, 71, 74,
5474 : 75, 78, 82, 86, 90, 91, 93, 94, 95, 96, 100, 102, 104, 104, 106, 108, 112, 114, 117, 118, 121, 124, 126, 128, 133, 137, 138, 139, 141, 144,
5475 : 146, 148, 148, 151, 151, 156, 160, 162, 166, 167,171, 171, 173, 174, 178, 181, 182, 185, 185, 186,189, 193, 196, 197, 200, 203, 207, 209, 215, 220,
5476 : 220, 221, 222, 224, 227, 230, 231, 232, 232, 235,236, 239, 242, 248, 249, 250, 253, 254, 256, 256,257, 258, 264, 265, 266, 268, 268, 272, 276, 278,
5477 : 282, 287, 289, 292, 293, 299, 299, 304, 305, 308,308, 309, 313, 315, 319, 322, 323, 324, 328, 332,335, 337, 341, 342, 345, 348, 351, 354, 356, 356,
5478 : 359, 360, 360, 366, 369, 369, 369, 370, 372, 374,381, 382, 383, 385, 387, 389, 393, 394, 395, 397,399, 401, 404, 405, 407, 407, 410, 411, 418, 425,
5479 : 426, 430, 431, 433, 438, 441, 442, 445, 448, 450,452, 459, 459, 461, 463, 463, 465, 469, 471, 474,474, 479, 479, 482, 486, 489, 493, 493, 496, 498,
5480 : 500, 501, 502, 504, 508, 509, 514, 514, 518, 522,522, 525, 529, 529, 530, 532, 535, 538, 544, 546,548, 552, 555, 564, 571, 578, 581, 583, 586, 591,
5481 : 597, 600, 601, 603, 607, 610, 614, 617, 619, 620,621, 623, 627, 633, 635, 637, 638, 641, 643, 648,648, 651, 652, 653, 655, 658, 665, 666, 666, 668,
5482 : 673, 676, 681, 682, 684, 685, 687, 690, 693, 697,698, 699, 703, 705, 709, 710, 713, 715, 716, 720,723, 724, 726, 728, 733, 734, 739, 741, 741, 747,
5483 : 748, 750, 753, 755, 755, 757, 760, 764, 767, 772,773, 776, 777, 778, 783, 785, 786, 788, 791, 797,801, 809, 810, 812, 817, 828, 853, 858, 860, 861,
5484 : 866, 869, 870, 875, 876, 878, 883, 884, 888, 892,896, 899, 900, 902, 905, 908, 910, 912, 914, 915,919, 922, 926, 927, 931, 931, 934, 935, 939, 940,
5485 : 941, 944, 945, 949, 956, 960, 960, 961, 963, 967,969, 969, 970, 973, 976, 980, 986, 989, 990, 992,994, 996,1000,1002,1004,1005,1010,1013,1016,1019,
5486 : 1022,1022,1024,1028,1028,1031,1036,1038,1041,1042,1045,1050,1055,1055,1056,1056,1060,1067,1069,1071,1075,1076,1079,1093,1102,1109,1115,1122,1137,1159,
5487 : 1162,1162,1165,1169,1172,1178,1180,1183,1183,1183,1187,1190,1193,1196,1197,1199,1202,1205,1206,1208,1208,1209,1211,1215,1218,1218,1219,1221,1223,1224,
5488 : 1231,1233,1234,1236,1239,1243,1247,1247,1247,1248,1251,1252,1255,1257,1260,1264,1264,1270,1272,1274,1274,1275,1278,1281,1285,1286,1292,1293,1293,1295,
5489 : 1301,1305,1305,1309,1311,1315,1317,1319,1323,1324,1325,1325,1332,1336,1338,1339,1347,1351,1354,1360};
5490 :
5491 : static const double pi=3.141592654;
5492 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
5493 : static const double mu=0.53; //Debyes
5494 : static const double mmol=49.0;
5495 :
5496 : //double q=1.344455353*pow(tt,1.5);
5497 52910 : double q=1.344455353*tt*sqrt(tt);
5498 : unsigned int vp;
5499 : unsigned int ini;
5500 : unsigned int ifin;
5501 52910 : std::complex<double> lshape;
5502 52910 : std::complex<double> lshapeacum;
5503 :
5504 52910 : if(nu>999.9){
5505 :
5506 0 : return std::complex<double> (0.0,0.0);
5507 :
5508 : }else{
5509 :
5510 52910 : vp = vpIndex(nu);
5511 :
5512 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
5513 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
5514 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
5515 :
5516 52910 : if(ifin==0||ifin<ini){
5517 :
5518 0 : return std::complex<double> (0.0,0.0);
5519 :
5520 : }else{
5521 :
5522 280655 : for(unsigned int i=ini; i<ifin+1; i++){
5523 :
5524 227745 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening en GHz/mb 14/11/2018
5525 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
5526 227745 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
5527 227745 : lshapeacum=lshapeacum+lshape;
5528 :
5529 : }
5530 :
5531 52910 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
5532 : // real part: delay in rad*cm^2
5533 :
5534 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
5535 :
5536 : }
5537 :
5538 : }
5539 :
5540 : }
5541 :
5542 : //////////////////////// Opacity Source Number: 22 /////////////////////////////
5543 :
5544 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o18o16o(double tt, double pp, double nu){
5545 :
5546 : static const double fre[755]={
5547 : 3.83292, 4.65377, 6.96684, 8.18944, 10.01083, 14.86876, 16.35579, 16.66993, 17.65795, 18.76805, 19.10049, 22.20599, 23.42240, 25.11912, 25.28206, 25.97734, 26.04029, 29.22771,
5548 : 29.88932, 30.91416, 31.70964, 32.82510, 32.83978, 33.19019, 34.81487, 34.96913, 35.14310, 35.28012, 36.98948, 44.62285, 46.36781, 46.44679, 48.80693, 49.69103, 49.73307, 51.04926,
5549 : 51.20879, 53.21264, 55.63426, 56.18237, 60.13629, 60.81826, 62.47732, 64.42406, 65.42776, 67.12047, 67.50656, 69.39121, 73.58799, 74.74345, 75.11129, 76.26604, 78.67523, 79.49845,
5550 : 81.08149, 83.95127, 84.83387, 85.14570, 86.41835, 86.96452, 87.39463, 88.55293, 91.01000, 94.48388, 97.90016, 99.82872, 101.03610,102.21188,102.65862,104.35540,105.77757,107.38846,
5551 : 110.37325,112.38954,112.61345,112.66861,113.05508,114.43400, 116.40134,116.75312,118.85573,120.91444,122.72406,123.29053, 126.32539,128.96342,133.10971,133.43143,136.83712,137.07259,
5552 : 138.79255,142.05328,143.14371,144.77817,145.45266,146.44470, 149.85713,150.35073,152.52462,152.99859,155.57508,156.49877, 158.46862,158.51873,158.64756,159.25580,159.82491,164.03247,
5553 : 164.73359,164.90625,167.12339,169.91475,171.03352,171.14418, 171.49232,172.81548,173.20336,177.77700,178.73046,186.92652, 187.87893,188.89628,191.80608,192.68817,195.89534,197.14164,
5554 : 197.62817,198.61779,199.54910,203.72888,205.67110,205.85097, 206.27231,212.63955,213.29923,213.53850,216.06545,217.50672, 219.32561,223.00496,223.39665,224.76185,224.81267,225.85068,
5555 : 225.92993,226.33694,230.17465,231.27666,233.02210,234.34000, 236.60412,236.87640,238.71616,239.96505,240.00467,240.81710, 241.50344,242.99812,246.29104,249.07765,249.57444,250.20690,
5556 : 250.51788,255.22420,255.82478,256.67860,258.33642,260.03970, 260.32286,260.40244,263.10906,265.62341,266.28459,270.47669, 272.37055,274.14843,275.68242,278.11561,278.39212,278.45228,
5557 : 279.25255,281.19315,281.98575,282.98466,284.01884,284.29217, 285.94293,288.15370,289.12425,292.49157,292.69421,295.31851, 298.51724,301.71864,303.33763,304.82222,304.88585,307.47498,
5558 : 309.23460,309.28475,310.44523,312.55129,312.90127,315.91555, 316.45163,317.75446,318.84800,324.87483,325.67949,325.95658, 327.97217,328.52950,329.27763,329.52600,331.05490,331.79643,
5559 : 333.95897,335.13562,335.44920,336.17226,336.20044,341.55239, 343.87600,345.02728,345.51899,347.79544,349.84917,349.94988, 353.31769,353.90940,358.45988,361.57683,362.19394,362.30451,
5560 : 363.08692,363.23870,363.76981,369.27392,370.00690,371.04433, 373.49566,375.47774,375.54191,377.59078,377.87362,379.90755, 383.40365,384.85564,386.30918,387.60494,387.86222,390.34108,
5561 : 391.48763,392.77610,394.97120,397.03735,397.95595,400.62942, 403.58905,405.64510,405.72190,405.91167,407.60362,408.45488, 411.58254,413.58354,413.61499,415.65825,416.80280,416.87472,
5562 : 417.34226,420.21523,420.35432,422.46480,422.61307,422.91977, 425.93070,426.84736,429.02889,429.53428,429.90988,430.18675, 430.38023,430.96072,430.96297,431.52580,432.24357,433.23994,
5563 : 434.59257,435.17843,438.41843,439.18372,439.48427,439.66855, 439.92899,444.14141,444.57753,445.80585,446.86354,448.75772, 451.08893,451.32667,451.67143,452.16743,453.10418,454.91506,
5564 : 455.41838,456.02127,457.21469,459.89060,462.86401,464.74901, 465.33235,468.94947,471.11983,471.67118,471.93272,474.51420, 475.10504,476.25304,476.53976,479.25665,480.18144,480.92470,
5565 : 481.02619,481.25150,481.88799,482.86516,486.30544,487.97260, 490.02427,490.21094,491.11631,493.42821,494.93747,495.48512, 496.42341,500.22050,500.65098,505.41688,507.03113,508.43688,
5566 : 513.67627,514.33022,515.63956,516.84921,517.44907,519.57521, 520.75559,521.66152,522.10516,522.37042,525.86278,526.94989, 530.57062,532.76320,532.99433,533.96301,534.02473,537.33757,
5567 : 541.00365,541.94707,542.42052,542.52755,546.87243,547.71140, 547.95870,549.72559,550.41192,551.45616,552.31934,555.40426, 556.52856,557.93083,558.44783,558.99983,559.43073,562.10658,
5568 : 564.37106,565.94533,566.32968,567.90875,568.15856,569.05963, 572.04795,572.68115,573.62373,575.78660,576.99703,580.39350, 581.01700,582.96753,584.08887,584.85480,585.67564,589.24596,
5569 : 590.24184,591.61144,592.24582,593.74229,594.64527,594.75797, 595.09359,597.20014,598.14685,599.24980,599.95341,600.09191, 600.23554,600.33302,600.72735,600.94867,601.06949,601.12041,
5570 : 601.42871,601.44900,601.62611,601.66946,601.72570,601.74742, 602.46741,602.49328,602.96104,603.50217,604.76765,606.31913, 607.28923,609.68760,609.92484,610.23327,610.50070,611.56931,
5571 : 615.48367,616.85978,617.68805,619.12658,619.28325,622.33177, 624.83837,627.94546,627.94835,629.36940,631.95965,633.86045, 634.39329,634.43876,635.24684,635.57353,642.07626,642.52221,
5572 : 642.61675,642.65821,644.78296,647.51211,647.69069,650.39144, 651.49095,652.81863,653.35839,653.50852,654.39692,656.07946, 659.11013,660.76831,660.87739,661.04778,664.00348,665.69527,
5573 : 667.26653,668.46057,670.24465,672.17350,673.89715,675.91056, 678.73410,679.00108,683.82312,686.14941,686.25431,689.74875, 691.84583,692.43390,693.39555,695.67034,698.68691,699.30180,
5574 : 701.39751,702.13130,702.34477,702.48820,704.07605,706.26241, 707.49624,709.76873,710.23525,711.39242,711.70668,711.79951, 713.26094,715.67344,717.58224,720.66197,720.79252,721.06265,
5575 : 721.16860,726.42670,726.85383,727.22008,728.02089,729.09961, 729.38670,735.42306,736.60983,737.12743,737.19574,739.42523, 740.67487,741.11239,741.46323,742.71479,743.05573,744.96105,
5576 : 746.42369,750.21693,752.28113,752.30623,754.17066,754.66886, 757.22144,757.90534,759.13298,760.51590,761.21131,761.41386, 761.80451,762.18538,762.19844,762.25674,762.41079,762.51836,
5577 : 763.86965,764.74950,765.10416,765.52014,765.81702,766.52539, 766.54990,767.15948,767.83460,768.29860,768.65076,769.32555, 769.91571,770.00305,770.92372,771.15243,771.67935,771.75575,
5578 : 771.90757,772.21012,772.38477,772.55600,772.66899,772.76102, 772.82340,772.86753,772.89555,772.91231,774.07319,776.31917, 777.36488,777.68091,779.92497,780.39530,785.35574,785.66551,
5579 : 786.09590,786.97931,787.88133,790.31998,791.16450,791.91368, 792.23247,792.85473,795.61897,797.06088,798.96001,802.44569, 803.05468,805.15748,807.49403,807.55209,812.13684,813.21804,
5580 : 815.05421,815.13775,815.74654,817.27849,817.31488,817.37136, 817.47005,818.38029,821.66406,822.34113,827.39998,828.12169, 828.40385,828.88785,829.05267,830.36868,832.03569,834.76605,
5581 : 837.27954,837.74457,838.53019,842.62098,842.96858,845.39140, 847.59843,849.79458,851.78627,852.52821,853.72984,854.43234, 855.56074,856.43991,862.40968,863.81941,864.67406,866.47943,
5582 : 866.53082,867.37663,867.94232,869.50051,871.68406,872.83467, 873.83971,875.18077,877.19425,878.47998,879.03398,880.73574, 881.16448,882.46587,884.57198,887.52937,889.08728,893.24362,
5583 : 894.43629,896.67266,898.05161,898.38497,900.40603,901.19854, 902.55658,904.31761,904.89231,905.86123,905.89562,906.44547, 907.80704,911.73914,912.64052,914.16299,914.18098,914.30076,
5584 : 914.33530,915.18675,915.45812,915.92272,916.43023,917.52807, 917.67791,918.52599,919.44787,920.47375,923.06617,923.25098, 923.47608,923.54971,923.62232,924.96025,926.53233,926.66934,
5585 : 927.29475,928.16050,929.58199,929.65680,931.04223,931.54989, 931.70958,932.04296,932.07041,932.39291,933.28634,934.80766, 935.07157,936.87075,937.37219,938.58165,939.12825,939.56495,
5586 : 939.96039,940.45714,941.03969,941.44865,941.85891,942.17315, 942.45952,942.68728,942.88216,943.03783,943.16469,943.26405, 943.34120,943.39912,943.44137,943.47083,943.49025,943.50199,
5587 : 943.79047,947.87800,948.43442,948.53483,948.56294,952.12116, 952.58316,952.96844,954.82836,955.21079,956.17730,956.95770, 964.75002,964.77764,965.65016,966.57334,969.03812,971.45067,
5588 : 973.60348,973.64299,975.08323,978.60769,980.05791,981.30244, 981.73115,982.19069,984.42432,989.97471,990.96917,994.26992,48807,996.00256,998.71200,998.75965,999.58274};
5589 :
5590 : static const double flin[755]={
5591 : .130E+01, .273E+01, .618E+01, .719E+01, .601E+01, .281E+01, .503E+01, .367E+01, .513E+01, .161E+01, .401E+01, .113E+01, .972E+00, .818E+01, .738E+01, .164E+01, .373E+01, .149E+01,
5592 : .257E+01, .124E+01, .700E+01, .140E+01, .276E+01, .479E+01, .801E+00, .156E+01, .514E+00, .216E+01, .107E+01, .464E+01, .755E+01, .580E+01, .126E+01, .409E+01, .639E+01, .799E+01,
5593 : .232E+01, .266E+01, .186E+01, .645E+00, .652E+01, .422E+01, .680E+01, .245E+01, .217E+01, .544E+01, .562E+01, .231E+01, .339E+01, .115E+01, .283E+01, .194E+01, .325E+01, .779E+01,
5594 : .541E+01, .775E+01, .441E+01, .334E+01, .895E+00, .517E+00, .661E+01, .248E+01, .907E+00, .431E+01, .432E+01, .541E+01, .790E+01, .294E+01, .423E+01, .589E+01, .760E+01, .902E+00,
5595 : .100E+01, .675E+01, .197E+01, .684E+01, .185E+01, .568E+01, .641E+01, .230E+01, .712E+01, .453E+01, .300E+01, .522E+01, .417E+00, .431E+01, .422E+01, .739E+01, .401E+01, .282E+01,
5596 : .793E+01, .620E+01, .756E+00, .809E+01, .554E+00, .270E+01, .394E+00, .578E+01, .417E+01, .501E+01, .822E+01, .201E+01, .381E+01, .158E+01, .585E+01, .394E+01, .719E+01, .711E+01,
5597 : .313E+01, .833E+01, .391E+01, .600E+01, .139E+01, .384E+01, .355E+01, .259E+01, .341E+00, .480E+01, .709E+01, .699E+01, .163E+00, .359E+01, .582E+01, .238E+01, .579E+01, .499E+01,
5598 : .839E+01, .593E+01, .308E+01, .797E+01, .651E+00, .459E+01, .115E+01, .338E+01, .678E+01, .733E+01, .112E+02, .132E+02, .909E+01, .558E+01, .216E+01, .149E+02, .616E+01, .937E+00,
5599 : .703E+01, .285E+00, .777E+01, .437E+01, .590E+01, .517E+01, .463E+01, .824E+01, .162E+02, .428E+01, .657E+01, .316E+01, .491E+01, .357E+01, .194E+01, .536E+01, .742E+01, .760E+01,
5600 : .218E+01, .713E+00, .857E+00, .756E+01, .416E+01, .169E+02, .749E+01, .575E+01, .145E+01, .294E+01, .636E+01, .250E+01, .571E+00, .171E+01, .515E+01, .551E+01, .503E+00, .563E+01,
5601 : .546E+01, .341E+01, .799E+01, .734E+01, .394E+01, .244E+00, .458E+01, .506E+01, .171E+02, .272E+01, .614E+01, .422E+01, .149E+01, .493E+01, .756E+01, .656E+01, .302E+00, .954E+01,
5602 : .149E+01, .713E+01, .372E+01, .617E+01, .491E+01, .718E+01, .545E+01, .250E+01, .593E+01, .127E+01, .775E+01, .169E+02, .472E+01, .224E+02, .203E+02, .126E+00, .167E+01, .775E+01,
5603 : .549E+01, .242E+02, .692E+01, .350E+01, .179E+02, .511E+00, .227E+01, .571E+01, .214E+00, .155E+02, .105E+01, .253E+02, .890E+01, .450E+01, .596E+01, .670E+01, .327E+01, .132E+02,
5604 : .116E+02, .612E+01, .177E+01, .205E+01, .165E+02, .549E+01, .259E+02, .836E+00, .212E+01, .769E+01, .112E+02, .428E+01, .764E+01, .755E+01, .634E+01, .649E+01, .305E+01, .700E+01,
5605 : .108E+02, .940E+01, .183E+01, .527E+01, .643E+01, .628E+00, .748E+01, .786E+01, .405E+01, .259E+02, .809E+01, .191E+00, .466E+00, .627E+01, .283E+01, .650E+01, .263E+01, .137E+02,
5606 : .662E+01, .160E+02, .160E+01, .204E+01, .524E+01, .505E+01, .432E+00, .404E+01, .285E+01, .726E+01, .160E+01, .885E+00, .224E+01, .128E+02, .344E+01, .383E+01, .459E+01, .318E+02,
5607 : .572E+01, .295E+02, .684E+01, .261E+01, .605E+01, .743E+01, .335E+02, .793E+01, .269E+02, .139E+01, .255E+02, .483E+01, .252E+00, .683E+01, .684E+01, .898E+01, .932E+01, .322E+01,
5608 : .704E+01, .345E+02, .361E+01, .242E+02, .996E+01, .238E+01, .583E+01, .157E+02, .117E+01, .174E+00, .148E+02, .461E+01, .156E+02, .101E+00, .109E+02, .216E+02, .759E+01, .752E+01,
5609 : .431E+00, .682E+01, .349E+02, .338E+01, .218E+01, .698E+01, .387E+01, .216E+01, .561E+01, .117E+02, .735E+01, .248E+02, .959E+00, .439E+01, .192E+02, .249E+01, .661E+01, .316E+01,
5610 : .123E+02, .168E+02, .194E+01, .539E+01, .347E+02, .178E+02, .112E+02, .754E+00, .171E+02, .463E+01, .416E+01, .709E+01, .261E+01, .638E+01, .153E+02, .294E+01, .161E+00, .129E+02,
5611 : .172E+01, .153E+02, .772E+01, .516E+01, .559E+00, .361E+02, .738E+01, .732E+01, .242E+02, .394E+01, .551E+01, .277E+01, .218E+01, .189E+02, .616E+01, .137E+02, .272E+01, .897E+01,
5612 : .134E+02, .332E+02, .150E+01, .717E+01, .494E+01, .199E+02, .378E+00, .122E+02, .716E+01, .814E+01, .372E+01, .654E+01, .294E+01, .109E+02, .594E+01, .249E+01, .132E+02, .303E+02,
5613 : .959E+01, .129E+01, .150E+02, .472E+01, .138E+02, .151E+00, .836E+01, .216E+00, .716E+01, .694E+01, .599E+01, .893E+01, .101E+02, .774E+01, .657E+01, .481E+01, .113E+02, .540E+01,
5614 : .422E+01, .362E+01, .300E+01, .236E+01, .167E+01, .910E+00, .209E+02, .349E+01, .125E+02, .731E+01, .313E+01, .137E+02, .776E+01, .572E+01, .236E+02, .227E+01, .722E+01, .149E+02,
5615 : .276E+02, .108E+01, .219E+02, .160E+02, .450E+01, .841E-01, .672E+01, .327E+01, .140E+02, .171E+02, .331E+01, .918E+01, .878E+01, .204E+01, .550E+01, .205E+01, .880E+00, .252E+02,
5616 : .180E+02, .106E+02, .427E+01, .153E+02, .230E+02, .650E+01, .149E+02, .352E+01, .305E+01, .142E+00, .726E+01, .731E+01, .189E+02, .527E+01, .184E+01, .108E+02, .142E+02, .240E+02,
5617 : .687E+00, .231E+02, .405E+01, .231E+02, .890E+01, .627E+01, .283E+01, .196E+02, .366E+01, .162E+01, .505E+01, .126E+02, .213E+02, .504E+00, .250E+02, .383E+01, .390E+01, .728E+01,
5618 : .605E+01, .349E+01, .202E+02, .144E+02, .261E+01, .175E+02, .731E+01, .148E+02, .134E+00, .141E+01, .483E+01, .196E+02, .260E+02, .705E+01, .336E+00, .146E+02, .124E+02, .360E+01,
5619 : .181E+01, .100E+02, .583E+01, .358E+01, .181E+02, .208E+02, .239E+01, .228E+02, .121E+01, .460E+01, .398E+01, .270E+02, .167E+02, .683E+01, .427E+01, .189E+00, .145E+02, .730E+01,
5620 : .338E+01, .153E+02, .561E+01, .372E+01, .166E+02, .217E+01, .140E+02, .732E+01, .212E+02, .280E+02, .185E+02, .172E+02, .101E+01, .197E+02, .197E+02, .127E+02, .159E+02, .438E+01,
5621 : .146E+02, .210E+02, .127E+00, .133E+02, .115E+02, .661E+01, .148E+02, .121E+02, .721E-01, .103E+02, .109E+02, .222E+02, .971E+01, .912E+01, .853E+01, .794E+01, .735E+01, .316E+01,
5622 : .677E+01, .618E+01, .559E+01, .499E+01, .438E+01, .376E+01, .312E+01, .244E+01, .172E+01, .926E+00, .983E+01, .234E+02, .388E+01, .538E+01, .196E+01, .465E+01, .146E+02, .291E+02,
5623 : .245E+02, .813E+00, .416E+01, .187E+02, .732E+01, .638E+01, .215E+02, .422E+01, .144E+02, .294E+01, .255E+02, .406E+01, .516E+01, .174E+01, .733E+01, .301E+02, .630E+00, .394E+01,
5624 : .505E+01, .264E+02, .218E+02, .616E+01, .115E+02, .291E+02, .153E+01, .121E+00, .147E+02, .272E+01, .424E+01, .217E+02, .494E+01, .208E+02, .146E+02, .153E+01, .311E+02, .271E+02,
5625 : .458E+00, .733E+01, .371E+01, .594E+01, .273E+02, .549E+01, .250E+01, .419E-04, .436E+01, .443E+01, .471E+01, .321E+02, .133E+01, .734E+01, .303E+00, .349E+01, .256E+02, .219E+02,
5626 : .165E+02, .239E+02, .571E+01, .229E+02, .601E+01, .229E+01, .147E+02, .147E+02, .462E+01, .331E+02, .449E+01, .113E+01, .671E+01, .240E+02, .734E+01, .168E+00, .327E+01, .549E+01,
5627 : .663E+01, .226E+02, .207E+01, .449E+01, .701E-03, .341E+02, .481E+01, .427E+01, .734E+01, .132E+02, .940E+00, .649E+01, .212E+02, .250E+02, .315E-01, .258E+02, .272E+02, .739E+01,
5628 : .305E+01, .438E+01, .245E+02, .285E+02, .198E+02, .260E+02, .231E+02, .527E+01, .147E+02, .218E+02, .185E+02, .186E+01, .457E+01, .204E+02, .125E+01, .351E+02, .500E+01, .191E+02,
5629 : .148E+02, .172E+02, .405E+01, .178E+02, .756E+00, .735E+01, .627E+01, .830E+01, .159E+02, .165E+02, .187E+02, .153E+02, .147E+02, .141E+02, .135E+02, .129E+02, .123E+02, .284E+01,
5630 : .117E+02, .111E+02, .105E+02, .990E+01, .931E+01, .872E+01, .814E+01, .755E+01, .696E+01, .636E+01, .576E+01, .515E+01, .452E+01, .388E+01, .321E+01, .251E+01, .176E+01, .938E+00,
5631 : .504E+01, .361E+02, .166E+01, .940E+01, .469E+01, .370E-02, .518E+01, .735E+01, .383E+01, .271E+02, .291E+00, .604E+01, .107E+02, .262E+01, .147E+02, .281E+02, .482E+01, .371E+02,
5632 : .146E+01, .483E+01, .536E+01, .735E+01, .361E+01, .210E+00, .122E+02, .582E+01, .427E+01, .241E+01, .152E+02, .460E+01, .381E+02, .210E+02, .499E+01, .126E+01, .292E+02};
5633 :
5634 : static const double el[755]={
5635 : 682.516, 243.976, 951.665, 1290.007, 907.719, 181.886, 627.914, 343.899, 664.252, 11.099, 428.283, 143.333, 181.475, 1678.993, 1342.286, 1386.052, 370.149, 48.796,
5636 : 199.964, 109.815, 1238.177, 1501.723, 291.423, 591.306, 224.128, 604.720, 3.612, 70.605, 763.623, 556.957, 1395.373, 863.669, 80.856, 399.113, 996.311, 1619.948,
5637 : 144.440, 343.944, 531.828, 271.301, 1042.311, 490.079, 1187.299, 401.506, 464.157, 740.476, 821.657, 160.567, 315.865, 56.510, 21.592, 1273.737, 291.421, 1561.881,
5638 : 701.605, 1449.668, 522.425, 221.710, 849.049, 323.023, 1137.802, 3.647, 30.228, 12.062, 556.898, 780.205, 1505.247, 95.890, 490.169, 25.187, 1505.219, 36.742,
5639 : 0.000, 1089.402, 125.791, 1137.788, 111.270, 821.603, 1089.409, 1166.292, 43.091, 458.292, 266.405, 740.478, 379.232, 628.705, 36.706, 1449.691, 458.327, 243.916,
5640 : 65.633, 1042.277, 938.924, 1561.946, 21.613, 1063.966, 16.602, 780.278, 705.574, 701.651, 1619.927, 3.583, 428.288, 95.886, 907.680, 266.350, 1395.323, 1238.221,
5641 : 966.687, 92.879, 787.473, 996.338, 83.185, 125.879, 874.463, 221.699, 439.980, 664.261, 1187.215, 1342.221, 11.076, 399.027, 56.487, 201.445, 951.691, 522.431,
5642 : 124.607, 998.760, 12.015, 1739.214, 1033.221, 627.912, 70.692, 371.386, 1290.355, 1343.443, 134.022, 172.152, 100.765, 908.188, 181.870, 215.004, 863.702, 60.052,
5643 : 72.348, 505.228, 1680.244, 592.891, 1094.707, 48.844, 315.835, 160.822, 262.534, 25.174, 1239.672, 344.733, 160.600, 30.228, 163.870, 865.936, 1290.012, 80.882,
5644 : 16.567, 50.241, 7.812, 1622.371, 559.091, 314.709, 1453.696, 1195.792, 11.162, 319.341, 1190.209, 21.608, 1132.117, 146.832, 824.858, 591.341, 41.828, 43.125,
5645 : 1301.987, 36.693, 201.455,1565.707, 526.458, 574.945, 1529.665, 1413.259, 371.412, 295.151, 1141.941, 56.515, 131.261, 785.007, 1568.830, 951.958, 34.555, 109.831,
5646 : 5.246, 1510.244, 495.088, 199.987, 80.870, 65.626, 370.100, 272.237, 1094.985, 116.695, 1397.557, 432.643, 746.446, 516.120, 448.284, 28.572, 7.898, 246.663,
5647 : 109.759, 588.602, 1456.087, 464.853, 385.351, 1235.394, 250.483, 1049.127, 649.204, 327.194, 103.496, 665.691, 92.829, 709.001, 143.382, 1403.032, 435.903, 273.997,
5648 : 143.360, 665.052, 11.127, 229.963, 498.327, 1004.478, 747.460, 91.365, 16.562, 1807.963, 225.750, 672.752, 244.184, 296.214, 181.444, 1351.182, 408.170, 1045.151,
5649 : 124.596, 182.534, 210.728, 961.029, 429.185, 80.556, 1749.014, 144.416, 637.812, 833.703, 1510.021, 727.881, 1343.130, 1300.634, 381.633, 111.235, 30.180, 181.476,
5650 : 224.154, 568.416, 192.609, 21.608, 83.201, 918.886, 70.841, 60.097, 41.892, 1691.268, 28.550, 23.737, 34.527, 160.800, 50.199, 603.972, 70.638, 1043.090,
5651 : 95.825, 945.697, 125.841, 356.205, 1251.190, 350.381, 1145.169, 160.566, 853.146, 175.687, 924.336, 877.845, 62.433, 271.321, 743.705, 199.981, 292.936, 48.849,
5652 : 1634.625, 1251.796, 571.439, 765.410, 244.167, 332.077, 1203.049, 224.075, 160.071, 811.044, 201.432, 838.108, 642.979, 55.224, 293.010, 682.480, 493.035, 1143.200,
5653 : 1455.395, 1579.284, 1362.953, 540.106, 36.741, 323.061, 72.363, 309.254, 1156.010, 346.399, 408.927, 1019.300, 145.555, 799.473, 604.652, 20.123, 1525.146, 509.978,
5654 : 404.526, 246.595, 287.532, 1110.274, 1478.445, 271.343, 346.486, 132.343, 531.822, 100.709, 762.141, 379.289, 23.715, 1472.110, 721.899, 480.952, 898.649, 467.190,
5655 : 267.014, 464.069, 827.146, 1065.641, 120.232, 1503.292, 1885.080, 471.895, 1118.762, 726.012, 134.070, 28.522, 56.468, 296.201, 1420.376, 401.449, 453.229, 561.600,
5656 : 534.491, 1386.016, 247.697, 440.022, 1022.310, 323.066, 109.423, 343.892, 1826.147, 1246.043, 690.985, 172.122, 34.592, 291.398, 1369.844, 426.708, 404.568, 1273.697,
5657 : 243.949, 229.583, 805.253, 980.081, 606.337, 990.732, 201.416, 99.715, 163.869, 1768.416, 131.182, 221.676, 266.369, 181.864, 146.845, 103.434, 315.829, 116.726,
5658 : 91.411, 80.510, 70.902, 62.400, 55.197, 49.196, 350.362, 657.260, 370.138, 539.412, 41.851, 429.177, 215.030, 1320.415, 1222.503, 401.389, 505.176, 493.024,
5659 : 1166.236, 212.770, 379.230, 561.561, 939.154, 91.307, 1711.887, 624.738, 682.738, 634.869, 50.245, 262.554, 915.328, 80.826, 1272.287, 377.271, 197.059, 1063.938,
5660 : 712.833, 634.931, 899.429, 467.198, 408.889, 1656.560, 893.007, 60.043, 593.417, 1087.410, 574.967, 611.386, 795.441, 1225.361, 354.456, 314.748, 763.606, 440.025,
5661 : 182.649, 966.592, 860.806, 1330.613, 1353.731, 1602.334, 563.298, 882.685, 70.654, 332.742, 1179.637, 371.469, 874.468, 169.340, 471.894, 823.485, 83.140, 649.110,
5662 : 1549.410, 44.374, 974.564, 848.957, 534.381, 534.476, 687.917, 985.208, 1188.385, 312.230, 1135.014, 787.410, 505.240, 1970.224, 157.332, 432.684, 712.878, 787.365,
5663 : 109.760, 1008.207, 1497.687, 49.169, 705.531, 1070.879, 506.665, 1443.175, 292.918, 1091.693, 95.790, 539.483, 628.723, 1911.302, 111.285, 146.525, 938.909, 727.817,
5664 : 752.447, 556.865, 1447.166, 55.164, 498.275, 480.151, 490.128, 768.795, 1171.836, 574.970, 743.637, 665.127, 274.908, 827.090, 606.289, 428.286, 591.279, 1049.574,
5665 : 522.409, 915.267, 1293.950, 458.330, 371.315, 1853.681, 1081.980, 399.051, 136.818, 319.396, 344.679, 1008.247, 295.118, 272.214, 250.470, 229.959, 210.634, 718.730,
5666 : 192.623, 175.708, 160.000, 145.592, 132.286, 120.282, 109.379, 99.777, 91.275, 84.075, 1466.119, 1105.911, 62.461, 1397.845, 454.838, 144.415, 1033.277, 611.462,
5667 : 1208.341, 257.999, 1008.656, 568.438, 810.998, 1797.162, 1277.347, 125.817, 795.484, 686.215, 1315.323, 70.856, 1349.727, 430.726, 854.213, 649.111, 242.390, 968.839,
5668 : 182.550, 1427.046, 682.717, 1741.843, 1105.942, 1529.639, 143.334, 1403.891, 1183.033, 654.900, 80.557, 1387.323, 1302.809, 642.886, 1132.078, 407.815, 687.935, 1543.303,
5669 : 227.883, 898.660, 930.323, 1687.726, 1413.209, 225.793, 624.687, 3.582, 160.486, 91.350, 1257.093, 727.859, 386.105, 944.162, 214.676, 893.008, 1301.967, 1501.780,
5670 : 882.678, 763.537, 1634.810, 721.835, 274.030, 595.875, 1235.427, 1288.662, 103.466, 768.804, 1212.477, 365.695, 2063.475, 1195.812, 990.811, 202.569, 856.894, 1583.095,
5671 : 327.137, 1094.730, 568.164, 78.048, 11.951, 811.013, 116.647, 1169.163, 1038.535, 1208.289, 346.387, 2004.560, 998.695, 805.206, 191.763, 1353.690, 1466.189, 385.283,
5672 : 821.982, 199.941, 1246.028, 1583.405, 907.681, 848.928, 1143.221, 1532.580, 1343.136,1045.187, 821.562, 541.653, 84.042, 951.939, 181.435, 854.271, 131.196, 863.689,
5673 : 1398.659, 740.417, 1127.049, 780.246, 328.279, 1087.355, 1946.947, 448.231, 664.230, 701.614, 974.471, 627.898, 592.885, 558.999, 526.475, 495.017, 464.891, 788.270,
5674 : 435.851, 408.127, 381.599, 356.279, 332.059, 309.144, 287.531, 267.020, 247.710, 229.603, 212.697, 197.092, 182.588, 169.385, 157.283, 146.482, 136.881, 128.381,
5675 : 1483.267, 898.670, 516.344, 516.039, 91.337, 25.167, 146.844, 1137.326, 1086.137, 893.018, 311.472, 1890.434, 588.560, 755.759, 1455.417, 938.872, 1435.154, 944.138,
5676 : 492.235, 99.733, 163.864, 1188.394, 1046.425, 295.765, 665.744, 1835.122, 244.115, 724.448, 1315.301, 1388.242, 990.732, 1070.959, 109.429, 469.326, 985.287};
5677 :
5678 : static const double texpO3[755] ={
5679 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.77,0.79,0.76,0.76,
5680 : 0.77,0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.76,0.76,0.76,0.78, 0.79,0.77,0.76,0.76,0.78,0.76,0.76,0.76,0.80,0.78,0.76,0.76, 0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.77,0.79,0.76,0.76,0.77,
5681 : 0.76,0.76,0.77,0.76,0.77,0.76,0.76,0.76,0.77,0.79,0.78,0.81, 0.76,0.81,0.77,0.76,0.79,0.78,0.77,0.76,0.76,0.76,0.76,0.76, 0.76,0.81,0.81,0.81,0.76,0.76,0.79,0.77,0.76,0.78,0.76,0.76,
5682 : 0.76,0.77,0.76,0.76,0.77,0.77,0.76,0.78,0.76,0.80,0.76,0.76, 0.76,0.79,0.77,0.78,0.76,0.80,0.77,0.76,0.76,0.76,0.76,0.80, 0.77,0.79,0.76,0.76,0.77,0.78,0.77,0.82,0.78,0.78,0.82,0.77,
5683 : 0.77,0.76,0.76,0.80,0.76,0.77,0.79,0.78,0.78,0.77,0.76,0.79, 0.78,0.76,0.77,0.81,0.76,0.77,0.76,0.77,0.76,0.76,0.80,0.79, 0.76,0.76,0.76,0.78,0.76,0.76,0.76,0.77,0.81,0.80,0.76,0.77,
5684 : 0.76,0.77,0.78,0.76,0.79,0.76,0.76,0.76,0.79,0.78,0.76,0.77, 0.77,0.81,0.76,0.82,0.76,0.77,0.76,0.76,0.79,0.78,0.77,0.77, 0.79,0.78,0.76,0.77,0.76,0.79,0.81,0.80,0.79,0.76,0.76,0.78,
5685 : 0.77,0.80,0.76,0.79,0.79,0.76,0.78,0.82,0.76,0.79,0.77,0.81, 0.77,0.80,0.78,0.76,0.79,0.78,0.78,0.81,0.76,0.78,0.80,0.82, 0.81,0.77,0.76,0.76,0.78,0.80,0.78,0.79,0.78,0.76,0.79,0.83,
5686 : 0.78,0.78,0.78,0.82,0.79,0.77,0.76,0.77,0.80,0.82,0.76,0.76, 0.76,0.76,0.79,0.77,0.77,0.78,0.78,0.80,0.77,0.76,0.77,0.81, 0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.78,0.78,0.80,0.77,0.83,
5687 : 0.77,0.82,0.77,0.78,0.76,0.79,0.83,0.78,0.82,0.77,0.82,0.81, 0.76,0.79,0.81,0.78,0.79,0.77,0.76,0.84,0.79,0.81,0.78,0.78, 0.76,0.78,0.77,0.76,0.78,0.81,0.81,0.76,0.79,0.81,0.80,0.83,
5688 : 0.76,0.76,0.76,0.79,0.77,0.79,0.77,0.78,0.76,0.79,0.79,0.83, 0.77,0.81,0.80,0.76,0.76,0.79,0.79,0.79,0.78,0.82,0.76,0.79, 0.79,0.77,0.80,0.77,0.80,0.79,0.76,0.76,0.81,0.79,0.76,0.80,
5689 : 0.78,0.79,0.82,0.76,0.77,0.76,0.76,0.80,0.83,0.80,0.78,0.76, 0.77,0.79,0.76,0.79,0.79,0.80,0.80,0.76,0.78,0.80,0.76,0.79, 0.77,0.79,0.76,0.84,0.80,0.78,0.76,0.78,0.76,0.79,0.79,0.84,
5690 : 0.78,0.77,0.82,0.76,0.81,0.76,0.78,0.77,0.77,0.76,0.77,0.78, 0.78,0.78,0.77,0.77,0.79,0.77,0.77,0.77,0.77,0.76,0.76,0.76, 0.79,0.80,0.79,0.80,0.77,0.79,0.78,0.76,0.84,0.78,0.80,0.80,
5691 : 0.83,0.77,0.79,0.80,0.81,0.76,0.76,0.79,0.81,0.81,0.77,0.79, 0.82,0.77,0.76,0.78,0.77,0.83,0.81,0.81,0.76,0.80,0.80,0.76, 0.82,0.77,0.79,0.76,0.81,0.81,0.82,0.76,0.78,0.79,0.82,0.80,
5692 : 0.77,0.82,0.76,0.76,0.76,0.76,0.79,0.82,0.77,0.78,0.76,0.79, 0.82,0.77,0.80,0.76,0.77,0.81,0.76,0.76,0.83,0.82,0.79,0.80, 0.81,0.83,0.76,0.78,0.76,0.81,0.80,0.76,0.77,0.80,0.81,0.76,
5693 : 0.77,0.83,0.76,0.76,0.81,0.83,0.79,0.76,0.78,0.76,0.77,0.81, 0.80,0.76,0.77,0.77,0.83,0.82,0.76,0.80,0.76,0.76,0.80,0.79, 0.79,0.82,0.84,0.81,0.81,0.81,0.77,0.82,0.81,0.79,0.80,0.76,
5694 : 0.80,0.82,0.76,0.79,0.79,0.76,0.83,0.79,0.76,0.78,0.79,0.83, 0.78,0.78,0.78,0.78,0.78,0.76,0.77,0.77,0.77,0.77,0.77,0.77, 0.77,0.77,0.76,0.76,0.76,0.83,0.77,0.76,0.78,0.78,0.83,0.81,
5695 : 0.84,0.77,0.76,0.81,0.82,0.76,0.76,0.77,0.82,0.76,0.76,0.77, 0.76,0.78,0.82,0.81,0.77,0.76,0.78,0.76,0.81,0.76,0.83,0.76, 0.78,0.76,0.84,0.76,0.77,0.76,0.76,0.81,0.84,0.78,0.82,0.76,
5696 : 0.77,0.83,0.76,0.76,0.76,0.78,0.76,0.76,0.78,0.77,0.76,0.82, 0.78,0.83,0.77,0.76,0.84,0.76,0.82,0.82,0.76,0.82,0.79,0.76, 0.76,0.79,0.77,0.82,0.76,0.76,0.76,0.83,0.76,0.77,0.76,0.76,
5697 : 0.79,0.83,0.76,0.76,0.76,0.82,0.77,0.76,0.76,0.84,0.78,0.76, 0.82,0.82,0.76,0.76,0.76,0.79,0.76,0.78,0.84,0.76,0.82,0.82, 0.83,0.76,0.76,0.83,0.81,0.76,0.76,0.82,0.78,0.83,0.77,0.82,
5698 : 0.76,0.81,0.76,0.81,0.77,0.76,0.76,0.80,0.80,0.81,0.83,0.80, 0.80,0.80,0.79,0.79,0.79,0.76,0.79,0.79,0.79,0.78,0.78,0.78, 0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,
5699 : 0.76,0.83,0.76,0.80,0.77,0.76,0.77,0.76,0.76,0.83,0.77,0.76, 0.81,0.76,0.76,0.83,0.76,0.83,0.76,0.77,0.78,0.76,0.76,0.77, 0.81,0.76,0.78,0.76,0.76,0.76,0.83,0.83,0.77,0.76,0.83};
5700 :
5701 : static const double brdO3air[755] ={
5702 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
5703 : 2.4356,2.3000,2.3000,2.3000,2.3000,2.3439,2.1722,2.3000,2.3000, 2.3498,2.3000,2.3000,2.3000,2.3000,2.1338,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3291,2.2166,2.4060,2.5155,2.3000,2.2314,2.3000,
5704 : 2.3000,2.3000,2.1338,2.2669,2.3000,2.3000,2.3000,2.5895,2.5392, 2.5244,2.1130,2.3000,2.3000,2.3883,2.1456,2.4682,2.3000,2.4771, 2.7405,2.3000,2.3735,2.3000,2.3942,2.3000,2.3000,2.3000,2.4149,
5705 : 2.1456,2.2492,2.0894,2.3000,2.0953,2.4386,2.3000,2.1574,2.2669, 2.3705,2.3000,2.3000,2.3000,2.5540,2.3000,2.5925,2.0775,2.0835, 2.0953,2.3000,2.6428,2.1722,2.4208,2.3000,2.2314,2.3000,2.3000,
5706 : 2.3000,2.3291,2.3000,2.3000,2.4445,2.3439,2.3000,2.2877,2.3000, 2.1042,2.3000,2.3000,2.3000,2.1870,2.3735,2.3084,2.3000,2.1249, 2.2936,2.3000,2.5540,2.3000,2.3000,2.1130,2.4711,2.2018,2.3000,
5707 : 2.3000,2.2936,2.2610,2.3291,2.0716,2.3291,2.2344,2.0687,2.4978, 2.3705,2.3000,2.3000,2.1249,2.3000,2.4149,2.2018,2.2610,2.2078, 2.4771,2.3000,2.2166,2.3025,2.4682,2.3498,2.0775,2.3000,2.3143,
5708 : 2.5244,2.5244,2.5895,2.3000,2.1338,2.1841,2.3000,2.3000,2.5570, 2.2314,2.3000,2.4948,2.3000,2.3735,2.0835,2.1042,2.5540,2.4060, 2.3000,2.4415,2.2344,2.3000,2.1456,2.3000,2.3000,2.3000,2.1604,
5709 : 2.2492,2.3000,2.3912,2.3942,2.0894,2.3000,2.0598,2.5836,2.2640, 2.6901,2.3000,2.1574,2.2640,2.3498,2.3439,2.1722,2.2669,2.3000, 2.4208,2.3000,2.1397,2.0953,2.1190,2.1397,2.3000,2.6191,2.2078,
5710 : 2.3113,2.1900,2.3000,2.1722,2.1604,2.3000,2.2877,2.0627,2.3000, 2.1841,2.4445,2.1663,2.2877,2.1042,2.2788,2.3000,2.1870,2.2078, 2.2166,2.0894,2.5984,2.3084,2.1190,2.0687,2.1456,2.4711,2.5658,
5711 : 2.3000,2.2344,2.1130,2.2255,2.1841,2.2462,2.3000,2.2018,2.0568, 2.2403,2.2610,2.3291,2.0716,2.1456,2.4978,2.3000,2.2936,2.1249, 2.1249,2.3000,2.3000,2.3000,2.3000,2.2166,2.3291,2.5126,2.1782,
5712 : 2.2196,2.1900,2.3498,2.5155,2.3705,2.0775,2.5244,2.4149,2.4682, 2.3000,2.5244,2.5570,2.4948,2.1959,2.1959,2.1338,2.3912,2.0923, 2.3498,2.1071,2.3113,2.2314,2.3000,2.1604,2.0746,2.2788,2.1249,
5713 : 2.3735,2.1071,2.0835,2.5540,2.1959,2.0775,2.2462,2.1900,2.4623, 2.3000,2.0627,2.1456,2.1456,2.2196,2.2492,2.3000,2.1426,2.3942, 2.3000,2.1604,2.0894,2.1663,2.3000,2.1959,2.1663,2.1249,2.0568,
5714 : 2.3000,2.3000,2.0509,2.1574,2.4386,2.1722,2.4120,2.2669,2.3000, 2.1722,2.1397,2.0923,2.4208,2.0953,2.1900,2.4948,2.3000,2.1722, 2.1515,2.1278,2.2877,2.0627,2.0391,2.1130,2.1574,2.4445,2.1190,
5715 : 2.3676,2.1042,2.1515,2.6132,2.3000,2.1456,2.1870,2.3000,2.1308, 2.3084,2.1397,2.0687,2.3000,2.4711,2.0391,2.3000,2.1190,2.0746, 2.1130,2.3232,2.5836,2.3735,2.0983,2.3000,2.1604,2.2018,2.1042,
5716 : 2.1071,2.0509,2.3291,2.1308,2.3000,2.0864,2.4978,2.1841,2.3000, 2.0598,2.1249,2.2817,2.5540,2.2078,2.3000,2.2166,2.1278,2.0627, 2.2344,2.3498,2.1249,2.3000,2.1782,2.3000,2.2610,2.5244,2.2936,
5717 : 2.3000,2.3291,2.2462,2.2196,2.2788,2.3113,2.3705,2.1959,2.3498, 2.3912,2.4149,2.4415,2.4682,2.4948,2.5244,2.0746,2.1338,2.1722, 2.1900,2.5244,2.1515,2.2433,2.3000,2.0627,2.2314,2.1071,2.1308,
5718 : 2.0746,2.3735,2.0657,2.1071,2.0835,2.3000,2.3000,2.1456,2.1574, 2.1782,2.4978,2.2078,2.0598,2.3143,2.3000,2.2492,2.3942,2.0923, 2.1574,2.0894,2.3000,2.0983,2.0539,2.3000,2.1071,2.4711,2.1574,
5719 : 2.3000,2.1782,2.1663,2.1367,2.3000,2.2669,2.1722,2.1367,2.0450, 2.4208,2.1071,2.3000,2.0509,2.0568,2.3000,2.1722,2.1160,2.4445, 2.2877,2.3000,2.1426,2.1249,2.4445,2.0361,2.3000,2.4208,2.1574,
5720 : 2.3000,2.4356,2.0983,2.1160,2.1870,2.0716,2.1456,2.0923,2.3000, 2.3084,2.3000,2.1456,2.0272,2.3000,2.4711,2.1130,2.0775,2.3000, 2.2640,2.0568,2.3000,2.5836,2.1663,2.0835,2.2018,2.0391,2.3291,
5721 : 2.3000,2.3942,2.0183,2.1900,2.3000,2.3735,2.4978,2.0983,2.1367, 2.3000,2.1190,2.3000,2.5540,2.0864,2.2166,2.1397,2.1249,2.0687, 2.0124,2.1574,2.1782,2.3498,2.1367,2.0479,2.1604,2.1071,2.3000,
5722 : 2.1308,2.1160,2.3000,2.1515,2.1841,2.3000,2.0746,2.1722,2.3000, 2.2078,2.1959,2.0983,2.2196,2.2344,2.2462,2.2610,2.2788,2.3000, 2.2936,2.3113,2.3291,2.3498,2.3705,2.3912,2.4149,2.4415,2.4682,
5723 : 2.4948,2.0450,2.0835,2.5244,2.3000,2.2314,2.3291,2.0835,2.0035, 2.0687,2.3735,2.3000,2.0598,2.1160,2.3000,2.0568,2.3498,2.0687, 2.3000,2.0568,2.4978,2.3000,2.2492,2.1071,1.9976,2.3942,2.3000,
5724 : 2.2877,2.0450,2.0272,2.3000,2.0568,2.0391,2.2166,2.3000,2.0627, 2.3000,2.4711,2.0450,2.3000,2.0391,2.0687,2.2669,1.9888,2.0331, 2.4208,2.0983,2.3000,2.3000,2.0509,2.2492,2.3000,2.3000,2.3084,
5725 : 2.4445,2.3000,1.9828,2.2877,2.0923,2.4445,2.3000,2.0627,2.0331, 2.0598,2.0095,2.3000,2.0183,2.2166,2.3000,2.0568,2.2166,2.4208, 1.9740,2.3000,2.3000,2.3000,2.0746,2.3000,2.4711,2.3000,2.3000,
5726 : 2.1870,2.0923,2.3000,2.3853,2.3000,1.9680,2.3942,2.3000,2.3000, 2.0598,2.3291,2.3000,2.1071,2.0006,2.3000,2.0568,2.0450,2.1574, 2.3000,2.2669,2.0687,2.0331,2.1249,1.9917,2.0835,2.3000,2.3000,
5727 : 2.0983,2.1456,2.3000,2.5540,2.1160,2.1782,1.9592,2.3735,2.1367, 2.3000,2.1663,2.3000,2.1574,2.3498,2.3000,2.3000,2.1338,2.1900, 2.1782,2.0568,2.1071,2.1190,2.1308,2.1397,2.1515,2.1604,2.3000,
5728 : 2.1722,2.1841,2.1959,2.2078,2.2196,2.2344,2.2462,2.2610,2.2788, 2.2936,2.3113,2.3291,2.3498,2.3705,2.3912,2.4149,2.4415,2.4682, 2.3000,1.9532,2.3000,2.1130,2.5244,2.3000,2.3498,2.3000,2.3000,
5729 : 1.9858,2.3735,2.3000,2.0953,2.3000,2.3000,1.9799,2.3000,1.9444, 2.3000,2.4978,2.3291,2.3000,2.3000,2.3942,2.0835,2.3000,2.2314, 2.3000,2.0568,2.3000,1.9355,2.0568,2.4711,2.3000,1.9710};
5730 :
5731 :
5732 : static const unsigned int ifin1[500]={
5733 : 3, 4, 5, 6, 6, 7, 9, 11, 12, 13, 14, 18, 18, 21, 24, 27, 30, 30, 30, 30, 31, 33, 34, 36, 38, 39, 41, 41, 43, 44,
5734 : 45, 46, 48, 49, 49, 51, 53, 54, 55, 56, 58, 61, 63, 63, 64, 65, 65, 66, 67, 70, 71, 72, 73, 74, 77, 79, 81, 82, 83, 84,
5735 : 85, 86, 87, 87, 87, 89, 90, 92, 92, 93, 95, 97, 97, 99, 101, 101, 103, 106, 108, 108, 111, 111, 112, 113, 117, 118, 118, 120, 120, 120,
5736 : 120, 121, 123, 123, 125, 125, 126, 129, 130, 130, 131, 134, 134, 134, 135, 137, 138, 139, 140, 140, 144, 147, 147, 148, 149, 151, 153, 154, 157, 159,
5737 : 159, 160, 160, 164, 164, 164, 167, 168, 171, 171, 172, 174, 174, 175, 176, 177, 178, 181, 182, 185, 187, 188, 189, 190, 192, 192, 193, 194, 194, 195,
5738 : 198, 198, 199, 202, 204, 204, 206, 208, 208, 208, 209, 211, 213, 215, 217, 218, 222, 222, 222, 223, 224, 226, 227, 229, 229, 231, 231, 232, 232, 235,
5739 : 238, 238, 238, 240, 241, 242, 244, 246, 247, 247, 249, 250, 252, 253, 255, 256, 256, 258, 259, 259, 260, 263, 265, 265, 266, 268, 271, 272, 274, 277,
5740 : 277, 279, 279, 286, 288, 290, 291, 292, 296, 296, 298, 300, 301, 301, 305, 307, 309, 310, 311, 312, 313, 314, 315, 315, 318, 319, 322, 322, 325, 329,
5741 : 329, 330, 331, 333, 334, 336, 338, 338, 340, 340, 340, 341, 343, 343, 343, 345, 347, 348, 350, 353, 353, 355, 355, 356, 358, 360, 360, 361, 361, 365,
5742 : 365, 366, 368, 370, 372, 372, 374, 377, 378, 379, 380, 382, 384, 385, 387, 388, 390, 390, 391, 393, 395, 396, 396, 398, 400, 403, 404, 406, 413, 424,
5743 : 426, 427, 428, 432, 433, 433, 435, 436, 438, 439, 440, 440, 442, 443, 444, 447, 449, 449, 449, 453, 454, 454, 456, 457, 459, 462, 463, 463, 466, 467,
5744 : 468, 469, 471, 472, 473, 474, 475, 476, 477, 477, 478, 480, 480, 481, 483, 484, 485, 486, 487, 491, 492, 493, 494, 496, 499, 500, 501, 502, 504, 506,
5745 : 506, 508, 510, 512, 512, 512, 514, 516, 518, 521, 523, 524, 524, 525, 527, 529, 529, 531, 533, 541, 543, 548, 552, 556, 569, 570, 571, 573, 575, 575,
5746 : 575, 579, 580, 581, 585, 585, 586, 588, 588, 589, 590, 591, 593, 593, 594, 595, 598, 603, 603, 605, 605, 605, 609, 611, 612, 613, 613, 616, 616, 618,
5747 : 618, 619, 620, 621, 623, 625, 627, 627, 627, 628, 630, 632, 634, 635, 637, 638, 639, 641, 643, 645, 646, 646, 647, 648, 648, 650, 651, 653, 654, 656,
5748 : 658, 661, 662, 662, 664, 668, 672, 675, 677, 677, 683, 685, 687, 689, 695, 697, 699, 701, 705, 712, 722, 722, 726, 726, 729, 730, 733, 733, 733, 733,
5749 : 735, 737, 737, 738, 739, 741, 742, 743, 744, 747, 748, 748, 748, 750, 750, 752, 753, 755, 755, 755};
5750 :
5751 : static const unsigned int ini1[500]={
5752 : 1, 1, 1, 1, 3, 4, 5, 6, 6, 7, 9, 11, 12, 13, 14, 18, 18, 21, 24, 27, 30, 30, 30, 30, 31, 33, 34, 36, 38, 39,
5753 : 41, 41, 43, 44, 45, 46, 48, 49, 49, 51, 53, 54, 55, 56, 58, 61, 63, 63, 64, 65, 65, 66, 67, 70, 71, 72, 73, 74, 77, 79,
5754 : 81, 82, 83, 84, 85, 86, 87, 87, 87, 89, 90, 92, 92, 93, 95, 97, 97, 99, 101, 101,103, 106, 108, 108, 111, 111, 112, 113, 117, 118,
5755 : 118, 120, 120, 120, 120, 121, 123, 123, 125, 125,126, 129, 130, 130, 131, 134, 134, 134, 135, 137,138, 139, 140, 140, 144, 147, 147, 148, 149, 151,
5756 : 153, 154, 157, 159, 159, 160, 160, 164, 164, 164,167, 168, 171, 171, 172, 174, 174, 175, 176, 177,178, 181, 182, 185, 187, 188, 189, 190, 192, 192,
5757 : 193, 194, 194, 195, 198, 198, 199, 202, 204, 204,206, 208, 208, 208, 209, 211, 213, 215, 217, 218,222, 222, 222, 223, 224, 226, 227, 229, 229, 231,
5758 : 231, 232, 232, 235, 238, 238, 238, 240, 241, 242,244, 246, 247, 247, 249, 250, 252, 253, 255, 256,256, 258, 259, 259, 260, 263, 265, 265, 266, 268,
5759 : 271, 272, 274, 277, 277, 279, 279, 286, 288, 290,291, 292, 296, 296, 298, 300, 301, 301, 305, 307,309, 310, 311, 312, 313, 314, 315, 315, 318, 319,
5760 : 322, 322, 325, 329, 329, 330, 331, 333, 334, 336,338, 338, 340, 340, 340, 341, 343, 343, 343, 345,347, 348, 350, 353, 353, 355, 355, 356, 358, 360,
5761 : 360, 361, 361, 365, 365, 366, 368, 370, 372, 372,374, 377, 378, 379, 380, 382, 384, 385, 387, 388,390, 390, 391, 393, 395, 396, 396, 398, 400, 403,
5762 : 404, 406, 413, 424, 426, 427, 428, 432, 433, 433,435, 436, 438, 439, 440, 440, 442, 443, 444, 447,449, 449, 449, 453, 454, 454, 456, 457, 459, 462,
5763 : 463, 463, 466, 467, 468, 469, 471, 472, 473, 474,475, 476, 477, 477, 478, 480, 480, 481, 483, 484,485, 486, 487, 491, 492, 493, 494, 496, 499, 500,
5764 : 501, 502, 504, 506, 506, 508, 510, 512, 512, 512,514, 516, 518, 521, 523, 524, 524, 525, 527, 529,529, 531, 533, 541, 543, 548, 552, 556, 569, 570,
5765 : 571, 573, 575, 575, 575, 579, 580, 581, 585, 585,586, 588, 588, 589, 590, 591, 593, 593, 594, 595,598, 603, 603, 605, 605, 605, 609, 611, 612, 613,
5766 : 613, 616, 616, 618, 618, 619, 620, 621, 623, 625,627, 627, 627, 628, 630, 632, 634, 635, 637, 638,639, 641, 643, 645, 646, 646, 647, 648, 648, 650,
5767 : 651, 653, 654, 656, 658, 661, 662, 662, 664, 668,672, 675, 677, 677, 683, 685, 687, 689, 695, 697,699, 701, 705, 712, 722, 722, 726, 726, 729, 730,
5768 : 733, 733, 733, 733, 735, 737, 737, 738, 739, 741,742, 743, 744, 747, 748, 748, 748, 750, 750, 752};
5769 :
5770 : static const unsigned int ifin2[500]={
5771 : 1, 2, 3, 5, 6, 6, 6, 8, 10, 12, 13, 14, 18, 18, 20, 22, 25, 29, 30, 30, 30, 30, 33, 33, 36, 38, 39, 41, 41, 42,
5772 : 44, 45, 46, 48, 49, 49, 50, 53, 53, 55, 56, 57, 60, 62, 63, 64, 65, 65, 66, 67, 69, 71, 72, 73, 74, 75, 79, 80, 81, 82,
5773 : 83, 85, 86, 86, 87, 87, 89, 89, 91, 92, 93, 94, 97, 97, 99, 99, 101, 103, 104, 108, 108, 109, 111, 112, 113, 116, 118, 118, 119, 120,
5774 : 120, 120, 120, 122, 123, 124, 125, 126, 128, 130, 130, 131, 134, 134, 134, 134, 137, 138, 139, 140, 140, 142, 147, 147, 148, 149, 151, 151, 153, 156,
5775 : 158, 159, 160, 160, 163, 164, 164, 166, 168, 171, 171, 172, 174, 174, 175, 176, 177, 178, 181, 182, 184, 187, 188, 189, 190, 191, 192, 193, 193, 194,
5776 : 195, 196, 198, 199, 202, 202, 204, 206, 207, 208, 208, 208, 211, 212, 215, 217, 218, 222, 222, 222, 223, 224, 226, 227, 229, 229, 231, 231, 232, 232,
5777 : 235, 238, 238, 238, 240, 241, 242, 244, 246, 247, 247, 248, 250, 252, 253, 254, 255, 256, 258, 258, 259, 260, 263, 265, 265, 266, 268, 269, 272, 274,
5778 : 275, 277, 278, 279, 284, 288, 289, 291, 292, 296, 296, 297, 299, 300, 301, 305, 306, 309, 310, 311, 311, 312, 314, 314, 315, 318, 318, 321, 322, 324,
5779 : 328, 329, 330, 331, 333, 334, 335, 338, 338, 339, 340, 340, 341, 343, 343, 343, 345, 346, 348, 349, 353, 353, 354, 355, 355, 356, 360, 360, 361, 361,
5780 : 364, 365, 365, 368, 370, 372, 372, 373, 376, 378, 379, 380, 382, 384, 385, 386, 388, 389, 390, 391, 392, 394, 396, 396, 398, 400, 401, 404, 406, 411,
5781 : 423, 425, 427, 428, 431, 433, 433, 434, 436, 438, 439, 439, 440, 442, 443, 444, 447, 449, 449, 449, 450, 453, 454, 456, 457, 458, 462, 463, 463, 464,
5782 : 467, 468, 469, 471, 472, 473, 474, 475, 475, 477, 477, 478, 480, 480, 481, 483, 484, 485, 485, 487, 491, 492, 493, 494, 496, 499, 500, 501, 502, 502,
5783 : 506, 506, 507, 510, 512, 512, 512, 513, 516, 517, 520, 522, 524, 524, 525, 527, 528, 529, 531, 532, 540, 542, 546, 551, 555, 562, 570, 571, 573, 575,
5784 : 575, 575, 578, 580, 581, 584, 585, 586, 587, 588, 589, 590, 591, 593, 593, 594, 595, 598, 603, 603, 605, 605, 605, 608, 611, 612, 612, 613, 615, 616,
5785 : 616, 618, 619, 620, 621, 622, 625, 627, 627, 627, 628, 629, 631, 634, 635, 636, 638, 639, 641, 642, 645, 645, 646, 647, 648, 648, 650, 650, 653, 654,
5786 : 655, 657, 661, 662, 662, 663, 668, 672, 674, 677, 677, 682, 683, 687, 689, 695, 696, 698, 700, 705, 710, 722, 722, 724, 726, 727, 729, 732, 733, 733,
5787 : 733, 733, 736, 737, 738, 739, 741, 742, 742, 744, 747, 748, 748, 748, 749, 750, 752, 753, 753, 755};
5788 :
5789 : static const unsigned int ini2[500]={
5790 : 1, 1, 1, 3, 4, 5, 6, 6, 7, 9, 12, 12, 14, 16, 18, 19, 21, 25, 29, 30, 30, 30, 30, 31, 33, 34, 38, 39, 39, 41,
5791 : 41, 43, 44, 46, 47, 49, 49, 49, 52, 53, 55, 56, 56, 59, 62, 63, 64, 64, 65, 65, 66, 68, 70, 71, 73, 73, 74, 78, 79, 81,
5792 : 82, 83, 85, 85, 86, 87, 87, 89, 89, 91, 92, 92, 94, 96, 97, 97, 99, 101, 101, 103, 107, 108, 108, 111, 112, 112, 116, 118, 118, 118,
5793 : 120, 120, 120, 120, 121, 123, 123, 125, 125, 127, 129, 130, 130, 131, 134, 134, 134, 136, 137, 138, 140, 140, 142, 144, 147, 147, 149, 150, 151, 153,
5794 : 154, 157, 159, 159, 160, 161, 164, 164, 165, 167, 168, 171, 172, 172, 174, 174, 175, 176, 177, 178, 182, 183, 185, 187, 188, 190, 190, 192, 193, 193,
5795 : 194, 194, 196, 198, 199, 201, 202, 204, 204, 206, 208, 208, 208, 209, 211, 214, 216, 217, 220, 222, 222, 222, 223, 225, 226, 227, 229, 230, 231, 231,
5796 : 232, 232, 237, 238, 238, 239, 241, 242, 243, 244, 246, 247, 248, 249, 250, 252, 254, 255, 256, 257, 258, 259, 259, 260, 263, 265, 265, 266, 268, 272,
5797 : 272, 274, 277, 277, 279, 280, 286, 289, 291, 291, 294, 296, 296, 298, 300, 301, 303, 306, 308, 310, 310, 311, 312, 314, 314, 315, 316, 318, 320, 322,
5798 : 323, 327, 329, 329, 330, 331, 334, 335, 337, 338, 338, 340, 340, 341, 342, 343, 343, 343, 345, 348, 348, 350, 353, 353, 355, 355, 356, 358, 360, 361,
5799 : 361, 362, 365, 365, 366, 368, 371, 372, 373, 374, 378, 378, 379, 380, 382, 385, 385, 387, 388, 390, 390, 392, 393, 395, 396, 397, 398, 400, 404, 405,
5800 : 407, 417, 424, 426, 428, 428, 432, 433, 434, 435, 438, 438, 439, 440, 440, 443, 443, 444, 448, 449, 449, 449, 453, 454, 454, 456, 458, 460, 462, 463,
5801 : 464, 467, 467, 468, 470, 471, 472, 473, 474, 475, 477, 477, 477, 478, 480, 480, 481, 484, 484, 485, 487, 488, 491, 492, 494, 494, 497, 500, 500, 501,
5802 : 502, 506, 506, 506, 509, 512, 512, 512, 513, 516, 517, 520, 522, 523, 524, 524, 525, 527, 529, 530, 532, 535, 541, 544, 549, 553, 557, 569, 570, 572,
5803 : 573, 575, 575, 576, 579, 580, 582, 585, 585, 587, 588, 588, 590, 591, 592, 593, 593, 595, 597, 602, 603, 603, 605, 605, 606, 610, 611, 612, 613, 614,
5804 : 616, 616, 618, 619, 619, 620, 621, 623, 625, 627, 627, 627, 628, 630, 633, 634, 635, 637, 639, 640, 642, 644, 645, 646, 646, 648, 648, 649, 650, 651,
5805 : 653, 655, 656, 658, 661, 662, 662, 664, 670, 672, 676, 677, 680, 683, 686, 687, 690, 696, 698, 700, 702, 707, 720, 722, 722, 726, 726, 729, 731, 733,
5806 : 733, 733, 733, 735, 737, 738, 739, 739, 742, 742, 743, 745, 747, 748, 748, 748, 750, 750, 752, 753};
5807 :
5808 : static const unsigned int ifin3[500]={
5809 : 1, 1, 3, 4, 5, 6, 6, 7, 9, 12, 12, 14, 16, 18, 19, 21, 25, 29, 30, 30, 30, 30, 31, 33, 34, 38, 39, 39, 41, 41,
5810 : 43, 44, 46, 47, 49, 49, 49, 52, 53, 55, 56, 56, 59, 62, 63, 64, 64, 65, 65, 66, 68, 70, 71, 73, 73, 74, 78, 79, 81, 82,
5811 : 83, 85, 85, 86, 87, 87, 89, 89, 91, 92, 92, 94, 96, 97, 97, 99, 101, 101, 103, 107, 108, 108, 111, 112, 112, 116, 118, 118, 118, 120,
5812 : 120, 120, 120, 121, 123, 123, 125, 125, 127, 129, 130, 130, 131, 134, 134, 134, 136, 137, 138, 140, 140, 142, 144, 147, 147, 149, 150, 151, 153, 154,
5813 : 157, 159, 159, 160, 161, 164, 164, 165, 167, 168, 171, 172, 172, 174, 174, 175, 176, 177, 178, 182, 183, 185, 187, 188, 190, 190, 192, 193, 193, 194,
5814 : 194, 196, 198, 199, 201, 202, 204, 204, 206, 208, 208, 208, 209, 211, 214, 216, 217, 220, 222, 222, 222, 223, 225, 226, 227, 229, 230, 231, 231, 232,
5815 : 232, 237, 238, 238, 239, 241, 242, 243, 244, 246, 247, 248, 249, 250, 252, 254, 255, 256, 257, 258, 259, 259, 260, 263, 265, 265, 266, 268, 272, 272,
5816 : 274, 277, 277, 279, 280, 286, 289, 291, 291, 294, 296, 296, 298, 300, 301, 303, 306, 308, 310, 310, 311, 312, 314, 314, 315, 316, 318, 320, 322, 323,
5817 : 327, 329, 329, 330, 331, 334, 335, 337, 338, 338, 340, 340, 341, 342, 343, 343, 343, 345, 348, 348, 350, 353, 353, 355, 355, 356, 358, 360, 361, 361,
5818 : 362, 365, 365, 366, 368, 371, 372, 373, 374, 378, 378, 379, 380, 382, 385, 385, 387, 388, 390, 390, 392, 393, 395, 396, 397, 398, 400, 404, 405, 407,
5819 : 417, 424, 426, 428, 428, 432, 433, 434, 435, 438, 438, 439, 440, 440, 443, 443, 444, 448, 449, 449, 449, 453, 454, 454, 456, 458, 460, 462, 463, 464,
5820 : 467, 467, 468, 470, 471, 472, 473, 474, 475, 477, 477, 477, 478, 480, 480, 481, 484, 484, 485, 487, 488, 491, 492, 494, 494, 497, 500, 500, 501, 502,
5821 : 506, 506, 506, 509, 512, 512, 512, 513, 516, 517, 520, 522, 523, 524, 524, 525, 527, 529, 530, 532, 535, 541, 544, 549, 553, 557, 569, 570, 572, 573,
5822 : 575, 575, 576, 579, 580, 582, 585, 585, 587, 588, 588, 590, 591, 592, 593, 593, 595, 597, 602, 603, 603, 605, 605, 606, 610, 611, 612, 613, 614, 616,
5823 : 616, 618, 619, 619, 620, 621, 623, 625, 627, 627, 627, 628, 630, 633, 634, 635, 637, 639, 640, 642, 644, 645, 646, 646, 648, 648, 649, 650, 651, 653,
5824 : 655, 656, 658, 661, 662, 662, 664, 670, 672, 676, 677, 680, 683, 686, 687, 690, 696, 698, 700, 702, 707, 720, 722, 722, 726, 726, 729, 731, 733, 733,
5825 : 733, 733, 735, 737, 738, 739, 739, 742, 742, 743, 745, 747, 748, 748, 748, 750, 750, 752, 753, 755};
5826 :
5827 :
5828 : static const unsigned int ini3[500]={
5829 : 1, 1, 2, 3, 5, 6, 6, 6, 8, 10, 12, 13, 14, 18, 18, 20, 22, 25, 29, 30, 30, 30, 30, 33, 33, 36, 38, 39, 41, 41,
5830 : 42, 44, 45, 46, 48, 49, 49, 50, 53, 53, 55, 56, 57, 60, 62, 63, 64, 65, 65, 66, 67, 69, 71, 72, 73, 74, 75, 79, 80, 81,
5831 : 82, 83, 85, 86, 86, 87, 87, 89, 89, 91, 92, 93, 94, 97, 97, 99, 99, 101, 103, 104, 108, 108, 109, 111, 112, 113, 116, 118, 118, 119,
5832 : 120, 120, 120, 120, 122, 123, 124, 125, 126, 128, 130, 130, 131, 134, 134, 134, 134, 137, 138, 139, 140, 140, 142, 147, 147, 148, 149, 151, 151, 153,
5833 : 156, 158, 159, 160, 160, 163, 164, 164, 166, 168, 171, 171, 172, 174, 174, 175, 176, 177, 178, 181, 182, 184, 187, 188, 189, 190, 191, 192, 193, 193,
5834 : 194, 195, 196, 198, 199, 202, 202, 204, 206, 207, 208, 208, 208, 211, 212, 215, 217, 218, 222, 222, 222, 223, 224, 226, 227, 229, 229, 231, 231, 232,
5835 : 232, 235, 238, 238, 238, 240, 241, 242, 244, 246, 247, 247, 248, 250, 252, 253, 254, 255, 256, 258, 258, 259, 260, 263, 265, 265, 266, 268, 269, 272,
5836 : 274, 275, 277, 278, 279, 284, 288, 289, 291, 292, 296, 296, 297, 299, 300, 301, 305, 306, 309, 310, 311, 311, 312, 314, 314, 315, 318, 318, 321, 322,
5837 : 324, 328, 329, 330, 331, 333, 334, 335, 338, 338, 339, 340, 340, 341, 343, 343, 343, 345, 346, 348, 349, 353, 353, 354, 355, 355, 356, 360, 360, 361,
5838 : 361, 364, 365, 365, 368, 370, 372, 372, 373, 376, 378, 379, 380, 382, 384, 385, 386, 388, 389, 390, 391, 392, 394, 396, 396, 398, 400, 401, 404, 406,
5839 : 411, 423, 425, 427, 428, 431, 433, 433, 434, 436, 438, 439, 439, 440, 442, 443, 444, 447, 449, 449, 449, 450, 453, 454, 456, 457, 458, 462, 463, 463,
5840 : 464, 467, 468, 469, 471, 472, 473, 474, 475, 475, 477, 477, 478, 480, 480, 481, 483, 484, 485, 485, 487, 491, 492, 493, 494, 496, 499, 500, 501, 502,
5841 : 502, 506, 506, 507, 510, 512, 512, 512, 513, 516, 517, 520, 522, 524, 524, 525, 527, 528, 529, 531, 532, 540, 542, 546, 551, 555, 562, 570, 571, 573,
5842 : 575, 575, 575, 578, 580, 581, 584, 585, 586, 587, 588, 589, 590, 591, 593, 593, 594, 595, 598, 603, 603, 605, 605, 605, 608, 611, 612, 612, 613, 615,
5843 : 616, 616, 618, 619, 620, 621, 622, 625, 627, 627, 627, 628, 629, 631, 634, 635, 636, 638, 639, 641, 642, 645, 645, 646, 647, 648, 648, 650, 650, 653,
5844 : 654, 655, 657, 661, 662, 662, 663, 668, 672, 674, 677, 677, 682, 683, 687, 689, 695, 696, 698, 700, 705, 710, 722, 722, 724, 726, 727, 729, 732, 733,
5845 : 733, 733, 733, 736, 737, 738, 739, 741, 742, 742, 744, 747, 748, 748, 748, 749, 750, 752, 753, 753};
5846 :
5847 :
5848 :
5849 : static const double pi=3.141592654;
5850 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
5851 : static const double mu=0.53; //Debyes
5852 : static const double mmol=50.0;
5853 :
5854 : //double q=0.678068387*pow(tt,1.5);
5855 52910 : double q=0.678068387*tt*sqrt(tt);
5856 : unsigned int vp;
5857 : unsigned int ini;
5858 : unsigned int ifin;
5859 52910 : std::complex<double> lshape;
5860 52910 : std::complex<double> lshapeacum;
5861 :
5862 52910 : if(nu>999.9){
5863 :
5864 0 : return std::complex<double> (0.0,0.0);
5865 :
5866 : }else{
5867 :
5868 52910 : vp = vpIndex(nu);
5869 :
5870 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
5871 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
5872 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
5873 :
5874 52910 : if(ifin==0||ifin<ini){
5875 :
5876 0 : return std::complex<double> (0.0,0.0);
5877 :
5878 : }else{
5879 :
5880 372635 : for(unsigned int i=ini; i<ifin+1; i++){
5881 :
5882 319725 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening en GHz/mb 14/11/2018
5883 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
5884 319725 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
5885 319725 : lshapeacum=lshapeacum+lshape;
5886 :
5887 : }
5888 :
5889 52910 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
5890 : // real part: delay in rad*cm^2
5891 :
5892 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
5893 :
5894 : }
5895 :
5896 : }
5897 :
5898 : }
5899 :
5900 : //////////////////////// Opacity Source Number: 23 /////////////////////////////
5901 :
5902 52910 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o17o16o(double tt, double pp, double nu){
5903 :
5904 : static const double fre[518]={
5905 : 62.76459, 71.39120, 71.47840, 83.61184, 85.42109, 88.04973, 90.14488, 92.15323, 97.76336, 97.87746,102.26823,106.17652, 107.36952,114.12740,117.15852,117.16913,121.25437,129.47907,
5906 : 129.50442,132.37166,135.76030,136.85658,140.27986,147.38072, 155.81048,158.83333,160.47778,161.94325,163.59658,165.16470, 169.29684,175.92717,188.36100,189.73936,191.92469,196.39166,
5907 : 197.75142,203.83920,212.12739,218.22219,218.59019,221.38467, 224.02561,225.78283,225.79133,229.07147,230.02775,231.10419, 234.01458,237.17463,240.60559,242.64470,244.20503,244.60764,
5908 : 245.62233,245.76119,245.77722,247.11398,248.48864,254.39664, 261.10277,261.77222,266.93481,271.36219,271.84013,273.19681, 273.28959,273.98772,277.56366,281.11616,283.41975,286.95772,
5909 : 291.22319,291.48047,296.60584,298.12088,298.32084,299.33084, 300.21441,304.93606,305.13694,320.33794,320.37503,321.10191, 322.13381,323.00503,323.64013,323.86488,323.89909,324.93750,
5910 : 326.08625,342.11884,342.31228,342.49441,344.65313,346.14872, 348.69697,350.12113,350.12597,350.29453,354.70875,355.49000, 358.55691,361.09322,361.25797,366.20106,368.61775,371.47622,
5911 : 372.30213,372.95256,374.80906,374.82953,375.18247,375.86506, 376.30481,378.29719,383.83059,387.07788,393.18197,396.60013, 399.41819,399.74128,400.73016,400.78484,401.74266,401.79978,
5912 : 408.36522,410.38247,413.86419,415.83272,423.30341,425.98513, 426.03928,426.65250,427.40231,427.46472,428.71859,432.78763, 433.24456,435.05838,435.33794,435.80709,441.70841,441.97697,
5913 : 445.55072,447.51875,448.31069,448.55922,448.73425,449.26056, 450.41788,451.30684,452.43425,452.48581,452.53063,452.54428, 452.80950,453.17644,454.53281,456.01588,456.36928,459.98531,
5914 : 461.00234,461.11731,461.22431,467.30231,468.55400,468.69338, 473.68481,476.44588,476.50663,478.19244,478.26169,478.36063, 478.43863,478.74288,478.89166,488.24347,490.95234,491.93175,
5915 : 492.12778,496.53600,499.98684,502.48097,502.95584,503.60044, 503.85847,504.29516,506.57453,510.84003,512.87178,517.51753, 518.51475,520.04906,523.93669,525.39825,528.20000,528.92513,
5916 : 528.93744,529.48456,529.76250,530.28438,534.62225,535.88663, 537.00200,543.62213,547.51281,549.13200,553.87206,554.19413, 555.04488,555.19638,555.47956,561.84100,565.81550,566.40950,
5917 : 570.18019,570.51863,572.92225,574.03994,574.11419,576.33000, 577.32538,579.43781,579.48969,580.56256,580.57538,585.18706, 589.70250,591.49169,594.97450,598.24144,599.64719,601.54706,
5918 : 601.95606,604.65063,605.06325,605.91937,606.03019,606.18119, 610.62575,611.03819,612.50281,617.40456,618.72919,619.36625, 621.63288,622.18563,623.58250,624.29188,625.76744,625.77938,
5919 : 625.86763,626.08431,626.31100,626.48819,626.73825,626.86538, 627.15150,627.17713,627.33081,627.37063,627.41950,627.43856, 627.73294,629.84256,630.40106,630.59131,631.22488,631.45844,
5920 : 633.22975,634.70838,635.98013,636.63131,640.95238,641.04956, 642.30644,645.54138,648.79775,649.79781,650.60625,651.28988, 651.76731,655.91900,656.07981,656.50056,656.84700,661.28369,
5921 : 663.78206,667.74631,667.84888,671.94300,675.67162,675.77656, 679.80069,681.52987,681.74825,682.20156,683.85681,690.24456, 693.47144,695.30294,696.95438,698.71363,700.47331,701.55906,
5922 : 702.38694,703.67794,704.12988,704.82062,705.28825,706.94538, 706.97281,707.52431,714.47969,714.54981,715.82044,718.32550, 727.11906,728.01138,730.74250,732.17725,732.32831,732.81900,
5923 : 733.56500,735.72531,738.82556,743.00581,744.14238,745.90538, 753.14875,753.32869,753.51775,755.41869,755.51056,756.16550, 757.36500,757.68169,758.08825,759.27388,761.87475,763.42563,
5924 : 765.83506,766.44738,767.37900,775.98550,776.02219,778.21681, 778.28350,781.55938,782.53900,783.00775,783.33506,785.38538, 786.34838,789.31669,791.99356,792.31738,793.76263,793.95619,
5925 : 794.47588,795.42563,795.76575,796.62394,797.20363,797.35375, 798.56106,799.02050,799.68719,800.60744,800.68338,801.83725, 801.84250,802.01256,803.18250,803.32419,803.39456,803.75325,
5926 : 804.10250,804.33275,804.78538,804.99800,805.26119,805.41906, 805.56900,805.66937,805.74988,805.79488,805.80450,805.84263, 805.86656,805.88050,806.92606,808.30887,808.56200,810.22206,
5927 : 810.66394,810.76931,811.37206,814.42581,821.05538,821.74656, 828.22538,828.52281,830.88406,832.26763,833.58738,833.77169, 835.14719,835.79469,837.74563,838.02275,838.55556,849.90469,
5928 : 853.54381,855.43356,857.58575,857.92525,858.84531,858.96625, 865.31344,866.75163,867.43850,868.71844,869.44206,872.35469, 877.57025,878.70731,882.37419,882.88244,884.08475,884.14806,
5929 : 885.44663,897.10544,898.55838,903.48250,904.49425,904.94394, 905.86669,908.15925,909.30763,909.31906,917.04800,918.74525, 918.94906,919.89788,921.14338,924.50056,928.83394,929.00944,
5930 : 930.73675,931.16769,931.59069,931.99544,932.55481,933.41788, 934.51581,942.11850,943.85519,951.85931,953.02500,953.10894, 953.14819,953.16531,954.28994,956.36775,956.45038,956.73050,
5931 : 958.65994,959.06650,959.71100,960.37725,960.70275,961.77019, 962.09931,965.23144,965.98231,968.28294,968.73731,970.32463, 971.12588,973.67925,973.68888,975.66875,975.90106,976.29381,
5932 : 977.66413,977.77969,978.30550,978.93994,979.32569,979.84962, 980.56431,981.02256,981.52956,981.71613,981.86656,981.89938, 982.25925,982.54019,982.79219,982.99413,983.16544,983.30244,
5933 : 983.41344,983.50006,983.56688,983.61663,983.65250,983.67713, 983.69288,983.70194,983.88694,984.89481,985.87362,993.86519, 997.95150,998.69363};
5934 :
5935 : static const double flin[518]={
5936 : .331E+01, .232E+01, .280E+01, .117E+01, .234E+01, .453E+01, .289E+01, .248E+01, .342E+01, .432E+01, .901E+00, .326E+01, .593E+01, .100E+01, .914E+00, .444E+01, .721E+01, .199E+01,
5937 : .417E+01, .185E+01, .389E+01, .424E+01, .810E+01, .302E+01, .558E+00, .376E+01, .201E+01, .497E+01, .283E+01, .858E+01, .403E+01, .158E+01, .573E+01, .139E+01, .382E+01, .872E+01,
5938 : .260E+01, .308E+01, .454E+01, .481E+01, .239E+01, .360E+01, .115E+01, .131E+02, .111E+02, .477E+01, .894E+01, .149E+02, .861E+01, .691E+01, .545E+01, .164E+02, .937E+00, .426E+01,
5939 : .339E+01, .460E+01, .510E+01, .748E+01, .216E+01, .354E+01, .173E+02, .217E+01, .855E+00, .438E+01, .194E+01, .713E+00, .316E+01, .145E+01, .838E+01, .250E+01, .559E+01, .177E+02,
5940 : .530E+01, .343E+01, .503E+00, .416E+01, .294E+01, .172E+01, .597E+01, .938E+01, .425E+01, .149E+01, .177E+02, .710E+01, .496E+01, .302E+00, .601E+01, .394E+01, .149E+01, .272E+01,
5941 : .813E+01, .222E+02, .167E+01, .557E+01, .242E+02, .199E+02, .494E+01, .127E+01, .372E+01, .250E+01, .257E+02, .174E+02, .879E+01, .174E+02, .114E+02, .606E+01, .151E+02, .736E+01,
5942 : .620E+01, .266E+02, .178E+01, .472E+01, .105E+01, .350E+01, .227E+01, .791E+01, .129E+02, .211E+01, .646E+01, .106E+02, .109E+02, .269E+02, .450E+01, .836E+00, .205E+01, .328E+01,
5943 : .169E+02, .665E+01, .927E+01, .135E+02, .678E+01, .628E+00, .779E+01, .428E+01, .183E+01, .305E+01, .263E+01, .776E+01, .206E+01, .268E+02, .646E+01, .126E+02, .522E+01, .896E+01,
5944 : .403E+01, .285E+01, .160E+01, .884E+00, .224E+01, .343E+01, .458E+01, .431E+00, .406E+01, .313E+02, .334E+02, .571E+01, .160E+01, .283E+01, .726E+01, .683E+01, .701E+01, .288E+02,
5945 : .165E+02, .350E+02, .793E+01, .320E+01, .899E+01, .156E+02, .261E+02, .146E+02, .252E+00, .383E+01, .139E+01, .999E+01, .263E+02, .261E+01, .359E+02, .766E+01, .109E+02, .234E+02,
5946 : .719E+01, .223E+01, .743E+01, .484E+01, .385E+01, .117E+01, .361E+01, .238E+01, .118E+02, .108E+02, .210E+02, .160E+02, .167E+02, .176E+02, .249E+01, .125E+02, .461E+01, .958E+00,
5947 : .256E+02, .339E+01, .216E+01, .731E+01, .187E+02, .458E+01, .852E+01, .761E+01, .131E+02, .261E+01, .439E+01, .754E+00, .316E+01, .194E+01, .168E+02, .187E+02, .225E+01, .543E+01,
5948 : .197E+02, .740E+01, .136E+02, .277E+01, .151E+02, .157E+02, .127E+02, .559E+00, .417E+01, .294E+01, .172E+01, .250E+02, .135E+02, .835E+01, .642E+01, .759E+01, .295E+01, .141E+02,
5949 : .121E+02, .378E+00, .394E+01, .150E+01, .272E+01, .208E+02, .319E+02, .108E+02, .747E+01, .954E+01, .999E+01, .218E+02, .833E+01, .758E+01, .314E+01, .714E+01, .101E+02, .890E+01,
5950 : .597E+01, .772E+01, .113E+02, .655E+01, .480E+01, .538E+01, .421E+01, .361E+01, .300E+01, .235E+01, .167E+01, .909E+00, .125E+02, .216E+00, .137E+02, .372E+01, .129E+01, .249E+01,
5951 : .144E+02, .149E+02, .155E+02, .292E+02, .148E+02, .160E+02, .215E+01, .244E+02, .892E+01, .171E+02, .332E+01, .228E+02, .758E+01, .751E+01, .349E+01, .108E+01, .227E+01, .181E+02,
5952 : .267E+02, .147E+02, .238E+02, .353E+01, .105E+02, .190E+02, .450E+01, .327E+01, .880E+00, .205E+01, .946E+01, .245E+02, .199E+02, .154E+02, .248E+02, .117E+02, .754E+01, .169E+02,
5953 : .368E+01, .122E+02, .759E+01, .148E+02, .427E+01, .305E+01, .686E+00, .184E+01, .206E+02, .226E+02, .258E+02, .391E+01, .193E+01, .349E+01, .405E+01, .504E+00, .283E+01, .162E+01,
5954 : .141E+02, .209E+02, .212E+02, .269E+02, .150E+02, .757E+01, .358E+01, .194E+02, .153E+02, .759E+01, .401E+01, .383E+01, .336E+00, .261E+01, .141E+01, .191E+02, .429E+01, .279E+02,
5955 : .161E+02, .216E+02, .179E+02, .108E+02, .135E+02, .165E+02, .372E+01, .360E+01, .189E+00, .239E+01, .121E+01, .151E+02, .152E+02, .289E+02, .758E+01, .139E+02, .184E+02, .196E+02,
5956 : .171E+02, .209E+02, .158E+02, .127E+02, .220E+02, .145E+02, .222E+02, .133E+02, .115E+02, .121E+02, .182E+02, .103E+02, .467E+01, .109E+02, .967E+01, .909E+01, .388E+01, .234E+02,
5957 : .850E+01, .792E+01, .734E+01, .675E+01, .617E+01, .558E+01, .498E+01, .438E+01, .376E+01, .760E+01, .311E+01, .244E+01, .172E+01, .926E+00, .338E+01, .217E+01, .101E+01, .153E+02,
5958 : .427E+01, .299E+02, .245E+02, .213E+02, .166E+01, .256E+02, .152E+02, .406E+01, .223E+02, .316E+01, .195E+01, .813E+00, .266E+02, .309E+02, .506E+01, .203E+02, .760E+01, .156E+02,
5959 : .425E+01, .761E+01, .294E+01, .319E+02, .174E+01, .629E+00, .153E+02, .123E+02, .234E+02, .445E+01, .549E+01, .152E+02, .224E+02, .444E+01, .329E+02, .272E+01, .153E+01, .458E+00,
5960 : .761E+01, .598E+01, .268E+02, .463E+01, .762E+01, .339E+02, .371E+01, .250E+01, .133E+01, .302E+00, .253E+02, .255E+02, .245E+02, .177E+02, .656E+01, .138E+01, .482E+01, .349E+02,
5961 : .452E+01, .349E+01, .450E+01, .238E+02, .762E+01, .229E+01, .113E+01, .726E+01, .224E+02, .360E+02, .501E+01, .763E+01, .210E+02, .270E+02, .257E+02, .243E+02, .327E+01, .457E+01,
5962 : .207E+01, .229E+02, .939E+00, .197E+02, .810E+01, .266E+02, .216E+02, .203E+02, .184E+02, .190E+02, .276E+02, .171E+02, .177E+02, .165E+02, .158E+02, .370E+02, .152E+02, .146E+02,
5963 : .910E+01, .140E+02, .134E+02, .520E+01, .128E+02, .122E+02, .116E+02, .110E+02, .105E+02, .305E+01, .469E+01, .987E+01, .929E+01, .870E+01, .812E+01, .753E+01, .694E+01, .635E+01,
5964 : .575E+01, .514E+01, .452E+01, .387E+01, .321E+01, .251E+01, .176E+01, .937E+00, .186E+01, .755E+00, .200E+02, .103E+02, .446E+01, .380E+02};
5965 :
5966 : static const double el[518]={
5967 : 223.585, 145.271, 21.867, 56.784, 161.597, 461.771, 96.770, 3.574, 317.904, 11.999, 30.388, 293.300, 25.243, .018, 36.972, 525.972, 43.176, 126.781,
5968 : 36.979, 112.142, 268.379, 493.526, 65.862, 268.321, 21.816, 126.771, 3.592, 525.921, 245.842, 93.167, 461.768, 96.750, 56.852, 83.986, 431.681, 124.967,
5969 : 223.601, 12.009, 317.911, 669.618, 203.300, 402.466, 71.439, 172.555, 134.355, 161.597, 101.051, 215.499, 161.360, 72.608, 595.043, 263.245, 60.870, 25.251,
5970 : 374.702, 633.195, 48.995, 81.230, 183.764, 30.381, 315.558, 16.726, 8.078, 598.166, 165.643, 50.977, 347.973, 11.339, 202.268, 21.797, 43.186, 372.516,
5971 : 372.312, 36.999, 42.653, 564.280, 322.671, 148.622, 201.180, 110.353, 56.843, 5.513, 434.011, 65.876, 81.227, 35.285, 668.955, 531.544, 132.942, 298.392,
5972 : 247.537, 517.267, 8.058, 110.349, 590.045, 449.373, 792.451, 118.483, 500.082, 275.474, 667.462, 386.325, 93.077, 499.956, 144.048, 144.010, 328.094, 245.357,
5973 : 431.517, 749.386, 11.297, 753.796, 105.179, 469.946, 253.625, 297.429, 274.863, 16.707, 182.214, 124.950, 226.615, 835.999, 716.252, 93.049, 233.103, 440.900,
5974 : 570.385, 747.588, 183.421, 182.226, 225.067, 82.239, 145.236, 680.007, 213.770, 413.067, 30.407, 351.712, 21.790, 927.103, 112.089, 161.367, 83.983, 294.370,
5975 : 60.799, 42.604, 29.266, 24.454, 35.346, 51.021, 71.465, 72.522, 644.968, 1045.566, 1147.863, 96.763, 195.650, 386.532, 495.467, 126.796, 272.479, 947.905,
5976 : 645.257, 1254.851, 161.546, 49.054, 201.094, 225.087, 855.147, 202.215, 64.112, 611.131, 178.728, 245.423, 1022.619, 361.104, 1366.497, 410.548, 294.318,767.371,
5977 : 324.362, 36.950, 831.184, 887.664, 72.541, 163.010, 578.498, 336.977, 347.968, 347.963, 684.465, 724.542, 247.594, 272.420, 20.834, 406.263, 847.829, 148.494,
5978 : 1122.493, 547.167, 313.954, 380.829, 606.520,101.060, 564.206, 473.888, 469.201, 24.423, 809.196, 135.280, 516.939, 292.232, 533.719, 297.413, 56.822, 134.394,
5979 : 324.412, 441.796, 536.781, 29.327, 466.023, 808.317, 406.269, 123.168, 771.765, 487.914, 271.713,1226.792, 403.375, 919.589, 172.521, 541.665, 35.297, 608.806,
5980 : 345.786, 112.257, 735.537, 252.396, 460.190, 351.783, 1389.470, 293.250, 507.379, 245.744, 637.680,380.850, 203.241, 215.514, 42.647, 165.713, 268.342, 223.642,
5981 : 132.938, 183.727, 317.916, 148.608, 105.196, 118.390, 93.076, 82.175, 72.567, 64.065, 56.863, 50.762, 372.348, 102.647, 431.520, 700.511, 234.280, 433.569,
5982 : 685.484, 495.513, 896.552, 1277.021, 469.213, 564.208, 81.248, 1335.493, 263.236, 637.688, 50.949, 410.616, 613.993, 577.394, 666.686, 217.366, 408.250, 715.936,
5983 : 1169.616, 766.726, 441.821, 60.824, 315.545,798.740, 951.647, 634.064, 201.653, 384.032, 1012.752,1067.245, 886.290, 989.202, 473.923, 715.839, 651.854, 536.702,
5984 : 71.462, 372.500, 690.778, 852.445, 911.823, 602.743, 187.142, 361.115, 978.381, 969.978, 507.317, 83.997, 110.274, 45.931, 873.200, 173.931, 572.524, 339.400,
5985 : 433.965, 877.961, 1075.112, 541.711, 942.656, 730.872, 50.824, 790.915, 1086.306, 772.115, 96.710, 835.779, 161.821, 543.606, 318.887, 608.830, 112.105, 577.330,
5986 : 500.014, 1176.485, 709.040, 1110.627, 798.725, 632.220, 56.817, 799.559, 151.012, 515.790, 299.574, 1037.475, 560.429, 613.987, 814.458, 493.542, 747.673, 831.164,
5987 : 668.839, 919.593, 594.977, 431.636, 1282.308, 525.901, 1012.743, 461.720, 374.688, 402.444, 570.441,322.585, 145.185, 347.977, 298.421, 275.414, 64.110, 1110.593,
5988 : 253.676, 233.065, 213.744, 195.633, 178.721, 163.013, 148.506, 135.201, 123.197, 857.895, 112.295, 102.593, 94.192, 86.991, 764.541, 489.274, 281.462, 1187.882,
5989 : 126.761, 651.856, 1213.227, 685.480, 143.962, 1320.629, 1136.718, 72.503, 1392.790, 730.724, 463.860,264.551, 1432.585, 690.754, 183.360, 645.247, 902.421, 886.276,
5990 : 82.202, 948.111, 698.207, 730.891, 439.747, 248.841, 1293.936, 1213.267, 766.734, 161.573, 226.638,1240.498, 724.547, 93.093, 772.117, 666.792, 416.835, 234.331,
5991 : 994.969, 274.809, 1418.739, 105.103, 1042.854, 814.433, 945.588, 636.678, 395.123, 221.122, 1307.551, 852.470, 808.360, 978.414, 328.054, 182.193, 118.385, 857.877,
5992 : 201.094, 908.273, 80.953, 1201.433, 1092.006, 607.665, 374.612, 386.247, 1100.364, 902.479, 132.923, 1142.119, 1004.317, 1472.716, 1360.062, 1252.163, 872.059, 86.945,
5993 : 579.952, 1149.233, 355.302, 913.270, 449.354, 896.503, 1050.987, 957.737, 827.101, 869.290, 942.668,745.892, 785.754, 707.031, 669.531, 948.135, 633.224, 598.105,
5994 : 517.340, 564.234, 531.609, 148.678, 500.060, 469.835, 440.900, 413.078, 386.454, 837.045, 94.138, 361.136, 336.919, 314.005, 292.193, 271.684, 252.375, 234.269,
5995 : 217.363, 201.659, 187.156, 173.854, 161.852, 150.951, 141.350, 132.850, 553.341, 337.192, 1075.145, 589.961, 245.365, 994.930};
5996 :
5997 : static const double texpO3[518] ={
5998 : 0.76,0.77,0.76,0.77,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.77,0.76,0.77,0.77,0.77,0.77,0.76,0.76,0.77,0.76, 0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.77,0.77,0.77,0.76,0.76,
5999 : 0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.78,0.78,0.76,0.77,0.78, 0.76,0.77,0.76,0.78,0.77,0.77,0.76,0.76,0.77,0.77,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.77,0.76,
6000 : 0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.79,0.76,0.77, 0.77,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.77,0.76,0.76, 0.76,0.77,0.77,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,
6001 : 0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.78, 0.78,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.78,0.76,0.76,0.77, 0.77,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.77,0.78,0.77,0.76,
6002 : 0.77,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.76,0.76,0.76,0.83, 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.78,0.77,0.78,0.76, 0.76,0.78,0.76,0.76,0.80,0.78,0.76,0.76,0.76,0.76,0.79,0.76,
6003 : 0.76,0.77,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.77, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.78,
6004 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.78,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76, 0.76,0.78,0.76,0.78,0.76,0.76,0.78,0.78,0.77,0.77,0.78,0.78,
6005 : 0.77,0.78,0.79,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76, 0.79,0.77,0.76,0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.76,0.80, 0.77,0.76,0.79,0.81,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
6006 : 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,
6007 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76, 0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
6008 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.78, 0.78,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.77, 0.77,0.77,0.77,0.76,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,
6009 : 0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,
6010 : 0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.79,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
6011 : 0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.76,0.76,0.76,0.76,0.76, 0.76,0.76,0.76,0.76,0.76,0.76,0.80,0.76,0.76,0.77,0.76,0.76, 0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,
6012 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.77,0.76,0.76,0.76,0.81, 0.76,0.76};
6013 :
6014 : static const double brdO3air[518] ={
6015 : 2.3000,2.3498,2.5155,2.4060,2.3000,2.3000,2.3883,2.5895,2.3000, 2.5244,2.5392,2.3000,2.4682,2.7405,2.4771,2.3000,2.4149,2.3735, 2.4386,2.3942,2.3000,2.3000,2.3705,2.3000,2.5540,2.3000,2.6428,
6016 : 2.3000,2.3000,2.3291,2.3000,2.4208,2.3735,2.4445,2.3000,2.3000, 2.3000,2.5540,2.3000,2.3000,2.3000,2.3000,2.4711,2.2610,2.2610, 2.3000,2.3291,2.2344,2.3000,2.3705,2.3000,2.2078,2.4978,2.4771,
6017 : 2.3000,2.3000,2.4149,2.3143,2.3000,2.4682,2.3000,2.5244,2.5895, 2.3000,2.3000,2.5244,2.3000,2.5570,2.3000,2.4948,2.4060,2.3000, 2.3000,2.4415,2.5540,2.3000,2.3000,2.3000,2.3000,2.2640,2.3912,
6018 : 2.1397,2.3000,2.3439,2.3498,2.5836,2.3000,2.3000,2.3942,2.3000, 2.3000,2.3000,2.6191,2.3113,2.3000,2.3000,2.3000,2.4208,2.4208, 2.3000,2.3000,2.3000,2.2877,2.3000,2.3000,2.3000,2.3000,2.3000,
6019 : 2.3000,2.3000,2.5984,2.3000,2.4445,2.3000,2.3000,2.3000,2.3000, 2.5658,2.3000,2.2403,2.2344,2.3000,2.3000,2.4711,2.3000,2.3000, 2.3000,2.3000,2.2610,2.3000,2.3000,2.4978,2.2936,2.3000,2.3000,
6020 : 2.3000,2.5126,2.3000,2.5155,2.3000,2.3291,2.1959,2.3705,2.3000, 2.4149,2.4682,2.5244,2.5570,2.4948,2.4415,2.3912,2.5244,2.3000, 2.3000,2.3000,2.0923,2.3000,2.3000,2.3000,2.3113,2.3000,2.3000,
6021 : 2.3000,2.3000,2.2788,2.4623,2.2462,2.3000,2.3000,2.1604,2.5540, 2.3000,2.1338,2.2196,2.3000,2.3000,2.3000,2.3000,2.1959,2.3000, 2.3000,2.4386,2.3000,2.3000,2.4120,2.3000,2.3000,2.3000,2.3000,
6022 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.4948,2.3000,2.3000,2.3000, 2.4208,2.3000,2.3000,2.3000,2.3000,2.3676,2.3000,2.3000,2.3000, 2.6132,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3735,2.3232,
6023 : 2.3000,2.3000,2.3000,2.5836,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.2817,2.3000,2.5540,2.3000, 2.3000,2.4978,2.3000,2.3000,2.3000,2.3000,2.3000,2.2078,2.3000,
6024 : 2.2344,2.3000,2.3000,2.2610,2.2433,2.5244,2.2936,2.2196,2.2462, 2.3291,2.2788,2.1959,2.3113,2.3705,2.3498,2.3912,2.4149,2.4415, 2.4682,2.4948,2.5244,2.1722,2.5244,2.3000,2.3000,2.3000,2.3000,
6025 : 2.3000,2.1308,2.3000,2.3000,2.3000,2.1071,2.3143,2.3000,2.2078, 2.1782,2.4978,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.4711,2.3000,2.3000,2.3000,2.3000,2.3000,
6026 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.4445,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.4208,2.3000,2.4356,2.3000,2.3000,2.3000,2.3000,
6027 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.5836,2.3000,2.3000, 2.3000,2.3942,2.3000,2.3000,2.3000,2.3000,2.3000,2.3735,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.5540,2.3000,2.3000,
6028 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3291,2.3291,2.3000,2.3000,2.3000,2.5244,2.3000,
6029 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3291,2.3498,2.3705,2.3912, 2.3000,2.4149,2.4415,2.4682,2.4948,2.3000,2.3000,2.3000,2.3000, 2.3498,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4978,2.3000,
6030 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.4711,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.4445,2.3000,2.3000,2.3000,2.3000,
6031 : 2.3000,2.3000,2.3000,2.4208,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3942,2.3000, 2.3000,2.3000,2.3853,2.3000,2.3000,2.3000,2.3000,2.1574,2.3000,
6032 : 2.3000,2.3735,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.5540, 2.3000,2.3000,2.3000,2.3000,2.1338,2.3000,2.0065,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,
6033 : 2.1130,2.3000,2.3000,2.3498,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.5244,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000, 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.4415,2.3000,
6034 : 2.3000,2.3000,2.0953,2.3000,2.3000};
6035 :
6036 :
6037 : static const unsigned int ifin1[500]={
6038 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
6039 : 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 9, 9, 11, 11, 12, 12, 13, 14, 14, 14, 15, 15, 17, 17, 18,
6040 : 18, 18, 18, 20, 21, 21, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 27, 28, 29, 30, 31, 31, 32, 32, 32, 33, 33, 33, 33,
6041 : 33, 33, 34, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 42, 42, 43, 44, 46, 46, 48, 49, 50, 50, 51, 52, 53,
6042 : 55, 58, 60, 60, 60, 61, 61, 61, 61, 63, 63, 64, 64, 64, 66, 69, 69, 70, 70, 71, 72, 73, 73, 73, 75, 75, 76, 78, 80, 80,
6043 : 81, 82, 82, 82, 82, 82, 82, 82, 84, 86, 91, 92, 92, 92, 92, 92, 92, 92, 92, 95, 96, 97, 98, 101, 101, 102, 103, 104, 104, 106,
6044 : 106, 107, 108, 108, 111, 113, 116, 117, 117, 117, 118, 118, 119, 119, 119, 120, 121, 121, 125, 127, 127, 127, 128, 129, 129, 130, 131, 131, 131, 131,
6045 : 132, 135, 138, 138, 139, 140, 143, 143, 143, 145, 145, 146, 150, 152, 158, 160, 162, 162, 163, 166, 166, 166, 169, 169, 169, 170, 172, 178, 178, 178,
6046 : 178, 178, 179, 180, 182, 182, 183, 183, 184, 186, 189, 190, 190, 191, 192, 192, 192, 194, 195, 195, 196, 197, 200, 203, 203, 204, 205, 206, 206, 206,
6047 : 207, 207, 208, 209, 209, 211, 214, 214, 214, 215, 215, 217, 217, 219, 220, 222, 223, 224, 228, 228, 228, 229, 229, 230, 231, 232, 232, 233, 234, 236,
6048 : 237, 241, 241, 242, 244, 244, 244, 246, 247, 249, 251, 259, 266, 269, 271, 273, 275, 275, 276, 278, 278, 279, 280, 282, 284, 284, 288, 288, 288, 289,
6049 : 290, 290, 292, 292, 293, 293, 295, 295, 296, 299, 300, 300, 300, 301, 301, 302, 304, 305, 306, 308, 311, 314, 315, 315, 315, 317, 318, 319, 319, 319,
6050 : 319, 319, 321, 322, 325, 326, 327, 328, 328, 328, 330, 331, 331, 331, 331, 334, 337, 340, 341, 342, 343, 345, 346, 346, 346, 346, 348, 350, 350, 352,
6051 : 354, 356, 356, 357, 359, 362, 365, 368, 372, 375, 383, 394, 396, 399, 400, 401, 401, 401, 401, 403, 403, 403, 405, 406, 407, 409, 411, 414, 414, 414,
6052 : 414, 414, 414, 415, 415, 416, 417, 421, 421, 421, 421, 423, 425, 426, 427, 427, 427, 429, 429, 431, 433, 434, 434, 434, 434, 434, 434, 436, 436, 436,
6053 : 439, 440, 441, 443, 443, 443, 443, 446, 447, 448, 449, 449, 450, 452, 456, 458, 458, 458, 458, 459, 460, 460, 460, 460, 461, 466, 469, 470, 474, 476,
6054 : 476, 478, 480, 481, 482, 484, 487, 491, 494, 503, 515, 516, 516, 516, 516, 517, 517, 518, 518, 518};
6055 :
6056 : static const unsigned int ini1[500]={
6057 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6058 : 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 9, 9, 11, 11, 12, 12, 13, 14, 14, 14, 15,
6059 : 15, 17, 17, 18, 18, 18, 18, 20, 21, 21, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 27, 28, 29, 30, 31, 31, 32, 32, 32,
6060 : 33, 33, 33, 33, 33, 33, 34, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 42, 42, 43, 44, 46, 46, 48, 49, 50,
6061 : 50, 51, 52, 53, 55, 58, 60, 60, 60, 61, 61, 61, 61, 63, 63, 64, 64, 64, 66, 69, 69, 70, 70, 71, 72, 73, 73, 73, 75, 75,
6062 : 76, 78, 80, 80, 81, 82, 82, 82, 82, 82, 82, 82, 84, 86, 91, 92, 92, 92, 92, 92, 92, 92, 92, 95, 96, 97, 98, 101, 101, 102,
6063 : 103, 104, 104, 106, 106, 107, 108, 108, 111, 113, 116, 117, 117, 117, 118, 118, 119, 119, 119, 120, 121, 121, 125, 127, 127, 127, 128, 129, 129, 130,
6064 : 131, 131, 131, 131, 132, 135, 138, 138, 139, 140, 143, 143, 143, 145, 145, 146, 150, 152, 158, 160, 162, 162, 163, 166, 166, 166, 169, 169, 169, 170,
6065 : 172, 178, 178, 178, 178, 178, 179, 180, 182, 182, 183, 183, 184, 186, 189, 190, 190, 191, 192, 192, 192, 194, 195, 195, 196, 197, 200, 203, 203, 204,
6066 : 205, 206, 206, 206, 207, 207, 208, 209, 209, 211, 214, 214, 214, 215, 215, 217, 217, 219, 220, 222, 223, 224, 228, 228, 228, 229, 229, 230, 231, 232,
6067 : 232, 233, 234, 236, 237, 241, 241, 242, 244, 244, 244, 246, 247, 249, 251, 259, 266, 269, 271, 273, 275, 275, 276, 278, 278, 279, 280, 282, 284, 284,
6068 : 288, 288, 288, 289, 290, 290, 292, 292, 293, 293, 295, 295, 296, 299, 300, 300, 300, 301, 301, 302, 304, 305, 306, 308, 311, 314, 315, 315, 315, 317,
6069 : 318, 319, 319, 319, 319, 319, 321, 322, 325, 326, 327, 328, 328, 328, 330, 331, 331, 331, 331, 334, 337, 340, 341, 342, 343, 345, 346, 346, 346, 346,
6070 : 348, 350, 350, 352, 354, 356, 356, 357, 359, 362, 365, 368, 372, 375, 383, 394, 396, 399, 400, 401, 401, 401, 401, 403, 403, 403, 405, 406, 407, 409,
6071 : 411, 414, 414, 414, 414, 414, 414, 415, 415, 416, 417, 421, 421, 421, 421, 423, 425, 426, 427, 427, 427, 429, 429, 431, 433, 434, 434, 434, 434, 434,
6072 : 434, 436, 436, 436, 439, 440, 441, 443, 443, 443, 443, 446, 447, 448, 449, 449, 450, 452, 456, 458, 458, 458, 458, 459, 460, 460, 460, 460, 461, 466,
6073 : 469, 470, 474, 476, 476, 478, 480, 481, 482, 484, 487, 491, 494, 503, 515, 516, 516, 516, 516, 517};
6074 :
6075 : static const unsigned int ifin2[500]={
6076 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6077 : 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 9, 9, 11, 11, 12, 12, 13, 14, 14, 14, 15, 15, 17, 17,
6078 : 18, 18, 18, 18, 20, 21, 21, 22, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 28, 29, 30, 31, 31, 32, 32, 32, 33, 33, 33,
6079 : 33, 33, 33, 34, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 41, 42, 43, 44, 46, 46, 48, 49, 50, 50, 51, 51,
6080 : 52, 54, 58, 60, 60, 60, 61, 61, 61, 61, 63, 63, 63, 64, 64, 66, 69, 69, 70, 70, 71, 72, 72, 73, 73, 75, 75, 75, 78, 80,
6081 : 80, 80, 82, 82, 82, 82, 82, 82, 82, 84, 86, 90, 92, 92, 92, 92, 92, 92, 92, 92, 95, 95, 97, 97, 101, 101, 101, 103, 103, 104,
6082 : 106, 106, 107, 107, 108, 110, 111, 116, 117, 117, 117, 118, 118, 119, 119, 119, 120, 120, 121, 123, 127, 127, 127, 128, 129, 129, 130, 131, 131, 131,
6083 : 131, 132, 134, 137, 138, 138, 140, 143, 143, 143, 145, 145, 146, 148, 152, 155, 159, 162, 162, 163, 166, 166, 166, 167, 169, 169, 170, 171, 176, 178,
6084 : 178, 178, 178, 179, 179, 182, 182, 182, 183, 184, 185, 189, 189, 190, 190, 191, 192, 192, 193, 195, 195, 196, 197, 198, 203, 203, 203, 205, 206, 206,
6085 : 206, 207, 207, 208, 209, 209, 211, 214, 214, 214, 215, 215, 217, 217, 218, 219, 222, 223, 224, 226, 228, 228, 229, 229, 230, 231, 231, 232, 233, 234,
6086 : 236, 236, 241, 241, 241, 243, 244, 244, 245, 247, 249, 251, 257, 266, 268, 271, 272, 274, 275, 275, 278, 278, 279, 279, 281, 284, 284, 286, 288, 288,
6087 : 289, 290, 290, 292, 292, 293, 293, 295, 295, 296, 299, 300, 300, 300, 301, 301, 302, 303, 304, 306, 308, 310, 312, 315, 315, 315, 316, 318, 319, 319,
6088 : 319, 319, 319, 321, 321, 324, 326, 327, 327, 328, 328, 330, 331, 331, 331, 331, 334, 337, 340, 341, 342, 343, 345, 346, 346, 346, 346, 348, 350, 350,
6089 : 351, 354, 356, 356, 357, 359, 362, 364, 367, 370, 375, 381, 393, 395, 397, 400, 401, 401, 401, 401, 403, 403, 403, 404, 405, 407, 409, 411, 413, 414,
6090 : 414, 414, 414, 414, 415, 415, 416, 417, 419, 421, 421, 421, 422, 424, 426, 427, 427, 427, 428, 429, 430, 433, 434, 434, 434, 434, 434, 434, 435, 436,
6091 : 436, 438, 440, 441, 443, 443, 443, 443, 444, 447, 448, 448, 449, 449, 451, 455, 457, 458, 458, 458, 459, 460, 460, 460, 460, 461, 466, 468, 469, 473,
6092 : 476, 476, 478, 479, 481, 482, 484, 487, 490, 493, 500, 514, 516, 516, 516, 516, 517, 517, 518, 518};
6093 :
6094 : static const unsigned int ini2[500]={
6095 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6096 : 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 6, 6, 7, 8, 9, 9, 9, 11, 11, 12, 12, 14, 14, 14, 14, 15, 17,
6097 : 17, 18, 18, 18, 18, 19, 20, 21, 21, 23, 23, 24, 24, 24, 25, 25, 25, 25, 25, 26, 27, 28, 29, 31, 31, 32, 32, 32, 32, 33,
6098 : 33, 33, 33, 33, 33, 34, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 42, 43, 43, 44, 46, 47, 49, 49, 50, 51,
6099 : 51, 52, 53, 55, 59, 60, 60, 60, 61, 61, 61, 62, 63, 63, 64, 64, 65, 68, 69, 69, 70, 71, 72, 72, 73, 73, 75, 75, 75, 76,
6100 : 79, 80, 80, 82, 82, 82, 82, 82, 82, 82, 82, 85, 87, 91, 92, 92, 92, 92, 92, 92, 92, 92, 95, 96, 97, 98, 101, 101, 103, 103,
6101 : 104, 106, 106, 106, 107, 108, 109, 111, 114, 116, 117, 117, 117, 118, 119, 119, 119, 120, 120, 121, 122, 125, 127, 127, 127, 128, 129, 129, 130, 131,
6102 : 131, 131, 132, 132, 137, 138, 138, 140, 142, 143, 143, 143, 145, 145, 146, 151, 153, 159, 160, 162, 162, 166, 166, 166, 167, 169, 169, 169, 170, 172,
6103 : 178, 178, 178, 178, 178, 179, 180, 182, 182, 183, 183, 184, 186, 189, 190, 190, 191, 192, 192, 192, 194, 195, 195, 197, 197, 201, 203, 203, 204, 206,
6104 : 206, 206, 206, 207, 207, 209, 209, 209, 214, 214, 214, 214, 215, 215, 217, 217, 219, 220, 222, 224, 226, 228, 228, 229, 229, 229, 231, 231, 232, 232,
6105 : 233, 234, 236, 238, 241, 241, 243, 244, 244, 245, 247, 247, 249, 251, 265, 266, 271, 272, 273, 275, 275, 277, 278, 278, 279, 280, 283, 284, 284, 288,
6106 : 288, 289, 289, 290, 290, 292, 292, 293, 293, 295, 295, 296, 299, 300, 300, 300, 301, 302, 303, 304, 305, 306, 308, 312, 314, 315, 315, 315, 317, 318,
6107 : 319, 319, 319, 319, 320, 321, 322, 325, 326, 327, 328, 328, 329, 330, 331, 331, 331, 333, 335, 338, 341, 341, 343, 343, 346, 346, 346, 346, 346, 348,
6108 : 350, 350, 354, 355, 356, 357, 357, 359, 363, 367, 369, 372, 378, 385, 394, 396, 400, 400, 401, 401, 401, 402, 403, 403, 403, 405, 406, 407, 410, 411,
6109 : 414, 414, 414, 414, 414, 414, 415, 415, 417, 417, 421, 421, 421, 422, 424, 426, 426, 427, 427, 427, 429, 429, 431, 434, 434, 434, 434, 434, 434, 435,
6110 : 436, 436, 437, 439, 440, 443, 443, 443, 443, 444, 446, 448, 448, 449, 449, 451, 453, 457, 458, 458, 458, 458, 459, 460, 460, 460, 460, 465, 466, 469,
6111 : 471, 474, 476, 477, 478, 480, 482, 482, 484, 487, 492, 495, 506, 515, 516, 516, 516, 516, 517, 517};
6112 :
6113 : static const unsigned int ifin3[500]={
6114 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6115 : 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 6, 6, 7, 8, 9, 9, 9, 11, 11, 12, 12, 14, 14, 14, 14, 15, 17, 17,
6116 : 18, 18, 18, 18, 19, 20, 21, 21, 23, 23, 24, 24, 24, 25, 25, 25, 25, 25, 26, 27, 28, 29, 31, 31, 32, 32, 32, 32, 33, 33,
6117 : 33, 33, 33, 33, 34, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 42, 43, 43, 44, 46, 47, 49, 49, 50, 51, 51,
6118 : 52, 53, 55, 59, 60, 60, 60, 61, 61, 61, 62, 63, 63, 64, 64, 65, 68, 69, 69, 70, 71, 72, 72, 73, 73, 75, 75, 75, 76, 79,
6119 : 80, 80, 82, 82, 82, 82, 82, 82, 82, 82, 85, 87, 91, 92, 92, 92, 92, 92, 92, 92, 92, 95, 96, 97, 98, 101, 101, 103, 103, 104,
6120 : 106, 106, 106, 107, 108, 109, 111, 114, 116, 117, 117, 117, 118, 119, 119, 119, 120, 120, 121, 122, 125, 127, 127, 127, 128, 129, 129, 130, 131, 131,
6121 : 131, 132, 132, 137, 138, 138, 140, 142, 143, 143, 143, 145, 145, 146, 151, 153, 159, 160, 162, 162, 166, 166, 166, 167, 169, 169, 169, 170, 172, 178,
6122 : 178, 178, 178, 178, 179, 180, 182, 182, 183, 183, 184, 186, 189, 190, 190, 191, 192, 192, 192, 194, 195, 195, 197, 197, 201, 203, 203, 204, 206, 206,
6123 : 206, 206, 207, 207, 209, 209, 209, 214, 214, 214, 214, 215, 215, 217, 217, 219, 220, 222, 224, 226, 228, 228, 229, 229, 229, 231, 231, 232, 232, 233,
6124 : 234, 236, 238, 241, 241, 243, 244, 244, 245, 247, 247, 249, 251, 265, 266, 271, 272, 273, 275, 275, 277, 278, 278, 279, 280, 283, 284, 284, 288, 288,
6125 : 289, 289, 290, 290, 292, 292, 293, 293, 295, 295, 296, 299, 300, 300, 300, 301, 302, 303, 304, 305, 306, 308, 312, 314, 315, 315, 315, 317, 318, 319,
6126 : 319, 319, 319, 320, 321, 322, 325, 326, 327, 328, 328, 329, 330, 331, 331, 331, 333, 335, 338, 341, 341, 343, 343, 346, 346, 346, 346, 346, 348, 350,
6127 : 350, 354, 355, 356, 357, 357, 359, 363, 367, 369, 372, 378, 385, 394, 396, 400, 400, 401, 401, 401, 402, 403, 403, 403, 405, 406, 407, 410, 411, 414,
6128 : 414, 414, 414, 414, 414, 415, 415, 417, 417, 421, 421, 421, 422, 424, 426, 426, 427, 427, 427, 429, 429, 431, 434, 434, 434, 434, 434, 434, 435, 436,
6129 : 436, 437, 439, 440, 443, 443, 443, 443, 444, 446, 448, 448, 449, 449, 451, 453, 457, 458, 458, 458, 458, 459, 460, 460, 460, 460, 465, 466, 469, 471,
6130 : 474, 476, 477, 478, 480, 482, 482, 484, 487, 492, 495, 506, 515, 516, 516, 516, 516, 517, 517, 518};
6131 :
6132 : static const unsigned int ini3[500]={
6133 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6134 : 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9, 9, 9, 11, 11, 12, 12, 13, 14, 14, 14, 15, 15, 17,
6135 : 17, 18, 18, 18, 18, 20, 21, 21, 22, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 28, 29, 30, 31, 31, 32, 32, 32, 33, 33,
6136 : 33, 33, 33, 33, 34, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 41, 42, 43, 44, 46, 46, 48, 49, 50, 50, 51,
6137 : 51, 52, 54, 58, 60, 60, 60, 61, 61, 61, 61, 63, 63, 63, 64, 64, 66, 69, 69, 70, 70, 71, 72, 72, 73, 73, 75, 75, 75, 78,
6138 : 80, 80, 80, 82, 82, 82, 82, 82, 82, 82, 84, 86, 90, 92, 92, 92, 92, 92, 92, 92, 92, 95, 95, 97, 97, 101, 101, 101, 103, 103,
6139 : 104, 106, 106, 107, 107, 108, 110, 111, 116, 117, 117, 117, 118, 118, 119, 119, 119, 120, 120, 121, 123, 127, 127, 127, 128, 129, 129, 130, 131, 131,
6140 : 131, 131, 132, 134, 137, 138, 138, 140, 143, 143, 143, 145, 145, 146, 148, 152, 155, 159, 162, 162, 163, 166, 166, 166, 167, 169, 169, 170, 171, 176,
6141 : 178, 178, 178, 178, 179, 179, 182, 182, 182, 183, 184, 185, 189, 189, 190, 190, 191, 192, 192, 193, 195, 195, 196, 197, 198, 203, 203, 203, 205, 206,
6142 : 206, 206, 207, 207, 208, 209, 209, 211, 214, 214, 214, 215, 215, 217, 217, 218, 219, 222, 223, 224, 226, 228, 228, 229, 229, 230, 231, 231, 232, 233,
6143 : 234, 236, 236, 241, 241, 241, 243, 244, 244, 245, 247, 249, 251, 257, 266, 268, 271, 272, 274, 275, 275, 278, 278, 279, 279, 281, 284, 284, 286, 288,
6144 : 288, 289, 290, 290, 292, 292, 293, 293, 295, 295, 296, 299, 300, 300, 300, 301, 301, 302, 303, 304, 306, 308, 310, 312, 315, 315, 315, 316, 318, 319,
6145 : 319, 319, 319, 319, 321, 321, 324, 326, 327, 327, 328, 328, 330, 331, 331, 331, 331, 334, 337, 340, 341, 342, 343, 345, 346, 346, 346, 346, 348, 350,
6146 : 350, 351, 354, 356, 356, 357, 359, 362, 364, 367, 370, 375, 381, 393, 395, 397, 400, 401, 401, 401, 401, 403, 403, 403, 404, 405, 407, 409, 411, 413,
6147 : 414, 414, 414, 414, 414, 415, 415, 416, 417, 419, 421, 421, 421, 422, 424, 426, 427, 427, 427, 428, 429, 430, 433, 434, 434, 434, 434, 434, 434, 435,
6148 : 436, 436, 438, 440, 441, 443, 443, 443, 443, 444, 447, 448, 448, 449, 449, 451, 455, 457, 458, 458, 458, 459, 460, 460, 460, 460, 461, 466, 468, 469,
6149 : 473, 476, 476, 478, 479, 481, 482, 484, 487, 490, 493, 500, 514, 516, 516, 516, 516, 517, 517, 518};
6150 :
6151 : static const double pi=3.141592654;
6152 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
6153 : static const double mu=0.53; //Debyes
6154 : static const double mmol=49.0;
6155 :
6156 : //double q=0.664313224*pow(tt,1.5);
6157 52910 : double q=0.664313224*tt*sqrt(tt);
6158 : unsigned int vp;
6159 : unsigned int ini;
6160 : unsigned int ifin;
6161 52910 : std::complex<double> lshape;
6162 52910 : std::complex<double> lshapeacum;
6163 :
6164 52910 : if(nu>999.9){
6165 :
6166 0 : return std::complex<double> (0.0,0.0);
6167 :
6168 : }else{
6169 :
6170 52910 : vp = vpIndex(nu);
6171 :
6172 52910 : if(pp<25){ ini=ini3[vp]; ifin=ifin3[vp]; }else{ if(pp<300){ ini=ini2[vp]; ifin=ifin2[vp]; }else{ ini=ini1[vp]; ifin=ifin1[vp]; } }
6173 52910 : if(ini>0){ini=ini-1;}else{ifin=0;}
6174 52910 : if(ifin>0){ifin=ifin-1;}else{ifin=0;}
6175 :
6176 52910 : if(ifin==0||ifin<ini){
6177 :
6178 0 : return std::complex<double> (0.0,0.0);
6179 :
6180 : }else{
6181 :
6182 236261 : for(unsigned int i=ini; i<ifin+1; i++){
6183 :
6184 183351 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening en GHz/mb 14/11/2018
6185 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
6186 183351 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
6187 183351 : lshapeacum=lshapeacum+lshape;
6188 :
6189 : }
6190 :
6191 52910 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
6192 : // real part: delay in rad*cm^2
6193 :
6194 52910 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
6195 :
6196 : }
6197 :
6198 : }
6199 :
6200 : }
6201 :
6202 : ATM_NAMESPACE_END
|