The major timestep is an abstraction. The program internally builds up the major timesteps through a series of minor timesteps.
It is a complication that the minor timesteps are of varying length. As we want the output from the simulation program stored at constant time intervals, special care is required.