anchor.diff:      exc(1, 1, 1) = h2
       exc(1, 1, 2) = h1
   
  +    do p2=1, mo_tot_num
  +    if(banned(p2 + ns2)) cycle
       do p1=1, mo_tot_num
  -    do p2=1, mo_tot_num
  +      if(banned(p1 + ns1)) cycle
  +      if(banned_pair(p1 + ns1, p2 + ns2)) cycle
         call apply_particle(mask, (/s1,p1,s2,p2/), det2, ok, N_int)
         if(.not. ok) cycle
         mono = (h1 == p1 .or. h2 == p2)
         if(mono) then
  -        call i_h_j(gen, det2, N_int, phase)
  -        mat(p1, p2) = phase
  +        call i_h_j(gen, det2, N_int, mat(p1, p2))
         else
           exc(1, 2, s1) = p1
           exc(1, 2, s2) = p2
           call get_double_excitation_phase(gen, det2, exc, phase, N_int)
  -        mat(p1, p2) = mat_mwen(p1, p2) * phase
  +        mat(p1, p2) = integral8(p1, p2, h1, h2) * phase
         end if
       end do
       end do
  
positive.code:         call check_past_s(exc_det, microlist(1,1,ptr_microlist(sporb)), N_microlist(sporb) - N_futur_microlist(sporb), nok, N_int)
          if(nok) cycle
          !DET DRIVEN
          if(N_futur_microlist(0) > 0) then
            call i_H_psi(exc_det,microlist(1,1,ptr_futur_microlist(0)),psi_coef_microlist(ptr_futur_microlist(0), 1),N_int,N_futur_microlist(0),psi_selectors_size*4,N_states,i_H_psi_value)
          end if
          !INTEGRAL DRIVEN
  !       i_H_psi_value = d0s(mod(p1-1, mo_tot_num)+1, mod(p2-1, mo_tot_num)+1, :)
  
          
          if(N_futur_microlist(sporb) > 0) then
  
negative.code: 
  
  BEGIN_PROVIDER [ double precision, integral8, (mo_tot_num,  mo_tot_num, mo_tot_num, mo_tot_num) ]
    integral8 = 0d0
    integer :: h1, h2
    print *, "provide int"
    do h1=1, mo_tot_num
    do h2=1, mo_tot_num
      call get_mo_bielec_integrals_ij(h1, h2 ,mo_tot_num,integral8(1,1,h1,h2),mo_integrals_map)
    end do
    end do
    print *, "end provide int"
  END_PROVIDER
  
  
  subroutine selection_slave(thread,iproc)
  