17 real1d wavmin(
"wavmin", nswbands);
18 real1d wavmax(
"wavmax", nswbands);
22 const real cldmin = 1.0e-80;
26 const real cldeps = 0.0;
31 real1d abarl(
"abarl", 4);
32 real1d bbarl(
"bbarl", 4);
33 real1d cbarl(
"cbarl", 4);
34 real1d dbarl(
"dbarl", 4);
35 real1d ebarl(
"ebarl", 4);
36 real1d fbarl(
"fbarl", 4);
37 parallel_for(SimpleBounds<1>(1), YAKL_LAMBDA (
int i)
68 const real rel_min = 4.2;
69 const real rel_max = 16.;
75 for (
auto ns=0; ns<nswbands; ++ns) {
82 if(wavmax(ns) <= 0.7) {
84 }
else if(wavmax(ns) <= 1.25) {
86 }
else if(wavmax(ns) <= 2.38) {
88 }
else if(wavmax(ns) > 2.38) {
94 parallel_for(SimpleBounds<2>(nlev, ncol), YAKL_LAMBDA (
int k,
int i)
96 auto abarli = abarl(indxsl);
97 auto bbarli = bbarl(indxsl);
98 auto cbarli = cbarl(indxsl);
99 auto dbarli = dbarl(indxsl);
100 auto ebarli = ebarl(indxsl);
101 auto fbarli = fbarl(indxsl);
102 real tmp1l, tmp2l, tmp3l, g;
106 if (cldn(i,k) >= cldmin && cldn(i,k) >= cldeps) {
107 tmp1l = abarli + bbarli/std::min(std::max(rel_min,rel(i,k)),rel_max);
108 liq_tau(ns,i,k) = 1000.*cliqwp(i,k)*tmp1l;
110 liq_tau(ns,i,k) = 0.0;
113 tmp2l = 1. - cbarli - dbarli*std::min(std::max(rel_min,rel(i,k)),rel_max);
114 tmp3l = fbarli*std::min(std::max(rel_min,rel(i,k)),rel_max);
118 liq_tau_w(ns,i,k) = liq_tau(ns,i,k) * std::min(tmp2l,.999999);
120 liq_tau_w_g(ns,i,k) = liq_tau_w(ns,i,k) * g;
121 liq_tau_w_f(ns,i,k) = liq_tau_w(ns,i,k) * g * g;
@ micrometer
Definition: ERF_RadConstants.H:109
static void get_sw_spectral_boundaries(real1d &low_boundaries, real1d &high_boundaries, Units units)
Definition: ERF_RadConstants.H:205