Version 7 (modified by cdlod, 10 years ago) (diff)

Source code organization

Previous NEMOVAR code organization

The current repository structure (see figure below) is divided into two main folders: nemo and nemovar. The source code of nemovar folder is divided into two other folders: tam (for tangent and adjoint module) and inner (for assimilation and test module engines). The re-organization of the code aims at achieving a mirror-like between nemo and nemovar source code. For instance, we do not realise easily that the current nemovar code is only dealing with the ocean component OPA. In addition, althought the final goal of the project is to implement 4DVar assimilation, the tangent and the adjoint modules could be used for other purposes. Thus, to prepare further development and follow the flexibility spirit of the NEMO platform, it is appropriate to separate what is specific to 4DVar assimilation from what is not.

older code structure

New NEMOVAR code organization

The project will work with two repositories (see figure below):

  • a NEMOBASE repository, with an official NEMO released version (currently the L3.0)
  • a NEMOVAR repository, with all development related to the nemovar project including new and modified files for NEMO.

The building process will link both repositories, if any redundancy is found NEMOVAR files will overwrite NEMOBASE files in the build folder.

two repositories structure

The NEMOBASE repository (see below) is similar to the nemo folder from the former repository.

nemobase code structure

The NEMOVAR repository (see figure below) is subdivided into 6 components: NEMO, NEMOQC, NEMO- TAM, NEMOASSIM. UTIL and TOOL. The NEMOTAM folder is a mimic of the NEMO folder (means we have an OPATAM_SRC forlder subdivided into components as ASM, DOM, DYN, LDF, TRA, …). This organization gives a clear snapshot of what is being developped and lets some room for further development.

nemovar code structure

Attachments (5)

Download all attachments as: .zip