In reply to Jing.

The correct place to post programs and ask questions is the SAS Support Community.

The parameters a1-a6 are not defined at global scope. You can read about the difference between local and global scope. After you fix that problem, there is another problem: When u is near 1, the third term in your integrand [(1-u#a5)##(-a2)] will overflow. You can't raise a small number to the -464 power. For example, when (1-u#a5)=1/10, then the term is 1E464 which exceeds the largest floating-point double value.