diff options
author | Erik Schnetter <schnetter@aei.mpg.de> | 2005-10-10 21:05:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@aei.mpg.de> | 2005-10-10 21:05:00 +0000 |
commit | 71890ac9bb36330f5648a8356eb22e6b9df4f824 (patch) | |
tree | 94071ad7e817a15a2a1da3df5c59f7cb0762b650 /Carpet/Carpet/src/Cycle.cc | |
parent | c8ab9f9602c85056def7fe3730cad3089a462288 (diff) |
Carpet: Correct error in storage handling for grid arrays
When enabling or disabling storage for grid arrays, update the
pointers in the cGH structure as well.
darcs-hash:20051010210525-891bb-a01898931d0c5a1af8d1ad22905bfa559eb6f1c5.gz
Diffstat (limited to 'Carpet/Carpet/src/Cycle.cc')
-rw-r--r-- | Carpet/Carpet/src/Cycle.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Carpet/Carpet/src/Cycle.cc b/Carpet/Carpet/src/Cycle.cc index 87fe7fa27..45425905d 100644 --- a/Carpet/Carpet/src/Cycle.cc +++ b/Carpet/Carpet/src/Cycle.cc @@ -39,10 +39,23 @@ namespace Carpet { case CCTK_SCALAR: case CCTK_ARRAY: if (do_global_mode) { + int const numtimelevels = CCTK_NumTimeLevelsI (group); + int const firstvarindex = CCTK_FirstVarIndexI (group); for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) { for (int c=0; c<arrdata.at(group).at(0).hh->components(0); ++c) { arrdata.at(group).at(0).data.at(var)->cycle (0, c, mglevel); } + { + int const varindex = firstvarindex + var; + int const c = CCTK_MyProc(cgh); + for (int tl=0; tl<numtimelevels; ++tl) { + cgh->data[varindex][tl] + = (tl < groupdata.at(group).info.activetimelevels + ? ((*arrdata.at(group).at(0).data.at(var)) + (tl, 0, c, 0)->storage()) + : NULL); + } + } } } break; |