PROGRAM matrix PARAMETER (nmax = 40) REAL a(nmax, nmax), b(nmax, nmax), c(nmax, nmax) CALL inpmat(nmax, nra, nca, a) CALL inpmat(nmax, nrb, ncb, b) IF (nca .NE. nrb) STOP 'matrix size mismatch' CALL matmlt(nmax, nra, nca, ncb, a, b, c) CALL primat(nmax, nra, ncb, c) STOP END C==== C = A * B ============================================================== SUBROUTINE matmlt(nmax, n, m, l, a, b, c) REAL a(nmax, m), b(nmax, l), c(nmax, l) DO 10 i = 1, n DO 20 j = 1, l c(i, j) = 0.0 DO 30 k = 1, m c(i, j) = c(i, j) + a(i, k) * b(k, j) 30 CONTINUE 20 CONTINUE 10 CONTINUE RETURN END >>551