NAME

solver_prec - iteratively solve preconditioned system of equation


SYNOPSIS

call solver_prec(oper, solv, prec, nprec, x, dat, niter, eps, x0,nmem,nfreq,err,res,xp,nloper,xmov,rmov,wght,verb,known,wt)


INPUT PARAMETERS

REQUIRED PARAMETERS

oper - function
      operator (standard interface)
solv - step function
      step mecanism
prec - function
      preconditioning operator (standard interface)
nprec - integer
      number of output pts when prec is applied to the model
dat - real(:)
      data
niter - integer
      number of iterations

OPTIONAL PARAMETERS

x0 - real(:)
       Initial model
nmem - integer
      Change behavior after nmem itterations
      use in conjunction with nfreq and/or wght
nfreq - integer
      Restart step function every nfreq itterations
      after nmem steps
nloper - func
      Non-linear operator to use for forward operator
wght - func(res,m)
      Weighting funtion operator
verb - logical
      Wheter or not to be verbose
known - logical(:)
      Specify (.true.) model values that are knonw
wt - real(:)
      Weighting operator to apply to residuals


OUTPUT PARAMETERS

REQUIRED PARAMETERS

x - real(:)
      model

OPTIONAL PARAMETERS

err - real(niter)
      Error sum((d-d~)**2)
res - real(:)
      Final residual (size of data)
xp - real(:)
      Precondited variable
xmov - real(:,niter)
      Movie of model values as a function of iter
rmov - real(:,niter)
      Movie of data residual
mdiag - real(:)
      Diagonal of model resolution matrix (see nort)
mres - real(:,:)
      Model resolution matrix (see nort)


DESCRIPTION

Generic preconditioned solver.


COMMENTS

All operators must follow convetion

integer function (logical adj, logical add, real(:) model, real(:) data)

All solv routines must follow the convention

integer function(logical forget,real(:) x,real(:) g, real(:) rr,real(:) gg)


SEE ALSO

the solver manpage,the solver_prec manpage,the nonlin_solver manpage,the lsqr manpage


LIBRARY

geef90