16 real1d wavmin(
"wavmin", nswbands);
17 real1d wavmax(
"wavmax", nswbands);
20 real1d abari(
"abari", 4);
21 real1d bbari(
"bbari", 4);
22 real1d cbari(
"cbari", 4);
23 real1d dbari(
"dbari", 4);
24 real1d ebari(
"ebari", 4);
25 real1d fbari(
"fbari", 4);
27 parallel_for(SimpleBounds<1>(1), YAKL_LAMBDA (
int i)
57 constexpr real cldmin = 1.0e-80;
61 constexpr real cldeps = 0.0;
65 constexpr real rei_min = 13.;
66 constexpr real rei_max = 130.;
73 for (
auto ns=0; ns<nswbands; ++ns) {
74 if(wavmax(ns) <= 0.7) {
76 }
else if(wavmax(ns) <= 1.25) {
78 }
else if(wavmax(ns) <= 2.38) {
80 }
else if(wavmax(ns) > 2.38) {
83 parallel_for(SimpleBounds<2>(nlev, ncol), YAKL_LAMBDA (
int k,
int i)
85 real tmp1i, tmp2i, tmp3i, g;
86 auto abarii = abari(indxsl);
87 auto bbarii = bbari(indxsl);
88 auto cbarii = cbari(indxsl);
89 auto dbarii = dbari(indxsl);
90 auto ebarii = ebari(indxsl);
91 auto fbarii = fbari(indxsl);
95 if (cldn(i,k) >= cldmin && cldn(i,k) >= cldeps) {
96 tmp1i = abarii + bbarii/std::max(rei_min,std::min(
scalefactor*rei(i,k),rei_max));
97 ice_tau(ns,i,k) = 1000. * cicewp(i,k) * tmp1i;
99 ice_tau(ns,i,k) = 0.0;
102 tmp2i = 1. - cbarii - dbarii*std::min(std::max(rei_min,
scalefactor*rei(i,k)),rei_max);
103 tmp3i = fbarii*std::min(std::max(rei_min,
scalefactor*rei(i,k)),rei_max);
107 ice_tau_w(ns,i,k) = ice_tau(ns,i,k) * std::min(tmp2i,.999999);
109 ice_tau_w_g(ns,i,k) = ice_tau_w(ns,i,k) * g;
110 ice_tau_w_f(ns,i,k) = ice_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