There is a bug that "affects" all previous PGI compilers that supported the C99 standard. The problem discovered, is related with the processing of a new array type added in C99 called "Variable Length Array", or VLA for short. A bug number 16741 has beed assigned to it, and the fix is expected to be included with version v10.4. A standard workaround for previous and current compiler versions consists in using the "old style" form of specifying the function header, e.g.:
void poisson_solver(myid_w, nprocs_w, nx, ny, nz, data) int *myid_w; int *nprocs_w; int *nx; int *ny; int *nz; double data[*nz][*ny][*nx];