ARTS  2.2.66
partition_function_data.cc
Go to the documentation of this file.
1 /* Copyright (C) 2000-2012
2  Stefan Buehler <sbuehler@ltu.se>,
3  Axel von Engeln <engeln@uni-bremen.de>,
4  Carmen Verdes <cverdes@uni-bremen.de>
5 
6  This program is free software; you can redistribute it and/or modify it
7  under the terms of the GNU General Public License as published by the
8  Free Software Foundation; either version 2, or (at your option) any
9  later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
19  USA. */
20 
38 #include "arts.h"
39 #include "make_array.h"
40 #include "absorption.h"
41 
42 namespace global_data {
44 }
45 
46 /*
47  Default values for a linear molecule:
48 
49  c0 c1 c2 c3
50  0.0 1.0 0.0 0.0
51 
52  and for non linear molecules:
53 
54  c0 c1 c2 c3
55  -76.2339 6.95356 1.30510e-07 -1.17068e-11
56 
57  Here we assumed that either
58 
59  atomic: Q = T
60  linear: Q = T
61  non-linear: Q = T^1.5
62 
63  These numbers are from Axel von Engeln, May 2005 (except atomic: Jana Mendrok,
64  Jan2013).
65 */
66 
69 #define Qcoeff MakeArray<Numeric>
70 
71 
72 
179  String name);
180 
182  String name,
183  const ArrayOfNumeric& coeff,
184  const Index& coefftype);
185 
186 
188 {
190 
191  Array<SpeciesRecord>::iterator it_species = species_data.begin();
192  Array<IsotopologueRecord>::iterator it_isotopologue;
193 
194 
195  // H2O
196  // Coeff: 1 1 1 1 1 1 2
197  //
198  // There are dummy entries here for the continuum tags. Of course,
199  // continua need no partition functions, but the entries must be
200  // present, so that the consistency check between species_data and
201  // partition_function_data is successful.
202  //
203  spec(it_species, it_isotopologue, "H2O");
204  // Name c0 c1 c2 c3
205  // | | | | |
206 iso(it_isotopologue, "161" , Qcoeff(-6.065594e+00, 2.907027e-01, 1.246245e-03, -5.606119e-07 ), IsotopologueRecord::PF_FROMCOEFF);
207 iso(it_isotopologue, "181" , Qcoeff(-7.220624e+00, 2.945347e-01, 1.250362e-03, -5.554638e-07 ), IsotopologueRecord::PF_FROMCOEFF);
208 iso(it_isotopologue, "171" , Qcoeff(-4.668105e+01, 1.819186e+00, 7.137470e-03, -2.670352e-06 ), IsotopologueRecord::PF_FROMCOEFF);
209 iso(it_isotopologue, "162" , Qcoeff(-4.084466e+01, 1.484533e+00, 5.953330e-03, -2.359695e-06 ), IsotopologueRecord::PF_FROMCOEFF);
210 iso(it_isotopologue, "182" , Qcoeff(-3.529770e+01, 1.503267e+00, 6.020059e-03, -2.389284e-06 ), IsotopologueRecord::PF_FROMCOEFF);
211 iso(it_isotopologue, "172" , Qcoeff(-2.098457e+02, 8.959286e+00, 3.593721e-02, -1.428880e-05 ), IsotopologueRecord::PF_FROMCOEFF);
212 iso(it_isotopologue, "262" , Qcoeff(-3.572493e+01, 1.652500e+00, 7.633309e-03, -3.770940e-06 ), IsotopologueRecord::PF_FROMCOEFF);
213  iso(it_isotopologue, "SelfContStandardType", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
214  iso(it_isotopologue, "ForeignContStandardType", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
215  iso(it_isotopologue, "ForeignContMaTippingType", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
216  iso(it_isotopologue, "ContMPM93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
217  iso(it_isotopologue, "SelfContCKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
218  iso(it_isotopologue, "ForeignContCKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
219  iso(it_isotopologue, "SelfContCKDMT250", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
220  iso(it_isotopologue, "ForeignContCKDMT250", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
221  iso(it_isotopologue, "SelfContCKD222", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
222  iso(it_isotopologue, "ForeignContCKD222", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
223  iso(it_isotopologue, "SelfContCKD242", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
224  iso(it_isotopologue, "ForeignContCKD242", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
225  iso(it_isotopologue, "SelfContCKD24", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
226  iso(it_isotopologue, "ForeignContCKD24", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
227  iso(it_isotopologue, "ForeignContATM01", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
228  iso(it_isotopologue, "CP98", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
229  iso(it_isotopologue, "MPM87",Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
230  iso(it_isotopologue, "MPM89",Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
231  iso(it_isotopologue, "MPM93",Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
232  iso(it_isotopologue, "PWR98",Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
233 
234 
235 
236  // CO2
237  // Coeff: 1 1 1 1 1 1 1 1 1 1 1
238  spec(it_species, it_isotopologue, "CO2");
239  // Name c0 c1 c2 c3
240  // | | | | |
241 iso(it_isotopologue, "626" , Qcoeff(-1.720718e+00, 9.669217e-01, -8.277298e-04, 2.891070e-06 ), IsotopologueRecord::PF_FROMCOEFF);
242 iso(it_isotopologue, "636" , Qcoeff(-1.850250e+00, 1.912107e+00, -1.599677e-03, 5.955462e-06 ), IsotopologueRecord::PF_FROMCOEFF);
243 iso(it_isotopologue, "628" , Qcoeff(-2.989446e+00, 2.041095e+00, -1.732748e-03, 6.174831e-06 ), IsotopologueRecord::PF_FROMCOEFF);
244 iso(it_isotopologue, "627" , Qcoeff(-2.256240e+01, 1.197737e+01, -1.036863e-02, 3.618820e-05 ), IsotopologueRecord::PF_FROMCOEFF);
245 iso(it_isotopologue, "638" , Qcoeff(-1.882095e+00, 4.025528e+00, -3.299047e-03, 1.266725e-05 ), IsotopologueRecord::PF_FROMCOEFF);
246 iso(it_isotopologue, "637" , Qcoeff(-1.788894e+01, 2.358158e+01, -1.957976e-02, 7.389405e-05 ), IsotopologueRecord::PF_FROMCOEFF);
247 iso(it_isotopologue, "828" , Qcoeff(-1.818540e+00, 1.086818e+00, -9.427241e-04, 3.352295e-06 ), IsotopologueRecord::PF_FROMCOEFF);
248 iso(it_isotopologue, "728" , Qcoeff(-2.087791e+01, 1.266486e+01, -1.091287e-02, 3.874034e-05 ), IsotopologueRecord::PF_FROMCOEFF);
249 iso(it_isotopologue, "727" , Qcoeff(-6.008949e+01, 3.692019e+01, -3.164016e-02, 1.120452e-04 ), IsotopologueRecord::PF_FROMCOEFF);
250 iso(it_isotopologue, "838" , Qcoeff(-1.381515e+00, 2.142230e+00, -1.790555e-03, 6.861265e-06 ), IsotopologueRecord::PF_FROMCOEFF);
251 iso(it_isotopologue, "837" , Qcoeff(-1.713863e+01, 2.498987e+01, -2.084202e-02, 7.949796e-05 ), IsotopologueRecord::PF_FROMCOEFF);
252  iso(it_isotopologue, "CKD241", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
253  iso(it_isotopologue, "CKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
254  iso(it_isotopologue, "CKDMT250", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
255  iso(it_isotopologue, "SelfContPWR93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
256  iso(it_isotopologue, "ForeignContPWR93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
257 
258 
259 
260  // O3
261  // Coeff: 1 1 1 1 1
262  spec(it_species, it_isotopologue, "O3");
263  // Name c0 c1 c2 c3
264  // | | | | |
265 iso(it_isotopologue, "666" , Qcoeff(-2.773214e+02, 8.175293e+00, 6.892651e-03, 2.842028e-05 ), IsotopologueRecord::PF_FROMCOEFF);
266 iso(it_isotopologue, "668" , Qcoeff(-5.978029e+02, 1.759117e+01, 1.353516e-02, 6.440030e-05 ), IsotopologueRecord::PF_FROMCOEFF);
267 iso(it_isotopologue, "686" , Qcoeff(-3.005190e+02, 8.726453e+00, 5.976672e-03, 3.241643e-05 ), IsotopologueRecord::PF_FROMCOEFF);
268 iso(it_isotopologue, "667" , Qcoeff(-3.454638e+03, 1.018144e+02, 8.249751e-02, 3.631247e-04 ), IsotopologueRecord::PF_FROMCOEFF);
269 iso(it_isotopologue, "676" , Qcoeff(-1.735693e+03, 5.072998e+01, 3.877763e-02, 1.821985e-04 ), IsotopologueRecord::PF_FROMCOEFF);
270 
271 
272 
273  // N2O
274  // Coeff: 1 1 1 1 1
275  spec(it_species, it_isotopologue, "N2O");
276  // Name c0 c1 c2 c3
277  // | | | | |
278 iso(it_isotopologue, "446" , Qcoeff(3.478254e+01, 1.530195e+01, -1.120080e-02, 5.472145e-05 ), IsotopologueRecord::PF_FROMCOEFF);
279 iso(it_isotopologue, "456" , Qcoeff(3.479618e+01, 1.002537e+01, -6.789834e-03, 3.681093e-05 ), IsotopologueRecord::PF_FROMCOEFF);
280 iso(it_isotopologue, "546" , Qcoeff(2.435117e+01, 1.055152e+01, -7.756090e-03, 3.819981e-05 ), IsotopologueRecord::PF_FROMCOEFF);
281 iso(it_isotopologue, "448" , Qcoeff(4.066999e+01, 1.615921e+01, -1.180945e-02, 5.883212e-05 ), IsotopologueRecord::PF_FROMCOEFF);
282 iso(it_isotopologue, "447" , Qcoeff(2.050163e+02, 9.473303e+01, -7.029656e-02, 3.426216e-04 ), IsotopologueRecord::PF_FROMCOEFF);
283 
284 
285  // CO
286  // Coeff: 1 1 1 1 1 1
287  spec(it_species, it_isotopologue, "CO");
288  // Name c0 c1 c2 c3
289  // | | | | |
290 iso(it_isotopologue, "26" , Qcoeff(3.243148e-01, 3.601229e-01, 1.538205e-06, 2.385704e-09 ), IsotopologueRecord::PF_FROMCOEFF);
291 iso(it_isotopologue, "36" , Qcoeff(4.632274e-01, 7.560062e-01, -8.390593e-06, 2.229242e-08 ), IsotopologueRecord::PF_FROMCOEFF);
292 iso(it_isotopologue, "28" , Qcoeff(2.874382e-01, 3.786605e-01, -5.551926e-07, 5.629838e-09 ), IsotopologueRecord::PF_FROMCOEFF);
293 iso(it_isotopologue, "27" , Qcoeff(1.697400e+00, 2.220079e+00, -4.074631e-06, 3.291954e-08 ), IsotopologueRecord::PF_FROMCOEFF);
294 iso(it_isotopologue, "38" , Qcoeff(6.558005e-01, 7.928532e-01, 4.443750e-06, 3.520833e-09 ), IsotopologueRecord::PF_FROMCOEFF);
295 iso(it_isotopologue, "37" , Qcoeff(3.990599e+00, 4.641927e+00, 2.855732e-05, 1.499385e-08 ), IsotopologueRecord::PF_FROMCOEFF);
296 
297  // CH4
298  // Coeff: 1 1 1 1
299  spec(it_species, it_isotopologue, "CH4");
300  // Name c0 c1 c2 c3
301  // | | | | |
302 iso(it_isotopologue, "211" , Qcoeff(-3.640461e+01, 1.202398e+00, 3.005684e-03, 2.911372e-07 ), IsotopologueRecord::PF_FROMCOEFF);
303 iso(it_isotopologue, "311" , Qcoeff(-7.385939e+01, 2.419567e+00, 5.941999e-03, 6.864449e-07 ), IsotopologueRecord::PF_FROMCOEFF);
304 iso(it_isotopologue, "212" , Qcoeff(-3.003903e+02, 9.769371e+00, 2.411804e-02, 2.704667e-06 ), IsotopologueRecord::PF_FROMCOEFF);
305 iso(it_isotopologue, "312" , Qcoeff(-6.843285e+02, 2.100812e+01, 3.970636e-02, 2.256428e-05 ), IsotopologueRecord::PF_FROMCOEFF);
306 
307 
308 
309  // O2
310  // Coeff: 1 1 1
311  spec(it_species, it_isotopologue, "O2");
312  // Name c0 c1 c2 c3
313  // | | | | |
314 iso(it_isotopologue, "66" , Qcoeff( 4.016432e-01, 7.315888e-01, -3.313678e-05, 6.642877e-08 ), IsotopologueRecord::PF_FROMCOEFF);
315 iso(it_isotopologue, "68" , Qcoeff(-3.922253e+00, 1.551651e+00, -8.580045e-05, 1.716056e-07 ), IsotopologueRecord::PF_FROMCOEFF);
316 iso(it_isotopologue, "67" , Qcoeff(-2.757545e+01, 9.118689e+00, -7.483006e-04, 1.332269e-06 ), IsotopologueRecord::PF_FROMCOEFF);
317  iso(it_isotopologue, "CIAfunCKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
318  iso(it_isotopologue, "v0v0CKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
319  iso(it_isotopologue, "v1v0CKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
320  iso(it_isotopologue, "visCKDMT250", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
321  iso(it_isotopologue, "SelfContStandardType", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
322  iso(it_isotopologue, "SelfContMPM93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
323  iso(it_isotopologue, "SelfContPWR93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
324  iso(it_isotopologue, "PWR98", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
325  iso(it_isotopologue, "PWR93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
326  iso(it_isotopologue, "PWR88", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
327  iso(it_isotopologue, "MPM93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
328  iso(it_isotopologue, "TRE05", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
329  iso(it_isotopologue, "MPM92", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
330  iso(it_isotopologue, "MPM89", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
331  iso(it_isotopologue, "MPM87", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
332  iso(it_isotopologue, "MPM85", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
333 
334  // NO
335  // Coeff: 1 1 1
336  spec(it_species, it_isotopologue, "NO");
337  // Name c0 c1 c2 c3
338  // | | | | |
339 iso(it_isotopologue, "46" , Qcoeff(-5.824308e+01, 3.025484e+00, 4.976571e-03, -5.060093e-06 ), IsotopologueRecord::PF_FROMCOEFF);
340 iso(it_isotopologue, "56" , Qcoeff(-4.036081e+01, 2.091668e+00, 3.435242e-03, -3.490987e-06 ), IsotopologueRecord::PF_FROMCOEFF);
341 iso(it_isotopologue, "48" , Qcoeff(-6.255837e+01, 3.205744e+00, 5.176248e-03, -5.223151e-06 ), IsotopologueRecord::PF_FROMCOEFF);
342 
343  // SO2
344  // Coeff: 1 1 2 2
345  spec(it_species, it_isotopologue, "SO2");
346  // Name c0 c1 c2 c3
347  // | | | | |
348 iso(it_isotopologue, "626" , Qcoeff(-3.406710e+02, 1.214516e+01, 1.995262e-02, 5.157669e-05 ), IsotopologueRecord::PF_FROMCOEFF);
349 iso(it_isotopologue, "646" , Qcoeff(-3.389056e+02, 1.215747e+01, 2.023113e-02, 5.153272e-05 ), IsotopologueRecord::PF_FROMCOEFF);
350 iso(it_isotopologue, "636" , Qcoeff( 5.8740E+02, 1.2472E+01, 2.9113E-01, -1.6236E-04 ), IsotopologueRecord::PF_FROMCOEFF);
351 iso(it_isotopologue, "628" , Qcoeff( 3.1299E+02, 6.6372E+00, 1.5485E-01, -8.6343E-05 ), IsotopologueRecord::PF_FROMCOEFF);
352 
353 
354 
355  // NO2
356  // Coeff: 1
357  spec(it_species, it_isotopologue, "NO2");
358  // Name c0 c1 c2 c3
359  // | | | | |
360 iso(it_isotopologue, "646" , Qcoeff(-8.761726e+02, 2.829842e+01, 5.398242e-02, 5.194329e-05 ), IsotopologueRecord::PF_FROMCOEFF);
361 
362 
363 
364  // NH3
365  // Coeff: 1 1 2
366  spec(it_species, it_isotopologue, "NH3");
367  // Name c0 c1 c2 c3
368  // | | | | |
369 iso(it_isotopologue, "4111" , Qcoeff(-9.698124e+01, 3.402711e+00, 8.958578e-03, 1.157044e-06 ), IsotopologueRecord::PF_FROMCOEFF);
370 iso(it_isotopologue, "5111" , Qcoeff(-6.520038e+01, 2.279068e+00, 5.958356e-03, 8.170489e-07 ), IsotopologueRecord::PF_FROMCOEFF);
371 iso(it_isotopologue, "4112" , Qcoeff( 9.278991e+00, 4.053839e+00, 3.148529e-02, -8.153125e-06 ), IsotopologueRecord::PF_FROMCOEFF);
372 
373 
374  // HNO3
375  // Coeff: 1 0
376  spec(it_species, it_isotopologue, "HNO3");
377  // Name c0 c1 c2 c3
378  // | | | | |
379 iso(it_isotopologue, "146" , Qcoeff(-3.402033e+04, 7.965238e+02, -2.403160e+00, 8.593868e-03 ), IsotopologueRecord::PF_FROMCOEFF);
380 iso(it_isotopologue, "156" , Qcoeff(-3.402033e+04, 7.965238e+02, -2.403160e+00, 8.593868e-03 ), IsotopologueRecord::PF_FROMCOEFF);
381 
382 
383  // OH
384  // Coeff: 1 1 1
385  spec(it_species, it_isotopologue, "OH");
386  // Name c0 c1 c2 c3
387  // | | | | |
388 iso(it_isotopologue, "61" , Qcoeff(6.198722e+00, 1.870893e-01, 3.099551e-04, -3.229806e-07 ), IsotopologueRecord::PF_FROMCOEFF);
389 iso(it_isotopologue, "81" , Qcoeff(6.173190e+00, 1.884492e-01, 3.126020e-04, -3.263942e-07 ), IsotopologueRecord::PF_FROMCOEFF);
390 iso(it_isotopologue, "62" , Qcoeff(4.103720e+00, 5.095633e-01, 8.899807e-04, -9.103002e-07 ), IsotopologueRecord::PF_FROMCOEFF);
391 
392 
393  // HF
394  // Coeff: 1 2
395  spec(it_species, it_isotopologue, "HF");
396  // Name c0 c1 c2 c3
397  // | | | | |
398 iso(it_isotopologue, "19" , Qcoeff(1.472238e+00, 1.343685e-01, 3.150221e-06, -2.120225e-09 ), IsotopologueRecord::PF_FROMCOEFF);
399 iso(it_isotopologue, "29" , Qcoeff(3.375585e-01, 6.403473e-02, 3.134983e-07, -3.970786e-11 ), IsotopologueRecord::PF_FROMCOEFF);
400 
401 
402  // HCl
403  // Coeff: 1 1 2 2
404  spec(it_species, it_isotopologue, "HCl");
405  // Name c0 c1 c2 c3
406  // | | | | |
407 iso(it_isotopologue, "15" , Qcoeff(2.729314e+00, 5.328097e-01, 8.234868e-07, 5.619026e-09 ), IsotopologueRecord::PF_FROMCOEFF);
408 iso(it_isotopologue, "17" , Qcoeff(2.719350e+00, 5.335676e-01, 2.054102e-06, 2.061213e-09 ), IsotopologueRecord::PF_FROMCOEFF);
409 iso(it_isotopologue, "25" , Qcoeff(1.355208e+00, 5.155418e-01, 3.328246e-06, 1.718278e-12 ), IsotopologueRecord::PF_FROMCOEFF);
410 iso(it_isotopologue, "27" , Qcoeff(1.359929e+00, 5.170804e-01, 3.358101e-06, -1.087936e-11 ), IsotopologueRecord::PF_FROMCOEFF);
411 
412 
413 
414  // HBr
415  // Coeff: 1 1 0 0
416  spec(it_species, it_isotopologue, "HBr");
417  // Name c0 c1 c2 c3
418  // | | | | |
419 iso(it_isotopologue, "19" , Qcoeff(2.936148e+00, 6.629899e-01, 1.604872e-05, -1.593934e-08 ), IsotopologueRecord::PF_FROMCOEFF);
420 iso(it_isotopologue, "11" , Qcoeff(2.875136e+00, 6.637710e-01, 1.449833e-05, -1.498201e-08 ), IsotopologueRecord::PF_FROMCOEFF);
421 iso(it_isotopologue, "29" , Qcoeff(2.936148e+00, 6.629899e-01, 1.604872e-05, -1.593934e-08 ), IsotopologueRecord::PF_FROMCOEFF);
422 iso(it_isotopologue, "21" , Qcoeff(2.875136e+00, 6.637710e-01, 1.449833e-05, -1.498201e-08 ), IsotopologueRecord::PF_FROMCOEFF);
423 
424 
425  // HI
426  // Coeff: 1 0
427  spec(it_species, it_isotopologue, "HI");
428  // Name c0 c1 c2 c3
429  // | | | | |
430 iso(it_isotopologue, "17" , Qcoeff(4.226561e+00, 1.295818e+00, 1.611346e-05, -7.882228e-09 ), IsotopologueRecord::PF_FROMCOEFF);
431 iso(it_isotopologue, "27" , Qcoeff(4.226561e+00, 1.295818e+00, 1.611346e-05, -7.882228e-09 ), IsotopologueRecord::PF_FROMCOEFF);
432 
433 
434  // ClO
435  // Coeff: 1 1
436  spec(it_species, it_isotopologue, "ClO");
437  // Name c0 c1 c2 c3
438  // | | | | |
439 iso(it_isotopologue, "56" , Qcoeff(1.290486e+02, 6.369550e+00, 1.441861e-02, -1.211120e-07 ), IsotopologueRecord::PF_FROMCOEFF);
440 iso(it_isotopologue, "76" , Qcoeff(1.306461e+02, 6.492672e+00, 1.457301e-02, 1.142879e-07 ), IsotopologueRecord::PF_FROMCOEFF);
441 
442 
443  // OCS
444  // Coeff: 1 1 1 1 1
445  spec(it_species, it_isotopologue, "OCS");
446  // Name c0 c1 c2 c3
447  // | | | | |
448 iso(it_isotopologue, "622" , Qcoeff(1.199103e+01, 3.484349e+00, -3.172632e-03, 1.757090e-05 ), IsotopologueRecord::PF_FROMCOEFF);
449 iso(it_isotopologue, "624" , Qcoeff(1.055761e+01, 3.598837e+00, -3.406838e-03, 1.836238e-05 ), IsotopologueRecord::PF_FROMCOEFF);
450 iso(it_isotopologue, "632" , Qcoeff(3.246621e+01, 6.852374e+00, -5.819381e-03, 3.599002e-05 ), IsotopologueRecord::PF_FROMCOEFF);
451 iso(it_isotopologue, "623" , Qcoeff(4.848356e+01, 1.411918e+01, -1.292079e-02, 7.151233e-05 ), IsotopologueRecord::PF_FROMCOEFF);
452 iso(it_isotopologue, "822" , Qcoeff(1.444298e+01, 3.686311e+00, -3.307686e-03, 1.920205e-05 ), IsotopologueRecord::PF_FROMCOEFF);
453 
454 
455  // H2CO
456  // Coeff: 1 1 1 2 2
457  spec(it_species, it_isotopologue, "H2CO");
458  // Name c0 c1 c2 c3
459  // | | | | |
460 iso(it_isotopologue, "1126" , Qcoeff(-1.734031e+02, 5.682345e+00, 1.504875e-02, 7.509330e-07 ), IsotopologueRecord::PF_FROMCOEFF);
461 iso(it_isotopologue, "1136" , Qcoeff(-3.529337e+02, 1.160844e+01, 3.109193e-02, 1.153082e-06 ), IsotopologueRecord::PF_FROMCOEFF);
462 iso(it_isotopologue, "1128" , Qcoeff(-1.781662e+02, 5.905635e+00, 1.604851e-02, 3.936717e-07 ), IsotopologueRecord::PF_FROMCOEFF);
463 iso(it_isotopologue, "1226" , Qcoeff(-5.332528e+01, 2.914098e+00, 1.444437e-02, -6.565213e-06 ), IsotopologueRecord::PF_FROMCOEFF);
464 iso(it_isotopologue, "2226" , Qcoeff(-2.847116e+02, 1.672849e+01, 8.661739e-02, -3.736935e-05 ), IsotopologueRecord::PF_FROMCOEFF);
465 
466 
467 
468  // HOCl
469  // Coeff: 1 1
470  spec(it_species, it_isotopologue, "HOCl");
471  // Name c0 c1 c2 c3
472  // | | | | |
473 iso(it_isotopologue, "165" , Qcoeff(-1.219223e+03, 3.989396e+01, 7.529869e-02, 8.046020e-05 ), IsotopologueRecord::PF_FROMCOEFF);
474 iso(it_isotopologue, "167" , Qcoeff(-1.215084e+03, 4.025848e+01, 7.807742e-02, 7.992701e-05 ), IsotopologueRecord::PF_FROMCOEFF);
475 
476 
477  // N2
478  // Coeff: 1 0
479  spec(it_species, it_isotopologue, "N2");
480  // Name c0 c1 c2 c3
481  // | | | | |
482 iso(it_isotopologue, "44" , Qcoeff(1.704255e+00, 1.562748e+00, 2.437406e-05, -1.677703e-08 ), IsotopologueRecord::PF_FROMCOEFF);
483 iso(it_isotopologue, "45" , Qcoeff(1.704255e+00, 1.562748e+00, 2.437406e-05, -1.677703e-08 ), IsotopologueRecord::PF_FROMCOEFF);
484  iso(it_isotopologue, "SelfContMPM93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
485  iso(it_isotopologue, "SelfContPWR93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
486  iso(it_isotopologue, "SelfContStandardType", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
487  iso(it_isotopologue, "SelfContBorysow", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
488  iso(it_isotopologue, "CIArotCKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
489  iso(it_isotopologue, "CIAfunCKDMT100", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
490  iso(it_isotopologue, "CIArotCKDMT250", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
491  iso(it_isotopologue, "CIAfunCKDMT250", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
492  iso(it_isotopologue, "DryContATM01", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
493 
494 
495  // HCN
496  // Coeff: 1 1 1 2
497  spec(it_species, it_isotopologue, "HCN");
498  // Name c0 c1 c2 c3
499  // | | | | |
500 iso(it_isotopologue, "124" , Qcoeff(-5.935227e+00, 3.077616e+00, -2.476330e-03, 7.991253e-06 ), IsotopologueRecord::PF_FROMCOEFF);
501 iso(it_isotopologue, "134" , Qcoeff(-1.010578e+01, 6.290094e+00, -4.988065e-03, 1.641309e-05 ), IsotopologueRecord::PF_FROMCOEFF);
502 iso(it_isotopologue, "125" , Qcoeff(-3.253498e+00, 2.118761e+00, -1.680616e-03, 5.582555e-06 ), IsotopologueRecord::PF_FROMCOEFF);
503 iso(it_isotopologue, "224" , Qcoeff( 6.626957e+01, 8.670873e-01, 3.148000e-03, -2.052228e-06 ), IsotopologueRecord::PF_FROMCOEFF);
504 
505 
506 
507  // CH3Cl
508  // Coeff: 1 1
509  spec(it_species, it_isotopologue, "CH3Cl");
510  // Name c0 c1 c2 c3
511  // | | | | |
512 iso(it_isotopologue, "215" , Qcoeff(-1.140936e+04, 3.073757e+02, 4.383730e-02, 1.249421e-03 ), IsotopologueRecord::PF_FROMCOEFF);
513 iso(it_isotopologue, "217" , Qcoeff(-1.159736e+04, 3.123035e+02, 4.438509e-02, 1.269305e-03 ), IsotopologueRecord::PF_FROMCOEFF);
514 
515 
516 
517  // H2O2
518  // Coeff: 1
519  spec(it_species, it_isotopologue, "H2O2");
520  // Name c0 c1 c2 c3
521  // | | | | |
522 iso(it_isotopologue, "1661" , Qcoeff(-3.865211e+02, 1.286868e+01, 3.910416e-02, 1.145394e-04 ), IsotopologueRecord::PF_FROMCOEFF);
523 
524 
525 
526 
527  // C2H2
528  // Coeff: 1 1 1
529  spec(it_species, it_isotopologue, "C2H2");
530  // Name c0 c1 c2 c3
531  // | | | | |
532 iso(it_isotopologue, "1221" , Qcoeff(-8.684002e+00, 1.453883e+00, -2.597724e-03, 8.482153e-06 ), IsotopologueRecord::PF_FROMCOEFF);
533 iso(it_isotopologue, "1231" , Qcoeff(-3.468599e+01, 5.815575e+00, -1.039390e-02, 3.393990e-05 ), IsotopologueRecord::PF_FROMCOEFF);
534 iso(it_isotopologue, "1222" , Qcoeff(-2.311093e+01, 4.993367e+00, -9.428896e-03, 3.674804e-05 ), IsotopologueRecord::PF_FROMCOEFF);
535 
536 
537 
538 
539  // C2H6
540  // Coeff: 1 1
541  spec(it_species, it_isotopologue, "C2H6");
542  // Name c0 c1 c2 c3
543  // | | | | |
544 iso(it_isotopologue, "1221" , Qcoeff(-9.118157e+03, 2.088364e+02, -4.404385e-01, 2.188428e-03 ), IsotopologueRecord::PF_FROMCOEFF);
545 iso(it_isotopologue, "1231" , Qcoeff(-4.632309e+03, 1.062931e+02, -2.234063e-01, 1.115322e-03 ), IsotopologueRecord::PF_FROMCOEFF);
546 
547 
548 
549  // PH3
550  // Coeff: 1
551  spec(it_species, it_isotopologue, "PH3");
552  // Name c0 c1 c2 c3
553  // | | | | |
554 iso(it_isotopologue, "1111" , Qcoeff(-2.426409e+02, 7.338384e+00, 1.131674e-02, 1.261873e-05 ), IsotopologueRecord::PF_FROMCOEFF);
555 
556 
557 
558  // COF2
559  // Coeff: 1 0
560  spec(it_species, it_isotopologue, "COF2");
561  // Name c0 c1 c2 c3
562  // | | | | |
563 iso(it_isotopologue, "269" , Qcoeff(-8.322642e+03, 2.144407e+02, -3.498616e-01, 1.755888e-03 ), IsotopologueRecord::PF_FROMCOEFF);
564 iso(it_isotopologue, "369" , Qcoeff(-8.322642e+03, 2.144407e+02, -3.498616e-01, 1.755888e-03 ), IsotopologueRecord::PF_FROMCOEFF);
565 
566 
567 
568  // SF6
569  // Coeff: 1
570  spec(it_species, it_isotopologue, "SF6");
571  // Name c0 c1 c2 c3
572  // | | | | |
573 iso(it_isotopologue, "29" , Qcoeff(-1.668432e+06, 2.850128e+04, -1.561230e+02, 3.288986e-01 ), IsotopologueRecord::PF_FROMCOEFF);
574 
575 
576 
577  // H2S
578  // Coeff: 1 1 1 2
579  spec(it_species, it_isotopologue, "H2S");
580  // Name c0 c1 c2 c3
581  // | | | | |
582 
583 iso(it_isotopologue, "121" , Qcoeff(-2.308888e+01, 9.052647e-01, 3.237531e-03, -9.823621e-07 ), IsotopologueRecord::PF_FROMCOEFF);
584 iso(it_isotopologue, "141" , Qcoeff(-2.333981e+01, 9.102537e-01, 3.233485e-03, -9.665574e-07 ), IsotopologueRecord::PF_FROMCOEFF);
585 iso(it_isotopologue, "131" , Qcoeff(-9.329309e+01, 3.636877e+00, 1.291822e-02, -3.864368e-06 ), IsotopologueRecord::PF_FROMCOEFF);
586 iso(it_isotopologue, "122" , Qcoeff(-1.512671e+01, 6.851018e-01, 3.158080e-03, -1.563931e-06 ), IsotopologueRecord::PF_FROMCOEFF);
587 
588 
589  // HCOOH
590  // Coeff: 1 2 2 2
591  spec(it_species, it_isotopologue, "HCOOH");
592  // Name c0 c1 c2 c3
593  // | | | | |
594 iso(it_isotopologue, "1261" , Qcoeff(-4.370811e+03, 1.141311e+02, -1.217474e-01, 7.859656e-04 ), IsotopologueRecord::PF_FROMCOEFF);
595 iso(it_isotopologue, "1361" , Qcoeff(-4.910213e+03, 5.115094e+01, 3.433096e-02, -1.340898e-04 ), IsotopologueRecord::PF_FROMCOEFF);
596 iso(it_isotopologue, "2261" , Qcoeff( 3.823001e+02, 5.455419e+00, 1.108040e-01, -5.086754e-06 ), IsotopologueRecord::PF_FROMCOEFF);
597 iso(it_isotopologue, "1262" , Qcoeff( 8.193393e+02, 2.222546e+00, 1.070970e-01, 3.255965e-06 ), IsotopologueRecord::PF_FROMCOEFF);
598 
599 
600 
601 
602  // HO2
603  // Coeff: 1
604  spec(it_species, it_isotopologue, "HO2");
605  // Name c0 c1 c2 c3
606  // | | | | |
607 iso(it_isotopologue, "166" , Qcoeff(-2.341264e+02, 8.164256e+00, 2.506193e-02, -3.012599e-06 ), IsotopologueRecord::PF_FROMCOEFF);
608 
609 
610 
611  // O
612  // Coeff: 2
613  spec(it_species, it_isotopologue, "O");
614  // Name c0 c1 c2 c3
615  // | | | | |
616 iso(it_isotopologue, "6" , Qcoeff(4.956057e+00, 8.070975e-05, 4.987684e-05, -1.028970e-07 ), IsotopologueRecord::PF_FROMCOEFF);
617 
618 
619 
620  // ClONO2
621  // Coeff: 1 1
622  spec(it_species, it_isotopologue, "ClONO2");
623  // Name c0 c1 c2 c3
624  // | | | | |
625 iso(it_isotopologue, "5646" , Qcoeff(-2.052890e+06, 3.638094e+04, -1.995279e+02, 5.224687e-01 ), IsotopologueRecord::PF_FROMCOEFF);
626 iso(it_isotopologue, "7646" , Qcoeff(-2.104484e+06, 3.729925e+04, -2.045781e+02, 5.357327e-01 ), IsotopologueRecord::PF_FROMCOEFF);
627 
628 
629 
630  // NO+
631  // Coeff: 1
632  spec(it_species, it_isotopologue, "NO+");
633  // Name c0 c1 c2 c3
634  // | | | | |
635 iso(it_isotopologue, "46" , Qcoeff(1.125969e+00, 1.047028e+00, 1.174546e-05, -1.519278e-08 ), IsotopologueRecord::PF_FROMCOEFF);
636 
637 
638 
639  // OClO
640  // Coeff: 2 2
641  spec(it_species, it_isotopologue, "OClO");
642  // Name c0 c1 c2 c3
643  // | | | | |
644 iso(it_isotopologue, "656" , Qcoeff(-1.617389e+03, 6.991068e+01, 5.003075e-01, -1.442758e-04 ), IsotopologueRecord::PF_FROMCOEFF);
645 iso(it_isotopologue, "676" , Qcoeff( 7.964396e+02, 4.768587e+01, 5.283347e-01, -8.232128e-05 ), IsotopologueRecord::PF_FROMCOEFF);
646 
647 
648 
649  // BrO
650  // Coeff: 3 3
651  spec(it_species, it_isotopologue, "BrO");
652  // Name c0 c1 c2 c3
653  // | | | | |
654 iso(it_isotopologue, "96" , Qcoeff(-4.084622e+01, 1.427999e+01, -1.011647e-02, 2.783630e-05 ), IsotopologueRecord::PF_FROMCOEFF);
655 iso(it_isotopologue, "16" , Qcoeff(-4.118468e+01, 1.434034e+01, -1.016302e-02, 2.795965e-05 ), IsotopologueRecord::PF_FROMCOEFF);
656 
657 
658 
659  // H2SO4
660  // Coeff: 2
661  spec(it_species, it_isotopologue, "H2SO4");
662  // Name c0 c1 c2 c3
663  // | | | | |
664 iso(it_isotopologue, "126" , Qcoeff(-5.913199e+03, 2.485770e+02, 1.140269e+00, -5.679165e-04 ), IsotopologueRecord::PF_FROMCOEFF);
665 
666 
667 
668  // Cl2O2
669  // Coeff: 2 2
670  spec(it_species, it_isotopologue, "Cl2O2");
671  // Name c0 c1 c2 c3
672  // | | | | |
673 iso(it_isotopologue, "565" , Qcoeff(6.215326e+05, -7.121447e+03, 2.784834e+01, 2.147458e-02 ), IsotopologueRecord::PF_FROMCOEFF);
674 iso(it_isotopologue, "765" , Qcoeff(6.399192e+05, -7.332314e+03, 2.866224e+01, 2.210953e-02 ), IsotopologueRecord::PF_FROMCOEFF);
675 
676 
677  // HOBr
678  // Coeff: 1 1
679  spec(it_species, it_isotopologue, "HOBr");
680  // Name c0 c1 c2 c3
681  // | | | | |
682 iso(it_isotopologue, "169" , Qcoeff(-1.665575e+03, 5.687767e+01, 9.982304e-02, 1.705212e-04 ), IsotopologueRecord::PF_FROMCOEFF);
683 iso(it_isotopologue, "161" , Qcoeff(-1.631140e+03, 5.625451e+01, 1.012339e-01, 1.676169e-04 ), IsotopologueRecord::PF_FROMCOEFF);
684 
685 
686 
687  // C2H4
688  // Coeff: 1 1
689  spec(it_species, it_isotopologue, "C2H4");
690  // Name c0 c1 c2 c3
691  // | | | | |
692 iso(it_isotopologue, "221" , Qcoeff(-1.379496e+03, 3.408740e+01, -2.321387e-02, 1.682474e-04 ), IsotopologueRecord::PF_FROMCOEFF);
693 iso(it_isotopologue, "231" , Qcoeff(-5.653328e+03, 1.396050e+02, -9.531910e-02, 6.891171e-04 ), IsotopologueRecord::PF_FROMCOEFF);
694 
695 
696 
697  // CH3OH
698  // Coeff: 2
699  spec(it_species, it_isotopologue, "CH3OH");
700  // Name c0 c1 c2 c3
701  // | | | | |
702 iso(it_isotopologue, "2161" , Qcoeff(-6.340560e+01, 5.621709e+00, 6.341163e-02, 8.161605e-05 ), IsotopologueRecord::PF_FROMCOEFF);
703 //iso(it_isotopologue, "2261" , Qcoeff( ), IsotopologueRecord::PF_FROMCOEFF);
704 
705 
706 
707  // CH3Br
708  // Coeff: 1 1
709  spec(it_species, it_isotopologue, "CH3Br");
710  // Name c0 c1 c2 c3
711  // | | | | |
712 iso(it_isotopologue, "219" , Qcoeff(-8.148814e+03, 2.215010e+02, -5.238478e-02, 1.165145e-03 ), IsotopologueRecord::PF_FROMCOEFF);
713 iso(it_isotopologue, "211" , Qcoeff(-8.174189e+03, 2.222574e+02, -5.242739e-02, 1.170863e-03 ), IsotopologueRecord::PF_FROMCOEFF);
714 
715 
716 
717  // CH3CN
718  // Coeff: 1 2 2 2 2
719  // Note: In 2008 edition of HITRAN, CH3CN appear with isotopologue 2124 (here:
720  // 211124). TIPS also provides partition functions for 2134, 3123, and 3134.
721  // However, partition functions of HITRAN/TIPS and JPL deviate significantly,
722  // particularly TIPS-fits lead to negative numbers at low temperatures. Proper
723  // scaling of line intensities from HITRAN requires HITRAN partition
724  // functions, though. Hence HITRAN/TIPS data is used for the isotopologue(s)
725  // with existing HITRAN line data (=2124), but others are still taken from
726  // JPL.
727  spec(it_species, it_isotopologue, "CH3CN");
728  // Name c0 c1 c2 c3
729  // | | | | |
730 //iso(it_isotopologue, "211124" , Qcoeff( 1.706820e+03, 1.093287e+00, 4.255850e-01, 3.367172e-05 ), IsotopologueRecord::PF_FROMCOEFF);// !JPL!
731 iso(it_isotopologue, "211124" , Qcoeff(-9.623882e+03, 2.374695e+02, -6.173187e-01, 3.164639e-03 ), IsotopologueRecord::PF_FROMCOEFF);
732 iso(it_isotopologue, "311124" , Qcoeff(-1.172596e+03, 4.973615e+01, 2.285735e-01, -1.135942e-04 ), IsotopologueRecord::PF_FROMCOEFF);
733 //iso(it_isotopologue, "311124" , Qcoeff(-2.049829e+04, 5.010426e+02, -1.338276e+00, 6.673269e-03 ), IsotopologueRecord::PF_FROMCOEFF);// !HITRAN!
734 iso(it_isotopologue, "211134" , Qcoeff(-1.139329e+03, 4.832504e+01, 2.220882e-01, -1.103713e-04 ), IsotopologueRecord::PF_FROMCOEFF);
735 //iso(it_isotopologue, "211134" , Qcoeff(-1.968877e+04, 4.826701e+02, -1.286793e+00, 6.573412e-03 ), IsotopologueRecord::PF_FROMCOEFF);// !HITRAN!
736 iso(it_isotopologue, "211125" , Qcoeff(-3.861117e+02, 1.654635e+01, 7.638250e-02, -3.776153e-05 ), IsotopologueRecord::PF_FROMCOEFF);
737 iso(it_isotopologue, "211224" , Qcoeff(-3.483734e+02, 1.464417e+01, 6.717486e-02, -3.345710e-05 ), IsotopologueRecord::PF_FROMCOEFF);
738 //iso(it_isotopologue, "311134" , Qcoeff(-4.172614e+04, 1.014830e+03, -2.761288e+00, 1.377871e-02 ), IsotopologueRecord::PF_FROMCOEFF);// !HITRAN!
739 
740 
741 
742  // CF4
743  // Coeff: 1
744  spec(it_species, it_isotopologue, "CF4");
745  // Name c0 c1 c2 c3
746  // | | | | |
747 iso(it_isotopologue, "29" , Qcoeff(-8.012791e+03, 2.723081e+02, -7.099708e-01, 4.276032e-03 ), IsotopologueRecord::PF_FROMCOEFF);
748 
749 
750 
751  // HC3N
752  // Coeff: 1 1 1 1 1 1
753  spec(it_species, it_isotopologue, "HC3N");
754  // Name c0 c1 c2 c3
755  // | | | | |
756 iso(it_isotopologue, "12224" , Qcoeff(-6.064268e+03, 1.310762e+02, -6.450667e-01, 1.872277e-03 ), IsotopologueRecord::PF_FROMCOEFF);
757 iso(it_isotopologue, "12234" , Qcoeff(-1.227602e+04, 2.649297e+02, -1.305621e+00, 3.782952e-03 ), IsotopologueRecord::PF_FROMCOEFF);
758 iso(it_isotopologue, "12324" , Qcoeff(-1.206417e+04, 2.614248e+02, -1.285701e+00, 3.740976e-03 ), IsotopologueRecord::PF_FROMCOEFF);
759 iso(it_isotopologue, "13224" , Qcoeff(-1.289278e+04, 2.770457e+02, -1.369981e+00, 3.949587e-03 ), IsotopologueRecord::PF_FROMCOEFF);
760 iso(it_isotopologue, "12225" , Qcoeff(-4.185427e+03, 9.035734e+01, -4.449410e-01, 1.289787e-03 ), IsotopologueRecord::PF_FROMCOEFF);
761 iso(it_isotopologue, "22224" , Qcoeff(-1.403953e+04, 2.856169e+02, -1.492360e+00, 4.092496e-03 ), IsotopologueRecord::PF_FROMCOEFF);
762 
763 
764 
765  // CS
766  // Coeff: 1 1 1 1
767  spec(it_species, it_isotopologue, "CS");
768  // Name c0 c1 c2 c3
769  // | | | | |
770 iso(it_isotopologue, "22" , Qcoeff(-1.173849e+00, 8.763750e-01, -1.348835e-04, 2.778616e-07 ), IsotopologueRecord::PF_FROMCOEFF);
771 iso(it_isotopologue, "24" , Qcoeff(-1.268076e+00, 8.916788e-01, -1.426045e-04, 2.926318e-07 ), IsotopologueRecord::PF_FROMCOEFF);
772 iso(it_isotopologue, "32" , Qcoeff(-2.829388e+00, 1.861746e+00, -3.157562e-04, 6.522683e-07 ), IsotopologueRecord::PF_FROMCOEFF);
773 iso(it_isotopologue, "23" , Qcoeff(-4.804427e+00, 3.534610e+00, -5.409610e-04, 1.115080e-06 ), IsotopologueRecord::PF_FROMCOEFF);
774 
775 
776 
777  // HNC
778  // Coeff: 2 2 2 2
779  spec(it_species, it_isotopologue, "HNC");
780  // Name c0 c1 c2 c3
781  // | | | | |
782 iso(it_isotopologue, "142" , Qcoeff(3.333499e-01, 4.595243e-01, 1.502307e-06, 2.413631e-13 ), IsotopologueRecord::PF_FROMCOEFF);
783 iso(it_isotopologue, "143" , Qcoeff(7.032558e-02, 4.813463e-01, -6.651923e-06, -1.954964e-11 ), IsotopologueRecord::PF_FROMCOEFF);
784 iso(it_isotopologue, "152" , Qcoeff(1.589700e-01, 4.708129e-01, -3.866420e-06, 4.006830e-11 ), IsotopologueRecord::PF_FROMCOEFF);
785 iso(it_isotopologue, "242" , Qcoeff(2.865158e-01, 5.465990e-01, 2.142689e-07, 1.733211e-11 ), IsotopologueRecord::PF_FROMCOEFF);
786 
787 
788 
789  // SO
790  // Coeff: 1 1 1
791  spec(it_species, it_isotopologue, "SO");
792  // Name c0 c1 c2 c3
793  // | | | | |
794 iso(it_isotopologue, "26" , Qcoeff(-2.590097e+01, 3.010850e+00, -6.619843e-04, 1.377253e-06 ), IsotopologueRecord::PF_FROMCOEFF);
795 iso(it_isotopologue, "46" , Qcoeff(-2.691191e+01, 3.076825e+00, -7.096949e-04, 1.474163e-06 ), IsotopologueRecord::PF_FROMCOEFF);
796 iso(it_isotopologue, "28" , Qcoeff(-2.913675e+01, 3.263819e+00, -8.018822e-04, 1.695761e-06 ), IsotopologueRecord::PF_FROMCOEFF);
797 
798 
799 
800  // C3H8
801  // Coeff: 2*
802  // Note: The standard fit (150-300K) is completely wrong at T<150K, hence fit
803  // has been done over 9-300K. Still, the fit is rather poor (deviation in
804  // QT/QT[300K] ~10%).
805  // Reason might be that the T^1.5 relation of the partition function does not
806  // seem to hold (from looking at QT(T) at the given JPL temperatures), but
807  // also that due to several orders of magnitude differences over the QT(T),
808  // the fit is strongly forced to the high QT at high temperatures. Some kind
809  // of weighted fit (putting more weight on low T values, e.g., cost function
810  // depending on relative deviation instead of absolute) might be better.
811  // According to our interpretation of the JPL C3H8 fact sheet, the JPL
812  // partition functions in this case already include vibrational partition
813  // function, i.e. do not need to get corrected here (nevertheless we leave the
814  // data with correction here in case we find, we're wrong. For those
815  // corrections, vibrational energy levels were taken from
816  // http://webbook.nist.gov/chemistry/vib-ser.html. With this corrections, the
817  // polynomial fit is even worse, yealding deviations of QT/QT[300K] >50% at
818  // T<100K ~50%).
819  spec(it_species, it_isotopologue, "C3H8");
820  // Name c0 c1 c2 c3
821  // | | | | |
822 iso(it_isotopologue, "21" , Qcoeff(-1.826371e+04, 1.397636e+03, -3.770229e+00, 5.692114e-02), IsotopologueRecord::PF_FROMCOEFF); // w/out extra vib
823 //iso(it_isotopologue, "21" , Qcoeff(-1.509682e+05, 8.184783e+03, -8.819316e+01, 3.778885e-01), IsotopologueRecord::PF_FROMCOEFF); // with vib
824 
825 
826 
827 
828  // H2
829  // Coeff: 1 1
830  spec(it_species, it_isotopologue, "H2");
831  // Name c0 c1 c2 c3
832  // | | | | |
833 iso(it_isotopologue, "11" , Qcoeff(-5.989204e-01, 3.716024e-02, -4.849594e-05, 5.867598e-08 ), IsotopologueRecord::PF_FROMCOEFF);
834 iso(it_isotopologue, "12" , Qcoeff( 2.575211e+00, 8.914624e-02, 1.491752e-05, -1.505173e-08 ), IsotopologueRecord::PF_FROMCOEFF);
835 
836 
837  // H
838  // Coeff: 0
839  // Note: Partition function is unknown. Anyway, H is only needed as
840  // broadening species, i.e., partition functions are not needed for
841  // calculation, just as equivalent entry to species_data. Nevertheless, we
842  // want to avoid negative values (this would throw a runtime error), instead
843  // we set the partition function to a constant, positive value.
844  spec(it_species, it_isotopologue, "H");
845  // Name c0 c1 c2 c3
846  // | | | | |
847 iso(it_isotopologue, "1" , Qcoeff( 1.0000E+00 ,0.0000E+00 ,0.0000E+00 ,0.0000E+00 ), IsotopologueRecord::PF_FROMCOEFF);
848 
849 
850  // He
851  // Coeff: 0
852  // Note: Partition function is unknown. Anyway, He is only needed as
853  // broadening species, i.e., partition functions are not needed for
854  // calculation, just as equivalent entry to species_data. Nevertheless, we
855  // want to avoid negative values (this would throw a runtime error), instead
856  // we set the partition function to a constant, positive value.
857  spec(it_species, it_isotopologue, "He");
858  // Name c0 c1 c2 c3
859  // | | | | |
860 iso(it_isotopologue, "4" , Qcoeff( 1.0000E+00 ,0.0000E+00 ,0.0000E+00 ,0.0000E+00 ), IsotopologueRecord::PF_FROMCOEFF);
861 
862 
863  // Ar
864  // Coeff: 0
865  // Note: Partition function is unknown. Anyway, Ar is only needed as
866  // broadening species, i.e., partition functions are not needed for
867  // calculation, just as equivalent entry to species_data. Nevertheless, we
868  // want to avoid negative values (this would throw a runtime error), instead
869  // we set the partition function to a constant, positive value.
870  spec(it_species, it_isotopologue, "Ar");
871  // Name c0 c1 c2 c3
872  // | | | | |
873 iso(it_isotopologue, "8" , Qcoeff( 1.0000E+00 ,0.0000E+00 ,0.0000E+00 ,0.0000E+00 ), IsotopologueRecord::PF_FROMCOEFF);
874 
875  // C4H2
876  // Coeff: 0
877  // Guessed to be linear. Q=T.
878  spec(it_species, it_isotopologue, "C4H2");
879  // Name c0 c1 c2 c3
880  // | | | | |
881 iso(it_isotopologue, "2211" , Qcoeff( 0.0000E+00 ,1.0000E+00 ,0.0000E+00 ,0.0000E+00 ), IsotopologueRecord::PF_FROMCOEFF);
882 
883  // SO3
884  // Coeff: 0
885  // Guessed to be non-linear. Q= T^1.5.
886  spec(it_species, it_isotopologue, "SO3");
887  // Name c0 c1 c2 c3
888  // | | | | |
889 iso(it_isotopologue, "26" , Qcoeff( -76.2339, 6.95356, 1.30510e-07, -1.17068e-11 ), IsotopologueRecord::PF_FROMCOEFF);
890 
891 
892  // liquid cloud particles
893  // Coeff: 1 1
894  spec(it_species, it_isotopologue, "liquidcloud");
895  // Name c0 c1 c2 c3
896  // | | | | |
897  iso(it_isotopologue, "MPM93", Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
898 
899  // ice cloud particles
900  // Coeff: 1 1
901  spec(it_species, it_isotopologue, "icecloud");
902  // Name c0 c1 c2 c3
903  // | | | | |
904  iso(it_isotopologue, "MPM93",Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
905 
906  // rain particles
907  // Coeff: 1 1
908  spec(it_species, it_isotopologue, "rain");
909  // Name c0 c1 c2 c3
910  // | | | | |
911  iso(it_isotopologue, "MPM93",Qcoeff( 0 ,0 ,0 ,0 ), IsotopologueRecord::PF_FROMCOEFF);
912 
913  // free_electrons: skip iso setting
914  spec(it_species, it_isotopologue, "free_electrons");
915 
916  // particles (to be derived from scat_data_array and pnd_field): skip iso setting
917  spec(it_species, it_isotopologue, "particles");
918 
919 
920  // Ensure that we took care of all species
921  assert(it_species == species_data.end());
922 }
923 
924 
927  String name _U_)
928 {
929  assert( name == is->Name());
930 
931  ii = is->Isotopologue().begin();
932 
933  is++;
934 }
935 
936 
938  String name _U_,
939  const ArrayOfNumeric& coeff,
940  const Index& coefftype)
941 {
942  assert( name == ii->Name());
943 
944  ii->SetPartitionFctCoeff(coeff,coefftype);
945 
946  ii++;
947 }
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:35
void iso(Array< IsotopologueRecord >::iterator &ii, String name, const ArrayOfNumeric &coeff, const Index &coefftype)
void spec(Array< SpeciesRecord >::iterator &is, Array< IsotopologueRecord >::iterator &ii, String name)
Define partition function coefficients lookup data.
const Array< SpeciesRecord > species_data
Species Data.
The implementation for String, the ARTS string class.
Definition: mystring.h:63
The global header file for ARTS.
Implements the class MakeArray, which is a derived class of Array, allowing explicit initialization...
Declarations required for the calculation of absorption coefficients.
void define_partition_species_data()
This can be used to make arrays out of anything.
Definition: array.h:40
#define Qcoeff
#define _U_
Definition: config.h:167