diff options
author | schnetter <schnetter@6ca9aeac-0e4f-0410-a746-fe4df63e9d0c> | 2009-04-28 19:48:06 +0000 |
---|---|---|
committer | schnetter <schnetter@6ca9aeac-0e4f-0410-a746-fe4df63e9d0c> | 2009-04-28 19:48:06 +0000 |
commit | aa6a9439ca3eb6f547ca8ec1c03d81d1394f2b96 (patch) | |
tree | 01fbc367bfa03a95b592e7d8054f90772e93a210 | |
parent | c83b0a7aa9e59f3d20720c8c4e6ee3c4ab7a6911 (diff) |
Correct indexing error in parallel arrays
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/InterpToArray/trunk@12 6ca9aeac-0e4f-0410-a746-fe4df63e9d0c
-rw-r--r-- | src/interp.c | 90 |
1 files changed, 54 insertions, 36 deletions
diff --git a/src/interp.c b/src/interp.c index e98398f..fa3ad16 100644 --- a/src/interp.c +++ b/src/interp.c @@ -59,11 +59,11 @@ InterpToArray (CCTK_ARGUMENTS) npoints = 1; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; @@ -125,11 +125,11 @@ InterpToArray (CCTK_ARGUMENTS) npoints = array1d_npoints_i; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; @@ -224,11 +224,11 @@ InterpToArray (CCTK_ARGUMENTS) npoints = array2d_npoints_i * array2d_npoints_j; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; @@ -294,11 +294,11 @@ InterpToArray (CCTK_ARGUMENTS) npoints = array3d_npoints_i * array3d_npoints_j * array3d_npoints_k; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; @@ -371,21 +371,24 @@ InterpToArray (CCTK_ARGUMENTS) npoints = dyndata.lsh[0]; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; n = 0; - for (i=0; i<parray1d_npoints_i; ++i) { + for (i=0; i<dyndata.lsh[0]; ++i) { assert (n <= npoints); - coordsx[n] = parray1d_x0 + (dyndata.lbnd[0] + i) * parray1d_dx_i; - coordsy[n] = parray1d_y0 + (dyndata.lbnd[0] + i) * parray1d_dy_i; - coordsz[n] = parray1d_z0 + (dyndata.lbnd[0] + i) * parray1d_dz_i; + coordsx[n] = (parray1d_x0 + + (dyndata.lbnd[0] + i) * parray1d_dx_i); + coordsy[n] = (parray1d_y0 + + (dyndata.lbnd[0] + i) * parray1d_dy_i); + coordsz[n] = (parray1d_z0 + + (dyndata.lbnd[0] + i) * parray1d_dz_i); ++n; } assert (n == npoints); @@ -475,22 +478,28 @@ InterpToArray (CCTK_ARGUMENTS) npoints = dyndata.lsh[0] * dyndata.lsh[1]; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; n = 0; - for (j=0; j<parray2d_npoints_j; ++j) { - for (i=0; i<parray2d_npoints_i; ++i) { + for (j=0; j<dyndata.lsh[1]; ++j) { + for (i=0; i<dyndata.lsh[0]; ++i) { assert (n <= npoints); - coordsx[n] = parray2d_x0 + (dyndata.lbnd[0] + i) * parray2d_dx_i + (dyndata.lbnd[1] + j) * parray2d_dx_j; - coordsy[n] = parray2d_y0 + (dyndata.lbnd[0] + i) * parray2d_dy_i + (dyndata.lbnd[1] + j) * parray2d_dy_j; - coordsz[n] = parray2d_z0 + (dyndata.lbnd[0] + i) * parray2d_dz_i + (dyndata.lbnd[1] + j) * parray2d_dz_j; + coordsx[n] = (parray2d_x0 + + (dyndata.lbnd[0] + i) * parray2d_dx_i + + (dyndata.lbnd[1] + j) * parray2d_dx_j); + coordsy[n] = (parray2d_y0 + + (dyndata.lbnd[0] + i) * parray2d_dy_i + + (dyndata.lbnd[1] + j) * parray2d_dy_j); + coordsz[n] = (parray2d_z0 + + (dyndata.lbnd[0] + i) * parray2d_dz_i + + (dyndata.lbnd[1] + j) * parray2d_dz_j); ++n; } } @@ -550,23 +559,32 @@ InterpToArray (CCTK_ARGUMENTS) npoints = dyndata.lsh[0] * dyndata.lsh[1] * dyndata.lsh[2]; coordsx = malloc (npoints * sizeof * coordsx); - assert (coordsx); + assert (npoints==0 || coordsx); coordsy = malloc (npoints * sizeof * coordsy); - assert (coordsy); + assert (npoints==0 || coordsy); coordsz = malloc (npoints * sizeof * coordsz); - assert (coordsz); + assert (npoints==0 || coordsz); coords[0] = coordsx; coords[1] = coordsy; coords[2] = coordsz; n = 0; - for (k=0; k<parray3d_npoints_k; ++k) { - for (j=0; j<parray3d_npoints_j; ++j) { - for (i=0; i<parray3d_npoints_i; ++i) { + for (k=0; k<dyndata.lsh[2]; ++k) { + for (j=0; j<dyndata.lsh[1]; ++j) { + for (i=0; i<dyndata.lsh[0]; ++i) { assert (n <= npoints); - coordsx[n] = parray3d_x0 + (dyndata.lbnd[0] + i) * parray3d_dx_i + (dyndata.lbnd[1] + j) * parray3d_dx_j + (dyndata.lbnd[2] + k) * parray3d_dx_k; - coordsy[n] = parray3d_y0 + (dyndata.lbnd[0] + i) * parray3d_dy_i + (dyndata.lbnd[1] + j) * parray3d_dy_j + (dyndata.lbnd[2] + k) * parray3d_dy_k; - coordsz[n] = parray3d_z0 + (dyndata.lbnd[0] + i) * parray3d_dz_i + (dyndata.lbnd[1] + j) * parray3d_dz_j + (dyndata.lbnd[2] + k) * parray3d_dz_k; + coordsx[n] = (parray3d_x0 + + (dyndata.lbnd[0] + i) * parray3d_dx_i + + (dyndata.lbnd[1] + j) * parray3d_dx_j + + (dyndata.lbnd[2] + k) * parray3d_dx_k); + coordsy[n] = (parray3d_y0 + + (dyndata.lbnd[0] + i) * parray3d_dy_i + + (dyndata.lbnd[1] + j) * parray3d_dy_j + + (dyndata.lbnd[2] + k) * parray3d_dy_k); + coordsz[n] = (parray3d_z0 + + (dyndata.lbnd[0] + i) * parray3d_dz_i + + (dyndata.lbnd[1] + j) * parray3d_dz_j + + (dyndata.lbnd[2] + k) * parray3d_dz_k); ++n; } } |