8 #ifndef OOPS_GENERIC_LOCALIZATIONBUMP_H_ 9 #define OOPS_GENERIC_LOCALIZATIONBUMP_H_ 15 #include <boost/scoped_ptr.hpp> 17 #include "eckit/config/Configuration.h" 24 #include "oops/util/DateTime.h" 25 #include "oops/util/Duration.h" 26 #include "oops/util/Logger.h" 37 template<
typename MODEL>
41 typedef typename MODEL::State
State_;
53 void print(std::ostream &)
const;
61 template<
typename MODEL>
63 const eckit::Configuration &
conf)
64 : colocated_(1), keyBUMP_(0)
66 const eckit::Configuration * fconf = &
conf;
69 const eckit::LocalConfiguration varConfig(
conf,
"variables");
73 const util::DateTime
date(
conf.getString(
"date"));
83 int new_hdiag =
conf.getInt(
"new_hdiag");
87 ens1_ne = ens_ptr->size();
98 const double rk = sqrt((static_cast<double>(ens1_ne) - 1.0));
99 for (
int ie = 0;
ie < ens1_ne; ++
ie) {
100 Log::info() <<
"Copy ensemble member " <<
ie+1 <<
" / " 101 << ens1_ne <<
" to BUMP" << std::endl;
104 dx =(*ens_ptr)[
ie].increment();
120 std::ifstream infile(
"bump.test");
122 while (std::getline(infile, line))
Log::test() << line << std::endl;
125 Log::trace() <<
"LocalizationBUMP:LocalizationBUMP constructed" << std::endl;
130 template<
typename MODEL>
133 Log::trace() <<
"LocalizationBUMP:~LocalizationBUMP destructed" << std::endl;
138 template<
typename MODEL>
140 Log::trace() <<
"LocalizationBUMP:multiply starting" << std::endl;
142 dx.field_to_ug(ug, colocated_);
144 dx.field_from_ug(ug);
145 Log::trace() <<
"LocalizationBUMP:multiply done" << std::endl;
150 template<
typename MODEL>
152 os <<
"LocalizationBUMP<MODEL>::print not implemeted yet";
159 #endif // OOPS_GENERIC_LOCALIZATIONBUMP_H_
void delete_oobump_f90(const int &)
boost::shared_ptr< StateEnsemble< MODEL > > EnsemblePtr_
MODEL::Increment Increment_
void multiply(Increment_ &) const
static EnsemblesCollection< MODEL > & getInstance()
LocalizationBUMP(const Geometry_ &, const eckit::Configuration &)
The namespace for the main oops code.
void create_oobump_f90(int &, const int &, const eckit::Configuration *const *, const int &, const int &, const int &, const int &)
BUMP localization matrix.
void print(std::ostream &) const
subroutine, public info(self)
EnsemblesCollection< MODEL > EnsemblesCollection_
Base class for localizations.
void multiply_oobump_nicas_f90(const int &, const int &)
void run_oobump_drivers_f90(const int &)
void add_oobump_member_f90(const int &, const int &, const int &, const int &)
MODEL::Geometry Geometry_