A follow-up.
As I was doing another task today, I ran the section of code that I had used PACK on intrinsic types. My comment (in this thread) was that it appeared that if the result had fewer elements that the destination array, the remaining elements would be filled with zeroes. While I know this to be the case back in the June/July time frame when this thread started, it is no longer the case.
I must specify that the destination array to hold the PACK operation be the same size as the result. Luckily for me, my result shape is known a priori.
It meant a frantic redelivery of the software to my users (two in one day is a bit embarrassing), but luckily while effect was wrong, it was benign.