ROUTINE név ( bemenő paraméterek; kimenő paraméterek ) = kifejezés - Egy közönséges rutint definiál adott néven és paraméterekkel. A rutin hívásakor a megadott kifejezést értékeli ki, és adja vissza visszatérési értékként. Ha a rutin nem ad vissza értéket, akkor az = jel elé egy : NOVALUE részt kell betenni. A rutin azon a blokkon belül látható, ahol definiálva van. Példák:
GLOBAL ROUTINE név ( bemenő paraméterek; kimenő paraméterek ) = kifejezés - Azonos az előzővel, de az így definiált aprogram más blokkokban is látható (explicit deklaráció mellett).
FORWARD ROUTINE név ( bemenő paraméterek; kimenő paraméterek ) = kifejezés - előre deklarál egy alprogramot, ami később közönséges alprogramként vagy globális alprogramként deklarálásra kerül. Például kölcsönen rekurzív alprogramok esetén szükséges az egyik alprogramot elődeklarálni.
EXTERNAL ROUTINE név ( bemenő paraméterek; kimenő paraméterek ) = kifejezés - egy másik blokkban GLOBAL-ként definiált rutint az aktuális blokkban láthatóvá tesz.
Példák:
A bemenő paraméterek átadása érték szerinti, azonban a formális paraméterek mutatók, de nem az aktuális paraméterek címét tartalmazzák, hanem egy lokális címet, amin az átadott aktuális paraméterek értékei találhatók. Példa:
Az alprogram definíciója:
Egy hívása:
Ez a következőnek felel meg:
Értékek visszaadását paraméterekkel akkor lehet megoldani, ha azok mutatók. Ekkor azonban a mutató dereferenciát kétszer kell alkalmazni. Példa:
Az alprogram definíciója:
Egy hívása: