      program matrice_mat
      implicit none
      integer  n,i,j
      real*8   A(40,40),tr,traccia
      open(5,file='mat.dat')
      open(6,file='risul.ris')
      read(5,*) n
      if (n.gt.40) then
         write(*,*) 'n < 41 !!!'
         stop
      endif
      do i = 1,n
         read(5,*) (A(i,j),j=1,n)
      enddo
      write(6,*) 'A:'
      do i = 1,n
         write(6,1) (A(i,j),j=1,n)
      enddo
      tr = traccia(n,A)
      write(6,*) 'Traccia di A =',tr
1     format(5e15.6)
      stop
      end
C
      real*8 function traccia(m,B)
      implicit none
      integer m,i
      real*8  B(40,40)
      traccia = 0.0
      do i = 1,m
         traccia = traccia + B(i,i)
      enddo
      return
      end
