Bonjour à tous

Alors j'aurais besoin d'aide svp.
Voilà, je dois faire un petit programme en fortran 90 :

Je dois faire un tableau dynamique (n*n).
Ensuite, dans chaque case du tableau, je dois placer des entiers aléatoires compris entre 0 et 1.
Jusque là pas de souci .
Maintenant, j'analyse toutes les cases du tableau avec une double boucle
Jusque là, toujours pas de souci.
Le problème est le suivant : pour chaque case du tableau, je dois tester les cases qui l'entourent et faire la somme de ces cases.

Voici quelques lignes du programme.
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
51
52
53
54
55
56
           ! ALLOCATION DU TABLEAU tabvie
 
 PRINT*,"SAISIR LES DIMENSION DE LA COLONIE "      ! LE PROGRAM ATTEND QUE VOUS SAISISSIEZ LA TAILLE DU TABLEAU 
 READ*,n
    IF(.NOT. ALLOCATED (tabvie))THEN
      ALLOCATE ( tabvie(n,n), STAT=ERR )
        IF(err/=0)THEN 
          PRINT*,"PROBLEME D'ALLOCATION"           ! L'ALLOCATION DU TABLEAU C'EST MAL DEROULEE
          STOP 
        ELSE  
          PRINT*,"TABLEAU DEJA ALLOUE "            ! TABLEAU DEJA ALLOUE
          STOP 
        END IF 
    END IF  
! INITIALISTAION DE LA COLONIE 
DO i=1,n                                                           
    DO j=1,n
      tabvie(i,j)=colo() 
    END DO 
 END DO 
! AFFICHAGE DE LA COLONIE INITIALE 
 
        DO i=1,n
         PRINT*,tabvie(i,:)
        END DO  
 
 PRINT*, "*****************COLONIE INITIALE***************** "
 
 DO i=1,n 
   DO j=1,n
     IF (tabvie(i,j)==0) THEN 
        IF (voisin().GE.3)THEN
             tabvie(i,j)=1
          ELSE 
             tabvie(i,j)=0
        END IF 
     END IF 
 
   END DO 
 END DO 
 
          DO I=1,n
            PRINT*,tabvie(i,:)
          END DO 
 
 
                                   CONTAINS ! PROGRAMMES SECONDAIRES
 
 
 
    INTEGER FUNCTION voisin()          ! SOUS PROGRAMME DEFINISSANT LE NOMBRE DE VOISIN D'UNE CASE tabvie(i,j)
 
             voisin =tabvie(i-1,j-1)+tabvie(i-1,j)+tabvie(i-1,j+1)&      ! ON VA TESTER  TOUTES LES CASE VOISINE
                        +tabvie(i,j-1)+tabvie(i,j+1)&                    
                     +tabvie(i+1,j-1)+tabvie(i+1,j)+tabvie(i+1,j+1)       ! DE LA CASE tabvie(i,j)
    	END FUNCTION
J'ai besoin d'aide sur la fonction VOISIN() qui fait la somme des cases entourant tabvie(i,j).