anchor.diff:                                            , u_ED_Without_SD_HD, MeshMapData , ErrStat, ErrMsg )         
                  CALL CheckError( ErrStat, ErrMsg  )
               
  -         ELSEIF ( .NOT. p_FAST%CompHydro ) THEN
  -         
  -            CALL ED_SD_InputOutputSolve(  this_time, p_FAST, calcJacobian &
  -                                       , ED_Input(1), p_ED, x_ED_this, xd_ED_this, z_ED_this, OtherSt_ED, ED_Output(1) &
  -                                       , SD_Input(1), p_SD, x_SD_this, xd_SD_this, z_SD_this, OtherSt_SD, y_SD & 
  -                                       , u_ED_Without_SD_HD, MeshMapData , ErrStat, ErrMsg )         
  -               CALL CheckError( ErrStat, ErrMsg  )
  -      
  +         ELSE ! Both enabled
  +
  +         END IF      
  +         
  +      ELSEIF ( p_FAST%CompSub ) THEN
  +         
  +         CALL ED_SD_InputOutputSolve(  this_time, p_FAST, calcJacobian &
  +                                    , ED_Input(1), p_ED, x_ED_this, xd_ED_this, z_ED_this, OtherSt_ED, ED_Output(1) &
  +                                    , SD_Input(1), p_SD, x_SD_this, xd_SD_this, z_SD_this, OtherSt_SD, y_SD & 
  +                                    , u_ED_Without_SD_HD, MeshMapData , ErrStat, ErrMsg )         
  +            CALL CheckError( ErrStat, ErrMsg  )
                     
  -         !ELSE ! Both enabled... (not currently allowed)
  -         END IF      
  -         
  -      END IF ! HD and/or SD coupled to FAST
  +      END IF ! HD and/or SD coupled to ElastoDyn
                                 
         !.....................................................................
         ! Reset each mesh's RemapFlag (after calling all InputSolve routines):
  
positive.code:           calcJacobian = .FALSE.
        END IF
        
        !IF ( p_FAST%CompHydro .OR. p_FAST%CompSub ) THEN
        !
        !   IF ( .NOT. p_FAST%CompSub ) THEN
        !   
        !      CALL ED_HD_InputOutputSolve(  this_time, p_FAST, calcJacobian &
        !                                 , ED_Input(1), p_ED, x_ED_this, xd_ED_this, z_ED_this, OtherSt_ED, ED_Output(1) &
        !                                 , HD_Input(1), p_HD, x_HD_this, xd_HD_this, z_HD_this, OtherSt_HD, y_HD & 
        !                                 , u_ED_Without_SD_HD, MeshMapData , ErrStat, ErrMsg )         
        !         CALL CheckError( ErrStat, ErrMsg  )
        !      
        !   ELSEIF ( .NOT. p_FAST%CompHydro ) THEN
        !   
        !      CALL ED_SD_InputOutputSolve(  this_time, p_FAST, calcJacobian &
        !                                 , ED_Input(1), p_ED, x_ED_this, xd_ED_this, z_ED_this, OtherSt_ED, ED_Output(1) &
        !                                 , SD_Input(1), p_SD, x_SD_this, xd_SD_this, z_SD_this, OtherSt_SD, y_SD & 
        !                                 , u_ED_Without_SD_HD, MeshMapData , ErrStat, ErrMsg )         
        !         CALL CheckError( ErrStat, ErrMsg  )
        !
        !            
        !   ELSE ! Both enabled... (not currently allowed)
        !   END IF      
        !ELSE
           
           CALL ED_CalcOutput( this_time, ED_Input(1), p_ED, x_ED_this, xd_ED_this, z_ED_this, OtherSt_ED, ED_Output(1), ErrStat, ErrMsg )
              CALL CheckError( ErrStat, 'Message from ED_CalcOutput: '//NewLine//ErrMsg  )    
  
negative.code:       ! Option 1: solve for consistent inputs and outputs, which is required when Y has direct feedthrough in 
        !           modules coupled together
        !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                       
        IF ( p_FAST%CompHydro ) THEN
        
           IF ( .NOT. p_FAST%CompSub ) THEN
           
  