Skip to content

Commit d57ba71

Browse files
committed
Restore compatibility with eckit 1.17.1
1 parent 5c1f57e commit d57ba71

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

src/atlas/interpolation/AssembleGlobalMatrix.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,13 @@ linalg::SparseMatrixStorage assemble_global_matrix(const Interpolation& interpol
139139
max_gidx = std::max(max_gidx, global_index(i));
140140
}
141141
}
142+
#if ATLAS_ECKIT_VERSION_AT_LEAST(1, 22, 2)
143+
// eckit::mpi::Comm::reduceInPlace() was only added in eckit 1.22.2
142144
mpi_comm.reduceInPlace(max_gidx, eckit::mpi::max(), mpi_root);
145+
#else
146+
mpi_comm.allReduceInPlace(max_gidx, eckit::mpi::max());
147+
(void)mpi_root; // to silence unused lambda capture warning
148+
#endif
143149
return max_gidx;
144150
};
145151

src/sandbox/interpolation/atlas-global-matrix.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,11 @@ int AtlasGlobalMatrix::execute(const AtlasTool::Args& args) {
256256
auto tgt = eckit::linalg::Vector(tgt_data.data(), tgt_data.size());
257257
auto eckit_matrix = atlas::linalg::make_non_owning_eckit_sparse_matrix(matrix);
258258
timers.global_matrix_exe.start();
259+
#if ATLAS_ECKIT_VERSION_AT_LEAST(1, 19, 0)
259260
eckit::linalg::LinearAlgebraSparse::backend().spmv(eckit_matrix, src, tgt);
261+
#else
262+
eckit::linalg::LinearAlgebra::backend().spmv(eckit_matrix, src, tgt);
263+
#endif
260264
timers.global_matrix_exe.stop();
261265
Log::info() << "Global matrix-multiply timer \t: " << 1000.*timers.global_matrix_exe.elapsed() << " [ms]" << std::endl;
262266
Log::info() << "Global matrix non-zero entries\t: " << matrix.nnz() << std::endl;

src/tests/interpolation/test_interpolation_global_matrix.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,11 @@ using SparseMatrixStorage = atlas::linalg::SparseMatrixStorage;
165165
auto src = eckit::linalg::Vector(src_data.data(), src_data.size());
166166
auto tgt = eckit::linalg::Vector(tgt_data.data(), tgt_data.size());
167167
auto eckit_matrix = atlas::linalg::make_non_owning_eckit_sparse_matrix(matrix);
168+
#if ATLAS_ECKIT_VERSION_AT_LEAST(1, 19, 0)
168169
eckit::linalg::LinearAlgebraSparse::backend().spmv(eckit_matrix, src, tgt);
170+
#else
171+
eckit::linalg::LinearAlgebra::backend().spmv(eckit_matrix, src, tgt);
172+
#endif
169173
}
170174
auto tfield_global_v = array::make_view<double,1>(tgt_field_global);
171175
for (gidx_t i = 0; i < tgt_data.size(); ++i) {
@@ -207,7 +211,11 @@ using SparseMatrixStorage = atlas::linalg::SparseMatrixStorage;
207211
}
208212
auto tgt = eckit::linalg::Vector(tgt_data.data(), tgt_data.size());
209213
auto eckit_matrix = atlas::linalg::make_non_owning_eckit_sparse_matrix(gmatrix);
214+
#if ATLAS_ECKIT_VERSION_AT_LEAST(1, 19, 0)
210215
eckit::linalg::LinearAlgebraSparse::backend().spmv(eckit_matrix, src, tgt);
216+
#else
217+
eckit::linalg::LinearAlgebra::backend().spmv(eckit_matrix, src, tgt);
218+
#endif
211219
}
212220
}
213221

0 commit comments

Comments
 (0)