-- Marc Martin, marc.martin@msd.ds.boeing.com
VAR begTime, dt, endTime: LONGREAL;
TYPE IntegrateAction = POINTER TO RECORD(Services.ActionDesc) time: LONGREAL; END;
PROCEDURE ( a: IntegrateAction ) Do; BEGIN IntegrateStep( dt, a.time ); IF a.time < endTime THEN Controllers.DoLater( a, Controllers.now ); ELSE (* done *); END; END Do;
PROCEDURE Integrate; VAR a: IntegrateAction; BEGIN NEW( a ); a.time := begTime; Controllers.DoLater( a, Controllers.now ); END Integrate;