Reset fields when no update is proposed in Global_Updates
When the subroutine ham%Global_move
(which is defined by the user in the Hamiltonian file) is called within the subroutine Global_Updates
in the file Global_mod.F90, the nsigma%f
fields are changed and the T0_Proposal_ratio
is calculated with the new field configuration. But when the global move is not proposed, i.e. T0_Proposal_ratio = 0
, the nsigma%f
values have been changed by the user and are not reset to the initial values stored in nsigma_old%f
, since the if
block is skipped.
Call ham%Global_move(T0_Proposal_ratio,nsigma_old,size_clust)
If (T0_Proposal_ratio > 1.D-24) then
...
TOGGLE = .false.
if ( Weight > ranf_wrap() ) Then
TOGGLE = .true.
Phase_old = Phase_new
Phase_det_old = Phase_det_new
nsigma_old%t = nsigma%t
nsigma_old%f = nsigma%f
Det_vec_old = Det_vec_new
else
nsigma%t = nsigma_old%t
nsigma%f = nsigma_old%f
endif
...
endif