anchor.diff:  
      REAL(ReKi)                                   :: temp_cc(3)
      REAL(ReKi)                                   :: temp_glb(3)
  +   REAL(ReKi)                                   :: temp3(3)
  +   REAL(ReKi)                                   :: temp_ref(3)
  +   REAL(ReKi)                                   :: temp_root(3)
      INTEGER(IntKi)                               :: ErrStat2                     ! Temporary Error status
      CHARACTER(ErrMsgLen)                         :: ErrMsg2                      ! Temporary Error message
      CHARACTER(*), PARAMETER                      :: RoutineName = 'BD_BoundaryGA2'
  
positive.code:    INTEGER(IntKi)                             :: temp_id
     REAL(ReKi)                                 :: temp3(3)
     REAL(ReKi)                                 :: temp_p0(3)
     REAL(ReKi)                                 :: temp_glb(3)
     TYPE(BD_InputType)                         :: u_tmp
     INTEGER(IntKi)                             :: ErrStat2                     ! Temporary Error status
  
negative.code:       CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
     CALL BD_CrvExtractCrv(p%GlbRot,temp_glb,ErrStat2,ErrMsg2)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
  !WRITE(*,*) 'temp_glb'
  !WRITE(*,*) temp_glb
  !WRITE(*,*) 'temp_ori'
  !WRITE(*,*) temp3
     DO i=1,p%elem_total
         IF( i .EQ. 1) THEN
             k = 1
  