da_matmultiover.inc

References to this file elsewhere.
1 subroutine da_matmultiover(mata,matb,ni,nj)
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
6 
7    implicit none
8 
9    integer, intent(in)    :: ni, nj
10    real,    intent(in)    :: matb(nj, nj)
11    real,    intent(inout) :: mata(ni,nj)
12 
13    integer :: i, j, k          ! Loop counters
14    real    :: tmp(1:nj)
15 
16    if (trace_use) call da_trace_entry("da_matmultiover")
17 
18    do i=1,ni
19       tmp = 0.0
20       do j=1,nj 
21          do k=1,nj
22             tmp(j) = tmp(j) + mata(i,k)*matb(k,j)
23          end do
24       end do
25       do j=1,nj
26          mata(i,j) = tmp(j) 
27       end do
28    end do
29 
30    if (trace_use) call da_trace_exit("da_matmultiover")
31 
32 end subroutine da_matmultiover
33 
34