Statistics
| Branch: | Revision:

root / synthbench / euroben-dm / mod2g / .svn / text-base / synhr2d.f.svn-base @ 0:839f52ef7657

History | View | Annotate | Download (1.3 kB)

1 0:839f52ef7657 louridas
      Subroutine synhr2d( a1, a2, w1, w2, n1, n2, vsize, hsize, ctime )
2 0:839f52ef7657 louridas
! ---------------------------------------------------------------------
3 0:839f52ef7657 louridas
! --- 'synhr2d' does a 2-D Haar wavelet synthesis by means of 2
4 0:839f52ef7657 louridas
!     sequences of 1-D syntheses. In between a global transpose must
5 0:839f52ef7657 louridas
!     be done by 'gtrans'. Input array is 'a2'; output array is 'a1'.
6 0:839f52ef7657 louridas
!     'w1' and 'w2' are output arrays.
7 0:839f52ef7657 louridas
! ---------------------------------------------------------------------
8 0:839f52ef7657 louridas
      Use         numerics
9 0:839f52ef7657 louridas
      Use         dist_module ! Contains # of proc.s & proc. numbers.
10 0:839f52ef7657 louridas
      Implicit    None
11 0:839f52ef7657 louridas
      Include     'mpif.h'
12 0:839f52ef7657 louridas
13 0:839f52ef7657 louridas
      Integer  :: n1, n2, vsize, hsize
14 0:839f52ef7657 louridas
      Real(l_) :: a1(n1,hsize), a2(n2,vsize), w1(n1,hsize),
15 0:839f52ef7657 louridas
     &            w2(n2,vsize)
16 0:839f52ef7657 louridas
      Real(l_) :: ctime
17 0:839f52ef7657 louridas
18 0:839f52ef7657 louridas
      Integer  :: i, log2, m
19 0:839f52ef7657 louridas
      Integer  :: actsiz(0:nodes-1,2), base(0:nodes-1,2)
20 0:839f52ef7657 louridas
! ---------------------------------------------------------------------
21 0:839f52ef7657 louridas
      Call sizoff( n2, n1, actsiz, base )
22 0:839f52ef7657 louridas
      m  = log2( n2 )
23 0:839f52ef7657 louridas
      Do i = 1, actsiz(me,2)
24 0:839f52ef7657 louridas
         Call synthr( a2(1,i), w2(1,i), n2, m )
25 0:839f52ef7657 louridas
      End Do
26 0:839f52ef7657 louridas
      Call gtrans( w2, w1, n2, n1, hsize, vsize, ctime )
27 0:839f52ef7657 louridas
      m  = log2( n1 )
28 0:839f52ef7657 louridas
      Do i = 1, actsiz(me,1)
29 0:839f52ef7657 louridas
         Call synthr( w1(1,i), a1(1,i), n1, m )
30 0:839f52ef7657 louridas
      End Do
31 0:839f52ef7657 louridas
! ---------------------------------------------------------------------
32 0:839f52ef7657 louridas
      End Subroutine synhr2d