8 #ifndef UFO_UTILS_METOFFICE_METOFFICEBMATRIXSTATIC_H_
9 #define UFO_UTILS_METOFFICE_METOFFICEBMATRIXSTATIC_H_
11 #include <Eigen/Dense>
17 #include "oops/base/Variables.h"
18 #include "oops/util/ObjectCounter.h"
19 #include "oops/util/Printable.h"
36 private util::ObjectCounter<MetOfficeBMatrixStatic> {
38 static const std::string
classname() {
return "ufo::MetOfficeBMatrixStatic";}
44 void multiply(
const float,
const Eigen::MatrixXf &, Eigen::MatrixXf &)
const;
47 void print(std::ostream &)
const override;
static const std::string classname()
std::vector< float > southlimits_
size_t getsize(void) const
Return bmatrix size (number of rows or columns of square matrix)
void print(std::ostream &) const override
Print.
size_t getindex(const float) const
Find bmatrix band index for a given latitude.
std::vector< Eigen::MatrixXf > elements_
void multiply(const float, const Eigen::MatrixXf &, Eigen::MatrixXf &) const
Multiply input matrix by bmatrix array based on latitude.
F90obfilter keyMetOfficeBMatrixStatic_
std::vector< float > northlimits_
MetOfficeBMatrixStatic(const eckit::Configuration &)
Constructor.