diff options
author | schnetter <schnetter@c3c03602-0f4f-0410-b3fa-d2c81c8a7dc5> | 2005-10-14 15:16:50 +0000 |
---|---|---|
committer | schnetter <schnetter@c3c03602-0f4f-0410-b3fa-d2c81c8a7dc5> | 2005-10-14 15:16:50 +0000 |
commit | eccd90553f1c7eb81ed4733c03ca6a9da81d2618 (patch) | |
tree | 819469344ddfed21ef8b14f61ca5345849cf443a | |
parent | f30e3a650b7073a0c945e85b216d1506b3bde1bd (diff) |
Set the variable types correctly when more than one group are
involved.
The code used to use the last group's variable type.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry90/trunk@30 c3c03602-0f4f-0410-b3fa-d2c81c8a7dc5
-rw-r--r-- | src/rotatingsymmetry90.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/rotatingsymmetry90.c b/src/rotatingsymmetry90.c index a5abe48..a24c60e 100644 --- a/src/rotatingsymmetry90.c +++ b/src/rotatingsymmetry90.c @@ -68,6 +68,7 @@ int BndRot90VI (cGH const * restrict const cctkGH, cGroupDynamicData data; char * restrict fullname; void * restrict * restrict varptrs; + int * restrict vartypes; int firstvar; char tensortypealias[100]; @@ -87,7 +88,6 @@ int BndRot90VI (cGH const * restrict const cctkGH, int offset[3]; /* offset 0..1 due to avoid_origin */ struct xferinfo * restrict xferinfo; - int * restrict vartypes; int have_global_bbox, have_local_bbox; @@ -129,6 +129,8 @@ int BndRot90VI (cGH const * restrict const cctkGH, assert (nvars==0 || gis); varptrs = malloc (nvars * sizeof *varptrs); assert (nvars==0 || varptrs); + vartypes = malloc (nvars * sizeof *vartypes); + assert (nvars==0 || vartypes); for (var=0; var<nvars; ++var) { gis[var] = CCTK_GroupIndexFromVarI (vis[var]); assert (gis[var]>=0 && gis[var]<CCTK_NumGroups()); @@ -144,6 +146,9 @@ int BndRot90VI (cGH const * restrict const cctkGH, varptrs[var] = CCTK_VarDataPtrI (cctkGH, 0, vis[var]); assert (varptrs[var]); + + vartypes[var] = group.vartype; + assert (vartypes[var] >= 0); } for (d=0; d<group.dim; ++d) { @@ -503,10 +508,7 @@ int BndRot90VI (cGH const * restrict const cctkGH, assert (0); } - vartypes = malloc (nvars * sizeof *vartypes); - assert (nvars==0 || vartypes); for (var=0; var<nvars; ++var) { - vartypes[var] = group.vartype; } ierr = Slab_MultiTransfer @@ -514,8 +516,6 @@ int BndRot90VI (cGH const * restrict const cctkGH, nvars, vartypes, srcptrs, vartypes, varptrs); assert (!ierr); - free (vartypes); - /* take parity into account */ have_local_bbox = 1; for (q=0; q<ndirs; ++q) { @@ -558,6 +558,7 @@ int BndRot90VI (cGH const * restrict const cctkGH, free (gis); free (varptrs); + free (vartypes); free (parities); free (srcptrs); |