1!
2! Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
3!
4! Licensed under the Apache License, Version 2.0 (the "License");
5! you may not use this file except in compliance with the License.
6! You may obtain a copy of the License at
7!
8!     http://www.apache.org/licenses/LICENSE-2.0
9!
10! Unless required by applicable law or agreed to in writing, software
11! distributed under the License is distributed on an "AS IS" BASIS,
12! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13! See the License for the specific language governing permissions and
14! limitations under the License.
15!
16
17
18#include "mmul_dir.h"
19
20subroutine F90_matmul_cplx16_contmxm(dest, src1, src2, k_extent,m_extent,n_extent)
21
22  COMPLEX*16, dimension(k_extent,m_extent) :: src1
23  COMPLEX*16, dimension(m_extent,n_extent) :: src2
24  COMPLEX*16, dimension(k_extent,n_extent) :: dest
25  DESC_INT k_extent
26  DESC_INT n_extent
27  DESC_INT m_extent
28
29  DESC_INT k
30  DESC_INT n
31  DESC_INT m
32
33  do n=1,n_extent
34    do k=1,k_extent
35      dest(k,n) = 0
36    end do
37  end do
38  do n=1,n_extent
39    do m=1,m_extent
40      do k=1,k_extent
41        dest(k,n) = dest(k,n) + src1(k,m) * src2(m,n)
42      end do
43   end do
44  end do
45
46end subroutine
47