fork download
  1. program matrix_multiplication
  2. implicit none
  3. integer :: i, j, k, m, n, p
  4. real, allocatable :: A(:,:), B(:,:), C(:,:)
  5.  
  6.  
  7. print *, "Enter dimensions of matrix A (m x n):"
  8. read *, m, n
  9. print *, "Enter number of columns of matrix B (p):"
  10. read *, p
  11.  
  12.  
  13. allocate(A(m,n))
  14. allocate(B(n,p))
  15. allocate(C(m,p))
  16.  
  17. print *, "Enter elements of matrix A:"
  18. do i = 1, m
  19. read *, A(i, :)
  20. end do
  21.  
  22. print *, "Enter elements of matrix B:"
  23. do i = 1, n
  24. read *, B(i, :)
  25. end do
  26.  
  27. C = 0.0
  28. do i = 1, m
  29. do j = 1, p
  30. do k = 1, n
  31. C(i,j) = C(i,j) + A(i,k) * B(k,j)
  32. end do
  33. end do
  34. end do
  35.  
  36. print *, "Resultant matrix C = A * B:"
  37. do i = 1, m
  38. print *, (C(i,j), j=1,p)
  39. end do
  40.  
  41. deallocate(A, B, C)
  42. end program matrix_multiplication
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
 Prime numbers between 1 and 100 are:
           2
           3
           5
           7
          11
          13
          17
          19
          23
          29
          31
          37
          41
          43
          47
          53
          59
          61
          67
          71
          73
          79
          83
          89
          97