New URL for NEMO forge!   http://forge.nemo-ocean.eu

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.
WorkingGroups/TAM/ReferenceManual/CodingNorm – NEMO
wiki:WorkingGroups/TAM/ReferenceManual/CodingNorm

Version 2 (modified by avidard, 15 years ago) (diff)

--

Status of the NEMOTAM development is available at http://www.cerfacs.fr/globc/nemovar/index.php/Hand_Coding Developers can choose one of the modules marked as "to do" and start coding it (do not forget to change its status to avoid duplicate).

The NEMOTAM modules should follow the NEMO and NEMOVAR convention.

However additional rules hes to be followed:

  • For a given direct module mod.F90 (that contains the subroutine sub), a corresponding module mod_tam.F90 has to be created and it should contain the tangent linear subroutine called sub_tan, the adjoint subroutine sub_adj and the corresponding testing routine sub_adj_tst.
  • For a given active direct variable var, the corresponding tangent linear and adjoint variable should be named var_tl and var_ad respectively. The underscore is omitted for local active variable. To summarize, active variables un, pun and zun will give un_tl, pun_tl and zuntl in the tangent module
  • For historical reasons, some modules do not follow these rules, feel free to update them.

If the TAM module is a direct translation of the corresponding OPATAM routine, a good practice is to account for it in the first line of the history (i.e. stating that the 8.2 version was done by e.g. Huey, Dewey, and Louie)