Bonjour..
j'ai comme devoir de créer un programme traitant la méthode Gauss-Seidel en Fortran , et comme je maîtrise le Pascal, j'en ai fait l'algorithme, le prg en Pascal puis je l'ai traduit manuellement en Fortran, instruction par instruction, en suivant un guide instruction Fortran 77. En compilant , je me retrouve avec 56 erreurs et 09 warnings, y a-t-il quelq'uun qui pourra m'aider à le compiler..
Merci
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
c **********************************************************
c Résolution d'un système matriciel par la méthode de Gauss-Seidel
c **********************************************************
      PROGRAM Gauss seidel
      IMPLICIT NONE
	INTEGER :: i, j, k ,n, m
        REAL,DIMENSION (n,m) :: A
	REAL,DIMENSION (n) :: b
	REAL,DIMENSION (m) :: T
	REAL,DIMENSION (m) :: TE
	REAL::Somav, Somap, eps 
	common i/j/k/n/m/A/T/TE/bSomav/Somap/eps
        DATA k/0/n/9/m/9/
c
	Subroutine EntrerA
	DO 100 i=1,n
	  Write(*,*)"Faites entrer",i,"ligne"
	  Do 50 j=1,m
	    Read(5,*) a(i,j)
50	  Continue
100	Continue
	Return
	End
 
	Subroutine EntrerB
	Write(*,*)"Faites entrer les valeur de b"
	DO 100 i=1,n
	 Read(5,*) b(i)
100	Continue
	Return
	End
 
      Subroutine EntrerTemp
	Write(*,*)"Entrer les valeur initiales de T°"
        do 100 j=1,m 
           read(*,*) T(j)
           TE(j)=0.00
100     continue
        write(*,*)"entrer la valeur de epsilon"    
	Read(5.*) eps
	Return
	End
 
c	Type function test-arrêt:logical
 
	Real::Somme
 
	Test_arrêt=false
	Somme=0.0
	DO 100 i=1,n
	 Somme=Somme+abs(TE(i)-T(i))
100	continue
	if(Somme<eps)then
	 Test_arrêt=True
	Endif
	Return
	End
C	Debut Programme Principal
C	************************
	Call EntrerA
	Call EntrerB
	Call EntrerTemp
5	if not(Test_arrêt) go to 40
	 k=k+1
	 Do 30 i=1,n
	  Do 10 j=1,m
	   Somav=Somav+a(i,j)*TE(j)
10	  Continue
	  Do 20 j=i+1,n
	   Somap=Somap+a(i,j)*T(j)
20	  Continue
	 Te(i)=[b(i)-Somav-Somap]/a(i,i)
30	 Continue
40	Continue
	Write(6,*)"Aprés la",k,"ième itération, voici les résultats"
	Do 60 i=1,n
	 Write(6,50) TE(i) 
50	 Format (F9,2)                              
60	Continue
	End