anchor.diff:      do i=1,sze
         d = 0
         exchange_1 = 0
  +      exchange_2 = 0
         !DIR$ LOOP COUNT MIN(4)
         do m=1,Nint
           d = d + popcnt(xor( key1(m,1,i), key2(m,1)))                 &
                 + popcnt(xor( key1(m,2,i), key2(m,2)))
  -        exchange_1 = popcnt(xor(iand(key1(m,1,i),key1(m,2,i)),iand(key2(m,1),key2(m,2))))  
  -        exchange_2 = popcnt(iand(xor(key1(m,1,i),key2(m,1)),xor(key1(m,2,i),key2(m,2))))   
  +        exchange_1 += popcnt(xor(iand(key1(m,1,i),key1(m,2,i)),iand(key2(m,1),key2(m,2))))  
  +        exchange_2 += popcnt(iand(xor(key1(m,1,i),key2(m,1)),xor(key1(m,2,i),key2(m,2))))   
         enddo
         if (d > 4)cycle
         if (d ==4)then  
  
positive.code:       degree = sum(popcnt(xorvec(1:8)))
  
      case default
        do l=1,ishft(Nint,1)
          xorvec(l) = xor( key1(l), key2(l))
        enddo
        degree = sum(popcnt(xorvec(1:l)))
    
    end select
  
  
negative.code:       degree = sum(popcnt(xorvec(1:4)))
  
      case default
        do l=1,Nint
          xorvec(l) = xor( key1(l), key2(l))
        enddo
        degree = sum(popcnt(xorvec(1:Nint)))
  