Bonjour, j'ai un petit problème dans la programmation en fortran90. j'ai fait un code qui calcule les trajectoires d'un système de vortex qui est décrit par le système d'équations différentielles suivant:
la somme se fait sur les i=1,N, sauf les cas ou (i différent de j). et le N étant un naturel différent de zéro.dx(i)/dt=Sum {[omega(i)* (y(j)-y(i))] / [((x(i)-x(j))**2+(y(i)-y(j))**2)]} dy(i)/dt=Sum {[omega(i)* (x(i)-x(j))] / [((x(i)-x(j))**2+(y(i)-y(j))**2)]}
lorsque je compile (ctrl+F8) et je build (shift+F8) , il n y a pas d'erreurs. Mais lorsque j'exécute une fenêtre d'erreurs apparait, et voici le message:
je comprend pas, alors je demande de l'aide de l'un des spécialistes du fortran car moi , je suis qu'un débutant.run-time error M6101: Math -floating-point error: invalid Press any key to continue
voici le code que j'ai réalisé:
Merci d'avance.
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 PROGRAM VortexEuler Implicit None INTEGER :: N,i,j,k,iter REAL, Dimension(10,10):: x,y,som1, som2 !DOUBLE PRECISION :: somme1,somme2 DOUBLE PRECISION :: dt,w !LOGICAL :: fini ! Initialisation !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! N=3 iter=10 dt= 1.0e-2 som1(1,1)=0.d0 som2(1,1)=0.d0 w=1.0e-2 x(1,1)=1.d0 y(1,1)= 2.d0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!! open(1,File='Vortex euler.txt') do k=1,iter do j=1,N do i=1,N if (i.ne.j) then som1(i,k)=som1(i,k)+ dt*((w*(y(i,k)-y(j,k)))/(((x(i,k)-x(j,k))**2)+ ((y(i,k)-y(j,k))**2))) ! som1(i,k)=som1(i,k) ! som2(i,k)=som2(i,k)+ dt*((w*(x(j,k)-x(i,k)))/(((x(i,k)-x(j,k))**2)+ ((y(i,k)-y(j,k))**2))) ! som2(i,k)=som2(i,k) x(j,k+1)= x(j,k) + dt* som1(i,k) y(j,k+1)= y(j,k) + dt* som2(i,k) ! write(1,*) 'x(j,k+1)=',x(j,k+1),'y(j,k+1)=',y(j,k+1),'iter=',iter ! end if enddo enddo enddo close(1) END PROGRAM VortexEuler
Partager