The external function is called at the following times:
• At the beginning of the simulation (Etime = 0);
• Every GoldSim timestep (if one of the inputs to the element has changed); and
• At any internal step in which an Event is triggered (if one of the inputs to the element has changed).
It is likely that you may want to treat each of these calls in a different way. For example, you may wish the external function to ignore the call at the beginning of the simulation, or you may want it to carry out some special initialization routines at that time.
You may also want to treat a call in the middle of a timestep (due to an Event) differently from a call at the end of a timestep.
In order to communicate this kind of information to the external function, you would need to send Etime (the current elapsed time) and perhaps Timestep_Length (the length of the current timestep) to the external function as optional input arguments. (Both of these are Run Properties).
Learn more about: