Go to the documentation of this file.
12 #include "atlas/field.h"
13 #include "atlas/functionspace.h"
14 #include "atlas/grid.h"
15 #include "atlas/util/Config.h"
17 #include "eckit/config/Configuration.h"
19 #include "oops/util/abor1_cpp.h"
20 #include "oops/util/Logger.h"
33 const eckit::mpi::Comm & comm) : comm_(comm), fieldsMeta_(conf) {
34 const eckit::Configuration * configc = &conf;
37 static bool initialized =
false;
43 oops::Log::debug() <<
"FMS MPP initialized on " <<
comm_.name() << std::endl;
47 if ( !conf.has(
"nml_file") ) {
77 for (
int jfield = 0; jfield < other.
atlasFieldSet_->size(); ++jfield) {
93 int ist, iend, jst, jend, npz;
114 int ist, iend, jst, jend, npz;
116 std::vector<double> vc(npz);
117 double psurf = 100000.0;
118 if (vcUnits ==
"logp") {
120 }
else if (vcUnits ==
"levels") {
121 for (
int i=0; i < npz; ++i) {vc[i]=i+1;}
123 std::stringstream errorMsg;
124 errorMsg <<
"Uknown vertical coordinate unit " << vcUnits << std::endl;
125 ABORT(errorMsg.str());
127 oops::Log::debug() <<
"fv3 vert coord: " << vc << std::endl;
136 os <<
"fv3jedi::Geometry resolution: c" << cube;
void print(std::ostream &) const
const FieldsMetadata fieldsMeta_
void fv3jedi_geom_set_atlas_lonlat_f90(const F90geom &, atlas::field::FieldSetImpl *)
GeometryIterator end() const
void fv3jedi_geom_clone_f90(F90geom &, const F90geom &, const FieldsMetadata *)
GeometryIterator begin() const
void fv3jedi_geom_initialize_f90(const eckit::Configuration *const *, const eckit::mpi::Comm *)
std::unique_ptr< atlas::FieldSet > atlasFieldSet_
const eckit::mpi::Comm & comm_
Geometry handles geometry for FV3JEDI model.
void fv3jedi_geom_verticalCoord_f90(const F90geom &, double &, int &, double &)
Geometry(const eckit::Configuration &, const eckit::mpi::Comm &)
void stageFMSFiles(const eckit::Configuration &conf, const eckit::mpi::Comm &comm)
void fv3jedi_geom_setup_f90(F90geom &, const eckit::Configuration *const *, const eckit::mpi::Comm *, const FieldsMetadata *)
void fv3jedi_geom_start_end_f90(const F90geom &, int &, int &, int &, int &, int &)
void stageFv3Files(const eckit::Configuration &conf, const eckit::mpi::Comm &comm)
std::vector< double > verticalCoord(std::string &) const
void fv3jedi_geom_delete_f90(F90geom &)
void fv3jedi_geom_set_atlas_functionspace_pointer_f90(const F90geom &, atlas::functionspace::FunctionSpaceImpl *)
Configuration files should be formatted as e.g.
void fv3jedi_geom_fill_atlas_fieldset_f90(const F90geom &, atlas::field::FieldSetImpl *)
void generateGeomFv3Conf(const eckit::Configuration &conf, const eckit::mpi::Comm &comm)
std::unique_ptr< atlas::functionspace::PointCloud > atlasFunctionSpace_
void removeFv3Files(const eckit::mpi::Comm &comm)
void fv3jedi_geom_print_f90(const F90geom &, int &)