aboutsummaryrefslogtreecommitdiff
path: root/schedule.ccl
diff options
context:
space:
mode:
authorhawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2004-02-27 14:09:32 +0000
committerhawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2004-02-27 14:09:32 +0000
commite782aae1339a75b1fe1d8dcc95392ae95aada03a (patch)
tree4247ced53b62436fd3c645f00ee02cb9d029d3de /schedule.ccl
parent4619968ab7a6ffd58c400c50c1fac75429273f1b (diff)
Rewrite the storage statements so that (hopefully) there is never a
request for storage for a zero sized group. This looks really horrible and should be fixed. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@48 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
Diffstat (limited to 'schedule.ccl')
-rw-r--r--schedule.ccl284
1 files changed, 265 insertions, 19 deletions
diff --git a/schedule.ccl b/schedule.ccl
index b3ba41b..a61ce76 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -17,13 +17,25 @@ STORAGE: MoL_Counters, MoL_Original_Time
if (MoL_Memory_Always_On)
{
- STORAGE: ScratchSpace
+ if (MoL_Num_Evolved_Vars)
+ {
+ if (MoL_Num_Scratch_Levels)
+ {
+ STORAGE: ScratchSpace
+ }
+ STORAGE: ArrayScratchSpace
+ }
+ if (MoL_Num_SaveAndRestore_Vars)
+ {
+ STORAGE: SandRScratchSpace
+ }
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ STORAGE: ArraySandRScratchSpace
+ }
# STORAGE: ComplexScratchSpace
- STORAGE: ArrayScratchSpace
# STORAGE: ComplexArrayScratchSpace
- STORAGE: SandRScratchSpace
# STORAGE: ComplexSandRScratchSpace
- STORAGE: ArraySandRScratchSpace
# STORAGE: ComplexArraySandRScratchSpace
}
@@ -131,23 +143,257 @@ schedule MoL_ReportNumberVariables AT PostInitial AFTER MoL_Register
### boundary enforcement and so on. ###
######################################################
-# NOTE: I temporarily comment out the storage statements as I do not
-# want to write out the if statements above! So this will not currently
-# work with the memory hungry parameter to no.
+# This fairly complicated mess of conditionals is to try and
+# ensure that we never ask for storage for a vector group with
+# no members. It could probably be simplified.
-schedule GROUP MoL_Evolution AT Evol
+if (MoL_Num_Scratch_Levels)
{
- LANG: C
- STORAGE: ScratchSpace
-# STORAGE: ComplexScratchSpace
- STORAGE: SandRScratchSpace
-# STORAGE: ComplexSandRScratchSpace
- STORAGE: ArrayScratchSpace
-# STORAGE: ComplexArrayScratchSpace
- STORAGE: ArraySandRScratchSpace
-# STORAGE: ComplexArraySandRScratchSpace
-} "A single Cactus evolution step using MoL"
-
+ if (MoL_Num_Evolved_Vars)
+ {
+ if (MoL_Num_SaveAndRestore_Vars)
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ScratchSpace
+ STORAGE: SandRScratchSpace
+ STORAGE: ArrayScratchSpace
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ScratchSpace
+ STORAGE: SandRScratchSpace
+ STORAGE: ArrayScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ else
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ScratchSpace
+ STORAGE: ArrayScratchSpace
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ScratchSpace
+ STORAGE: ArrayScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ }
+ else
+ {
+ if (MoL_Num_SaveAndRestore_Vars)
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: SandRScratchSpace
+ STORAGE: ArrayScratchSpace
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: SandRScratchSpace
+ STORAGE: ArrayScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ else
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ArrayScratchSpace
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ArrayScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ }
+}
+else
+{
+ if (MoL_Num_Evolved_Vars)
+ {
+ if (MoL_Num_SaveAndRestore_Vars)
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: SandRScratchSpace
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: SandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ else
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ }
+ else
+ {
+ if (MoL_Num_SaveAndRestore_Vars)
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: SandRScratchSpace
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: SandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ else
+ {
+ if (MoL_Max_Evolved_Array_Size)
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ STORAGE: ArraySandRScratchSpace
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ else
+ {
+ schedule GROUP MoL_Evolution AT Evol
+ {
+ LANG: C
+ # STORAGE: ComplexScratchSpace
+ # STORAGE: ComplexSandRScratchSpace
+ # STORAGE: ComplexArrayScratchSpace
+ # STORAGE: ComplexArraySandRScratchSpace
+ } "A single Cactus evolution step using MoL"
+ }
+ }
+ }
+}
+
######################################################
### StartStep contains the routines that just do ###
### internal MoL stuff; setting the counter, and ###