In the second scan over the system a list of the slow events is accumulated in queue
last = 0; for(is=0; is < size*size; is++) if (site[is].id > 0) { if(!difEq[site[is].env]) for (i=0; i < NBRNUM; i++) if (site[is].nbr[i]->id == 0) { queue[last].action = i; queue[last].target = &site[is]; queue[last].rate = difRate[site[is].env]; last++; } for (i=0; i < NBRNUM/2; i++) if (site[is].nbr[i]->id != 0) { queue[last].action = i+NBRNUM; queue[last].target = &site[is]; queue[last].rate = desRate[site[is].env]; last++; } }