Skip to content

Commit 08784ed

Browse files
committed
addressed CUDA error (errant use of KOKKOS_LAMBDA) and warning (implicit capture of encompassing class)
1 parent 6551b4e commit 08784ed

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

components/eamxx/src/diagnostics/zonal_avg.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,13 @@ void ZonalAvgDiag::initialize_impl(const RunType /*run_type*/) {
168168
const Real lat_delta = sp(180.0) / m_num_zonal_bins;
169169
auto lat_view = m_lat.get_view<const Real *>();
170170
auto ncols_per_bin_view = ncols_per_bin.get_view<Int *>();
171+
const int num_zonal_bins = m_num_zonal_bins; // for use inside lambdas
171172
TeamPolicy team_policy = ESU::get_default_team_policy(m_num_zonal_bins, ncols);
172173
Kokkos::parallel_for("count_columns_per_zonal_bin_" + field.name(),
173174
team_policy, KOKKOS_LAMBDA(const TeamMember &tm) {
174175
const int bin_i = tm.league_rank();
175176
const Real lat_lower = sp(-90.0) + bin_i * lat_delta;
176-
const Real lat_upper = (bin_i < m_num_zonal_bins-1)
177+
const Real lat_upper = (bin_i < num_zonal_bins-1)
177178
? lat_lower + lat_delta : sp(90.0 + 0.5*lat_delta);
178179
Kokkos::parallel_reduce(Kokkos::TeamVectorRange(tm, ncols),
179180
[&](int col_i, Int &val) {
@@ -206,7 +207,7 @@ void ZonalAvgDiag::initialize_impl(const RunType /*run_type*/) {
206207
Kokkos::parallel_for("assign_columns_to_zonal_bins_" + field.name(),
207208
RangePolicy(0, m_num_zonal_bins), [&] (int bin_i) {
208209
const Real lat_lower = sp(-90.0) + bin_i * lat_delta;
209-
const Real lat_upper = (bin_i < m_num_zonal_bins-1)
210+
const Real lat_upper = (bin_i < num_zonal_bins-1)
210211
? lat_lower + lat_delta : sp(90.0 + 0.5*lat_delta);
211212
bin_to_cols_view(bin_i, 0) = 0;
212213
for (int col_i=0; col_i < ncols; col_i++)
@@ -243,7 +244,7 @@ void ZonalAvgDiag::initialize_impl(const RunType /*run_type*/) {
243244
const int bin_i = tm.league_rank();
244245
Kokkos::parallel_for(
245246
Kokkos::TeamVectorRange(tm, 1, 1+bin_to_cols_view(bin_i,0)),
246-
KOKKOS_LAMBDA(int lcol_j) {
247+
[&](int lcol_j) {
247248
const int col_i = bin_to_cols_view(bin_i, lcol_j);
248249
scaled_area_view(col_i) /= zonal_area_view(bin_i);
249250
});

0 commit comments

Comments
 (0)