4 #ifndef ERF_PHYS_PROP_H_
5 #define ERF_PHYS_PROP_H_
7 #include "YAKL_netcdf.h"
8 #include "rrtmgp_const.h"
9 #include "ERF_Rad_constants.H"
14 using yakl::fortran::parallel_for;
15 using yakl::fortran::SimpleBounds;
93 const std::string& type)
100 if (type ==
"A" || type ==
"M") {
117 for(
auto fileindex = 0; fileindex < numphysprops; ++fileindex) {
127 auto physprop_id = -1;
129 for(
auto iphysprop = 0; iphysprop < numphysprops; ++iphysprop) {
131 physprop_id = iphysprop;
141 printf(
"get_sourcefile: illegal ID value %d\n",
id);
142 sourcefile =
physprop[id].sourcefile;
148 printf(
"get_opticstype: illegal ID value %d\n",
id);
149 opticstype =
physprop[id].opticsmethod;
155 printf(
"get_sw_hygro_ext: illegal ID value %d\n",
id);
156 sw_hygro_ext =
physprop[id].sw_hygro_ext;
162 printf(
"get_sw_hygro_ssa: illegal ID value %d\n",
id);
163 sw_hygro_ssa =
physprop[id].sw_hygro_ssa;
169 printf(
"get_sw_hygro_asm: illegal ID value %d\n",
id);
170 sw_hygro_asm =
physprop[id].sw_hygro_asm;
176 printf(
"get_lw_hygro_abs: illegal ID value %d\n",
id);
177 lw_hygro_abs =
physprop[id].lw_hygro_abs;
183 printf(
"get_sw_nonhygro_ext: illegal ID value %d\n",
id);
184 sw_nonhygro_ext =
physprop[id].sw_nonhygro_ext;
190 printf(
"get_sw_nonhygro_ssa: illegal ID value %d\n",
id);
191 sw_nonhygro_ssa =
physprop[id].sw_nonhygro_ssa;
197 printf(
"get_sw_nonhygro_asm: illegal ID value %d\n",
id);
198 sw_nonhygro_asm =
physprop[id].sw_nonhygro_asm;
204 printf(
"get_sw_nonhygro_scat: illegal ID value %d\n",
id);
205 sw_nonhygro_scat =
physprop[id].sw_nonhygro_scat;
211 printf(
"get_sw_nonhygro_ascat: illegal ID value %d\n",
id);
212 sw_nonhygro_ascat =
physprop[id].sw_nonhygro_ascat;
218 printf(
"get_lw_abs: illegal ID value %d\n",
id);
225 printf(
"get_ref_real_aer_sw: illegal ID value %d\n",
id);
226 ref_real_aer_sw =
physprop[id].refindex_real_aer_sw;
232 printf(
"get_ref_real_aer_lw: illegal ID value %d\n",
id);
233 ref_real_aer_lw =
physprop[id].refindex_real_aer_lw;
239 printf(
"get_ref_im_aer_sw: illegal ID value %d\n",
id);
240 ref_im_aer_sw =
physprop[id].refindex_im_aer_sw;
246 printf(
"get_ref_im_aer_lw: illegal ID value %d\n",
id);
247 ref_im_aer_lw =
physprop[id].refindex_im_aer_lw;
253 printf(
"get_r_sw_ext: illegal ID value %d\n",
id);
260 printf(
"get_r_sw_scat: illegal ID value %d\n",
id);
267 printf(
"get_r_sw_ascat: illegal ID value %d\n",
id);
268 r_sw_ascat =
physprop[id].r_sw_ascat;
274 printf(
"get_r_lw_abs: illegal ID value %d\n",
id);
281 printf(
"get_mu: illegal ID value %d\n",
id);
288 printf(
"get_expsw: illegal ID value %d\n",
id);
295 printf(
"get_abspsw: illegal ID value %d\n",
id);
302 printf(
"get_asmpsw: illegal ID value %d\n",
id);
309 printf(
"get_absplw: illegal ID value %d\n",
id);
316 printf(
"get_refrtabsw: illegal ID value %d\n",
id);
323 printf(
"get_refitabsw: illegal ID value %d\n",
id);
330 printf(
"get_refrtablw: illegal ID value %d\n",
id);
337 printf(
"ger_refitablw: illegal ID value %d\n",
id);
344 printf(
"get_aername: illegal ID value %d\n",
id);
351 printf(
"get_density_aer: illegal ID value %d\n",
id);
352 density_aer =
physprop[id].density_aer;
358 printf(
"get_hygro_aer: illegal ID value %d\n",
id);
365 printf(
"get_dryrad_aer: illegal ID value %d\n",
id);
366 dryrad_aer =
physprop[id].dryrad_aer;
372 printf(
"get_dispersion_aer: illegal ID value %d\n",
id);
373 dispersion_aer =
physprop[id].dispersion_aer;
379 printf(
"get_num_to_mass_aer: illegal ID value %d\n",
id);
380 num_to_mass_aer =
physprop[id].num_to_mass_aer;
386 printf(
"get_ncoef: illegal ID value %d\n",
id);
393 printf(
"get_prefr: illegal ID value %d\n",
id);
400 printf(
"get_prefi: illegal ID value %d\n",
id);
407 printf(
"get_sigmag: illegal ID value %d\n",
id);
414 printf(
"get_dgnum: illegal ID value %d\n",
id);
421 printf(
"get_dgnumlo: illegal ID value %d\n",
id);
428 printf(
"get_dgnumhi: illegal ID value %d\n",
id);
435 printf(
"get_rhcrystal: illegal ID value %d\n",
id);
442 printf(
"get_rhdeliques: illegal ID value %d\n",
id);
443 rhdeliques =
physprop[id].rhdeliques;
450 using charHost1d = FArray<char,1,yakl::memHost>;
451 yakl::SimpleNetCDF prop;
452 prop.open(phys_prop.
sourcefile, yakl::NETCDF_MODE_READ);
454 prop.read(temp,
"opticsmethod");
455 for (
auto ichar = 1 ; ichar <= temp.extent(0); ichar++)
456 if (!isspace(temp(ichar))) phys_prop.
opticsmethod += temp(ichar);
458 if(strcmp(phys_prop.
opticsmethod.c_str(),
"zero") == 0) {
460 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"hygro") == 0) {
462 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"hygroscopic") == 0) {
464 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"nonhygro") == 0) {
466 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"insoluble") == 0) {
468 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"volcanic_radius") == 0) {
470 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"volcanic") == 0) {
472 }
else if (strcmp(phys_prop.
opticsmethod.c_str(),
"modal") == 0) {
475 amrex::Print() <<
"no options available\n";
489 auto nswbands = prop.getDimSize(
"sw_band" );
491 prop.read( fsw_ext,
"ext_sw");
492 prop.read( fsw_ssa,
"ssa_sw");
493 prop.read( fsw_asm,
"asm_sw");
494 prop.read( flw_abs,
"abs_lw");
495 prop.read( frh,
"rh");
497 real1d fswe(
"fswe",nrh),
502 for(
auto kbnd = 0; kbnd < nswbands; ++kbnd) {
503 for(
auto krh = 0; krh < nrh; ++krh) {
504 fswe(krh) = fsw_ext(krh,kbnd)/fsw_ext(1,kbnd);
505 fsws(krh) = fsw_ssa(krh,kbnd)/fsw_ssa(1,kbnd);
506 fswa(krh) = fsw_asm(krh,kbnd)/fsw_asm(1,kbnd);
510 for(
auto krh = 0; krh < nrh; ++krh) {
511 auto rh = 1.0/nrh*(krh-1);
528 auto nlwbands = prop.getDimSize(
"lw_band" );
529 auto nswbands = prop.getDimSize(
"sw_band" );
535 phys_prop.
lw_abs = real1d(
"lwabs", nlwbands);
540 yakl::memset(phys_prop.
lw_abs, 0.);
545 auto nbnd = prop.getDimSize(
"lw_band" );
546 auto nswbands = prop.getDimSize(
"sw_band" );
547 realHost2d ext_sw, ssa_sw, asm_sw, abs_lw;
552 phys_prop.
lw_abs = real1d(
"lw_abs", nbnd);
554 prop.read( ext_sw,
"ext_sw");
555 prop.read( ssa_sw,
"ssa_sw");
556 prop.read( asm_sw,
"asm_sw");
557 prop.read( abs_lw,
"abs_lw");
559 parallel_for (SimpleBounds<1>(nswbands), YAKL_LAMBDA (
int i)
566 parallel_for (SimpleBounds<1>(nbnd), YAKL_LAMBDA (
int i)
568 phys_prop.
lw_abs(i) = abs_lw(i,1);
585 prop.read( phys_prop.
r_sw_ext,
"bext_sw");
586 prop.read( phys_prop.
r_sw_scat,
"bsca_sw");
588 prop.read( phys_prop.
r_lw_abs,
"babs_lw");
589 prop.read( phys_prop.
mu,
"mu_samples");
604 prop.read( phys_prop.
lw_abs,
"babs_lw");
616 real2d fsw_ext, fsw_ssa, fsw_asm, flw_abs;
619 auto nlwbands = prop.getDimSize(
"lw_band" );
620 auto nswbands = prop.getDimSize(
"sw_band" );
622 phys_prop.
sw_hygro_ext = real2d(
"sw_hygro_ext",nrh,nswbands);
623 phys_prop.
sw_hygro_ssa = real2d(
"sw_hygro_ssa",nrh,nswbands);
624 phys_prop.
sw_hygro_asm = real2d(
"sw_hygro_asm",nrh,nswbands);
625 phys_prop.
lw_hygro_abs = real2d(
"lw_hygro_abs",nrh,nlwbands);
627 prop.read( fsw_ext,
"ext_sw");
628 prop.read( fsw_ssa,
"ssa_sw");
629 prop.read( fsw_asm,
"asm_sw");
630 prop.read( flw_abs,
"abs_lw");
631 prop.read( frh,
"rh");
633 real1d fswe(
"",nrh), fsws(
"",nrh),
634 fswa(
"",nrh), flwa(
"",nrh);
637 parallel_for (SimpleBounds<2> (nswbands, nrh), YAKL_LAMBDA (
int kbnd,
int krh)
639 fswe(krh) = fsw_ext(krh,kbnd) / fsw_ext(1,kbnd);
640 fsws(krh) = fsw_ssa(krh,kbnd) / fsw_ssa(1,kbnd);
641 fswa(krh) = fsw_asm(krh,kbnd) / fsw_asm(1,kbnd);
644 parallel_for (SimpleBounds<2> (nswbands, nrh), YAKL_LAMBDA (
int kbnd,
int krh)
646 auto rh = 1.0 / nrh * (krh - 1);
653 parallel_for (SimpleBounds<2> (nlwbands, nrh), YAKL_LAMBDA (
int kbnd,
int krh)
655 flwa(krh) = flw_abs(krh,kbnd) / flw_abs(1,kbnd);
658 parallel_for (SimpleBounds<2> (nlwbands, nrh), YAKL_LAMBDA (
int kbnd,
int krh)
660 auto rh = 1.0 / nrh * (krh - 1);
680 prop.read( phys_prop.
lw_abs,
"abs_lw");
704 realHost5d extpsw, abspsw, asmpsw, absplw;
705 auto nlwbnd = prop.getDimSize(
"lw_band" );
706 auto nswbnd = prop.getDimSize(
"sw_band" );
707 auto ncoef = prop.getDimSize(
"coef_number" );
708 auto prefr = prop.getDimSize(
"refindex_real" );
709 auto prefi = prop.getDimSize(
"refindex_im" );
710 phys_prop.
ncoef = ncoef;
711 phys_prop.
prefr = prefr;
712 phys_prop.
prefi = prefi;
714 prop.read(extpsw,
"extpsw" );
715 prop.read(abspsw,
"abspsw" );
716 prop.read(asmpsw,
"asmpsw" );
717 prop.read(absplw,
"absplw" );
720 phys_prop.
extpsw = real4d(
"extpsw", ncoef, prefr, prefi, nswbnd);
721 phys_prop.
abspsw = real4d(
"abspsw", ncoef, prefr, prefi, nswbnd);
722 phys_prop.
asmpsw = real4d(
"asmpsw", ncoef, prefr, prefi, nswbnd);
723 phys_prop.
absplw = real4d(
"absplw", ncoef, prefr, prefi, nswbnd);
725 parallel_for (SimpleBounds<4>(nswbnd, prefr, prefi, ncoef),
726 YAKL_LAMBDA (
int i,
int j,
int k,
int l)
728 phys_prop.
extpsw(i,j,k,l) = extpsw(i,j,k,1,l);
729 phys_prop.
abspsw(i,j,k,l) = abspsw(i,j,k,1,l);
730 phys_prop.
asmpsw(i,j,k,l) = asmpsw(i,j,k,1,l);
733 parallel_for (SimpleBounds<4>(nlwbnd, prefr, prefi, ncoef),
734 YAKL_LAMBDA (
int i,
int j,
int k,
int l)
736 phys_prop.
absplw(i,j,k,l) = absplw(i,j,k,1,l);
739 prop.read(phys_prop.
refrtabsw,
"refindex_real_sw" );
740 prop.read(phys_prop.
refitabsw,
"refindex_im_sw" );
741 prop.read(phys_prop.
refrtablw,
"refindex_real_lw" );
742 prop.read(phys_prop.
refitablw,
"refindex_im_lw" );
744 prop.read(phys_prop.
sigmag,
"sigmag" );
745 prop.read(phys_prop.
dgnum,
"dgnum" );
747 prop.read(phys_prop.
dgnumlo,
"dgnumlo" );
748 prop.read(phys_prop.
dgnumhi,
"dgnumhi" );
750 prop.read(phys_prop.
rhcrystal,
"rhcrystal" );
751 prop.read(phys_prop.
rhdeliques,
"rhdeliques" );
756 using charHost1d = FArray<char,1,yakl::memHost>;
758 prop.read(temp,
"name");
760 for (
auto ichar = 1 ; ichar <= temp.extent(0); ichar++)
761 if (!isspace(temp(ichar))) phys_prop.
aername += temp(ichar);
767 prop.read( phys_prop.
hygro_aer,
"hygroscopicity" );
779 auto n =
x.extent(0);
787 else if (
y >=
x(n)) {
792 while (
y >
x(k+1) && k < n) {
798 auto a = (log(f(k+1)/f(k)))/(
x(k+1)-
x(k));
799 return f(k)*exp(a*(
y-
x(k)));
811 auto n =
x.extent(0);
818 else if (
y >=
x(n)) {
823 while (
y >
x(k+1) && k < n) {
828 auto a = (f(k+1)-f(k))/(
x(k+1)-
x(k));
829 return f(k)+a*(
y-
x(k));
836 void aer_optics_log_rh (std::string name,
const real1d& ext,
const real1d& ssa,
const real1d& asmin)
838 const int nrh_test = 36;
840 real1d rh_test(
"rh_test", nrh_test);
843 parallel_for (SimpleBounds<1> (nrh_test), YAKL_LAMBDA (
int krh_test)
845 rh_test(krh_test) = sqrt(sqrt(sqrt(sqrt(((krh_test - 1.0) / (nrh_test - 1))))));
849 parallel_for (SimpleBounds<1> (nrh_test), YAKL_LAMBDA (
int krh_test)
Definition: ERF_PhysProp.H:17
void hygroscopic_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:611
void physprop_init()
Definition: ERF_PhysProp.H:112
void get_sw_nonhygro_ssa(int &id, real1d &sw_nonhygro_ssa) const
Definition: ERF_PhysProp.H:187
void volcanic_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:596
void refindex_aer_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:690
void aer_optics_log_rh(std::string name, const real1d &ext, const real1d &ssa, const real1d &asmin)
Definition: ERF_PhysProp.H:836
void get_r_sw_ext(int &id, real2d &r_sw_ext) const
Definition: ERF_PhysProp.H:250
void get_sw_nonhygro_ext(int &id, real1d &sw_nonhygro_ext) const
Definition: ERF_PhysProp.H:180
void get_ref_real_aer_sw(int &id, real1d &ref_real_aer_sw) const
Definition: ERF_PhysProp.H:222
void get_sw_nonhygro_scat(int &id, real1d &sw_nonhygro_scat) const
Definition: ERF_PhysProp.H:201
void bulk_props_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:754
void get_prefr(int &id, int &prefr) const
Definition: ERF_PhysProp.H:390
void get_sourcefile(int &id, std::string &sourcefile) const
Definition: ERF_PhysProp.H:138
void get_ref_im_aer_sw(int &id, real1d &ref_im_aer_sw) const
Definition: ERF_PhysProp.H:236
void aerosol_optics_init(physprop_t &phys_prop)
Definition: ERF_PhysProp.H:448
void get_lw_hygro_abs(int &id, real2d &lw_hygro_abs) const
Definition: ERF_PhysProp.H:173
void get_sigmag(int &id, real &sigmag) const
Definition: ERF_PhysProp.H:404
void get_dgnum(int &id, real &dgnum) const
Definition: ERF_PhysProp.H:411
void modal_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:700
void get_r_lw_abs(int &id, real2d &r_lw_abs) const
Definition: ERF_PhysProp.H:271
void get_refitablw(int &id, real2d &refitablw) const
Definition: ERF_PhysProp.H:334
std::vector< std::string > uniquefilenames
Definition: ERF_PhysProp.H:89
void get_ref_real_aer_lw(int &id, real1d &ref_real_aer_lw) const
Definition: ERF_PhysProp.H:229
void get_hygro_aer(int &id, real &hygro_aer) const
Definition: ERF_PhysProp.H:355
void get_mu(int &id, real1d &mu) const
Definition: ERF_PhysProp.H:278
void get_sw_nonhygro_asm(int &id, real1d &sw_nonhygro_asm) const
Definition: ERF_PhysProp.H:194
void get_abspsw(int &id, real4d &abspsw) const
Definition: ERF_PhysProp.H:292
void get_opticstype(int &id, std::string &opticstype) const
Definition: ERF_PhysProp.H:145
void get_extpsw(int &id, real4d &extpsw) const
Definition: ERF_PhysProp.H:285
void hygro_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:479
void insoluble_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:543
void get_aername(int &id, std::string &aername) const
Definition: ERF_PhysProp.H:341
real lin_interpol(const real1d &x, const real1d &f, const real &y)
Definition: ERF_PhysProp.H:809
void get_ref_im_aer_lw(int &id, real1d &ref_im_aer_lw) const
Definition: ERF_PhysProp.H:243
void physprop_accum_unique_files(const std::string &filename, const std::string &type)
Definition: ERF_PhysProp.H:92
void get_sw_hygro_ssa(int &id, real2d &sw_hygro_ssa) const
Definition: ERF_PhysProp.H:159
void get_ncoef(int &id, int &ncoef) const
Definition: ERF_PhysProp.H:383
real exp_interpol(const real1d &x, const real1d &f, const real &y)
Definition: ERF_PhysProp.H:777
void get_sw_hygro_ext(int &id, real2d &sw_hygro_ext) const
Definition: ERF_PhysProp.H:152
void get_refrtablw(int &id, real2d &refrtablw) const
Definition: ERF_PhysProp.H:327
void get_r_sw_scat(int &id, real2d &r_sw_scat) const
Definition: ERF_PhysProp.H:257
void get_sw_nonhygro_ascat(int &id, real1d &sw_nonhygro_ascat) const
Definition: ERF_PhysProp.H:208
void get_dryrad_aer(int &id, real &dryrad_aer) const
Definition: ERF_PhysProp.H:362
void get_dispersion_aer(int &id, real &dispersion_aer) const
Definition: ERF_PhysProp.H:369
void get_refrtabsw(int &id, real2d &refrtabsw) const
Definition: ERF_PhysProp.H:313
void get_asmpsw(int &id, real4d &asmpsw) const
Definition: ERF_PhysProp.H:299
void get_rhdeliques(int &id, real &rhdeliques) const
Definition: ERF_PhysProp.H:439
int physprop_get_id(std::string filename) const
Definition: ERF_PhysProp.H:125
void get_num_to_mass_aer(int &id, real &num_to_mass_aer) const
Definition: ERF_PhysProp.H:376
void get_refitabsw(int &id, real2d &refitabsw) const
Definition: ERF_PhysProp.H:320
void get_density_aer(int &id, real &density_aer) const
Definition: ERF_PhysProp.H:348
void nonhygro_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:672
void volcanic_radius_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:579
std::vector< physprop_t > physprop
Definition: ERF_PhysProp.H:83
void get_absplw(int &id, real4d &absplw) const
Definition: ERF_PhysProp.H:306
void get_r_sw_ascat(int &id, real2d &r_sw_ascat) const
Definition: ERF_PhysProp.H:264
void get_rhcrystal(int &id, real &rhcrystal) const
Definition: ERF_PhysProp.H:432
void zero_optics_init(physprop_t &phys_prop, yakl::SimpleNetCDF &prop)
Definition: ERF_PhysProp.H:526
void get_prefi(int &id, int &prefi) const
Definition: ERF_PhysProp.H:397
void get_sw_hygro_asm(int &id, real2d &sw_hygro_asm) const
Definition: ERF_PhysProp.H:166
void get_dgnumlo(int &id, real &dgnumlo) const
Definition: ERF_PhysProp.H:418
void get_lw_abs(int &id, real1d &lw_abs) const
Definition: ERF_PhysProp.H:215
void get_dgnumhi(int &id, real &dgnumhi) const
Definition: ERF_PhysProp.H:425
static constexpr int nrh
Definition: ERF_RadConstants.H:77
Definition: ERF_PhysProp.H:20
real1d refindex_im_aer_sw
Definition: ERF_PhysProp.H:40
real dgnumhi
Definition: ERF_PhysProp.H:76
real rhdeliques
Definition: ERF_PhysProp.H:78
real4d asmpsw
Definition: ERF_PhysProp.H:54
real4d absplw
Definition: ERF_PhysProp.H:55
real1d refindex_im_aer_lw
Definition: ERF_PhysProp.H:42
real2d r_sw_ext
Definition: ERF_PhysProp.H:45
real2d refrtabsw
Definition: ERF_PhysProp.H:56
real2d lw_hygro_abs
Definition: ERF_PhysProp.H:28
real dgnumlo
Definition: ERF_PhysProp.H:75
real1d refindex_real_aer_sw
Definition: ERF_PhysProp.H:39
real1d sw_nonhygro_ext
Definition: ERF_PhysProp.H:31
std::string sourcefile
Definition: ERF_PhysProp.H:21
real sigmag
Definition: ERF_PhysProp.H:73
real1d sw_nonhygro_ascat
Definition: ERF_PhysProp.H:35
real dryrad_aer
Definition: ERF_PhysProp.H:65
std::string aername
Definition: ERF_PhysProp.H:62
real dgnum
Definition: ERF_PhysProp.H:74
real1d sw_nonhygro_asm
Definition: ERF_PhysProp.H:33
real2d refitabsw
Definition: ERF_PhysProp.H:57
real1d lw_abs
Definition: ERF_PhysProp.H:36
real2d refitablw
Definition: ERF_PhysProp.H:59
real density_aer
Definition: ERF_PhysProp.H:63
real2d r_sw_ascat
Definition: ERF_PhysProp.H:47
real1d mu
Definition: ERF_PhysProp.H:49
std::string opticsmethod
Definition: ERF_PhysProp.H:22
real1d refindex_real_aer_lw
Definition: ERF_PhysProp.H:41
real4d extpsw
Definition: ERF_PhysProp.H:52
real num_to_mass_aer
Definition: ERF_PhysProp.H:67
real1d sw_nonhygro_ssa
Definition: ERF_PhysProp.H:32
real1d sw_nonhygro_scat
Definition: ERF_PhysProp.H:34
int ncoef
Definition: ERF_PhysProp.H:70
real2d refrtablw
Definition: ERF_PhysProp.H:58
int prefi
Definition: ERF_PhysProp.H:72
real2d r_sw_scat
Definition: ERF_PhysProp.H:46
real dispersion_aer
Definition: ERF_PhysProp.H:66
int prefr
Definition: ERF_PhysProp.H:71
real2d sw_hygro_ssa
Definition: ERF_PhysProp.H:26
real4d abspsw
Definition: ERF_PhysProp.H:53
real2d sw_hygro_asm
Definition: ERF_PhysProp.H:27
real rhcrystal
Definition: ERF_PhysProp.H:77
real2d r_lw_abs
Definition: ERF_PhysProp.H:48
real hygro_aer
Definition: ERF_PhysProp.H:64
real2d sw_hygro_ext
Definition: ERF_PhysProp.H:25