Program molt_mat IMPLICIT NONE ! Dichiarazioni parametri formali INTEGER, PARAMETER :: n=100, m=100, p=100 INTEGER :: i INTEGER, DIMENSION (n,m) :: a INTEGER, DIMENSION (m,p) :: b INTEGER, DIMENSION (n,p) :: c a=2 b=3 c=0 DO i=1,300 CALL prodotto_matrici (a,b,c,n,m,p) ENDDO DO i=1,10 write (*,*) c(1,i) ENDDO STOP END SUBROUTINE prodotto_matrici (a,b,c,n,m,p) IMPLICIT NONE ! Dichiarazioni parametri formali INTEGER, INTENT(IN) :: n, m, p INTEGER, DIMENSION (n,m), INTENT (IN) :: a INTEGER, DIMENSION (m,p), INTENT (IN) :: b INTEGER, DIMENSION (n,p), INTENT (OUT) :: c ! Dichiarazione variabili locali INTEGER :: i, j, k,inc DO i = 1, n DO j = 1, p c(i,j) = 0 DO k = 1, m IF (mod(i,2)==0) THEN inc=4*i**i c(i,j) = c(i,j) + a(i,k) * b(k,j) +inc ELSE inc=9*i**i c(i,j) = c(i,j) + a(i,k) * b(k,j) +inc ENDIF END DO END DO END DO RETURN END SUBROUTINE prodotto_matrici