Statistics
| Branch: | Revision:

root / synthbench / euroben-ports / base / Fortran-MPI / 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