Skip to content

Commit e65666f

Browse files
authored
Merge Pull Request #2980 from E3SM-Project/scream/tcclevenger/view_allocs_in_p3
Automatically Merged using E3SM Pull Request AutoTester PR Title: View alloc fixes for P3 PR Author: tcclevenger PR LABELS: p3, AT: AUTOMERGE
2 parents 474edd8 + 3a85062 commit e65666f

36 files changed

+807
-678
lines changed

components/eamxx/src/physics/p3/CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ if (NOT EAMXX_ENABLE_GPU OR Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE OR Kokkos
4545
eti/p3_ice_relaxation_timescale.cpp
4646
eti/p3_ice_nucleation.cpp
4747
eti/p3_ice_cldliq_wet_growth.cpp
48-
eti/p3_get_latent_heat.cpp
4948
eti/p3_check_values.cpp
5049
eti/p3_incloud_mixingratios.cpp
5150
eti/p3_subgrid_variance_scaling.cpp
@@ -63,13 +62,13 @@ endif()
6362

6463
# List of dispatch source files if monolithic kernels are off
6564
set(P3_SK_SRCS
66-
disp/p3_check_values_impl_disp.cpp
67-
disp/p3_ice_sed_impl_disp.cpp
68-
disp/p3_main_impl_part1_disp.cpp
65+
disp/p3_check_values_impl_disp.cpp
66+
disp/p3_ice_sed_impl_disp.cpp
67+
disp/p3_main_impl_part1_disp.cpp
6968
disp/p3_main_impl_part3_disp.cpp
70-
disp/p3_cloud_sed_impl_disp.cpp
71-
disp/p3_main_impl_disp.cpp
72-
disp/p3_main_impl_part2_disp.cpp
69+
disp/p3_cloud_sed_impl_disp.cpp
70+
disp/p3_main_impl_disp.cpp
71+
disp/p3_main_impl_part2_disp.cpp
7372
disp/p3_rain_sed_impl_disp.cpp
7473
)
7574

components/eamxx/src/physics/p3/disp/p3_ice_sed_impl_disp.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ ::ice_sedimentation_disp(
4646

4747
// Ice sedimentation: (adaptive substepping)
4848
ice_sedimentation(
49-
ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(rhofaci, i), ekat::subview(cld_frac_i, i),
50-
ekat::subview(inv_dz, i), team, workspace, nk, ktop, kbot, kdir, dt, inv_dt,
49+
ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(rhofaci, i), ekat::subview(cld_frac_i, i),
50+
ekat::subview(inv_dz, i), team, workspace, nk, ktop, kbot, kdir, dt, inv_dt,
5151
ekat::subview(qi, i), ekat::subview(qi_incld, i), ekat::subview(ni, i), ekat::subview(ni_incld, i),
5252
ekat::subview(qm, i), ekat::subview(qm_incld, i), ekat::subview(bm, i), ekat::subview(bm_incld, i), ekat::subview(qi_tend, i), ekat::subview(ni_tend, i),
5353
ice_table_vals, precip_ice_surf(i), p3constants);
@@ -60,7 +60,6 @@ void Functions<Real,DefaultDevice>
6060
::homogeneous_freezing_disp(
6161
const uview_2d<const Spack>& T_atm,
6262
const uview_2d<const Spack>& inv_exner,
63-
const uview_2d<const Spack>& latent_heat_fusion,
6463
const Int& nj, const Int& nk, const Int& ktop, const Int& kbot, const Int& kdir,
6564
const uview_2d<Spack>& qc,
6665
const uview_2d<Spack>& nc,
@@ -89,7 +88,7 @@ ::homogeneous_freezing_disp(
8988

9089
// homogeneous freezing of cloud and rain
9190
homogeneous_freezing(
92-
ekat::subview(T_atm, i), ekat::subview(inv_exner, i), ekat::subview(latent_heat_fusion, i), team, nk, ktop, kbot, kdir,
91+
ekat::subview(T_atm, i), ekat::subview(inv_exner, i), team, nk, ktop, kbot, kdir,
9392
ekat::subview(qc, i), ekat::subview(nc, i), ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i),
9493
ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i), ekat::subview(th_atm, i));
9594

components/eamxx/src/physics/p3/disp/p3_main_impl_disp.cpp

Lines changed: 103 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ ::p3_main_init_disp(
3232
const uview_2d<Spack>& qv_supersat_i, const uview_2d<Spack>& qtend_ignore, const uview_2d<Spack>& ntend_ignore, const uview_2d<Spack>& mu_c,
3333
const uview_2d<Spack>& lamc, const uview_2d<Spack>& rho_qi, const uview_2d<Spack>& qv2qi_depos_tend, const uview_2d<Spack>& precip_total_tend,
3434
const uview_2d<Spack>& nevapr, const uview_2d<Spack>& precip_liq_flux, const uview_2d<Spack>& precip_ice_flux)
35-
{
35+
{
3636
using ExeSpace = typename KT::ExeSpace;
3737
const auto policy = ekat::ExeSpaceUtils<ExeSpace>::get_default_team_policy(nj, nk_pack);
3838

3939
Kokkos::parallel_for("p3_main_init",
4040
policy, KOKKOS_LAMBDA(const MemberType& team) {
41-
42-
const Int i = team.league_rank();
43-
precip_liq_surf(i) = 0;
44-
precip_ice_surf(i) = 0;
41+
42+
const Int i = team.league_rank();
43+
precip_liq_surf(i) = 0;
44+
precip_ice_surf(i) = 0;
4545

4646
Kokkos::parallel_for(
4747
Kokkos::TeamVectorRange(team, nk_pack), [&] (Int k) {
@@ -107,17 +107,14 @@ ::p3_main_internal_disp(
107107
const P3Infrastructure& infrastructure,
108108
const P3HistoryOnly& history_only,
109109
const P3LookupTables& lookup_tables,
110+
const P3Temporaries& temporaries,
110111
const WorkspaceManager& workspace_mgr,
111112
Int nj,
112113
Int nk,
113114
const physics::P3_Constants<Real> & p3constants)
114115
{
115116
using ExeSpace = typename KT::ExeSpace;
116117

117-
view_2d<Spack> latent_heat_sublim("latent_heat_sublim", nj, nk), latent_heat_vapor("latent_heat_vapor", nj, nk), latent_heat_fusion("latent_heat_fusion", nj, nk);
118-
119-
get_latent_heat(nj, nk, latent_heat_vapor, latent_heat_sublim, latent_heat_fusion);
120-
121118
const Int nk_pack = ekat::npack<Spack>(nk);
122119

123120
// load constants into local vars
@@ -131,87 +128,99 @@ ::p3_main_internal_disp(
131128
view_1d<bool> nucleationPossible("nucleationPossible", nj);
132129
view_1d<bool> hydrometeorsPresent("hydrometeorsPresent", nj);
133130

134-
//
135-
// Create temporary variables needed for p3
136-
//
137-
view_2d<Spack>
138-
mu_r("mu_r", nj, nk_pack), // shape parameter of rain
139-
T_atm("T_atm", nj, nk_pack), // temperature at the beginning of the microphysics step [K]
140-
141-
// 2D size distribution and fallspeed parameters
142-
lamr("lamr", nj, nk_pack), logn0r("logn0r", nj, nk_pack), nu("nu", nj, nk_pack),
143-
cdist("cdist", nj, nk_pack), cdist1("cdist1", nj, nk_pack), cdistr("cdistr", nj, nk_pack),
144-
145-
// Variables needed for in-cloud calculations
146-
// Inverse cloud fractions (1/cld)
147-
inv_cld_frac_i("inv_cld_frac_i", nj, nk_pack), inv_cld_frac_l("inv_cld_frac_l", nj, nk_pack), inv_cld_frac_r("inv_cld_frac_r", nj, nk_pack),
148-
// In cloud mass-mixing ratios
149-
qc_incld("qc_incld", nj, nk_pack), qr_incld("qr_incld", nj, nk_pack), qi_incld("qi_incld", nj, nk_pack), qm_incld("qm_incld", nj, nk_pack),
150-
// In cloud number concentrations
151-
nc_incld("nc_incld", nj, nk_pack), nr_incld("nr_incld", nj, nk_pack), ni_incld("ni_incld", nj, nk_pack), bm_incld("bm_incld", nj, nk_pack),
152-
153-
// Other
154-
inv_dz("inv_dz", nj, nk_pack), inv_rho("inv_rho", nj, nk_pack), ze_ice("ze_ice", nj, nk_pack), ze_rain("ze_rain", nj, nk_pack),
155-
prec("prec", nj, nk_pack), rho("rho", nj, nk_pack), rhofacr("rhofacr", nj, nk_pack), rhofaci("rhofaci", nj, nk_pack),
156-
acn("acn", nj, nk_pack), qv_sat_l("qv_sat", nj, nk_pack), qv_sat_i("qv_sat_i", nj, nk_pack), sup("sup", nj, nk_pack),
157-
qv_supersat_i("qv_supersat", nj, nk_pack), tmparr2("tmparr2", nj, nk_pack), exner("exner", nj, nk_pack),
158-
diag_equiv_reflectivity("diag_equiv_ref", nj, nk_pack), diag_vm_qi("diag_vm_qi", nj, nk_pack), diag_diam_qi("diag_diam_qi", nj, nk_pack),
159-
pratot("pratot", nj, nk_pack), prctot("prctot", nj, nk_pack),
160-
161-
// p3_tend_out, may not need these
162-
qtend_ignore("qtend_ignore", nj, nk_pack), ntend_ignore("ntend_ignore", nj, nk_pack),
163-
164-
// Variables still used in F90 but removed from C++ interface
165-
mu_c("mu_c", nj, nk_pack), lamc("lamc", nj, nk_pack),
166-
qr_evap_tend("qr_evap_tend", nj, nk_pack),
167-
168-
// cloud sedimentation
169-
v_qc("v_qc", nj, nk_pack), v_nc("v_nc", nj, nk_pack), flux_qx("flux_qx", nj, nk_pack), flux_nx("flux_nx", nj, nk_pack),
170-
171-
// ice sedimentation
172-
v_qit("v_qit", nj, nk_pack), v_nit("v_nit", nj, nk_pack), flux_nit("flux_nit", nj, nk_pack), flux_bir("flux_bir", nj, nk_pack),
173-
flux_qir("flux_qir", nj, nk_pack), flux_qit("flux_qit", nj, nk_pack),
174-
175-
// rain sedimentation
176-
v_qr("v_qr", nj, nk_pack), v_nr("v_nr", nj, nk_pack);
177-
178131
// Get views of all inputs
179-
auto pres = diagnostic_inputs.pres;
180-
auto dz = diagnostic_inputs.dz;
181-
auto nc_nuceat_tend = diagnostic_inputs.nc_nuceat_tend;
182-
auto nccn_prescribed = diagnostic_inputs.nccn;
183-
auto ni_activated = diagnostic_inputs.ni_activated;
184-
auto inv_qc_relvar = diagnostic_inputs.inv_qc_relvar;
185-
auto dpres = diagnostic_inputs.dpres;
186-
auto inv_exner = diagnostic_inputs.inv_exner;
187-
auto cld_frac_i = diagnostic_inputs.cld_frac_i;
188-
auto cld_frac_l = diagnostic_inputs.cld_frac_l;
189-
auto cld_frac_r = diagnostic_inputs.cld_frac_r;
190-
auto col_location = infrastructure.col_location;
191-
auto qc = prognostic_state.qc;
192-
auto nc = prognostic_state.nc;
193-
auto qr = prognostic_state.qr;
194-
auto nr = prognostic_state.nr;
195-
auto qi = prognostic_state.qi;
196-
auto qm = prognostic_state.qm;
197-
auto ni = prognostic_state.ni;
198-
auto bm = prognostic_state.bm;
199-
auto qv = prognostic_state.qv;
200-
auto th = prognostic_state.th;
201-
auto diag_eff_radius_qc = diagnostic_outputs.diag_eff_radius_qc;
202-
auto diag_eff_radius_qi = diagnostic_outputs.diag_eff_radius_qi;
203-
auto diag_eff_radius_qr = diagnostic_outputs.diag_eff_radius_qr;
204-
auto qv2qi_depos_tend = diagnostic_outputs.qv2qi_depos_tend;
205-
auto rho_qi = diagnostic_outputs.rho_qi;
206-
auto precip_liq_flux = diagnostic_outputs.precip_liq_flux;
207-
auto precip_ice_flux = diagnostic_outputs.precip_ice_flux;
208-
auto precip_total_tend = diagnostic_outputs.precip_total_tend;
209-
auto nevapr = diagnostic_outputs.nevapr;
210-
auto qv_prev = diagnostic_inputs.qv_prev;
211-
auto t_prev = diagnostic_inputs.t_prev;
212-
auto liq_ice_exchange = history_only.liq_ice_exchange;
213-
auto vap_liq_exchange = history_only.vap_liq_exchange;
214-
auto vap_ice_exchange = history_only.vap_ice_exchange;
132+
auto pres = diagnostic_inputs.pres;
133+
auto dz = diagnostic_inputs.dz;
134+
auto nc_nuceat_tend = diagnostic_inputs.nc_nuceat_tend;
135+
auto nccn_prescribed = diagnostic_inputs.nccn;
136+
auto ni_activated = diagnostic_inputs.ni_activated;
137+
auto inv_qc_relvar = diagnostic_inputs.inv_qc_relvar;
138+
auto dpres = diagnostic_inputs.dpres;
139+
auto inv_exner = diagnostic_inputs.inv_exner;
140+
auto cld_frac_i = diagnostic_inputs.cld_frac_i;
141+
auto cld_frac_l = diagnostic_inputs.cld_frac_l;
142+
auto cld_frac_r = diagnostic_inputs.cld_frac_r;
143+
auto col_location = infrastructure.col_location;
144+
auto qc = prognostic_state.qc;
145+
auto nc = prognostic_state.nc;
146+
auto qr = prognostic_state.qr;
147+
auto nr = prognostic_state.nr;
148+
auto qi = prognostic_state.qi;
149+
auto qm = prognostic_state.qm;
150+
auto ni = prognostic_state.ni;
151+
auto bm = prognostic_state.bm;
152+
auto qv = prognostic_state.qv;
153+
auto th = prognostic_state.th;
154+
auto diag_eff_radius_qc = diagnostic_outputs.diag_eff_radius_qc;
155+
auto diag_eff_radius_qi = diagnostic_outputs.diag_eff_radius_qi;
156+
auto diag_eff_radius_qr = diagnostic_outputs.diag_eff_radius_qr;
157+
auto qv2qi_depos_tend = diagnostic_outputs.qv2qi_depos_tend;
158+
auto rho_qi = diagnostic_outputs.rho_qi;
159+
auto precip_liq_flux = diagnostic_outputs.precip_liq_flux;
160+
auto precip_ice_flux = diagnostic_outputs.precip_ice_flux;
161+
auto precip_total_tend = diagnostic_outputs.precip_total_tend;
162+
auto nevapr = diagnostic_outputs.nevapr;
163+
auto qv_prev = diagnostic_inputs.qv_prev;
164+
auto t_prev = diagnostic_inputs.t_prev;
165+
auto liq_ice_exchange = history_only.liq_ice_exchange;
166+
auto vap_liq_exchange = history_only.vap_liq_exchange;
167+
auto vap_ice_exchange = history_only.vap_ice_exchange;
168+
auto mu_r = temporaries.mu_r;
169+
auto T_atm = temporaries.T_atm;
170+
auto lamr = temporaries.lamr;
171+
auto logn0r = temporaries.logn0r;
172+
auto nu = temporaries.nu;
173+
auto cdist = temporaries.cdist;
174+
auto cdist1 = temporaries.cdist1;
175+
auto cdistr = temporaries.cdistr;
176+
auto inv_cld_frac_i = temporaries.inv_cld_frac_i;
177+
auto inv_cld_frac_l = temporaries.inv_cld_frac_l;
178+
auto inv_cld_frac_r = temporaries.inv_cld_frac_r;
179+
auto qc_incld = temporaries.qc_incld;
180+
auto qr_incld = temporaries.qr_incld;
181+
auto qi_incld = temporaries.qi_incld;
182+
auto qm_incld = temporaries.qm_incld;
183+
auto nc_incld = temporaries.nc_incld;
184+
auto nr_incld = temporaries.nr_incld;
185+
auto ni_incld = temporaries.ni_incld;
186+
auto bm_incld = temporaries.bm_incld;
187+
auto inv_dz = temporaries.inv_dz;
188+
auto inv_rho = temporaries.inv_rho;
189+
auto ze_ice = temporaries.ze_ice;
190+
auto ze_rain = temporaries.ze_rain;
191+
auto prec = temporaries.prec;
192+
auto rho = temporaries.rho;
193+
auto rhofacr = temporaries.rhofacr;
194+
auto rhofaci = temporaries.rhofaci;
195+
auto acn = temporaries.acn;
196+
auto qv_sat_l = temporaries.qv_sat_l;
197+
auto qv_sat_i = temporaries.qv_sat_i;
198+
auto sup = temporaries.sup;
199+
auto qv_supersat_i = temporaries.qv_supersat_i;
200+
auto tmparr2 = temporaries.tmparr2;
201+
auto exner = temporaries.exner;
202+
auto diag_equiv_reflectivity = temporaries.diag_equiv_reflectivity;
203+
auto diag_vm_qi = temporaries.diag_vm_qi;
204+
auto diag_diam_qi = temporaries.diag_diam_qi;
205+
auto pratot = temporaries.pratot;
206+
auto prctot = temporaries.prctot;
207+
auto qtend_ignore = temporaries.qtend_ignore;
208+
auto ntend_ignore = temporaries.ntend_ignore;
209+
auto mu_c = temporaries.mu_c;
210+
auto lamc = temporaries.lamc;
211+
auto qr_evap_tend = temporaries.qr_evap_tend;
212+
auto v_qc = temporaries.v_qc;
213+
auto v_nc = temporaries.v_nc;
214+
auto flux_qx = temporaries.flux_qx;
215+
auto flux_nx = temporaries.flux_nx;
216+
auto v_qit = temporaries.v_qit;
217+
auto v_nit = temporaries.v_nit;
218+
auto flux_nit = temporaries.flux_nit;
219+
auto flux_bir = temporaries.flux_bir;
220+
auto flux_qir = temporaries.flux_qir;
221+
auto flux_qit = temporaries.flux_qit;
222+
auto v_qr = temporaries.v_qr;
223+
auto v_nr = temporaries.v_nr;
215224

216225
// we do not want to measure init stuff
217226
auto start = std::chrono::steady_clock::now();
@@ -231,7 +240,7 @@ ::p3_main_internal_disp(
231240
p3_main_part1_disp(
232241
nj, nk, infrastructure.predictNc, infrastructure.prescribedCCN, infrastructure.dt,
233242
pres, dpres, dz, nc_nuceat_tend, nccn_prescribed, inv_exner, exner, inv_cld_frac_l, inv_cld_frac_i,
234-
inv_cld_frac_r, latent_heat_vapor, latent_heat_sublim, latent_heat_fusion,
243+
inv_cld_frac_r,
235244
T_atm, rho, inv_rho, qv_sat_l, qv_sat_i, qv_supersat_i, rhofacr,
236245
rhofaci, acn, qv, th, qc, nc, qr, nr, qi, ni, qm,
237246
bm, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld, nr_incld,
@@ -242,12 +251,11 @@ ::p3_main_internal_disp(
242251

243252
p3_main_part2_disp(
244253
nj, nk, runtime_options.max_total_ni, infrastructure.predictNc, infrastructure.prescribedCCN, infrastructure.dt, inv_dt,
245-
lookup_tables.dnu_table_vals, lookup_tables.ice_table_vals, lookup_tables.collect_table_vals,
254+
lookup_tables.dnu_table_vals, lookup_tables.ice_table_vals, lookup_tables.collect_table_vals,
246255
lookup_tables.revap_table_vals, pres, dpres, dz, nc_nuceat_tend, inv_exner,
247256
exner, inv_cld_frac_l, inv_cld_frac_i, inv_cld_frac_r, ni_activated, inv_qc_relvar, cld_frac_i,
248257
cld_frac_l, cld_frac_r, qv_prev, t_prev, T_atm, rho, inv_rho, qv_sat_l, qv_sat_i, qv_supersat_i, rhofacr, rhofaci, acn,
249-
qv, th, qc, nc, qr, nr, qi, ni, qm, bm, latent_heat_vapor,
250-
latent_heat_sublim, latent_heat_fusion, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld,
258+
qv, th, qc, nc, qr, nr, qi, ni, qm, bm, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld,
251259
nr_incld, ni_incld, bm_incld, mu_c, nu, lamc, cdist, cdist1, cdistr,
252260
mu_r, lamr, logn0r, qv2qi_depos_tend, precip_total_tend, nevapr, qr_evap_tend,
253261
vap_liq_exchange, vap_ice_exchange, liq_ice_exchange,
@@ -288,7 +296,7 @@ ::p3_main_internal_disp(
288296

289297
// homogeneous freezing f cloud and rain
290298
homogeneous_freezing_disp(
291-
T_atm, inv_exner, latent_heat_fusion, nj, nk, ktop, kbot, kdir, qc, nc, qr, nr, qi,
299+
T_atm, inv_exner, nj, nk, ktop, kbot, kdir, qc, nc, qr, nr, qi,
292300
ni, qm, bm, th, nucleationPossible, hydrometeorsPresent);
293301

294302
//
@@ -298,7 +306,7 @@ ::p3_main_internal_disp(
298306
p3_main_part3_disp(
299307
nj, nk_pack, runtime_options.max_total_ni, lookup_tables.dnu_table_vals, lookup_tables.ice_table_vals, inv_exner, cld_frac_l, cld_frac_r, cld_frac_i,
300308
rho, inv_rho, rhofaci, qv, th, qc, nc, qr, nr, qi, ni,
301-
qm, bm, latent_heat_vapor, latent_heat_sublim, mu_c, nu, lamc, mu_r, lamr,
309+
qm, bm, mu_c, nu, lamc, mu_r, lamr,
302310
vap_liq_exchange, ze_rain, ze_ice, diag_vm_qi, diag_eff_radius_qi, diag_diam_qi,
303311
rho_qi, diag_equiv_reflectivity, diag_eff_radius_qc, diag_eff_radius_qr, nucleationPossible, hydrometeorsPresent,
304312
p3constants);

components/eamxx/src/physics/p3/disp/p3_main_impl_part1_disp.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ ::p3_main_part1_disp(
3131
const uview_2d<const Spack>& inv_cld_frac_l,
3232
const uview_2d<const Spack>& inv_cld_frac_i,
3333
const uview_2d<const Spack>& inv_cld_frac_r,
34-
const uview_2d<const Spack>& latent_heat_vapor,
35-
const uview_2d<const Spack>& latent_heat_sublim,
36-
const uview_2d<const Spack>& latent_heat_fusion,
3734
const uview_2d<Spack>& T_atm,
3835
const uview_2d<Spack>& rho,
3936
const uview_2d<Spack>& inv_rho,
@@ -73,17 +70,17 @@ ::p3_main_part1_disp(
7370
policy, KOKKOS_LAMBDA(const MemberType& team) {
7471

7572
const Int i = team.league_rank();
76-
73+
7774
p3_main_part1(
7875
team, nk, predictNc, prescribedCCN, dt,
7976
ekat::subview(pres, i), ekat::subview(dpres, i), ekat::subview(dz, i), ekat::subview(nc_nuceat_tend, i),
8077
ekat::subview(nccn_prescribed, i), ekat::subview(inv_exner, i), ekat::subview(exner, i), ekat::subview(inv_cld_frac_l, i),
81-
ekat::subview(inv_cld_frac_i, i), ekat::subview(inv_cld_frac_r, i), ekat::subview(latent_heat_vapor, i), ekat::subview(latent_heat_sublim, i),
82-
ekat::subview(latent_heat_fusion, i), ekat::subview(T_atm, i), ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(qv_sat_l, i),
78+
ekat::subview(inv_cld_frac_i, i), ekat::subview(inv_cld_frac_r, i),
79+
ekat::subview(T_atm, i), ekat::subview(rho, i), ekat::subview(inv_rho, i), ekat::subview(qv_sat_l, i),
8380
ekat::subview(qv_sat_i, i), ekat::subview(qv_supersat_i, i), ekat::subview(rhofacr, i), ekat::subview(rhofaci, i), ekat::subview(acn, i),
8481
ekat::subview(qv, i), ekat::subview(th_atm, i), ekat::subview(qc, i), ekat::subview(nc, i), ekat::subview(qr, i), ekat::subview(nr, i), ekat::subview(qi, i),
8582
ekat::subview(ni, i), ekat::subview(qm, i), ekat::subview(bm, i), ekat::subview(qc_incld, i), ekat::subview(qr_incld, i), ekat::subview(qi_incld, i),
86-
ekat::subview(qm_incld, i), ekat::subview(nc_incld, i), ekat::subview(nr_incld, i), ekat::subview(ni_incld, i), ekat::subview(bm_incld, i),
83+
ekat::subview(qm_incld, i), ekat::subview(nc_incld, i), ekat::subview(nr_incld, i), ekat::subview(ni_incld, i), ekat::subview(bm_incld, i),
8784
nucleationPossible(i), hydrometeorsPresent(i), p3constants);
8885

8986
});

0 commit comments

Comments
 (0)