2018-02-14 10:33:11 +01:00
|
|
|
|
|
|
|
! BEGIN_PROVIDER [ logical, do_dress_with_alpha ]
|
|
|
|
!&BEGIN_PROVIDER [ logical, do_dress_with_alpha_buffer ]
|
|
|
|
!&BEGIN_PROVIDER [ logical, do_dress_with_generator ]
|
|
|
|
! implicit none
|
|
|
|
! do_dress_with_alpha = .false.
|
|
|
|
! do_dress_with_alpha_buffer = .true.
|
|
|
|
! do_dress_with_generator = .false.
|
|
|
|
!END_PROVIDER
|
|
|
|
|
|
|
|
subroutine dress_with_alpha_buffer(delta_ij_loc, minilist, n_minilist, abuf, n_abuf)
|
|
|
|
use bitmasks
|
|
|
|
implicit none
|
|
|
|
double precision,intent(inout) :: delta_ij_loc(N_states,N_det,2)
|
|
|
|
integer, intent(in) :: n_minilist, n_abuf
|
2018-02-15 13:42:55 +01:00
|
|
|
integer(bit_kind),intent(in) :: abuf(N_int, 2, n_abuf)
|
|
|
|
integer :: minilist(n_minilist)
|
2018-02-14 10:33:11 +01:00
|
|
|
integer :: a, i, nref, nobt, deg
|
2018-02-15 13:42:55 +01:00
|
|
|
integer :: refc(N_det), testc(N_det)
|
2018-02-14 10:33:11 +01:00
|
|
|
|
|
|
|
do a=1,n_abuf
|
2018-02-15 13:42:55 +01:00
|
|
|
refc = 0
|
|
|
|
testc = 0
|
2018-02-14 10:33:11 +01:00
|
|
|
do i=1,N_det
|
2018-02-15 13:42:55 +01:00
|
|
|
call get_excitation_degree(psi_det_sorted(1,1,i), abuf(1,1,a), deg, N_int)
|
2018-02-15 14:07:20 +01:00
|
|
|
if(deg <= 2) refc(i) = refc(i) + 1
|
2018-02-14 10:33:11 +01:00
|
|
|
end do
|
|
|
|
do i=1,n_minilist
|
2018-02-15 13:42:55 +01:00
|
|
|
call get_excitation_degree(psi_det_sorted(1,1,minilist(i)), abuf(1,1,a), deg, N_int)
|
|
|
|
if(deg <= 2) then
|
2018-02-15 14:07:20 +01:00
|
|
|
testc(minilist(i)) += 1
|
2018-02-15 13:42:55 +01:00
|
|
|
else
|
|
|
|
stop "NON LIKED"
|
|
|
|
end if
|
|
|
|
end do
|
|
|
|
|
|
|
|
do i=1,N_det
|
|
|
|
if(refc(i) /= testc(i)) then
|
|
|
|
print *, "foir ", sum(refc), sum(testc), n_minilist
|
|
|
|
exit
|
|
|
|
end if
|
2018-02-14 10:33:11 +01:00
|
|
|
end do
|
|
|
|
end do
|
|
|
|
|
|
|
|
delta_ij_loc = 1d0
|
|
|
|
end subroutine
|
|
|
|
|
|
|
|
|