16 #include "eckit/config/Configuration.h"
17 #include "eckit/exception/Exceptions.h"
19 #include "oops/util/abor1_cpp.h"
20 #include "oops/util/IntSetParser.h"
21 #include "oops/util/Logger.h"
32 : varname_(), grpname_(), channels_(),
33 options_(conf.getSubConfiguration(
"options")) {
34 oops::Log::trace() <<
"ufo::Variable(config) start " << conf << std::endl;
35 std::string fullname = conf.getString(
"name");
38 if (conf.has(
"channels")) {
39 std::string chlist = conf.getString(
"channels");
40 std::set<int> channelset = oops::parseIntSet(chlist);
41 std::copy(channelset.begin(), channelset.end(), std::back_inserter(
channels_));
43 oops::Log::trace() <<
"ufo::Variable(conf) done" << std::endl;
49 : varname_(), grpname_(), channels_(), options_(options) {
50 oops::Log::trace() <<
"ufo::Variable(name) start" << std::endl;
52 oops::Log::trace() <<
"ufo::Variable(name) done" << std::endl;
58 : varname_(), grpname_(), channels_(channels), options_() {
59 oops::Log::trace() <<
"ufo::Variable(name, channels) start " << std::endl;
61 oops::Log::trace() <<
"ufo::Variable(name, channels) done" << std::endl;
67 : varname_(var.varname_), grpname_(group), channels_(var.channels_),
68 options_(var.options_) {
89 ASSERT(jch < this->
size());
106 ASSERT(jch < this->
size());
140 oops::Variables vars;
141 for (
size_t jj = 0; jj < this->
size(); ++jj) {
154 for (
size_t jj = 0; jj <
channels_.size(); ++jj) {
155 if (jj > 0) os <<
", ";
Variable(const eckit::Configuration &)
const std::string & variable() const
eckit::LocalConfiguration options_
std::string fullName() const
const std::string & group() const
void print(std::ostream &) const
oops::Variables toOopsVariables() const
const std::vector< int > & channels() const
std::vector< int > channels_
Variable operator[](const size_t) const
void splitVarGroup(const std::string &vargrp, std::string &var, std::string &grp)