The main idea is to create a work plan that follows the main Agile recommendations. Among those, we aim for code that will be working at all times and we prefer to break the plan in more smaller units of work that can be tackeled independently rather than fewer large units of work.

Where we are

At the moment, interpolations to observations locations are perfomed within the observation related parts of GSI (int* and step* routines).

Where we want to go

Use generic interpolations that isolate observation related codes from model data structures.

Proposed steps

Step 1: Test ESMF interpolations from FV3 grid to LocationsStream

Task 1.1: Test ESMF interpolations from FV3 native grid to LocationStream in simple case

Task 1.2: Write code to extract locations from observation netcdf file into a locationStream

Task 1.3: Test for different observations distributions

Task 1.4: Evaluate scalability of interpolation methods

Description of the work: Testing happens outside of GSI in stand alone program. Code for reading of FV3 fields will be taken from FV3 model.

What it gives us: Understanding of ESMF capability and evaluation for UFO purposes.

Step 2: Data structures to interface interpolations with GSI

Task 2.1: Define data structures for locations (input to interpolations)

Task 2.2: Define data structures for variables (input to interpolations)

Task 2.3: Define data structures for interpolated model values (output from interpolations)

Description of the work: This step happens inside the GSI and UFO. Data structures in GSI and ESMF are not the same so this task is for creating structures for communicating between the ESMF and GSI worlds, both for inputs and outputs of the interpolations. The output of the interpolations will be the input for the refactored observation operators so there will be communication between the groups. Implementation of locations class for simple cases (point measurement, vertical profile) is done in task 2.1, implementation of complex locations sub-classes (slanted profiles, GPSRO path...) will continue in step 3.

What it gives us: Ability to test UFO for some observations and interfaces so that work can continue in parallel on both sides of the interfaces.

Step 3: Data structures for complex cases

Task 3.1: Implement data structures for complex locations (slanted profiles, GPSRO path...)

Description of the work: This is the continuation of task 2.1

What it gives us: Full capability to use interpolations for all atmospheric observations.

Step 4: Data structures for Earth system

Task 4.1: Implement data structures for ocean system

Task 4.2: Implement data structures for sea-ice system

Task 4.3: Implement data structures for land surface system

Description of the work: This is the generalisation of task 2 for the Earth system.

What it gives us: Full capability to use interpolations for Earth system observations.

Comments

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

  • No labels