anchor.diff:              call i_h_j (keys_tmp(1,1,org_j),keys_tmp(1,1,org_i),nint,hij)
               call get_s2(keys_tmp(1,1,org_j),keys_tmp(1,1,org_i),nint,s2)
               do istate=1,n_st
  -              vt (istate,org_i) = vt (istate,org_i) + hij*ut(istate,org_j)
  -              vt (istate,org_j) = vt (istate,org_j) + hij*ut(istate,org_i)
  -              st (istate,org_i) = st (istate,org_i) + s2*ut(istate,org_j)
  -              st (istate,org_j) = st (istate,org_j) + s2*ut(istate,org_i)
  +              vt (istate,org_i) = vt (istate,org_i) + hij*ut(istate,j)
  +              st (istate,org_i) = st (istate,org_i) + s2*ut(istate,j)
               enddo
           end if
         end do
       end do
     enddo
  -  !$OMP END DO NOWAIT
  +  !$OMP END DO
  +
  +  !$OMP DO
  +  do i=1,n
  +    do istate=1,N_st
  +      ut(istate,i) = u_0(sort_idx(i,1),istate)
  +    enddo
  +  enddo
  +  !$OMP END DO
  +
  +  !$OMP DO SCHEDULE(dynamic)
     do sh=1,shortcut(0,1)
  -    !$OMP DO SCHEDULE(dynamic)
  -    do sh2=sh,shortcut(0,1)
  +    do sh2=1,shortcut(0,1)
         exa = 0
         do ni=1,Nint
           exa = exa + popcnt(xor(version(ni,sh,1), version(ni,sh2,1)))
  
positive.code:           call i_H_j(keys_tmp(1,1,org_j),keys_tmp(1,1,org_i),Nint,hij)
            do istate=1,N_st
              vt (istate,org_i) = vt (istate,org_i) + hij*ut(istate,org_j)
              vt (istate,org_j) = vt (istate,org_j) + hij*ut(istate,org_i)
            enddo
          enddo jloop
        enddo
  
negative.code: 
        do i=shortcut(sh,1),shortcut(sh+1,1)-1
          org_i = sort_idx(i,1)
          do ni=1,Nint
            sorted_i(ni) = sorted(ni,i,1)
          enddo
  
          do j=shortcut(sh2,1),shortcut(sh2+1,1)-1
            if (i==j) cycle
            ext = exa + popcnt(xor(sorted_i(1), sorted(1,j,1)))
            if (ext > 4) cycle
            do ni=2,Nint
  