      subroutine sortselect(dl,dm2,dm1,n,m)! 选择法递增排序
      implicit none
      integer :: n,m,i,j,k !n行，列；二维按行排序
      real*8 :: dl(n),dm2(n,m),dm1(n)
      real*8 :: tmp,t2(1000000)
      k=n/2             ! k 的初值
      do while( k>0 )
         do i=k+1,n
           j=i-k
           do while( j>0 )
             if ( dl(j)> dl(j+k) ) then
                tmp=dl(j);dl(j)=dl(j+k);dl(j+k)=tmp
                tmp=dm1(j);dm1(j)=dm1(j+k);dm1(j+k)=tmp
                t2(1:m)=dm2(j,1:m);dm2(j,1:m)=dm2(j+k,1:m)
                dm2(j+k,1:m)=t2(1:m);j=j-k
             else
                exit ! a(j)<a(j+k)时可跳出循环
             end if
           end do
         end do
         k=k/2 ! 设定新的k值
      end do
      return
      end
