anchor.diff:      
       if(nt > 4) then !! TOO MANY DIFFERENCES
         continue
  -    else if(nt < 3 .and. i < i_cur) then
  -      N_microlist = 0  !!!! PAST LINKED TO EVERYBODY!
  -      ptr_microlist = 1
  -      return  
  -    else if(nt == 4) then
  +    else if(nt < 3) then
  +      if(i < i_cur) then
  +        N_microlist = 0  !!!! PAST LINKED TO EVERYBODY!
  +        ptr_microlist = 1
  +        N_tmicrolist = 0  !!!! PAST LINKED TO EVERYBODY!
  +        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)
  -          nt = list(j,s) + mo_tot_num * (s-1)
  -          N_microlist(nt) = N_microlist(nt) + 1
  +          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
         end do
  -    else
  -      N_microlist(0) = N_microlist(0) + 1
       endif
     end do
     
     ptr_microlist(0) = 1
  +  ptr_tmicrolist(0) = 1
     do i=1,mo_tot_num_2+1
       ptr_microlist(i) = ptr_microlist(i-1) + N_microlist(i-1)
  +    ptr_tmicrolist(i) = ptr_tmicrolist(i-1) + N_tmicrolist(i-1)
     end do
   
     do i=0,mo_tot_num_2+1
       cur_microlist(i) = ptr_microlist(i)
  +    cur_tmicrolist(i) = ptr_tmicrolist(i)
     end do
     
     
  
positive.code:       continue
      else if(nt < 3) then
        if(i < i_cur) then !!!!!!!!!!!!!!!!!!!!! DESACTIVADO
          print *, i, i_cur
          N_microlist(:) = 0  !!!! PAST LINKED TO EVERYBODY!
          ptr_microlist(:) = 1
          return  
  
negative.code:       s += popcnt(xor(det(ni,1), list(ni,1,i))) + popcnt(xor(det(ni,2), list(ni,2,i)))
      end do
      if(s <= 4) then
        ok = .true.
        return
      end if
  