aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2004-01-16 10:27:32 +0000
committerhawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2004-01-16 10:27:32 +0000
commit4619968ab7a6ffd58c400c50c1fac75429273f1b (patch)
tree8d948b6f9d78110cfa7decbaeeb754549c6486d5 /src
parent6171a8725fe79eb4935afbdcc66cef107878ff31 (diff)
Nasty bugs in the save and restore variables.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@47 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
Diffstat (limited to 'src')
-rw-r--r--src/InitialCopy.c2
-rw-r--r--src/SandR.c19
2 files changed, 13 insertions, 8 deletions
diff --git a/src/InitialCopy.c b/src/InitialCopy.c
index dac38b4..89c67ae 100644
--- a/src/InitialCopy.c
+++ b/src/InitialCopy.c
@@ -232,7 +232,7 @@ void MoL_InitialCopy(CCTK_ARGUMENTS)
ScratchVar = &SandRScratchSpace[var*totalsize];
*/
ScratchVar = CCTK_VarDataPtrI(cctkGH, 0,
- CCTK_FirstVarIndex("MOL::SCRATCHSPACE")
+ CCTK_FirstVarIndex("MOL::SANDRSCRATCHSPACE")
+ var);
#ifdef MOLDEBUG
printf("Pointers for the SandR vars are to %ld, %ld and %ld.\n",
diff --git a/src/SandR.c b/src/SandR.c
index 969bc8c..9761d3a 100644
--- a/src/SandR.c
+++ b/src/SandR.c
@@ -76,14 +76,15 @@ void MoL_RestoreSandR(CCTK_ARGUMENTS)
CCTK_INT /* index, */ var;
CCTK_INT totalsize;
- CCTK_INT vectorstart;
CCTK_REAL *SandRDataArray;
+ CCTK_REAL *ScratchVar;
/* FIXME */
#ifdef MOLDOESCOMPLEX
CCTK_COMPLEX *SandRComplexDataArray;
+ CCTK_COMPLEX *ComplexScratchVar;
#endif
@@ -94,16 +95,18 @@ void MoL_RestoreSandR(CCTK_ARGUMENTS)
SandRDataArray = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
SandRVariableIndex[var]);
-
- vectorstart = var * totalsize;
+
+ ScratchVar = CCTK_VarDataPtrI(cctkGH, 0,
+ CCTK_FirstVarIndex("MOL::SANDRSCRATCHSPACE")
+ + var);
#ifdef MOLDEBUG
printf("Restore:Variable %s, first entry %g, scratch %g\n",
CCTK_VarName(SandRVariableIndex[var]), SandRDataArray[0],
- SandRScratchSpace[vectorstart]);
+ ScratchVar[0]);
#endif
- memcpy(SandRDataArray, &SandRScratchSpace[vectorstart],
+ memcpy(SandRDataArray, ScratchVar,
totalsize * sizeof(CCTK_REAL));
}
@@ -117,9 +120,11 @@ void MoL_RestoreSandR(CCTK_ARGUMENTS)
SandRComplexDataArray = (CCTK_COMPLEX *)CCTK_VarDataPtrI(cctkGH, 0,
SandRComplexVariableIndex[var]);
- vectorstart = var * totalsize;
+ ComplexScratchVar = CCTK_VarDataPtrI(cctkGH, 0,
+ CCTK_FirstVarIndex("MOL::COMPLEXSANDRSCRATCHSPACE")
+ + var);
- memcpy(SandRComplexDataArray, &ComplexSandRScratchSpace[vectorstart],
+ memcpy(SandRComplexDataArray, ComplexScratchVar,
totalsize * sizeof(CCTK_COMPLEX));
}