anchor.diff:         ENDDO
          CALL BD_UpdateDynamicGA2(ai,uuNf,vvNf,aaNf,xxNf,coef,node_total,dof_node)
          IF(i==1) THEN
  -           Eref = SQRT(DOT_PRODUCT(ai_temp,feqv))*TOLF
  +           Eref = SQRT(DOT_PRODUCT(ai_temp,feqv))*tol
              IF(Eref .LE. TOLF) RETURN
          ENDIF
          IF(i .GT. 1) THEN
  
positive.code:    end subroutine cleanup   
  END SUBROUTINE BD_GA2
  
     SUBROUTINE BD_TiSchmPredictorStep(uuNi,vvNi,aaNi,xxNi,coef,deltat,uuNf,vvNf,aaNf,xxNf,node_total,dof_node)
  
     REAL(ReKi),INTENT(IN)::uuNi(:),vvNi(:),aaNi(:),xxNi(:)
     REAL(DbKi),INTENT(IN)::deltat,coef(:)
     REAL(ReKi),INTENT(INOUT)::uuNf(:),vvNf(:),aaNf(:),xxNf(:)
  
     INTEGER(IntKi),INTENT(IN)::node_total,dof_node
  
     REAL(ReKi)::vi,ai,xi,tr(6),tr_temp(3),uuNi_temp(3),rot_temp(3)
     INTEGER::i,j,temp_id
     INTEGER(IntKi)          :: ErrStat2                     ! Temporary Error status
     CHARACTER(ErrMsgLen)    :: ErrMsg2                      ! Temporary Error message
     CHARACTER(*), PARAMETER :: RoutineName = 'BD_TimSchmPredictorStep'
  
     DO i=1,node_total
  
  
negative.code:          
     CALL BD_TiSchmPredictorStep( x_tmp%q,x_tmp%dqdt,OS_tmp%acc,OS_tmp%xcc,             &
                                  p%coef,p%dt,x%q,x%dqdt,OtherState%acc,OtherState%xcc, &
                                  p%node_total,p%dof_node, ErrStat2,ErrMsg2)
        call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
     ! find x at t+dt
     CALL BD_InputGlobalLocal(p,u_interp,ErrStat2,ErrMsg2)
        call SetErrStat(ErrStat2,ErrMsg2,ErrStat,ErrMsg,RoutineName)
     
     CALL BD_BoundaryGA2(x,p,u_interp,t+p%dt,OtherState,ErrStat2,ErrMsg2)
  