Skip to content

BUG: extraConvection in ATC missing a multiplication with ATClimiter

Vaggelis Papoutsis requested to merge fix-ATC-extraConvection into master

Resolved bugs (If applicable)

The bug is described in #2687 (closed)

In the 'standard' and 'UaGradU' options for the ATC term of the adjoint equations, there is an option to add 'aritificial dissipation', by adding and subtracting a multiple of the adjoint convection term with different discretizations. The implicit part was not multiplied with the ATClimiter whereas the explicit one was, leading to mismatched contributions in the areas affected by the ATClimiter, which could affect the sensitivity derivatives.

This can be replicated using the sbend tutorial under


In the figures that follow, 'n' stands for nMask and 'e' for extraConvection in the setup of the ATC model. As 'n' increases, the sensitivity map should tend towards that of canceling the ATC everywhere. With the previous code behavior, this was not the case when n \neq 0, e \ne 0 (figure at the bottom left). The expected behavior is retrieved with the current fix (figure at the bottom right).


Merge request reports