aboutsummaryrefslogtreecommitdiff
path: root/src/rotatingsymmetry90.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rotatingsymmetry90.c')
-rw-r--r--src/rotatingsymmetry90.c13
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);