41 real3d liq_tau(
"liq_tau",nbnd, ncol, nlev);
42 real3d liq_tau_ssa(
"liq_tau_ssa",nbnd, ncol, nlev);
43 real3d liq_tau_ssa_g(
"liq_tau_ssa_g", nbnd, ncol, nlev);
44 real3d liq_tau_ssa_f(
"liq_tau_ssa_f", nbnd, ncol, nlev);
45 real3d ice_tau(
"ice_tau", nbnd, ncol, nlev);
46 real3d ice_tau_ssa(
"ice_tau_ssa", nbnd, ncol, nlev);
47 real3d ice_tau_ssa_g(
"ice_tau_ssa_g", nbnd, ncol, nlev);
48 real3d ice_tau_ssa_f(
"ice_tau_ssa_f", nbnd, ncol, nlev);
49 real3d cld_tau(
"cld_tau", nbnd, ncol, nlev);
50 real3d cld_tau_ssa(
"cld_tau_ssa", nbnd, ncol, nlev);
51 real3d cld_tau_ssa_g(
"cld_tau_ssa_g", nbnd, ncol, nlev);
52 real3d cld_tau_ssa_f(
"cld_tau_ssa_f", nbnd, ncol, nlev);
53 real3d snow_tau(
"snow_tau", nbnd, ncol, nlev );
54 real3d snow_tau_ssa(
"snow_tau_ssa", nbnd, ncol, nlev);
55 real3d snow_tau_ssa_g(
"snow_tau_ssa_g", nbnd, ncol, nlev);
56 real3d snow_tau_ssa_f(
"snow_tau_ssa_f", nbnd, ncol, nlev);
57 real3d combined_tau(
"combined_tau", nbnd, ncol, nlev);
58 real3d combined_tau_ssa(
"combined_tau_ssa", nbnd, ncol, nlev);
59 real3d combined_tau_ssa_g(
"combined_tau_ssa_g", nbnd, ncol, nlev);
60 real3d combined_tau_ssa_f(
"combined_tau_ssa_f", nbnd, ncol, nlev);
63 yakl::memset(tau_out, 0.);
64 yakl::memset(ssa_out, 0.);
65 yakl::memset(asm_out, 0.);
66 yakl::memset(liq_tau_out, 0.);
67 yakl::memset(ice_tau_out, 0.);
68 yakl::memset(snw_tau_out, 0.);
71 yakl::memset(ice_tau, 0.);
72 yakl::memset(ice_tau_ssa, 0.);
73 yakl::memset(ice_tau_ssa_g, 0.);
74 yakl::memset(ice_tau_ssa_f, 0.);
75 yakl::memset(liq_tau, 0.);
76 yakl::memset(liq_tau_ssa, 0.);
77 yakl::memset(liq_tau_ssa_g, 0.);
78 yakl::memset(liq_tau_ssa_f, 0.);
79 yakl::memset(snow_tau, 0.);
80 yakl::memset(snow_tau_ssa, 0.);
81 yakl::memset(snow_tau_ssa_g, 0.);
82 yakl::memset(snow_tau_ssa_f, 0.);
83 yakl::memset(combined_tau, 0.);
84 yakl::memset(combined_tau_ssa, 0.);
85 yakl::memset(combined_tau_ssa_g, 0.);
86 yakl::memset(combined_tau_ssa_f, 0.);
92 ice_tau_ssa_g, ice_tau_ssa_f);
96 rei, ice_tau, ice_tau_ssa,
97 ice_tau_ssa_g, ice_tau_ssa_f);
103 liq_tau, liq_tau_ssa,
104 liq_tau_ssa_g, liq_tau_ssa_f);
108 liq_tau, liq_tau_ssa,
109 liq_tau_ssa_g, liq_tau_ssa_f);
115 snow_tau, snow_tau_ssa,
116 snow_tau_ssa_g, snow_tau_ssa_f);
121 yakl::memset(snow_tau, 0.);
122 yakl::memset(snow_tau_ssa, 0.);
123 yakl::memset(snow_tau_ssa_g, 0.);
124 yakl::memset(snow_tau_ssa_f, 0.);
128 parallel_for(SimpleBounds<3>(nbnd, ncol, nlev), YAKL_LAMBDA (
int ibnd,
int icol,
int ilev)
130 cld_tau(ibnd, icol, ilev) = ice_tau(ibnd, icol, ilev) + liq_tau(ibnd, icol, ilev);
131 cld_tau_ssa(ibnd, icol, ilev) = ice_tau_ssa(ibnd, icol, ilev) + liq_tau_ssa(ibnd, icol, ilev);
132 cld_tau_ssa_g(ibnd, icol, ilev) = ice_tau_ssa_g(ibnd, icol, ilev) + liq_tau_ssa_g(ibnd, icol, ilev);
137 cld, cld_tau, cldfsnow, snow_tau, combined_tau);
140 cld, cld_tau_ssa, cldfsnow, snow_tau_ssa, combined_tau_ssa);
143 cld, cld_tau_ssa_g, cldfsnow, snow_tau_ssa_g, combined_tau_ssa_g);
146 parallel_for(SimpleBounds<3>(nbnd, ncol, nlev), YAKL_LAMBDA (
int ibnd,
int icol,
int ilev)
148 combined_tau(ibnd, icol, ilev) = cld_tau(ibnd, icol, ilev);
149 combined_tau_ssa(ibnd, icol, ilev) = cld_tau_ssa(ibnd, icol, ilev);
150 combined_tau_ssa_g(ibnd, icol, ilev) = cld_tau_ssa_g(ibnd, icol, ilev);
157 parallel_for(SimpleBounds<3>(nbnd, ncol, nlev), YAKL_LAMBDA (
int iband,
int icol,
int ilev)
159 tau_out(icol,ilev,iband) = combined_tau(iband,icol,ilev);
160 if (combined_tau(iband,icol,ilev) > 0) {
161 ssa_out(icol,ilev,iband)
162 = combined_tau_ssa(iband,icol,ilev) / combined_tau(iband,icol,ilev);
164 ssa_out(icol,ilev,iband) = 1.;
167 if (combined_tau_ssa(iband,icol,ilev) > 0) {
168 asm_out(icol,ilev,iband)
169 = combined_tau_ssa_g(iband,icol,ilev) / combined_tau_ssa(iband,icol,ilev);
171 asm_out(icol,ilev,iband) = 0.;
175 liq_tau_out(icol,ilev,iband) = liq_tau(iband,icol,ilev);
176 ice_tau_out(icol,ilev,iband) = ice_tau(iband,icol,ilev);
177 snw_tau_out(icol,ilev,iband) = snow_tau(iband,icol,ilev);
void mitchell_ice_optics_sw(const int &ncol, const int &nlev, const real2d &iciwpth, const real2d &dei, real3d &tau, real3d &tau_w, real3d &tau_w_g, real3d &tau_w_f)
Definition: ERF_CloudRadProps.cpp:153
void gammadist_liq_optics_sw(const int &ncol, const int &nlev, const real2d &iclwpth, const real2d &lamc, const real2d &pgam, real3d &tau, real3d &tau_w, real3d &tau_w_g, real3d &tau_w_f)
Definition: ERF_CloudRadProps.cpp:96
static void ec_ice_optics_sw(int ncol, int nlev, int nswbands, const real2d &cldn, const real2d &cicewp, const real2d &rei, const real3d &ice_tau, const real3d &ice_tau_w, const real3d &ice_tau_w_g, const real3d &ice_tau_w_f)
Definition: ERF_EbertCurry.H:11
static void slingo_liq_optics_sw(int ncol, int nlev, int nswbands, const real2d &cldn, const real2d &cliqwp, const real2d &rel, const real3d &liq_tau, const real3d &liq_tau_w, const real3d &liq_tau_w_g, const real3d &liq_tau_w_f)
Definition: ERF_Slingo.H:12