salut, j'essaye de développer un code qui permet l'affectation des étudiants aux écoles mais je n'arrive pas à le compiler (y'a pas mal de fautes)
Qu'est-ce que vous en pensez ? Et quelles sont les corrections qu'il faut faire afin de le rendre exécutable ?
et merci par 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
module MonModule
integer, parameter:: maxi=500
integer, dimension(maxi,maxi):: student,ecole
integer, dimension(maxi):: studprefer,ecoleprefer,tabaff
 
contains
 
function ecolepriorite(e,s,s1,n)
    integer:: e,s,s1,n,i
    logical:: ecolepriorite
    do i=1,n,1
        if (ecole(e,i)==s) then
        ecolepriorite= .true.
        if (ecole(e,i)==s1) then
            ecolepriorite= .false.
        end if
        end if
    end do
 
end function ecolepriorite
subroutine affect(n)
    integer:: n,i,s,s1,e,freecount
    do i=1,n,1
        studprefer(i)=0
        ecoleprefer(i)=-1
    end do
    freecount=n
    do while (freecount>0)
        do s=1,n,1
            do i=1,n,1
               do while (studprefer(s)==0)
                e=student(s,i)
                if (ecoleprefer(e)==-1) then
                    ecoleprefer(e)=s
                    studprefer(s)=1
                    freecount=freecount-1
                    else
                        s1=ecoleprefer(e)
                end if
                if (ecolepriorite(e,s,s1,n).eqv..true.) then
                ecoleprefer(e)=s
                studprefer(s)=1
                studprefer(s1)=0
                end if
            end do
        end do
    end do
end do
end subroutine affect
end module MonModule
 
!!programme principale
 
program affectation
    use MonModule
implicit none
integer:: m,i,j
print*,'entrer le nombre des etudiants et des ecoles :'
read(*,*)m
print*,'entrer la liste des priorites des ecoles:'
do i=1,m,1
    do j=1,m,1
        print*,'entrer la preference numero',i,'de l''ecole numero',j
        read(*,*)ecole(i,j)
    end do
end do
print*,'entrer la liste de preferences des etudiants:'
do i=1,m,1
    do j=1,m,1
        print*,'entrer la preference',i,'de l''etudiant',j
        read(*,*)student(i,j)
        print*,'la liste des etudiants dans les ecoles par ordre de priorite'
        do i=1,m,1
            print*,i,'--->'
            do j=1,m,1
                print*, ecole(i,j)
            end do
            print*,' '
        end do
        print*,'la liste des voeux des etudiants:'
        do i=1,m,1
            print*,i,'--->'
            do j=1,m,1
                print*, student(i,j)
            end do
            print*,' '
        end do
call affect(m)
do i=1,m,1
    tabaff(ecoleprefer(i))=i
    end do
    print*,'l''affectation est la suivante:'
    do i=1,m,1
        print*, i,tabaff(i)
    end do
    print*,' '
end program affectation