30p9 ** 30p9 has a result in 60p18, that does not exists.
try rounding the result
eval(h) z = x ** y; or
eval z = %decimal(x ** y : 30 : 9);
or try to adjust variables (less decimals)
or eval the result in a double float, such as explained in the “Precision of Intermediate Results” chapter of ILE rpg reference SC09-2508-04 page 429 (pdf page number 447)