Ein OUT ist nur möglich, wenn ein IN vorher erfolgreich war, da mit dem IN automatisch eine Updatesperre für andere Programme gesetzt wird.
Mit OUT wird die Sperre automatisch aufgehoben, so dass ein IN wieder erforderlich ist.
Dies entspricht dem selben Verhalten wie UPDATE, den ich ja auch nicht mehrmals ohne READ durchführen kann.

Noch ein Hinweis:
Lass das "U" bei der Definition der DTAARA weg.
Dieses "U" bewirkt, dass beim 1. Aufruf des programmes die DTAARA automatisch per IN gelesen wird und, wenn mit *INLR=*ON verlassen wird, wieder ausgegeben wird.
Dies kann insofern fatal werden, wenn du nach deinem OUT die Variablen ggf. veränderst.
Ausserdem läuft dein Programm ggf. beim Aufruf bereits auf einen Fehler, wenn die Sperre nicht erhalten werden kann.

Bei IN ist ggf. die SDS oder eine BZ (*error) auszuwerten, ob der IN erfolgreich war.