@brief Expand reduced vectors to real size space
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | vr(:,:) | |||
real(kind=dp), | intent(in) | :: | vl(:,:) | |||
real(kind=dp), | intent(out) | :: | vro(:,:) | |||
real(kind=dp), | intent(out) | :: | vlo(:,:) | |||
real(kind=dp), | intent(in) | :: | br(:,:) | |||
real(kind=dp), | intent(in) | :: | bl(:,:) | |||
integer, | intent(in) | :: | ndsr | |||
logical, | intent(in) | :: | tamm_dancoff |
subroutine rpaexpndv(vr,vl,vro,vlo,br,bl,ndsr,tamm_dancoff) use precision, only: dp implicit none real(kind=dp), intent(in) :: vr(:,:), vl(:,:) real(kind=dp), intent(out) :: vro(:,:), vlo(:,:) real(kind=dp), intent(in) :: br(:,:), bl(:,:) integer, intent(in) :: ndsr logical, intent(in) :: tamm_dancoff integer :: xvec_dim integer :: nvec nvec = ubound(vr, 2) xvec_dim = ubound(vro, 1) call dgemm('n','n',xvec_dim,ndsr,nvec, & 1.0_dp,br,xvec_dim,vr,nvec, & 0.0_dp,vro,xvec_dim) if (tamm_dancoff) then vlo(:,1:ndsr) = vro(:,1:ndsr) else call dgemm('n','n',xvec_dim,ndsr,nvec, & 1.0_dp,bl,xvec_dim,vl,nvec, & 0.0_dp,vlo,xvec_dim) end if end subroutine rpaexpndv