My problem then lies with the adjoint calculations, for which MPDATA routines are not yet coded. As I think about this more, I wonder if it is even possible to code an adjoint algorithm for a predictor-corrector tracer advection scheme like MPDATA? For example, how would we know the error of the first-pass a priori, if the adjoint requires calculating the anti-diffusive velocities first?
I noticed a track ticket posted a LONG time ago that referred to the difficulty of this calculation (https://www.myroms.org/projects/src/ticket/74), but haven't found any further discussion since. In this ticket, it is said:
Have there been any advances in ways to try to code the adjoint for MPDATA-type advection? It seems that the MPDATA code has been pretty extensively used since this 6-yr old post. If not, are there any thoughts on what the next best method would be to try to reduce the overshoots with the adjoint calculation?The tangent linear and adjoint linearization of the MPDATA algorithm is not trivial. MPDATA, as implemented, is highly nonlinear and we don't know if the tangent linear approximation will hold. The adjoint is a sensitivity operator and it is likely that the TLM, RPM, and ADM will go unstable
Thanks,
Austin