Advertisement
SepandMeenu

Simple elementwise matrix multiplication

Jun 19th, 2019
1,192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PROGRAM Matrizen1
  2.   IMPLICIT NONE  ! allow no implicit types
  3.  
  4.   ! constant integers
  5.   INTEGER, PARAMETER :: Ni = 3, Nj = 4, Nk = 5, MAXR = 4
  6.   ! arrays of float64 value, initialized to zero
  7.   DOUBLE PRECISION :: A(Ni, Nk, Nj) = 0, B(Ni, Nj) = 0, C(Ni, Nk) = 0
  8.   ! loop counters
  9.   INTEGER :: i, j, k
  10.  
  11.   ! fill in random numbers in interval [0, 1]
  12.   CALL RANDOM_NUMBER(A)
  13.   CALL RANDOM_NUMBER(B)
  14.   ! make random integers in interval [0, MAXR]
  15.   A = FLOOR(A * MAXR)
  16.   B = FLOOR(B * MAXR)
  17.  
  18.   ! NOTE: array index starts from 1
  19.   DO i = 1, Ni
  20.      DO j = 1, Nj
  21.         DO k = 1, Nk
  22.            C(i, k) = A(i, j, k) * B(i, j)
  23.            PRINT '(A2,I1,A1,I1, A1, I0, A4,F0.3)', 'A[', i, ',', j, ',', k, '] = ', A(i, j, k)
  24.            PRINT '(A2,I1,A1,I1,A4,F6.3)', 'B[', i, ',', j, '] = ', B(i, k)
  25.            PRINT '(A2,I1,A1,I1,A4,F6.3)', 'C[', i, ',', k, '] = ', C(i, k)
  26.            PRINT *
  27.         END DO
  28.      END DO
  29.   END DO
  30.  
  31. END PROGRAM Matrizen1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement