Status of the NEMOTAM development is available in the [wiki:OPA_TAM/ReferenceManual/HandCoding Hand Coding] section. 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) [[Color( white , red, Should we add )]]: * usage of USE in TAM: it is preferred to use ONLY statement to have a more readable code. == Module Structure == We remind here the basic structure of a TAM module. For most of the OPA modules we have: {{{ Module * subroutine1 * subroutine2 * ... * subroutine_init/ctl }}} It would correspond to the following layout in OPA_TAM: {{{ Module_tam * subroutine1_tan * subroutine2_tan * ... * subroutine1_adj * subroutine2_adj * ... * subroutine_tam_init/ctl * ... * subroutine_adj_tst1 * subroutine_adj_tst2 * ... }}}