17 inline double SQUARE(
double x) {
return x * x; }
21 double rho_NH3_H2O,
double rho_H2O,
22 double rho_NH4SH,
double rho_NH3,
23 double cfliq,
double cfwice,
33 double nu0 = 160.0 * exp(7.21 * (1.0 - 287. / T));
34 double acldl = 1.24e-1 * freq * freq * nu0 / (freq * freq + nu0 * nu0);
37 double tt = 300.0 / T - 1.0;
38 double tt1 = 1.0 + tt;
39 double tt2 = 0.0073 + tt;
40 double aa = (0.00504 + 0.0062 * tt) * exp(-22.1 * tt);
42 1.0e-4 * (0.502 - 0.131 * tt) / tt1 + 0.542e-6 * tt1 * tt1 / (tt2 * tt2);
43 double ei = aa / freq + bb * freq;
44 double er = 3.1884 + 9.1e-4 * (T - 273.0) + 2.0;
46 double acldw = 1.885e0 * freq * ei / (er * er + ei * ei);
50 double aclda = 1.13e-4 *
SQUARE(freq) / (42.25 +
SQUARE(6
e-5 * freq));
55 return cfliq * acldl * rho_NH3_H2O + cfwice * acldw * rho_H2O +
56 cfaice * aclda * (rho_NH4SH + rho_NH3);
double absorption_coefficient_cloud(double freq, double P, double T, double rho_NH3_H2O, double rho_H2O, double rho_NH4SH, double rho_NH3, double cfliq, double cfwice, double cfaice)