Example of a PROCEDURE REFERENCE Statement

The following example assigns a reference to procedure SWAPPER in the first element of the procedure reference array PROCARRAY and to the procedure reference PROCREF. SWAPPER is then invoked through PROCARRAY and PROCREF.

BEGIN
*
*
*
REAL
   SORT1,
   SORT2,
   SORT3;
PROCEDURE REFERENCE ARRAY PROCARRAY[0:9] (A,B);
                                   REAL A,B;
                                   NULL;
PROCEDURE REFERENCE PROCREF(A,B);
                         REAL A,B;
                         NULL;
PROCEDURE SWAPPER(X,Y);
          REAL X,Y;
   BEGIN
   X :=: Y;
   END;
PROCARRAY[0] := SWAPPER;
PROCREF := SWAPPER;
READ (MYFILE, *, SORT1, SORT2);
IF SORT2 > SORT1 THEN
   PROCARRAY[0] (SORT1, SORT2);
READ (MYFILE, *, SORT3);
IF SORT3 > SORT2 THEN
   PROCREF(SORT2, SORT3);
END.