anchor.diff:    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
  
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_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
  