PROGRAM matr
  IMPLICIT NONE
  INTEGER, PARAMETER :: N = 20
  DOUBLE PRECISION :: a(N,N), s
  INTEGER :: i,j

  DO i=1,SIZE(a,1)
     DO j=1,SIZE(a,2)
        a(i,j) = (2*i+3*j)/30d0
     END DO
  END DO

  
  s = 0d0
  DO i = 1,SIZE(a,1)
     s = s + a(i,i)
  END DO

  PRINT *, "άθροισμα των διαγώνιων στοιχείων", s

  s=1d0
  DO i = 1,SIZE(a,1)
     s = s * a(3,i)
  END DO

  PRINT *, "γινόμενο των στοιχείων της τρίτης γραμμής", s

  ! B' τρόπος
  s = PRODUCT(a(3,:))
  PRINT *, "γινόμενο των στοιχείων της τρίτης γραμμής με product", s
  
  PRINT *, a(:, 5)
     
  
END PROGRAM matr
