dcl-pi, Procedure Interface, stehen am Anfang des prozeduralen Teils im Hauptprogramm und ersetzen die *entry-Definition. Die Variablen sind da dann auch definiert.
Wenn auf dcl-pi weitere Definitionen folgen, ist das ein Reihenfolgefehler.
*entry ist ja auch eine C-Anweisung und kann daher nicht im Bereich der D-Definitionen stehen.

Anders sieht es aus, wenn du eine Main-Procedure im ctl-opt angibst, und dann per dcl-proc die Main definierst.
Nach dcl-proc erfolgt dann immer zuerst die dcl-pi für die Prozedur, gefolgt von nachfolgenden Definitionen.