Skip to content

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