9 #include <configure.hpp>
34 std::ifstream file(fname);
38 std::getline(file, line);
39 auto sline = Vectorize<std::string>(line.c_str());
40 int nwave = std::stoi(sline[3]), ntemp =
n_rt_sets;
43 rt_.resize(ntemp * nwave);
45 for (
int i = 0; i < ntemp; ++i) {
47 for (
int j = 0;
j < nwave; ++
j) {
53 std::getline(file, line);
54 std::getline(file, line);
55 sline = Vectorize<std::string>(line.c_str());
61 nwave = std::stoi(sline[3]), ntemp =
n_fd1_sets;
64 fd1_.resize(ntemp * nwave);
66 for (
int i = 0; i < ntemp; ++i) {
68 for (
int j = 0;
j < nwave; ++
j) {
74 std::getline(file, line);
75 std::getline(file, line);
76 sline = Vectorize<std::string>(line.c_str());
82 nwave = std::stoi(sline[3]), ntemp =
n_fd2_sets;
85 fd2_.resize(ntemp * nwave);
87 for (
int i = 0; i < ntemp; ++i) {
89 for (
int j = 0;
j < nwave; ++
j) {
103 std::getline(file, line);
104 std::getline(file, line);
105 sline = Vectorize<std::string>(line.c_str());
112 Real kk,
temp = qfrac.
w[IDN];
114 Real coor[2] = {
temp, wave};
118 if (wave >= 0.02 && wave <= 554.) {
120 }
else if (wave >= 2000. && wave <= 2698.) {
122 }
else if (wave >= 1850. && wave <= 3000.)
130 return 1.E-10 * num_n2 * num_n2 * kk;
std::vector< Real > fd2_axis_
std::vector< Real > rt_axis_
Real getAttenuation1(Real wave, AirParcel const &var) const
void LoadCoefficient(std::string fname, size_t bid) override
Load absorption coefficient from file.
std::vector< Real > fd1_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_fd2_sets
static int const n_rt_sets
static int const n_fd1_sets