fork download
  1. program mat_mul
  2. implicit none
  3. integer :: a,b,c,d,tem,i,j,k
  4.  
  5. integer,allocatable :: arr1(:,:),arr2(:,:),arr3(:,:)
  6. read(*,*) a,b,c,d
  7. if (b/=c) then
  8. stop
  9. end if
  10. allocate(arr1(a,b),arr2(c,d),arr3(a,d))
  11. do i = 1,a
  12. read(*,*) (arr1(i,j), j=1,b)
  13. end do
  14. do i = 1,c
  15. read(*,*) (arr2(i,j), j=1,d)
  16. end do
  17.  
  18. do i = 1,a
  19. do j = 1,d
  20. tem = 0
  21. do k = 1,b
  22. tem=tem+arr1(i,k)*arr2(k,j)
  23. end do
  24. arr3(i,j)=tem
  25. end do
  26. end do
  27. do i = 1,a
  28. write(*,*) (arr3(i,j), j=1,d)
  29. end do
  30. end program mat_mul
  31.  
Success #stdin #stdout 0.01s 5288KB
stdin
2 3 3 4
1 2 3
1 2 3

1 2 3 4 
1 2 3 4
1 2 3 4
stdout
           6          12          18          24
           6          12          18          24