8 #include <configure.hpp>
35 std::ifstream file(fname);
39 std::getline(file, line);
40 auto sline = Vectorize<std::string>(line.c_str());
41 int nwave = std::stoi(sline[3]), ntemp =
n_fd_sets;
44 fd_.resize(ntemp * nwave);
46 for (
int i = 0; i < ntemp; ++i) {
48 for (
int j = 0;
j < nwave; ++
j) {
54 std::getline(file, line);
55 std::getline(file, line);
56 sline = Vectorize<std::string>(line.c_str());
67 for (
int i = 0; i < ntemp; ++i) {
69 for (
int j = 0;
j < nwave; ++
j) {
75 std::getline(file, line);
76 std::getline(file, line);
77 sline = Vectorize<std::string>(line.c_str());
88 for (
int i = 0; i < ntemp; ++i) {
90 for (
int j = 0;
j < nwave; ++
j) {
96 std::getline(file, line);
97 std::getline(file, line);
98 sline = Vectorize<std::string>(line.c_str());
104 nwave = std::stoi(sline[3]), ntemp =
n_ab_sets;
107 ab_.resize(ntemp * nwave);
109 for (
int i = 0; i < ntemp; ++i) {
111 for (
int j = 0;
j < nwave; ++
j) {
118 std::getline(file, line);
119 std::getline(file, line);
120 sline = Vectorize<std::string>(line.c_str());
129 other_.resize(ntemp * nwave);
131 for (
int i = 0; i < ntemp; ++i) {
133 for (
int j = 0;
j < nwave; ++
j) {
140 std::getline(file, line);
141 std::getline(file, line);
142 sline = Vectorize<std::string>(line.c_str());
149 Real kk,
temp = qfrac.
w[IDN];
151 Real coor[2] = {
temp, wave};
155 if (wave >= 1150. && wave <= 1950.) {
157 }
else if (wave >= 7450. && wave <= 8487.)
160 else if (wave >= 9001. && wave <= 9997.)
163 else if (wave >= 12600. && wave <= 13839.)
165 else if (wave >= 14996. && wave <= 29790.)
173 return 1.E-10 * num_o2 * num_o2 * kk;
size_t a1dg_x3sg10_len_[2]
std::vector< Real > a1dg_x3sg00_
std::vector< Real > other_axis_
Real getAttenuation1(Real wave, AirParcel const &var) const
std::vector< Real > a1dg_x3sg10_
void LoadCoefficient(std::string fname, size_t bid) override
Load absorption coefficient from file.
std::vector< Real > ab_axis_
std::vector< Real > a1dg_x3sg00_axis_
size_t a1dg_x3sg00_len_[2]
std::vector< Real > fd_axis_
std::vector< Real > other_
std::vector< Real > a1dg_x3sg10_axis_
int GetSpeciesIndex(int n) const
double max(double x1, double x2, double x3)
void interpnf(double *val, double const *coor, double const *data, double const *axis, size_t const *len, int ndim)
static int const n_ab_sets
static int const n_a1dg_x3sg00_sets
static int const n_a1dg_x3sg10_sets
static int const n_other_sets
static int const n_fd_sets