Code: Select all
!
! Compute new direction, d(k+1).
!
CALL new_direction (ng, tile, model, &
...
Code: Select all
CALL lanczos (ng, tile, model, &
Code: Select all
d_zeta(i,j)=ad_zeta(i,j,Lnew)
d_zeta(i,j)=d_zeta(i,j)*rmask(i,j)
Is this really correct?
Shouldn't the new search direction contain a contribution from the H-projection of the current gradient onto the previous search direction?
Or something like that, i.e. the contribution containing what is usually referred to as the 'beta' factor in CG algorithms.
I have not fully understood the code, but this looks strange, because it looks like steepest descent rather than conjugate gradient.