9 #include "oops/util/Logger.h"
16 nbands_(0), nelements_(0), southlimits_(), northlimits_(), elements_()
18 oops::Log::trace() <<
"MetOfficeBMatrixStatic constructor starting" << std::endl;
27 std::vector<float> Btotal(ntotal);
33 for (
size_t i = 0; i <
nbands_; ++i) {
42 oops::Log::trace() <<
"MetOfficeBMatrixStatic constructor end" << std::endl;
58 const Eigen::MatrixXf & in,
59 Eigen::MatrixXf & out)
const {
67 os <<
"MetOfficeBMatrixStatic: start print" << std::endl;
68 os <<
"nbands_ = " <<
nbands_ << std::endl;
69 os <<
"nelements_ = " <<
nelements_ << std::endl;
70 os <<
"southlimits_[0] = " <<
southlimits_[0] << std::endl;
71 os <<
"northlimits_[0] = " <<
northlimits_[0] << std::endl;
72 os <<
"MetOfficeBMatrixStatic: end print" << std::endl;
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.
float distance(const Point &a, const Point &b)
Returns the distance between the two cartesian-mapped Point arguments
void ufo_metoffice_bmatrixstatic_getelements_f90(F90obfilter &, const size_t &, const size_t &, float *, float *, float *)
void ufo_metoffice_bmatrixstatic_setup_f90(F90obfilter &, const eckit::Configuration &, size_t &, size_t &)
Interface to Fortran routines.
void ufo_metoffice_bmatrixstatic_delete_f90(F90obfilter &)