anchor.diff:  
         ! extrapolate inputs and outputs to t + dt; will only be used by modules with an implicit dependence on input data.
   
  -      CALL BDyn_Input_ExtrapInterp(BDyn_Input, BDyn_InputTimes, u1, t_global + dt_global, ErrStat, ErrMsg)
  +! mas -- remove start here  (we don't need this; will give exact values instead
  +!     CALL BDyn_Input_ExtrapInterp(BDyn_Input, BDyn_InputTimes, u1, t_global + dt_global, ErrStat, ErrMsg)
  +! mas -- remove end here
  +
  +! MAS RECOMMENDATION
  +!  put in a BDyn_CalcInput here, and populate the three entries of BDyn_Input at
  +!  t_global, t_global + dt_global /2., t_global+dt_global
  +!
  +!  This way, when RK4 is called using ExtrapInterp, it will grab the EXACT answers that you defined at the time
  +!  step endpionts and midpoint.
  +
  +      CALL BDyn_InputSolve( t_global, dt_global, BDyn_Input, BDyn_InputTimes, ErrStat, ErrMsg)
  +
  +
   
   !     CALL BDyn_Output_ExtrapInterp(BDyn_Output, BDyn_OutputTimes, y1, t_global + dt_global, ErrStat, ErrMsg)
   
         ! Shift "window" of the Mod1_Input and Mod1_Output
   
  -      DO i = BDyn_interp_order, 1, -1
  -         CALL BDyn_CopyInput (BDyn_Input(i),  BDyn_Input(i+1), MESH_UPDATECOPY, Errstat, ErrMsg)
  -         CALL BDyn_CopyOutput (BDyn_Output(i),  BDyn_Output(i+1),  MESH_UPDATECOPY, Errstat, ErrMsg)
  -         BDyn_InputTimes(i+1) = BDyn_InputTimes(i)
  -         BDyn_OutputTimes(i+1) = BDyn_OutputTimes(i)
  -      ENDDO
  -
  -      CALL BDyn_CopyInput (u1,  BDyn_Input(1),  MESH_UPDATECOPY, Errstat, ErrMsg)
  -      CALL BDyn_CopyOutput (y1,  BDyn_Output(1),  MESH_UPDATECOPY, Errstat, ErrMsg)
  -      BDyn_InputTimes(1) = t_global + dt_global
  -      BDyn_OutputTimes(1) = t_global + dt_global
  +
  +! mas -- remove start here
  +!     DO i = BDyn_interp_order, 1, -1
  +!        CALL BDyn_CopyInput (BDyn_Input(i),  BDyn_Input(i+1), MESH_UPDATECOPY, Errstat, ErrMsg)
  +!        CALL BDyn_CopyOutput (BDyn_Output(i),  BDyn_Output(i+1),  MESH_UPDATECOPY, Errstat, ErrMsg)
  +!        BDyn_InputTimes(i+1) = BDyn_InputTimes(i)
  +!        BDyn_OutputTimes(i+1) = BDyn_OutputTimes(i)
  +!     ENDDO
  +
  +!     CALL BDyn_CopyInput (u1,  BDyn_Input(1),  MESH_UPDATECOPY, Errstat, ErrMsg)
  +!     CALL BDyn_CopyOutput (y1,  BDyn_Output(1),  MESH_UPDATECOPY, Errstat, ErrMsg)
  +!     BDyn_InputTimes(1) = t_global + dt_global
  +!     BDyn_OutputTimes(1) = t_global + dt_global
  +! mas -- remove end here
   
         ! Shift "window" of the Mod1_Input and Mod1_Output
   
  
positive.code:    ErrMsg  = ''
  
     ! gather point forces and line forces
     tmp_vector = 0.     
  
     ! Point mesh: Force 
     u%PointMesh%TranslationDisp(:,1)  = tmp_vector
     u%PointMesh%TranslationVel(:,1)  = tmp_vector
     u%PointMesh%TranslationAcc(:,1)  = tmp_vector
  
  END SUBROUTINE BDyn_InputSolve
  !----------------------------------------------------------------------------------------------------------------------------------
  
negative.code:    !DO n_t_global = 0, 1000
  
  
  
  
  !     CALL BeamDyn_CalcOutput( t_global, BDyn_Input(1), BDyn_Parameter, BDyn_ContinuousState, BDyn_DiscreteState, &
  