| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | src(2) | |||
| integer, | intent(in) | :: | ic | |||
| integer, | intent(in) | :: | part_type |
function check_orbital_location(src, ic, part_type) result(loc) ! same function as above, but checks if a picked orbital is in the ! virtual space of the reference determinant integer, intent(in) :: src(2), ic, part_type integer :: loc character(*), parameter :: this_routine = "check_orbital_location" integer :: i ! the output: ! 0 ... both holes are in the occupied space of the reference ! 1 ... the holes are mixed in the occupied and virtual space ! 2 ... both holes are in the virtual space of the reference if (ic == 1) then if (is_in_virt_mask(src(1), part_type)) then loc = 2 else loc = 0 end if else if (ic == 2) then loc = 0 do i = 1, 2 if (is_in_virt_mask(src(i), part_type)) then loc = loc + 1 end if end do end if ASSERT(loc >= 0) ASSERT(loc <= 2) end function check_orbital_location