8 #ifndef OOPS_INTERFACE_OBSDATAVECTOR_H_ 
    9 #define OOPS_INTERFACE_OBSDATAVECTOR_H_ 
   18 #include "oops/util/Logger.h" 
   19 #include "oops/util/ObjectCounter.h" 
   20 #include "oops/util/Printable.h" 
   21 #include "oops/util/Timer.h" 
   28 template <
typename OBS, 
typename DATATYPE>
 
   30                                             const Variables & vars, 
const std::string name)
 
   33   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::ObsDataVector starting" << std::endl;
 
   34   util::Timer timer(
classname(), 
"ObsDataVector");
 
   36   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::ObsDataVector done" << std::endl;
 
   39 template <
typename OBS, 
typename DATATYPE>
 
   41   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::ObsDataVector starting" << std::endl;
 
   42   util::Timer timer(
classname(), 
"ObsDataVector");
 
   44   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::ObsDataVector done" << std::endl;
 
   47 template <
typename OBS, 
typename DATATYPE>
 
   49   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::ObsDataVector starting" << std::endl;
 
   50   util::Timer timer(
classname(), 
"ObsDataVector");
 
   52   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::ObsDataVector done" << std::endl;
 
   55 template <
typename OBS, 
typename DATATYPE>
 
   57   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::~ObsDataVector starting" << std::endl;
 
   58   util::Timer timer(classname(), 
"~ObsDataVector");
 
   60   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::~ObsDataVector done" << std::endl;
 
   65   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::operator= starting" << std::endl;
 
   66   util::Timer timer(classname(), 
"operator=");
 
   68   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::operator= done" << std::endl;
 
   72 template <
typename OBS, 
typename DATATYPE>
 
   74   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::zero starting" << std::endl;
 
   75   util::Timer timer(classname(), 
"zero");
 
   77   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::zero done" << std::endl;
 
   80 template <
typename OBS, 
typename DATATYPE>
 
   82   Log::trace() << 
"ObsDataVector<OBS>::mask starting" << std::endl;
 
   83   util::Timer timer(classname(), 
"mask");
 
   85   Log::trace() << 
"ObsDataVector<OBS>::mask done" << std::endl;
 
   88 template <
typename OBS, 
typename DATATYPE>
 
   90   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::print starting" << std::endl;
 
   91   util::Timer timer(classname(), 
"print");
 
   93   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::print done" << std::endl;
 
   96 template <
typename OBS, 
typename DATATYPE>
 
   98   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::read starting " << name << std::endl;
 
   99   util::Timer timer(classname(), 
"read");
 
  101   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::read done" << std::endl;
 
  104 template <
typename OBS, 
typename DATATYPE>
 
  106   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::save starting " << name << std::endl;
 
  107   util::Timer timer(classname(), 
"save");
 
  109   Log::trace() << 
"ObsDataVector<OBS, DATATYPE>::save done" << std::endl;
 
ObsDataVector is a vector templated on data type, in the observation space.
 
ObsDataVector(const ObsSpace< OBS > &os, const Variables &vars, const std::string name="")
 
ObsDataVec_ & obsdatavector()
Accessor to the data.
 
~ObsDataVector()
Destructor (defined explicitly for timing and tracing)
 
static const std::string classname()
 
std::shared_ptr< ObsDataVec_ > data_
Pointer to the ObsDataVector implementation.
 
OBS::template ObsDataVector< DATATYPE > ObsDataVec_
 
void save(const std::string &name) const
Save this ObsDataVector as group name in the ObsSpace.
 
void read(const std::string &name)
Fill ObsDataVector with data with group name from the associated ObsSpace.
 
ObsDataVector & operator=(const ObsDataVector &)
Assignment operator.
 
void print(std::ostream &) const
 
void zero()
Zero out this ObsDataVector.
 
void mask(const ObsDataVector< OBS, int > &qc)
 
ObsSpace_ & obsspace() const
Interfacing.
 
ObsVector class used in oops; subclass of interface class interface::ObsVector.
 
ObsVector_ & obsvector()
Accessor.
 
The namespace for the main oops code.