ROMS-JEDI Implementation
From WikiROMS
Jump to navigationJump to search
ROMS-JEDI Implementation
| ROMS-JEDI Menu |
|---|
| 1. Introduction |
| 2. Compiling |
| 3. Implementation |
| 4. Observations |
| 5. Unit Test Cases |
Most modern geophysical models can be connected to the JEDI framework, provided that the following predefined abstract C++/Fortran classes or building blocks are coded:
| CLASS | Description |
|---|---|
| ErrorCovarinace | Background error covariance, training, and modeling (SABER: BUMP/NICAS) |
| Field/Fields | Elemental operators to manipulate a field or a set of fields to the model state/increment vector and metadata |
| Geometry | Application grid definition, including coordinates, metrics, parallel decomposition, and operators |
| GeometryIterator | Methods to set/get state fields over specified grid points in LETKF applications |
| Increment | Procedures to operate on the increment vector that extends/inherits from the Fields class |
| LinearModel | Initializes, run, and finalizes Tangent Linear and Adjoint model dynamical/numerical kernels |
| LinearVariableChange | Tangent/adjoint increment vector variables transformation from one field to another |
| Localization | Model Ensemble Localization (SABER: BUMP/NICAS) |
| Model | Initializes, run, and finalizes the Nonlinear model dynamical/numerical kernel |
| State | Procedures to operate on the state vector that extends/inherits from the Fields class |
| Trajectory | Methods to process the Nonlinear trajectory that linearizes the tangent linear and adjoint models |
| VariableChange | Nonlinear state vector variables transformation from one field to another |
Code Design
Below is a diagram showing the interoperability mechanism for the Geometry Class that allows Fortran to invoke C++ function and vice versa for C++ to invoke Fortran procedures.
