A similar question has been asked in the post HERE but the current question is more complicated: I have the following differential system
XX = x'[t] == x[t] (1 - x[t]) (1 - Exp[-0.4 y[t]] - 0.2);
YY = y'[t] == 0.4 (-0.5 y[t]^0.2 + (1 - x[t])) ;
SOL = NDSolve[{XX, YY, x[0] == 18/100, y[0] == 40/100}, {x,y}, {t, 0, 100}]
The solution of this differential system yields the interpolating functions
{{x->InterpolatingFunction[{{0.`,100.`}},"<>"],y->InterpolatingFunction[{{0.`,100.`}},"<>"]}}
I know that for some $y$'s there are multiple $x$'s because the dynamical relationship is non-linear, see the picture below
x[t_] = Evaluate[x[t] /. SOL[[1]]]
y[t_] = Evaluate[y[t] /. SOL[[1]]]
ParametricPlot[{y[t], x[t]}, {t, 0, time}, AxesLabel -> {"y(t)", "x(t)"}, PlotRange -> {{0, 2}, {0, 1}}]
My question is: how can I extract, for a given level of $y$, the (potentially) multiple solutions of $x$ and the $t$ at which this occurs?
The importance is that the interpolation function is a function of two variables which are itself functions of time, and that I want to find all multiple solutions for $x$ for a given $y$. (The previous question HERE has only one argument in the interpolation function and it only yields unique solutions.)
Thank you sincerely for your help.

NSolveto get thetvalues and then plug them into thexfunction. – Jason B. Mar 24 '16 at 14:51WhenEventto get the values you're looking for right in theNDSolve. – Chris K Mar 24 '16 at 15:12WhenEvent[]for this (if it's a one-time deal), or theMeshFunctionsoption ofPlot[]/ParametricPlot[]in conjunction withFindRoot[]. There are a lot of previous threads on how to use these to find intersection points. – J. M.'s missing motivation Mar 31 '16 at 00:09