mirror of
https://github.com/LCPQ/quantum_package
synced 2024-11-03 20:54:00 +01:00
checkpoints were triggered at wrong time
This commit is contained in:
parent
db5d329062
commit
159b4ce498
@ -218,10 +218,11 @@ subroutine mrcc_collector(E, relative_error, delta, delta_s2, mrcc)
|
|||||||
if(time - timeLast > 1d0 .or. more /= 1) then
|
if(time - timeLast > 1d0 .or. more /= 1) then
|
||||||
timeLast = time
|
timeLast = time
|
||||||
cur_cp = N_cp
|
cur_cp = N_cp
|
||||||
if(.not. actually_computed(1)) cycle pullLoop
|
if(.not. actually_computed(mrcc_jobs(1))) cycle pullLoop
|
||||||
|
|
||||||
do i=2,N_det_generators
|
do i=2,N_det_generators
|
||||||
if(.not. actually_computed(i)) then
|
if(.not. actually_computed(mrcc_jobs(i))) then
|
||||||
|
print *, "first not comp", i
|
||||||
cur_cp = done_cp_at(i-1)
|
cur_cp = done_cp_at(i-1)
|
||||||
exit
|
exit
|
||||||
end if
|
end if
|
||||||
@ -249,7 +250,8 @@ subroutine mrcc_collector(E, relative_error, delta, delta_s2, mrcc)
|
|||||||
E0 = E0 + mrcc_detail(1, first_det_of_teeth(cp_first_tooth(cur_cp))) * (1d0-fractage(cp_first_tooth(cur_cp)))
|
E0 = E0 + mrcc_detail(1, first_det_of_teeth(cp_first_tooth(cur_cp))) * (1d0-fractage(cp_first_tooth(cur_cp)))
|
||||||
end if
|
end if
|
||||||
call wall_time(time)
|
call wall_time(time)
|
||||||
if ((dabs(eqt) < relative_error*0d0 .and. cps_N(cur_cp) >= 30) .or. total_computed >= N_det_generators) then
|
!if ((dabs(eqt) < relative_error*0d0 .and. cps_N(cur_cp) >= 30) .or. total_computed == N_det_generators) then
|
||||||
|
if(cur_cp > 10) then
|
||||||
! Termination
|
! Termination
|
||||||
!print '(G10.3, 2X, F16.7, 2X, G16.3, 2X, F16.4, A20)', Nabove(tooth), avg+E, eqt, time-time0, ''
|
!print '(G10.3, 2X, F16.7, 2X, G16.3, 2X, F16.4, A20)', Nabove(tooth), avg+E, eqt, time-time0, ''
|
||||||
print *, "GREPME", cur_cp, E+E0+avg, eqt, time-time0, total_computed
|
print *, "GREPME", cur_cp, E+E0+avg, eqt, time-time0, total_computed
|
||||||
@ -331,8 +333,11 @@ END_PROVIDER
|
|||||||
logical, allocatable :: computed(:)
|
logical, allocatable :: computed(:)
|
||||||
integer :: i, j, last_full, dets(comb_teeth)
|
integer :: i, j, last_full, dets(comb_teeth)
|
||||||
integer :: k, l, cur_cp, under_det(comb_teeth+1)
|
integer :: k, l, cur_cp, under_det(comb_teeth+1)
|
||||||
|
integer, allocatable :: iorder(:), first_cp(:)
|
||||||
|
|
||||||
|
allocate(iorder(N_det_generators), first_cp(N_cps_max+1))
|
||||||
allocate(computed(N_det_generators))
|
allocate(computed(N_det_generators))
|
||||||
|
first_cp = 1
|
||||||
cps = 0d0
|
cps = 0d0
|
||||||
cur_cp = 1
|
cur_cp = 1
|
||||||
done_cp_at = 0
|
done_cp_at = 0
|
||||||
@ -354,6 +359,7 @@ END_PROVIDER
|
|||||||
|
|
||||||
if(N_mrcc_jobs / gen_per_cp > (cur_cp-1) .or. N_mrcc_jobs == N_det_generators) then
|
if(N_mrcc_jobs / gen_per_cp > (cur_cp-1) .or. N_mrcc_jobs == N_det_generators) then
|
||||||
!if(mod(i, comb_per_cp) == 0 .or. N_mrcc_jobs == N_det_generators) then
|
!if(mod(i, comb_per_cp) == 0 .or. N_mrcc_jobs == N_det_generators) then
|
||||||
|
first_cp(cur_cp+1) = N_mrcc_jobs
|
||||||
done_cp_at(N_mrcc_jobs) = cur_cp
|
done_cp_at(N_mrcc_jobs) = cur_cp
|
||||||
cps_N(cur_cp) = dfloat(i)
|
cps_N(cur_cp) = dfloat(i)
|
||||||
if(N_mrcc_jobs /= N_det_generators) then
|
if(N_mrcc_jobs /= N_det_generators) then
|
||||||
@ -407,6 +413,10 @@ END_PROVIDER
|
|||||||
cps(:, N_cp) = 0d0
|
cps(:, N_cp) = 0d0
|
||||||
cp_first_tooth(N_cp) = comb_teeth+1
|
cp_first_tooth(N_cp) = comb_teeth+1
|
||||||
|
|
||||||
|
iorder = -1132154665
|
||||||
|
do i=1,N_cp-1
|
||||||
|
call isort(mrcc_jobs(first_cp(i)+1:first_cp(i+1)),iorder,first_cp(i+1)-first_cp(i))
|
||||||
|
end do
|
||||||
! end subroutine
|
! end subroutine
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user