mrsfqroesum Subroutine

public subroutine mrsfqroesum(fbzzfa, pmo, noca, nocb, nbf, ivec)

Uses

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

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), target :: fbzzfa(*)
real(kind=dp), intent(inout) :: pmo(:,:)
integer, intent(in) :: noca
integer, intent(in) :: nocb
integer, intent(in) :: nbf
integer, intent(in) :: ivec

Called by

proc~~mrsfqroesum~~CalledByGraph proc~mrsfqroesum mrsfqroesum proc~tdhf_mrsf_energy tdhf_mrsf_energy proc~tdhf_mrsf_energy->proc~mrsfqroesum proc~tdhf_mrsf_energy_c tdhf_mrsf_energy_C proc~tdhf_mrsf_energy_c->proc~tdhf_mrsf_energy

Source Code

  subroutine mrsfqroesum(fbzzfa,pmo,noca,nocb,nbf,ivec)

    use precision, only: dp

    implicit none

    real(kind=dp), target, intent(in) :: fbzzfa(*)
    real(kind=dp), intent(inout) :: pmo(:,:)
    integer, intent(in) :: noca, nocb, nbf, ivec

    real(kind=dp), pointer :: wrk(:,:)
    integer :: i, ij, j

    wrk(1:nocb,1:nbf) => fbzzfa(1:nocb*nbf)

    ij = 0
    do j = noca+1, nbf
      do i = 1, nocb
        ij = ij + 1
        pmo(ij,ivec) = pmo(ij,ivec)+wrk(i,j)
      end do
    end do

  end subroutine mrsfqroesum