trfrmb Subroutine

public subroutine trfrmb(bvec, vec, nvec, ndsr)

Uses

  • proc~~trfrmb~~UsesGraph proc~trfrmb trfrmb module~precision precision proc~trfrmb->module~precision iso_fortran_env iso_fortran_env module~precision->iso_fortran_env

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout), dimension(:,:) :: bvec
real(kind=dp), intent(in), dimension(:,:) :: vec
integer, intent(in) :: nvec
integer, intent(in) :: ndsr

Calls

proc~~trfrmb~~CallsGraph proc~trfrmb trfrmb proc~oqp_dgemm_i64 oqp_dgemm_i64 proc~trfrmb->proc~oqp_dgemm_i64 dgemm dgemm proc~oqp_dgemm_i64->dgemm interface~show_message show_message proc~oqp_dgemm_i64->interface~show_message

Called by

proc~~trfrmb~~CalledByGraph proc~trfrmb trfrmb proc~tdhf_mrsf_energy tdhf_mrsf_energy proc~tdhf_mrsf_energy->proc~trfrmb proc~tdhf_sf_energy tdhf_sf_energy proc~tdhf_sf_energy->proc~trfrmb proc~tdhf_mrsf_energy_c tdhf_mrsf_energy_C proc~tdhf_mrsf_energy_c->proc~tdhf_mrsf_energy proc~tdhf_sf_energy_c tdhf_sf_energy_C proc~tdhf_sf_energy_c->proc~tdhf_sf_energy

Source Code

  subroutine trfrmb(bvec,vec,nvec,ndsr)
    use precision, only: dp

    implicit none

    real(kind=dp), intent(inout), dimension(:,:) :: bvec
    real(kind=dp), intent(in), dimension(:,:) :: vec
    integer, intent(in) :: nvec, ndsr

    real(kind=dp), allocatable, dimension(:,:) :: scr
    integer :: xvec_dim

    xvec_dim = ubound(bvec, 1)
    allocate(scr(xvec_dim,ndsr), &
             source=0.0_dp)

    scr = bvec
    ! Get a new Bvec
    call dgemm('n', 'n', xvec_dim, ndsr, nvec, &
               1.0_dp, scr, xvec_dim, &
                       vec, nvec,&
               0.0_dp, bvec, xvec_dim)
  ! do ii = 1, xvec_dim
  !   do jj = 1, ndsr
  !   bvec(ii,jj) = 0.0_dp
  !     do kk = 1, nvec
  !       bvec(ii,jj) = bvec(ii,jj)+scr(ii,kk)*vec(kk,jj)
  !     end do
  !   end do
  ! end do

    deallocate(scr)
  end subroutine trfrmb