C=A*BのFORTRANプログラムNO.2

    2003/08/28 日立製作所 & 早稲田大学 後 保範 ( Ushiro Yasunori )
--------------------------------------------------------------

1. 概要

 実密行列を係数とする行列乗算C=A*Bを計算する。連続アクセス版である。
行列A,B,CのサイズはそれぞれNxL,LxM,NxMである。

2. プログラム

C=================================================================C
      SUBROUTINE MULT2(A,B,C,N,M,L,ND)
C=================================================================C
C  Real-Dense Matrix Multiplication                               C
C   C = A*B  with JKI-Type                                        C
C-----------------------------------------------------------------C
C    A(ND,L)   R*8, In,  First Input Matrix (A) , Size N*L        C
C    B(ND,M)   R*8, In,  Second Input Matrix (B), Size L*M        C
C    C(ND,M)   R*8, Out, Output Matrix (C)      , Size N*M        C
C    N         I*4, In,  Matrix Size of A(Column), C(Column)      C
C    M         I*4, In,  Matrix Size of B(Row), C(Row)            C
C    L         I*4, In,  Matrix Size of A(Row), B(Column)         C
C    ND        I*4, In,  Array Size of A,B,C                      C
C-----------------------------------------------------------------C
C    Written by Yasunori Ushiro,   2003/08/28                     C
C        ( Hitachi Ltd. and Waseda University )                   C
C=================================================================C
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION A(ND,L), B(ND,M), C(ND,M)
C   Clear C
      do j=1,M
        do i=1,N
          C(i,j) = 0.0
        end do
      end do
C   C=C+A*B
      do j=1,M
        do k=1,L
          BW = B(k,j)
          do i=1,N
            C(i,j) = C(i,j) + A(i,k)*BW
          end do
        end do
      end do
C
      RETURN
      END