Часто возникают ситуации, когда в процессе моделирования необходимо переходить в различные блоки программы в зависимости от логики работы модели. Стандартные блоки GPSS WORLD такие, как TEST (см. параграф 4.16) и TRANSFER, не всегда могут решить эту проблему, так как они позволяют распределять транзакты максимум по двум направлениям. В случае, когда осуществляется условный переход на одну из нескольких меток (если более двух, то в обычных языках программирования используется оператор CASE OF), необходимо построить переключающую функцию.
Для вызова переключающей функции используется блок TRANSFER в режиме безусловного перехода.
Пример переключающей функции:
PEREKL FUNCTION RN4,D5
LBl/0.4,LB2/0.6,LB3/0.8,LB4/l,LB5
GENERATE „,100
TRANSFER,FN$PEREKL
LB1 QUEUE STOR1
TERMINATE 0
LB2 QUEUE STOR2
TERMINATE 0
LB3 QUEUE STOR3
TERMINATE 0
LB4 QUEUE STOR4
TERMINATE 0
LB5 QUEUE STOR5
TERMINATE 0
GENERATE 1
TERMINATE 1