subroutine end_iteration_print_warn (totWalkersNew)
! Worker function for PerformFciMCycPar. Prints warnings about
! particle blooms and memory usage.
integer, intent(in) :: totWalkersNew
integer :: i
real(dp) :: rat
! Too many particles?
rat = real(TotWalkersNew,dp) / real(MaxWalkersPart,dp)
if (rat > 0.95_dp) then
#ifdef DEBUG_
if(tMolpro) then
write(stderr, '(a)') '*WARNING* - Number of particles/determinants &
&has increased to over 95% of allotted memory. &
&Errors imminent. Increase MEMORYFACWALKERS, or reduce rate of growth.'
else
write(stderr, '(a)') '*WARNING* - Number of particles/determinants &
&has increased to over 95% of allotted memory. &
&Errors imminent. Increase MEMORYFACPART, or reduce rate of growth.'
end if
#else
if(tMolpro) then
write(stderr,*) '*WARNING* - Number of particles/determinants &
&has increased to over 95% of allotted memory on task ', iProcIndex, '. &
&Errors imminent. Increase MEMORYFACWALKERS, or reduce rate of growth.'
else
write(stderr,*) '*WARNING* - Number of particles/determinants &
&has increased to over 95% of allotted memory on task ', iProcIndex, '. &
&Errors imminent. Increase MEMORYFACPART, or reduce rate of growth.'
end if
#endif
call neci_flush(stderr)
end if
! Are ony of the sublists near the end of their alloted space?
if (nNodes > 1) then
do i = 0, nNodes-1
rat = real(ValidSpawnedList(i) - InitialSpawnedSlots(i),dp) /&
real(InitialSpawnedSlots(1), dp)
if (rat > 0.95_dp) then
#ifdef DEBUG_
if(tMolpro) then
write(stderr, '(a)') '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory.&
&Errors imminent. Increase MEMORYFACSPAWNED, or reduce spawning rate.'
else
write(stderr, '(a)') '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory.&
&Errors imminent. Increase MEMORYFACSPAWN, or reduce spawning rate.'
end if
#else
if(tMolpro) then
write(stderr,*) '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory on task ',iProcIndex,' .&
&Errors imminent. Increase MEMORYFACSPAWNED, or reduce spawning rate.'
else
write(stderr,*) '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory on task ',iProcIndex,' .&
&Errors imminent. Increase MEMORYFACSPAWN, or reduce spawning rate.'
end if
#endif
call neci_flush(stderr)
end if
end do
else
rat = real(ValidSpawnedList(0), dp) / real(MaxSpawned, dp)
if (rat > 0.95_dp) then
#ifdef DEBUG_
if(tMolpro) then
write(stderr, '(a)') '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory.&
&Errors imminent. Increase MEMORYFACSPAWNED, or reduce spawning rate.'
else
write(stderr, '(a)') '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory.&
&Errors imminent. Increase MEMORYFACSPAWN, or reduce spawning rate.'
end if
#else
if(tMolpro) then
write(stderr,*) '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory on task ',iProcIndex,' .&
&Errors imminent. Increase MEMORYFACSPAWNED, or reduce spawning rate.'
else
write(stderr,*) '*WARNING* - Highest processor spawned &
&particles has reached over 95% of allotted memory on task ',iProcIndex,' .&
&Errors imminent. Increase MEMORYFACSPAWN, or reduce spawning rate.'
end if
#endif
call neci_flush(stderr)
end if
end if
end subroutine end_iteration_print_warn