New URL for NEMO forge!

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
#1468 (Observation operator simplification) – NEMO

Opened 9 years ago

Closed 7 years ago

#1468 closed Task (fixed)

Observation operator simplification

Reported by: mattmartin Owned by: mattmartin
Priority: low Milestone: 2015 simplification
Component: OCE Version: trunk
Severity: Keywords: OBS
Cc: bouttier, haozuo


To simplify the observation operator code and namelist in NEMO to make it easier to use and to develop. Top level parts of the OBS code will be re-written. Lower level routines will remain as they are for the time being unless obvious changes can be made to simplify the code. Input formats will be restricted to the fdbk format (tools are provided to convert from some standard formats to the fdbk format). The namelist will be simplified and obsolete options removed.

Commit History (0)

(No commits)

Attachments (1)

OBSOper_Reorganisation_Jan2015.docx (22.8 KB) - added by mattmartin 9 years ago.
Proposal for obs operator simplification

Download all attachments as: .zip

Change History (6)

Changed 9 years ago by mattmartin

Proposal for obs operator simplification

comment:1 Changed 9 years ago by mattmartin

The work on simplifying the obs operator code has been done in the branch:

The main changes implemented are:

  • removed options in code and namelist for reading formats other than fdbk format.
  • combined reading routines for profile types (T/S and velocity) and combined routines for surface types (SST, SLA, SIC).
  • combined routines for doing the obs operator on each time-step for all profile types, and similarly for all surface types
  • combined writing routines for profile types, and combined writing routines for surface types.
  • changed dia_obs_init to first set up the profile types which should be read in, then loop over profile types and call a generic reading routine and generic preparation routine. Similarly for surface types.
  • changed dia_obs to loop over profile types and call generic profile obs operator routines. Similarly for surface types.
  • made changes to namelist variables so that they comply with the NEMO coding standards
  • removed key_diaobs and replaced it with namelist logical ln_diaobs
  • changed namelist_ref and so that the ORCA2_LIM_OBS tests of SETTE will work with the new code.

Runs of the ORCA2_LIM_OBS SETTE tests have been done with the trunk version, and with this branch, and the obs-minus-model statistics at the bottom of the ocean.output file are exactly the same in both. The output feedback files have also been plotted and look the same.

comment:2 Changed 9 years ago by mattmartin

The existing SETTE tests only check that T/S profiles, SST and SLA data work. Additional tests have been carried out with the velocity and sea-ice concentration data to ensure that they also work as expected. This has been done by generating input feedback files for these data types using the fbgenerate utility in the OBSTOOLS directory, editing the namelist to switch these types on, and checking the output files and statistics look sensible. It is planned to include these types in the OBS SETTE tests in the trunk so the central data-set for the SETTE testing will need upgrading with these new feedback files.

The utilities for converting existing data formats (e.g. EN4, Aviso) into feedback file format have been retained by copying the reading routines from the OBS directory into the OBSTOOLS directory. These utilities compile as before and the EN4 conversion has been checked to make sure that it is possible for users to still use these data easily.

The NEMO book has been updated to make sure that the OBS part is consistent with the changes which have been made.

A review ticket has been created at

comment:3 Changed 9 years ago by mattmartin

A summary ticket has been created at

comment:4 Changed 9 years ago by mattmartin

Overall, the changes have resulted in a reduction of ~4,600 lines of code (27%) in the OBS directory.

comment:5 Changed 7 years ago by timgraham

  • Resolution set to fixed
  • Status changed from new to closed

This was committed to the trunk at 2015 merge party

Note: See TracTickets for help on using tickets.