anchor.diff:      integer(kind=kint) :: N, NP
       integer(kind=kint), pointer :: indexL(:), itemL(:), indexU(:), itemU(:)
       real(kind=kreal), pointer :: AL(:), AU(:), D(:)
  -    integer(kind=kint) :: ireq
  +    !COMM_HIDING! integer(kind=kint) :: ireq
   
       ! added for turning >>>
       integer, parameter :: numOfBlockPerThread = 100
  
positive.code:       END_TIME = hecmw_Wtime()
        time_Ax = time_Ax + END_TIME - START_TIME
  
        START_TIME= HECMW_WTIME()
        call hecmw_update_3_R_wait (hecMESH, ireq)
        END_TIME= HECMW_WTIME()
        if (present(COMMtime)) COMMtime = COMMtime + END_TIME - START_TIME
  
        START_TIME = hecmw_Wtime()
  
        do i = 1, N
          YV1= 0.d0
          YV2= 0.d0
          YV3= 0.d0
          jS= indexU(i-1) + 1
          jE= indexU(i  )
          do j= jS, jE
            in  = itemU(j)
            if (in <= N) cycle
            X1= X(3*in-2)
            X2= X(3*in-1)
            X3= X(3*in  )
            YV1= YV1 + AU(9*j-8)*X1 + AU(9*j-7)*X2 + AU(9*j-6)*X3
            YV2= YV2 + AU(9*j-5)*X1 + AU(9*j-4)*X2 + AU(9*j-3)*X3
            YV3= YV3 + AU(9*j-2)*X1 + AU(9*j-1)*X2 + AU(9*j  )*X3
          enddo
          Y(3*i-2)= Y(3*i-2)+YV1
          Y(3*i-1)= Y(3*i-1)+YV2
          Y(3*i  )= Y(3*i  )+YV3
        enddo
  
        END_TIME = hecmw_Wtime()
        time_Ax = time_Ax + END_TIME - START_TIME
  
      ENDIF
  
  
negative.code:       ! <<< added for turning
  
        START_TIME= HECMW_WTIME()
        call hecmw_update_3_R (hecMESH, X, NP)
        !COMM_HIDING! call hecmw_update_3_R_async (hecMESH, X, NP, ireq)
        END_TIME= HECMW_WTIME()
        if (present(COMMtime)) COMMtime = COMMtime + END_TIME - START_TIME
  
  