Where we are

The JEDI abstract layer does not exist. The experience, design and possibly code gained in the OOPS project are available.

Where we want to go

Implement an generic unified DA system that can be used for operations and research, and for all components of the Earth system including coupled.

Proposed steps

Step 1: Get started

Task 1.1: Create Fortran target interfaces for GSI refactoring work to start immediately, using OOPS C++/Fortran interfaces as a first guess

What it gives us: Ability to start work on lower level Fortran code even if minor adjustments are needed later. Not all but most of the interfaces are fairly straightforward and will not be affected even if the high level design is different.

Step 2: Learn from existing solutions

Task 2.1: Organise Object-Oriented for DA training sessions based on OOPS

Task 2.2: Implement prototype Python layer above OOPS

What it gives us: Ability to discuss JEDI design based on knowledge and initial experience with an actual object oriented DA system. Ability to discuss Python vs C++ choice based on actual code and experience. It is better to implement a layer above OOPS than to re-write part of OOPS because we gain functionality from the start and can very quickly deliver working code with enough functionality to be used.

Step 3: Design JEDI

Task 3.1: Discuss and decide where boundaries between generic and specific code should be

Task 3.2: Discuss and decide where each programming language should be used

What it gives us: Detailed plan for step 4.

Step 4: Implement JEDI

Task 4.1: TBD

Description of the work

What it gives us: JEDI

Comments

Throughout the work, targets for the next steps will be identified and discussed within the team.

  • No labels