sfrogen Subroutine

public subroutine sfrogen(ava, avb, pv, noca, nocb)

Uses

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

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), dimension(:,:) :: ava
real(kind=dp), intent(out), dimension(:,:) :: avb
real(kind=dp), intent(in), dimension(:) :: pv
integer, intent(in) :: noca
integer, intent(in) :: nocb

Source Code

  subroutine sfrogen(ava,avb,pv,noca,nocb)
    use precision, only: dp

    implicit none

    real(kind=dp), intent(out), dimension(:,:) :: ava
    real(kind=dp), intent(out), dimension(:,:) :: avb
    real(kind=dp), intent(in), dimension(:) :: pv
    integer, intent(in) :: noca, nocb

    integer :: ij, i, j, k, nbf

    nbf = ubound(ava, 1)

    ava = 0.0_dp
    avb = 0.0_dp

  ! doc-socc
    ij = 0
    do i = nocb+1, noca
      do j = 1, nocb
        ij = ij+1
        avb(j,i) = pv(ij)
      end do
    end do

  ! doc-virt
    do k = noca+1, nbf
      do j = 1, nocb
        ij = ij+1
        ava(j,k) = pv(ij)
        avb(j,k) = pv(ij)
      end do
    end do

  ! socc-virt
    do k = noca+1, nbf
      do i = nocb+1, noca
        ij = ij+1
        ava(i,k) = pv(ij)
      end do
    end do

  end subroutine sfrogen