rparedms Subroutine

public subroutine rparedms(b, ap_b, am_b, xm_p, xm_m, nvec, tamm_dancoff)

Uses

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

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:,:) :: b
real(kind=dp), intent(in), dimension(:,:) :: ap_b
real(kind=dp), intent(in), dimension(:,:) :: am_b
real(kind=dp), intent(out), dimension(:,:) :: xm_p
real(kind=dp), intent(out), dimension(:,:) :: xm_m
integer, intent(in) :: nvec
logical :: tamm_dancoff

Calls

proc~~rparedms~~CallsGraph proc~rparedms rparedms proc~oqp_dgemm_i64 oqp_dgemm_i64 proc~rparedms->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~~rparedms~~CalledByGraph proc~rparedms rparedms proc~tdhf_energy tdhf_energy proc~tdhf_energy->proc~rparedms proc~tdhf_mrsf_energy tdhf_mrsf_energy proc~tdhf_mrsf_energy->proc~rparedms proc~tdhf_sf_energy tdhf_sf_energy proc~tdhf_sf_energy->proc~rparedms proc~tdhf_energy_c tdhf_energy_C proc~tdhf_energy_c->proc~tdhf_energy 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 rparedms(b,ap_b,am_b,xm_p,xm_m,nvec,tamm_dancoff)
    use precision, only: dp

    implicit none

    real(kind=dp), intent(in), dimension(:,:) :: b
    real(kind=dp), intent(in), dimension(:,:) :: am_b, ap_b
    real(kind=dp), intent(out), dimension(:,:) :: xm_m, xm_p
    integer, intent(in) :: nvec
    logical :: tamm_dancoff

    integer :: xvec_dim

    xvec_dim = ubound(b, 1)

    if (tamm_dancoff) then
      call dgemm('t','n',nvec,nvec,xvec_dim, &
                 1.0_dp,b,xvec_dim,ap_b,xvec_dim, &
                 0.0_dp,xm_p,nvec)
    else
      call dgemm('t','n',nvec,nvec,xvec_dim, &
                 1.0_dp,b,xvec_dim,ap_b,xvec_dim, &
                 0.0_dp,xm_p,nvec)
      call dgemm('t','n',nvec,nvec,xvec_dim, &
                 1.0_dp,b,xvec_dim,am_b,xvec_dim, &
                 0.0_dp,xm_m,nvec)
    end if
  end subroutine rparedms