aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <schnetter@6ca9aeac-0e4f-0410-a746-fe4df63e9d0c>2009-04-28 19:48:06 +0000
committerschnetter <schnetter@6ca9aeac-0e4f-0410-a746-fe4df63e9d0c>2009-04-28 19:48:06 +0000
commitaa6a9439ca3eb6f547ca8ec1c03d81d1394f2b96 (patch)
tree01fbc367bfa03a95b592e7d8054f90772e93a210
parentc83b0a7aa9e59f3d20720c8c4e6ee3c4ab7a6911 (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.c90
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;
}
}