331 parameter(locrb=1, locib=11)
333 DOUBLE PRECISION err, tol
334 INTEGER ierr, isym, iter, itmax, itol, iunit, leniw, lenw, n,
337 DOUBLE PRECISION a(nelt), b(n), rwork(lenw), x(n)
338 INTEGER ia(nelt), iwork(leniw), ja(nelt)
340 INTEGER icol, j, jbgn, jend, locdin, locigw, locil, lociu, lociw,
341 + locjl, locju, locl, locnc, locnr, locrgw, locu, locw,
349 IF( nsave.LE.1 )
THEN 355 CALL ds2y( n, nelt, ia, ja, a, isym )
365 IF( jbgn.LE.jend )
THEN 368 IF( ia(j).GT.icol )
THEN 370 IF( isym.NE.0 ) nu = nu + 1
391 locw = locrgw + 1+n*(nsave+6)+nsave*(nsave+3)
394 CALL dchkw(
'DSLUGM', lociw, leniw, locw, lenw, ierr, iter, err )
395 IF( ierr.NE.0 )
RETURN 408 CALL dsilus( n, nelt, ia, ja, a, isym, nl, iwork(locil),
409 $ iwork(locjl), rwork(locl), rwork(locdin), nu, iwork(lociu),
410 $ iwork(locju), rwork(locu), iwork(locnr), iwork(locnc) )
416 iwork(locigw ) = nsave
417 iwork(locigw+1) = nsave
420 iwork(locigw+4) = itmax/nsave
423 CALL dgmres( n, b, x, nelt, ia, ja, a, isym,
dsmv,
dslui,
424 $ myitol, tol, itmax, iter, err, ierr, iunit, rwork, rwork,
425 $ rwork(locrgw), lenw-locrgw, iwork(locigw), 20,
428 IF( iter.GT.itmax ) ierr = 2
subroutine ds2y(N, NELT, IA, JA, A, ISYM)
Definition: dslugm.f:1025
subroutine dslui(N, B, X, NELT, IA, JA, A, ISYM, RWORK, IWORK)
Definition: dslugm.f:434
subroutine dchkw(NAME, LOCIW, LENIW, LOCW, LENW, IERR, ITER, ERR)
Definition: dslugm.f:913
subroutine dsmv(N, X, Y, NELT, IA, JA, A, ISYM)
Definition: dslugm.f:727
subroutine dgmres(N, B, X, NELT, IA, JA, A, ISYM, MATVEC, MSOLVE, ITOL, TOL, ITMAX, ITER, ERR, IERR, IUNIT, SB, SX, RGWK, LRGW, IGWK, LIGW, RWORK, IWORK)
Definition: dgmres.f:8
subroutine dsilus(N, NELT, IA, JA, A, ISYM, NL, IL, JL, L, DINV, NU, IU, JU, U, NROW, NCOL)
Definition: dslugm.f:1235