anchor.diff:  
   
   
  -
  +BEGIN_PROVIDER [ logical, initialize_E0_denominator ]
  +    implicit none
  +    BEGIN_DOC
  +    ! If true, initialize pt2_E0_denominator
  +    END_DOC
  +    initialize_E0_denominator = .True.
  +END_PROVIDER
  +   
  +BEGIN_PROVIDER [ double precision, E0_denominator, (N_states) ]
  +  implicit none
  +  BEGIN_DOC
  +  ! E0 in the denominator of the PT2
  +  END_DOC
  +  if (initialize_E0_denominator) then
  +   E0_denominator(1:N_states) = psi_energy(1:N_states)
  + ! call ezfio_get_full_ci_zmq_energy(pt2_E0_denominator(1))
  + ! pt2_E0_denominator(1) -= nuclear_repulsion
  + ! pt2_E0_denominator(1:N_states) = HF_energy - nuclear_repulsion
  + ! pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states)
  +  else
  +    E0_denominator = -huge(1.d0)
  +  endif
  +END_PROVIDER
  
positive.code:   double precision :: hii, hij, sij, delta_e
    double precision, external :: diag_H_mat_elem_fock
    integer                        :: i,j,k,l,m, l_sd
    
  
    if(current_generator_(iproc) /= i_gen) then
      current_generator_(iproc) = i_gen
      call build_fock_tmp(fock_diag_tmp_(1,1,iproc),psi_det_generators(1,1,i_gen),N_int)
    end if
    !return
    hii = diag_H_mat_elem_fock(psi_det_generators(1,1,i_gen),alpha,fock_diag_tmp_(1,1,iproc),N_int)
    
  
    do l_sd=1,n_minilist
      call i_h_j_s2(alpha,det_minilist(1,1,l_sd),N_int,hij, sij)
      do i=1,N_states
        delta_ij_loc(i, minilist(l_sd), 1) += hij / hii * psi_coef(minilist(l_sd), i)
      end do
    end do
  end subroutine
  
  
negative.code:   BEGIN_DOC
    !delta_ij_loc(:,:,1) : dressing column for H
    !delta_ij_loc(:,:,2) : dressing column for S2
    !i_gen : generator index in psi_det_generators
    !minilist : indices of determinants connected to alpha ( in psi_det_sorted )
    !n_minilist : size of minilist
    !alpha : alpha determinant
  