diff options
-rw-r--r-- | Carpet/CarpetIOScalar/param.ccl | 1 | ||||
-rw-r--r-- | Carpet/CarpetIOScalar/src/ioscalar.cc | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/Carpet/CarpetIOScalar/param.ccl b/Carpet/CarpetIOScalar/param.ccl index d4ac7a237..f42087b92 100644 --- a/Carpet/CarpetIOScalar/param.ccl +++ b/Carpet/CarpetIOScalar/param.ccl @@ -48,6 +48,7 @@ KEYWORD outScalar_criterion "Criterion to select scalar output intervals, overri { "never" :: "Never output" "iteration" :: "Output every so many iterations" + "divisor" :: "Output if iteration mod divisor == 0." "time" :: "Output every that much coordinate time" } "iteration" diff --git a/Carpet/CarpetIOScalar/src/ioscalar.cc b/Carpet/CarpetIOScalar/src/ioscalar.cc index 4e65f1d87..0c28dd943 100644 --- a/Carpet/CarpetIOScalar/src/ioscalar.cc +++ b/Carpet/CarpetIOScalar/src/ioscalar.cc @@ -487,6 +487,23 @@ namespace CarpetIOScalar { output_this_iteration = false; } + } else if (CCTK_EQUALS (myoutcriterion, "divisor")) { + + int myoutevery = outScalar_every; + if (myoutevery == -2) { + myoutevery = out_every; + } + if (myoutevery <= 0) { + // output is disabled + output_this_iteration = false; + } else if ((cctk_iteration % myoutevery) == 0 ) { + // we already decided to output this iteration + output_this_iteration = true; + } else { + // we want no output at this iteration + output_this_iteration = false; + } + } else if (CCTK_EQUALS (myoutcriterion, "time")) { CCTK_REAL myoutdt = outScalar_dt; |