root / synthbench / euroben-dm / mod2ci / .svn / text-base / lpolyn.f.svn-base @ 0:839f52ef7657
History | View | Annotate | Download (1018 Bytes)
1 |
Subroutine lpolyn( n, nel, mp, indx, rowp, matvals, u, v, gamma ) |
---|---|
2 |
! ---------------------------------------------------------------------- |
3 |
! --- Left polynomial preconditioner of order 'mp'. |
4 |
! |
5 |
! ---------------------------------------------------------------------- |
6 |
Use numerics |
7 |
Use floptime |
8 |
Use mpi_module |
9 |
Implicit None |
10 |
|
11 |
Integer :: n, nel, mp |
12 |
Integer :: indx(nel), rowp(n+1) |
13 |
Real(l_) :: matvals(nel) |
14 |
Real(l_) :: u(*), v(*) |
15 |
Real(l_) :: gamma(mp+1) |
16 |
|
17 |
Real(l_) :: w(n) |
18 |
Integer :: i |
19 |
! ---------------------------------------------------------------------- |
20 |
v(lb:gub) = gamma(mp+1)*u(lb:gub) |
21 |
Do i = 1, mp |
22 |
Call spmxv( n, nel, indx, rowp, matvals, v, w ) |
23 |
v(lb:gub) = v(lb:gub) - w |
24 |
v(lb:gub) = v(lb:gub) + gamma(mp-i+1)*u(lb:gub) |
25 |
End Do |
26 |
flops = flops + n*( 1 + 3*mp ) |
27 |
! ---------------------------------------------------------------------- |
28 |
End Subroutine lpolyn |