DMDACoor3d ***coors; Vec vcoors; DM cda; DMGetCoordinates(da,&vcoors); DMGetCoordinateDM(da,&cda); DMDAVecGetArray(cda,vcoors,&coors); DMDAGetCorners(cda,&mstart,&nstart,&pstart,&m,&n,&p) for (i=mstart; i<mstart+m; i++) { for (j=nstart; j<nstart+n; j++) { for (k=pstart; k<pstart+p; k++) { x = coors[k][j][i].x; y = coors[k][j][i].y; z = coors[k][j][i].z; ...... } } DMDAVecRestoreArray(dac,vcoors,&coors);