anchor.diff:        CHARACTER(*),                  INTENT(  OUT)  :: ErrMsg      !< Error message if ErrStat /= ErrID_None
   
         ! local variables
  -      REAL(ReKi), dimension(3)                   :: a_G_N
  -      REAL(ReKi), dimension(3)                   :: F_P_N
  -      REAL(ReKi), dimension(3)                   :: M_P_N
  -
   !FIXME: combine with blade points and moveto miscvars
  -!      REAL(ReKi), allocatable, dimension(:,:)    :: a_G_N
  -!      REAL(ReKi), allocatable, dimension(:,:)    :: F_P_N
  -!      REAL(ReKi), allocatable, dimension(:,:)    :: M_P_N
  +      REAL(ReKi), allocatable, dimension(:,:)    :: a_G
  +      REAL(ReKi), allocatable, dimension(:,:)    :: F_P
  +      REAL(ReKi), allocatable, dimension(:,:)    :: M_P
   
         !nacelle movement in local coordinates
  -      Real(ReKi), dimension(3)                   :: r_ddot_P_N
  -      Real(ReKi), dimension(3)                   :: omega_N_O_N
  -      Real(ReKi), dimension(3)                   :: alpha_N_O_N
  +      real(ReKi), allocatable, dimension(:,:)    :: rddot_P
  +      real(ReKi), allocatable, dimension(:,:)    :: omega_P
  +      real(ReKi), allocatable, dimension(:,:)    :: alpha_P
   
   !FIXME: once we generalize this, move it to miscvars
  -      REAL(ReKi), allocatable, dimension(:,:)    :: a_G_B
  -      REAL(ReKi), allocatable, dimension(:,:)    :: F_P_B
  -      REAL(ReKi), allocatable, dimension(:,:)    :: M_P_B
         ! Blade motion
  -      real(ReKi), allocatable, dimension(:,:)    :: r_ddot_P_B
  -      real(ReKi), allocatable, dimension(:,:)    :: omega_B_O_B
  -      real(ReKi), allocatable, dimension(:,:)    :: alpha_B_O_B
  -      Real(ReKi), allocatable, dimension(:)      :: F_x_btmdY_P_B
  -      Real(ReKi), allocatable, dimension(:)      :: F_z_btmdY_P_B
  -      Real(ReKi), allocatable, dimension(:)      :: F_y_btmdX_P_B
  -      Real(ReKi), allocatable, dimension(:)      :: F_z_btmdX_P_B
  +      Real(ReKi), allocatable, dimension(:)      :: F_x_tmdY_P
  +      Real(ReKi), allocatable, dimension(:)      :: F_z_tmdY_P
  +      Real(ReKi), allocatable, dimension(:)      :: F_y_tmdX_P
  +      Real(ReKi), allocatable, dimension(:)      :: F_z_tmdX_P
   
         !dependent accelerations
  -      Real(ReKi)                                 :: F_x_tmdY_P_N
  -      Real(ReKi)                                 :: F_z_tmdY_P_N
  -      Real(ReKi)                                 :: F_y_tmdX_P_N
  -      Real(ReKi)                                 :: F_z_tmdX_P_N
  -
  -      Real(ReKi)                                 :: F_x_tmdXY_P_N
  -      Real(ReKi)                                 :: F_z_tmdXY_P_N
  -      Real(ReKi)                                 :: F_y_tmdXY_P_N
  -
  -     ! Fore-aft TLCD reactionary forces !MEG & SP
  -     Real(ReKi) :: F_x_tlcd_WR_N
  -     Real(ReKi) :: F_y_tlcd_WR_N
  -     Real(ReKi) :: F_x_tlcd_WL_N
  -     Real(ReKi) :: F_y_tlcd_WL_N
  -     Real(ReKi) :: F_y_tlcd_WH_N
  -     Real(ReKi) :: F_z_tlcd_WH_N
  -
  -     ! Side-side orthogonal TLCD reactionary forces !MEG & SP
  -     Real(ReKi) :: F_x_otlcd_WB_N
  -     Real(ReKi) :: F_y_otlcd_WB_N
  -     Real(ReKi) :: F_x_otlcd_WF_N
  -     Real(ReKi) :: F_y_otlcd_WF_N
  -     Real(ReKi) :: F_x_otlcd_WH_N
  -     Real(ReKi) :: F_z_otlcd_WH_N
  +      Real(ReKi), allocatable, dimension(:)      :: F_x_tmdXY_P_N
  +      Real(ReKi), allocatable, dimension(:)      :: F_z_tmdXY_P_N
  +      Real(ReKi), allocatable, dimension(:)      :: F_y_tmdXY_P_N
  +
  +      ! Fore-aft TLCD reactionary forces !MEG & SP
  +      Real(ReKi), allocatable, dimension(:)       :: F_x_tlcd_WR_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_y_tlcd_WR_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_x_tlcd_WL_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_y_tlcd_WL_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_y_tlcd_WH_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_z_tlcd_WH_N
  +
  +      ! Side-side orthogonal TLCD reactionary forces !MEG & SP
  +      Real(ReKi), allocatable, dimension(:)       :: F_x_otlcd_WB_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_y_otlcd_WB_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_x_otlcd_WF_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_y_otlcd_WF_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_x_otlcd_WH_N
  +      Real(ReKi), allocatable, dimension(:)       :: F_z_otlcd_WH_N
   
         TYPE(TMD_ContinuousStateType)              :: dxdt    ! first time derivative of continuous states
   
         integer(IntKi)       :: i,j         !< generic counter
  -      real(ReKi)           :: PrescribedForce(3)
  -      real(ReKi)           :: PrescribedMoment(3)
         integer(IntKi)       :: i_pt        ! Generic counter for mesh point
   
         ! Local error handling
  
