anchor.diff:     call AllocAry(shpder, p%nodes_per_elem, 1,"local shape deriv function",ErrStat2, ErrMsg2)
   
      call BD_GenerateGLL(p%nodes_per_elem,gll,ErrStat2,ErrMsg2)
  -   call bd_diffmtc(p%nodes_per_elem, gll, eta_local, 1, shp, shpder)
  +   call bd_diffmtc(p%nodes_per_elem, gll, eta_local, 1, shp, shpder) ! evaluate shp and shpder at single point
   
      pos = 0._BDki
      crv = 0._BDki
      do i = 1, p%nodes_per_elem
         do j = 1, 3
  -         pos(j) = pos(j) + p%uuN0(j,i,element)*shp(i,1)
  +         pos(j) = pos(j) + p%uuN0(j,  i,element)  *shp(i,1)
            CRV(j) = CRV(j) + p%uuN0(j+3,i,element)*shp(i,1)
         enddo 
      enddo
  
positive.code: 
   END SUBROUTINE BD_diffmtc
  !-----------------------------------------------------------------------------------------------------------------------------------
  !> This subroutine computes initial CRV parameters
  !! given geometry information
  SUBROUTINE BD_Interp_Pos_CRV(p, eta, POS, CRV, ErrStat, ErrMsg)
  
     type(BD_ParameterType),       intent(in   )  :: p                   !< Parameters
     real(BDki),                   intent(in   )  :: eta
     real(BDki),                   intent(  out)  :: POS(3)
     real(BDki),                   intent(  out)  :: CRV(3)
  
     INTEGER(IntKi), INTENT(  OUT)  :: ErrStat       !< Error status of the operation
     CHARACTER(*),   INTENT(  OUT)  :: ErrMsg        !< Error message if ErrStat /= ErrID_None
  
     ! local variables
  
     integer(IntKi) :: i
     integer(IntKi) :: j
     integer(IntKi) :: found
     integer(IntKi) :: element
     real(BDki)     :: eta_left
     real(BDki)     :: eta_right
     real(BDki)     :: eta_local(1)
  
     real(BDki),allocatable     :: gll(:)
     real(BDki),allocatable     :: shp(:,:)
     real(BDki),allocatable     :: shpder(:,:)
  
     INTEGER(IntKi)                 :: ErrStat2      ! Temporary Error status
     CHARACTER(ErrMsgLen)           :: ErrMsg2       ! Temporary Error message
  
negative.code:       endif
     enddo
  
     ! need to evaluate shp and shpder at eta_local in [-1,1] for the found element
     eta_local(1) = 2._BDKi * (eta - eta_left)/p%member_eta(element) - 1._BDKi
  
     call AllocAry(gll, p%nodes_per_elem, "local GLL nodes",ErrStat2, ErrMsg2)
  