anchor.diff:      TIMELOG_END(LOG_HPSI_INIT)
     end subroutine
   
  +#ifdef ARTED_LBLK
  +  subroutine init_LBLK(tpsi,zu, ikb_s,ikb_e,ia)
  +    use Global_Variables, only: NLx,NLy,NLz
  +    use opt_variables, only: PNLx,PNLy,PNLz
  +    use timelog
  +    implicit none
  +    integer :: ikb_s,ikb_e, ia
  +    complex(8) :: tpsi(0:PNLz-1,0:PNLy-1,0:PNLx-1, 4, ikb_s:ikb_e)
  +    complex(8) :: zu(0:NLz-1,0:NLy-1,0:NLx-1, NBoccmax, NK_s:NK_e)
  +    integer :: ikb,ik,ib, ix,iy,iz
  +
  +    TIMELOG_BEG(LOG_HPSI_INIT)
  +    do ikb=ikb_s,ikb_e
  +      ik=ik_table(ikb)
  +      ib=ib_table(ikb)
  +      do ix=0,NLx-1
  +      do iy=0,NLy-1
  +      do iz=0,NLz-1
  +        tpsi(iz,iy,ix, ia,ikb)=zu(iz,iy,ix, ib,ik)
  +      end do
  +      end do
  +      end do
  +    end do
  +    TIMELOG_END(LOG_HPSI_INIT)
  +  end subroutine
  +#endif
  +
     subroutine update(zfac,tpsi,zu)
       use Global_Variables, only: NLx,NLy,NLz
       use opt_variables, only: PNLx,PNLy,PNLz
  
positive.code:   integer    :: iexp
    complex(8) :: zfac(4)
  #ifdef ARTED_LBLK
    integer    :: ikb0,ikb1,num_ikb1
    integer    :: idx_b,idx
  #endif
  #ifdef ARTED_SC
    integer    :: loop_count
  
negative.code:       idx = idx_b + ikb1
  
        call init(ztpsi(:,4,idx),zu(:,ib,ik))
      enddo
  #endif
  
      do ikb1 = 0, num_ikb1-1
        ikb = ikb0 + ikb1
        ik=ik_table(ikb)
        ib=ib_table(ikb)
        idx = idx_b + ikb1
  
        call hpsi_omp_KB_RT(ik,ztpsi(:,4,idx),ztpsi(:,1,idx))
        call hpsi_omp_KB_RT(ik,ztpsi(:,1,idx),ztpsi(:,2,idx))
        call hpsi_omp_KB_RT(ik,ztpsi(:,2,idx),ztpsi(:,3,idx))
  