Okay I figured part of it out. The function gets called through a matlab function block in simulink. The inputvariables are taken from two ways.
a) c is taken from a constant block which references a variable in the work space,
b) b ist the change of e, which is passed through an integration block (1/s) and then becomes the input e. So take e -> calculate b --(leave the function)--> integrate --(enter function)--> become e.
you have to be careful to uncheck the "Interpret vector as 1-D"-box in the constat. It's default setting is "checked" when you take it out of the library. The same holds true for the initiation value of the integrated constant: the value of b is initiated inside the integration-block. In my model, the value here needs to be a vector as well. A simple fix is to initiate the value externally and use a constant block of a varible from the workspace, which you create by repmat(ini_value,size(variable));.
I didn't figure out why the simulation did work on one day and not on the other. It seems to be a well docuemnted problem and probably relates to the compiling routine behind the simulink calculations.