aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/Cycle.cc
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@aei.mpg.de>2005-10-10 21:05:00 +0000
committerErik Schnetter <schnetter@aei.mpg.de>2005-10-10 21:05:00 +0000
commit71890ac9bb36330f5648a8356eb22e6b9df4f824 (patch)
tree94071ad7e817a15a2a1da3df5c59f7cb0762b650 /Carpet/Carpet/src/Cycle.cc
parentc8ab9f9602c85056def7fe3730cad3089a462288 (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.cc13
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;