aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOASCII/src
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-05-26 15:55:33 -0400
committerErik Schnetter <schnetter@gmail.com>2013-05-26 15:55:33 -0400
commit84e390d73ab7148814b19d4758ff90564c3f1c5d (patch)
tree93cc0c4ef78338a6cf9879016a9a1e6518a237ac /Carpet/CarpetIOASCII/src
parent9748e3a83336a9ccae73a66481530f8049e8c78d (diff)
CarpetIO*: New parameter CarpetIO*::out_group_separator
out_group_separator chooses the string by which thorn name and group name are separated in file names. The default is "::" for backward compatibility. This parameter only affects output where CarpetIO*::one_file_per_group is set; otherwise, the thorn name does not appear in the file name.
Diffstat (limited to 'Carpet/CarpetIOASCII/src')
-rw-r--r--Carpet/CarpetIOASCII/src/ioascii.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/Carpet/CarpetIOASCII/src/ioascii.cc b/Carpet/CarpetIOASCII/src/ioascii.cc
index 6077620d7..9c860eec5 100644
--- a/Carpet/CarpetIOASCII/src/ioascii.cc
+++ b/Carpet/CarpetIOASCII/src/ioascii.cc
@@ -355,10 +355,15 @@ namespace CarpetIOASCII {
int retval;
if (one_file_per_group) {
- char* const alias = CCTK_GroupNameFromVarI (vindex);
- for (char* p = alias; *p; ++p) *p = (char) tolower (*p);
- retval = OutputVarAs (cctkGH, fullname, alias);
- free (alias);
+ char* const alias_c = CCTK_GroupNameFromVarI (vindex);
+ string alias(alias_c);
+ free (alias_c);
+ transform(alias.begin(), alias.end(), alias.begin(), ::tolower);
+ string const oldsep ("::");
+ size_t const oldseppos = alias.find(oldsep);
+ assert (oldseppos != string::npos);
+ alias.replace(oldseppos, oldsep.size(), out_group_separator);
+ retval = OutputVarAs (cctkGH, fullname, alias.c_str());
} else {
const char* const alias = CCTK_VarName (vindex);
retval = OutputVarAs (cctkGH, fullname, alias);