Skip to content

Commit 4e3985a

Browse files
committed
leveraged ekat::split utility in histogram diagnostic
1 parent b6dc9b3 commit 4e3985a

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

components/eamxx/src/diagnostics/histogram.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "diagnostics/histogram.hpp"
22

33
#include <ekat_team_policy_utils.hpp>
4+
#include <ekat_string_utils.hpp>
45

56

67
namespace scream {
@@ -34,13 +35,8 @@ void HistogramDiag::initialize_impl(const RunType /*run_type*/) {
3435
field_layout.to_string() + "\n");
3536

3637
// extract bin values from configuration
37-
std::istringstream stream(m_bin_configuration);
38-
std::string token;
39-
std::vector<Real> bin_values;
40-
while (std::getline(stream, token, '_')) {
41-
bin_values.push_back(std::stod(token));
42-
}
43-
const int num_bins = bin_values.size()-1;
38+
std::vector<std::string> bin_strings = ekat::split(m_bin_configuration, "_");
39+
const int num_bins = bin_strings.size()-1;
4440

4541
// allocate histogram field
4642
FieldLayout diagnostic_layout({CMP}, {num_bins}, {"bin"});
@@ -60,7 +56,7 @@ void HistogramDiag::initialize_impl(const RunType /*run_type*/) {
6056
using RangePolicy = Kokkos::RangePolicy<Field::device_t::execution_space>;
6157
Kokkos::parallel_for("store_histogram_bin_values_" + field.name(),
6258
RangePolicy(0, bin_values_layout.dim(0)), [&] (int i) {
63-
bin_values_view(i) = bin_values[i];
59+
bin_values_view(i) = std::stod(bin_strings[i]);
6460
});
6561
}
6662

0 commit comments

Comments
 (0)