From 02893a419de07c922708fe8ee2b828d9ebfd2e9b Mon Sep 17 00:00:00 2001 From: Yann Garniron Date: Fri, 31 Aug 2018 15:52:16 +0200 Subject: [PATCH] bug in blocked search - replaced with thesis version --- plugins/dress_zmq/dress_stoch_routines.irp.f | 23 ++++++++------------ 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/plugins/dress_zmq/dress_stoch_routines.irp.f b/plugins/dress_zmq/dress_stoch_routines.irp.f index 025600d6..395f945d 100644 --- a/plugins/dress_zmq/dress_stoch_routines.irp.f +++ b/plugins/dress_zmq/dress_stoch_routines.irp.f @@ -455,26 +455,21 @@ end subroutine integer function dress_find_sample(v, w) implicit none double precision, intent(in) :: v, w(0:N_det_generators) - integer :: i,l,h - integer, parameter :: block=64 + integer :: i,l,r l = 0 - h = N_det_generators + r = N_det_generators - do while(h-l >= block) - i = ishft(h+l,-1) - if(w(i+1) > v) then - h = i-1 + do while(r-l > 1) + i = (r+l) / 2 + if(w(i) < v) then + l = i else - l = i+1 - end if - end do - !DIR$ LOOP COUNT (64) - do dress_find_sample=l,h - if(w(dress_find_sample) >= v) then - exit + r = i end if end do + + dress_find_sample = r end function