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 : #include <string>
33 : #include <vector>
34 : #include <fstream>
35 : #include <string.h>
36 : #include <stdlib.h>
37 : #include <iomanip>
38 :
39 : using namespace std;
40 :
41 : using std::cout;
42 :
43 :
44 : ATM_NAMESPACE_BEGIN
45 :
46 : // Constructors
47 :
48 :
49 222 : RefractiveIndex::RefractiveIndex(){ }
50 :
51 222 : RefractiveIndex::~RefractiveIndex()
52 : {
53 : // rmRefractiveIndex(); // nonexistent method
54 222 : }
55 :
56 :
57 83353 : std::complex<double> RefractiveIndex::getRefractivity_o2(double temperature, double pressure, double wvpressure, double frequency){
58 83353 : unsigned int species_16o16o=1; unsigned int species_16o16o_vib=2; unsigned int species_16o18o=3; unsigned int species_16o17o=4;
59 83353 : return (mkEarthSpecificRefractivity(species_16o16o,temperature,pressure,wvpressure,frequency)
60 166706 : +mkEarthSpecificRefractivity(species_16o16o_vib,temperature,pressure,wvpressure,frequency)
61 166706 : +mkEarthSpecificRefractivity(species_16o18o,temperature,pressure,wvpressure,frequency)
62 83353 : +mkEarthSpecificRefractivity(species_16o17o,temperature,pressure,wvpressure,frequency))
63 166706 : *0.2092*pressure*100.0/(1.380662e-23*temperature); // static const double o2_mixing_ratio=0.2092;
64 : }
65 :
66 83353 : std::complex<double> RefractiveIndex::getRefractivity_16o16o(double temperature, double pressure, double wvpressure, double frequency){
67 83353 : unsigned int species_16o16o=1;
68 166706 : return mkEarthSpecificRefractivity(species_16o16o,temperature,pressure,wvpressure,frequency)
69 83353 : *0.2092*pressure*100.0/(1.380662e-23*temperature); // static const double o2_mixing_ratio=0.2092;
70 : }
71 :
72 83353 : std::complex<double> RefractiveIndex::getRefractivity_16o16o_vib(double temperature, double pressure, double wvpressure, double frequency){
73 83353 : unsigned int species_16o16o_vib=2;
74 166706 : return mkEarthSpecificRefractivity(species_16o16o_vib,temperature,pressure,wvpressure,frequency)
75 83353 : *0.2092*pressure*100.0/(1.380662e-23*temperature); // static const double o2_mixing_ratio=0.2092;
76 : }
77 :
78 83353 : std::complex<double> RefractiveIndex::getRefractivity_16o18o(double temperature, double pressure, double wvpressure, double frequency){
79 83353 : unsigned int species_16o18o=3;
80 166706 : return mkEarthSpecificRefractivity(species_16o18o,temperature,pressure,wvpressure,frequency)
81 83353 : *0.2092*pressure*100.0/(1.380662e-23*temperature); // static const double o2_mixing_ratio=0.2092;
82 : }
83 :
84 83353 : std::complex<double> RefractiveIndex::getRefractivity_16o17o(double temperature, double pressure, double wvpressure, double frequency){
85 83353 : unsigned int species_16o17o=4;
86 166706 : return mkEarthSpecificRefractivity(species_16o17o,temperature,pressure,wvpressure,frequency)
87 83353 : *0.2092*pressure*100.0/(1.380662e-23*temperature); // static const double o2_mixing_ratio=0.2092;
88 : }
89 :
90 :
91 0 : std::complex<double> RefractiveIndex::getRefractivity_o2(double temperature,double pressure,double wvpressure,
92 : double frequency,double width,unsigned int n)
93 0 : { std::complex<double> average(0.0,0.0); double newfreq;
94 0 : for(unsigned int i=0; i<n; i++){
95 0 : if(n==1){newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i;}
96 0 : average=average+getRefractivity_o2(temperature,pressure,wvpressure,newfreq);
97 : }
98 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
99 0 : return averagen;}
100 :
101 0 : std::complex<double> RefractiveIndex::getRefractivity_16o16o(double temperature,double pressure,double wvpressure,
102 : double frequency,double width,unsigned int n)
103 0 : { std::complex<double> average(0.0,0.0); double newfreq;
104 0 : for(unsigned int i=0; i<n; i++){
105 0 : if(n==1){newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i;}
106 0 : average=average+getRefractivity_16o16o(temperature,pressure,wvpressure,newfreq);
107 : }
108 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
109 0 : return averagen;}
110 :
111 0 : std::complex<double> RefractiveIndex::getRefractivity_16o16o_vib(double temperature,double pressure,double wvpressure,
112 : double frequency,double width,unsigned int n)
113 0 : { std::complex<double> average(0.0,0.0); double newfreq;
114 0 : for(unsigned int i=0; i<n; i++){
115 0 : if(n==1){newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i;}
116 0 : average=average+getRefractivity_16o16o_vib(temperature,pressure,wvpressure,newfreq);
117 : }
118 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
119 0 : return averagen;}
120 :
121 0 : std::complex<double> RefractiveIndex::getRefractivity_16o18o(double temperature,double pressure,double wvpressure,
122 : double frequency,double width,unsigned int n)
123 0 : { std::complex<double> average(0.0,0.0); double newfreq;
124 0 : for(unsigned int i=0; i<n; i++){
125 0 : if(n==1){newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i;}
126 0 : average=average+getRefractivity_16o18o(temperature,pressure,wvpressure,newfreq);
127 : }
128 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
129 0 : return averagen;}
130 :
131 0 : std::complex<double> RefractiveIndex::getRefractivity_16o17o(double temperature,double pressure,double wvpressure,
132 : double frequency,double width,unsigned int n)
133 0 : { std::complex<double> average(0.0,0.0); double newfreq;
134 0 : for(unsigned int i=0; i<n; i++){
135 0 : if(n==1){newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i;}
136 0 : average=average+getRefractivity_16o17o(temperature,pressure,wvpressure,newfreq);
137 : }
138 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
139 0 : return averagen;}
140 :
141 :
142 :
143 :
144 83353 : std::complex<double> RefractiveIndex::getRefractivity_h2o(double temperature, double pressure, double wvpressure, double frequency){
145 83353 : unsigned int species_hh16o=11; unsigned int species_hh16ov2=12; unsigned int species_hh18o=13;
146 83353 : unsigned int species_hh17o=14; unsigned int species_hdo=15;
147 83353 : return (mkEarthSpecificRefractivity(species_hh16o,temperature,pressure,wvpressure,frequency)
148 166706 : +mkEarthSpecificRefractivity(species_hh16ov2,temperature,pressure,wvpressure,frequency)
149 166706 : +mkEarthSpecificRefractivity(species_hh18o,temperature,pressure,wvpressure,frequency)
150 166706 : +mkEarthSpecificRefractivity(species_hh17o,temperature,pressure,wvpressure,frequency)
151 83353 : +mkEarthSpecificRefractivity(species_hdo,temperature,pressure,frequency))
152 166706 : *(6.023e23*wvpressure*217.0/(temperature*18.005059688)); // static const double mmol_h2o=18.005059688;
153 : }
154 0 : std::complex<double> RefractiveIndex::getRefractivity_h2o(double temperature,double pressure,double wvpressure,double frequency,double width,unsigned int n){
155 0 : std::complex<double> average(0.0,0.0); double newfreq;
156 0 : for(unsigned int i=0; i<n; i++){
157 0 : if(n==1){ newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i; }
158 0 : average=average+getRefractivity_h2o(temperature,pressure,wvpressure,newfreq);
159 : }
160 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
161 0 : return averagen;
162 : }
163 :
164 83353 : std::complex<double> RefractiveIndex::getRefractivity_hh16o(double temperature, double pressure, double wvpressure, double frequency){
165 166706 : return getEarthSpecificRefractivity_hh16o(temperature, pressure, wvpressure, frequency)
166 83353 : *(6.023e23*wvpressure*217.0/(temperature*18.005059688)); // static const double mmol_h2o=18.005059688;
167 : }
168 0 : std::complex<double> RefractiveIndex::getRefractivity_hh16o(double temperature,double pressure,double wvpressure,double frequency,double width,unsigned int n){
169 0 : std::complex<double> average(0.0,0.0); double newfreq;
170 0 : for(unsigned int i=0; i<n; i++){
171 0 : if(n==1){ newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i; }
172 0 : average=average+getRefractivity_hh16o(temperature,pressure,wvpressure,newfreq);
173 : }
174 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
175 0 : return averagen;
176 : }
177 :
178 83353 : std::complex<double> RefractiveIndex::getRefractivity_hh16ov2(double temperature, double pressure, double wvpressure, double frequency){
179 166706 : return getEarthSpecificRefractivity_hh16ov2(temperature, pressure, wvpressure, frequency)
180 83353 : *(6.023e23*wvpressure*217.0/(temperature*18.005059688)); // static const double mmol_h2o=18.005059688;
181 : }
182 0 : std::complex<double> RefractiveIndex::getRefractivity_hh16ov2(double temperature,double pressure,double wvpressure,double frequency,double width,unsigned int n){
183 0 : std::complex<double> average(0.0,0.0); double newfreq;
184 0 : for(unsigned int i=0; i<n; i++){
185 0 : if(n==1){ newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i; }
186 0 : average=average+getRefractivity_hh16ov2(temperature,pressure,wvpressure,newfreq);
187 : }
188 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
189 0 : return averagen;
190 : }
191 :
192 83353 : std::complex<double> RefractiveIndex::getRefractivity_hh18o(double temperature, double pressure, double wvpressure, double frequency){
193 166706 : return getEarthSpecificRefractivity_hh18o(temperature, pressure, wvpressure, frequency)
194 83353 : *(6.023e23*wvpressure*217.0/(temperature*18.005059688)); // static const double mmol_h2o=18.005059688;
195 : }
196 : /* std::complex<double> RefractiveIndex::getRefractivity_hh18o(double temperature,double pressure,double wvpressure,double frequency,double width,unsigned int n){
197 : std::complex<double> average(0.0,0.0); double newfreq;
198 : for(unsigned int i=0; i<n; i++){
199 : if(n==1){ newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i; }
200 : average=average+getRefractivity_hh18o(temperature,pressure,wvpressure,newfreq);
201 : }
202 : std::complex<double> averagen(real(average)/n,imag(average)/n);
203 : return averagen;
204 : }*/
205 :
206 83353 : std::complex<double> RefractiveIndex::getRefractivity_hh17o(double temperature, double pressure, double wvpressure, double frequency){
207 166706 : return getEarthSpecificRefractivity_hh17o(temperature, pressure, wvpressure, frequency)
208 83353 : *(6.023e23*wvpressure*217.0/(temperature*18.005059688)); // static const double mmol_h2o=18.005059688;
209 : }
210 0 : std::complex<double> RefractiveIndex::getRefractivity_hh17o(double temperature,double pressure,double wvpressure,double frequency,double width,unsigned int n){
211 0 : std::complex<double> average(0.0,0.0); double newfreq;
212 0 : for(unsigned int i=0; i<n; i++){
213 0 : if(n==1){ newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i; }
214 0 : average=average+getRefractivity_hh17o(temperature,pressure,wvpressure,newfreq);
215 : }
216 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
217 0 : return averagen;
218 : }
219 :
220 83353 : std::complex<double> RefractiveIndex::getRefractivity_hdo(double temperature, double pressure, double wvpressure, double frequency){
221 166706 : return getEarthSpecificRefractivity_hdo(temperature, pressure, wvpressure, frequency)
222 83353 : *(6.023e23*wvpressure*217.0/(temperature*18.005059688)); // static const double mmol_h2o=18.005059688;
223 : }
224 0 : std::complex<double> RefractiveIndex::getRefractivity_hdo(double temperature,double pressure,double wvpressure,double frequency,double width,unsigned int n){
225 0 : std::complex<double> average(0.0,0.0); double newfreq;
226 0 : for(unsigned int i=0; i<n; i++){
227 0 : if(n==1){ newfreq=frequency; }else{ newfreq=frequency-(width/2.0)+(width/(n-1))*i; }
228 0 : average=average+getRefractivity_hdo(temperature,pressure,wvpressure,newfreq);
229 : }
230 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
231 0 : return averagen;
232 : }
233 :
234 :
235 :
236 :
237 4824415 : unsigned int RefractiveIndex::vpIndex(double nu)
238 : {
239 : unsigned int vp;
240 4824415 : if(nu<1.0){
241 0 : vp=0;
242 : }else{
243 4824415 : vp = (int) round((nu+1.0)/2.0);
244 4824415 : vp=vp-1;
245 : }
246 4824415 : return vp; // index for look-up tables to constrain the number of catalog
247 : // lines considered for spectral calculations at frequency nu
248 : // 18JUL2024
249 : }
250 :
251 16418562 : double RefractiveIndex::linebroadening(double nu, double temp, double pr, double mmol, double dv0_lines, double texp_lines){
252 :
253 : // pr = pp.get(Pressure::UnitMilliBar); temp = tt.get(Temperature::UnitKelvin);
254 : double dv0;
255 : double dv;
256 :
257 16418562 : dv0=dv0_lines*pr*pow(300/temp,texp_lines); // Unit: GHz
258 :
259 16418562 : double beta_dop=4.30e-7*nu*sqrt(temp/mmol);
260 16418562 : if((dv0/beta_dop)<1.25){
261 312732 : dv=0.535*dv0+sqrt(0.217*pow(dv0,2)+0.6931*pow(beta_dop,2)); // "Atmospheric Remote Sensing", Janssen, pag. 59
262 : }else{
263 16105830 : dv=dv0;
264 : }
265 16418562 : return dv; //Unit: GHz
266 : }
267 :
268 :
269 8987730 : double RefractiveIndex::linebroadening_o2(double nu, double temp, double pr, double eh2o, double mmol, double broadening1, double broadening2){
270 :
271 : // pr = pp.get(Pressure::UnitMilliBar);
272 : // eh2o = ph2o.get(Pressure::UnitMilliBar);
273 : // temp = tt.get(Temperature::UnitKelvin);
274 : // nu in GHz
275 : double dv0;
276 : double dv;
277 :
278 8987730 : dv0=1e-3*broadening1*((pr-eh2o)*pow(300/temp,broadening2)+1.1*eh2o*300/temp); // Unit: GHz
279 :
280 8987730 : double beta_dop=4.30e-7*nu*sqrt(temp/mmol);
281 :
282 8987730 : if((dv0/beta_dop)<1.25){
283 84316 : dv=0.535*dv0+sqrt(0.217*pow(dv0,2)+0.6931*pow(beta_dop,2)); // "Atmospheric Remote Sensing", Janssen, pag. 59
284 :
285 : }else{
286 8903414 : dv=dv0;
287 : }
288 :
289 8987730 : return dv; // Unit: GHz
290 :
291 : }
292 :
293 :
294 5486904 : double RefractiveIndex::interf_o2(double temp, double pp, double broadening3,double broadening4){
295 :
296 : // temp = tt.get(Temperature::UnitKelvin);
297 :
298 5486904 : double interf=1e-3*(broadening3+broadening4*(300/temp))*pp*pow(300/temp,0.8);
299 5486904 : return interf; // Unit: GHz
300 :
301 : }
302 :
303 :
304 27151780 : double RefractiveIndex::linebroadening_water(double nu, double temp, double pr, double eh2o, double broadening1, double broadening2, double broadening3, double broadening4){
305 :
306 : static const double mmol=18.0;
307 :
308 : // nu in GHz
309 : // pr = pp.get(Pressure::UnitMilliBar);
310 : // eh2o = ph2o.get(Pressure::UnitMilliBar);
311 : // temp = tt.get(Temperature::UnitKelvin);
312 : double dv0;
313 : double dv;
314 :
315 :
316 27151780 : if(broadening2>0){
317 27151780 : dv0=1e-3*broadening1*((pr-eh2o)*pow(300/temp,broadening3)+broadening2*eh2o*pow(300.0/temp,broadening4)); // Unit: GHz
318 : }else{
319 0 : dv0=1e-3*broadening1*((pr-eh2o)*pow(300/temp,0.68)+4.50*eh2o*pow(300.0/temp,0.80)); // Unit: GHz
320 : }
321 :
322 27151780 : double beta_dop=3.58e-7*nu*sqrt(temp/mmol);
323 :
324 27151780 : if((dv0/beta_dop)<1.25){
325 57524 : dv=0.535*dv0+sqrt(0.217*pow(dv0,2)+0.6931*pow(beta_dop,2)); // "Atmospheric Remote Sensing", Janssen, pag. 59
326 : }else{
327 27094256 : dv=dv0;
328 : }
329 :
330 27151780 : return dv; // unit: GHz
331 : }
332 :
333 1423032 : double RefractiveIndex::linebroadening_hh18o_hh17o(double temp, double pr, double eh2o, double dv0, double dvlm, double temp_exp){
334 :
335 : // pr = pp.gPressure::UnitMilliBar);
336 : // eh2o = ph2o.get(Pressure::UnitMilliBar);
337 : // temp = tt.get(Temperature::UnitKelvin);
338 : double dv;
339 1423032 : double rho=18.0*eh2o*100/(8.315727226*temp); // Na*Kb=8.315727226 (Avogadro's number x Boltmann's constant)
340 1423032 : double c2=4.6E-03*rho*temp/pr;
341 :
342 1423032 : dv=(dv0*(pr/1013.0)/(pow(temp/300.0,temp_exp)))*(1.+c2*(dvlm/dv0-1.));
343 :
344 1423032 : return dv; // Unit: GHz
345 : }
346 :
347 : // std::complex<double> RefractiveIndex::lineshape(Frequency nu, Frequency linefreq, Frequency linebroad, Frequency interf){
348 56716668 : std::complex<double> RefractiveIndex::lineshape(double v, double vl, double dv, double itf){
349 :
350 : // *********************************************************************************
351 : // * CALCULATION OF THIS PART OF THE COMPLEX VAN-VLECK WEISSKOPF LINE PROFILE: *
352 : // * (1-i*itf)/(vl-v-idv) - (1+i*itf)/(vl+v+idv) *
353 : // * FOR MOST CASES itf=0 AND THEN THE REAL AND IMAGINARY PARTS ARE: *
354 : // * {[dv/((v-vl)**2+dv**2)]+[1/((v+vl)**2+dv**2)]} IMAG (UNITS 1/freq) *
355 : // * {[(vl-v)/((v-vl)**2+dv**2)]-[(vl+v)/((v+vl)**2+dv**2)]} REAL (UNITS 1/freq) *
356 : // *********************************************************************************
357 :
358 : // dv = linebroad.get(Frequency::UnitGigaHertz); LINE BROADENING PARAMETER
359 : // itf = interf.get(Frequency::UnitGigaHertz); LINE INTERFERENCE
360 : // vl = linefreq.get(Frequency::UnitGigaHertz); FREQUENCY OF RESONANT LINE
361 : // v = nu.get(Frequency::UnitGigaHertz); CURRENT WORKING FREQUENCY
362 :
363 : // double lf=dv*itf;
364 : // double dv2=dv*dv;
365 : // double dv2v2=dv2+v*v;
366 : // double vl2=vl*vl;
367 : // double vvl=2*v*vl;
368 : // double aa=dv2v2+vl2;
369 : // double a1=aa-vvl;
370 : // double a2=aa+vvl;
371 :
372 : // double fv=((dv-(vl-v)*itf)/a1+(dv-(vl+v)*itf)/a2); // ! line profile (imaginary)
373 : // ! in 1/frec units
374 : // double frv=((vl-v+lf)/a1-(vl+v+lf)/a2); // ! delay profile (real part)
375 :
376 : // return std::complex<double> (frv,fv)*(v/vl);
377 :
378 113433336 : return std::complex<double> (v/vl)*(std::complex<double>(1.0,-itf)/std::complex<double>(vl-v,-dv)
379 226866672 : - std::complex<double>(1.0,itf)/std::complex<double>(vl+v, dv) );
380 : }
381 :
382 : ////////////////////////////////////////////////////////////////////////////////
383 : // ATM 1: 16o16o 7: no2 13: hh18o 19: 16o16o16o_v3 //
384 : // opacity 2: 16o16o_vib 8: so2 14: hh17o 20: 16o16o18o //
385 : // sources 3: 16o18o 9: cnth2o 15: hdo 21: 16o16o17o //
386 : // 4: 16o17o 10: cntdry 16: 16o16o16o 22: 16o18o16o //
387 : // Jan-24 5: co 11: hh16o 17: 16o16o16o_v2 23: 16o17o16o //
388 : // 2011 6: n2o 12: hh16o_v2 18: 16o16o16o_v1 24: HCl //
389 : ////////////////////////////////////////////////////////////////////////////////
390 : // //
391 : // EarthSpecificRefractivity for [species] is a complex number with the //
392 : // following units: [rad*cm^2,cm^2] already taking into account the //
393 : // fractional abundance of [species] within the total abundance of its parent //
394 : // [SPECIES]. Multiplication by the number density of [SPECIES] in cm^-3 //
395 : // gives a complex number with units [rad*cm^-1,cm^-1]. Multiplication by //
396 : // the path with constant physical conditions, in cm, gives [rad,np] (phase //
397 : // and opacity along that path. //
398 : // //
399 : ////////////////////////////////////////////////////////////////////////////////
400 :
401 0 : std::complex<double> RefractiveIndex::mkEarthSpecificRefractivity(unsigned int species,
402 : double tt, double pp, double eh2o,
403 : double nu, double width, unsigned int n)
404 : {
405 0 : std::complex<double> average(0.0,0.0);
406 : double newfreq;
407 0 : for(unsigned int i=0; i<n; i++){
408 0 : if(n==1){
409 0 : newfreq=nu;
410 : }else{
411 0 : newfreq=nu-(width/2.0)+(width/(n-1))*i;
412 : }
413 0 : average=average+mkEarthSpecificRefractivity(species,tt,pp,eh2o,newfreq); // 2015-11-30 replace nu with newfreq
414 : }
415 0 : std::complex<double> averagen(real(average)/n,imag(average)/n);
416 0 : return averagen;
417 : }
418 :
419 :
420 :
421 3500826 : std::complex<double> RefractiveIndex::mkEarthSpecificRefractivity(unsigned int species,
422 : double tt, double pp, double eh2o,
423 : double nu)
424 : {
425 :
426 : static const double abun_18o=0.0020439; // 18O/16O isoyopic ratio
427 : static const double abun_17o=0.0003750; // 17O/16O isotopic tatio
428 : static const double abun_d= 0.000298444; // D/H isotopic ratio
429 : static const double Tex_h2ovib=2322.92; // vib energy of O2 in K
430 : static const double Tex_o2vib=2239.273; // vib energy of O2 (1556.38 cm-1, conversion factor: 1 cm-1 = 1.438777 K)
431 : static const double Tex_o3nu2=1009.50; // Energy of nu2=1 vibrational state of O3 (in K) Degeneracy=1 http://www.cfa.harvard.edu/hitran/vibrational.html
432 : static const double Tex_o3nu1=1588.41; // Energy of nu1=1 vibrational state of O3 (in K) Degeneracy=1 http://www.cfa.harvard.edu/hitran/vibrational.html
433 : static const double Tex_o3nu3=1500.48; // Energy of nu3=1 vibrational state of O3 (in K) Degeneracy=1 http://www.cfa.harvard.edu/hitran/vibrational.html
434 3500826 : double ratio16O16O16O_nu0 = (1-exp(-Tex_o3nu1/tt)-exp(-Tex_o3nu2/tt)-exp(-Tex_o3nu3/tt))/(1.0+3.0*(abun_18o+abun_17o));
435 3500826 : double ratio16O16O16O_nu1 = exp(-Tex_o3nu1/tt)/(1.0+3.0*(abun_18o+abun_17o));
436 3500826 : double ratio16O16O16O_nu2 = exp(-Tex_o3nu2/tt)/(1.0+3.0*(abun_18o+abun_17o));
437 3500826 : double ratio16O16O16O_nu3 = exp(-Tex_o3nu3/tt)/(1.0+3.0*(abun_18o+abun_17o));
438 3500826 : double ratio16O16O18O = 2.0*abun_18o/(1.0+3.0*(abun_18o+abun_17o));
439 3500826 : double ratio16O16O17O = 2.0*abun_17o/(1.0+3.0*(abun_18o+abun_17o));
440 3500826 : double ratio16O18O16O = abun_18o/(1.0+3.0*(abun_18o+abun_17o));
441 3500826 : double ratio16O17O16O = abun_17o/(1.0+3.0*(abun_18o+abun_17o));
442 3500826 : double ratio16O16O = (1.0-exp(-Tex_o2vib/tt))/(1.0+2.0*(abun_18o+abun_17o));
443 3500826 : double ratio16o16ovib = exp(-Tex_o2vib/tt)/(1.0+2.0*(abun_18o+abun_17o));
444 3500826 : double ratio16O18O = 2.0*abun_18o/(1.0+2.0*(abun_18o+abun_17o));
445 3500826 : double ratio16O17O = 2.0*abun_17o/(1.0+2.0*(abun_18o+abun_17o));
446 3500826 : double ratiohh16o = (1-exp(-Tex_h2ovib/tt))/(1+abun_18o+abun_17o+2*abun_d);
447 3500826 : double ratiohh16ovib =exp(-Tex_h2ovib/tt)/(1+abun_18o+abun_17o+2*abun_d);
448 3500826 : double ratiohh18o = abun_18o/(1+abun_18o+abun_17o+2.0*abun_d);
449 3500826 : double ratiohh17o = abun_18o/(1+abun_18o+abun_17o+2.0*abun_d);
450 3500826 : double ratiohdo = 2.0*abun_d/(1+abun_18o+abun_17o+2-0*abun_d);
451 :
452 : unsigned int vp;
453 3500826 : vp = vpIndex(nu);
454 :
455 : //cout << " species = " << species << endl;
456 :
457 3500826 : if(species==5){return mkSpecificRefractivity_co(tt, pp, nu);}
458 3417473 : if(species==6){return mkSpecificRefractivity_n2o(tt, pp, nu);}
459 3334120 : if(species==7){return mkSpecificRefractivity_no2(tt, pp, nu);}
460 3250767 : if(species==8){return mkSpecificRefractivity_so2(tt, pp, nu);}
461 3167414 : if(species==24){return mkSpecificRefractivity_hcl(tt, pp, nu);}
462 3084061 : if(species==25){return mkSpecificRefractivity_hcn(tt, pp, nu);}
463 :
464 3000708 : if(species==9){return mkRefractivity_cnth2o(tt, pp, eh2o, nu);}
465 2917355 : if(species==10){return mkRefractivity_cntdry(tt, pp, eh2o, nu);}
466 :
467 2834002 : if(species==1){return mkSpecificRefractivity_16o16o(tt,pp,eh2o,nu)*ratio16O16O;}
468 2667296 : if(species==2){return mkSpecificRefractivity_16o16o_vib(tt,pp,eh2o,nu)*ratio16o16ovib;}
469 2500590 : if(species==3){return mkSpecificRefractivity_16o18o(tt,pp, eh2o, nu)*ratio16O18O;}
470 2333884 : if(species==4){return mkSpecificRefractivity_16o17o(tt, pp, eh2o, nu)*ratio16O17O;}
471 :
472 2167178 : if(species==11){return mkSpecificRefractivity_hh16o(tt, pp, eh2o, nu)*ratiohh16o;}
473 2000472 : if(species==12){return mkSpecificRefractivity_hh16o_v2(tt, pp, eh2o, nu)*ratiohh16ovib;}
474 1833766 : if(species==13){return mkSpecificRefractivity_hh18o(tt, pp, eh2o, nu)*ratiohh18o;}
475 1667060 : if(species==14){return mkSpecificRefractivity_hh17o(tt, pp, eh2o, nu)*ratiohh17o;}
476 : //if(species==15){return mkSpecificRefractivity_hdo(tt, pp, eh2o, nu);} // eh2o removed (unused parameter)
477 1500354 : if(species==15){return mkSpecificRefractivity_hdo(tt, pp, nu)*ratiohdo;}
478 :
479 1333648 : if(species==16){return (mkSpecificRefractivity_16o16o16o(tt, pp, nu, vp)*ratio16O16O16O_nu0);}
480 1166942 : if(species==17){return mkSpecificRefractivity_16o16o16o_v2(tt, pp, nu, vp) * ratio16O16O16O_nu2;}
481 1000236 : if(species==18){return mkSpecificRefractivity_16o16o16o_v1(tt, pp, nu, vp) * ratio16O16O16O_nu1;}
482 833530 : if(species==19){return mkSpecificRefractivity_16o16o16o_v3(tt, pp, nu, vp) * ratio16O16O16O_nu3;}
483 666824 : if(species==20){return mkSpecificRefractivity_16o16o18o(tt, pp, nu, vp) * ratio16O16O18O;}
484 500118 : if(species==21){return mkSpecificRefractivity_16o16o17o(tt, pp, nu, vp) * ratio16O16O17O;}
485 333412 : if(species==22){return mkSpecificRefractivity_16o18o16o(tt, pp, nu, vp) * ratio16O18O16O;}
486 166706 : if(species==23){return mkSpecificRefractivity_16o17o16o(tt, pp, nu, vp) * ratio16O17O16O;}
487 0 : std::complex<double> aa(0.0,0.0);
488 0 : return aa;
489 :
490 : }
491 :
492 :
493 : //////////////////////// Opacity Source Number: 8 //////////////////////////////
494 :
495 83353 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_so2(double tt, double pp, double nu){
496 :
497 :
498 : static const double fre[594]={
499 : 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,
500 : 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,
501 : 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,
502 : 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,
503 : 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,
504 : 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,
505 : 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,
506 : 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,
507 : 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,
508 : 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,
509 : 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,
510 : 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,
511 : 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,
512 : 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,
513 : 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,
514 : 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,
515 : 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,
516 : 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,
517 : 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,
518 : 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,
519 : 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,
520 : 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,
521 : 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,
522 : 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,
523 : 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,
524 : 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,
525 : 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,
526 : 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,
527 : 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,
528 : 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,
529 : 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,
530 : 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,
531 : 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};
532 :
533 :
534 :
535 : static const double flin[594]={
536 : 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,
537 : 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,
538 : 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,
539 : 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,
540 : 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,
541 : 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,
542 : 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,
543 : 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,
544 : 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,
545 : 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,
546 : 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,
547 : 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,
548 : 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,
549 : 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,
550 : 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,
551 : 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,
552 : 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,
553 : 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,
554 : 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,
555 : 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,
556 : 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,
557 : 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,
558 : 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,
559 : 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,
560 : 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,
561 : 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,
562 : 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,
563 : 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,
564 : 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,
565 : 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,
566 : 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,
567 : 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,
568 : 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};
569 :
570 : static const double el[594]={
571 : 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,
572 : 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,
573 : 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,
574 : 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,
575 : 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,
576 : 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,
577 : 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,
578 : 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,
579 : 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,
580 : 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,
581 : 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,
582 : 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,
583 : 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,
584 : 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,
585 : 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,
586 : 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,
587 : 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,
588 : 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,
589 : 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,
590 : 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,
591 : 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,
592 : 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,
593 : 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,
594 : 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,
595 : 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,
596 : 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,
597 : 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,
598 : 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,
599 : 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,
600 : 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,
601 : 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,
602 : 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,
603 : 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};
604 :
605 :
606 : static const double brdSO2air[594] ={
607 : 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,
608 : 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,
609 : 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,
610 : 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,
611 : 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,
612 : 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,
613 : 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,
614 : 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,
615 : 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,
616 : 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,
617 : 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,
618 : 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,
619 : 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,
620 : 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,
621 : 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,
622 : 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,
623 : 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,
624 : 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,
625 : 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,
626 : 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,
627 : 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,
628 : 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,
629 : 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,
630 : 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,
631 : 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,
632 : 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,
633 : 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,
634 : 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,
635 : 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,
636 : 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};
637 :
638 : static const unsigned int ini1[500]={
639 : 0, 0, 1, 3, 6, 10, 13, 14, 16, 17, 19, 20, 21, 24, 30, 32, 35, 38, 38, 39,
640 : 42, 45, 46, 49, 51, 53, 55, 57, 61, 63, 63, 66, 68, 68, 70, 74, 79, 80, 84, 85,
641 : 88, 88, 88, 92, 94, 98, 98,101,101,102,105,107,108,110,113,116,119,122,123,125,
642 : 126,129,130,132,134,137,141,145,146,151,151,153,154,156,156,160,160,164,165,167,
643 : 168,171,174,178,181,183,184,188,188,191,193,195,196,198,200,204,205,208,211,214,
644 : 216,218,220,222,225,226,229,230,232,236,238,239,240,243,246,249,251,252,252,256,
645 : 259,260,262,264,267,268,271,274,277,283,286,290,291,297,299,303,304,306,309,311,
646 : 312,313,317,321,322,325,326,327,329,329,334,336,338,339,339,342,343,344,350,350,
647 : 353,357,360,363,365,368,370,371,374,375,378,381,385,386,389,391,394,397,398,401,
648 : 411,417,419,422,423,424,426,428,429,432,434,435,438,440,445,448,452,453,453,458,
649 : 461,465,466,468,468,470,472,474,476,478,480,484,485,487,487,489,491,497,499,500,
650 : 502,505,508,511,511,513,514,516,523,530,534,547,548,550,555,557,558,561,566,568,
651 : 570,572,574,576,580,580,583,586,586,589,590,591, 0, 0, 0, 0, 0, 0, 0, 0,
652 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
653 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
654 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
655 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
656 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
657 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
658 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
659 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
660 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
661 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
662 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
663 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
664 :
665 :
666 : static const unsigned int ifin1[500]={
667 : 2, 5, 9, 12, 13, 15, 16, 18, 19, 20, 23, 29, 31, 34, 37, 37, 38, 41, 44, 45,
668 : 48, 50, 52, 54, 56, 60, 62, 62, 65, 67, 67, 69, 73, 78, 79, 83, 84, 87, 87, 87,
669 : 91, 93, 97, 97,100,100,101,104,106,107,109,112,115,118,121,122,124,125,128,129,
670 : 131,133,136,140,144,145,150,150,152,153,155,155,159,159,163,164,166,167,170,173,
671 : 177,180,182,183,187,187,190,192,194,195,197,199,203,204,207,210,213,215,217,219,
672 : 221,224,225,228,229,231,235,237,238,239,242,245,248,250,251,251,255,258,259,261,
673 : 263,266,267,270,273,276,282,285,289,290,296,298,302,303,305,308,310,311,312,316,
674 : 320,321,324,325,326,328,328,333,335,337,338,338,341,342,343,349,349,352,356,359,
675 : 362,364,367,369,370,373,374,377,380,384,385,388,390,393,396,397,400,410,416,418,
676 : 421,422,423,425,427,428,431,433,434,437,439,444,447,451,452,452,457,460,464,465,
677 : 467,467,469,471,473,475,477,479,483,484,486,486,488,490,496,498,499,501,504,507,
678 : 510,510,512,513,515,522,529,533,546,547,549,554,556,557,560,565,567,569,571,573,
679 : 575,579,579,582,585,585,588,589,590,593,593,593, 0, 0, 0, 0, 0, 0, 0, 0,
680 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
681 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
682 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
683 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
684 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
685 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
686 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
687 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
688 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
689 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
690 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
691 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
692 :
693 : static const double pi=3.141592654;
694 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
695 : static const double mu=1.62; // dipole moment in Debyes
696 : static const double mmol=64.0644;
697 :
698 83353 : double q=1.1346738633*tt*sqrt(tt);
699 : unsigned int vp;
700 : unsigned int ini;
701 : unsigned int ifin;
702 : static const bool allfreqs = false;
703 : static const unsigned int zero = 0;
704 : static const unsigned int nmaxvp = 499;
705 83353 : std::complex<double> lshape;
706 83353 : std::complex<double> lshapeacum;
707 :
708 83353 : if(nu>499.99){
709 :
710 10059 : return std::complex<double> (0.0,0.0);
711 :
712 : }else{
713 :
714 73294 : vp = vpIndex(nu);
715 :
716 73294 : if(vp>2){
717 73294 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
718 : }else{
719 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
720 : }
721 :
722 : if(allfreqs){ ini=0; ifin=593; }
723 :
724 73294 : if(ifin==0||ifin<ini){
725 :
726 0 : return std::complex<double> (0.0,0.0);
727 :
728 : }else{
729 :
730 1004654 : for(unsigned int i=ini; i<ifin+1; i++){
731 :
732 931360 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdSO2air[i]*0.001,0.75),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
733 :
734 931360 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
735 :
736 931360 : lshapeacum=lshapeacum+lshape;
737 :
738 : }
739 :
740 73294 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
741 : // real part: delay in rad*cm^2
742 73294 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2)
743 :
744 : }
745 :
746 : }
747 :
748 : }
749 :
750 :
751 :
752 : //////////////////////// Opacity Source Number: 24 //////////////////////////////
753 :
754 83353 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hcl(double tt, double pp, double nu){
755 :
756 : static const double fre[3]={625.90166234,625.91870209,625.93201350};
757 : static const double el[3]={0.0,0.0,0.0};
758 : static const double flin[3]={0.33333333,0.5,0.16666667};
759 : static const double brdHClair[3]={2.7,2.7,2.7};
760 : static const double texpHCl[3]={0.7,0.7,0.7};
761 :
762 : static const double pi=3.141592654;
763 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
764 : static const double mu=0.816; // dipole moment in Debyes
765 : static const double mmol=36.0;
766 :
767 : //double q=0.430965924*pow(tt,1.5);
768 83353 : double q=0.0668793372*tt;
769 :
770 83353 : std::complex<double> lshape;
771 83353 : std::complex<double> lshapeacum;
772 :
773 :
774 83353 : if(nu>624.0 && nu<627.8){
775 :
776 :
777 0 : for(unsigned int i=0; i<3; i++){
778 0 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdHClair[i]*0.001,texpHCl[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
779 0 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
780 0 : lshapeacum=lshapeacum+lshape;
781 : }
782 0 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
783 : // real part: delay in rad*cm^2
784 0 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
785 : }else{
786 83353 : return std::complex<double> (0.0,0.0);
787 : }
788 :
789 : }
790 :
791 : //////////////////////// Opacity Source Number: 25 //////////////////////////////
792 :
793 83353 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hcn(double tt, double pp, double nu){
794 :
795 : static const double fre[18]={ 88.63160200, 177.26111081, 265.88643327, 354.50547638, 443.11614732, 531.71635352,
796 : 620.30400273, 708.87700307, 797.43326312, 885.97069196, 974.48719922,106.298069519,
797 : 1151.44909085,1239.89029792,1328.30222898,1416.68279746,1505.02991776,1593.34150528};
798 : static const double flin[18]={ 1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0};
799 : static const double el[18]={ 0.0, 4.3, 12.8, 25.5, 42.5, 63.8, 89.3, 119.1, 153.1, 191.4, 233.9, 280.7,
800 : 331.7, 387.0, 446.5, 510.2, 578.2, 650.4};
801 : static const double brdHCNair[18]={2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7,2.7};
802 : static const double texpHCN[18]={0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7};
803 :
804 : static const double pi=3.141592654;
805 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
806 : static const double mu=2.98; // dipole moment in Debyes
807 : static const double mmol=27.0;
808 :
809 : //double q=0.430965924*pow(tt,1.5);
810 83353 : double q=0.470182585*tt;
811 :
812 83353 : std::complex<double> lshape;
813 83353 : std::complex<double> lshapeacum;
814 :
815 1583707 : for(unsigned int i=0; i<18; i++){
816 1500354 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdHCNair[i]*0.001,texpHCN[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
817 1500354 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
818 1500354 : lshapeacum=lshapeacum+lshape;
819 : }
820 83353 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
821 : // real part: delay in rad*cm^2
822 83353 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
823 : }
824 :
825 :
826 : //////////////////////// Opacity Source Number: 7 //////////////////////////////
827 :
828 83353 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_no2(double tt, double pp, double nu){
829 :
830 :
831 : static const double fre[248]={
832 : 15.30343, 16.02118, 26.60164, 29.46970, 39.16471, 40.81380, 53.08387, 58.66464, 70.22883, 83.41473, 90.50039, 93.44682,
833 : 98.02563,103.79987,105.96584,106.13308,109.94896,110.49490,118.00321,119.06157,123.85385,123.88433,124.75224,130.01474,
834 : 131.81161,145.83722,148.69461,149.07330,156.21632,161.19983,161.31075,165.29567,167.25842,169.63437,176.21133,188.19188,
835 : 196.22234,199.62996,212.99927,214.31096,215.25284,228.22141,229.50119,230.12486,230.68661,234.59933,239.83878,240.01106,
836 : 243.42845,246.99138,252.13086,255.62711,266.02109,270.10626,274.98672,275.22241,275.31757,278.29013,281.63333,290.49454,
837 : 292.56226,299.81137,301.00867,308.97278,309.75595,324.83261,327.65967,331.81830,335.25684,335.80057,346.19440,346.53149,
838 : 348.50708,348.75742,350.20975,369.26804,370.28265,372.39059,385.44745,388.96729,394.65579,394.79709,394.81833,395.89322,
839 : 398.66660,408.62247,414.78375,426.32617,427.66861,439.50418,441.44064,443.84738,445.02673,452.38419,456.72156,459.44934,
840 : 461.23657,465.71219,469.01208,483.12143,493.26385,494.02573,500.12354,508.49557,508.62653,513.17657,513.37378,517.56873,
841 : 521.46198,525.59619,531.37561,542.97479,554.37964,556.44196,559.30530,563.68805,567.03601,571.43597,571.51337,572.08887,
842 : 572.97400,574.88635,575.85791,576.26593,578.26855,580.07306,581.16528,585.37109,587.43103,587.79901,592.91760,594.80762,
843 : 598.19824,603.02985,604.96832,606.72717,607.56641,607.90997,611.38959,611.82776,614.10382,617.72015,620.93292,630.08392,
844 : 638.66748,639.03223,643.03845,647.32861,647.54645,653.97833,655.41650,657.89435,659.23828,660.82092,662.45618,668.50519,
845 : 670.87683,673.43024,677.12579,679.51447,682.66016,685.83246,686.47723,690.41980,693.29193,696.42761,698.62994,703.38617,
846 : 703.86249,706.66449,712.73193,713.20947,723.04419,723.30933,725.17651,730.60724,731.52454,734.80737,743.64032,748.02948,
847 : 753.11591,755.44745,756.17896,758.04236,762.71759,763.59540,765.16272,775.16144,778.87732,781.71918,783.92804,794.05292,
848 : 796.51251,801.90253,803.10101,803.36237,803.65295,805.04199,807.55530,815.62439,816.75818,816.81555,826.56580,832.24298,
849 : 836.21124,837.80072,840.26038,844.50592,850.47626,853.28424,856.09827,858.26794,868.06360,874.88586,876.00659,877.64093,
850 : 878.81915,881.78546,882.73639,893.21283,894.98120,895.92072,903.61682,906.75049,906.98358,917.71210,919.13794,928.48956,
851 : 932.21454,933.14526,933.19623,939.99255,945.46600,950.26135,954.05829,957.05078,957.72675,960.94727,970.03180,979.19727,
852 : 979.78198,982.70105,983.62170,988.78534,990.12921,995.58112,995.95210,996.92308};
853 :
854 :
855 : static const double el[248]={
856 : 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,
857 : 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,
858 : 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,
859 : 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,
860 : 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,
861 : 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,
862 : 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,
863 : 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,
864 : 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,
865 : 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,
866 : 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,
867 : 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,
868 : 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,
869 : 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};
870 :
871 : static const double flin[248]={
872 : 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,
873 : 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,
874 : 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,
875 : 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,
876 : 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,
877 : 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,
878 : 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,
879 : 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,
880 : 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,
881 : 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,
882 : 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,
883 : 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,
884 : 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,
885 : 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,
886 : 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,
887 : 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,
888 : 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,
889 : 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,
890 : 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,
891 : 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,
892 : 0.304E+02,0.413E+01,0.792E+01,0.312E+02,0.154E+02,0.284E+02,0.409E+01,0.264E+02};
893 :
894 : static const double texpNO2[248] ={
895 : 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,
896 : 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,
897 : 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,
898 : 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,
899 : 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,
900 : 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,
901 : 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,
902 : 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,
903 : 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,
904 : 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,
905 : 0.76,0.70,0.76,0.76,0.76,0.76,0.76,0.76};
906 :
907 : static const double brdNO2air[248] ={
908 : 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,
909 : 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,
910 : 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,
911 : 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,
912 : 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,
913 : 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,
914 : 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,
915 : 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,
916 : 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,
917 : 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,
918 : 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,
919 : 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,
920 : 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,
921 : 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};
922 :
923 : static const unsigned int ini1[500]={
924 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 2, 2, 3, 0, 0, 4, 4,
925 : 4, 5, 0, 0, 0, 6, 6, 6, 7, 7, 7, 0, 0, 0, 8, 8, 8, 0, 0, 0,
926 : 9, 9, 9, 0, 10, 10, 10, 11, 12, 12, 12, 13, 13, 14, 15, 16, 17, 0, 18, 18,
927 : 18, 20, 20, 22, 23, 23, 23, 0, 0, 0, 0, 25, 25, 25, 26, 26, 0, 28, 28, 28,
928 : 29, 29, 31, 31, 32, 33, 0, 34, 34, 34, 0, 0, 0, 35, 35, 35, 0, 36, 36, 36,
929 : 37, 0, 0, 0, 0, 38, 38, 38, 39, 0, 0, 0, 0, 41, 41, 41, 43, 45, 45, 46,
930 : 46, 47, 48, 49, 49, 50, 50, 50, 51, 0, 0, 0, 52, 52, 52, 53, 53, 54, 54, 57,
931 : 57, 58, 0, 0, 59, 59, 59, 60, 61, 61, 61, 62, 0, 63, 63, 63, 0, 0, 0, 0,
932 : 0, 65, 65, 65, 66, 67, 67, 68, 68, 0, 0, 0, 70, 70, 70, 72, 74, 0, 0, 0,
933 : 0, 0, 0, 75, 75, 75, 76, 77, 0, 0, 0, 78, 78, 78, 79, 79, 80, 80, 80, 84,
934 : 84, 0, 0, 85, 85, 85, 86, 86, 86, 0, 0, 0, 87, 87, 87, 0, 0, 0, 89, 89,
935 : 89, 90, 91, 92, 0, 93, 93, 93, 94, 94, 95, 96, 97, 97, 98, 98, 0, 0, 0, 0,
936 : 99, 99, 99, 0, 0,100,100,100,101,102,102,102, 0,103,103,103,105,105,107,107,
937 : 108,108,109,109,110,110,110, 0, 0, 0,111,111,111, 0, 0, 0,112,112,112,113,
938 : 114,115,115,116,116,117,117,119,121,123,124,125,127,127,128,130,130,130,131,132,
939 : 132,133,133,134,135,138,138,140,140,141,142,142, 0, 0,143,143,143, 0,144,144,
940 : 144,146,146,147,147,149,149,149,150,151,152,153,154,155,155,155,156,157,158,158,
941 : 159,160,160,161,162,163,163,164,165,165,166,167,167,169,169,170,170,170, 0, 0,
942 : 172,172,172,174,175,175,175,177,177, 0,178,178,178,179,179,179,180,180,181,182,
943 : 183,184,184,186, 0, 0,187,187,187,188,188,189,190, 0, 0, 0,191,191,191,192,
944 : 193,193,194,197,198, 0,199,199,199,200, 0, 0,202,202,202,203,203,203,204,204,
945 : 206,206,207,207,208,208,208,209,210,210,211, 0, 0,212,212,212,213,213,213,214,
946 : 216,217,218, 0, 0,219,219,219,220, 0,222,222,222,223,223, 0, 0,225,225,225,
947 : 226, 0, 0,227,227,227,228,228,231,231,231,232,232,232,233,233,233,234,234,235,
948 : 237,237, 0, 0,238,238,238, 0,239,239,239,241,241,243,243,243,244,245,245,247};
949 :
950 : static const unsigned int ifin1[500]={
951 : 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 2, 3, 3, 3, 0, 0, 4, 5,
952 : 5, 5, 0, 0, 0, 6, 6, 6, 7, 7, 7, 0, 0, 0, 8, 8, 8, 0, 0, 0,
953 : 9, 9, 9, 0, 10, 11, 11, 11, 12, 12, 13, 14, 15, 16, 17, 17, 17, 0, 19, 19,
954 : 21, 22, 22, 22, 24, 24, 24, 0, 0, 0, 0, 25, 25, 27, 27, 27, 0, 28, 28, 30,
955 : 30, 31, 32, 33, 33, 33, 0, 34, 34, 34, 0, 0, 0, 35, 35, 35, 0, 36, 37, 37,
956 : 37, 0, 0, 0, 0, 38, 40, 40, 40, 0, 0, 0, 0, 42, 44, 44, 45, 45, 46, 47,
957 : 48, 48, 49, 49, 49, 50, 51, 51, 51, 0, 0, 0, 52, 52, 53, 53, 56, 56, 57, 58,
958 : 58, 58, 0, 0, 59, 60, 60, 60, 61, 62, 62, 62, 0, 64, 64, 64, 0, 0, 0, 0,
959 : 0, 65, 66, 66, 67, 67, 69, 69, 69, 0, 0, 0, 71, 73, 74, 74, 74, 0, 0, 0,
960 : 0, 0, 0, 75, 76, 77, 77, 77, 0, 0, 0, 78, 78, 79, 79, 79, 83, 83, 84, 84,
961 : 84, 0, 0, 85, 85, 85, 86, 86, 86, 0, 0, 0, 88, 88, 88, 0, 0, 0, 89, 90,
962 : 91, 92, 92, 92, 0, 93, 93, 94, 95, 96, 96, 97, 97, 98, 98, 98, 0, 0, 0, 0,
963 : 99, 99, 99, 0, 0,100,101,101,101,102,102,102, 0,104,104,106,106,107,107,108,
964 : 108,109,109,109,110,110,110, 0, 0, 0,111,111,111, 0, 0, 0,112,113,114,114,
965 : 115,115,116,116,118,120,122,123,124,126,126,127,129,129,129,130,131,131,132,132,
966 : 133,134,137,137,139,139,140,141,141,142,142,142, 0, 0,143,143,143, 0,145,145,
967 : 146,146,148,148,148,149,150,151,152,153,154,154,154,155,156,157,157,158,159,159,
968 : 160,161,162,162,163,164,164,165,166,166,168,168,169,169,169,171,171,171, 0, 0,
969 : 173,174,174,174,176,176,177,177,177, 0,178,178,178,179,179,180,181,182,183,183,
970 : 185,186,186,186, 0, 0,187,187,188,189,190,190,190, 0, 0, 0,191,192,192,193,
971 : 196,197,198,198,198, 0,199,201,201,201, 0, 0,202,202,202,203,203,205,205,206,
972 : 206,207,207,207,208,209,209,210,211,211,211, 0, 0,212,212,212,213,215,216,217,
973 : 218,218,218, 0, 0,219,221,221,221, 0,222,222,224,224,224, 0, 0,225,226,226,
974 : 226, 0, 0,227,227,230,230,230,231,231,231,232,232,232,233,233,234,236,236,237,
975 : 237,237, 0, 0,238,238,238, 0,240,240,242,242,242,243,244,244,246,247,247,247};
976 :
977 :
978 : static const double pi=3.141592654;
979 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
980 : static const double mu=0.3161; // dipole moment in Debyes
981 : static const double mmol=46.0;
982 :
983 : //double q=0.430965924*pow(tt,1.5);
984 83353 : double q=0.430965924*tt*sqrt(tt);
985 : unsigned int vp;
986 : unsigned int ini;
987 : unsigned int ifin;
988 : static const bool allfreqs = false;
989 : static const unsigned int zero = 0;
990 : static const unsigned int nmaxvp = 499;
991 83353 : std::complex<double> lshape;
992 83353 : std::complex<double> lshapeacum;
993 :
994 83353 : vp = vpIndex(nu);
995 :
996 83353 : if(nu>999.9 || (nu>20.0 && vp==0) ){
997 :
998 0 : return std::complex<double> (0.0,0.0);
999 :
1000 : }else{
1001 :
1002 83353 : if(vp>2){
1003 83353 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
1004 : }else{
1005 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
1006 : }
1007 :
1008 : if(allfreqs){ini=0; ifin=247;}
1009 : //if(ini>0){ini=ini-1;}else{ifin=0;}
1010 : //if(ifin>0){ifin=ifin-1;}else{ifin=0;}
1011 :
1012 83353 : if(ifin==0||ifin<ini){
1013 :
1014 0 : return std::complex<double> (0.0,0.0);
1015 :
1016 : }else{
1017 :
1018 300824 : for(unsigned int i=ini; i<ifin+1; i++){
1019 :
1020 217471 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdNO2air[i]*0.001,texpNO2[i]),0.0); // broadening parameter brdHClair[i] in GHz/mb 14/11/2018
1021 :
1022 217471 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
1023 :
1024 217471 : lshapeacum=lshapeacum+lshape;
1025 :
1026 : }
1027 :
1028 83353 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
1029 : // real part: delay in rad*cm^2
1030 :
1031 83353 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
1032 :
1033 :
1034 : }
1035 :
1036 : }
1037 :
1038 : }
1039 :
1040 : //////////////////////// Opacity Source Number: 6 //////////////////////////////
1041 :
1042 83353 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_n2o(double tt, double pp, double nu){
1043 :
1044 : // tt in K, pp in mb, nu in GHz
1045 :
1046 : static const double fre[39]={
1047 : 25.123248, 50.246371, 75.369242,100.491727,125.613711,150.735063,175.855641,200.975344,226.094031,251.211578,
1048 : 276.327844,301.442750,326.556094,351.667813,376.777750,401.885813,426.991813,452.095656,477.197250,502.296438,
1049 : 527.393063,552.487063,577.578250,602.666500,627.751750,652.833813,677.912563,702.987938,728.059750,753.127875,
1050 : 778.192188,803.252625,828.309000,853.361188,878.409063,903.452500,928.491375,953.525563,978.554938};
1051 :
1052 : static const double el[39]={
1053 : 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,
1054 : 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,
1055 : 560.5, 597.8, 636.4, 676.1, 717.1, 759.3, 802.6, 847.2, 893.0};
1056 :
1057 : static const double flin[39]={
1058 : 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,
1059 : 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,
1060 : 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,
1061 : 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};
1062 :
1063 : static const double texpN2O[39] ={
1064 : 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,
1065 : 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};
1066 :
1067 : static const double brdN2Oair[39] ={
1068 : 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,
1069 : 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};
1070 :
1071 :
1072 :
1073 : static const unsigned int ifin1[500]={
1074 : 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,
1075 : 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,
1076 : 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,
1077 : 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,
1078 : 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,
1079 : 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,
1080 : 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,
1081 : 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,
1082 : 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,
1083 : 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,
1084 : 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,
1085 : 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,
1086 : 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,
1087 : 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,
1088 : 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,
1089 : 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,
1090 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39};
1091 :
1092 : static const unsigned int ini1[500]={
1093 : 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,
1094 : 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,
1095 : 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,
1096 : 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,
1097 : 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,
1098 : 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,
1099 : 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,
1100 : 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,
1101 : 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,
1102 : 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,
1103 : 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,
1104 : 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,
1105 : 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,
1106 : 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,
1107 : 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,
1108 : 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,
1109 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39};
1110 :
1111 : static const unsigned int ifin2[500]={
1112 : 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,
1113 : 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,
1114 : 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,
1115 : 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,
1116 : 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,
1117 : 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,
1118 : 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,
1119 : 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,
1120 : 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,
1121 : 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,
1122 : 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,
1123 : 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,
1124 : 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,
1125 : 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,
1126 : 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,
1127 : 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,
1128 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39};
1129 :
1130 : static const unsigned int ini2[500]={
1131 : 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,
1132 : 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,
1133 : 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,
1134 : 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,
1135 : 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,
1136 : 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,
1137 : 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,
1138 : 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,
1139 : 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,
1140 : 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,
1141 : 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,
1142 : 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,
1143 : 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,
1144 : 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,
1145 : 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,
1146 : 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,
1147 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39};
1148 :
1149 : static const unsigned int ifin3[500]={
1150 : 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,
1151 : 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,
1152 : 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,
1153 : 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,
1154 : 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,
1155 : 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,
1156 : 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,
1157 : 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,
1158 : 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,
1159 : 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,
1160 : 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,
1161 : 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,
1162 : 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,
1163 : 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,
1164 : 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,
1165 : 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,
1166 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39};
1167 :
1168 : static const unsigned int ini3[500]={
1169 : 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,
1170 : 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,
1171 : 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,
1172 : 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,
1173 : 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,
1174 : 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,
1175 : 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,
1176 : 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,
1177 : 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,
1178 : 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,
1179 : 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,
1180 : 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,
1181 : 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,
1182 : 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,
1183 : 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,
1184 : 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,
1185 : 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39};
1186 :
1187 :
1188 : static const double pi=3.141592654;
1189 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
1190 : static const double mu=0.161; // dipole moment in Debyes
1191 : static const double mmol=44.0;
1192 :
1193 83353 : double q=1.65873970*tt;
1194 : unsigned int vp;
1195 : unsigned int ini;
1196 : unsigned int ifin;
1197 : static const bool allfreqs = false;
1198 : static const unsigned int zero = 0;
1199 : static const unsigned int nmaxvp = 499;
1200 83353 : std::complex<double> lshape;
1201 83353 : std::complex<double> lshapeacum;
1202 :
1203 83353 : if(nu>999.9){
1204 :
1205 0 : return std::complex<double> (0.0,0.0);
1206 :
1207 : }else{
1208 :
1209 83353 : vp = vpIndex(nu);
1210 :
1211 83353 : if(vp>2){
1212 :
1213 83353 : if(pp<25){
1214 11353 : ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
1215 : }else{
1216 72000 : if(pp<300){ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
1217 : }else{
1218 44850 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
1219 : }
1220 : }
1221 :
1222 : }else{
1223 :
1224 0 : if(pp<25){
1225 0 : ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
1226 : }else{
1227 0 : if(pp<300){ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
1228 : }else{
1229 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
1230 : }
1231 : }
1232 :
1233 : }
1234 : // if(ini>4){ini=ini-3;}else{ini=1;} // NEW PATCH 02 SEP 2016
1235 : // if(ifin<37){ifin=ifin+3;}else{ifin=39;} // NEW PATCH 02 SEP 2016
1236 : // if(ini>0){ini=ini-1;}else{ifin=0;}
1237 : // if(ifin>0){ifin=ifin-1;}else{ifin=0;}
1238 :
1239 :
1240 : if(allfreqs){ini=0; ifin=38;}
1241 :
1242 :
1243 83353 : if(ifin==0||ifin<ini){
1244 :
1245 0 : return std::complex<double> (0.0,0.0);
1246 :
1247 : }else{
1248 :
1249 182584 : for(unsigned int i=ini; i<ifin+1; i++){
1250 :
1251 99231 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdN2Oair[i]*0.001,texpN2O[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
1252 : // lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
1253 :
1254 99231 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
1255 :
1256 99231 : lshapeacum=lshapeacum+lshape;
1257 :
1258 : }
1259 :
1260 83353 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
1261 : // real part: delay in rad*cm^2
1262 :
1263 83353 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
1264 :
1265 :
1266 : }
1267 :
1268 : }
1269 :
1270 : }
1271 :
1272 : //////////////////////// Opacity Source Number: 5 //////////////////////////////
1273 :
1274 83353 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_co(double tt, double pp, double nu){
1275 :
1276 : static const double fre[8] = {115.271203,230.538000,345.796000,461.04075,576.267938,691.4730762,806.651688,921.799563};
1277 : 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};
1278 : static const double el[8] = {0.0, 5.5, 16.6, 33.2, 55.3,83.0, 116.2, 154.9};
1279 :
1280 :
1281 : static const double texpCO[8] ={
1282 : 0.76,0.75,0.74,0.74,0.74,0.74,0.75,0.75};
1283 :
1284 : static const double brdCOair[8] ={
1285 : 2.3587,2.2137,2.0983,2.0006,1.9236,1.8615,1.8112,1.7727};
1286 :
1287 : static const unsigned int ifin1[500] ={
1288 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1289 : 1, 1, 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,
1290 : 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,
1291 : 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,
1292 : 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,
1293 : 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,
1294 : 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,
1295 : 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,
1296 : 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,
1297 : 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,
1298 : 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,
1299 : 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,
1300 : 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,
1301 : 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,
1302 : 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,
1303 : 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,
1304 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
1305 :
1306 : static const unsigned int ini1[500]={
1307 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1308 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1309 : 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,
1310 : 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,
1311 : 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,
1312 : 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,
1313 : 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,
1314 : 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,
1315 : 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,
1316 : 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,
1317 : 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,
1318 : 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,
1319 : 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,
1320 : 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,
1321 : 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,
1322 : 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,
1323 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
1324 :
1325 :
1326 : static const unsigned int ifin2[500]={
1327 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1328 : 1, 1, 1, 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,
1329 : 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,
1330 : 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,
1331 : 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,
1332 : 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,
1333 : 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,
1334 : 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,
1335 : 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,
1336 : 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,
1337 : 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,
1338 : 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,
1339 : 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,
1340 : 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,
1341 : 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,
1342 : 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,
1343 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
1344 :
1345 : static const unsigned int ini2[500]={
1346 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1347 : 1, 1, 1, 1, 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,
1348 : 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,
1349 : 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,
1350 : 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,
1351 : 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,
1352 : 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,
1353 : 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,
1354 : 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,
1355 : 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,
1356 : 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,
1357 : 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,
1358 : 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,
1359 : 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,
1360 : 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,
1361 : 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,
1362 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
1363 :
1364 : static const unsigned int ifin3[500]={
1365 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1366 : 1, 1, 1, 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,
1367 : 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,
1368 : 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,
1369 : 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,
1370 : 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,
1371 : 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,
1372 : 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,
1373 : 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,
1374 : 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,
1375 : 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,
1376 : 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,
1377 : 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,
1378 : 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,
1379 : 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,
1380 : 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,
1381 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
1382 :
1383 : static const unsigned int ini3[500]={
1384 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1385 : 1, 1, 1, 1, 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,
1386 : 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,
1387 : 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,
1388 : 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,
1389 : 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,
1390 : 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,
1391 : 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,
1392 : 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,
1393 : 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,
1394 : 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,
1395 : 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,
1396 : 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,
1397 : 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,
1398 : 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,
1399 : 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,
1400 : 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8};
1401 :
1402 :
1403 : static const double pi=3.141592654;
1404 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
1405 : static const double mu=0.112; // dipole moment in Debyes
1406 : static const double mmol=28.0;
1407 :
1408 83353 : double q=0.3615187262*tt;
1409 : unsigned int vp;
1410 : unsigned int ini;
1411 : unsigned int ifin;
1412 : static const bool allfreqs = false;
1413 : static const unsigned int zero = 0;
1414 : static const unsigned int nmaxvp = 499;
1415 83353 : std::complex<double> lshape;
1416 83353 : std::complex<double> lshapeacum;
1417 :
1418 83353 : if(nu>999.9){
1419 :
1420 0 : return std::complex<double> (0.0,0.0);
1421 :
1422 : }else{
1423 :
1424 83353 : vp = vpIndex(nu);
1425 :
1426 83353 : if(vp>2){
1427 :
1428 83353 : if(pp<25){
1429 11353 : ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
1430 : }else{
1431 72000 : if(pp<300){ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
1432 : }else{
1433 44850 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
1434 : }
1435 : }
1436 :
1437 : }else{
1438 :
1439 0 : if(pp<25){
1440 0 : ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
1441 : }else{
1442 0 : if(pp<300){ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
1443 : }else{
1444 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
1445 : }
1446 : }
1447 :
1448 : }
1449 : //if(ini>0){ini=ini-1;}else{ifin=0;}
1450 : //if(ifin>0){ifin=ifin-1;}else{ifin=0;}
1451 : if(allfreqs){ini=0; ifin=7;}
1452 :
1453 83353 : if(ifin==0||ifin<ini){
1454 :
1455 65020 : return std::complex<double> (0.0,0.0);
1456 :
1457 : }else{
1458 :
1459 37541 : for(unsigned int i=ini; i<ifin+1; i++){
1460 :
1461 19208 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdCOair[i]*0.001,texpCO[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
1462 : //lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,0.0025,0.76),0.0);
1463 :
1464 19208 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
1465 :
1466 19208 : lshapeacum=lshapeacum+lshape;
1467 :
1468 : }
1469 :
1470 18333 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
1471 : // real part: delay in rad*cm^2
1472 :
1473 18333 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
1474 :
1475 :
1476 : }
1477 :
1478 : }
1479 :
1480 : }
1481 :
1482 : //////////////////////// Opacity Source Number: 9 //////////////////////////////
1483 :
1484 83353 : std::complex<double> RefractiveIndex::mkRefractivity_cnth2o(double tt, double pp, double eh2o, double nu){
1485 :
1486 : // cnth2o, empirical
1487 :
1488 :
1489 83353 : double t300=300/tt;
1490 83353 : double eee=eh2o/1013.0;
1491 83353 : double ppp=(pp-eh2o)/1013.0;
1492 :
1493 : double cnth2o;
1494 :
1495 83353 : if(nu<900){
1496 83353 : cnth2o=0.0315*pow(nu/225,2)*(eee*ppp)*pow(t300,3);
1497 : }else{
1498 0 : cnth2o=0.0315*pow(nu/225,1.8)*(eee*ppp)*pow(t300,3)-
1499 0 : 0.0315*pow((double)(900/225),1.8)*(eee*ppp)*pow(t300,3)+
1500 0 : 0.0315*pow((double)(900/225),2)*(eee*ppp)*pow(t300,3);
1501 : }
1502 :
1503 83353 : 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
1504 :
1505 : // double delayh2o=eh2o*pow(t300,2.5)*.791e-6*pow(nu,2)*nu*1.2008e-3/57.29578; //VERSION DE PRUEBA 16/12/2015
1506 :
1507 : // return std::complex<double> (0.0,0.0); esto para pruebas 20/NOV/2023. Comentar esta lÃnea una vez finalizadas las pruebas
1508 83353 : return std::complex<double> (delayh2o,cnth2o); // ( rad m^-1 , m^-1 )
1509 :
1510 : }
1511 :
1512 :
1513 : //////////////////////// Opacity Source Number: 10 /////////////////////////////
1514 :
1515 83353 : std::complex<double> RefractiveIndex::mkRefractivity_cntdry(double tt, double pp, double eh2o, double nu){
1516 :
1517 : // cntdry, empirical
1518 :
1519 :
1520 83353 : double t300=300/tt;
1521 83353 : double ppp=(pp-eh2o);
1522 83353 : double gamma0=5.6E-04*pp*pow(t300,0.8);
1523 :
1524 :
1525 83353 : double nsec1=6.14e-5*ppp*pow(t300,2)*nu*gamma0/(pow(nu,2)+pow(gamma0,2)); // Non-resonant O2 spectrum, from Liebe 1993
1526 : //double nsec2=1.4E-12*pow(ppp,2)*pow(t300,3.5)*nu; //(1+1.9e-5*pow(nu,1.5));
1527 83353 : double nsec2=1.4E-12*pow(ppp,2)*pow(t300,3.5)*nu; //(1+1.9e-5*nu*sqrt(nu));
1528 83353 : double cntair=(nsec1+0.85633*nsec2)*nu*0.1820/4.34294482e3; // From fitting FTS data, JQSRT, Pardo et al. 2001
1529 : // Factor 1/4.34294482e3 is used to pass for db/km to m^-1
1530 :
1531 : //double cntair=2.60999814e-6*pow((ppp/1013),2)*pow(t300,3.5)*pow((nu/225),2); // nsec2 only (N2-N2, N2-O2, O2-O2 CIA)
1532 :
1533 83353 : double delaydry=(0.2588*ppp*t300
1534 83353 : -6.14e-5*ppp*pow(t300,2)*pow(nu,2)/(pow(nu,2)+pow(gamma0,2)) // From Liebe et al. 1993
1535 83353 : )*nu*1.2008e-3/57.29578;
1536 :
1537 83353 : return std::complex<double> (delaydry,cntair); // ( rad m^-1 , m^-1 )
1538 :
1539 : }
1540 :
1541 :
1542 : //////////////////////// Opacity Source Number: 12 /////////////////////////////
1543 :
1544 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh16o_v2(double tt, double pp, double eh2o, double nu){
1545 :
1546 : static const double fre[335]={
1547 : 67.790245, 96.738518, 120.066833, 209.379730, 232.941650, 272.749756, 273.308319, 294.911926, 298.692719, 336.318604,
1548 : 424.615814, 429.827271, 432.365814, 439.689758, 462.861206, 498.342834, 546.492249, 577.889099, 593.817871, 594.784973,
1549 : 657.968628, 774.061768, 859.918091, 899.371277, 902.622192, 902.633484, 923.067688, 925.892395, 968.111328, 1077.804199,
1550 : 1132.792358, 1141.902466, 1148.058960, 1195.768677, 1205.750488,1214.630005, 1214.944824, 1222.725098, 1406.612549, 1421.820068,
1551 : 1428.340332, 1473.516479, 1494.088989, 1591.912231, 1637.113037,1644.029663, 1647.032227, 1699.797241, 1739.387451, 1740.511841,
1552 : 1753.855347, 1835.131104, 1849.346802, 1862.525635, 1864.789307,1894.290527, 1933.400635, 1946.366089, 1956.037354, 1991.469849,
1553 : 2086.665283, 2091.183838, 2106.667236, 2140.248047, 2218.246338,2227.581299, 2233.940186, 2247.307861, 2294.118164, 2337.540771,
1554 : 2372.200684, 2401.381836, 2484.194580, 2488.897461, 2501.917480,2503.204346, 2541.946533, 2561.416992, 2585.798584, 2590.757080,
1555 : 2646.906982, 2689.032715, 2742.224365, 2783.789062, 2808.305664,2820.776855, 2842.404785, 2852.419434, 2902.184814, 2973.164551,
1556 : 2998.129883, 3024.840576, 3036.465576, 3037.561279, 3051.924316,3065.634766, 3112.744141, 3132.590088, 3142.544922, 3159.035889,
1557 : 3161.792969, 3216.594727, 3253.378174, 3275.678467, 3310.530273,3328.204102, 3348.107178, 3396.036621, 3425.261475, 3474.651367,
1558 : 3495.020508, 3553.504395, 3566.186523, 3601.603516, 3624.354004,3631.654297, 3638.812988, 3639.941162, 3656.975342, 3661.215088,
1559 : 3708.865479, 3719.691895, 3741.291260, 3756.302002, 3781.373779,3797.620850, 3805.620850, 3870.276611, 3883.985840, 3907.251221,
1560 : 4007.915527, 4032.301270, 4048.079346, 4065.159668, 4120.685547,4133.917969, 4176.322754, 4196.534668, 4253.582520, 4265.271973,
1561 : 4265.930664, 4272.971680, 4450.476074, 4450.689453, 4457.209961,4520.783691, 4522.206543, 4550.888672, 4557.868164, 4574.724121,
1562 : 4583.926270, 4608.368164, 4625.347656, 4630.292480, 4631.189941,4632.965332, 4645.110352, 4655.048828, 4673.143555, 4681.702148,
1563 : 4688.050781, 4707.438477, 4715.640625, 4721.811035, 4758.667480,4809.098145, 4890.160645, 4915.819824, 4919.379883, 4956.141602,
1564 : 4991.813965, 5045.965820, 5085.471680, 5106.055664, 5151.291992,5164.418457, 5197.080566, 5234.995605, 5243.801758, 5264.706055,
1565 : 5270.681152, 5326.873535, 5343.042969, 5347.410645, 5348.099121,5364.738770, 5370.276367, 5397.082520, 5427.933105, 5430.001465,
1566 : 5430.668945, 5435.439941, 5439.126465, 5441.707031, 5441.996582,5442.362305, 5452.062012, 5483.936523, 5498.748047, 5550.827148,
1567 : 5558.973633, 5560.731934, 5602.951660, 5643.037598, 5760.064453,5777.882324, 5781.895508, 5783.031738, 5783.865723, 5822.762207,
1568 : 5937.895508, 5973.528809, 5974.892090, 6002.918457, 6046.645996,6101.024414, 6129.086914, 6140.286621, 6140.372559, 6159.938965,
1569 : 6160.485352, 6166.656738, 6173.993652, 6176.440918, 6178.348145,6179.314941, 6186.974609, 6192.049805, 6193.727051, 6318.125977,
1570 : 6319.972656, 6328.667969, 6372.734863, 6486.106445, 6490.986816,6505.577148, 6527.715820, 6592.956543, 6611.653809, 6655.116699,
1571 : 6660.624023, 6669.819336, 6691.077637, 6764.869629, 6783.576172,6783.586914, 6814.936523, 6815.015137, 6845.112305, 6845.504395,
1572 : 6856.315918, 6857.177734, 6857.993652, 6872.185059, 6873.719238,6936.190918, 6966.458496, 6993.731445, 7001.683594, 7122.857910,
1573 : 7240.887207, 7250.316406, 7260.501465, 7269.827148, 7312.422852,7352.959961, 7363.332031, 7368.429199, 7392.671875, 7393.081055,
1574 : 7406.447266, 7432.064941, 7432.066406, 7472.024414, 7472.035645,7485.548828, 7514.537598, 7530.646973, 7624.821289, 7747.829102,
1575 : 7884.774902, 7889.549805, 7927.257324, 7927.455078, 7929.243652,7941.633789, 8027.130859, 8031.218262, 8041.744141, 8177.214844,
1576 : 8181.974609, 8289.856445, 8290.503906, 8323.575195, 8455.500977,8460.076172, 8460.172852, 8526.576172, 8529.013672, 8538.893555,
1577 : 8564.284180, 8571.694336, 8601.731445, 8645.142578, 8759.967773,8991.116211, 8991.165039, 9006.700195, 9023.595703, 9029.281250,
1578 : 9041.551758, 9048.492188, 9098.749023, 9102.541016, 9111.836914,9167.686523, 9168.944336, 9233.576172, 9262.232422, 9262.603516,
1579 : 9369.607422, 9520.371094, 9520.396484, 9589.912109, 9631.456055,9633.417969, 9663.334961, 9729.836914, 9739.676758, 9748.269531,
1580 : 9766.947266, 9828.917969, 9828.990234, 9890.300781, 9945.291992};
1581 :
1582 : static const double flin[335]={
1583 : .1440E+00, .1170E+00, .1090E+00, .1000E+00, .1000E+00, .7910E-01, .7910E-01, .8790E-01, .8790E-01, .7650E-01,
1584 : .2300E+00, .2110E+00, .2110E+00, .2310E+00, .1560E+00, .2550E+00, .2760E+00, .2570E+00, .1860E+00, .2820E+00,
1585 : .1500E+01, .9220E-01, .2120E+01, .7260E+00, .2820E+00, .4930E-01, .3540E+00, .3000E+00, .2640E+00, .3390E+00,
1586 : .3800E+00, .3800E+00, .4080E+00, .4090E+00, .1000E+01, .2310E+01, .4390E+00, .4500E+00, .2450E+01, .3600E+01,
1587 : .4500E+00, .4100E+00, .1210E+01, .4340E+01, .7090E-01, .1670E+01, .3370E-01, .3300E+00, .2210E+01, .5750E+00,
1588 : .1500E+01, .5740E+00, .7680E+00, .5750E+00, .6050E+00, .6260E+00, .5300E+00, .4540E+01, .8330E+00, .6120E+00,
1589 : .4460E+00, .6150E+00, .5820E+01, .4570E+01, .5590E+00, .1310E+01, .2140E+01, .6610E+01, .3240E+01, .2740E+01,
1590 : .6700E+00, .2070E+01, .4380E+01, .2070E+01, .2500E-01, .7890E+00, .7830E+00, .8080E+00, .6820E+01, .1610E+01,
1591 : .1060E+01, .2960E+01, .7990E+01, .1490E+01, .1020E+01, .6660E+01, .8860E+01, .8320E+00, .1830E+01, .3820E+01,
1592 : .8920E+00, .5240E+01, .8300E+00, .1780E+01, .1500E+01, .2480E+01, .6620E+01, .2000E+01, .9130E+01, .3910E+01,
1593 : .4150E+01, .9990E+00, .1270E+01, .3990E+01, .2990E+01, .9050E+00, .1010E+02, .2010E-01, .9270E+00, .8660E+01,
1594 : .2950E+01, .1880E+01, .4880E+01, .1670E+01, .1330E+01, .8940E+01, .2010E+01, .3350E+01, .4910E+01, .2440E+01,
1595 : .1070E+01, .7190E+01, .1060E+01, .1980E+01, .6320E+01, .2810E+01, .1070E+01, .1980E+01, .3570E+01, .4010E+01,
1596 : .5880E+01, .4220E+01, .3590E+01, .1960E+01, .1930E+01, .5900E+01, .5920E+01, .1240E+01, .4750E+01, .9950E+00,
1597 : .4800E+01, .1710E-01, .3850E+01, .3530E+01, .2400E+01, .6100E+01, .3740E+01, .5150E+01, .2950E+01, .1250E+01,
1598 : .1980E+01, .2050E+01, .1080E+01, .1080E+01, .2040E+01, .2930E+01, .3780E+01, .3960E+01, .2090E+01, .4580E+01,
1599 : .6920E+01, .6920E+01, .7710E+01, .1970E+01, .5320E+01, .3020E+01, .5970E+01, .2410E+01, .5430E+01, .2380E+01,
1600 : .6610E+01, .3840E+01, .6520E+01, .1510E-01, .4640E+01, .3840E+01, .5650E+01, .7920E+01, .7920E+01, .5990E+01,
1601 : .2000E+01, .4760E+01, .1990E+01, .6940E+01, .5620E+01, .1820E+01, .3960E+01, .3880E+01, .3000E+01, .1100E+01,
1602 : .1100E+01, .2080E+01, .2080E+01, .3870E+01, .4720E+01, .3000E+01, .5540E+01, .6320E+01, .6930E+00, .7050E+01,
1603 : .4790E+01, .2350E+01, .3900E+01, .3070E+01, .2230E+01, .8920E+01, .8920E+01, .1680E+01, .5720E+01, .5740E+01,
1604 : .2020E+01, .5960E+01, .2010E+01, .5790E+01, .3980E+01, .2360E+01, .5650E+01, .1120E+01, .1120E+01, .2120E+01,
1605 : .2120E+01, .4800E+01, .3060E+01, .3050E+01, .3940E+01, .3950E+01, .3940E+01, .4800E+01, .5630E+01, .9920E+01,
1606 : .9920E+01, .5830E+01, .6760E+01, .6800E+01, .2610E+01, .4190E+01, .2470E+01, .2040E+01, .2030E+01, .3410E+01,
1607 : .3400E+01, .1980E+01, .4010E+01, .3990E+01, .1130E+01, .1130E+01, .2160E+01, .2160E+01, .3110E+01, .3110E+01,
1608 : .1090E+02, .1090E+02, .2720E+01, .4010E+01, .4010E+01, .7780E+01, .4570E+00, .7800E+01, .2280E+01, .3150E+01,
1609 : .2060E+01, .2050E+01, .5340E+01, .1030E-01, .4040E+01, .4030E+01, .3780E+01, .3310E+01, .1190E+02, .1190E+02,
1610 : .3300E+01, .1150E+01, .1150E+01, .2200E+01, .2200E+01, .8790E+01, .8800E+01, .3610E+01, .4600E+01, .1620E+01,
1611 : .2080E+01, .2080E+01, .1290E+02, .1290E+02, .6450E+01, .5560E+01, .9780E+01, .3230E+01, .9790E+01, .3170E+01,
1612 : .4200E-01, .4410E+01, .4410E+01, .6570E+01, .4750E+01, .1390E+02, .1390E+02, .2100E+01, .2100E+01, .7530E+01,
1613 : .1080E+02, .1080E+02, .3160E+01, .3070E+00, .7590E+01, .1490E+02, .1490E+02, .2970E+01, .4300E+01, .4300E+01,
1614 : .1220E+01, .3130E+01, .1180E+02, .1180E+02, .8570E+01, .2120E+01, .2120E+01, .8600E+01, .8570E-01, .5930E+01,
1615 : .3200E+01, .1590E+02, .1590E+02, .3430E+01, .1270E+02, .1270E+02, .9590E+01, .9610E+01, .4210E+01, .3840E+01,
1616 : .4210E+01, .5410E+01, .5410E+01, .4470E+01, .2650E+01};
1617 :
1618 : static const double el[335]={
1619 : 323.147, 764.957, 208.238, 1157.451, 1156.320, 2167.610, 2167.583, 1625.146, 1624.965, 644.659,
1620 : 1886.021, 2463.271, 2463.250, 1885.998, 449.986, 1378.683, 591.672, 1378.666, 1548.301, 945.555,
1621 : 34.222, 2218.351, 101.030, 57.837, 212.281, 843.680, 770.899, 945.264, 1249.138, 989.773,
1622 : 2780.334, 2780.397, 2167.602, 2167.612, .033, 197.307, 1625.091, 1157.518, 255.693, 403.963,
1623 : 1624.950, 590.082, 142.295, 584.400, 2578.130, 118.399, 1068.954, 2793.122, 320.422, 1406.368,
1624 : 34.228, 3131.727, 315.145, 3131.712, 2484.004, 1907.088, 1156.311, 793.589, 118.424, 2483.924,
1625 : 2387.155, 1693.538, 1147.995, 886.984, 2020.240, 208.292, 101.087, 1440.446, 660.799, 208.315,
1626 : 1906.352, 469.151, 1028.777, 472.151, 1320.426, 2224.964, 765.005, 2835.171, 1760.800, 326.462,
1627 : 323.168, 197.346, 2255.493, 450.798, 315.222, 1884.823, 2656.685, 2834.705, 450.816, 326.410,
1628 : 2579.511, 1548.330, 1402.572, 472.119, 65.830, 617.872, 2106.111, 643.258, 3084.881, 320.489,
1629 : 1288.757, 3221.127, 57.861, 1249.191, 815.219, 2971.670, 3711.515, 1597.715, 2222.712, 3235.642,
1630 : 989.764, 644.658, 472.049, 142.349, 974.057, 3537.207, 770.863, 1041.509, 469.092, 617.888,
1631 : 591.601, 2793.082, 590.045, 765.025, 2475.221, 974.142, 3219.758, 843.055, 1216.197, 1573.180,
1632 : 2387.149, 1489.879, 1295.622, 255.702, 843.737, 644.602, 643.267, 1683.497, 1793.859, 118.498,
1633 : 2020.266, 1901.028, 1693.509, 815.199, 403.986, 2867.835, 1576.867, 2126.690, 1406.355, 2573.547,
1634 : 1068.705, 1157.532, 945.517, 945.280, 1156.336, 1402.551, 1683.468, 1882.692, 1216.223, 1998.012,
1635 : 843.708, 843.077, 3872.183, 1068.987, 2345.118, 584.398, 2723.408, 214.076, 2487.305, 212.341,
1636 : 3402.429, 1884.530, 3131.434, 2230.146, 1041.475, 793.645, 2971.678, 1068.958, 1068.736, 3284.532,
1637 : 1320.245, 2579.549, 1320.373, 3567.763, 2874.730, 1998.031, 2217.466, 2224.979, 1907.099, 1378.699,
1638 : 1378.667, 1625.138, 1624.961, 2222.738, 2573.524, 1906.406, 2958.141, 3375.511, 208.300, 3824.401,
1639 : 1028.810, 323.225, 2218.399, 1489.875, 315.159, 1320.404, 1320.311, 2958.156, 1295.616, 3288.350,
1640 : 1597.724, 3725.614, 1597.749, 1288.703, 2577.705, 472.195, 3642.048, 1886.011, 1886.007, 2167.668,
1641 : 2167.641, 3221.045, 2484.093, 2483.976, 2835.184, 2578.138, 2834.770, 3219.826, 3638.646, 1597.776,
1642 : 1597.687, 3727.670, 1576.855, 1573.214, 2345.180, 1793.880, 660.817, 1900.986, 1901.089, 450.203,
1643 : 449.938, 450.797, 2963.377, 2963.635, 2463.337, 2463.337, 2780.332, 2780.329, 3131.684, 3131.665,
1644 : 1901.047, 1901.005, 887.066, 3517.085, 3517.011, 1884.513, 326.461, 1882.751, 3375.470, 1148.055,
1645 : 2230.090, 2230.137, 2126.749, 101.101, 3374.657, 3374.811, 1440.514, 591.669, 2230.105, 2230.086,
1646 : 590.044, 3107.515, 3107.515, 3460.297, 3460.296, 2218.348, 2217.457, 2723.384, 1760.764, 617.860,
1647 : 2584.988, 2584.959, 2584.949, 2584.939, 2487.354, 2106.159, 2578.156, 770.960, 2577.655, 765.053,
1648 : 197.425, 769.647, 769.616, 2475.229, 3131.397, 2965.478, 2965.473, 2965.486, 2965.469, 2874.695,
1649 : 2963.677, 2963.421, 989.779, 472.096, 2867.885, 3371.492, 3371.489, 974.144, 945.533, 945.360,
1650 : 815.171, 1249.138, 3374.826, 3374.644, 3288.298, 3371.518, 3371.457, 3284.555, 320.480, 3567.762,
1651 : 1548.327, 3803.091, 3803.090, 1884.854, 3811.560, 3811.566, 3727.730, 3725.638, 1157.466, 2255.554,
1652 : 1156.357, 1167.583, 1167.580, 2656.737, 1216.198};
1653 :
1654 : static const double broadening[335][4]={
1655 : {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},
1656 : {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},
1657 : {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},
1658 : {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},
1659 : {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},
1660 : {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},
1661 : {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},
1662 : {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},
1663 : {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},
1664 : {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},
1665 : {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},
1666 : {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},
1667 : {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},
1668 : {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},
1669 : {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},
1670 : {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},
1671 : {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},
1672 : {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},
1673 : {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},
1674 : {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},
1675 : {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},
1676 : {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},
1677 : {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},
1678 : {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},
1679 : {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},
1680 : {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},
1681 : {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},
1682 : {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},
1683 : {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},
1684 : {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},
1685 : { .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},
1686 : { .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},
1687 : {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},
1688 : {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},
1689 : {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},
1690 : { .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},
1691 : {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},
1692 : {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},
1693 : {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},
1694 : {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},
1695 : {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},
1696 : {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},
1697 : {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},
1698 : {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},
1699 : { .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},
1700 : {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},
1701 : { .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},
1702 : { .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},
1703 : {.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},
1704 : {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},
1705 : { .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},
1706 : { .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},
1707 : { .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},
1708 : { 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},
1709 : { .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},
1710 : { 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} };
1711 :
1712 : static const double gl[335]={
1713 : 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,
1714 : 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,
1715 : 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,
1716 : 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,
1717 : 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,
1718 : 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,
1719 : 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,
1720 : 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,
1721 : 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,
1722 : 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,
1723 : 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,
1724 : 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,
1725 : 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,
1726 : 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,
1727 : 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,
1728 : 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,
1729 : 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};
1730 :
1731 :
1732 : static const unsigned int ifin1[800]={
1733 : 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,
1734 : 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,
1735 : 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,
1736 : 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,
1737 : 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,
1738 : 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,
1739 : 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,
1740 : 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,
1741 : 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,
1742 : 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,
1743 : 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,
1744 : 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,
1745 : 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,
1746 : 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,
1747 : 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,
1748 : 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,
1749 : 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,
1750 : 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,
1751 : 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,
1752 : 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,
1753 : 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,
1754 : 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,
1755 : 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,
1756 : 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,
1757 : 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,
1758 : 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,
1759 : 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45};
1760 :
1761 : static const unsigned int ini1[800]={
1762 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1763 : 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,
1764 : 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,
1765 : 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,
1766 : 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,
1767 : 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,
1768 : 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,
1769 : 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,
1770 : 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,
1771 : 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,
1772 : 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,
1773 : 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,
1774 : 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,
1775 : 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,
1776 : 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,
1777 : 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,
1778 : 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,
1779 : 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,
1780 : 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,
1781 : 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,
1782 : 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,
1783 : 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,
1784 : 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,
1785 : 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,
1786 : 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,
1787 : 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,
1788 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44};
1789 :
1790 : static const unsigned int ifin2[800]={
1791 : 1, 1, 1, 1, 1, 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,
1792 : 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,
1793 : 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,
1794 : 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,
1795 : 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,
1796 : 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,
1797 : 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,
1798 : 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,
1799 : 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,
1800 : 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,
1801 : 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,
1802 : 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,
1803 : 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,
1804 : 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,
1805 : 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,
1806 : 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,
1807 : 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,
1808 : 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,
1809 : 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,
1810 : 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,
1811 : 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,
1812 : 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,
1813 : 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,
1814 : 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,
1815 : 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,
1816 : 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,
1817 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45};
1818 :
1819 : static const unsigned int ini2[800]={
1820 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1821 : 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,
1822 : 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,
1823 : 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,
1824 : 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,
1825 : 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,
1826 : 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,
1827 : 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,
1828 : 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,
1829 : 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,
1830 : 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,
1831 : 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,
1832 : 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,
1833 : 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,
1834 : 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,
1835 : 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,
1836 : 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,
1837 : 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,
1838 : 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,
1839 : 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,
1840 : 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,
1841 : 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,
1842 : 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,
1843 : 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,
1844 : 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,
1845 : 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,
1846 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44};
1847 :
1848 : static const unsigned int ifin3[800]={
1849 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1850 : 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,
1851 : 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,
1852 : 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,
1853 : 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,
1854 : 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,
1855 : 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,
1856 : 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,
1857 : 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,
1858 : 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,
1859 : 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,
1860 : 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,
1861 : 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,
1862 : 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,
1863 : 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,
1864 : 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,
1865 : 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,
1866 : 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,
1867 : 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,
1868 : 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,
1869 : 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,
1870 : 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,
1871 : 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,
1872 : 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,
1873 : 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,
1874 : 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,
1875 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45};
1876 :
1877 : static const unsigned int ini3[800]={
1878 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1879 : 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,
1880 : 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,
1881 : 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,
1882 : 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,
1883 : 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,
1884 : 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,
1885 : 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,
1886 : 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,
1887 : 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,
1888 : 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,
1889 : 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,
1890 : 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,
1891 : 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,
1892 : 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,
1893 : 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,
1894 : 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,
1895 : 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,
1896 : 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,
1897 : 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,
1898 : 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,
1899 : 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,
1900 : 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,
1901 : 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,
1902 : 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,
1903 : 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,
1904 : 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45};
1905 :
1906 :
1907 :
1908 : static const double pi=3.141592654;
1909 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
1910 : static const double mu=1.82332; // dipole moment in Debyes
1911 :
1912 : //double q=0.034256116*pow(tt,1.5); // Q(300 K)=178.120 JPL Line Catalog
1913 166706 : double q=0.034256116*tt*sqrt(tt); // Q(300 K)=178.120 JPL Line Catalog
1914 : unsigned int vp;
1915 : unsigned int ini;
1916 : unsigned int ifin;
1917 : static const bool allfreqs = false;
1918 : static const unsigned int zero = 0;
1919 : static const unsigned int nmaxvp = 799;
1920 :
1921 166706 : std::complex<double> lshape;
1922 166706 : std::complex<double> lshapeacum;
1923 :
1924 :
1925 166706 : if(nu>999.9){
1926 :
1927 0 : return std::complex<double> (0.0,0.0);
1928 :
1929 : }else{
1930 :
1931 166706 : vp = vpIndex(nu);
1932 :
1933 166706 : if(vp>60){
1934 36666 : if(pp<25){
1935 8186 : ini=ini3[max((vp-60),zero)]-1; ifin=ifin3[min((vp+60),nmaxvp)]-1;
1936 : }else{
1937 28480 : if(pp<300){ini=ini2[max((vp-60),zero)]-1; ifin=ifin2[min((vp+60),nmaxvp)]-1;
1938 : }else{
1939 19580 : ini=ini1[max((vp-60),zero)]-1; ifin=ifin1[min((vp+60),nmaxvp)]-1;
1940 : }
1941 : }
1942 : }else{
1943 130040 : if(pp<25){
1944 14520 : ini=0; ifin=ifin3[min((vp+60),nmaxvp)]-1;
1945 : }else{
1946 115520 : if(pp<300){ini=0; ifin=ifin2[min((vp+60),nmaxvp)]-1;
1947 : }else{
1948 70120 : ini=0; ifin=ifin1[min((vp+60),nmaxvp)]-1;
1949 : }
1950 : }
1951 : }
1952 :
1953 : //if(ini>0){ini=ini-1;}else{ifin=0;}
1954 : //if(ifin>0){ifin=ifin-1;}else{ifin=0;}
1955 : if(allfreqs){ini=0; ifin=334;}
1956 :
1957 :
1958 166706 : if(ifin==0||ifin<ini){
1959 :
1960 0 : return std::complex<double> (0.0,0.0);
1961 :
1962 : }else{
1963 :
1964 1267854 : for(unsigned int i=ini; i<ifin+1; i++){
1965 :
1966 1101148 : lshape=lineshape(nu,fre[i],linebroadening_water(fre[i],tt,pp,eh2o,broadening[i][0],broadening[i][1],broadening[i][2],broadening[i][3]),0.0);
1967 :
1968 1101148 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
1969 :
1970 1101148 : lshapeacum=lshapeacum+lshape;
1971 :
1972 : }
1973 :
1974 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
1975 : // real part: delay in rad*cm^2
1976 :
1977 166706 : return lshapeacum*1e-4; // to give it in SI units (m^2) // ( rad m^2 , m^2 )
1978 :
1979 : }
1980 :
1981 : }
1982 :
1983 : }
1984 :
1985 :
1986 : //////////////////////// Opacity Source Number: 11 /////////////////////////////
1987 :
1988 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh16o(double tt, double pp, double eh2o, double nu){
1989 :
1990 : static const double fre[522] = {
1991 : 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,
1992 : 556.936071, 620.701223, 752.033047, 906.190476, 916.171369, 970.314874, 987.926855, 1001.293579, 1074.447510, 1074.450439, 1097.364624, 1113.343506,
1993 : 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,
1994 : 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,
1995 : 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,
1996 : 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,
1997 : 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,
1998 : 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,
1999 : 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,
2000 : 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,
2001 : 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,
2002 : 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,
2003 : 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,
2004 : 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,
2005 : 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,
2006 : 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,
2007 : 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,
2008 : 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,
2009 : 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,
2010 : 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,
2011 : 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,
2012 : 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,
2013 : 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,
2014 : 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,
2015 : 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,
2016 : 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,
2017 : 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,
2018 : 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,
2019 : 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,
2020 : 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,
2021 : 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,
2022 : 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,
2023 : 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,
2024 : 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,
2025 : 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};
2026 :
2027 :
2028 : static const double flin[522]= {
2029 : .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,
2030 : .15000E+01, .12200E+00, .20700E+01, .13200E+00, .16300E+00, .26400E+00, .75600E+00, .8270E-01, .6070E-01, .6070E-01, .2180E+01, .1000E+01,
2031 : .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,
2032 : .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,
2033 : .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,
2034 : .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,
2035 : .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,
2036 : .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,
2037 : .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,
2038 : .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,
2039 : .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,
2040 : .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,
2041 : .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,
2042 : .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,
2043 : .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,
2044 : .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,
2045 : .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,
2046 : .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,
2047 : .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,
2048 : .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,
2049 : .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,
2050 : .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,
2051 : .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,
2052 : .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,
2053 : .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,
2054 : .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,
2055 : .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,
2056 : .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,
2057 : .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,
2058 : .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,
2059 : .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,
2060 : .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,
2061 : .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,
2062 : .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,
2063 : .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};
2064 :
2065 : static const double el[522] = {
2066 : 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,
2067 : 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,
2068 : 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,
2069 : 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,
2070 : 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,
2071 : 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,
2072 : 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,
2073 : 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,
2074 : 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,
2075 : 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,
2076 : 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,
2077 : 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,
2078 : 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,
2079 : 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,
2080 : 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,
2081 : 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,
2082 : 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,
2083 : 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,
2084 : 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,
2085 : 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,
2086 : 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,
2087 : 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,
2088 : 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,
2089 : 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,
2090 : 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,
2091 : 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,
2092 : 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,
2093 : 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,
2094 : 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,
2095 : 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,
2096 : 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,
2097 : 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,
2098 : 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,
2099 : 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,
2100 : 4198.961, 1278.718, 1278.662, 4776.305, 4776.302};
2101 :
2102 : static const double broadening[522][4] ={
2103 : {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},
2104 : {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},
2105 : {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},
2106 : {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},
2107 : {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},
2108 : {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},
2109 : {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},
2110 : { .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},
2111 : {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},
2112 : {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},
2113 : {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},
2114 : {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},
2115 : {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},
2116 : {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},
2117 : {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},
2118 : {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},
2119 : {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},
2120 : {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},
2121 : {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},
2122 : {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},
2123 : {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},
2124 : {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},
2125 : {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},
2126 : {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},
2127 : {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},
2128 : {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},
2129 : {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},
2130 : {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},
2131 : {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},
2132 : {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},
2133 : {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},
2134 : {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},
2135 : {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},
2136 : {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},
2137 : {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},
2138 : {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},
2139 : {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},
2140 : {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},
2141 : {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},
2142 : { .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},
2143 : {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},
2144 : {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},
2145 : {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},
2146 : { .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},
2147 : { .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},
2148 : {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},
2149 : { .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},
2150 : { .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},
2151 : {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},
2152 : {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},
2153 : { .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},
2154 : { .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},
2155 : { .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},
2156 : {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},
2157 : {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},
2158 : { .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},
2159 : {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},
2160 : { .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},
2161 : { .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},
2162 : {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},
2163 : { .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},
2164 : { .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},
2165 : {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},
2166 : { .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},
2167 : {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},
2168 : {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},
2169 : { .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},
2170 : {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},
2171 : { .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},
2172 : { .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},
2173 : {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},
2174 : { .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},
2175 : { .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},
2176 : { .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},
2177 : {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},
2178 : { .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},
2179 : {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},
2180 : { .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},
2181 : { .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},
2182 : { .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},
2183 : { .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},
2184 : { .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},
2185 : {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},
2186 : {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},
2187 : { .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},
2188 : {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},
2189 : { .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},
2190 : {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},
2191 : {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},
2192 : { .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},
2193 : { .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},
2194 : {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},
2195 : { .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},
2196 : {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}};
2197 :
2198 : static const double gl[522] = {
2199 : 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,
2200 : 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,
2201 : 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,
2202 : 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,
2203 : 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,
2204 : 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,
2205 : 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,
2206 : 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,
2207 : 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,
2208 : 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,
2209 : 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,
2210 : 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,
2211 : 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,
2212 : 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,
2213 : 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,
2214 : 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,
2215 : 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,
2216 : 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,
2217 : 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,
2218 : 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,
2219 : 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,
2220 : 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,
2221 : 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,
2222 : 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,
2223 : 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,
2224 : 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};
2225 :
2226 : static const unsigned int ifin1[800] = {
2227 : 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,
2228 : 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,
2229 : 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,
2230 : 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,
2231 : 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,
2232 : 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,
2233 : 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,
2234 : 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,
2235 : 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,
2236 : 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,
2237 : 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,
2238 : 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,
2239 : 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,
2240 : 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,
2241 : 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,
2242 : 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,
2243 : 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,
2244 : 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,
2245 : 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,
2246 : 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,
2247 : 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,
2248 : 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,
2249 : 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,
2250 : 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,
2251 : 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,
2252 : 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,
2253 : 345, 345, 345, 345, 345, 346, 346, 346, 347, 347, 347, 347, 348, 348, 348, 348, 348, 348, 348, 348};
2254 :
2255 : static const unsigned int ini1[800]={
2256 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2257 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2258 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2259 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2260 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2261 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2262 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2263 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2264 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2265 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2266 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2267 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2268 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2269 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2270 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2271 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2272 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2273 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2274 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2275 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2276 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2277 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2278 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2279 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2280 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2281 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2282 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
2283 :
2284 : static const unsigned int ifin2[800]={
2285 : 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,
2286 : 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,
2287 : 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,
2288 : 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,
2289 : 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,
2290 : 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,
2291 : 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,
2292 : 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,
2293 : 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,
2294 : 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,
2295 : 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,
2296 : 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,
2297 : 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,
2298 : 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,
2299 : 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,
2300 : 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,
2301 : 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,
2302 : 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,
2303 : 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,
2304 : 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,
2305 : 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,
2306 : 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,
2307 : 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,
2308 : 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,
2309 : 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,
2310 : 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,
2311 : 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170};
2312 :
2313 : static const unsigned int ini2[800]= {
2314 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2315 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2316 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2317 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2318 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2319 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2320 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2321 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2322 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2323 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2324 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2325 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2326 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2327 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2328 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2329 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2330 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2331 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2332 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2333 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2334 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2335 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2336 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2337 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2338 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2339 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2340 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
2341 :
2342 : static const unsigned int ifin3[800] = {
2343 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2344 : 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,
2345 : 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,
2346 : 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,
2347 : 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,
2348 : 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,
2349 : 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,
2350 : 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,
2351 : 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,
2352 : 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,
2353 : 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,
2354 : 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,
2355 : 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,
2356 : 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,
2357 : 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,
2358 : 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,
2359 : 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,
2360 : 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,
2361 : 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,
2362 : 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,
2363 : 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,
2364 : 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,
2365 : 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,
2366 : 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,
2367 : 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,
2368 : 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,
2369 : 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53};
2370 :
2371 : static const unsigned int ini3[800] = {
2372 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2373 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2374 : 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,
2375 : 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,
2376 : 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,
2377 : 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,
2378 : 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,
2379 : 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,
2380 : 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,
2381 : 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,
2382 : 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,
2383 : 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,
2384 : 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,
2385 : 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,
2386 : 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,
2387 : 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,
2388 : 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,
2389 : 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,
2390 : 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,
2391 : 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,
2392 : 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,
2393 : 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,
2394 : 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,
2395 : 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,
2396 : 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,
2397 : 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,
2398 : 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53};
2399 :
2400 :
2401 :
2402 : static const double pi=3.141592654;
2403 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2404 : static const double mu=1.855; // dipole moment in Debyes
2405 :
2406 166706 : double q=0.034278209*tt*sqrt(tt); // Q(300 K)=178.120 JPL Line Catalog
2407 : unsigned int vp;
2408 : unsigned int ini;
2409 : unsigned int ifin;
2410 : static const bool allfreqs = false;
2411 : static const unsigned int zero = 0;
2412 : static const unsigned int nmaxvp = 799;
2413 166706 : std::complex<double> lshape;
2414 166706 : std::complex<double> lshapeacum;
2415 :
2416 :
2417 166706 : if(nu>1595.9){
2418 :
2419 0 : ini=0;
2420 0 : ifin=521;
2421 :
2422 :
2423 : }else{
2424 :
2425 166706 : vp = vpIndex(nu);
2426 :
2427 166706 : if(vp>2){
2428 166706 : if(pp<25){
2429 22706 : ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
2430 : }else{
2431 144000 : if(pp<300){ ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
2432 : }
2433 : else{
2434 89700 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
2435 : }
2436 : }
2437 : }else{
2438 0 : if(pp<25){
2439 0 : ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
2440 : }else{
2441 0 : if(pp<300){ ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
2442 : }
2443 : else{
2444 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
2445 : }
2446 : }
2447 : }
2448 : }
2449 :
2450 : if(allfreqs){ini=0; ifin=521;}
2451 :
2452 166706 : if(ifin==0||ifin<ini){
2453 :
2454 0 : return std::complex<double> (0.0,0.0);
2455 :
2456 : }else{
2457 :
2458 26217338 : for(unsigned int i=ini; i<ifin+1; i++){
2459 :
2460 26050632 : lshape=lineshape(nu,fre[i],linebroadening_water(fre[i],tt,pp,eh2o,broadening[i][0],broadening[i][1],broadening[i][2],broadening[i][3]),0.0);
2461 26050632 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2462 26050632 : lshapeacum=lshapeacum+lshape;
2463 :
2464 : }
2465 :
2466 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2467 : // real part: delay in rad*cm^2
2468 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2,m^2)
2469 :
2470 : }
2471 :
2472 : }
2473 :
2474 :
2475 : //////////////////////// Opacity Source Number: 14 /////////////////////////////
2476 :
2477 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh17o(double tt, double pp, double eh2o, double nu){
2478 :
2479 :
2480 : static const double fre[16]={
2481 : 13.522059,194.001224,323.819514,385.783293, 482.981450,481.712039,489.015848,469.795466,
2482 : 514.973492,507.838397,552.020778,658.391131, 748.458444,944.845857,987.845579,991.503015};
2483 :
2484 : static const double gl[16]={
2485 : 3.,1.,1.,3.,1.,3.,3., 3.,1.,1.,3.,3.,1.,1.,1.,1.};
2486 :
2487 : static const double flin[16]={
2488 : .0548,.101,.088,.121,.0891,.0102,.0891, .132,.102,.119,1.5,.122,2.073,.164,.262,.760};
2489 :
2490 : static const double el[16]={
2491 : 642.1,204.2,468.9,322.7, 1518.4,1084.6,1518.7,430.9,1086.2,722.6,
2492 : 60.7,729.8,136.7,453.4,597.3,100.7};
2493 :
2494 : static const double dv0[16]={
2495 : 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};
2496 :
2497 : static const double dvlm[16]={
2498 : 13.68,14.49,15.21,15.84,7.94,10.44,8.13,14.24,
2499 : 10.56,11.95,14.66,12.78,13.93,14.06,14.16,15.20};
2500 :
2501 : static const double temp_exp[16]={
2502 : .626,.649,.619,.63,.29,.36,.332,.51, .380,.38,.645,.6,.69,.676,.56,.66};
2503 :
2504 :
2505 : static const unsigned int ifin1[500]={
2506 : 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,
2507 : 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,
2508 : 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,
2509 : 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,
2510 : 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,
2511 : 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,
2512 : 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,
2513 : 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,
2514 : 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,
2515 : 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,
2516 : 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,
2517 : 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,
2518 : 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,
2519 : 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,
2520 : 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,
2521 : 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,
2522 : 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
2523 :
2524 : static const unsigned int ini1[500]={
2525 : 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,
2526 : 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,
2527 : 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,
2528 : 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,
2529 : 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,
2530 : 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,
2531 : 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,
2532 : 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,
2533 : 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,
2534 : 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,
2535 : 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,
2536 : 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,
2537 : 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,
2538 : 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,
2539 : 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,
2540 : 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,
2541 : 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
2542 :
2543 : static const unsigned int ifin2[500]={
2544 : 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,
2545 : 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,
2546 : 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,
2547 : 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,
2548 : 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,
2549 : 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,
2550 : 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,
2551 : 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,
2552 : 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,
2553 : 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,
2554 : 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,
2555 : 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,
2556 : 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,
2557 : 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,
2558 : 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,
2559 : 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,
2560 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
2561 :
2562 : static const unsigned int ini2[500]={
2563 : 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,
2564 : 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,
2565 : 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,
2566 : 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,
2567 : 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,
2568 : 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,
2569 : 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,
2570 : 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,
2571 : 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,
2572 : 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,
2573 : 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,
2574 : 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,
2575 : 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,
2576 : 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,
2577 : 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,
2578 : 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,
2579 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16};
2580 :
2581 : static const unsigned int ifin3[500]={
2582 : 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,
2583 : 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,
2584 : 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,
2585 : 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,
2586 : 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,
2587 : 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,
2588 : 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,
2589 : 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,
2590 : 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,
2591 : 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,
2592 : 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,
2593 : 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,
2594 : 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,
2595 : 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,
2596 : 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,
2597 : 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,
2598 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16};
2599 :
2600 : static const unsigned int ini3[500]={
2601 : 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,
2602 : 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,
2603 : 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,
2604 : 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,
2605 : 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,
2606 : 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,
2607 : 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,
2608 : 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,
2609 : 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,
2610 : 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,
2611 : 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,
2612 : 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,
2613 : 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,
2614 : 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,
2615 : 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,
2616 : 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,
2617 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16};
2618 :
2619 :
2620 : static const double pi=3.141592654;
2621 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2622 : static const double mu=1.855; // dipole moment in Debyes
2623 :
2624 166706 : double q=0.034412578*tt*sqrt(tt); // Q(300 K)=178.813 JPL Line Catalog
2625 : unsigned int vp;
2626 : unsigned int ini;
2627 : unsigned int ifin;
2628 : static const bool allfreqs = false;
2629 : static const unsigned int zero = 0;
2630 : static const unsigned int nmaxvp = 499;
2631 166706 : std::complex<double> lshape;
2632 166706 : std::complex<double> lshapeacum;
2633 :
2634 :
2635 166706 : if(nu>999.9){
2636 :
2637 0 : return std::complex<double> (0.0,0.0);
2638 :
2639 : }else{
2640 :
2641 166706 : vp = vpIndex(nu);
2642 :
2643 166706 : if(vp>60){
2644 :
2645 36666 : if(pp<25){
2646 8186 : ini=ini3[max((vp-60),zero)]-1; ifin=ifin3[min((vp+60),nmaxvp)]-1;
2647 : }else{
2648 28480 : if(pp<300){ ini=ini2[max((vp-60),zero)]-1; ifin=ifin2[min((vp+60),nmaxvp)]-1;
2649 : }
2650 : else{
2651 19580 : ini=ini1[max((vp-60),zero)]-1; ifin=ifin1[min((vp+60),nmaxvp)]-1;
2652 : }
2653 : }
2654 :
2655 : }else{
2656 :
2657 130040 : if(pp<25){
2658 14520 : ini=0; ifin=ifin3[min((vp+60),nmaxvp)]-1;
2659 : }else{
2660 115520 : if(pp<300){ ini=0; ifin=ifin2[min((vp+60),nmaxvp)]-1;
2661 : }
2662 : else{
2663 70120 : ini=0; ifin=ifin1[min((vp+60),nmaxvp)]-1;
2664 : }
2665 : }
2666 :
2667 : }
2668 :
2669 : if(allfreqs){ini=0; ifin=15;}
2670 :
2671 :
2672 166706 : if(ifin==0||ifin<ini){
2673 :
2674 0 : return std::complex<double> (0.0,0.0);
2675 :
2676 : }else{
2677 :
2678 866544 : for(unsigned int i=ini; i<ifin+1; i++){
2679 :
2680 699838 : lshape=lineshape(nu,fre[i],linebroadening_hh18o_hh17o(tt,pp,eh2o,dv0[i],dvlm[i],temp_exp[i]),0.0);
2681 699838 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
2682 699838 : lshapeacum=lshapeacum+lshape;
2683 :
2684 : }
2685 :
2686 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
2687 : // real part: delay in rad*cm^2
2688 166706 : return lshapeacum*1e-4; // to give it in SI units ( rad m^2 , m^2 )
2689 :
2690 : }
2691 :
2692 : }
2693 :
2694 : }
2695 :
2696 : //////////////////////// Opacity Source Number: 15 /////////////////////////////
2697 :
2698 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hdo(double tt, double pp, double nu){ // eh2o removed (unused parameter)
2699 :
2700 : static const double fre[58]={
2701 : 5.70284, 10.27828, 22.30749, 50.23643, 64.42724, 80.57828, 143.72739,151.61604,207.11122,241.56151,305.03867,310.53348,
2702 : 464.92450,481.77936,537.79272,540.37543,559.81665,797.48669, 848.96191,862.66339,890.26971,919.31085, 20.46006, 61.18605,
2703 : 87.96289,120.77818,138.53059,207.34569,225.89665,241.97346, 255.05026,266.16098,313.75076,317.15128,335.39542,382.06503,
2704 : 479.94748,490.59668,509.29245,539.93585,599.92676,622.48346, 753.41113,766.16309,774.77631,827.26306,836.99475,838.66260,
2705 : 838.95593,853.55231,859.35687,893.63861,895.87488,904.89404, 938.41833,958.56860,984.13788,995.41144};
2706 :
2707 : static const double flin[58]={
2708 : 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,
2709 : 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,
2710 : 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,
2711 : 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,
2712 : 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};
2713 :
2714 : static const double el[58]={
2715 : 425.1, 156.7, 537.6, 223.6, 672.7, 42.9, 312.3, 830.1, 216.1, 83.6,1009.6, 422.5,
2716 : 0.0, 144.5, 131.4,1210.7, 553.8, 225.0, 42.9,1432.9, 705.7, 22.3, 225.0, 422.5,
2717 : 825.9, 319.2, 437.5, 738.4, 156.8, 825.8, 425.2, 144.4, 538.7, 675.8, 319.2, 672.7,
2718 : 312.3, 42.9, 22.4, 983.7, 66.4, 675.8, 131.4, 983.6, 983.2, 223.6, 538.7,1558.1,
2719 : 837.3, 983.2, 537.7, 0.0, 537.7,1236.6, 1024.2,1164.6, 216.1, 83.6};
2720 :
2721 :
2722 : static const unsigned int ifin11[500]={
2723 : 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,
2724 : 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,
2725 : 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,
2726 : 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,
2727 : 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,
2728 : 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,
2729 : 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,
2730 : 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,
2731 : 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,
2732 : 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,
2733 : 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,
2734 : 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,
2735 : 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,
2736 : 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,
2737 : 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,
2738 : 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,
2739 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22};
2740 :
2741 : static const unsigned int ini11[500]={
2742 : 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,
2743 : 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,
2744 : 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,
2745 : 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,
2746 : 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,
2747 : 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,
2748 : 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,
2749 : 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,
2750 : 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,
2751 : 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,
2752 : 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,
2753 : 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,
2754 : 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,
2755 : 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,
2756 : 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,
2757 : 21, 21, 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,
2758 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22};
2759 :
2760 : static const unsigned int ifin21[500]={
2761 : 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,
2762 : 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,
2763 : 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,
2764 : 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,
2765 : 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,
2766 : 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,
2767 : 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,
2768 : 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,
2769 : 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,
2770 : 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,
2771 : 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,
2772 : 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,
2773 : 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,
2774 : 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,
2775 : 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,
2776 : 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,
2777 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22};
2778 :
2779 : static const unsigned int ini21[500]={
2780 : 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,
2781 : 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,
2782 : 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,
2783 : 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,
2784 : 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,
2785 : 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,
2786 : 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,
2787 : 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,
2788 : 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,
2789 : 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,
2790 : 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,
2791 : 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,
2792 : 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,
2793 : 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,
2794 : 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,
2795 : 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,
2796 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22};
2797 :
2798 : static const unsigned int ifin31[500]={
2799 : 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,
2800 : 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,
2801 : 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,
2802 : 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,
2803 : 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,
2804 : 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,
2805 : 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,
2806 : 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,
2807 : 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,
2808 : 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,
2809 : 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,
2810 : 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,
2811 : 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,
2812 : 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,
2813 : 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,
2814 : 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,
2815 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22};
2816 :
2817 : static const unsigned int ini31[500]={
2818 : 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,
2819 : 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,
2820 : 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,
2821 : 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,
2822 : 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,
2823 : 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,
2824 : 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,
2825 : 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,
2826 : 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,
2827 : 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,
2828 : 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,
2829 : 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,
2830 : 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,
2831 : 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,
2832 : 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,
2833 : 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,
2834 : 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22};
2835 :
2836 : static const unsigned int ifin12[500]={
2837 : 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,
2838 : 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,
2839 : 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,
2840 : 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,
2841 : 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,
2842 : 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,
2843 : 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,
2844 : 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,
2845 : 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,
2846 : 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,
2847 : 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,
2848 : 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,
2849 : 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,
2850 : 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,
2851 : 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,
2852 : 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,
2853 : 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58 };
2854 :
2855 : static const unsigned int ini12[500]={
2856 : 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,
2857 : 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,
2858 : 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,
2859 : 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,
2860 : 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,
2861 : 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,
2862 : 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,
2863 : 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,
2864 : 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,
2865 : 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,
2866 : 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,
2867 : 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,
2868 : 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,
2869 : 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,
2870 : 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,
2871 : 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,
2872 : 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57};
2873 :
2874 :
2875 : static const unsigned int ifin22[500]={
2876 : 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,
2877 : 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,
2878 : 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,
2879 : 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,
2880 : 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,
2881 : 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,
2882 : 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,
2883 : 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,
2884 : 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,
2885 : 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,
2886 : 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,
2887 : 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,
2888 : 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,
2889 : 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,
2890 : 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,
2891 : 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,
2892 : 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58};
2893 :
2894 : static const unsigned int ini22[500]={
2895 : 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,
2896 : 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,
2897 : 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,
2898 : 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,
2899 : 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,
2900 : 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,
2901 : 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,
2902 : 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,
2903 : 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,
2904 : 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,
2905 : 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,
2906 : 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,
2907 : 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,
2908 : 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,
2909 : 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,
2910 : 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,
2911 : 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58};
2912 :
2913 : static const unsigned int ifin32[500]={
2914 : 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,
2915 : 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,
2916 : 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,
2917 : 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,
2918 : 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,
2919 : 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,
2920 : 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,
2921 : 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,
2922 : 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,
2923 : 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,
2924 : 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,
2925 : 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,
2926 : 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,
2927 : 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,
2928 : 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,
2929 : 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,
2930 : 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58};
2931 :
2932 : static const unsigned int ini32[500]={
2933 : 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,
2934 : 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,
2935 : 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,
2936 : 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,
2937 : 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,
2938 : 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,
2939 : 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,
2940 : 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,
2941 : 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,
2942 : 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,
2943 : 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,
2944 : 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,
2945 : 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,
2946 : 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,
2947 : 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,
2948 : 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,
2949 : 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58};
2950 :
2951 : static const double pi=3.141592654;
2952 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
2953 : static const double mua=0.657; // dipole moment in Debyes (a component)
2954 : static const double mub=1.732; // dipole moment in Debyes (b component)
2955 :
2956 166706 : double q=0.028263028*tt*sqrt(tt); // Q(300 K)=179.639 JPL Line Catalog
2957 : unsigned int vp;
2958 : unsigned int ini1, ini2;
2959 : unsigned int ifin1, ifin2;
2960 : static const bool allfreqs = false;
2961 : static const unsigned int zero = 0;
2962 : static const unsigned int nmaxvp = 499;
2963 166706 : std::complex<double> lshape;
2964 166706 : std::complex<double> lshapeacum;
2965 :
2966 :
2967 166706 : if(nu>999.9){
2968 :
2969 0 : return std::complex<double> (0.0,0.0);
2970 :
2971 : }else{
2972 :
2973 166706 : vp = vpIndex(nu);
2974 :
2975 166706 : if(vp>60){
2976 :
2977 36666 : if(pp<25){
2978 8186 : ini1=ini31[max((vp-60),zero)]-1; ifin1=ifin31[min((vp+60),nmaxvp)]-1; ini2=ini32[max((vp-60),zero)]-1; ifin2=ifin32[min((vp+60),nmaxvp)]-1;
2979 : }else{
2980 28480 : if(pp<300){
2981 8900 : ini1=ini21[max((vp-60),zero)]-1; ifin1=ifin21[min((vp+60),nmaxvp)]-1; ini2=ini22[max((vp-60),zero)]-1; ifin2=ifin22[min((vp+60),nmaxvp)]-1;
2982 : }
2983 : else{
2984 19580 : ini1=ini11[max((vp-60),zero)]-1; ifin1=ifin11[min((vp+60),nmaxvp)]-1; ini2=ini12[max((vp-60),zero)]-1; ifin2=ifin12[min((vp+60),nmaxvp)]-1;
2985 : }
2986 : }
2987 :
2988 : }else{
2989 :
2990 130040 : if(pp<25){
2991 14520 : ini1=0; ifin1=ifin31[min((vp+60),nmaxvp)]-1; ini2=22; ifin2=ifin32[min((vp+60),nmaxvp)]-1;
2992 : }else{
2993 115520 : if(pp<300){
2994 45400 : ini1=0; ifin1=ifin21[min((vp+60),nmaxvp)]-1; ini2=22; ifin2=ifin22[min((vp+60),nmaxvp)]-1;
2995 : }
2996 : else{
2997 70120 : ini1=0; ifin1=ifin11[min((vp+60),nmaxvp)]-1; ini2=22; ifin2=ifin12[min((vp+60),nmaxvp)]-1;
2998 : }
2999 : }
3000 :
3001 : }
3002 :
3003 166706 : std::complex<double> lshapeacum1(0.0,0.0);
3004 :
3005 : if(allfreqs){ini1=0; ifin1=21;}
3006 :
3007 :
3008 166706 : if(ifin1==0||ifin1<ini1){
3009 :
3010 : }else{
3011 :
3012 1668324 : for(unsigned int i=ini1; i<ifin1+1; i++){
3013 :
3014 1501618 : lshape=lineshape(nu,fre[i],0.003*pp*pow((300/tt),0.7),0.0);
3015 1501618 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3016 1501618 : lshapeacum1=lshapeacum1+lshape;
3017 :
3018 : }
3019 :
3020 166706 : lshapeacum1=lshapeacum1*(nu/pi)*(picube8div3hcesu*pow(mua,2)/q); // imaginary part: absorption coefficient in cm^2
3021 : // real part: delay in rad*cm^2
3022 : }
3023 :
3024 166706 : std::complex<double> lshapeacum2(0.0,0.0);
3025 :
3026 : if(allfreqs){ini2=22; ifin2=57;}
3027 :
3028 166706 : if(ifin2==0||ifin2<ini2){
3029 :
3030 :
3031 : }else{
3032 :
3033 1400652 : for(unsigned int i=ini2; i<ifin2+1; i++){
3034 :
3035 1233946 : lshape=lineshape(nu,fre[i],0.003*pp,0.0);
3036 1233946 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3037 1233946 : lshapeacum2=lshapeacum2+lshape;
3038 :
3039 : }
3040 :
3041 166706 : lshapeacum2=lshapeacum2*(nu/pi)*(picube8div3hcesu*pow(mub,2)/q); // imaginary part: absorption coefficient in cm^2
3042 : // real part: delay in rad*cm^2
3043 : }
3044 :
3045 166706 : return (lshapeacum1+lshapeacum2)*1e-4*0.25; // 1e-4 is the factor to pass to SI units (rad m^2 , m^2)
3046 : // (20181121: 0.25 is an empirical factor to fit FTS Data from Mauna Kea,
3047 : // check for Chajnantor)
3048 :
3049 : }
3050 :
3051 : }
3052 :
3053 :
3054 : //////////////////////// Opacity Source Number: 13 /////////////////////////////
3055 :
3056 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_hh18o(double tt, double pp, double eh2o, double nu){
3057 :
3058 : static const double fre[15]={
3059 : 5.624962,203.407381,322.464764,390.607954,489.054219,520.138510,525.168274,531.577390,
3060 : 537.337649,547.676612,554.860949,692.079249,745.320024,970.300490,994.634718};
3061 :
3062 : static const double gl[15]={
3063 : 3.,1.,1.,3.,3.,3.,1.,3.,
3064 : 1.,3.,1.,3.,1.,1.,1.};
3065 :
3066 : static const double flin[15]={
3067 : .053,.100,.086,.119,.132,.103,.090,.090,
3068 : .119,1.5,.103,.123,2.060,.165,.764};
3069 :
3070 : static const double el[15]={
3071 : 640.5,203.7,467.9,322.1,429.7,1080.7,1512.3, 1512.6,
3072 : 720.3, 60.5,1082.3,727.7,136.4,452.5,100.6};
3073 :
3074 : static const double dv0[15]={
3075 : 2.85,2.68,3.03,3.19,2.47,1.94,1.5,1.51,
3076 : 2.07,3.33,1.89,2.28,3.13,2.59,3.09};
3077 :
3078 : static const double dvlm[15]={
3079 : 13.68,14.49,15.21,15.84,14.24,10.44,7.94,8.13,
3080 : 11.95,14.66,10.56,12.78,13.93,14.06,15.20};
3081 :
3082 : static const double temp_exp[15]={
3083 : .626,.649,.619,.63,.51,.36,.29,.332,
3084 : .38,.645,.380,.6,.69,.676,.66};
3085 :
3086 : static const unsigned int ini1[500]={
3087 : 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,
3088 : 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,
3089 : 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,
3090 : 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,
3091 : 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,
3092 : 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,
3093 : 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,
3094 : 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,
3095 : 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,
3096 : 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,
3097 : 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,
3098 : 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,
3099 : 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,
3100 : 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,
3101 : 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,
3102 : 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,
3103 : 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15};
3104 :
3105 :
3106 : static const unsigned int ifin1[500]={
3107 : 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,
3108 : 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,
3109 : 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,
3110 : 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,
3111 : 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,
3112 : 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,
3113 : 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,
3114 : 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,
3115 : 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,
3116 : 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,
3117 : 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,
3118 : 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,
3119 : 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,
3120 : 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,
3121 : 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,
3122 : 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,
3123 : 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
3124 :
3125 :
3126 : static const double pi=3.141592654;
3127 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3128 : static const double mu=1.855; // dipole moment in Debyes
3129 :
3130 166706 : double q=0.034571542*tt*sqrt(tt); // Q(300 K)=179.639 JPL Line Catalog
3131 : unsigned int vp;
3132 :
3133 : unsigned int ini;
3134 : unsigned int ifin;
3135 : static const bool allfreqs = false;
3136 : static const unsigned int zero = 0;
3137 : static const unsigned int nmaxvp = 499;
3138 166706 : std::complex<double> lshape;
3139 166706 : std::complex<double> lshapeacum;
3140 :
3141 :
3142 166706 : if(nu>999.9){
3143 :
3144 0 : return std::complex<double> (0.0,0.0);
3145 :
3146 : }else{
3147 :
3148 166706 : vp = vpIndex(nu);
3149 :
3150 166706 : if(vp>60){
3151 36666 : ini=ini1[max((vp-60),zero)]-1; ifin=ifin1[min((vp+60),nmaxvp)]-1;
3152 : }else{
3153 130040 : ini=0; ifin=ifin1[min((vp+60),nmaxvp)]-1;
3154 : }
3155 :
3156 : if(allfreqs){ini=0; ifin=14;}
3157 :
3158 166706 : if(ifin==0||ifin<ini){
3159 :
3160 0 : return std::complex<double> (0.0,0.0);
3161 :
3162 : }else{
3163 :
3164 889900 : for(unsigned int i=ini; i<ifin+1; i++){
3165 :
3166 723194 : lshape=lineshape(nu,fre[i],linebroadening_hh18o_hh17o(tt,pp,eh2o,dv0[i],dvlm[i],temp_exp[i]),0.0);
3167 723194 : lshape=lshape*flin[i]*gl[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3168 723194 : lshapeacum=lshapeacum+lshape;
3169 :
3170 : }
3171 :
3172 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
3173 : // real part: delay in rad*cm^2
3174 :
3175 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to pass to SI units (rad m^2,m^2)
3176 :
3177 : }
3178 :
3179 : }
3180 :
3181 : }
3182 :
3183 : //////////////////////// Opacity Source Number: 2 //////////////////////////////
3184 :
3185 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o_vib(double tt, double pp, double eh2o, double nu){
3186 :
3187 : static const double fre[6]={363.717932,420.232268,482.757899,706.772490,765.423334,825.814211};
3188 :
3189 : static const double flin[6]={.04800, .39245, .12804, .04000, .21283, .06343};
3190 :
3191 : static const double el[6]={5.70,2.95,2.95,25.97,23.18,23.18};
3192 :
3193 : static const double pi=3.141592654;
3194 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3195 : static const double mu=0.0186; // dipole moment in Debyes (M1 Transitions)
3196 :
3197 166706 : double q=0.72923*tt;
3198 166706 : std::complex<double> lshape;
3199 166706 : std::complex<double> lshapeacum;
3200 :
3201 166706 : double dv0=2.0;
3202 :
3203 166706 : if(nu>999.9){return std::complex<double> (0.0,0.0);}
3204 :
3205 1166942 : for(unsigned int i=0; i<6; i++){
3206 :
3207 1000236 : lshape=lineshape(nu,fre[i], linebroadening_o2(fre[i],tt,pp,eh2o,32.0,dv0,0.2),0.0);
3208 1000236 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3209 1000236 : lshapeacum=lshapeacum+lshape;
3210 :
3211 : }
3212 :
3213 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
3214 : // real part: delay in rad*cm^2
3215 :
3216 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to convert to SI units ( rad m^2 , m^2 )
3217 :
3218 : }
3219 :
3220 : //////////////////////// Opacity Source Number: 4 //////////////////////////////
3221 :
3222 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o17o(double tt, double pp, double eh2o, double nu){
3223 :
3224 : static const double fre[14]={
3225 : 239.89920,304.81682,412.53217,474.78769,356.03171,582.32937,
3226 : 643.33256,524.57590,751.19854,811.40203,692.64446,919.63186,
3227 : 979.23889,860.48018};
3228 :
3229 : static const double flin[14]={
3230 : .738E+00, .261E+00, .416E+00, .136E+00, .510E-01, .292E+00,
3231 : .900E-01, .480E-01, .226E+00, .670E-01, .420E-01, .184E+00,
3232 : .530E-01, .370E-01};
3233 :
3234 : static const double el[14]={
3235 : .000, .000, 3.900, 3.900, 6.600, 11.900,
3236 : 11.900, 14.600, 23.900, 23.900, 26.700, 39.900,
3237 : 39.900, 42.800};
3238 :
3239 :
3240 : static const double pi=3.141592654;
3241 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3242 : static const double mu=0.0186; // dipole moment in Debyes (M1 Transitions)
3243 :
3244 166706 : double q=1.536568889*tt;
3245 166706 : std::complex<double> lshape;
3246 166706 : std::complex<double> lshapeacum;
3247 :
3248 166706 : double dv0=2.0;
3249 :
3250 166706 : if(nu>999.9){return std::complex<double> (0.0,0.0);}
3251 :
3252 166706 : return std::complex<double> (0.0,0.0); // 2024 ELIMINAMOS DE MOMENTO ESTE ISÓTOPO DE O2, MIENTRAS REPASAMOS. DABA LINEAS INEXISTENTES.
3253 :
3254 : for(unsigned int i=0; i<14; i++){
3255 :
3256 : lshape=lineshape(nu,fre[i],linebroadening_o2(fre[i],tt,pp,eh2o,33.0,dv0,0.2),0.0);
3257 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3258 : lshapeacum=lshapeacum+lshape;
3259 :
3260 : }
3261 :
3262 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
3263 : // real part: delay in rad*cm^2
3264 :
3265 : return lshapeacum*1e-4; // 1e-4, factor to transform to SI units (rad m^2 , m^2)
3266 :
3267 : }
3268 :
3269 :
3270 : //////////////////////// Opacity Source Number: 3 //////////////////////////////
3271 :
3272 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o18o(double tt, double pp, double eh2o, double nu){
3273 :
3274 : static const double fre[15]={
3275 : 233.94611,298.47306,401.73972,463.77817,345.01768,566.89542,
3276 : 627.75661,508.99550,731.18612,791.29170,672.52976,895.07000,
3277 : 954.60941,835.84642,999.02720};
3278 :
3279 : static const double flin[15]={
3280 : .776E+00, .276E+00, .439E+00, .143E+00, .540E-01, .308E+00,
3281 : .950E-01, .510E-01, .238E+00, .710E-01, .440E-01, .194E+00,
3282 : .560E-01, .390E-01, .340E-01};
3283 :
3284 : static const double el[15]={
3285 : .000, .000, 3.800, 3.800, 6.500, 11.600,
3286 : 11.600, 14.300, 23.300, 23.300, 26.100, 38.900,
3287 : 38.900, 41.700, 61.300};
3288 :
3289 : static const double pi=3.141592654;
3290 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3291 : static const double mu=0.0186; // dipole moment in Debyes (M1 Transitions)
3292 :
3293 166706 : double q=1.536568889*tt;
3294 166706 : std::complex<double> lshape;
3295 166706 : std::complex<double> lshapeacum;
3296 :
3297 166706 : double dv0=2.0;
3298 :
3299 166706 : if(nu>999.9){return std::complex<double> (0.0,0.0);}
3300 :
3301 2667296 : for(unsigned int i=0; i<15; i++){
3302 :
3303 2500590 : lshape=lineshape(nu,fre[i], linebroadening_o2(fre[i],tt,pp,eh2o,34.0,dv0,0.2),0.0);
3304 2500590 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3305 2500590 : lshapeacum=lshapeacum+lshape;
3306 :
3307 : }
3308 :
3309 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
3310 : // real part: delay in rad*cm^2
3311 :
3312 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2)
3313 :
3314 : }
3315 :
3316 : //////////////////////// Opacity Source Number: 1 //////////////////////////////
3317 :
3318 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o(double tt, double pp, double eh2o, double nu){
3319 :
3320 : ///// Adding mesospheric O2-1Delta Jan 23, 2024 /////////////////////////////////////////////////////////////////////////////////////
3321 : static const double freextra[9]={255.017937,340.006779,424.980983,509.936752,594.870607,679.778668,764.657384,849.503006,934.311969};
3322 : static const double flinextra[9]={0.0013,0.0023,0.0032,0.0041,0.0050,0.0058,0.0066,0.0074,0.0082};
3323 : static const double euextra[9]={ 11274.49, 11290.89, 11311.29, 11335.69, 11363.29, 11396.89, 11433.59, 11483.39, 11519.19};
3324 : static const double texpO2extra[9] ={0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76};
3325 : static const double brdO2airextra[9] ={2.3,2.3,2.3,2.3,2.3,2.3,2.3,2.3,2.3};
3326 : /*static const double broadeningextra[9][4]={ {1.920 , .2 , .0 , .0},{1.810 , .2 , .0 , .0},{1.820 , .2 , .0 , .0},
3327 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},
3328 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0}}; */
3329 : /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3330 :
3331 : static const double fre[55]={
3332 : 50.473557,50.987199,51.502912,52.021065,52.542126,53.066702,53.595595,54.129887,54.671077,55.221309,
3333 : 55.783762,56.264778,56.363362,56.968188,57.612473,58.323870,58.446594,59.164203,59.590988,60.306059,
3334 : 60.434783,61.150565,61.800158,62.411215,62.486259,62.997970,63.568500,64.127733,64.678846,65.223985,
3335 : 65.764647,66.301917,66.836594,67.369286,67.900462,68.430489,68.959664,118.750345,368.498440,424.763123,
3336 : 487.249381,715.393320,773.839669,834.145728,1061.124062,1120.715051,1179.879254,1406.372391,1466.807173,
3337 : 1525.131044,1751.254916,1812.405481,1870.017954,2095.777726,2157.577883};
3338 :
3339 : static const double flin[55]={
3340 : 74.96623,70.96429,66.96212,62.95966,58.95686,54.95363,50.94989,46.94549,42.94023,38.93385,
3341 : 34.92593, 2.45198,30.91587,26.90263,22.88444,18.85787, 6.71035,14.81540,10.80290,10.73657,
3342 : 14.85057,18.87966,22.89926,26.91337,6.53862,30.92400,34.93231,38.93898,42.94445,46.94902,
3343 : 50.95289,54.95621,58.95910,62.96162,66.96385,70.96584,74.96761, 2.00000, .04800, .39245,
3344 : .12804, .04000, .21283, .06343, .03044,.14656, .04174, .02443, .11187, .03102,
3345 : .02034, .09050, .02465, .01740, .07601};
3346 :
3347 : static const double el[55]={
3348 : 2893.8,2594.5,2311.3,2044.2,1793.4,1558.9,1340.6,1138.7, 953.1, 784.0,
3349 : 631.2, 3.0, 494.9, 375.1, 271.7,184.9, 23.6, 114.5, 60.8, 60.7,
3350 : 114.5, 184.7, 271.5, 374.8, 23.4,494.6, 630.8, 783.5, 952.7,1138.2,
3351 : 1340.0,1558.2,1792.7,2043.5,2310.5,2593.6,2892.9, .0, 5.7, 3.0,
3352 : 3.0, 26.5, 23.6, 23.6, 63.6,60.8, 60.8, 117.4, 114.5, 114.5,
3353 : 187.7, 184.7, 184.7, 274.5, 271.5};
3354 :
3355 : static const double broadening[55][4]={
3356 : {.890 , .8 , .240 , .790},{.910 , .8 , .220 , .780},{.940 , .8 , .197 , .774},{.970 , .8 , .166 , .764},
3357 : {.990 , .8 , .136 , .751},{1.020 , .8 , .131 , .714},{1.050 , .8 , .230 , .584},{1.070 , .8 , .335 , .431},
3358 : {1.100 , .8 , .374 , .305},{1.130 , .8 , .258 , .339},{1.170 , .8 , -0.166 , .705},{1.730 , .8 , .390 , -0.113},
3359 : {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},
3360 : {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},
3361 : {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},
3362 : {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},
3363 : {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},
3364 : {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},
3365 : {.900 , .8 , -0.250 , -0.765},{1.630 , .8 , -0.036 , 0.009},{1.920 , .2 , .0 , .0},{1.930 , .2 , .0 , .0},
3366 : {1.920 , .2 , .0 , .0},{1.810 , .2 , .0 , .0},{1.820 , .2 , .0 , .0},{1.810 , .2 , .0 , .0},
3367 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},
3368 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},
3369 : {1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0},{1.900 , .2 , .0 , .0}};
3370 :
3371 :
3372 : static const unsigned int ifin1[800]={
3373 : 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,
3374 : 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,
3375 : 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,
3376 : 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,
3377 : 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,
3378 : 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,
3379 : 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,
3380 : 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,
3381 : 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,
3382 : 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,
3383 : 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,
3384 : 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,
3385 : 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,
3386 : 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,
3387 : 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,
3388 : 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,
3389 : 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,
3390 : 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,
3391 : 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,
3392 : 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,
3393 : 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,
3394 : 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,
3395 : 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,
3396 : 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,
3397 : 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,
3398 : 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,
3399 : 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54};
3400 :
3401 : static const unsigned int ini1[800]={
3402 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3403 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3404 : 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,
3405 : 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,
3406 : 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,
3407 : 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,
3408 : 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,
3409 : 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,
3410 : 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,
3411 : 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,
3412 : 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,
3413 : 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,
3414 : 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,
3415 : 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,
3416 : 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,
3417 : 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,
3418 : 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,
3419 : 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,
3420 : 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,
3421 : 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,
3422 : 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,
3423 : 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,
3424 : 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,
3425 : 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,
3426 : 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,
3427 : 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,
3428 : 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46};
3429 :
3430 : static const unsigned int ifin2[800]={
3431 : 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,
3432 : 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,
3433 : 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,
3434 : 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,
3435 : 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,
3436 : 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,
3437 : 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,
3438 : 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,
3439 : 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,
3440 : 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,
3441 : 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,
3442 : 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,
3443 : 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,
3444 : 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,
3445 : 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,
3446 : 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,
3447 : 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,
3448 : 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,
3449 : 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,
3450 : 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,
3451 : 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,
3452 : 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,
3453 : 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,
3454 : 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,
3455 : 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,
3456 : 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,
3457 : 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50};
3458 :
3459 : static const unsigned int ini2[800]={
3460 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3461 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3462 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3463 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3464 : 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,
3465 : 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,
3466 : 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,
3467 : 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,
3468 : 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,
3469 : 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,
3470 : 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,
3471 : 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,
3472 : 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,
3473 : 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,
3474 : 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,
3475 : 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,
3476 : 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,
3477 : 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,
3478 : 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,
3479 : 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,
3480 : 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,
3481 : 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,
3482 : 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,
3483 : 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,
3484 : 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,
3485 : 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,
3486 : 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50};
3487 :
3488 :
3489 : static const double pi=3.141592654;
3490 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3491 : static const double mu=0.0186; // dipole moment in Debyes (M1 Transitions)
3492 :
3493 166706 : double q=0.72923*tt;
3494 : unsigned int vp;
3495 : unsigned int ini;
3496 : unsigned int ifin;
3497 : static const unsigned int zero = 0;
3498 : static const unsigned int nmaxvp = 799;
3499 166706 : std::complex<double> lshape;
3500 166706 : std::complex<double> lshapeacum;
3501 : double real_lshapeacum;
3502 : static const double mmol=32.0;
3503 :
3504 :
3505 166706 : if(nu>1599.9){
3506 :
3507 0 : return std::complex<double> (0.0,0.0);
3508 :
3509 : }else{
3510 :
3511 1667060 : for(unsigned int i=0; i<9; i++){ // ADDING mesospheric O2-1Delta Jan 23, 2024 REPASAR
3512 :
3513 1500354 : lshape=lineshape(nu,freextra[i],linebroadening(freextra[i],tt,pp,mmol,brdO2airextra[i]*0.001,texpO2extra[i]),0.0);
3514 1500354 : lshape=lshape*flinextra[i]*exp(-(euextra[i]-0.0479924207*freextra[i])/tt)*freextra[i];
3515 1500354 : if(pp<1.7){lshape=lshape*30000000000000.0; } // NEEDS VERIFICATION
3516 1500354 : lshapeacum=lshapeacum+lshape;
3517 : }
3518 :
3519 166706 : vp = vpIndex(nu);
3520 :
3521 166706 : if(vp>2){
3522 166706 : if(pp<25){ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
3523 144000 : }else{ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;}
3524 :
3525 : }else{
3526 :
3527 0 : if(pp<25){ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
3528 0 : }else{ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;}
3529 :
3530 : }
3531 :
3532 166706 : if(nu>=118.750345&&nu<=124){ini=37;}
3533 :
3534 166706 : if(ifin==0||ifin<ini){
3535 :
3536 0 : return std::complex<double> (0.0,0.0);
3537 :
3538 : }else{
3539 :
3540 5653610 : for(unsigned int i=ini; i<ifin+1; i++){
3541 :
3542 5486904 : lshape=lineshape(nu,fre[i],linebroadening_o2(fre[i],tt,pp,eh2o,32.0,broadening[i][0],broadening[i][1]),
3543 5486904 : interf_o2(tt,pp,broadening[i][2],broadening[i][3]));
3544 5486904 : lshape=lshape*flin[i]*exp(-el[i]/tt)*(1-exp(-0.047992745509*fre[i]/tt));
3545 5486904 : lshapeacum=lshapeacum+lshape;
3546 :
3547 : }
3548 :
3549 : }
3550 :
3551 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
3552 : // real part: delay in rad*cm^2
3553 166706 : if(imag(lshapeacum)<0){
3554 0 : real_lshapeacum=real(lshapeacum);
3555 0 : lshapeacum = complex<double>(real_lshapeacum,0.0);
3556 : }
3557 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2)
3558 :
3559 : }
3560 :
3561 : }
3562 :
3563 : //////////////////////// Opacity Source Number: 18 /////////////////////////////
3564 :
3565 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o_v1(double tt, double pp, double nu, unsigned int vp){
3566 :
3567 : static const double fre[666] = {
3568 : 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,
3569 : 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,
3570 : 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,
3571 : 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,
3572 : 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,
3573 : 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,
3574 : 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,
3575 : 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,
3576 : 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,
3577 : 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,
3578 : 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,
3579 : 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,
3580 : 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,
3581 : 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,
3582 : 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,
3583 : 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,
3584 : 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,
3585 : 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,
3586 : 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,
3587 : 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,
3588 : 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,
3589 : 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,
3590 : 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,
3591 : 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,
3592 : 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,
3593 : 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,
3594 : 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,
3595 : 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,
3596 : 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,
3597 : 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,
3598 : 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,
3599 : 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,
3600 : 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,
3601 : 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,
3602 : 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,
3603 : 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,
3604 : 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 };
3605 :
3606 :
3607 : static const double texpO3[666] ={
3608 : 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,
3609 : 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,
3610 : 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,
3611 : 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,
3612 : 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,
3613 : 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,
3614 : 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,
3615 : 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,
3616 : 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,
3617 : 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,
3618 : 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,
3619 : 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,
3620 : 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,
3621 : 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,
3622 : 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,
3623 : 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,
3624 : 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,
3625 : 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,
3626 : 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,
3627 : 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,
3628 : 0.76,0.76,0.76,0.83,0.83,0.78};
3629 :
3630 :
3631 :
3632 :
3633 : static const double brdO3air[666] ={
3634 : 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,
3635 : 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,
3636 : 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,
3637 : 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,
3638 : 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,
3639 : 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,
3640 : 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,
3641 : 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,
3642 : 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,
3643 : 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,
3644 : 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,
3645 : 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,
3646 : 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,
3647 : 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,
3648 : 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,
3649 : 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,
3650 : 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,
3651 : 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,
3652 : 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,
3653 : 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,
3654 : 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,
3655 : 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,
3656 : 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,
3657 : 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,
3658 : 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};
3659 :
3660 :
3661 :
3662 : static const double flin[666] = {
3663 : .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,
3664 : .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,
3665 : .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,
3666 : .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,
3667 : .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,
3668 : .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,
3669 : .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,
3670 : .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,
3671 : .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,
3672 : .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,
3673 : .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,
3674 : .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,
3675 : .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,
3676 : .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,
3677 : .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,
3678 : .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,
3679 : .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,
3680 : .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,
3681 : .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,
3682 : .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,
3683 : .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,
3684 : .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,
3685 : .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,
3686 : .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,
3687 : .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,
3688 : .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,
3689 : .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,
3690 : .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,
3691 : .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,
3692 : .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,
3693 : .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,
3694 : .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,
3695 : .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,
3696 : .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,
3697 : .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,
3698 : .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,
3699 : .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};
3700 :
3701 :
3702 :
3703 :
3704 : static const double el[666] = {
3705 : 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,
3706 : 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,
3707 : 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,
3708 : 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,
3709 : 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,
3710 : 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,
3711 : 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,
3712 : 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,
3713 : 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,
3714 : 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,
3715 : 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,
3716 : 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,
3717 : 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,
3718 : 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,
3719 : 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,
3720 : 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,
3721 : 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,
3722 : 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,
3723 : 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,
3724 : 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,
3725 : 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,
3726 : 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,
3727 : 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,
3728 : 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,
3729 : 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,
3730 : 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,
3731 : 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,
3732 : 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,
3733 : 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,
3734 : 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,
3735 : 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,
3736 : 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,
3737 : 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,
3738 : 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,
3739 : 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,
3740 : 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,
3741 : 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};
3742 :
3743 :
3744 : static const unsigned int ini1[500]={
3745 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3746 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 4, 5, 6, 6, 6,
3747 : 0, 7, 7, 7, 9, 9, 9, 10, 11, 11, 12, 14, 16, 17, 17, 18, 20, 20, 21, 21,
3748 : 22, 23, 24, 25, 25, 25, 25, 28, 28, 28, 29, 32, 33, 34, 34, 34, 34, 35, 35, 35,
3749 : 36, 38, 38, 39, 40, 42, 42, 43, 43, 45, 46, 46, 49, 50, 50, 51, 52, 53, 54, 54,
3750 : 56, 56, 57, 57, 57, 59, 60, 62, 63, 64, 65, 65, 66, 66, 66, 68, 69, 69, 70, 70,
3751 : 72, 74, 75, 75, 79, 80, 80, 82, 84, 85, 88, 88, 90, 91, 91, 93, 95, 95, 95, 97,
3752 : 98, 98,101,101,101,103,104,105,106,107,108,110,113,114,114,115,115,115,117,118,
3753 : 118,119,120,121,122,122,125,127,129,129,130,131,132,132,133,135,137,137,137,139,
3754 : 141,142,143,144,145,148,150,151,151,153,153,153,154,156,157,158,159,159,161,161,
3755 : 161,163,166,167,171,171,172,172,173,177,177,180,181,181,182,184,185,187,189,191,
3756 : 191,191,192,194,198,199,200,201,203,205,205,207,208,208,211,214,219,222,224,227,
3757 : 228,231,235,237,241,242,243,246,247,249,249,249,251,253,255,259,260,261,261,262,
3758 : 265,268,270,271,272,274,274,278,278,279,280,280,281,282,285,286,288,289,290,291,
3759 : 293,293,295,295,295,301,302,307,308,309,310,310,310,311,312,316,318,318,322,324,
3760 : 325,327,327,329,330,331,332,332,335,335,337,340,342,345,346,347,347,348,352,352,
3761 : 353,355,355,356,359,362,363,364,367,369,384,386,388,389,392,393,393,398,398,398,
3762 : 398,398,398,399,399,399,399,399,399,399,399,400,400,404,404,404,406,406,407,407,
3763 : 412,414,415,417,418,418,421,422,422,424,425,426,429,429,430,432,435,435,436,436,
3764 : 438,441,443,445,445,447,447,447,450,451,452,454,455,457,459,462,464,464,466,467,
3765 : 468,471,472,473,476,480,482,485,487,487,489,490,491,493,493,494,497,498,502,507,
3766 : 511,518,524,532,540,540,543,544,546,547,548,549,552,555,559,562,563,563,565,567,
3767 : 569,570,572,574,576,577,578,579,581,582,584,586,588,589,589,590,595,596,598,601,
3768 : 602,602,603,605,607,607,608,608,610,617,617,619,620,622,623,624,625,626,627,627,
3769 : 628,630,636,638,638,641,645,645,647,649,649,649,651,653,654,657,662,662,662,664};
3770 :
3771 :
3772 : static const unsigned int ifin1[500]={
3773 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3774 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 4, 5, 5, 5, 6, 6, 6,
3775 : 0, 8, 8, 8, 9, 10, 10, 11, 13, 15, 16, 16, 17, 19, 19, 20, 20, 21, 22, 23,
3776 : 24, 24, 27, 27, 27, 28, 28, 28, 31, 32, 33, 33, 33, 34, 34, 34, 35, 35, 37, 37,
3777 : 38, 39, 41, 41, 42, 42, 44, 45, 45, 48, 49, 49, 50, 51, 52, 53, 53, 55, 55, 56,
3778 : 56, 56, 58, 59, 61, 62, 63, 64, 65, 65, 65, 67, 67, 68, 68, 69, 69, 71, 73, 74,
3779 : 74, 78, 79, 79, 81, 83, 84, 87, 87, 89, 90, 90, 92, 94, 94, 94, 96, 97,100,100,
3780 : 100, 102,102,103,104,105,106,107,109,112,113,114,114,114, 116,116,117,117,118,119,
3781 : 120,121,121,124,126,128,128,129,130,131,131,132,134,136,136,136,138,140,141,142,
3782 : 143,144,147,149,150,152,152,152,152,153,155,156,157,158,158,160,160,160,162,165,
3783 : 166,170,170,171,171,172,176,176,179,180,180,181,183,184,186,188,190,190,190,191,
3784 : 193,197,198,199,200,202,204,204,206,207,207,210,213,218,221,223,226,227,230,234,
3785 : 236,240,241,242,245,246,248,248,248,250,252,254,258,259,260,260,261,264,267,269,
3786 : 270,271,273,273,277,277,278,279,279,280,281,284,285,287,288,289,290,292,292,294,
3787 : 294,294,300,301,306,307,308,309,309,309,310,311,315,317,317,321,323,324,326,326,
3788 : 328,329,330,331,331,334,334,336,339,341,344,345,346,346,347,351,351,352,354,354,
3789 : 355,358,361,362,363,366,368,383,385,387,388,391,392,392,397,398,398,398,398,398,
3790 : 398,398,398,399,399,399,399,399,399,399,403,403,403,405,405,406,406,411,413,414,
3791 : 416,417,417,420,421,421,423,424,425,428,428,429,431,434,434,435,435,437,440,442,
3792 : 444,444,446,446,446,449,450,451,453,454,456,458,461,463,463,465,466,467,470,471,
3793 : 472,475,479,481,484,486,486,488,489,490,492,492,493,496,497,501,506,510,517,523,
3794 : 531,539,539,542,543,545,546,547,548,551,554,558,561,562,562,564,566,568,569,571,
3795 : 573,575,576,577,578,580,581,583,585,587,588,588,589,594,595,597,600,601,601,602,
3796 : 604,606,606,607,607,609,616,616,618,619,621,622,623,624,625,626,626,627,629,635,
3797 : 637,637,640,644,644,646,648,648,648,650,652,653,656,661,661,661,663,664,665,665};
3798 :
3799 :
3800 : static const double pi=3.141592654;
3801 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
3802 : static const double mu=0.53; // dipole moment in Debyes
3803 : static const double mmol=48.0;
3804 :
3805 : //double q=0.6531261*pow(tt,1.5);
3806 166706 : double q=0.6531261*tt*sqrt(tt);
3807 : // unsigned int vp;
3808 :
3809 : unsigned int ini;
3810 : unsigned int ifin;
3811 : static const bool allfreqs = false;
3812 : static const unsigned int zero = 0;
3813 : static const unsigned int nmaxvp = 499;
3814 166706 : std::complex<double> lshape;
3815 166706 : std::complex<double> lshapeacum;
3816 :
3817 : //lshapeacum = std::complex<double>(0.0,0.0);
3818 :
3819 166706 : if(nu<999.99){
3820 :
3821 : // vp = vpIndex(nu);
3822 :
3823 166706 : if(vp>2){ ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
3824 0 : }else{ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;}
3825 :
3826 : if(allfreqs){ ini=0; ifin=665; }
3827 :
3828 166706 : if(ifin==0||ifin<ini){
3829 :
3830 : // return std::complex<double> (0.0,0.0);
3831 :
3832 : }else{
3833 :
3834 788910 : for(unsigned int i=ini; i<ifin+1; i++){
3835 :
3836 674220 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
3837 674220 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
3838 674220 : lshapeacum=lshapeacum+lshape;
3839 :
3840 : }
3841 :
3842 : }
3843 :
3844 : }
3845 :
3846 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // IMAGINARY PART: ABSORPTION COEFFICIENT IN CM^2
3847 333412 : *(0.047992745509/tt); // REAL PART: DELAY IN RAD*CM^2
3848 166706 : return lshapeacum*1e-4; // 1e-4 TO trnasform to SI UNITS (RAD M^2 , M^2)
3849 :
3850 : }
3851 :
3852 :
3853 :
3854 : //////////////////////// OPACITY SOURCE nuMBER: 19 /////////////////////////////
3855 :
3856 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o_v3(double tt, double pp, double nu, unsigned int vp){
3857 :
3858 : static const double fre[714] = {
3859 : 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,
3860 : 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,
3861 : 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,
3862 : 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,
3863 : 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,
3864 : 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,
3865 : 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,
3866 : 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,
3867 : 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,
3868 : 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,
3869 : 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,
3870 : 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,
3871 : 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,
3872 : 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,
3873 : 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,
3874 : 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,
3875 : 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,
3876 : 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,
3877 : 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,
3878 : 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,
3879 : 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,
3880 : 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,
3881 : 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,
3882 : 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,
3883 : 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,
3884 : 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,
3885 : 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,
3886 : 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,
3887 : 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,
3888 : 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,
3889 : 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,
3890 : 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,
3891 : 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,
3892 : 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,
3893 : 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,
3894 : 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,
3895 : 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,
3896 : 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,
3897 : 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,
3898 : 989.28987,991.33885, 991.84738, 992.38406, 994.98341, 995.02088,996.38805,996.39151, 996.41823, 997.23313, 998.00653, 999.20740 };
3899 :
3900 : static const double texpO3[714] ={
3901 : 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,
3902 : 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,
3903 : 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,
3904 : 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,
3905 : 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,
3906 : 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,
3907 : 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,
3908 : 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,
3909 : 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,
3910 : 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,
3911 : 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,
3912 : 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,
3913 : 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,
3914 : 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,
3915 : 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,
3916 : 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,
3917 : 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,
3918 : 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,
3919 : 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,
3920 : 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,
3921 : 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,
3922 : 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,
3923 : 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,
3924 : 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,
3925 : 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,
3926 : 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};
3927 :
3928 :
3929 :
3930 : static const double brdO3air[714] ={
3931 : 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,
3932 : 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,
3933 : 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,
3934 : 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,
3935 : 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,
3936 : 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,
3937 : 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,
3938 : 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,
3939 : 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,
3940 : 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,
3941 : 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,
3942 : 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,
3943 : 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,
3944 : 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,
3945 : 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,
3946 : 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,
3947 : 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,
3948 : 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,
3949 : 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,
3950 : 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,
3951 : 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,
3952 : 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,
3953 : 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,
3954 : 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,
3955 : 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,
3956 : 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,
3957 : 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,
3958 : 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,
3959 : 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,
3960 : 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,
3961 : 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,
3962 : 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,
3963 : 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,
3964 : 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,
3965 : 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,
3966 : 2.0154,2.1604,2.3000,2.1367,2.1071,2.3498,2.1249,2.3000,2.1574,2.1574,
3967 : 2.3000,2.4978,2.1456,2.3000};
3968 :
3969 :
3970 :
3971 : static const double flin[714] = {
3972 : .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,
3973 : .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,
3974 : .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,
3975 : .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,
3976 : .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,
3977 : .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,
3978 : .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,
3979 : .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,
3980 : .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,
3981 : .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,
3982 : .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,
3983 : .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,
3984 : .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,
3985 : .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,
3986 : .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,
3987 : .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,
3988 : .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,
3989 : .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,
3990 : .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,
3991 : .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,
3992 : .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,
3993 : .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,
3994 : .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,
3995 : .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,
3996 : .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,
3997 : .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,
3998 : .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,
3999 : .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,
4000 : .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,
4001 : .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,
4002 : .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,
4003 : .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,
4004 : .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,
4005 : .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,
4006 : .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,
4007 : .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,
4008 : .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,
4009 : .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,
4010 : .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,
4011 : .621e+02, .392e+02, .431e+02, .107e+02, .405e+02, .117e+02, .365e+02, .114e+00, .674e+02, .130e+00, .378e+02, .159e+02};
4012 :
4013 : static const double el[714] = {
4014 : 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,
4015 : 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,
4016 : 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,
4017 : 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,
4018 : 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,
4019 : 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,
4020 : 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,
4021 : 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,
4022 : 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,
4023 : 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,
4024 : 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,
4025 : 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,
4026 : 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,
4027 : 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,
4028 : 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,
4029 : 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,
4030 : 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,
4031 : 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,
4032 : 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,
4033 : 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,
4034 : 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,
4035 : 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,
4036 : 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,
4037 : 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,
4038 : 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,
4039 : 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,
4040 : 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,
4041 : 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,
4042 : 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,
4043 : 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,
4044 : 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,
4045 : 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,
4046 : 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,
4047 : 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,
4048 : 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,
4049 : 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,
4050 : 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,
4051 : 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,
4052 : 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,
4053 : 2109.336, 863.040, 995.784, 147.499, 905.909, 1658.052, 780.284, 546.777, 2019.573, 201.247, 820.852, 1177.534 };
4054 :
4055 :
4056 :
4057 : static const unsigned int ini1[500]={
4058 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4059 : 0, 0, 1, 1, 1, 0, 0, 2, 2, 2, 3, 0, 0, 0, 4, 4, 4, 0, 0, 6,
4060 : 6, 6, 10, 0, 0, 11, 11, 11, 12, 12, 14, 17, 19, 19, 20, 20, 20, 22, 22, 23,
4061 : 24, 26, 27, 29, 29, 29, 30, 30, 30, 31, 31, 34, 35, 35, 36, 38, 38, 39, 40, 41,
4062 : 43, 44, 45, 46, 46, 46, 47, 47, 47, 49, 51, 51, 52, 54, 56, 57, 58, 58, 58, 59,
4063 : 61, 62, 62, 63, 63, 64, 64, 64, 66, 67, 68, 68, 69, 69, 72, 72, 73, 74, 76, 79,
4064 : 80, 80, 81, 82, 82, 84, 86, 86, 86, 87, 90, 92, 92, 96, 97, 99,101,102,103,103,
4065 : 104,105,107,107,108,110,110,111,111,112,113,113,115,115,115,116,118,119,121,122,
4066 : 123,123,124,125,125,128,130,130,131,131,133,134,135,137,139,141,142,143,145,147,
4067 : 147,148,151,152,154,154,155,158,160,161,161,162,162,163,164,165,165,167,169,171,
4068 : 175,175,175,176,177,177,177,180,180,181,183,185,186,188,188,190,190,193,194,194,
4069 : 197,197,197,198,200,203,204,205,208,209,210,211,213,220,222,225,229,231,235,236,
4070 : 237,239,243,243,243,247,249,250,251,251,254,255,258,260,260,261,262,263,267,267,
4071 : 267,269,271,275,279,281,282,286,288,290,293,296,296,296,297,299,300,302,305,305,
4072 : 306,307,309,311,312,313,314,316,317,322,325,326,329,330,333,335,336,336,336,337,
4073 : 338,341,342,345,347,349,351,352,352,355,356,357,361,362,364,365,369,371,373,376,
4074 : 377,379,381,383,392,401,401,404,404,407,409,411,413,414,416,417,417,417,417,417,
4075 : 417,417,417,417,417,417,417,421,421,421,422,423,424,427,430,432,432,433,435,436,
4076 : 437,437,438,443,444,446,447,447,450,450,450,453,456,458,460,463,464,465,467,469,
4077 : 469,471,471,471,472,473,474,476,477,479,482,483,487,489,489,489,491,492,493,494,
4078 : 496,501,503,505,509,511,511,513,514,515,519,523,526,531,536,539,550,560,562,564,
4079 : 564,566,567,567,568,570,575,577,578,580,583,583,584,585,587,587,590,593,596,596,
4080 : 596,599,600,605,606,606,609,610,610,612,614,614,616,617,619,622,623,624,624,627,
4081 : 629,631,631,633,633,633,636,640,644,645,647,648,650,652,652,655,655,656,659,661,
4082 : 664,666,668,670,671,672,674,676,679,680,681,687,689,693,696,698,703,705,706,708};
4083 :
4084 :
4085 : static const unsigned int ifin1[500]={
4086 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4087 : 0, 0, 1, 1, 1, 0, 0, 2, 3, 3, 3, 0, 0, 0, 5, 5, 5, 0, 0, 9,
4088 : 10, 10, 10, 0, 0, 11, 11, 13, 16, 18, 18, 19, 19, 19, 21, 21, 22, 23, 25, 26,
4089 : 28, 29, 29, 29, 30, 30, 30, 30, 33, 34, 34, 35, 37, 37, 38, 39, 40, 42, 43, 44,
4090 : 45, 45, 45, 46, 46, 46, 48, 50, 50, 51, 53, 55, 56, 57, 57, 57, 58, 60, 61, 61,
4091 : 62, 62, 63, 63, 63, 65, 66, 67, 67, 68, 68, 71, 71, 72, 73, 75, 78, 79, 79, 80,
4092 : 81, 81, 83, 85, 85, 85, 86, 89, 91, 91, 95, 96, 98,100,101,102,102,103,104,106,
4093 : 106,107,109,109,110,110,111,112,112,114,114,114,115,117,118,120,121,122,122,123,
4094 : 124,124,127,129,129,130,130,132,133,134,136,138,140,141,142,144,146,146,147,150,
4095 : 151,153,153,154,157,159,160,160,161,161,162,163,164,164,166,168,170,174,174,174,
4096 : 175,176,176,176,179,179,180,182,184,185,187,187,189,189,192,193,193,196,196,196,
4097 : 197,199,202,203,204,207,208,209,210,212,219,221,224,228,230,234,235,236,238,242,
4098 : 242,242,246,248,249,250,250,253,254,257,259,259,260,261,262,266,266,266,268,270,
4099 : 274,278,280,281,285,287,289,292,295,295,295,296,298,299,301,304,304,305,306,308,
4100 : 310,311,312,313,315,316,321,324,325,328,329,332,334,335,335,335,336,337,340,341,
4101 : 344,346,348,350,351,351,354,355,356,360,361,363,364,368,370,372,375,376,378,380,
4102 : 382,391,400,400,403,403,406,408,410,412,413,415,416,416,420,420,420,420,420,420,
4103 : 421,421,421,421,421,421,421,421,422,423,426,429,431,431,432,434,435,436,436,437,
4104 : 442,443,445,446,449,449,449,449,452,455,457,459,462,463,464,466,468,470,470,470,
4105 : 470,471,472,473,475,476,478,481,482,486,488,488,488,490,491,492,493,495,500,502,
4106 : 504,508,510,510,512,513,514,518,522,525,530,535,538,549,559,561,563,563,565,566,
4107 : 566,567,569,574,576,577,579,582,582,583,584,586,586,589,592,595,595,595,598,599,
4108 : 604,605,605,608,609,609,611,613,613,615,616,618,621,622,623,623,626,628,630,630,
4109 : 632,632,632,635,639,643,644,646,647,649,651,651,654,654,655,658,660,663,665,667,
4110 : 669,670,671,673,675,678,679,680,686,688,692,695,697,702,704,705,707,711,713,713};
4111 :
4112 :
4113 :
4114 : static const double pi=3.141592654;
4115 : static const double picube8div3hcesu=4.1623755e-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755e-19
4116 : static const double mu=0.53; // debyes
4117 : static const double mmol=48.0;
4118 :
4119 : //double q=1.321477358*pow(tt,1.5);
4120 166706 : double q=1.321477358*tt*sqrt(tt);
4121 : // unsigned int vp;
4122 :
4123 : unsigned int ini;
4124 : unsigned int ifin;
4125 : static const bool allfreqs = false;
4126 : static const unsigned int zero = 0;
4127 : static const unsigned int nmaxvp = 499;
4128 166706 : std::complex<double> lshape;
4129 166706 : std::complex<double> lshapeacum;
4130 :
4131 166706 : if(nu>999.9){
4132 :
4133 0 : return std::complex<double> (0.0,0.0);
4134 :
4135 : }else{
4136 :
4137 : // vp = vpIndex(nu);
4138 :
4139 166706 : if(vp>2){ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
4140 0 : }else{ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1; }
4141 :
4142 : if(allfreqs){ ini=0; ifin=713;}
4143 :
4144 :
4145 166706 : if(ifin==0||ifin<ini){
4146 :
4147 0 : return std::complex<double> (0.0,0.0);
4148 :
4149 : }else{
4150 :
4151 1008706 : for(unsigned int i=ini; i<ifin+1; i++){
4152 :
4153 842000 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
4154 842000 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
4155 842000 : lshapeacum=lshapeacum+lshape;
4156 :
4157 : }
4158 :
4159 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // imaginary part: absorption coefficient in cm^2
4160 333412 : *(0.047992745509/tt); // real part: delay in rad*cm^2
4161 :
4162 166706 : return lshapeacum*1e-4; // 1e-4 to transform to SI units (rad m^2 , m^2)
4163 :
4164 : }
4165 :
4166 : }
4167 :
4168 : }
4169 :
4170 :
4171 : //////////////////////// opacity source number: 17 /////////////////////////////
4172 :
4173 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o_v2(double tt, double pp, double nu, unsigned int vp){
4174 :
4175 :
4176 : static const double fre[568] ={
4177 : 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,
4178 : 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,
4179 : 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,
4180 : 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,
4181 : 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,
4182 : 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,
4183 : 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,
4184 : 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,
4185 : 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,
4186 : 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,
4187 : 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,
4188 : 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,
4189 : 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,
4190 : 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,
4191 : 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,
4192 : 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,
4193 : 594.21044,594.31769,599.98038,602.54025,602.77669,603.07944,605.71838,606.73050,607.20000,612.38584,616.14838,617.39475,619.54994,620.03894,621.70319,625.28488,625.60675,626.65838, // 607.20313 ,612.38725 FREQS. CORRECTED FEB2024
4194 : 626.72900,628.22391,628.28538,629.42363,630.10213,631.16613,631.90444,634.33016,639.34399,641.68387,644.84219,645.37319,648.50456,651.18725,651.81986,652.19394,652.27100,653.46007, // 628.22719 634.33369 639.34588 645.37494 651.82275 653.46219 FREQS. CORRECTED FEB2024
4195 : 656.57475,656.68450,657.05119,658.54256,659.09053,662.82150,665.16688,665.44316,665.85600,666.15088,666.16975,666.28896,666.45525,666.55975,666.64750,667.05931,667.17300,667.33156, // 659.09250 665.44538 666.29031
4196 : 667.42369,667.48806,667.69206,667.72163,667.85663,667.89350,667.93650,667.95325,669.57785,670.10263,670.26513,673.09203,674.88350,676.72750,678.40620,679.06831,681.94013,682.17938, // 669.58106 673.09713
4197 : 685.61463,685.88184,690.76166,691.11463,691.36369,691.47250,692.62288,695.32938,695.86706,697.08602,700.68500,702.22769,702.58563,707.27037,707.29169,708.63775,712.87313,714.34444, // 685.88850 690.76550 697.08969
4198 : 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,
4199 : 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,
4200 : 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,
4201 : 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,
4202 : 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,
4203 : 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,
4204 : 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,
4205 : 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,
4206 : 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,
4207 : 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,
4208 : 984.28937,989.64163,990.02188,991.23331,992.93944,994.59844,995.73769,997.30344,997.36875,998.92956};
4209 :
4210 : static const double texpo3[568] ={
4211 : 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,
4212 : 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,
4213 : 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,
4214 : 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,
4215 : 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,
4216 : 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,
4217 : 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,
4218 : 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,
4219 : 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,
4220 : 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,
4221 : 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,
4222 : 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,
4223 : 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,
4224 : 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,
4225 : 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,
4226 : 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,
4227 : 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,
4228 : 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,
4229 : 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,
4230 : 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,
4231 : 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,
4232 : 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,
4233 : 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,
4234 : 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};
4235 :
4236 : static const double brdo3air[568] ={
4237 : 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,
4238 : 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,
4239 : 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,
4240 : 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,
4241 : 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,
4242 : 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,
4243 : 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,
4244 : 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,
4245 : 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,
4246 : 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,
4247 : 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,
4248 : 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,
4249 : 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,
4250 : 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,
4251 : 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,
4252 : 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,
4253 : 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,
4254 : 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,
4255 : 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,
4256 : 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,
4257 : 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,
4258 : 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,
4259 : 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,
4260 : 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,
4261 : 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,
4262 : 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,
4263 : 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,
4264 : 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,
4265 : 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,
4266 : 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,
4267 : 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,
4268 : 2.3000,2.3000,2.3000,2.3000,2.3735,2.3000,2.3000,2.3000,2.3000, 2.3000};
4269 :
4270 :
4271 : static const double flin[568] ={
4272 : .159e+01, .301e+01, .412e+01, .329e+01, .290e+01, .118e+01, .453e+01, .279e+01, .132e+01, .290e+01, .100e+01, .462e+01,
4273 : .415e+01, .512e+00, .240e+01, .268e+01, .139e+01, .833e+00, .147e+01, .278e+01, .524e+01, .284e+01, .268e+01, .136e+01,
4274 : .508e+01, .473e+01, .615e+01, .681e+00, .381e+01, .370e+01, .248e+01, .626e+01, .120e+01, .384e+01, .231e+01, .434e+01,
4275 : .496e+01, .473e+01, .597e+01, .237e+01, .622e+01, .555e+00, .486e+01, .100e+01, .896e+00, .608e+01, .413e+01, .635e+01,
4276 : .731e+01, .926e+00, .468e+01, .462e+01, .344e+01, .367e+01, .827e+01, .327e+01, .438e+01, .587e+01, .200e+01, .455e+00,
4277 : .405e+01, .185e+01, .201e+01, .647e+01, .884e+01, .446e+01, .561e+00, .445e+01, .567e+01, .391e+00, .565e+01, .659e+01,
4278 : .542e+01, .303e+01, .426e+01, .905e+01, .159e+01, .284e+01, .546e+01, .307e+01, .465e+01, .667e+01, .164e+00, .139e+01,
4279 : .404e+01, .525e+01, .900e+01, .261e+01, .130e+02, .735e+01, .109e+02, .646e+01, .149e+02, .878e+01, .383e+01, .424e+01,
4280 : .165e+02, .115e+01, .680e+01, .516e+01, .504e+01, .239e+01, .503e+01, .697e+01, .592e+01, .625e+01, .176e+02, .351e+01,
4281 : .937e+00, .361e+01, .880e+01, .216e+01, .578e+01, .854e+00, .483e+01, .555e+01, .216e+01, .145e+01, .183e+02, .604e+01,
4282 : .251e+01, .922e+01, .339e+01, .714e+00, .344e+01, .461e+01, .194e+01, .582e+01, .427e+01, .184e+02, .502e+00, .855e+01,
4283 : .703e+01, .317e+01, .599e+01, .439e+01, .149e+01, .501e+01, .172e+01, .561e+01, .738e+01, .295e+01, .302e+00, .709e+01,
4284 : .651e+01, .112e+02, .682e+01, .564e+01, .167e+01, .183e+02, .868e+01, .417e+01, .240e+02, .149e+01, .218e+02, .258e+02,
4285 : .194e+02, .539e+01, .126e+00, .272e+01, .831e+01, .616e+01, .271e+02, .661e+01, .170e+02, .395e+01, .127e+01, .179e+01,
4286 : .147e+02, .517e+01, .105e+02, .250e+01, .211e+01, .179e+02, .278e+02, .659e+01, .639e+01, .133e+02, .126e+02, .373e+01,
4287 : .105e+01, .696e+01, .861e+01, .495e+01, .228e+01, .107e+02, .813e+01, .280e+02, .617e+01, .785e+01, .693e+01, .124e+02,
4288 : .351e+01, .719e+01, .836e+00, .914e+01, .263e+01, .208e+01, .473e+01, .205e+01, .174e+02, .772e+01, .595e+01, .153e+02,
4289 : .642e+01, .328e+01, .628e+00, .720e+01, .520e+01, .278e+02, .402e+01, .284e+01, .160e+01, .884e+00, .451e+01, .223e+01,
4290 : .342e+01, .457e+01, .144e+02, .183e+01, .330e+02, .570e+01, .350e+02, .682e+01, .319e+01, .305e+02, .573e+01, .792e+01,
4291 : .801e+01, .431e+00, .306e+01, .365e+02, .103e+02, .899e+01, .279e+02, .811e+01, .429e+01, .100e+02, .161e+01, .740e+01,
4292 : .170e+02, .374e+02, .227e+01, .551e+01, .110e+02, .174e+02, .252e+00, .252e+02, .283e+01, .272e+02, .382e+01, .165e+02,
4293 : .406e+01, .839e+01, .139e+01, .119e+02, .800e+01, .226e+02, .529e+01, .101e+00, .261e+01, .754e+01, .794e+01, .651e+01,
4294 : .126e+02, .249e+01, .454e+01, .384e+01, .117e+01, .203e+02, .122e+02, .185e+02, .507e+01, .195e+02, .238e+01, .166e+02,
4295 : .133e+02, .266e+02, .629e+01, .261e+01, .361e+01, .233e+01, .958e+00, .183e+02, .536e+01, .944e+01, .765e+01, .484e+01,
4296 : .216e+01, .139e+02, .607e+01, .165e+02, .277e+01, .790e+01, .339e+01, .754e+00, .206e+02, .630e+01, .462e+01, .216e+02,
4297 : .194e+01, .148e+02, .144e+02, .897e+01, .585e+01, .773e+01, .904e+01, .142e+02, .295e+01, .259e+02, .163e+02, .316e+01,
4298 : .559e+00, .134e+02, .740e+01, .439e+01, .172e+01, .120e+02, .334e+02, .562e+01, .226e+02, .148e+02, .314e+01, .107e+02,
4299 : .294e+01, .225e+01, .378e+00, .789e+01, .949e+01, .829e+01, .712e+01, .867e+01, .110e+02, .100e+02, .236e+02, .886e+01,
4300 : .112e+02, .595e+01, .769e+01, .653e+01, .417e+01, .479e+01, .537e+01, .125e+02, .420e+01, .361e+01, .299e+01, .235e+01,
4301 : .167e+01, .909e+00, .137e+02, .150e+01, .778e+01, .148e+02, .306e+02, .540e+01, .160e+02, .333e+01, .272e+01, .216e+00,
4302 : .151e+02, .171e+02, .163e+02, .161e+02, .253e+02, .101e+02, .395e+01, .129e+01, .182e+02, .247e+02, .354e+01, .518e+01,
4303 : .281e+02, .249e+01, .840e-01, .192e+02, .789e+01, .257e+02, .782e+01, .372e+01, .118e+02, .101e+02, .108e+01, .153e+02,
4304 : .201e+02, .495e+01, .259e+02, .370e+01, .227e+01, .618e+01, .206e+01, .267e+02, .208e+02, .350e+01, .127e+02, .879e+00,
4305 : .136e+02, .393e+01, .185e+02, .160e+02, .473e+01, .240e+02, .205e+01, .155e+02, .785e+01, .595e+01, .277e+02, .215e+02,
4306 : .789e+01, .350e+01, .327e+01, .686e+00, .156e+02, .222e+02, .450e+01, .184e+01, .404e+01, .573e+01, .287e+02, .221e+02,
4307 : .431e+01, .359e+01, .305e+01, .503e+00, .206e+02, .156e+02, .428e+01, .206e+02, .787e+01, .162e+01, .297e+02, .176e+02,
4308 : .160e+02, .115e+02, .191e+02, .551e+01, .790e+01, .372e+01, .283e+01, .226e+02, .336e+00, .147e+02, .177e+02, .405e+01,
4309 : .469e+01, .180e+01, .141e+01, .164e+02, .307e+02, .433e+01, .528e+01, .151e+02, .157e+02, .389e+01, .261e+01, .195e+02,
4310 : .182e+02, .197e+02, .208e+02, .139e+02, .189e+00, .170e+02, .221e+02, .157e+02, .126e+02, .144e+02, .233e+02, .132e+02,
4311 : .229e+02, .114e+02, .120e+02, .102e+02, .108e+02, .383e+01, .789e+01, .964e+01, .906e+01, .848e+01, .790e+01, .317e+02,
4312 : .732e+01, .245e+02, .674e+01, .615e+01, .557e+01, .497e+01, .437e+01, .375e+01, .311e+01, .244e+01, .172e+01, .925e+00,
4313 : .121e+01, .228e+02, .506e+01, .257e+02, .508e+01, .407e+01, .159e+02, .791e+01, .239e+01, .720e-01, .267e+02, .360e+01,
4314 : .328e+02, .218e+02, .101e+01, .232e+02, .158e+02, .483e+01, .277e+02, .425e+01, .217e+01, .453e+01, .167e+02, .550e+01,
4315 : .130e+02, .790e+01, .338e+02, .338e+01, .812e+00, .461e+01, .249e+02, .445e+01, .792e+01, .195e+01, .239e+02, .159e+02,
4316 : .348e+02, .597e+01, .316e+01, .158e+02, .152e+01, .629e+00, .438e+01, .464e+01, .174e+01, .358e+02, .792e+01, .651e+01,
4317 : .280e+02, .294e+01, .464e+01, .458e+00, .416e+01, .260e+02, .270e+02, .189e+02, .483e+01, .793e+01, .153e+01, .539e+01,
4318 : .265e+02, .368e+02, .715e+01, .159e+02, .272e+01, .450e+01, .151e+00, .394e+01, .250e+02, .148e+02, .503e+01, .792e+01,
4319 : .133e+01, .516e+01, .378e+02, .793e+01};
4320 :
4321 :
4322 : static const double el[568] ={
4323 : 11.564, 347.469, 404.758, 225.711, 246.123, 182.264, 465.222, 184.019, 144.105, 404.786, 225.062, 563.532,
4324 : 433.125, 3.654, 534.637, 467.128, 110.406, 272.396, 49.168, 22.065, 671.848, 97.668, 201.919, 81.410,
4325 : 635.130, 635.048, 918.018, 324.278, 374.061, 347.439, 3.596, 962.487, 56.969, 270.353, 145.945, 12.026,
4326 : 529.279, 711.631, 25.180, 162.424, 874.309, 380.636, 598.169, .041, 30.624, 918.055, 37.180, 1008.843,
4327 : 43.130, 37.240, 563.548, 793.142, 319.819, 127.676, 65.742, 295.092, 879.744, 874.328, 127.685, 441.506,
4328 : 971.495, 112.958, 3.617, 1104.538, 92.984, 529.274, 22.075, 319.826, 832.197, 17.016, 57.049, 962.509,
4329 : 598.108, 270.327, 496.865, 124.829, 97.643, 247.781, 790.981, 12.036, 162.403, 1153.066, 11.618, 84.935,
4330 : 465.276, 751.192, 161.170, 225.706, 172.479, 81.414, 134.411, 1104.844, 215.410, 101.059, 435.157, 25.179,
4331 : 263.060, 72.429, 72.686, 374.056, 712.448, 205.373, 49.157, 1055.560, 671.817, 1057.798, 315.395, 30.638,
4332 : 61.841, 406.083, 202.022, 16.985, 201.877, 8.340, 675.130, 43.118, 185.872, 11.606, 372.289, 1011.906,
4333 : 22.069, 110.415, 378.405, 52.068, 37.179, 638.832, 167.838, 967.257, 57.033, 433.727, 43.639, 247.320,
4334 : 65.718, 351.800, 433.076, 603.901, 5.782, 81.430, 150.936, 923.886, 1153.357, 326.494, 36.379, 246.031,
4335 : 750.331, 144.080, 1311.622, 110.468, 8.327, 499.710, 92.937, 570.032, 589.592, 135.253, 517.028, 666.925,
4336 : 449.184, 881.639, 30.392, 302.330, 297.218, 144.047, 748.890, 1260.962, 386.324, 537.498, 120.803, 11.575,
4337 : 328.222, 840.683, 124.836, 279.413, 16.978, 570.163, 835.460, 182.270, 1211.612, 182.226, 275.157, 506.148,
4338 : 107.501, 496.921, 295.005, 800.840, 257.673, 227.103, 351.481, 926.626, 1163.461, 1256.110, 225.043, 161.185,
4339 : 476.016, 833.683, 95.477, 184.025, 30.577, 22.083, 762.294, 237.154, 645.127, 145.966, 1116.416, 225.054,
4340 : 112.947, 446.978, 84.569, 272.372, 84.863, 1022.193, 61.793, 43.707, 30.372, 25.561, 724.957, 36.353,
4341 : 52.030, 72.479, 202.069, 217.828, 1146.987, 97.686, 1253.920, 127.632, 49.222, 1044.889, 1070.673, 162.401,
4342 : 410.270, 74.956, 419.251, 1365.445, 348.538, 201.875, 947.483, 565.530, 688.720, 246.038, 199.811, 324.269,
4343 : 724.463, 1481.535, 37.167, 1026.034, 294.973, 272.358, 66.549, 854.940, 392.722, 1122.087, 72.706, 247.384,
4344 : 653.788, 1363.644, 182.893, 348.570, 921.913, 767.344, 982.698, 59.341, 367.499, 380.646, 473.541, 1379.350,
4345 : 406.719, 21.949, 101.121, 620.057, 167.280, 684.679, 406.768, 297.136, 940.564, 324.226, 343.377, 808.142,
4346 : 469.614, 1226.457, 1328.814, 25.541, 587.530, 56.977, 152.767, 607.128, 134.353, 638.947, 441.518, 899.633,
4347 : 320.458, 537.053, 1279.381, 534.558, 30.347, 541.232, 556.205, 139.557, 351.434, 172.485, 859.804, 380.645,
4348 : 298.741, 467.118, 609.038, 1014.866, 1231.250, 507.000, 1475.996, 469.624, 36.421, 1335.267, 896.334, 526.083,
4349 : 127.448, 404.731, 215.390, 821.278, 278.226, 347.401, 1506.150, 1184.321, 410.291, 685.673, 43.669, 295.112,
4350 : 497.163, 81.357, 116.640, 613.468, 247.742, 205.363, 167.850, 263.037, 717.017, 270.303, 441.502, 225.696,
4351 : 319.788, 135.283, 185.879, 150.859, 783.954, 107.546, 120.741, 374.038, 95.429, 84.627, 74.921, 66.519,
4352 : 59.317, 53.316, 433.138, 259.013, 576.905, 496.969, 1389.083, 1138.595, 565.614, 51.982, 469.444, 107.033,
4353 : 766.768, 638.955, 537.020, 989.004, 1448.392, 315.386, 747.831, 240.901, 716.975, 473.517, 61.844, 1094.070,
4354 : 1277.053, 442.928, 98.627, 799.662, 690.158, 506.988, 651.349, 712.911, 372.300, 1112.489, 224.091, 852.433,
4355 : 887.103, 1050.747, 1170.143, 72.407, 417.612, 1456.133, 110.455, 541.220, 979.192, 679.192, 799.684, 208.381,
4356 : 433.739, 84.906, 609.058, 1086.099, 1008.625, 1068.224, 393.499, 942.681, 730.243, 1405.610, 576.895, 1075.823,
4357 : 771.403, 48.496, 646.674, 193.973, 499.775, 971.444, 967.705, 370.587, 97.674, 1356.289, 613.508, 1176.998,
4358 : 112.894, 53.291, 615.359, 180.666, 879.730, 1037.328, 927.887, 685.627, 813.701, 348.976, 651.317, 570.193,
4359 : 1187.551, 1214.934, 793.186, 1308.169, 857.097, 59.287, 585.244, 1282.820, 168.659, 887.090, 711.600, 889.370,
4360 : 145.944, 144.029, 328.466, 635.051, 690.185, 127.653, 1261.251, 563.515, 1136.487, 66.483, 556.331, 833.714,
4361 : 750.393, 645.088, 921.887, 496.867, 157.853, 671.839, 1014.795, 598.166, 435.188, 529.285, 1112.519, 465.205,
4362 : 1393.095, 378.360, 406.031, 326.469, 351.767, 852.054, 901.630, 302.314, 279.406, 257.674, 237.163, 730.251,
4363 : 217.844, 1214.944, 199.734, 182.923, 167.216, 152.810, 139.505, 127.502, 116.600, 106.998, 98.597, 91.396,
4364 : 309.256, 766.811, 1215.534, 1322.151, 183.982, 74.979, 1293.577, 947.232, 528.619, 148.147, 1433.926, 815.940,
4365 : 771.356, 724.370, 291.148, 1507.933, 1240.174, 1171.018, 1550.459, 84.579, 502.107, 162.407, 979.165, 227.018,
4366 : 1322.150, 994.038, 813.693, 781.026, 274.241,1127.703, 852.489, 95.474, 1041.900, 476.897, 808.154, 1403.979,
4367 : 857.023, 275.150, 747.314, 1348.302, 182.257, 258.634, 1085.589, 107.484, 452.788, 901.640, 1090.933, 328.262,
4368 : 1537.221, 714.802, 201.890, 244.127, 1044.676, 896.356, 942.642, 1075.825, 120.771, 1140.994, 429.879, 1442.209,
4369 : 1421.499, 947.188, 386.230, 1460.983, 683.592, 85.372, 230.921, 1005.064, 1310.746, 1433.988, 135.206, 449.226,
4370 : 408.172, 1394.096, 993.993, 1192.218};
4371 :
4372 : static const unsigned int ini1[500]={
4373 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4, 5,
4374 : 6, 9, 10, 13, 14, 14, 14, 0, 17, 17, 17, 19, 19, 19, 20, 21, 21, 22, 24, 24,
4375 : 24, 25, 27, 27, 28, 28, 28, 30, 30, 30, 31, 31, 34, 34, 36, 36, 36, 38, 39, 41,
4376 : 42, 44, 46, 47, 47, 47, 49, 49, 49, 50, 52, 54, 54, 54, 55, 55, 55, 56, 58, 58,
4377 : 58, 59, 61, 62, 62, 64, 65, 66, 67, 67, 69, 70, 70, 71, 71, 73, 74, 74, 75, 75,
4378 : 75, 76, 76, 76, 77, 79, 80, 81, 81, 82, 83, 84, 84, 84, 85, 85, 85, 86, 86, 87,
4379 : 87, 89, 91, 93, 93, 95, 95, 96, 98,100,100,101,102,103,104,104,107,108,109,110,
4380 : 110,112,113,113,115,115,117,119,119,120,120,123,123,124,124,124,125,126,126,127,
4381 : 127,127,128,130,130,130,134,134,134,135,137,138,139,139,139,140,141,142,145,145,
4382 : 147,150,150,152,155,155,155,156,158,158,159,161,161,164,165,165,166,166,168,168,
4383 : 168,169,171,172,175,175,177,178,178,180,181,182,182,182,184,184,185,186,187,189,
4384 : 190,192,195,195,197,197,197,199,199,201,202,202,203,203,205,207,207,209,210,211,
4385 : 216,219,222,223,225,227,229,229,232,233,234,234,236,237,239,240,240,242,244,244,
4386 : 249,250,250,252,252,252,254,256,257,257,257,259,259,261,262,263,265,265,267,268,
4387 : 269,269,270,272,273,274,276,278,278,279,280,280,283,285,287,287,287,288,288,290,
4388 : 290,291,291,294,295,297,297,297,298,298,300,301,303,303,305,307,310,313,313,314,
4389 : 314,315,316,316,318,318,319,321,324,324,327,329,329,330,333,350,351,353,354,355,
4390 : 356,358,359,360,362,362,362,366,367,369,370,370,371,373,373,375,376,376,377,379,
4391 : 379,382,384,384,385,386,387,388,389,389,390,390,391,394,396,398,398,400,401,402,
4392 : 403,403,406,407,408,409,411,412,412,412,414,415,415,417,417,418,419,421,422,424,
4393 : 425,425,426,427,427,429,431,434,436,436,436,440,441,442,443,443,444,445,448,449,
4394 : 451,451,452,454,460,463,466,469,471,477,492,493,494,495,496,496,501,502,502,503,
4395 : 503,504,505,507,507,509,511,511,512,515,515,515,516,519,520,520,521,521,522,523,
4396 : 523,524,526,527,528,528,530,531,533,534,534,535,535,536,537,537,537,539,539,543,
4397 : 543,544,544,544,548,548,549,551,552,555,555,556,557,558,559,559,560,562,563,565};
4398 :
4399 : static const unsigned int ifin1[500]={
4400 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 5, 8, 9,
4401 : 12, 13, 13, 13, 16, 16, 16, 18, 18, 18, 18, 19, 20, 20, 21, 23, 23, 23, 24, 26,
4402 : 27, 27, 27, 29, 29, 29, 29, 30, 30, 33, 35, 35, 35, 37, 37, 38, 40, 41, 43, 45,
4403 : 46, 46, 48, 48, 48, 49, 49, 51, 53, 53, 53, 54, 54, 54, 55, 57, 57, 57, 58, 60,
4404 : 61, 61, 63, 64, 65, 66, 66, 68, 69, 69, 70, 70, 72, 73, 73, 74, 74, 74, 75, 75,
4405 : 75, 76, 78, 79, 80, 80, 81, 82, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 88, 90,
4406 : 92, 92, 94, 94, 95, 97, 99, 99,100,101,102,103,103,106,107,108,109,109,111,112,
4407 : 112,114,114,116,118,118,119,119,122,122,123,123,123,124,125,126,126,126, 127,127,
4408 : 129,129,133,133,133,134,134,136,137,138,138,138,139,140,141,144,144,146,149,149,
4409 : 151,154,154,154,155,157,157,158,160,160,163,164,164,165,167,167,167,168,168,170,
4410 : 171,174,174,176,177,177,179,180,181,181,181,183,183,184,185,186,188,189,191,194,
4411 : 194,196,196,196,198,198,200,201,201,202,202,204,206,206,208,209,210,215,218,221,
4412 : 222,224,226,228,228,231,232,233,233,235,236,238,239,239,241,243,243,248,249,251,
4413 : 251,251,253,253,255,256,256,256,258,258,260,261,262,264,264,266,267,268,268,269,
4414 : 271,272,273,275,277,277,278,279,279,282,284,286,286,286,287,287,289,289,290,290,
4415 : 293,294,296,296,296,297,297,299,300,302,302,304,306,309,312,312,313,313,314,315,
4416 : 315,317,317,318,320,323,323,326,328,328,329,332,349,350,352,353,354,355,357,358,
4417 : 359,361,361,361,365,366,368,369,369,370,372,372,374,375,375,376,378,378,381,383,
4418 : 383,384,385,386,387,388,388,389,389,390,393,395,397,397,399,400,401,402,402,405,
4419 : 406,407,408,410,411,411,411,413,414,414,416,416,417,418,420,421,423,424,424,425,
4420 : 426,426,428,430,433,435,435,435,439,440,441,442,442,443,444,447,448,450,450,451,
4421 : 453,459,462,465,468,470,476,491,492,493,494,495,495,500,501,501,502,502,503,504,
4422 : 506,506,508,510,510,511,514,514,514,515,518,519,519,520,520,521,522,522,523,525,
4423 : 526,527,527,529,530,532,533,533,534,534,535,536,536,536,538,538,542,542,543,543,
4424 : 543,547,547,548,550,551,554,554,555,556,557,558,558,559,561,562,564,566,567,567};
4425 :
4426 : static const double pi=3.141592654;
4427 : static const double picube8div3hcesu=4.1623755e-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755e-19
4428 : static const double mu=0.53; //debyes
4429 : static const double mmol=48.0;
4430 :
4431 : //double q=0.647739935*pow(tt,1.5);
4432 166706 : double q=0.647739935*tt*sqrt(tt);
4433 : // unsigned int vp;
4434 :
4435 : unsigned int ini;
4436 : unsigned int ifin;
4437 : static const bool allfreqs = false;
4438 : static const unsigned int zero = 0;
4439 : static const unsigned int nmaxvp = 499;
4440 166706 : std::complex<double> lshape;
4441 166706 : std::complex<double> lshapeacum;
4442 :
4443 166706 : if(nu>999.9){
4444 :
4445 0 : return std::complex<double> (0.0,0.0);
4446 :
4447 : }else{
4448 :
4449 : // vp = vpIndex(nu);
4450 :
4451 166706 : if(vp>4){ini=ini1[max((vp-4),zero)]-1; ifin=ifin1[min((vp+4),nmaxvp)]-1;
4452 0 : }else{ini=0; ifin=ifin1[min((vp+4),nmaxvp)]-1;}
4453 :
4454 : if(allfreqs){ini=0; ifin=567;}
4455 :
4456 166706 : if(ifin==0||ifin<ini){
4457 :
4458 0 : return std::complex<double> (0.0,0.0);
4459 :
4460 : }else{
4461 :
4462 1534066 : for(unsigned int i=ini; i<ifin+1; i++){
4463 :
4464 : /* if(pp<5.0){
4465 : cout << "16O16O16O_V2 " << fixed << showpoint << setprecision(4) << setw(10) << " " << pp << " mb "
4466 : << "Fre_o3v2= " << fre[i] << " GHz " << " reffreq = " << nu << " GHz " << endl;
4467 : } */
4468 :
4469 :
4470 1367360 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdo3air[i]*0.001,texpo3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
4471 1367360 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
4472 1367360 : lshapeacum=lshapeacum+lshape;
4473 :
4474 : }
4475 :
4476 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // imaginary part: absorption coefficient in cm^2
4477 333412 : *(0.047992745509/tt); // real part: delay in rad*cm^2
4478 :
4479 166706 : return lshapeacum*1e-4; // to transform to SI units (rad m^2 , m^2)
4480 :
4481 : }
4482 :
4483 : }
4484 :
4485 : }
4486 :
4487 :
4488 : //////////////////////// opacity source number: 16 /////////////////////////////
4489 :
4490 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o16o(double tt, double pp, double nu, unsigned int vp){
4491 :
4492 : static const double fre[1154] ={
4493 : .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,
4494 : 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,
4495 : 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,
4496 : 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,
4497 : 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,
4498 : 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,
4499 : 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,
4500 : 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,
4501 : 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,
4502 : 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,
4503 : 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,
4504 : 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,
4505 : 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,
4506 : 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,
4507 : 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,
4508 : 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,
4509 : 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,
4510 : 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,
4511 : 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,
4512 : 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,
4513 : 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.72956, // 714.73166, CORRECCION FRECUENCIA FEB2024
4514 : 614.78406,
4515 : 615.65402,
4516 : 616.27977,616.28251,617.30449,620.68671,620.72197,620.82566,623.68767,625.37152,625.90529,
4517 : 630.67635,
4518 : 632.17691,633.35354,634.46153,634.52013,638.53512,638.90302,639.54779,640.09254, // 638.53691
4519 : 640.31195,641.53424,642.34964,644.80494,645.66998,646.34400,647.84000,650.73303,651.47581,651.54302,651.55697,653.76244,654.71344,654.85300,655.00521,655.12032,655.20355,655.29016,
4520 : 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.48703,665.67764,665.85431,666.63088, // 664.48824
4521 : 666.76787,669.85708,671.66925,671.80444,671.93207,672.45339,672.79461,673.91438,676.06188,676.90232,677.14338,677.14643,
4522 : 679.30443,
4523 : 683.63910,684.24403,691.35579,691.66464,691.98609,692.36851, // 671.93737 676.90348 691.35879,691.66547
4524 : 693.47373,694.76090,696.09057,697.48595,698.98040,700.85298,701.36487,701.50803,702.70607,707.09907,708.14345,709.63870,711.49549,716.82967,718.29616,718.35952,719.79226,723.01028, // 697.49073 702.71667
4525 : 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,
4526 : 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,
4527 : 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,
4528 : 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,
4529 : 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,
4530 : 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,
4531 : 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,
4532 : 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,
4533 : 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,
4534 : 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,
4535 : 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,
4536 : 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,
4537 : 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,
4538 : 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,
4539 : 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,
4540 : 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,
4541 : 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,
4542 : 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,
4543 : 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,
4544 : 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,
4545 : 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,
4546 : 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,
4547 : 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,
4548 : 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,
4549 : 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,
4550 : 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,
4551 : 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,
4552 : 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,
4553 : 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,
4554 : 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,
4555 : 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,
4556 : 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,
4557 : 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,
4558 : 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,
4559 : 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,
4560 : 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,
4561 : 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,
4562 : 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,
4563 : 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,
4564 : 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,
4565 : 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,
4566 : 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,
4567 : 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,
4568 : 1757.575439, 1758.160645, 1758.704712, 1759.209351, 1759.676636, 1760.108032, 1760.505737, 1760.871094, 1761.206299, 1761.512329};
4569 :
4570 : static const double texpO3[1154] ={
4571 : 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,
4572 : 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,
4573 : 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,
4574 : 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,
4575 : 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,
4576 : 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,
4577 : 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,
4578 : 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,
4579 : 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,
4580 : 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,
4581 : 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,
4582 : 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,
4583 : 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,
4584 : 0.76,
4585 : 0.76,0.76,0.82,0.76,0.82,0.79,0.79,0.78,0.76,
4586 : 0.76,
4587 : 0.80,0.79,
4588 : 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,
4589 : 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,
4590 : 0.76,
4591 : 0.81,0.79,0.80,0.84,0.76,0.79,
4592 : 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,
4593 : 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,
4594 : 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,
4595 : 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,
4596 : 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,
4597 : 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,
4598 : 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,
4599 : 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,
4600 : 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,
4601 : 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,
4602 : 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,
4603 : 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,
4604 : 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,
4605 : 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,
4606 : 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,
4607 : 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,
4608 : 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,
4609 : 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,
4610 : 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,
4611 : 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,
4612 : 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,
4613 : 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,
4614 : 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,
4615 : 0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76};
4616 :
4617 : static const double brdO3air[1154] ={
4618 : 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,
4619 : 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,
4620 : 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,
4621 : 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,
4622 : 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,
4623 : 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,
4624 : 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,
4625 : 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,
4626 : 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,
4627 : 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,
4628 : 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,
4629 : 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,
4630 : 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,
4631 : 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,
4632 : 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,
4633 : 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,
4634 : 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,
4635 : 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,
4636 : 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,
4637 : 2.1071,
4638 : 2.3000,
4639 : 2.0509,2.0509,2.1071,2.5540,2.0598,2.0657,2.1604,2.3084,2.3000,
4640 : 2.3000,
4641 : 2.0983,2.1870, 2.1841,2.0568,2.0391,2.2433,2.0450,2.1574,2.1042,2.4978,2.2078,2.5244,
4642 : 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,
4643 : 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,
4644 : 2.3498,2.0391,2.0923,2.0923,
4645 : 2.3000,
4646 : 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,
4647 : 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,
4648 : 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,
4649 : 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,
4650 : 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,
4651 : 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,
4652 : 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,
4653 : 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,
4654 : 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,
4655 : 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,
4656 : 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,
4657 : 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,
4658 : 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,
4659 : 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,
4660 : 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,
4661 : 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,
4662 : 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,
4663 : 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,
4664 : 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,
4665 : 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,
4666 : 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,
4667 : 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,
4668 : 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,
4669 : 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,
4670 : 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,
4671 : 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,
4672 : 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,
4673 : 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,
4674 : 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,
4675 : 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,
4676 : 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,
4677 : 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,
4678 : 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,
4679 : 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,
4680 : 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,
4681 : 2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000,2.3000 };
4682 :
4683 : static const double flin[1154]={
4684 : .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,
4685 : .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,
4686 : .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,
4687 : .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,
4688 : .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,
4689 : .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,
4690 : .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,
4691 : .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,
4692 : .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,
4693 : .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,
4694 : .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,
4695 : .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,
4696 : .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,
4697 : .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,
4698 : .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,
4699 : .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,
4700 : .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,
4701 : .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,
4702 : .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,
4703 : .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,
4704 : .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,
4705 : .774E+01,
4706 : 36.1822,
4707 : .260E+02, .559E+00, .163E+02, .295E+01, .562E+01, .216E+02, .134E+02, .172E+01, .685E+01,
4708 : .136,
4709 : .142E+02, .294E+01, .120E+02, .895E+01, .333E+02, .739E+01, .903E+01, .148E+02,
4710 : .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,
4711 : .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,
4712 : .216E+00, .236E+02, .333E+01, .110E+02, .518E+01, .163E+00, .151E+02, .171E+02, .129E+01, .254E+02, .161E+02, .640E+01,
4713 : 0.0898,
4714 : .182E+02, .249E+01, .372E+01, .281E+02, .840E-01, .101E+02,
4715 : .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,
4716 : .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,
4717 : .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,
4718 : .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,
4719 : .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,
4720 : .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,
4721 : .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,
4722 : .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,
4723 : .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,
4724 : .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,
4725 : .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,
4726 : .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,
4727 : .457E+01, .113E+01, .222E+02, .282E+02, .147E+02, .268E+02, .7940E+01, .2540E+02, .2290E+01, .3780E+02,
4728 : .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,
4729 : .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,
4730 : .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,
4731 : .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,
4732 : .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,
4733 : .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,
4734 : .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,
4735 : .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,
4736 : .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,
4737 : .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,
4738 : .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,
4739 : .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,
4740 : .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,
4741 : .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,
4742 : .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,
4743 : .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,
4744 : .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,
4745 : .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,
4746 : .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,
4747 : .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,
4748 : .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,
4749 : .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,
4750 : .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,
4751 : .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,
4752 : .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,
4753 : .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,
4754 : .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,
4755 : .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,
4756 : .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,
4757 : .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,
4758 : .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,
4759 : .2290E+02, .2230E+02, .2170E+02, .2110E+02, .2050E+02, .2000E+02, .1940E+02, .1880E+02, .1820E+02, .1760E+02};
4760 :
4761 :
4762 :
4763 :
4764 : static const double el[1154]={
4765 : 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,
4766 : 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,
4767 : 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,
4768 : 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,
4769 : 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,
4770 : 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,
4771 : 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,
4772 : 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,
4773 : 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,
4774 : 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,
4775 : 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,
4776 : 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,
4777 : 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,
4778 : 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,
4779 : 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,
4780 : 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,
4781 : 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,
4782 : 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,
4783 : 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,
4784 : 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,
4785 : 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,
4786 : 509.570,
4787 : 1632.753,
4788 : 1340.198, 126.498, 900.149, 36.086, 1183.185, 382.480, 405.542, 276.961, 1613.936,
4789 : 436.053,
4790 : 471.335, 495.678, 347.925, 1017.522, 1510.429, 216.111, 1479.680, 688.354,
4791 : 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,
4792 : 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,
4793 : 105.873, 443.725, 51.838, 719.131, 1092.525, 1198.700, 769.884, 640.730, 239.527, 1453.786, 993.175, 1506.474,
4794 : 376.653,
4795 : 719.163, 441.234, 711.192, 1280.577, 97.462, 316.443,
4796 : 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,
4797 : 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,
4798 : 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,
4799 : 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,
4800 : 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,
4801 : 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,
4802 : 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,
4803 : 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,
4804 : 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,
4805 : 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,
4806 : 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,
4807 : 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,
4808 : 90.141, 384.588, 1106.573, 1597.285, 1438.347, 1479.633, 1251.300, 1366.878, 621.008, 999.365,
4809 : 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,
4810 : 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,
4811 : 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,
4812 : 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,
4813 : 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,
4814 : 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,
4815 : 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,
4816 : 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,
4817 : 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,
4818 : 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,
4819 : 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,
4820 : 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,
4821 : 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,
4822 : 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,
4823 : 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,
4824 : 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,
4825 : 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,
4826 : 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,
4827 : 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,
4828 : 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,
4829 : 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,
4830 : 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,
4831 : 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,
4832 : 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,
4833 : 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,
4834 : 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,
4835 : 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,
4836 : 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,
4837 : 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,
4838 : 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,
4839 : 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,
4840 : 1613.949, 1559.621, 1506.495, 1454.571,1403.848, 1354.328, 1306.009, 1258.891, 1212.975,1168.260};
4841 :
4842 :
4843 :
4844 :
4845 : static const unsigned int ifin1[800]={ // includig 16O3 lines in the range +/- 9 to 10 GHz away from the calculation frequency
4846 : 5, 6, 8, 9, 9, 9, 9, 10, 13, 16, 19, 20, 20, 21, 22, 23, 24, 27, 27, 27,
4847 : 28, 31, 32, 34, 36, 36, 38, 39, 41, 45, 45, 45, 46, 49, 51, 52, 53, 53, 53, 53,
4848 : 53, 53, 55, 57, 57, 60, 62, 63, 63, 63, 66, 67, 68, 68, 69, 70, 70, 72, 74, 77,
4849 : 78, 79, 80, 82, 82, 84, 85, 89, 89, 90, 90, 90, 93, 94, 94, 94, 94, 96, 98, 99,
4850 : 100, 101, 102, 104, 105, 106, 106, 109, 110, 113, 114, 114, 115, 117, 118, 119, 119, 120, 121, 123,
4851 : 126, 126, 127, 127, 128, 128, 128, 130, 131, 131, 132, 134, 134, 135, 137, 139, 140, 143, 143, 145,
4852 : 148, 149, 149, 150, 152, 152, 153, 156, 156, 157, 157, 158, 160, 161, 162, 166, 168, 168, 171, 172,
4853 : 173, 173, 175, 175, 178, 179, 180, 182, 182, 182, 183, 183, 183, 186, 187, 189, 189, 190, 191, 192,
4854 : 193, 195, 195, 197, 197, 197, 197, 200, 200, 200, 201, 204, 204, 206, 209, 211, 213, 217, 218, 220,
4855 : 220, 221, 221, 224, 226, 226, 227, 227, 227, 230, 231, 232, 232, 234, 235, 236, 239, 240, 240, 242,
4856 : 242, 242, 245, 245, 245, 246, 247, 249, 251, 253, 255, 255, 256, 256, 258, 259, 261, 261, 264, 265,
4857 : 265, 267, 269, 269, 270, 271, 272, 275, 277, 279, 284, 286, 288, 289, 289, 294, 296, 297, 299, 300,
4858 : 301, 303, 303, 304, 307, 308, 309, 309, 311, 315, 316, 317, 318, 318, 320, 321, 323, 325, 325, 325,
4859 : 327, 328, 329, 330, 331, 333, 334, 337, 337, 338, 341, 342, 342, 343, 344, 346, 346, 347, 350, 350,
4860 : 353, 354, 357, 358, 358, 358, 360, 361, 361, 361, 363, 366, 366, 368, 368, 370, 370, 370, 370, 371,
4861 : 374, 376, 378, 381, 382, 385, 385, 386, 388, 388, 389, 404, 404, 408, 409, 418, 426, 428, 429, 429,
4862 : 432, 434, 435, 438, 441, 441, 445, 446, 446, 447, 448, 448, 448, 451, 453, 454, 456, 457, 460, 461,
4863 : 461, 462, 464, 465, 457, 458, 461, 461, 461, 463, 464, 465, 465, 466, 468, 469, 469, 471, 472, 474,
4864 : 475, 477, 478, 480, 480, 481, 482, 483, 486, 488, 488, 492, 494, 494, 501, 501, 504, 506, 506, 509,
4865 : 512, 500, 501, 503, 504, 506, 507, 510, 512, 513, 513, 514, 517, 517, 518, 519, 521, 523, 523, 524,
4866 : 536, 539, 540, 546, 550, 554, 558, 563, 567, 580, 580, 580, 582, 584, 586, 587, 588, 589, 592, 593,
4867 : 593, 594, 596, 597, 597, 599, 599, 599, 600, 601, 603, 606, 608, 608, 608, 609, 610, 610, 612, 613,
4868 : 608, 608, 609, 610, 610, 611, 613, 613, 615, 617, 619, 620, 622, 622, 623, 625, 625, 625, 628, 629,
4869 : 629, 631, 633, 634, 635, 637, 637, 638, 638, 639, 640, 642, 642, 644, 646, 647, 649, 650, 650, 650,
4870 : 655, 656, 658, 659, 659, 661, 663, 663, 665, 666, 667, 668, 669, 671, 691, 694, 696, 698, 701, 705,
4871 : 708, 717, 730, 730, 732, 732, 735, 735, 736, 738, 740, 740, 742, 742, 743, 743, 744, 747, 747, 748,
4872 : 749, 750, 752, 753, 754, 755, 758, 758, 759, 761, 762, 763, 763, 764, 758, 759, 759, 761, 762, 763,
4873 : 763, 764, 765, 769, 771, 771, 772, 773, 773, 774, 775, 775, 776, 777, 779, 781, 783, 783, 783, 785,
4874 : 785, 786, 787, 787, 788, 788, 789, 791, 793, 795, 795, 795, 797, 797, 798, 800, 800, 802, 804, 806,
4875 : 808, 810, 810, 810, 813, 814, 815, 816, 833, 835, 838, 840, 844, 850, 862, 873, 874, 875, 877, 877,
4876 : 877, 877, 878, 879, 879, 880, 880, 881, 881, 882, 885, 886, 887, 887, 888, 890, 890, 892, 892, 892,
4877 : 894, 895, 896, 890, 891, 892, 892, 894, 894, 895, 898, 898, 898, 898, 898, 898, 900, 900, 901, 902,
4878 : 903, 904, 905, 907, 907, 907, 907, 908, 909, 909, 910, 910, 911, 911, 913, 917, 917, 917, 917, 917,
4879 : 918, 919, 919, 919, 919, 919, 920, 921, 924, 924, 924, 924, 924, 925, 925, 926, 926, 927, 927, 928,
4880 : 929, 929, 929, 930, 933, 935, 937, 938, 940, 942, 946, 950, 955, 964, 981, 981, 982, 982, 983, 984,
4881 : 985, 985, 985, 989, 991, 992, 993, 993, 993, 993, 994, 995, 995, 995, 996, 998, 999,1000,1001,1001,
4882 : 1002,1002,1002,1003,1003,1003,1004,1004,1006,1006,1007,1008,1008,1008,1008,1008,1009,1009,1010,1010,
4883 : 1011,1012,1014,1016,1016,1016,1016,1016,1017,1018,1018,1019,1019,1021,1021,1023,1024,1024,1024,1024,
4884 : 1024,1025,1025,1025,1025,1025,1028,1029,1029,1029,1029,1029,1029,1030,1032,1032,1032,1033,1035,1037,
4885 : 1041,1044,1047,1050,1056,1064,1079,1079,1080,1080,1080,1083,1083,1083,1083,1084,1085,1085,1086,1087};
4886 :
4887 :
4888 : static const unsigned int ini1[800]={ // includig 16O3 lines in the range +/- 9 to 10 GHz away from the calculation frequency
4889 : 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 6, 7, 9, 10, 10, 10, 10, 11, 14, 17,
4890 : 20, 21, 21, 22, 23, 24, 25, 28, 28, 28, 29, 32, 33, 35, 37, 37, 39, 40, 42, 46,
4891 : 46, 46, 47, 50, 52, 53, 54, 54, 54, 54, 54, 54, 56, 58, 58, 61, 63, 64, 64, 64,
4892 : 67, 68, 69, 69, 70, 71, 71, 73, 75, 78, 79, 80, 81, 83, 83, 85, 86, 90, 90, 91,
4893 : 91, 91, 94, 95, 95, 95, 95, 97, 99, 100, 101, 102, 103, 105, 106, 107, 107, 110, 111, 114,
4894 : 115, 115, 116, 118, 119, 120, 120, 121, 122, 124, 127, 127, 128, 128, 129, 129, 129, 131, 132, 132,
4895 : 133, 135, 135, 136, 138, 140, 141, 144, 144, 146, 149, 150, 150, 151, 153, 153, 154, 157, 157, 158,
4896 : 158, 159, 161, 162, 163, 167, 169, 169, 172, 173, 174, 174, 176, 176, 179, 180, 181, 183, 183, 183,
4897 : 184, 184, 184, 187, 188, 190, 190, 191, 192, 193, 194, 196, 196, 198, 198, 198, 198, 201, 201, 201,
4898 : 202, 205, 205, 207, 210, 212, 214, 218, 219, 221, 221, 222, 222, 225, 227, 227, 228, 228, 228, 231,
4899 : 232, 233, 233, 235, 236, 237, 240, 241, 241, 243, 243, 243, 246, 246, 246, 247, 248, 250, 252, 254,
4900 : 256, 256, 257, 257, 259, 260, 262, 262, 265, 266, 266, 268, 270, 270, 271, 272, 273, 276, 278, 280,
4901 : 285, 287, 289, 290, 290, 295, 297, 298, 300, 301, 302, 304, 304, 305, 308, 309, 310, 310, 312, 316,
4902 : 317, 318, 319, 319, 321, 322, 324, 326, 326, 326, 328, 329, 330, 331, 332, 334, 335, 338, 338, 339,
4903 : 342, 343, 343, 344, 345, 347, 347, 348, 351, 351, 354, 355, 358, 359, 359, 359, 361, 362, 362, 362,
4904 : 364, 367, 367, 369, 369, 371, 371, 371, 371, 372, 375, 369, 370, 371, 371, 371, 372, 373, 377, 377,
4905 : 380, 383, 383, 386, 387, 389, 389, 389, 390, 392, 394, 394, 397, 400, 401, 403, 405, 405, 409, 410,
4906 : 419, 427, 429, 430, 446, 447, 447, 449, 449, 449, 449, 453, 455, 456, 458, 459, 462, 462, 462, 464,
4907 : 465, 466, 466, 467, 469, 470, 470, 472, 473, 475, 476, 478, 479, 481, 472, 472, 474, 475, 477, 478,
4908 : 480, 493, 495, 495, 497, 498, 498, 498, 500, 501, 501, 501, 502, 504, 505, 507, 508, 511, 513, 514,
4909 : 502, 505, 507, 507, 510, 513, 514, 514, 514, 517, 518, 518, 520, 520, 522, 524, 525, 526, 529, 531,
4910 : 531, 531, 534, 534, 534, 537, 540, 541, 547, 551, 555, 559, 564, 568, 581, 581, 581, 583, 585, 587,
4911 : 598, 598, 599, 600, 600, 601, 601, 602, 606, 609, 609, 609, 610, 611, 611, 612, 614, 614, 616, 618,
4912 : 620, 621, 623, 623, 624, 626, 626, 626, 629, 630, 630, 632, 634, 635, 636, 638, 638, 639, 639, 640,
4913 : 641, 643, 643, 645, 647, 648, 650, 651, 651, 651, 656, 657, 659, 660, 650, 651, 651, 653, 657, 659,
4914 : 659, 660, 661, 662, 664, 664, 667, 668, 668, 669, 672, 673, 675, 677, 681, 681, 683, 686, 688, 692,
4915 : 695, 697, 699, 702, 706, 709, 718, 731, 731, 733, 733, 736, 736, 737, 747, 748, 749, 749, 750, 751,
4916 : 753, 754, 756, 757, 759, 760, 760, 762, 763, 764, 764, 765, 766, 770, 772, 772, 773, 774, 774, 775,
4917 : 776, 776, 777, 778, 780, 782, 784, 784, 784, 786, 786, 787, 788, 788, 789, 789, 790, 792, 794, 796,
4918 : 796, 796, 798, 798, 799, 801, 801, 803, 796, 797, 798, 799, 800, 801, 803, 804, 806, 807, 811, 811,
4919 : 811, 812, 814, 815, 816, 818, 819, 820, 824, 827, 830, 830, 832, 834, 836, 839, 841, 845, 851, 863,
4920 : 874, 875, 876, 881, 881, 882, 883, 884, 887, 887, 888, 889, 890, 891, 892, 893, 893, 895, 895, 896,
4921 : 899, 899, 899, 899, 899, 899, 901, 901, 902, 903, 904, 905, 906, 908, 908, 908, 908, 909, 910, 910,
4922 : 911, 911, 912, 912, 914, 918, 918, 918, 918, 918, 919, 920, 920, 920, 920, 920, 921, 922, 925, 925,
4923 : 925, 925, 925, 926, 926, 927, 927, 928, 928, 929, 930, 930, 930, 931, 934, 936, 938, 939, 941, 943,
4924 : 947, 951, 956, 965, 982, 982, 983, 983, 984, 985, 986, 986, 986, 990, 992, 993, 994, 994, 994, 994,
4925 : 995, 996, 996, 996, 997, 999,1000,1001,1002,1002,1003,1003,1003,1004,1004,1004,1005,1005,1007,1007,
4926 : 1008,1009,1009,1009,1009,1009,1010,1010,1011,1011,1012,1013,1015,1017,1017,1017,1017,1017,1018,1019,
4927 : 1019,1020,1020,1022,1022,1024,1025,1025,1025,1025,1025,1026,1026,1026,1026,1026,1029,1030,1030,1030,
4928 : 1030,1030,1030,1031,1033,1033,1033,1034,1036,1038,1042,1045,1048,1051,1057,1065,1080,1080,1081,1081};
4929 :
4930 :
4931 :
4932 :
4933 : static const unsigned int ifin2[800]={ // includig 16O3 lines in the range +/- 6 to 7 GHz away from the calculation frequency
4934 : 2, 3, 6, 6, 8, 9, 9, 9, 10, 13, 15, 16, 19, 20, 20, 22, 23, 23, 26, 27,
4935 : 27, 27, 31, 32, 33, 34, 36, 38, 39, 40, 44, 45, 45, 46, 47, 50, 51, 53, 53, 53,
4936 : 53, 53, 53, 55, 56, 57, 58, 62, 63, 63, 63, 64, 67, 67, 68, 68, 70, 70, 71, 74,
4937 : 75, 77, 78, 80, 80, 82, 83, 84, 87, 89, 89, 90, 90, 92, 93, 94, 94, 94, 94, 97,
4938 : 99, 99, 101, 102, 104, 104, 105, 106, 107, 110, 113, 113, 114, 115, 117, 118, 119, 119, 120, 120,
4939 : 122, 123, 126, 126, 127, 127, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 141, 143,
4940 : 144, 147, 148, 149, 149, 150, 152, 152, 155, 156, 157, 157, 158, 159, 160, 162, 165, 167, 168, 168,
4941 : 171, 172, 173, 175, 175, 176, 178, 180, 182, 182, 182, 182, 183, 183, 184, 187, 188, 189, 190, 190,
4942 : 192, 193, 193, 195, 197, 197, 197, 197, 200, 200, 200, 201, 201, 204, 205, 207, 211, 213, 215, 217,
4943 : 218, 220, 221, 221, 223, 224, 226, 226, 227, 227, 230, 230, 231, 232, 233, 235, 235, 238, 240, 240,
4944 : 240, 242, 242, 243, 245, 245, 245, 246, 248, 250, 252, 254, 255, 255, 256, 257, 258, 260, 261, 262,
4945 : 264, 265, 266, 268, 269, 270, 270, 271, 274, 275, 278, 283, 284, 287, 288, 289, 291, 296, 297, 297,
4946 : 300, 301, 303, 303, 303, 306, 307, 309, 309, 311, 313, 316, 317, 317, 318, 320, 320, 321, 325, 325,
4947 : 325, 326, 328, 328, 330, 331, 332, 333, 336, 337, 337, 340, 342, 342, 342, 344, 346, 346, 347, 348,
4948 : 350, 351, 353, 355, 357, 358, 358, 358, 361, 361, 361, 362, 365, 366, 368, 368, 369, 370, 370, 370,
4949 : 371, 372, 376, 376, 379, 382, 382, 385, 386, 388, 388, 398, 400, 400, 403, 404, 404, 408, 409, 425,
4950 : 427, 428, 429, 430, 432, 434, 435, 439, 441, 442, 445, 446, 446, 448, 448, 448, 448, 452, 453, 455,
4951 : 456, 457, 460, 461, 454, 456, 457, 460, 461, 461, 462, 464, 465, 465, 465, 466, 469, 469, 471, 471,
4952 : 473, 474, 476, 477, 479, 480, 480, 481, 483, 484, 486, 488, 492, 493, 499, 500, 500, 500, 501, 502,
4953 : 504, 500, 500, 501, 501, 504, 506, 506, 509, 512, 513, 513, 513, 516, 517, 517, 519, 519, 521, 523,
4954 : 531, 533, 533, 533, 536, 540, 541, 547, 551, 556, 559, 563, 570, 580, 580, 580, 583, 584, 586, 587,
4955 : 588, 589, 592, 593, 594, 594, 597, 597, 598, 599, 599, 599, 600, 601, 604, 607, 608, 608, 609, 610,
4956 : 606, 608, 608, 608, 609, 610, 610, 612, 613, 613, 615, 617, 620, 620, 622, 622, 624, 625, 625, 626,
4957 : 629, 629, 630, 633, 633, 635, 637, 637, 637, 638, 638, 639, 642, 642, 643, 644, 647, 648, 649, 650,
4958 : 650, 652, 656, 658, 658, 659, 660, 661, 663, 663, 666, 667, 667, 668, 681, 682, 686, 688, 692, 694,
4959 : 696, 699, 702, 706, 709, 719, 730, 731, 732, 734, 735, 735, 736, 738, 740, 741, 742, 742, 743, 743,
4960 : 745, 747, 747, 748, 749, 750, 752, 753, 755, 756, 758, 759, 759, 761, 755, 758, 758, 759, 761, 762,
4961 : 763, 763, 764, 765, 766, 769, 771, 772, 773, 773, 773, 775, 775, 776, 776, 778, 779, 783, 783, 783,
4962 : 784, 785, 785, 787, 787, 787, 788, 789, 791, 792, 795, 795, 795, 796, 797, 798, 799, 800, 802, 803,
4963 : 805, 806, 810, 810, 810, 811, 813, 814, 826, 829, 830, 831, 833, 835, 838, 841, 845, 851, 873, 873,
4964 : 874, 877, 877, 877, 877, 877, 878, 879, 879, 880, 880, 881, 882, 883, 885, 886, 887, 887, 889, 890,
4965 : 891, 892, 892, 888, 890, 890, 892, 892, 892, 894, 895, 896, 898, 898, 898, 898, 898, 899, 900, 901,
4966 : 902, 903, 903, 904, 907, 907, 907, 907, 907, 908, 909, 909, 910, 910, 911, 913, 915, 917, 917, 917,
4967 : 917, 918, 919, 919, 919, 919, 919, 919, 920, 924, 924, 924, 924, 924, 924, 925, 925, 926, 927, 927,
4968 : 927, 929, 929, 929, 930, 932, 934, 936, 938, 939, 941, 943, 947, 952, 961, 969, 981, 982, 982, 982,
4969 : 983, 985, 985, 985, 987, 989, 991, 992, 993, 993, 993, 994, 995, 995, 995, 995, 997, 999, 999,1001,
4970 : 1001,1002,1002,1002,1002,1003,1003,1004,1004,1005,1006,1006,1008,1008,1008,1008,1008,1008,1009,1009,
4971 : 1010,1010,1012,1014,1015,1016,1016,1016,1016,1017,1018,1018,1018,1019,1019,1021,1022,1024,1024,1024,
4972 : 1024,1024,1025,1025,1025,1025,1025,1027,1028,1029,1029,1029,1029,1029,1029,1030,1032,1032,1032,1033,
4973 : 1035,1039,1043,1045,1048,1053,1059,1079,1079,1080,1080,1080,1081,1083,1083,1083,1083,1085,1085,1085};
4974 :
4975 : static const unsigned int ini2[800]={ // includig 16O3 lines in the range +/- 6 to 7 GHz away from the calculation frequency
4976 : 0, 0, 0, 0, 2, 3, 3, 3, 4, 7, 7, 9, 10, 10, 10, 11, 14, 16, 17, 20,
4977 : 21, 21, 23, 24, 24, 27, 28, 28, 28, 32, 33, 34, 35, 37, 39, 40, 41, 45, 46, 46,
4978 : 47, 48, 51, 52, 54, 54, 54, 54, 54, 54, 56, 57, 58, 59, 63, 64, 64, 64, 65, 68,
4979 : 68, 69, 69, 71, 71, 72, 75, 76, 78, 79, 81, 81, 83, 84, 85, 88, 90, 90, 91, 91,
4980 : 93, 94, 95, 95, 95, 95, 98, 100, 100, 102, 103, 105, 105, 106, 107, 108, 111, 114, 114, 115,
4981 : 116, 118, 119, 120, 120, 121, 121, 123, 124, 127, 127, 128, 128, 129, 129, 130, 131, 132, 133, 134,
4982 : 135, 136, 137, 139, 140, 142, 144, 145, 148, 149, 150, 150, 151, 153, 153, 156, 157, 158, 158, 159,
4983 : 160, 161, 163, 166, 168, 169, 169, 172, 173, 174, 176, 176, 177, 179, 181, 183, 183, 183, 183, 184,
4984 : 184, 185, 188, 189, 190, 191, 191, 193, 194, 194, 196, 198, 198, 198, 198, 201, 201, 201, 202, 202,
4985 : 205, 206, 208, 212, 214, 216, 218, 219, 221, 222, 222, 224, 225, 227, 227, 228, 228, 231, 231, 232,
4986 : 233, 234, 236, 236, 239, 241, 241, 241, 243, 243, 244, 246, 246, 246, 247, 249, 251, 253, 255, 256,
4987 : 256, 257, 258, 259, 261, 262, 263, 265, 266, 267, 269, 270, 271, 271, 272, 275, 276, 279, 284, 285,
4988 : 288, 289, 290, 292, 297, 298, 298, 301, 302, 304, 304, 304, 307, 308, 310, 310, 312, 314, 317, 318,
4989 : 318, 319, 321, 321, 322, 326, 326, 326, 327, 329, 329, 331, 332, 333, 334, 337, 338, 338, 341, 343,
4990 : 343, 343, 345, 347, 347, 348, 349, 351, 352, 354, 356, 358, 359, 359, 359, 362, 362, 362, 363, 366,
4991 : 367, 369, 369, 370, 371, 371, 371, 372, 373, 377, 377, 371, 371, 372, 376, 377, 379, 383, 383, 386,
4992 : 386, 388, 389, 389, 390, 392, 394, 394, 396, 399, 401, 402, 404, 405, 407, 409, 416, 426, 429, 430,
4993 : 430, 431, 435, 435, 447, 448, 449, 449, 449, 452, 454, 455, 457, 458, 461, 462, 462, 463, 465, 466,
4994 : 466, 466, 467, 470, 470, 472, 472, 474, 475, 477, 478, 480, 481, 481, 477, 478, 480, 481, 481, 482,
4995 : 484, 495, 496, 497, 498, 498, 499, 501, 501, 501, 502, 502, 505, 507, 507, 510, 513, 514, 514, 514,
4996 : 508, 511, 513, 514, 514, 517, 518, 518, 520, 520, 522, 524, 524, 526, 529, 530, 531, 531, 533, 534,
4997 : 534, 535, 539, 541, 546, 550, 554, 558, 561, 566, 580, 581, 581, 582, 585, 587, 587, 588, 589, 593,
4998 : 598, 600, 600, 600, 601, 602, 604, 607, 609, 609, 609, 610, 611, 611, 613, 614, 614, 616, 618, 621,
4999 : 621, 623, 623, 625, 626, 626, 627, 630, 630, 631, 634, 634, 636, 638, 638, 638, 639, 639, 640, 643,
5000 : 643, 644, 645, 648, 649, 650, 651, 651, 653, 657, 659, 659, 660, 661, 657, 658, 659, 660, 660, 662,
5001 : 664, 664, 666, 667, 668, 669, 671, 672, 675, 677, 681, 681, 682, 686, 687, 691, 695, 695, 698, 702,
5002 : 705, 708, 716, 731, 731, 733, 733, 736, 736, 737, 739, 740, 741, 742, 748, 749, 750, 751, 753, 754,
5003 : 755, 756, 759, 759, 760, 762, 763, 764, 764, 765, 766, 767, 770, 772, 773, 774, 774, 774, 776, 776,
5004 : 777, 777, 779, 780, 784, 784, 784, 785, 786, 786, 788, 788, 788, 789, 790, 792, 793, 796, 796, 796,
5005 : 797, 798, 799, 800, 801, 803, 804, 806, 800, 801, 802, 804, 806, 807, 809, 811, 811, 811, 814, 815,
5006 : 816, 818, 819, 820, 823, 826, 830, 830, 832, 833, 834, 838, 840, 843, 849, 858, 874, 875, 876, 878,
5007 : 878, 878, 878, 882, 882, 883, 886, 887, 888, 888, 889, 891, 891, 893, 893, 893, 895, 896, 897, 899,
5008 : 899, 899, 899, 899, 900, 901, 902, 903, 904, 904, 905, 908, 908, 908, 908, 908, 909, 910, 910, 911,
5009 : 911, 912, 914, 916, 918, 918, 918, 918, 919, 920, 920, 920, 920, 920, 920, 921, 925, 925, 925, 925,
5010 : 925, 925, 926, 926, 927, 928, 928, 928, 930, 930, 930, 931, 933, 935, 937, 939, 940, 942, 944, 948,
5011 : 953, 962, 970, 982, 983, 983, 983, 984, 986, 986, 986, 988, 990, 992, 993, 994, 994, 994, 995, 996,
5012 : 996, 996, 996, 998,1000,1000,1002,1002,1003,1003,1003,1003,1004,1004,1005,1005,1006,1007,1007,1009,
5013 : 1009,1009,1009,1009,1009,1010,1010,1011,1011,1013,1015,1016,1017,1017,1017,1017,1018,1019,1019,1019,
5014 : 1020,1020,1022,1023,1025,1025,1025,1025,1025,1026,1026,1026,1026,1026,1028,1029,1030,1030,1030,1030,
5015 : 1030,1030,1031,1033,1033,1033,1034,1036,1040,1044,1046,1049,1054,1060,1080,1080,1081,1081,1081,1082};
5016 :
5017 :
5018 :
5019 : static const unsigned int ifin3[800]={ // includig 16O3 lines in the range +/- 3 to 4 GHz away from the calculation frequency
5020 : 2, 2, 2, 5, 6, 8, 9, 9, 9, 9, 10, 13, 16, 19, 20, 20, 21, 22, 23, 24,
5021 : 27, 27, 27, 28, 31, 32, 34, 36, 36, 38, 39, 41, 45, 45, 45, 46, 49, 51, 52, 53,
5022 : 53, 53, 53, 53, 53, 55, 57, 57, 60, 62, 63, 63, 63, 66, 67, 68, 68, 69, 70, 70,
5023 : 72, 74, 77, 78, 79, 80, 82, 82, 84, 85, 89, 89, 90, 90, 90, 93, 94, 94, 94, 94,
5024 : 96, 98, 99, 100, 101, 102, 104, 105, 106, 106, 109, 110, 113, 114, 114, 115, 117, 118, 119, 119,
5025 : 120, 121, 123, 126, 126, 127, 127, 128, 128, 128, 130, 131, 131, 132, 134, 134, 135, 137, 139, 140,
5026 : 143, 143, 145, 148, 149, 149, 150, 152, 152, 153, 156, 156, 157, 157, 158, 160, 161, 162, 166, 168,
5027 : 168, 171, 172, 173, 173, 175, 175, 178, 179, 180, 182, 182, 182, 183, 183, 183, 186, 187, 189, 189,
5028 : 190, 191, 192, 193, 195, 195, 197, 197, 197, 197, 200, 200, 200, 201, 204, 204, 206, 209, 211, 213,
5029 : 217, 218, 220, 220, 221, 221, 224, 226, 226, 227, 227, 227, 230, 231, 232, 232, 234, 235, 236, 239,
5030 : 240, 240, 242, 242, 242, 245, 245, 245, 246, 247, 249, 251, 253, 255, 255, 256, 256, 258, 259, 261,
5031 : 261, 264, 265, 265, 267, 269, 269, 270, 271, 272, 275, 277, 279, 284, 286, 288, 289, 289, 294, 296,
5032 : 297, 299, 300, 301, 303, 303, 304, 307, 308, 309, 309, 311, 315, 316, 317, 318, 318, 320, 321, 323,
5033 : 325, 325, 325, 327, 328, 329, 330, 331, 333, 334, 337, 337, 338, 341, 342, 342, 343, 344, 346, 346,
5034 : 347, 350, 350, 353, 354, 357, 358, 358, 358, 360, 361, 361, 361, 363, 366, 366, 368, 368, 370, 370,
5035 : 370, 370, 371, 374, 376, 378, 381, 382, 385, 385, 386, 390, 393, 393, 395, 398, 400, 401, 403, 404,
5036 : 405, 408, 411, 425, 428, 428, 429, 430, 434, 434, 435, 440, 441, 443, 445, 446, 446, 448, 448, 448,
5037 : 448, 452, 454, 455, 452, 454, 455, 457, 458, 461, 461, 461, 463, 464, 465, 465, 466, 468, 469, 469,
5038 : 471, 472, 474, 475, 477, 478, 480, 480, 481, 482, 483, 486, 488, 488, 496, 497, 497, 497, 499, 500,
5039 : 500, 499, 500, 500, 500, 501, 503, 504, 506, 507, 510, 512, 513, 513, 514, 517, 517, 518, 519, 521,
5040 : 527, 528, 530, 530, 531, 533, 533, 534, 537, 540, 543, 549, 551, 557, 560, 565, 574, 580, 580, 580,
5041 : 583, 586, 586, 587, 588, 590, 593, 593, 594, 594, 597, 597, 598, 599, 599, 600, 600, 601, 605, 608,
5042 : 601, 605, 608, 608, 608, 609, 610, 610, 611, 613, 613, 615, 617, 619, 620, 622, 622, 623, 625, 625,
5043 : 625, 628, 629, 629, 631, 633, 634, 635, 637, 637, 638, 638, 639, 640, 642, 642, 644, 646, 647, 649,
5044 : 650, 650, 650, 655, 656, 658, 659, 659, 661, 663, 663, 665, 666, 667, 674, 676, 678, 680, 681, 683,
5045 : 686, 690, 692, 694, 696, 701, 704, 706, 713, 724, 730, 732, 732, 734, 735, 736, 738, 739, 740, 741,
5046 : 742, 743, 743, 744, 746, 747, 748, 748, 749, 750, 752, 753, 755, 756, 753, 755, 756, 758, 759, 759,
5047 : 761, 762, 763, 763, 764, 765, 769, 771, 771, 772, 773, 773, 774, 775, 775, 776, 777, 779, 781, 783,
5048 : 783, 783, 785, 785, 786, 787, 787, 788, 788, 789, 791, 793, 795, 795, 795, 797, 797, 798, 800, 800,
5049 : 802, 804, 806, 808, 810, 810, 810, 813, 817, 819, 821, 824, 827, 829, 831, 831, 833, 836, 839, 841,
5050 : 847, 854, 873, 873, 874, 877, 877, 877, 877, 877, 879, 879, 880, 880, 880, 881, 882, 883, 886, 886,
5051 : 887, 888, 889, 887, 888, 889, 890, 891, 892, 892, 894, 894, 895, 898, 898, 898, 898, 898, 898, 900,
5052 : 900, 901, 902, 903, 904, 905, 907, 907, 907, 907, 908, 909, 909, 910, 910, 911, 911, 913, 917, 917,
5053 : 917, 917, 917, 918, 919, 919, 919, 919, 919, 920, 921, 924, 924, 924, 924, 924, 925, 925, 926, 926,
5054 : 927, 927, 928, 929, 929, 929, 930, 933, 935, 937, 938, 940, 942, 946, 950, 955, 964, 981, 981, 982,
5055 : 982, 983, 984, 985, 985, 985, 989, 991, 992, 993, 993, 993, 993, 994, 995, 995, 995, 996, 998, 999,
5056 : 1000,1001,1001,1002,1002,1002,1003,1003,1003,1004,1004,1006,1006,1007,1008,1008,1008,1008,1008,1009,
5057 : 1009,1010,1010,1011,1012,1014,1016,1016,1016,1016,1016,1017,1018,1018,1019,1019,1021,1021,1023,1024,
5058 : 1024,1024,1024,1024,1025,1025,1025,1025,1025,1028,1029,1029,1029,1029,1029,1029,1030,1032,1032,1032,
5059 : 1033,1035,1037,1041,1044,1047,1050,1056,1064,1079,1079,1080,1080,1080,1083,1083,1083,1083,1084,1085};
5060 :
5061 :
5062 :
5063 : static const unsigned int ini3[800]={ // includig 16O3 lines in the range +/- 3 to 4 GHz away from the calculation frequency
5064 : 0, 0, 1, 3, 3, 3, 3, 6, 7, 9, 10, 10, 10, 10, 11, 14, 17, 20, 21, 21,
5065 : 22, 23, 24, 25, 28, 28, 28, 29, 32, 33, 35, 37, 37, 39, 40, 42, 46, 46, 46, 47,
5066 : 50, 52, 53, 53, 53, 54, 54, 54, 54, 56, 58, 58, 61, 63, 64, 64, 64, 67, 68, 69,
5067 : 69, 70, 71, 71, 73, 75, 78, 79, 80, 81, 83, 83, 85, 86, 90, 90, 91, 91, 91, 94,
5068 : 95, 95, 95, 95, 97, 99, 100, 101, 102, 103, 105, 106, 107, 107, 110, 111, 114, 115, 115, 116,
5069 : 118, 119, 120, 120, 121, 122, 124, 127, 127, 128, 128, 129, 129, 129, 131, 132, 132, 133, 135, 135,
5070 : 136, 138, 140, 141, 144, 144, 146, 149, 150, 150, 151, 153, 153, 154, 157, 157, 158, 158, 159, 161,
5071 : 162, 163, 167, 169, 169, 172, 173, 174, 174, 176, 176, 179, 180, 181, 183, 183, 183, 184, 184, 184,
5072 : 187, 188, 190, 190, 191, 192, 193, 194, 196, 196, 198, 198, 198, 198, 201, 201, 201, 202, 205, 205,
5073 : 207, 210, 212, 214, 218, 219, 221, 221, 222, 222, 225, 227, 227, 228, 228, 228, 231, 232, 233, 233,
5074 : 235, 236, 237, 240, 241, 241, 243, 243, 243, 246, 246, 246, 247, 248, 250, 252, 254, 256, 256, 257,
5075 : 257, 259, 260, 262, 262, 265, 266, 266, 268, 270, 270, 271, 272, 273, 276, 278, 280, 285, 287, 289,
5076 : 290, 290, 295, 297, 298, 300, 301, 302, 304, 304, 305, 308, 309, 310, 310, 312, 316, 317, 318, 319,
5077 : 319, 321, 322, 324, 326, 326, 326, 328, 329, 330, 331, 332, 334, 335, 338, 338, 339, 342, 343, 343,
5078 : 344, 345, 347, 347, 348, 351, 351, 354, 355, 358, 359, 359, 359, 361, 362, 362, 362, 364, 367, 367,
5079 : 369, 369, 371, 371, 371, 371, 372, 375, 377, 379, 382, 377, 379, 382, 383, 386, 386, 387, 389, 389,
5080 : 390, 391, 394, 394, 396, 399, 401, 402, 404, 405, 406, 409, 412, 426, 429, 429, 430, 431, 435, 435,
5081 : 436, 441, 442, 444, 449, 449, 449, 449, 453, 455, 456, 458, 459, 462, 462, 462, 464, 465, 466, 466,
5082 : 467, 469, 470, 470, 472, 473, 475, 476, 478, 479, 481, 481, 482, 483, 481, 482, 483, 484, 487, 489,
5083 : 489, 497, 498, 498, 498, 500, 501, 501, 501, 502, 504, 505, 507, 508, 511, 513, 514, 514, 515, 518,
5084 : 514, 515, 518, 518, 519, 520, 522, 524, 524, 525, 528, 529, 531, 531, 532, 534, 534, 535, 538, 541,
5085 : 544, 550, 552, 558, 561, 566, 575, 581, 581, 581, 584, 587, 587, 588, 589, 591, 594, 594, 595, 595,
5086 : 600, 600, 601, 601, 602, 606, 609, 609, 609, 610, 611, 611, 612, 614, 614, 616, 618, 620, 621, 623,
5087 : 623, 624, 626, 626, 626, 629, 630, 630, 632, 634, 635, 636, 638, 638, 639, 639, 640, 641, 643, 643,
5088 : 645, 647, 648, 650, 651, 651, 651, 656, 657, 659, 660, 660, 662, 664, 660, 662, 664, 664, 666, 667,
5089 : 668, 669, 670, 672, 675, 677, 679, 681, 682, 684, 687, 691, 693, 695, 697, 702, 705, 707, 714, 725,
5090 : 731, 733, 733, 735, 736, 737, 739, 740, 741, 742, 743, 744, 744, 745, 749, 750, 751, 753, 754, 756,
5091 : 757, 759, 760, 760, 762, 763, 764, 764, 765, 766, 770, 772, 772, 773, 774, 774, 775, 776, 776, 777,
5092 : 778, 780, 782, 784, 784, 784, 786, 786, 787, 788, 788, 789, 789, 790, 792, 794, 796, 796, 796, 798,
5093 : 798, 799, 801, 801, 803, 805, 807, 809, 805, 807, 809, 811, 811, 811, 814, 815, 816, 817, 818, 820,
5094 : 822, 825, 828, 830, 832, 832, 834, 837, 840, 842, 848, 855, 874, 874, 875, 878, 878, 878, 878, 878,
5095 : 880, 880, 881, 883, 884, 887, 887, 888, 889, 890, 891, 892, 893, 893, 895, 895, 896, 896, 896, 899,
5096 : 899, 899, 899, 901, 901, 902, 903, 904, 905, 906, 908, 908, 908, 908, 909, 910, 910, 911, 911, 912,
5097 : 912, 914, 914, 918, 918, 918, 918, 919, 919, 920, 920, 920, 920, 921, 922, 922, 925, 925, 925, 925,
5098 : 926, 926, 927, 927, 928, 928, 929, 930, 930, 930, 931, 934, 936, 938, 939, 941, 943, 947, 951, 956,
5099 : 965, 982, 982, 983, 983, 984, 985, 986, 986, 986, 990, 992, 993, 994, 994, 994, 994, 995, 996, 996,
5100 : 996, 997, 999,1000,1001,1002,1002,1003,1003,1003,1004,1004,1004,1005,1005,1007,1007,1008,1008,1009,
5101 : 1009,1009,1009,1010,1010,1011,1011,1012,1013,1015,1015,1017,1017,1017,1017,1018,1019,1019,1020,1020,
5102 : 1022,1022,1024,1024,1025,1025,1025,1025,1025,1026,1026,1026,1026,1029,1029,1029,1030,1030,1030,1030,
5103 : 1031,1033,1033,1033,1034,1036,1038,1042,1045,1048,1051,1057,1065,1080,1080,1081,1081,1081,1084,1084};
5104 :
5105 :
5106 :
5107 :
5108 :
5109 : static const double pi=3.141592654;
5110 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
5111 : static const double mu=0.53; // dipole moment in Debyes
5112 : static const double mmol=48.0;
5113 :
5114 :
5115 166706 : double q=0.649698902072*tt*sqrt(tt);
5116 :
5117 :
5118 : unsigned int ini;
5119 : unsigned int ifin;
5120 : // bool allfreqs;
5121 : static const unsigned int zero = 0;
5122 : static const unsigned int nmaxvp = 799;
5123 166706 : std::complex<double> lshape;
5124 166706 : std::complex<double> lshapeacum;
5125 :
5126 166706 : lshapeacum = std::complex<double>(0.0,0.0);
5127 :
5128 166706 : if(nu<1599.999){
5129 :
5130 : // vp = vpIndex(nu);
5131 :
5132 166706 : if(vp>0){
5133 :
5134 166706 : if(pp<25){ini=ini3[max(vp-0,zero)]; ifin=ifin3[min(vp+0,nmaxvp)];
5135 144000 : }else{if(pp<300){ ini=ini2[max(vp-0,zero)]; ifin=ifin2[min(vp+0,nmaxvp)];}
5136 89700 : else{ini=ini1[max(vp-0,zero)]; ifin=ifin1[min(vp+0,nmaxvp)];} }
5137 :
5138 : }else{
5139 :
5140 0 : if(pp<25){ini=ini3[max(vp,zero)]; ifin=ifin3[min(vp,nmaxvp)];
5141 0 : }else{if(pp<300){ ini=ini2[max(vp,zero)]; ifin=ifin2[min(vp,nmaxvp)];}
5142 0 : else{ini=ini1[max(vp,zero)]; ifin=ifin1[min(vp,nmaxvp)];} }
5143 :
5144 : }
5145 :
5146 :
5147 166706 : if(ifin==0||ifin<ini){
5148 :
5149 : // Nothing alse is calculated
5150 :
5151 : }else{
5152 :
5153 :
5154 :
5155 1335406 : for(unsigned int i=ini; i<ifin+1; i++){
5156 :
5157 : /* if(pp<5.0){
5158 : cout << "16O16O16O " << fixed << showpoint << setprecision(4) << setw(10) << " " << pp << " mb "
5159 : << fre[i] << " GHz "
5160 : << flin[i] << " FLIN " << el[i] << " EL(K) "
5161 : << brdO3air[i] << " broad " << texpO3[i] << " texpO3 reffreq = " << nu << " GHz " << endl;
5162 : }*/
5163 :
5164 1168700 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
5165 1168700 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
5166 1168700 : lshapeacum=lshapeacum+lshape;
5167 :
5168 : }
5169 :
5170 : }
5171 :
5172 : }
5173 :
5174 166706 : lshapeacum=lshapeacum*(nu/pi)*(picube8div3hcesu*pow(mu,2)/q) // imaginary part: absorption coefficient in cm^2
5175 333412 : *(0.047992745509/tt); // real part: delay in rad*cm^2
5176 :
5177 166706 : return lshapeacum*1e-4; // 1e-4 to transform to SI units (rad m^2 , m^2)
5178 :
5179 : }
5180 :
5181 : //////////////////////// Opacity Source Number: 20 /////////////////////////////
5182 :
5183 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o18o(double tt, double pp, double nu, unsigned int vp){
5184 :
5185 : static const double fre[1376]={
5186 : 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,
5187 : 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,
5188 : 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,
5189 : 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,
5190 : 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,
5191 : 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,
5192 : 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,
5193 : 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,
5194 : 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,
5195 : 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,
5196 : 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,
5197 : 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,
5198 : 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,
5199 : 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,
5200 : 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,
5201 : 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,
5202 : 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,
5203 : 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,
5204 : 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,
5205 : 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,
5206 : 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,
5207 : 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,
5208 : 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,
5209 : 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,
5210 : 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,
5211 : 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,
5212 : 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,
5213 : 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,
5214 : 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,
5215 : 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,
5216 : 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,
5217 : 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,
5218 : 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,
5219 : 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,
5220 : 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,
5221 : 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,
5222 : 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,
5223 : 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,
5224 : 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,
5225 : 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,
5226 : 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,
5227 : 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,
5228 : 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,
5229 : 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,
5230 : 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,
5231 : 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,
5232 : 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,
5233 : 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,
5234 : 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,
5235 : 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,
5236 : 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,
5237 : 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,
5238 : 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,
5239 : 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,
5240 : 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,
5241 : 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,
5242 : 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,
5243 : 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,
5244 : 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,
5245 : 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,
5246 : 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,
5247 : 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,
5248 : 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,
5249 : 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,
5250 : 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,
5251 : 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,
5252 : 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,
5253 : 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,
5254 : 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,
5255 : 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,
5256 : 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,
5257 : 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,
5258 : 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,
5259 : 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,
5260 : 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,
5261 : 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,
5262 : 997.05175,998.25096,998.45785,998.45787,998.82477,998.82477,999.26827,999.66418};
5263 :
5264 : static const double flin[1376]={
5265 : .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,
5266 : .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,
5267 : .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,
5268 : .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,
5269 : .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,
5270 : .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,
5271 : .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,
5272 : .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,
5273 : .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,
5274 : .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,
5275 : .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,
5276 : .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,
5277 : .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,
5278 : .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,
5279 : .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,
5280 : .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,
5281 : .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,
5282 : .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,
5283 : .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,
5284 : .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,
5285 : .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,
5286 : .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,
5287 : .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,
5288 : .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,
5289 : .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,
5290 : .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,
5291 : .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,
5292 : .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,
5293 : .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,
5294 : .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,
5295 : .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,
5296 : .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,
5297 : .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,
5298 : .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,
5299 : .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,
5300 : .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,
5301 : .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,
5302 : .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,
5303 : .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,
5304 : .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,
5305 : .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,
5306 : .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,
5307 : .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,
5308 : .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,
5309 : .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,
5310 : .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,
5311 : .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,
5312 : .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,
5313 : .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,
5314 : .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,
5315 : .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,
5316 : .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,
5317 : .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,
5318 : .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,
5319 : .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,
5320 : .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,
5321 : .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,
5322 : .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,
5323 : .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,
5324 : .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,
5325 : .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,
5326 : .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,
5327 : .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,
5328 : .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,
5329 : .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,
5330 : .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,
5331 : .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,
5332 : .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,
5333 : .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,
5334 : .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,
5335 : .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,
5336 : .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,
5337 : .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,
5338 : .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,
5339 : .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,
5340 : .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,
5341 : .200E+02, .213E+02, .469E+01, .469E+01, .113E+01, .113E+01, .194E+02, .206E+02};
5342 :
5343 : static const double el[1376]={
5344 : 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,
5345 : 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,
5346 : 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,
5347 : 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,
5348 : 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,
5349 : 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,
5350 : 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,
5351 : 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,
5352 : 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,
5353 : 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,
5354 : 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,
5355 : 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,
5356 : 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,
5357 : 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,
5358 : 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,
5359 : 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,
5360 : 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,
5361 : 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,
5362 : 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,
5363 : 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,
5364 : 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,
5365 : 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,
5366 : 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,
5367 : 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,
5368 : 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,
5369 : 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,
5370 : 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,
5371 : 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,
5372 : 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,
5373 : 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,
5374 : 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,
5375 : 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,
5376 : 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,
5377 : 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,
5378 : 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,
5379 : 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,
5380 : 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,
5381 : 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,
5382 : 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,
5383 : 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,
5384 : 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,
5385 : 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,
5386 : 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,
5387 : 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,
5388 : 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,
5389 : 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,
5390 : 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,
5391 : 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,
5392 : 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,
5393 : 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,
5394 : 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,
5395 : 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,
5396 : 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,
5397 : 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,
5398 : 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,
5399 : 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,
5400 : 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,
5401 : 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,
5402 : 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,
5403 : 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,
5404 : 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,
5405 : 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,
5406 : 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,
5407 : 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,
5408 : 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,
5409 : 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,
5410 : 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,
5411 : 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,
5412 : 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,
5413 : 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,
5414 : 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,
5415 : 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,
5416 : 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,
5417 : 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,
5418 : 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,
5419 : 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,
5420 : 915.808, 1003.851, 95.041, 95.041, 372.623, 372.623, 873.402, 959.183};
5421 :
5422 :
5423 : static const double texpO3[1376] ={
5424 : 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,
5425 : 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,
5426 : 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,
5427 : 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,
5428 : 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,
5429 : 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,
5430 : 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,
5431 : 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,
5432 : 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,
5433 : 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,
5434 : 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,
5435 : 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,
5436 : 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,
5437 : 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,
5438 : 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,
5439 : 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,
5440 : 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,
5441 : 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,
5442 : 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,
5443 : 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,
5444 : 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,
5445 : 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,
5446 : 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,
5447 : 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,
5448 : 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,
5449 : 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,
5450 : 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,
5451 : 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,
5452 : 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,
5453 : 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,
5454 : 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,
5455 : 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,
5456 : 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,
5457 : 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,
5458 : 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,
5459 : 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,
5460 : 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,
5461 : 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,
5462 : 0.82,0.83,0.77,0.77,0.76,0.76,0.82,0.82};
5463 :
5464 : static const double brdO3air[1376] ={
5465 : 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,
5466 : 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,
5467 : 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,
5468 : 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,
5469 : 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,
5470 : 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,
5471 : 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,
5472 : 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,
5473 : 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,
5474 : 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,
5475 : 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,
5476 : 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,
5477 : 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,
5478 : 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,
5479 : 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,
5480 : 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,
5481 : 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,
5482 : 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,
5483 : 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,
5484 : 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,
5485 : 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,
5486 : 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,
5487 : 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,
5488 : 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,
5489 : 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,
5490 : 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,
5491 : 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,
5492 : 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,
5493 : 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,
5494 : 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,
5495 : 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,
5496 : 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,
5497 : 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,
5498 : 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,
5499 : 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,
5500 : 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,
5501 : 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,
5502 : 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,
5503 : 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,
5504 : 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,
5505 : 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,
5506 : 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,
5507 : 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,
5508 : 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,
5509 : 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,
5510 : 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,
5511 : 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,
5512 : 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,
5513 : 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,
5514 : 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,
5515 : 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};
5516 :
5517 :
5518 : static const unsigned int ifin1[500]={
5519 : 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,
5520 : 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,
5521 : 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,
5522 : 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,
5523 : 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,
5524 : 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,
5525 : 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,
5526 : 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,
5527 : 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,
5528 : 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,
5529 : 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,
5530 : 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,
5531 : 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,
5532 : 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,
5533 : 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,
5534 : 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,
5535 : 1313,1319,1320,1321,1323,1329,1333,1337,1339,1340,1344,1347,1354,1358,1362,1365,1369,1375,1376,1376};
5536 :
5537 : static const unsigned int ini1[500]={
5538 : 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,
5539 : 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,
5540 : 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,
5541 : 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,
5542 : 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,
5543 : 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,
5544 : 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,
5545 : 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,
5546 : 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,
5547 : 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,
5548 : 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,
5549 : 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,
5550 : 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,
5551 : 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,
5552 : 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,
5553 : 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,
5554 : 1306,1307,1310,1311,1313,1319,1320,1321,1323,1329,1333,1337,1339,1340,1344,1347,1354,1358,1362,1365};
5555 :
5556 : static const unsigned int ifin2[500]={
5557 : 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,
5558 : 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,
5559 : 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,
5560 : 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,
5561 : 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,
5562 : 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,
5563 : 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,
5564 : 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,
5565 : 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,
5566 : 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,
5567 : 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,
5568 : 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,
5569 : 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,
5570 : 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,
5571 : 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,
5572 : 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,
5573 : 1310,1313,1319,1320,1321,1322,1325,1330,1337,1338,1340,1343,1347,1351,1357,1361,1363,1368,1373,1376};
5574 :
5575 : static const unsigned int ini2[500]={
5576 : 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,
5577 : 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,
5578 : 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,
5579 : 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,
5580 : 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,
5581 : 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,
5582 : 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,
5583 : 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,
5584 : 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,
5585 : 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,
5586 : 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,
5587 : 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,
5588 : 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,
5589 : 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,
5590 : 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,
5591 : 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,
5592 : 1307,1310,1311,1316,1320,1321,1321,1325,1329,1335,1337,1340,1341,1346,1348,1354,1359,1362,1368,1370};
5593 :
5594 : static const unsigned int ifin3[500]={
5595 : 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,
5596 : 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,
5597 : 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,
5598 : 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,
5599 : 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,
5600 : 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,
5601 : 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,
5602 : 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,
5603 : 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,
5604 : 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,
5605 : 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,
5606 : 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,
5607 : 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,
5608 : 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,
5609 : 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,
5610 : 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,
5611 : 1310,1311,1316,1320,1321,1321,1325,1329,1335,1337,1340,1341,1346,1348,1354,1359,1362,1368,1370,1376};
5612 :
5613 : static const unsigned int ini3[500]={
5614 : 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,
5615 : 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,
5616 : 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,
5617 : 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,
5618 : 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,
5619 : 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,
5620 : 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,
5621 : 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,
5622 : 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,
5623 : 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,
5624 : 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,
5625 : 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,
5626 : 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,
5627 : 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,
5628 : 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,
5629 : 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,
5630 : 1310,1310,1313,1319,1320,1321,1322,1325,1330,1337,1338,1340,1343,1347,1351,1357,1361,1363,1368,1373};
5631 :
5632 : static const double pi=3.141592654;
5633 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
5634 : static const double mu=0.53; // dipole moment in Debyes
5635 : static const double mmol=50.0;
5636 :
5637 : //double q=1.387429043*pow(tt,1.5);
5638 166706 : double q=1.387429043*tt*sqrt(tt);
5639 : // unsigned int vp;
5640 :
5641 : unsigned int ini;
5642 : unsigned int ifin;
5643 : static const bool allfreqs = false;
5644 : static const unsigned int zero = 0;
5645 : static const unsigned int nmaxvp = 499;
5646 166706 : std::complex<double> lshape;
5647 166706 : std::complex<double> lshapeacum;
5648 :
5649 166706 : if(nu>999.9){
5650 :
5651 0 : return std::complex<double> (0.0,0.0);
5652 :
5653 : }else{
5654 :
5655 : // vp = vpIndex(nu);
5656 :
5657 166706 : if(vp>2){
5658 :
5659 166706 : if(pp<25){
5660 22706 : ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
5661 : }else{
5662 144000 : if(pp<300){ ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
5663 : }
5664 : else{
5665 89700 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
5666 : }
5667 : }
5668 :
5669 : }else{
5670 :
5671 0 : if(pp<25){
5672 0 : ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
5673 : }else{
5674 0 : if(pp<300){ ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
5675 : }
5676 : else{
5677 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
5678 : }
5679 : }
5680 :
5681 : }
5682 :
5683 : if(allfreqs){ini=0; ifin=1375;}
5684 :
5685 166706 : if(ifin==0||ifin<ini){
5686 :
5687 0 : return std::complex<double> (0.0,0.0);
5688 :
5689 : }else{
5690 :
5691 :
5692 2895068 : for(unsigned int i=ini; i<ifin+1; i++){
5693 :
5694 2728362 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
5695 2728362 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
5696 2728362 : lshapeacum=lshapeacum+lshape;
5697 :
5698 : }
5699 :
5700 166706 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
5701 : // real part: delay in rad*cm^2
5702 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2) (0.0,0.0);
5703 :
5704 : }
5705 :
5706 : }
5707 :
5708 : }
5709 :
5710 : //////////////////////// Opacity Source Number: 21 /////////////////////////////
5711 :
5712 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o16o17o(double tt, double pp, double nu, unsigned int vp){
5713 :
5714 : static const double fre[1363]={
5715 : .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,
5716 : 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,
5717 : 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,
5718 : 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,
5719 : 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,
5720 : 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,
5721 : 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,
5722 : 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,
5723 : 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,
5724 : 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,
5725 : 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,
5726 : 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,
5727 : 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,
5728 : 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,
5729 : 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,
5730 : 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,
5731 : 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,
5732 : 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,
5733 : 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,
5734 : 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,
5735 : 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,
5736 : 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,
5737 : 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,
5738 : 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,
5739 : 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,
5740 : 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,
5741 : 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,
5742 : 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,
5743 : 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,
5744 : 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,
5745 : 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,
5746 : 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,
5747 : 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,
5748 : 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,
5749 : 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,
5750 : 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,
5751 : 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,
5752 : 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,
5753 : 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,
5754 : 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,
5755 : 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,
5756 : 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,
5757 : 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,
5758 : 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,
5759 : 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,
5760 : 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,
5761 : 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,
5762 : 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,
5763 : 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,
5764 : 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,
5765 : 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,
5766 : 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,
5767 : 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,
5768 : 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,
5769 : 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,
5770 : 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,
5771 : 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,
5772 : 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,
5773 : 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,
5774 : 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,
5775 : 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,
5776 : 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,
5777 : 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,
5778 : 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,
5779 : 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,
5780 : 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,
5781 : 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,
5782 : 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,
5783 : 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,
5784 : 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,
5785 : 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,
5786 : 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,
5787 : 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,
5788 : 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,
5789 : 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,
5790 : 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};
5791 :
5792 : static const double flin[1363]={
5793 : .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,
5794 : .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,
5795 : .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,
5796 : .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,
5797 : .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,
5798 : .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,
5799 : .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,
5800 : .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,
5801 : .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,
5802 : .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,
5803 : .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,
5804 : .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,
5805 : .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,
5806 : .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,
5807 : .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,
5808 : .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,
5809 : .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,
5810 : .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,
5811 : .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,
5812 : .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,
5813 : .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,
5814 : .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,
5815 : .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,
5816 : .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,
5817 : .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,
5818 : .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,
5819 : .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,
5820 : .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,
5821 : .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,
5822 : .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,
5823 : .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,
5824 : .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,
5825 : .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,
5826 : .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,
5827 : .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,
5828 : .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,
5829 : .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,
5830 : .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,
5831 : .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,
5832 : .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,
5833 : .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,
5834 : .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,
5835 : .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,
5836 : .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,
5837 : .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,
5838 : .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,
5839 : .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,
5840 : .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,
5841 : .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,
5842 : .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,
5843 : .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,
5844 : .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,
5845 : .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,
5846 : .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,
5847 : .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,
5848 : .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,
5849 : .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,
5850 : .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,
5851 : .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,
5852 : .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,
5853 : .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,
5854 : .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,
5855 : .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,
5856 : .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,
5857 : .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,
5858 : .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,
5859 : .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,
5860 : .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,
5861 : .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,
5862 : .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,
5863 : .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,
5864 : .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,
5865 : .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,
5866 : .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,
5867 : .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,
5868 : .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};
5869 :
5870 : static const double el[1363]={
5871 : 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,
5872 : 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,
5873 : 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,
5874 : 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,
5875 : 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,
5876 : 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,
5877 : 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,
5878 : 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,
5879 : 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,
5880 : 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,
5881 : 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,
5882 : 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,
5883 : 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,
5884 : 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,
5885 : 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,
5886 : 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,
5887 : 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,
5888 : 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,
5889 : 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,
5890 : 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,
5891 : 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,
5892 : 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,
5893 : 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,
5894 : 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,
5895 : 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,
5896 : 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,
5897 : 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,
5898 : 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,
5899 : 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,
5900 : 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,
5901 : 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,
5902 : 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,
5903 : 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,
5904 : 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,
5905 : 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,
5906 : 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,
5907 : 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,
5908 : 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,
5909 : 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,
5910 : 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,
5911 : 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,
5912 : 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,
5913 : 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,
5914 : 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,
5915 : 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,
5916 : 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,
5917 : 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,
5918 : 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,
5919 : 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,
5920 : 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,
5921 : 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,
5922 : 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,
5923 : 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,
5924 : 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,
5925 : 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,
5926 : 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,
5927 : 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,
5928 : 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,
5929 : 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,
5930 : 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,
5931 : 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,
5932 : 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,
5933 : 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,
5934 : 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,
5935 : 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,
5936 : 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,
5937 : 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,
5938 : 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,
5939 : 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,
5940 : 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,
5941 : 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,
5942 : 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,
5943 : 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,
5944 : 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,
5945 : 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,
5946 : 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};
5947 :
5948 : static const double texpO3[1363] ={
5949 : 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,
5950 : 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,
5951 : 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,
5952 : 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,
5953 : 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,
5954 : 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,
5955 : 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,
5956 : 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,
5957 : 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,
5958 : 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,
5959 : 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,
5960 : 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,
5961 : 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,
5962 : 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,
5963 : 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,
5964 : 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,
5965 : 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,
5966 : 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,
5967 : 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,
5968 : 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,
5969 : 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,
5970 : 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,
5971 : 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,
5972 : 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,
5973 : 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,
5974 : 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,
5975 : 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,
5976 : 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,
5977 : 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,
5978 : 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,
5979 : 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,
5980 : 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,
5981 : 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,
5982 : 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,
5983 : 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,
5984 : 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,
5985 : 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,
5986 : 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};
5987 :
5988 : static const double brdO3air[1363] ={
5989 : 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,
5990 : 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,
5991 : 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,
5992 : 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,
5993 : 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,
5994 : 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,
5995 : 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,
5996 : 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,
5997 : 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,
5998 : 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,
5999 : 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,
6000 : 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,
6001 : 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,
6002 : 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,
6003 : 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,
6004 : 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,
6005 : 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,
6006 : 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,
6007 : 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,
6008 : 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,
6009 : 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,
6010 : 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,
6011 : 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,
6012 : 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,
6013 : 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,
6014 : 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,
6015 : 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,
6016 : 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,
6017 : 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,
6018 : 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,
6019 : 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,
6020 : 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,
6021 : 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,
6022 : 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,
6023 : 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,
6024 : 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,
6025 : 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,
6026 : 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,
6027 : 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,
6028 : 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,
6029 : 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,
6030 : 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,
6031 : 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,
6032 : 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,
6033 : 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,
6034 : 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,
6035 : 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,
6036 : 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,
6037 : 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,
6038 : 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,
6039 : 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};
6040 :
6041 :
6042 :
6043 : static const unsigned int ifin1[500]={
6044 : 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,
6045 : 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,
6046 : 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,
6047 : 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,
6048 : 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,
6049 : 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,
6050 : 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,
6051 : 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,
6052 : 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,
6053 : 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,
6054 : 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,
6055 : 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,
6056 : 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,
6057 : 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,
6058 : 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,
6059 : 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,
6060 : 1305,1309,1312,1315,1318,1319,1323,1324,1325,1327,1332,1336,1338,1341,1348,1352,1357,1363,1363,1363};
6061 :
6062 : static const unsigned int ini1[500]={
6063 : 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,
6064 : 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,
6065 : 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,
6066 : 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,
6067 : 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,
6068 : 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,
6069 : 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,
6070 : 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,
6071 : 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,
6072 : 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,
6073 : 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,
6074 : 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,
6075 : 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,
6076 : 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,
6077 : 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,
6078 : 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,
6079 : 1293,1297,1304,1305,1305,1309,1312,1315,1318,1319,1323,1324,1325,1327,1332,1336,1338,1341,1348,1352};
6080 :
6081 : static const unsigned int ifin2[500]={
6082 : 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,
6083 : 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,
6084 : 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,
6085 : 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,
6086 : 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,
6087 : 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,
6088 : 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,
6089 : 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,
6090 : 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,
6091 : 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,
6092 : 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,
6093 : 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,
6094 : 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,
6095 : 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,
6096 : 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,
6097 : 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,
6098 : 1305,1305,1309,1311,1315,1317,1319,1323,1324,1325,1325,1332,1336,1338,1339,1347,1351,1354,1360,1363};
6099 :
6100 : static const unsigned int ini2[500]={
6101 : 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,
6102 : 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,
6103 : 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,
6104 : 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,
6105 : 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,
6106 : 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,
6107 : 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,
6108 : 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,
6109 : 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,
6110 : 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,
6111 : 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,
6112 : 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,
6113 : 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,
6114 : 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,
6115 : 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,
6116 : 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,
6117 : 1300,1304,1305,1306,1309,1313,1315,1318,1320,1323,1325,1325,1330,1334,1336,1339,1342,1349,1352,1359};
6118 :
6119 :
6120 : static const unsigned int ifin3[500]={
6121 : 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,
6122 : 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,
6123 : 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,
6124 : 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,
6125 : 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,
6126 : 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,
6127 : 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,
6128 : 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,
6129 : 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,
6130 : 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,
6131 : 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,
6132 : 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,
6133 : 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,
6134 : 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,
6135 : 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,
6136 : 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,
6137 : 1304,1305,1306,1309,1313,1315,1318,1320,1323,1325,1325,1330,1334,1336,1339,1342,1349,1352,1359,1363};
6138 :
6139 :
6140 : static const unsigned int ini3[500]={
6141 : 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,
6142 : 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,
6143 : 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,
6144 : 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,
6145 : 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,
6146 : 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,
6147 : 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,
6148 : 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,
6149 : 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,
6150 : 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,
6151 : 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,
6152 : 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,
6153 : 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,
6154 : 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,
6155 : 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,
6156 : 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,
6157 : 1301,1305,1305,1309,1311,1315,1317,1319,1323,1324,1325,1325,1332,1336,1338,1339,1347,1351,1354,1360};
6158 :
6159 : static const double pi=3.141592654;
6160 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
6161 : static const double mu=0.53; // dipole moment in Debyes
6162 : static const double mmol=49.0;
6163 :
6164 166706 : double q=1.344455353*tt*sqrt(tt);
6165 : // unsigned int vp;
6166 :
6167 : unsigned int ini;
6168 : unsigned int ifin;
6169 : static const bool allfreqs = false;
6170 : static const unsigned int zero = 0;
6171 : static const unsigned int nmaxvp = 499;
6172 166706 : std::complex<double> lshape;
6173 166706 : std::complex<double> lshapeacum;
6174 :
6175 166706 : if(nu>999.9){
6176 :
6177 0 : return std::complex<double> (0.0,0.0);
6178 :
6179 : }else{
6180 :
6181 : // vp = vpIndex(nu);
6182 :
6183 166706 : if(vp>2){
6184 :
6185 166706 : if(pp<25){
6186 22706 : ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
6187 : }else{
6188 144000 : if(pp<300){ ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
6189 : }
6190 : else{
6191 89700 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
6192 : }
6193 : }
6194 :
6195 : }else{
6196 :
6197 0 : if(pp<25){
6198 0 : ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
6199 : }else{
6200 0 : if(pp<300){ ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
6201 : }
6202 : else{
6203 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
6204 : }
6205 : }
6206 :
6207 : }
6208 :
6209 : if(allfreqs){ini=0; ifin=1362;}
6210 :
6211 166706 : if(ifin==0||ifin<ini){
6212 :
6213 0 : return std::complex<double> (0.0,0.0);
6214 :
6215 : }else{
6216 :
6217 2811196 : for(unsigned int i=ini; i<ifin+1; i++){
6218 :
6219 2644490 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
6220 2644490 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
6221 2644490 : lshapeacum=lshapeacum+lshape;
6222 :
6223 : }
6224 :
6225 166706 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
6226 : // real part: delay in rad*cm^2
6227 :
6228 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2)
6229 :
6230 : }
6231 :
6232 : }
6233 :
6234 : }
6235 :
6236 : //////////////////////// Opacity Source Number: 22 /////////////////////////////
6237 :
6238 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o18o16o(double tt, double pp, double nu, unsigned int vp){
6239 :
6240 : static const double fre[755]={
6241 : 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,
6242 : 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,
6243 : 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,
6244 : 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,
6245 : 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,
6246 : 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,
6247 : 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,
6248 : 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,
6249 : 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,
6250 : 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,
6251 : 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,
6252 : 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,
6253 : 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,
6254 : 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,
6255 : 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,
6256 : 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,
6257 : 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,
6258 : 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,
6259 : 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,
6260 : 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,
6261 : 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,
6262 : 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,
6263 : 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,
6264 : 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,
6265 : 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,
6266 : 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,
6267 : 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,
6268 : 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,
6269 : 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,
6270 : 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,
6271 : 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,
6272 : 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,
6273 : 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,
6274 : 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,
6275 : 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,
6276 : 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,
6277 : 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,
6278 : 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,
6279 : 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,
6280 : 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,
6281 : 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,
6282 : 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};
6283 :
6284 : static const double flin[755]={
6285 : .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,
6286 : .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,
6287 : .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,
6288 : .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,
6289 : .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,
6290 : .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,
6291 : .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,
6292 : .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,
6293 : .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,
6294 : .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,
6295 : .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,
6296 : .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,
6297 : .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,
6298 : .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,
6299 : .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,
6300 : .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,
6301 : .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,
6302 : .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,
6303 : .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,
6304 : .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,
6305 : .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,
6306 : .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,
6307 : .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,
6308 : .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,
6309 : .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,
6310 : .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,
6311 : .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,
6312 : .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,
6313 : .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,
6314 : .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,
6315 : .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,
6316 : .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,
6317 : .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,
6318 : .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,
6319 : .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,
6320 : .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,
6321 : .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,
6322 : .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,
6323 : .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,
6324 : .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,
6325 : .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,
6326 : .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};
6327 :
6328 : static const double el[755]={
6329 : 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,
6330 : 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,
6331 : 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,
6332 : 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,
6333 : 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,
6334 : 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,
6335 : 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,
6336 : 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,
6337 : 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,
6338 : 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,
6339 : 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,
6340 : 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,
6341 : 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,
6342 : 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,
6343 : 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,
6344 : 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,
6345 : 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,
6346 : 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,
6347 : 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,
6348 : 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,
6349 : 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,
6350 : 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,
6351 : 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,
6352 : 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,
6353 : 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,
6354 : 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,
6355 : 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,
6356 : 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,
6357 : 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,
6358 : 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,
6359 : 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,
6360 : 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,
6361 : 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,
6362 : 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,
6363 : 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,
6364 : 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,
6365 : 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,
6366 : 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,
6367 : 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,
6368 : 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,
6369 : 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,
6370 : 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};
6371 :
6372 : static const double texpO3[755] ={
6373 : 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,
6374 : 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,
6375 : 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,
6376 : 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,
6377 : 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,
6378 : 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,
6379 : 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,
6380 : 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,
6381 : 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,
6382 : 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,
6383 : 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,
6384 : 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,
6385 : 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,
6386 : 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,
6387 : 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,
6388 : 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,
6389 : 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,
6390 : 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,
6391 : 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,
6392 : 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,
6393 : 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};
6394 :
6395 : static const double brdO3air[755] ={
6396 : 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,
6397 : 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,
6398 : 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,
6399 : 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,
6400 : 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,
6401 : 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,
6402 : 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,
6403 : 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,
6404 : 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,
6405 : 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,
6406 : 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,
6407 : 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,
6408 : 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,
6409 : 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,
6410 : 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,
6411 : 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,
6412 : 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,
6413 : 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,
6414 : 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,
6415 : 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,
6416 : 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,
6417 : 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,
6418 : 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,
6419 : 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,
6420 : 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,
6421 : 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,
6422 : 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,
6423 : 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};
6424 :
6425 :
6426 : static const unsigned int ifin1[500]={
6427 : 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,
6428 : 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,
6429 : 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,
6430 : 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,
6431 : 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,
6432 : 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,
6433 : 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,
6434 : 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,
6435 : 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,
6436 : 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,
6437 : 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,
6438 : 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,
6439 : 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,
6440 : 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,
6441 : 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,
6442 : 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,
6443 : 735, 737, 737, 738, 739, 741, 742, 743, 744, 747, 748, 748, 748, 750, 750, 752, 753, 755, 755, 755};
6444 :
6445 : static const unsigned int ini1[500]={
6446 : 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,
6447 : 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,
6448 : 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,
6449 : 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,
6450 : 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,
6451 : 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,
6452 : 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,
6453 : 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,
6454 : 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,
6455 : 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,
6456 : 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,
6457 : 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,
6458 : 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,
6459 : 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,
6460 : 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,
6461 : 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,
6462 : 733, 733, 733, 733, 735, 737, 737, 738, 739, 741,742, 743, 744, 747, 748, 748, 748, 750, 750, 752};
6463 :
6464 : static const unsigned int ifin2[500]={
6465 : 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,
6466 : 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,
6467 : 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,
6468 : 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,
6469 : 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,
6470 : 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,
6471 : 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,
6472 : 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,
6473 : 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,
6474 : 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,
6475 : 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,
6476 : 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,
6477 : 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,
6478 : 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,
6479 : 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,
6480 : 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,
6481 : 733, 733, 736, 737, 738, 739, 741, 742, 742, 744, 747, 748, 748, 748, 749, 750, 752, 753, 753, 755};
6482 :
6483 : static const unsigned int ini2[500]={
6484 : 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,
6485 : 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,
6486 : 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,
6487 : 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,
6488 : 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,
6489 : 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,
6490 : 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,
6491 : 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,
6492 : 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,
6493 : 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,
6494 : 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,
6495 : 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,
6496 : 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,
6497 : 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,
6498 : 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,
6499 : 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,
6500 : 733, 733, 733, 735, 737, 738, 739, 739, 742, 742, 743, 745, 747, 748, 748, 748, 750, 750, 752, 753};
6501 :
6502 : static const unsigned int ifin3[500]={
6503 : 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,
6504 : 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,
6505 : 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,
6506 : 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,
6507 : 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,
6508 : 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,
6509 : 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,
6510 : 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,
6511 : 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,
6512 : 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,
6513 : 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,
6514 : 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,
6515 : 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,
6516 : 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,
6517 : 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,
6518 : 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,
6519 : 733, 733, 735, 737, 738, 739, 739, 742, 742, 743, 745, 747, 748, 748, 748, 750, 750, 752, 753, 755};
6520 :
6521 :
6522 : static const unsigned int ini3[500]={
6523 : 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,
6524 : 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,
6525 : 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,
6526 : 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,
6527 : 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,
6528 : 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,
6529 : 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,
6530 : 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,
6531 : 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,
6532 : 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,
6533 : 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,
6534 : 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,
6535 : 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,
6536 : 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,
6537 : 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,
6538 : 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,
6539 : 733, 733, 733, 736, 737, 738, 739, 741, 742, 742, 744, 747, 748, 748, 748, 749, 750, 752, 753, 753};
6540 :
6541 :
6542 :
6543 : static const double pi=3.141592654;
6544 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
6545 : static const double mu=0.53; // dipole moment in Debyes
6546 : static const double mmol=50.0;
6547 :
6548 : //double q=0.678068387*pow(tt,1.5);
6549 166706 : double q=0.678068387*tt*sqrt(tt);
6550 : // unsigned int vp;
6551 : unsigned int ini;
6552 : unsigned int ifin;
6553 : static const bool allfreqs = false;
6554 : static const unsigned int zero = 0;
6555 : static const unsigned int nmaxvp = 499;
6556 166706 : std::complex<double> lshape;
6557 166706 : std::complex<double> lshapeacum;
6558 :
6559 166706 : if(nu>999.9){
6560 :
6561 0 : return std::complex<double> (0.0,0.0);
6562 :
6563 : }else{
6564 :
6565 : // vp = vpIndex(nu);
6566 :
6567 166706 : if(vp>2){
6568 :
6569 166706 : if(pp<25){ ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
6570 144000 : }else{ if(pp<300){ ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
6571 89700 : }else{ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;}
6572 : }
6573 :
6574 : }else{
6575 :
6576 0 : if(pp<25){ ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
6577 0 : }else{ if(pp<300){ ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
6578 0 : }else{ ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1; }
6579 : }
6580 :
6581 : }
6582 :
6583 : if(allfreqs){ini=0; ifin=754;}
6584 :
6585 166706 : if(ifin==0||ifin<ini){
6586 :
6587 0 : return std::complex<double> (0.0,0.0);
6588 :
6589 : }else{
6590 :
6591 1836070 : for(unsigned int i=ini; i<ifin+1; i++){
6592 :
6593 1669364 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
6594 1669364 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
6595 1669364 : lshapeacum=lshapeacum+lshape;
6596 :
6597 : }
6598 :
6599 166706 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
6600 : // real part: delay in rad*cm^2
6601 :
6602 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2)
6603 :
6604 : }
6605 :
6606 : }
6607 :
6608 : }
6609 :
6610 : //////////////////////// Opacity Source Number: 23 /////////////////////////////
6611 :
6612 166706 : std::complex<double> RefractiveIndex::mkSpecificRefractivity_16o17o16o(double tt, double pp, double nu, unsigned int vp){
6613 :
6614 : static const double fre[518]={
6615 : 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,
6616 : 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,
6617 : 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,
6618 : 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,
6619 : 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,
6620 : 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,
6621 : 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,
6622 : 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,
6623 : 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,
6624 : 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,
6625 : 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,
6626 : 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,
6627 : 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,
6628 : 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,
6629 : 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,
6630 : 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,
6631 : 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,
6632 : 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,
6633 : 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,
6634 : 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,
6635 : 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,
6636 : 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,
6637 : 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,
6638 : 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,
6639 : 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,
6640 : 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,
6641 : 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,
6642 : 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,
6643 : 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};
6644 :
6645 : static const double flin[518]={
6646 : .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,
6647 : .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,
6648 : .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,
6649 : .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,
6650 : .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,
6651 : .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,
6652 : .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,
6653 : .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,
6654 : .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,
6655 : .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,
6656 : .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,
6657 : .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,
6658 : .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,
6659 : .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,
6660 : .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,
6661 : .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,
6662 : .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,
6663 : .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,
6664 : .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,
6665 : .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,
6666 : .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,
6667 : .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,
6668 : .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,
6669 : .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,
6670 : .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,
6671 : .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,
6672 : .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,
6673 : .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,
6674 : .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};
6675 :
6676 : static const double el[518]={
6677 : 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,
6678 : 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,
6679 : 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,
6680 : 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,
6681 : 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,
6682 : 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,
6683 : 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,
6684 : 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,
6685 : 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,
6686 : 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,
6687 : 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,
6688 : 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,
6689 : 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,
6690 : 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,
6691 : 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,
6692 : 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,
6693 : 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,
6694 : 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,
6695 : 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,
6696 : 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,
6697 : 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,
6698 : 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,
6699 : 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,
6700 : 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,
6701 : 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,
6702 : 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,
6703 : 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,
6704 : 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,
6705 : 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};
6706 :
6707 : static const double texpO3[518] ={
6708 : 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,
6709 : 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,
6710 : 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,
6711 : 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,
6712 : 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,
6713 : 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,
6714 : 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,
6715 : 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,
6716 : 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,
6717 : 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,
6718 : 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,
6719 : 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,
6720 : 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,
6721 : 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,
6722 : 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};
6723 :
6724 : static const double brdO3air[518] ={
6725 : 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,
6726 : 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,
6727 : 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,
6728 : 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,
6729 : 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,
6730 : 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,
6731 : 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,
6732 : 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,
6733 : 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,
6734 : 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,
6735 : 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,
6736 : 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,
6737 : 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,
6738 : 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,
6739 : 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,
6740 : 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,
6741 : 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,
6742 : 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,
6743 : 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,
6744 : 2.3000,2.3000,2.0953,2.3000,2.3000};
6745 :
6746 :
6747 : static const unsigned int ifin1[500]={
6748 : 1, 1, 1, 1, 1, 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,
6749 : 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,
6750 : 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,
6751 : 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,
6752 : 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,
6753 : 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,
6754 : 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,
6755 : 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,
6756 : 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,
6757 : 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,
6758 : 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,
6759 : 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,
6760 : 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,
6761 : 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,
6762 : 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,
6763 : 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,
6764 : 476, 478, 480, 481, 482, 484, 487, 491, 494, 503, 515, 516, 516, 516, 516, 517, 517, 518, 518, 518};
6765 :
6766 : static const unsigned int ini1[500]={
6767 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6768 : 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,
6769 : 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,
6770 : 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,
6771 : 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,
6772 : 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,
6773 : 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,
6774 : 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,
6775 : 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,
6776 : 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,
6777 : 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,
6778 : 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,
6779 : 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,
6780 : 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,
6781 : 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,
6782 : 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,
6783 : 469, 470, 474, 476, 476, 478, 480, 481, 482, 484, 487, 491, 494, 503, 515, 516, 516, 516, 516, 517};
6784 :
6785 : static const unsigned int ifin2[500]={
6786 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6787 : 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,
6788 : 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,
6789 : 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,
6790 : 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,
6791 : 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,
6792 : 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,
6793 : 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,
6794 : 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,
6795 : 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,
6796 : 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,
6797 : 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,
6798 : 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,
6799 : 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,
6800 : 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,
6801 : 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,
6802 : 476, 476, 478, 479, 481, 482, 484, 487, 490, 493, 500, 514, 516, 516, 516, 516, 517, 517, 518, 518};
6803 :
6804 : static const unsigned int ini2[500]={
6805 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6806 : 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,
6807 : 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,
6808 : 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,
6809 : 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,
6810 : 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,
6811 : 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,
6812 : 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,
6813 : 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,
6814 : 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,
6815 : 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,
6816 : 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,
6817 : 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,
6818 : 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,
6819 : 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,
6820 : 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,
6821 : 471, 474, 476, 477, 478, 480, 482, 482, 484, 487, 492, 495, 506, 515, 516, 516, 516, 516, 517, 517};
6822 :
6823 : static const unsigned int ifin3[500]={
6824 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6825 : 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,
6826 : 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,
6827 : 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,
6828 : 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,
6829 : 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,
6830 : 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,
6831 : 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,
6832 : 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,
6833 : 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,
6834 : 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,
6835 : 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,
6836 : 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,
6837 : 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,
6838 : 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,
6839 : 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,
6840 : 474, 476, 477, 478, 480, 482, 482, 484, 487, 492, 495, 506, 515, 516, 516, 516, 516, 517, 517, 518};
6841 :
6842 : static const unsigned int ini3[500]={
6843 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
6844 : 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,
6845 : 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,
6846 : 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,
6847 : 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,
6848 : 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,
6849 : 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,
6850 : 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,
6851 : 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,
6852 : 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,
6853 : 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,
6854 : 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,
6855 : 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,
6856 : 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,
6857 : 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,
6858 : 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,
6859 : 473, 476, 476, 478, 479, 481, 482, 484, 487, 490, 493, 500, 514, 516, 516, 516, 516, 517, 517, 518};
6860 :
6861 : static const double pi=3.141592654;
6862 : static const double picube8div3hcesu=4.1623755E-19; // (8*pi**3/(3*h*c))*(1e-18)**2 = 4.1623755E-19
6863 : static const double mu=0.53; // dipole moment in Debyes
6864 : static const double mmol=49.0;
6865 :
6866 : //double q=0.664313224*pow(tt,1.5);
6867 166706 : double q=0.664313224*tt*sqrt(tt);
6868 : // unsigned int vp;
6869 : unsigned int ini;
6870 : unsigned int ifin;
6871 : static const bool allfreqs = false;
6872 : static const unsigned int zero = 0;
6873 : static const unsigned int nmaxvp = 499;
6874 166706 : std::complex<double> lshape;
6875 166706 : std::complex<double> lshapeacum;
6876 :
6877 166706 : if(nu>999.9){
6878 :
6879 0 : return std::complex<double> (0.0,0.0);
6880 :
6881 : }else{
6882 :
6883 : // vp = vpIndex(nu);
6884 :
6885 166706 : if(vp>2){
6886 :
6887 166706 : if(pp<25){
6888 22706 : ini=ini3[max((vp-2),zero)]-1; ifin=ifin3[min((vp+2),nmaxvp)]-1;
6889 : }else{
6890 144000 : if(pp<300){ ini=ini2[max((vp-2),zero)]-1; ifin=ifin2[min((vp+2),nmaxvp)]-1;
6891 : }
6892 : else{
6893 89700 : ini=ini1[max((vp-2),zero)]-1; ifin=ifin1[min((vp+2),nmaxvp)]-1;
6894 : }
6895 : }
6896 :
6897 : }else{
6898 :
6899 0 : if(pp<25){
6900 0 : ini=0; ifin=ifin3[min((vp+2),nmaxvp)]-1;
6901 : }else{
6902 0 : if(pp<300){ ini=0; ifin=ifin2[min((vp+2),nmaxvp)]-1;
6903 : }
6904 : else{
6905 0 : ini=0; ifin=ifin1[min((vp+2),nmaxvp)]-1;
6906 : }
6907 : }
6908 :
6909 : }
6910 :
6911 : if(allfreqs){ini=0; ifin=517;}
6912 :
6913 166706 : if(ifin==0||ifin<ini){
6914 :
6915 0 : return std::complex<double> (0.0,0.0);
6916 :
6917 : }else{
6918 :
6919 1222794 : for(unsigned int i=ini; i<ifin+1; i++){
6920 :
6921 1056088 : lshape=lineshape(nu,fre[i],linebroadening(fre[i],tt,pp,mmol,brdO3air[i]*0.001,texpO3[i]),0.0); // broadening parameter units converted to GHz/mb 14/11/2018
6922 1056088 : lshape=lshape*flin[i]*exp(-el[i]/tt)*fre[i];
6923 1056088 : lshapeacum=lshapeacum+lshape;
6924 :
6925 : }
6926 :
6927 166706 : lshapeacum=lshapeacum*(nu/pi)*(0.047992745509/tt)*(picube8div3hcesu*pow(mu,2)/q); // imaginary part: absorption coefficient in cm^2
6928 : // real part: delay in rad*cm^2
6929 :
6930 166706 : return lshapeacum*1e-4; // 1e-4 is the factor to transform into SI units (rad m^2, m^2)
6931 :
6932 : }
6933 :
6934 : }
6935 :
6936 : }
6937 :
6938 : ATM_NAMESPACE_END
|