Statistics
| Branch: | Revision:

root / synthbench / euroben-dm / mod2g / btrans.f @ 0:839f52ef7657

History | View | Annotate | Download (974 Bytes)

1
      Subroutine btrans (a, n1, n2, sizes, t)
2
! -------------------------------------------------------------
3
! --- 'btrans' performs a blockwise local transposition. Input
4
!     array is 'a', output array is 't'
5
! -------------------------------------------------------------
6
      Use         numerics
7
      Use         dist_module ! Contains #procs and no.s
8
      Implicit    None
9

    
10
      Integer  :: n1, n2, sizes(0:nodes-1,2)
11
      Real(l_) :: a(n1*n2), t(n1*n2)
12

    
13
      Integer  :: m1, m2, b1, b2, i, j, k, l
14
! -------------------------------------------------------------
15
      b1 = 0; l = 1; m2 = sizes(me,1)
16
      Do k = 0, nodes - 1
17
         m1 = sizes(k,2)
18
         b2 = 0
19
         Do i = 1, m2
20
            Do j = 1, m1
21
               t(j+b1+b2) = a(l)
22
               l = l + 1
23
            End Do
24
            b2 = b2 + n2
25
         End Do
26
         b1 = b1 + m1
27
      End Do
28
! -------------------------------------------------------------
29
      End Subroutine btrans