OOPS
ObsLocGC99.cc
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2020 UCAR
3
*
4
* This software is licensed under the terms of the Apache Licence Version 2.0
5
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6
*/
7
8
#include "
lorenz95/ObsLocGC99.h
"
9
10
#include "eckit/config/Configuration.h"
11
#include "eckit/exception/Exceptions.h"
12
13
#include "
lorenz95/ObsTableView.h
"
14
#include "
lorenz95/ObsVec1D.h
"
15
16
#include "
oops/generic/gc99.h
"
17
#include "
oops/interface/ObsLocalization.h
"
18
19
// -----------------------------------------------------------------------------
20
namespace
lorenz95
{
21
static
oops::ObsLocalizationMaker
<L95ObsTraits,
22
oops::ObsLocalization<L95ObsTraits, ObsLocGC99>
>
makerGC_
(
"Gaspari-Cohn"
);
23
24
// -----------------------------------------------------------------------------
25
26
ObsLocGC99::ObsLocGC99
(
const
eckit::Configuration & config,
const
ObsTableView
& obsdb)
27
: obsdb_(obsdb),
28
rscale_(config.getDouble(
"lengthscale"
))
29
{
30
}
31
32
// -----------------------------------------------------------------------------
33
34
ObsLocGC99::~ObsLocGC99
() {}
35
36
// -----------------------------------------------------------------------------
37
38
void
ObsLocGC99::multiply
(
ObsVec1D
& dy)
const
{
39
const
std::vector<double> & obsdist =
obsdb_
.
obsdist
();
40
double
gc;
41
for
(
unsigned
int
ii=0; ii < dy.
nobs
(); ++ii) {
42
gc =
oops::gc99
(obsdist[ii]/
rscale_
);
43
dy[ii] = dy[ii]*gc;
44
}
45
}
46
47
// -----------------------------------------------------------------------------
48
49
void
ObsLocGC99::print
(std::ostream & os)
const
{
50
os <<
"ObsLocGC99::print not implemented"
;
51
}
52
53
// -----------------------------------------------------------------------------
54
55
}
// namespace lorenz95
lorenz95::ObsLocGC99::~ObsLocGC99
~ObsLocGC99()
Definition:
ObsLocGC99.cc:34
ObsTableView.h
lorenz95::ObsLocGC99::rscale_
const double rscale_
Definition:
ObsLocGC99.h:40
lorenz95::ObsVec1D::nobs
unsigned int nobs() const
Definition:
ObsVec1D.cc:159
lorenz95::ObsTableView::obsdist
const std::vector< double > & obsdist() const
Definition:
ObsTableView.h:69
lorenz95::ObsLocGC99::obsdb_
const ObsTableView & obsdb_
Definition:
ObsLocGC99.h:39
lorenz95::makerGC_
static oops::ObsLocalizationMaker< L95ObsTraits, oops::ObsLocalization< L95ObsTraits, ObsLocGC99 > > makerGC_("Gaspari-Cohn")
lorenz95::ObsLocGC99::multiply
void multiply(ObsVec1D &) const
Definition:
ObsLocGC99.cc:38
oops::gc99
double gc99(const double &distnorm)
Definition:
oops/generic/gc99.cc:15
lorenz95::ObsVec1D
Vector in observation space.
Definition:
ObsVec1D.h:34
oops::ObsLocalization
Definition:
ObsLocalization.h:25
lorenz95::ObsLocGC99::ObsLocGC99
ObsLocGC99(const eckit::Configuration &, const ObsTableView &)
Definition:
ObsLocGC99.cc:26
ObsVec1D.h
ObsLocGC99.h
lorenz95::ObsLocGC99::print
void print(std::ostream &) const
Definition:
ObsLocGC99.cc:49
gc99.h
ObsLocalization.h
lorenz95::ObsTableView
A Simple Observation Data Handler.
Definition:
ObsTableView.h:38
oops::ObsLocalizationMaker
Definition:
ObsLocalizationBase.h:61
lorenz95
The namespace for the L95 model.
Definition:
l95/src/lorenz95/AnalyticInit.cc:17
fv3-bundle
oops
l95
src
lorenz95
ObsLocGC99.cc
Generated on Sun Oct 25 2020 12:42:58 for OOPS by
1.8.18