anchor.diff:    end do
   end subroutine
   
  +
   subroutine check_past_s(det, list, N, ok, Nint)
     implicit none
     use bitmasks
  
positive.code:         ptr_tmicrolist = 1
          return  
        else
          N_microlist(0) = N_microlist(0) + 1
        endif
      else
        call bitstring_to_list(mobileMask(1,1), list(1,1), n_element(1), Nint)
        call bitstring_to_list(mobileMask(1,2), list(1,2), n_element(2), Nint)
        
        do s=1,2
          do j=1,n_element(s)
            k = list(j,s) + mo_tot_num * (s-1)
            if(nt == 4) N_microlist(k) = N_microlist(k) + 1
            if(nt == 3) N_tmicrolist(k) = N_tmicrolist(k) + 1
          end do
  
negative.code:   integer, intent(out) :: N_tmicrolist(0:mo_tot_num*2), ptr_tmicrolist(0:mo_tot_num*2+1), idx_tmicrolist(N_minilist*4)
    integer(bit_kind), intent(out) :: tmicrolist(Nint,2,N_minilist*4)
    
    integer :: i,j,k,s,nt,n_element(2,N_minilist), idx(0:N_minilist)
    integer :: list(4,2,N_minilist), cur_microlist(0:mo_tot_num*2+1), cur_tmicrolist(0:mo_tot_num*2+1)
    integer(bit_kind) :: key_mask_neg(Nint,2), mobileMask(Nint,2)
    integer :: mo_tot_num_2
    mo_tot_num_2 = mo_tot_num+mo_tot_num
  
    idx(0) = 0
    do i=1,Nint
      key_mask_neg(i,1) = not(key_mask(i,1))
      key_mask_neg(i,2) = not(key_mask(i,2))
  