root / synthbench / euroben-dm / mod2a / .svn / text-base / mkbnds.f.svn-base @ 0:839f52ef7657
History | View | Annotate | Download (1.3 kB)
1 |
Subroutine mkbnds( a, lda, ychk ) |
---|---|
2 |
! ---------------------------------------------------------------------- |
3 |
! --- mkbnds calculates the result vector of y = Ax by independent |
4 |
! means: |
5 |
! nodes sizes(k) |
6 |
! --- --- |
7 |
! \ \ |
8 |
! y(j) = > k * > a(j,i+offset(k)) |
9 |
! / / |
10 |
! --- --- |
11 |
! k = 1 i = 1 |
12 |
! |
13 |
! k = 1,..., nodes |
14 |
! i = 1,..., sizes(*), where sizes(*) is the number of rows in |
15 |
! node '*'. |
16 |
! j = 1,..., sizes(me) |
17 |
! |
18 |
! ---------------------------------------------------------------------- |
19 |
Use dist_module |
20 |
Use numerics |
21 |
Real(l_) :: a(lda,*), ychk(lda) |
22 |
|
23 |
Real(l_) :: sum |
24 |
Integer :: i, j, k, kbase |
25 |
! ---------------------------------------------------------------------- |
26 |
Do j = 1, sizes(me) |
27 |
ychk(j) = 0.0_l_ |
28 |
Do k = 1, nodes |
29 |
sum = 0.0_l_ |
30 |
kbase = offset(k-1) |
31 |
Do i = 1, sizes(k-1) |
32 |
sum = sum + a(j,kbase+i) |
33 |
End Do |
34 |
ychk(j) = ychk(j) + k*sum |
35 |
End Do |
36 |
End Do |
37 |
! ---------------------------------------------------------------------- |
38 |
End Subroutine mkbnds |