         for (int ii=0; ii<n_fields; ii++) {
           memcpy(&buffer[ii*BLOCK_VOL + j*nx_s + k*nx_s*ny_s], &host_conserved[x_host + y_host + z_host + ii*n_cells + j*nx + k*nx*ny], nx_s*sizeof(Real)); 
         }
+        #if defined( GRAVITY ) && defined( GRAVITY_COUPLE_GPU )
+        memcpy(&buffer_potential[j*nx_s + k*nx_s*ny_s], &host_grav_potential[x_host + y_host + z_host + j*nx + k*nx*ny], nx_s*sizeof(Real)); 
+        #endif
       }
     }
 

      for (int ii=0; ii<n_fields; ii++) {
        memcpy(&buffer[ii*BLOCK_VOL + k*nx_s*ny_s], &host_conserved[y_host + ii*n_cells + k*nx*ny], nx_s*ny_s*sizeof(Real)); 
      }
    }

    return;

        for (int ii=0; ii<n_fields; ii++) {
          memcpy(&buffer[ii*BLOCK_VOL + j*nx_s + k*nx_s*ny_s], &host_conserved[x_host + ii*n_cells + j*nx + k*nx*ny], nx_s*sizeof(Real)); 
        }
        #if defined( GRAVITY ) && defined( GRAVITY_COUPLE_GPU )
        memcpy(&buffer_potential[j*nx_s + k*nx_s*ny_s], &host_grav_potential[x_host + j*nx + k*nx*ny], nx_s*sizeof(Real));
        #endif
      }
    }

