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 |