***************************************************************
* File: diag.for
* Scopo: Soluzione compito 28-06-2000

      LOGICAL FUNCTION DIAGONALE(NOME)
* ISTRUZIONI DICHIARATIVE
      IMPLICIT NONE
* NOME e' parametro di INPUT
      CHARACTER*12 NOME
* DICHIARAZIONI DI TIPO PER LE COSTANTI
      INTEGER DIM
* DEFINIZIONI DELLE COSTANTI
      PARAMETER (DIM = 3)
* DICHIARAZIONI DELLE VARIABILI
      INTEGER I, J, SOMMAPRINC/0/, SOMMASEC/0/
      INTEGER MAT(DIM,DIM)
* ISTRUZIONI ESEGUIBILI
      OPEN(9, FILE=NOME)
      DO 10 I = 1,DIM
         DO 20 J = 1,DIM
*     ESEGUE LETTURA DA FILE
	    READ(9,*) MAT(I,J)
 20      CONTINUE
 10   CONTINUE
      CLOSE(9)
      DO 30 I = 1,DIM
         SOMMAPRINC = SOMMAPRINC + MAT(I,I)
         SOMMASEC = SOMMASEC + MAT(I,DIM-I+1)
 30   CONTINUE
      DIAGONALE = (SOMMAPRINC .GE. SOMMASEC)
      RETURN
      END

      PROGRAM MAIN
* ISTRUZIONI DICHIARATIVE
      IMPLICIT NONE
* DICHIARAZIONI DI TIPO PER LE COSTANTI
      CHARACTER*12 NOMEFILE
* DEFINIZIONI DELLE COSTANTI
      PARAMETER (NOMEFILE = 'DATI.TXT')
* DICHIARAZIONE TIPO FUNZIONE USATA
      LOGICAL DIAGONALE

      IF (DIAGONALE(NOMEFILE)) THEN
	 WRITE(*,*) "SI"
      ELSE
	 WRITE(*,*) "NO"
      ENDIF
      STOP
      END
