ROMS-JEDI Implementation: Difference between revisions
From WikiROMS
Jump to navigationJump to search
Created page with "<div class="title">ROMS-JEDI Implementation</div> Most modern geophysical models can be connected to the '''JEDI''' framework, provided that the following predefined abstract..." (change visibility) |
No edit summary (change visibility) |
||
| Line 1: | Line 1: | ||
<div class="title">ROMS-JEDI Implementation</div> | <div class="title">ROMS-JEDI Implementation</div> | ||
<!-- Edit Template:ROMS-JEDI_TOC to modify this Table of Contents--> | |||
<div style="float: left;margin: 0 20px 0 0;">{{ROMS-JEDI_TOC}}</div> | |||
<div style="clear: both"></div> | |||
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: | 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: | ||
Latest revision as of 20:19, 30 August 2023
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.
