Bonjour,
Je me suis remis à Fortran récemment dans le cadre de mon apprentissage et on m'a posé un problème que j'aimerais résoudre avec des outils dont je n'ai l'habitude. Malheureusement, j'ai une erreur dont je comprends pas la provenance. Le programme étant relativement court, je me permet de le mettre en entier :
J'attire votre attention sur la ligne 25 où se situe l'erreur de compilation. Voici ce qu'indique gfortran :
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 program julia implicit none integer, parameter :: r = 8, mini = -2, maxi = 2, n = 1000 complex, parameter :: c = (0,1) type :: Qc complex(kind = r) :: z integer :: k end type integer :: i, j, m, temp real(kind = r) :: pas, norme, rayon complex(kind = r) :: element type(Qc), dimension(1:n*n) :: points type(Qc), dimension (1:2) :: test rayon = max(2., sqrt(c%re**2 + c%im**2)) pas = (maxi - mini) / (n-1) temp = 0 do i = 1, n do j = 1, n temp = temp + 1 points(temp)%z = (mini + (i-1)*pas,mini + (j-1)*pas) element = points(temp)%z do m = 1,15 norme = sqrt(element%re**2 + element%im**2) if (norme <= rayon) then points(temp)%k = m exit else if (m == 15) then points(temp)%k = m exit else element = element**2 + c cycle end if end do end do end do end program
Les outils qui sont nouveaux pour moi ici sont les type et les complex, c'est pour ça que j'ai commencé par regarder de ce côté là. Je me suis renseigné sur la possibilité de créer des listes de types personnalisés, la syntaxe m'a l'air correcte, il en va de même pour les complexes que j'ai testé rapidement dans un petit programme, d'autant que le compilateur ne renvoie pas d'erreur sur la constante c. Je ne saisi donc pas la nature de l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 25 | points(temp)%z = (mini + (i-1)*pas,mini + (j-1)*pas) | 1 Error: Expected a right parenthesis in expression at (1)
Merci pour votre temps et votre aide.
Partager