root / synthbench / euroben-dm / mod2g / anhr2d.f @ 0:839f52ef7657
History | View | Annotate | Download (1.3 kB)
1 |
Subroutine anhr2d( a1, a2, w1, w2, n1, n2, vsize, hsize, ctime ) |
---|---|
2 |
! --------------------------------------------------------------------- |
3 |
! --- Does the 2-D Haar Wavelet analysis by 2 sequences of 1-D |
4 |
! transforms. In between a global transpose is done. 'a1' |
5 |
! is the input array, 'a2' contains the output array. 'w1' and |
6 |
! 'w2' are work arrays. |
7 |
! --------------------------------------------------------------------- |
8 |
Use dist_module ! Contains # of proc.s & proc. no.s |
9 |
Use numerics |
10 |
Implicit None |
11 |
Include 'mpif.h' |
12 |
|
13 |
Integer :: n1, n2, vsize, hsize |
14 |
Real(l_) :: a1(n1,hsize), a2(n2,vsize), w1(n1,hsize), |
15 |
& w2(n2,vsize) |
16 |
Real(l_) :: ctime |
17 |
|
18 |
Integer :: actsiz(0:nodes-1,2), base(0:nodes-1,2) |
19 |
Integer :: i, log2, m |
20 |
! --------------------------------------------------------------------- |
21 |
Call sizoff( n1, n2, actsiz, base ) |
22 |
m = log2( n1 ) |
23 |
Do i = 1, actsiz(me,2) |
24 |
Call analhr( a1(1,i), w1(1,i), n1, m ) |
25 |
End Do |
26 |
Call gtrans( w1, w2, n1, n2, vsize, hsize, ctime ) |
27 |
m = log2( n2 ) |
28 |
Do i = 1, actsiz(me,1) |
29 |
Call analhr( w2(1,i), a2(1,i), n2, m ) |
30 |
End Do |
31 |
! --------------------------------------------------------------------- |
32 |
End Subroutine anhr2d |