Thanks again. It looks I am not able to suggest a satisfactory solution, but maybe can give some useful comments:

The storage level at the beginning of SD is 13.6, and therefore the discharge of 5.9 units of ELC in that timeslice can basically be considered a valid storage operation between the previous and current timeslice. And, from that point of view, the input of 51.5 in the SD timeslice is not getting directly converted to the output flow, but it can be viewed as being fully stored, to be discharged later. As you can see, the storage level at the beginning of SN is 58.1, which can thus be interpreted as fully including the input flow in the previous timeslice (SD).

As far as I can see, preventing simultaneous input and output flows from occurring is not possible in such cases, where all the flows can be interpreted to represent genuine storage operation, because that would violate the convexity requirement.

However, if it can be assumed that the storage capacity would be constraining the charging in this case (i.e. if 13.6 + 51.5 > CAP), that might offer a solution in such special cases. You could thus make another user constraint saying that (VAR_ACT(s)+ VAR_SIN(s)) < CAP × RS_STGPRD(s)). Unfortunately, you would also need to embed the RS_STGPRD(s) numbers as coefficients in the constraint. But if you think that this condition would be a generally valid constraint (when the capacity represents the max. amount that can be stored), perhaps one might even consider changing the TIMES EQ_CAPACT for storage in this respect?

Let me know what you think, or if I can be of any further help.

And if you come up yourself with some solution that could be implemented in TIMES, please let me know.