subroutine iteration_output_wrapper(iter_data, tot_parts_new, &
replica_pairs, t_comm_req)
type(fcimc_iter_data), intent(inout) :: iter_data
real(dp), dimension(lenof_sign), intent(in) :: tot_parts_new
real(dp), dimension(lenof_sign) :: tot_parts_new_all
logical, intent(in) :: replica_pairs
logical, intent(in), optional :: t_comm_req
logical :: t_do_comm
! The comm can be switched off
if (present(t_comm_req)) then
t_do_comm = t_comm_req
else
t_do_comm = .true.
end if
if (t_do_comm) &
call communicate_estimates(iter_data, tot_parts_new, tot_parts_new_all, .true.)
if (tPrintDataTables) &
call write_to_stats()
contains
subroutine write_to_stats()
! Write the current output cycle's stats to the FCIMCStats/fciqmc_stats output file
! + stdout
! adjust the trial numerator for output (add in the offset)
if (tTrialWavefunction) then
tot_trial_numerator = relative_trial_numerator( &
tot_trial_numerator, tot_trial_denom, replica_pairs)
if (tTruncInitiator) &
tot_init_trial_numerator = relative_trial_numerator( &
tot_init_trial_numerator, tot_init_trial_denom, replica_pairs)
end if
call output_diagnostics()
if (tFCIMCStats2) then
call write_fcimcstats2(iter_data_fciqmc)
else
call WriteFCIMCStats()
end if
! reset accumulated output variables
call rezero_output_stats()
end subroutine write_to_stats
end subroutine iteration_output_wrapper