diff options
author | hawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b> | 2004-02-27 14:09:32 +0000 |
---|---|---|
committer | hawke <hawke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b> | 2004-02-27 14:09:32 +0000 |
commit | e782aae1339a75b1fe1d8dcc95392ae95aada03a (patch) | |
tree | 4247ced53b62436fd3c645f00ee02cb9d029d3de /schedule.ccl | |
parent | 4619968ab7a6ffd58c400c50c1fac75429273f1b (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.ccl | 284 |
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 ### |