[MITgcm-devel] solve_tri/pentadiagonal and adjoint
Martin Losch
Martin.Losch at awi.de
Mon Oct 10 09:09:24 EDT 2011
Hi Gael (and others),
I know I am a little exotic in that I always want to have vectorizable (adjoint) code. Here's another sequel of this story:
in solve_tridiagonal and solve_pentadiagonal, you introduced code that moves the k-loop inside of the i/j-loops in the case of ALLOW_TAMC_AUTODIFF. Your check-in comment (Aug,2010) was:
Adjoint related modifications -- allowing the use of implicit vertical advection in adjoint model.
Can you remember, why this is necessary? The recomputations seem to be OK, but my experiment blows up. Where does it go wrong and maybe there is an alternative way to fix it?
Martin
PS. You can image that moving the k-loop inside the i/j-loops is terrible for performance on a vector computer, but it also makes even worse (from a vectorization point of view) adjoint code, so that effectively I cannot use the implVertAdv in adjoint mode if it only works like this.
More information about the MITgcm-devel
mailing list