旧コンパイラーでは、あるルーチンで RECORD などの一部の属性を指定して EXTERNAL FILE を宣言しているが、この最初のルーチンとリンクした別のルーチンでは、ファイル を宣言していなかったか、または属性なし (FILE 以外) で宣言していた場合、この別のルーチンは、 その別のルーチンが最初にそのファイルをオープンしたとしても、最初のルーチンで宣言された 属性を使用することになります。
Enterprise PL/I の場合は、これとは異なる処理を行います。 つまり、別のルーチンは最初のルーチンからの属性を「確認」せず、代わりに STREAM などのデフォルト属性をファイルに適用します。 これによって、問題を引き起こす可能性があります。
このコードを訂正して、すべてのルーチンで等しく FILE を宣言するようにする必要があります。 実際には、すべての EXTERNAL 変数をすべてのルーチンで等しく宣言してください。