diff --git a/src/soca/ExplicitDiffusion/ExplicitDiffusion.cc b/src/soca/ExplicitDiffusion/ExplicitDiffusion.cc index 9365f6609..5353a37f4 100644 --- a/src/soca/ExplicitDiffusion/ExplicitDiffusion.cc +++ b/src/soca/ExplicitDiffusion/ExplicitDiffusion.cc @@ -26,7 +26,7 @@ ExplicitDiffusion::ExplicitDiffusion( const Parameters_ & params, const oops::FieldSet3D & xb, const oops::FieldSet3D & fg) - : saber::SaberCentralBlockBase(params), params_(params) + : saber::SaberCentralBlockBase(params, xb.validTime()), params_(params) { // setup geometry geom_.reset(new Geometry(params_.geometry.value(), geometryData.comm())); @@ -40,24 +40,24 @@ ExplicitDiffusion::ExplicitDiffusion( // -------------------------------------------------------------------------------------- -void ExplicitDiffusion::randomize(atlas::FieldSet &) const { +void ExplicitDiffusion::randomize(oops::FieldSet3D &) const { throw eckit::NotImplemented("read not implemented yet for ExplictDiffusion"); } // -------------------------------------------------------------------------------------- -void ExplicitDiffusion::multiply(atlas::FieldSet & fset) const { +void ExplicitDiffusion::multiply(oops::FieldSet3D & fset) const { Increment dx(*geom_, vars_, util::DateTime()); - dx.fromFieldSet(fset); + dx.fromFieldSet(fset.fieldSet()); soca_explicitdiffusion_multiply_f90(keyFortran_, dx.toFortran()); - dx.toFieldSet(fset); + dx.toFieldSet(fset.fieldSet()); } // -------------------------------------------------------------------------------------- -void ExplicitDiffusion::directCalibration(const std::vector &) { +void ExplicitDiffusion::directCalibration(const std::vector &) { eckit::LocalConfiguration conf = (*params_.calibration.value()).toConfiguration(); soca_explicitdiffusion_calibrate_f90(keyFortran_, &conf); } diff --git a/src/soca/ExplicitDiffusion/ExplicitDiffusion.h b/src/soca/ExplicitDiffusion/ExplicitDiffusion.h index 596182d83..9ab727c4b 100644 --- a/src/soca/ExplicitDiffusion/ExplicitDiffusion.h +++ b/src/soca/ExplicitDiffusion/ExplicitDiffusion.h @@ -39,10 +39,10 @@ class ExplicitDiffusion : public saber::SaberCentralBlockBase { const oops::FieldSet3D &, const oops::FieldSet3D &); - void randomize(atlas::FieldSet &) const override; - void multiply(atlas::FieldSet &) const override; + void randomize(oops::FieldSet3D &) const override; + void multiply(oops::FieldSet3D &) const override; - void directCalibration(const std::vector &) override; + void directCalibration(const std::vector &) override; void read() override; void write() const override;