anchor.diff:        ! added for turning >>>
         if (isFirst .eqv. .true.) then
           !$ numOfThread = omp_get_max_threads()
  +        numOfBlock = numOfThread * numOfBlockPerThread
  +        allocate (startPos(0 : numOfBlock - 1), endPos(0 : numOfBlock - 1))
           numOfElement = N + indexL(N) + indexU(N)
  -        numOfElementPerRow = dble(numOfElement) / N
  -        ! adjust numOfBlockPerThread (mainly for small data)
  -        do
  -          numOfBlock = numOfThread * numOfBlockPerThread
  -          numOfElementPerBlock = dble(numOfElement) / numOfBlock
  -          if (numOfElementPerBlock >= numOfElementPerRow * 10 &
  -               .or. numOfBlockPerThread == 1) exit
  -          numOfBlockPerThread = numOfBlockPerThread / 2
  -        end do
  -        allocate (startPos(0 : numOfBlock - 1), endPos(0 : numOfBlock - 1))
  +        numOfElementPerBlock = dble(numOfElement) / numOfBlock
           blockNum = 0
           elementCount = 0
           startPos(blockNum) = 1
  
positive.code:       real(kind=kreal), pointer :: AL(:), AU(:), D(:)
  
        ! added for turning >>>
        integer, save :: numOfBlockPerThread = 128
        logical, save :: isFirst = .true.
        integer, save :: numOfThread = 1
        integer, save, allocatable :: startPos(:), endPos(:)
        integer(kind=kint), save :: sectorCacheSize0, sectorCacheSize1
        integer(kind=kint) :: threadNum, blockNum, numOfBlock
        integer(kind=kint) :: numOfElement, elementCount, blockIndex
        real(kind=kreal) :: numOfElementPerBlock, numOfElementPerRow
        ! <<< added for turning
  
        IF (hecmw_mat_get_usejad(hecMAT).ne.0) THEN
  
negative.code:           endif
          enddo
          endPos(blockNum) = N
          ! write(9000+hecMESH%my_rank,*) mod(blockNum, numOfThread), &
          !      startPos(blockNum), endPos(blockNum)
          ! for irregular data
          do i= blockNum+1, numOfBlock-1
            startPos(i) = N
            endPos(i) = N-1
            ! write(9000+hecMESH%my_rank,*) mod(i, numOfThread), &
            !      startPos(i), endPos(i)
          end do
  
          ! calculate sector cache size
          sectorCacheSize1 = int((dble(NP) * 3 * kreal / (4096 * 128)) + 0.999)
  