anchor.diff:     u_SrvD%RotSpeed  = y_ED%RotSpeed
      
      IF ( p_FAST%CompElast == Module_BD )  THEN    
  -   !bjj: FIX ME! TODO: need to get this from BeamDyn!!!!
  -      u_SrvD%RootMxc(:) = 0.0_ReKi
  -      u_SrvD%RootMyc(:) = 0.0_ReKi
  +
  +         ! translate "b" system output from BD into "c" system for SrvD
  +      do k=1,p_FAST%nBeams
  +         u_SrvD%RootMxc(k) =  y_BD(k)%RootMxr*COS(y_ED%BlPitch(k)) + y_BD(k)%RootMyr*SIN(y_ED%BlPitch(k))
  +         u_SrvD%RootMyc(k) = -y_BD(k)%RootMxr*SIN(y_ED%BlPitch(k)) + y_BD(k)%RootMyr*COS(y_ED%BlPitch(k))      
  +      end do
  +      
      ELSE
         u_SrvD%RootMxc = y_ED%RootMxc
         u_SrvD%RootMyc = y_ED%RootMyc
  
positive.code:    
     
     IF ( p_FAST%CompServo == Module_SrvD  ) THEN         
        CALL SrvD_InputSolve( p_FAST, m_FAST, SrvD%Input(1), ED%Output(1), IfW%y, OpFM%y, MeshmapData, ErrStat2, ErrMsg2 )    ! At initialization, we don't have a previous value, so we'll use the guess inputs instead. note that this violates the framework.... (done for the Bladed DLL)
        CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )  
     END IF         
                       
  
negative.code:                
  END SUBROUTINE ED_InputSolve
  !----------------------------------------------------------------------------------------------------------------------------------
  SUBROUTINE SrvD_InputSolve( p_FAST, m_FAST, u_SrvD, y_ED, y_IfW, y_OpFM, y_BD, MeshMapData, ErrStat, ErrMsg, y_SrvD_prev )
  ! This routine sets the inputs required for ServoDyn
  !..................................................................................................................................
  
  