There are also some language elements that can cause your program to run differently under PL/I for Windows. than it does under OS PL/I, due to differences in the implementation of the language by the compiler. Each of the following items is described in terms of its PL/I for Windows behavior.
To avoid this difference, you could change the precision of the variable to a value between 8 and 15 (inclusive).
For example, in the following code fragment, the elements of the array are not initialized to a1, a2, a3, and a4.
dcl (a1,a2,a3,a4) area; dcl a(4) area init( a1, a2, a3, a4 );
However, you can rewrite the code as follows so that the array is initialized as desired.
dcl (a1,a2,a3,a4) area; dcl a(4) area; a(1) = a1; a(2) = a2; a(3) = a3; a(4) = a4;
For example, the PL/I for Windows compilers would evaluate the DIVIDE built-in function in the assignment statement below as a FIXED DEC expression:
dcl (i,j) fixed bin(15);
dcl x fixed bin(15,2);
.
.
.
x = divide(i,j,15,2)