259       DOUBLE PRECISION err, tol
   260       INTEGER ierr, isym, iter, itmax, itol, iunit, n, nelt
   262       DOUBLE PRECISION a(nelt), b(n), dz(n), r(n), rwork(*), x(n), z(n)
   263       INTEGER ia(nelt), iwork(*), ja(nelt)
   267       DOUBLE PRECISION bnrm, solnrm, tolmin
   284       IF( tol.LT.tolmin ) 
THEN   291       CALL matvec(n, x, r, nelt, ia, ja, a, isym)
   295       CALL msolve(n, r, z, nelt, ia, ja, a, isym, rwork, iwork)
   297       IF( 
isdir(n, b, x, nelt, ia, ja, a, isym, 
msolve, itol, tol,
   298      $     itmax, iter, err, ierr, iunit, r, z, dz, rwork,
   299      $     iwork, bnrm, solnrm) .NE. 0 ) 
GO TO 200
   300       IF( ierr.NE.0 ) 
RETURN   312          CALL matvec(n, x, r, nelt, ia, ja, a, isym)
   316          CALL msolve(n, r, z, nelt, ia, ja, a, isym, rwork, iwork)
   319          IF( 
isdir(n, b, x, nelt, ia, ja, a, isym, 
msolve, itol, tol,
   320      $        itmax, iter, err, ierr, iunit, r, z, dz, rwork,
   321      $        iwork, bnrm, solnrm) .NE. 0 ) 
GO TO 200
 subroutine matvec(n, x, y, nelt, ia, ja, a, isym)
Definition: matvec.f:27
 
double precision function d1mach(I)
Definition: ddeabm.f:2012
 
integer function isdir(N, B, X, NELT, IA, JA, A, ISYM, MSOLVE, ITOL, TOL, ITMAX, ITER, ERR, IERR, IUNIT, R, Z, DZ, RWORK, IWORK, BNRM, SOLNRM)
Definition: dir.f:337
 
subroutine msolve(n, r, z, nelt, ia, ja, a, isym, rwork, iwork)
Definition: msolve.f:22