positive.code: 
  CONTAINS
     subroutine CleanUp()
        if (allocated(a_G_B      )) deallocate(a_G_B      )
        if (allocated(rddot_B_B  )) deallocate(rddot_B_B  )
        if (allocated(omega_P_B  )) deallocate(omega_P_B  )
        if (allocated(alpha_P_B  )) deallocate(alpha_P_B  )
        if (allocated(B_X_B      )) deallocate(B_X_B      )
        if (allocated(B_Y_B      )) deallocate(B_Y_B      )
     end subroutine CleanUp
     logical function Failed()
          call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'TMD_CalcContStateDeriv')
  
negative.code: 
        ! NOTE: m%F_stop and m%F_table are calculated earlier
        IF (p%TMD_DOF_MODE == ControlMode_None) THEN
           do i_pt=1,p%NumMeshPts
              ! Compute inputs
              B_X(i_pt) = - rddot_P(1,i_pt) + a_G(1,i_pt) + 1 / p%M_X * ( m%F_ext(1) + m%F_stop(1) - m%F_table(1) )
              B_Y(i_pt) = - rddot_P(2,i_pt) + a_G(2,i_pt) + 1 / p%M_Y * ( m%F_ext(2) + m%F_stop(2) - m%F_table(2) )
           enddo
        ELSE IF (p%TMD_DOF_MODE == DOFMode_Indept) THEN
           do i_pt=1,p%NumMeshPts
              ! Compute inputs
              B_X(i_pt) = - rddot_P(1,i_pt) + a_G(1,i_pt) + 1 / p%M_X * ( m%F_ext(1) + m%F_stop(1) - m%F_table(1) )
              B_Y(i_pt) = - rddot_P(2,i_pt) + a_G(2,i_pt) + 1 / p%M_Y * ( m%F_ext(2) + m%F_stop(2) - m%F_table(2) )
           enddo
        ELSE IF (p%TMD_DOF_MODE == DOFMode_Omni) THEN
  
           do i_pt=1,p%NumMeshPts
  