! 例題 6-6 行列の積演算 [多次元配列 ] PROGRAM ex6_6 IMPLICIT NONE INTEGER, DIMENSION ( : , : ), ALLOCATABLE :: a, b, c INTEGER :: m = 0, n = 0, k = 0, i, j, h DO WHILE ( m <= 0 .OR. n <= 0 .OR. k <= 0 ) PRINT *, 'Input array size m, n, k ( > 0 ) : ' READ *, m, n, k END DO ALLOCATE ( a( m, n ), b( n, k ), c( m, k ) ) PRINT *, 'Input elements of a in a matrix form: ' READ *, ( ( a( i, j ), j = 1, n ), i = 1, m ) PRINT *, 'Input elements of b in a matrix form: ' READ *, ( ( b( i, j ), j = 1, k ), i = 1, n ) DO i = 1, m DO j = 1, k c( i, j ) = 0 DO h = 1, n c( i, j ) = c( i, j ) + a( i, h ) * b( h, j ) END DO END DO END DO DO i = 1, m PRINT '( 10I5 )', ( c( i, j ), j = 1, k ) END DO END PROGRAM ex6_6