| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(fcimc_iter_data), | intent(inout) | :: | iter_data | |||
| real(kind=dp), | intent(in), | dimension(lenof_sign) | :: | tot_parts_new | ||
| logical, | intent(in) | :: | replica_pairs | |||
| logical, | intent(in), | optional | :: | t_comm_req |
subroutine calculate_new_shift_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 ! optional argument: if false is passed, do not do the shift update and diagnostics, ! only produce output logical, intent(in), optional :: t_comm_req logical :: t_do_comm ! TODO: use def_default once available if (present(t_comm_req)) then t_do_comm = t_comm_req else t_do_comm = .true. end if ! communication of trial wf properties is only done for output steps if (t_do_comm) & call communicate_estimates(iter_data, tot_parts_new, tot_parts_new_all, tCoupleCycleOutput) ! update the shift and rezero the cycle data call shift_update() call rezero_iter_stats_update_cycle(iter_data, tot_parts_new_all) contains subroutine shift_update() ! This is what defines the update of the shift call collate_iter_data(iter_data) call iter_diagnostics() if (tRestart) return call population_check() call update_shift(iter_data, replica_pairs) end subroutine shift_update end subroutine calculate_new_shift_wrapper