8 inline double SQUARE(
double x) {
return x * x; }
13 static double const c_cgs = 2.99792458e+10;
17 double XCH4,
double mix) {
19 double const amagat_he = XHe * factor;
20 double const amagat_h2 = XH2 * factor;
21 double const amagat_ch4 = XCH4 * factor;
23 double nu_invcm = freq * 1e9 /
c_cgs;
29 double nu_scale = 1.0;
36 double h2h2, h2he, h2ch4;
38 h2h2 = amagat_h2 * amagat_h2 *
40 h2he = amagat_h2 * amagat_he *
42 h2ch4 = amagat_h2 * amagat_ch4 *
44 }
else if (mix == 1.0) {
45 h2h2 = amagat_h2 * amagat_h2 *
47 h2he = amagat_h2 * amagat_he *
49 h2ch4 = amagat_h2 * amagat_ch4 *
52 h2h2 = amagat_h2 * amagat_h2 *
55 h2he = amagat_h2 * amagat_he *
59 amagat_h2 * amagat_ch4 *
64 if (nu_scale != 1.0) {
70 return h2h2 + h2he + h2ch4;
static double const Lo_mks
double Pa_from_bar(double P)
static double const kBoltz_mks
static double const c_cgs
double attenuation_CIA(double freq, double P, double T, double XH2, double XHe, double XCH4, double mix)
static double CIA_H2_He_e(int It0, int Inu0, double nu, double logT0)
static double CIA_H2_CH4_n(int It0, int Inu0, double nu, double logT0)
static double CIA_H2_CH4_e(int It0, int Inu0, double nu, double logT0)
static double CIA_H2_H2_e(int It0, int Inu0, double nu, double logT0)
static double CIA_H2_He_n(int It0, int Inu0, double nu, double logT0)
static int find_index_temp(double logT0)
static double CIA_H2_H2_n(int It0, int Inu0, double nu, double logT0)
static int find_index_wavenumber(double nu)