Bonjour, j'aimerais utiliser le programme suivant pour calculer la FFT 2d ( trouvé sur https://wiki.oulu.fi/download/attach...0154000&api=v2, qui me semble très bien fait et clair, il utilise la FFT 1d ). Cependant, je n'arrive pas à le compiler, j'ai bien vérifié le code et tout me semble correct ( ici je le teste avec un exemple très simple d'une matrice remplie de 1 de taille 10x10):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 program fft2
 implicit none
 integer, parameter :: N=10,M=10,S=1
 integer :: i,j
 complex, dimension(n1,n2) :: A
 
 do i=1,M
 do j=1,N
 A(i,j)=1.
 end do 
 end do
 
 call ft2d(N,M,A,S)
 
 
 
  subroutine ft2d(n1,n2,cp,isig)
    implicit none
    integer :: n1,n2,isig,i1,i2
    complex :: cp(n1,n2),cw(n2)
    external fork
 
    do i2= 1,n2
      call fork(n1,cp(1,i2),isig)
    end do
 
    do i1= 1,n1
      do i2= 1,n2
        cw(i2)= cp(i1,i2)
      end do
      call fork(n2,cw,isig)
      do i2= 1,n2
        cp(i1,i2)= cw(i2)
      end do
    end do
 
    return
  end subroutine ft2d
 
 
  subroutine fork(lx,cx,isig)
 
    implicit none
    integer :: lx,isig,i,j,l,m,istep
    complex :: cx(lx),carg,cexp,cw,ctemp
    real :: pii,sc
    pii= 4.*atan(1.)
 
    j= 1
    sc= sqrt(1./lx)
    do i= 1,lx
      if(i <= j) then
        ctemp= cx(j)*sc
        cx(j)= cx(i)*sc
        cx(i)= ctemp
      end if
      m= lx/2
      do while (m >= 1 .and. j > m)
        j= j-m
        m= m/2
      end do
      j= j+m
    end do
    l= 1
    do while (l < lx)
      istep= 2*l
      do m= 1,l
        carg= cmplx(0.,1.)*(pii*isig*(m-1))/l
        cw= cexp(carg)
        do i= m,lx,istep
          ctemp= cw*cx(i+l)
          cx(i+l)= cx(i)-ctemp
          cx(i)= cx(i)+ctemp
        end do
      end do
      l= istep
    end do
    return
  end subroutine fork
 
 
end program fft2
Il m'annonce que la plupart de mes variables ne sont pas déclarées et ne comprend pas les subroutines. Pourquoi?

Merci d'avance