NAME

solver - solve system of equation


SYNOPSIS

call solver(oper, solv, x, dat, niter, eps,x0,nmem,nfreq, err,res,nloper,xmov,rmov,nort,mres,mdiag,wght,verb,known,wt)


INPUT PARAMETERS

REQUIRED PARAMETERS

oper - function
      operator (standard interface)
solv - step
      step mecanism
dat - real(:)
      data
niter - integer
      number of iterations

OPTIONAL PARAMETERS

x0 -
       C<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
nort - integer
      Number of steps to keep when doing model
      model resolution (mdiag,mres)


OUTPUT PARAMETERS

REQUIRED PARAMETERS

x - real(:)
      model

OPTIONAL PARAMETERS

err - real(niter)
      Error sum((d-d~)**2)
res - real(:)
      Final residual (size of data)
xmov - real(:,niter) !1$ Movie of model values as a function of iter
rmov - real(:,niter)
      Movie of data residual


DESCRIPTION

Generic 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_reg manpage,the solver_prec manpage,the nonlin_solver manpage,the lsqr manpage


LIBRARY

geef90