utility_matmul_diag Function

public function utility_matmul_diag(mat1, mat2, dim)

Uses

  • proc~~utility_matmul_diag~~UsesGraph proc~utility_matmul_diag utility_matmul_diag module~w90_constants w90_constants proc~utility_matmul_diag->module~w90_constants

Computes the diagonal elements of the matrix mat1.mat2

Arguments

Type IntentOptional Attributes Name
complex(kind=dp) :: mat1(dim,dim)
complex(kind=dp) :: mat2(dim,dim)
integer :: dim

Return Value complex(kind=dp), (dim)


Called by

proc~~utility_matmul_diag~~CalledByGraph proc~utility_matmul_diag utility_matmul_diag proc~utility_commutator_diag utility_commutator_diag proc~utility_commutator_diag->proc~utility_matmul_diag proc~utility_rotate_diag utility_rotate_diag proc~utility_rotate_diag->proc~utility_matmul_diag proc~spin_get_moment_k spin_get_moment_k proc~spin_get_moment_k->proc~utility_rotate_diag proc~spin_get_nk spin_get_nk proc~spin_get_nk->proc~utility_rotate_diag proc~spin_get_s spin_get_S proc~spin_get_s->proc~utility_rotate_diag proc~wham_get_deleig_a wham_get_deleig_a proc~wham_get_deleig_a->proc~utility_rotate_diag proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->proc~spin_get_nk proc~wham_get_eig_deleig wham_get_eig_deleig proc~berry_get_kubo_k->proc~wham_get_eig_deleig proc~dos_get_k dos_get_k proc~dos_get_k->proc~spin_get_nk proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_get_k_list->proc~spin_get_s proc~gyrotropic_get_k_list->proc~wham_get_eig_deleig proc~k_path k_path proc~k_path->proc~spin_get_nk proc~berry_get_shc_klist berry_get_shc_klist proc~k_path->proc~berry_get_shc_klist proc~k_slice k_slice proc~k_slice->proc~spin_get_nk proc~k_slice->proc~wham_get_eig_deleig proc~k_slice->proc~berry_get_shc_klist proc~spin_get_moment spin_get_moment proc~spin_get_moment->proc~spin_get_moment_k proc~tdf_kpt TDF_kpt proc~tdf_kpt->proc~spin_get_nk proc~wham_get_eig_deleig->proc~wham_get_deleig_a proc~wham_get_eig_deleig_tb_conv wham_get_eig_deleig_TB_conv proc~wham_get_eig_deleig_tb_conv->proc~wham_get_deleig_a proc~berry_get_kdotp berry_get_kdotp proc~berry_get_kdotp->proc~wham_get_eig_deleig proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->proc~wham_get_eig_deleig proc~berry_get_sc_klist->proc~wham_get_eig_deleig_tb_conv proc~berry_get_shc_klist->proc~wham_get_eig_deleig proc~berry_main berry_main proc~berry_main->proc~berry_get_kubo_k proc~berry_main->proc~berry_get_kdotp proc~berry_main->proc~berry_get_sc_klist proc~berry_main->proc~berry_get_shc_klist proc~calctdfanddos calcTDFandDOS proc~calctdfanddos->proc~dos_get_k proc~calctdfanddos->proc~tdf_kpt proc~calctdfanddos->proc~wham_get_eig_deleig proc~dos_main dos_main proc~dos_main->proc~dos_get_k proc~dos_main->proc~wham_get_eig_deleig proc~geninterp_main geninterp_main proc~geninterp_main->proc~wham_get_eig_deleig proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->proc~gyrotropic_get_k_list program~postw90 postw90 program~postw90->proc~k_path program~postw90->proc~k_slice program~postw90->proc~spin_get_moment program~postw90->proc~berry_main program~postw90->proc~dos_main program~postw90->proc~geninterp_main program~postw90->proc~gyrotropic_main proc~boltzwann_main boltzwann_main program~postw90->proc~boltzwann_main proc~boltzwann_main->proc~calctdfanddos

Source Code

  function utility_matmul_diag(mat1, mat2, dim)
    !================================================!
    !
    !! Computes the diagonal elements of the matrix mat1.mat2
    !
    !================================================!

    use w90_constants, only: dp, cmplx_0

    integer          :: dim
    complex(kind=dp) :: utility_matmul_diag(dim)
    complex(kind=dp) :: mat1(dim, dim)
    complex(kind=dp) :: mat2(dim, dim)

    integer i, j

    utility_matmul_diag = cmplx_0
    do i = 1, dim
      do j = 1, dim
        utility_matmul_diag(i) = utility_matmul_diag(i) + mat1(i, j)*mat2(j, i)
      end do
    end do

  end function utility_matmul_diag