mm_ATBT_2 Subroutine

private pure subroutine mm_ATBT_2(A, B, C)

Uses

  • proc~~mm_atbt_2~~UsesGraph proc~mm_atbt_2 formatmul_opts::mm_ATBT_2 module~external_interfaces_matmul external_interfaces_matmul proc~mm_atbt_2->module~external_interfaces_matmul kinds kinds module~external_interfaces_matmul->kinds

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), contiguous :: A(:,:)
real(kind=rk), intent(in), contiguous :: B(:,:)
real(kind=rk), intent(inout), contiguous :: C(:,:)

Calls

proc~~mm_atbt_2~~CallsGraph proc~mm_atbt_2 formatmul_opts::mm_ATBT_2 interface~gemm external_interfaces_matmul::gemm proc~mm_atbt_2->interface~gemm

Called by

proc~~mm_atbt_2~~CalledByGraph proc~mm_atbt_2 formatmul_opts::mm_ATBT_2 proc~mat_mat_rel_atbt_opt formatmul_opts::mat_mat_rel_ATBT_opt proc~mat_mat_rel_atbt_opt->proc~mm_atbt_2 proc~mat_mat_rel_atbt formatmul::mat_mat_rel_ATBT proc~mat_mat_rel_atbt->proc~mat_mat_rel_atbt_opt proc~mat_mat_rel formatmul::mat_mat_rel proc~mat_mat_rel->proc~mat_mat_rel_atbt interface~matmul formatmul::matmul interface~matmul->proc~mat_mat_rel

Source Code

   pure subroutine mm_ATBT_2(A, B, C)
      use external_interfaces_matmul

      real(rk), intent(in), contiguous :: A(:,:), B(:,:)
      real(rk), intent(inout), contiguous :: C(:,:)
      integer                 :: m, n, p

      m = size(A, 2)
      n = size(A, 1)
      p = size(B, 1)
      ! Call BLAS gemm subroutine for matrix-matrix multiplication.
      call gemm('T', 'T', m, p, n, 1.0_rk, A, n, B, p, 0.0_rk, C, m)

   end subroutine mm_ATBT_2