aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOScalar/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/CarpetIOScalar/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/CarpetIOScalar/src')
-rw-r--r--Carpet/CarpetIOScalar/src/ioscalar.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/Carpet/CarpetIOScalar/src/ioscalar.cc b/Carpet/CarpetIOScalar/src/ioscalar.cc
index cfdf1843b..e9bba4b30 100644
--- a/Carpet/CarpetIOScalar/src/ioscalar.cc
+++ b/Carpet/CarpetIOScalar/src/ioscalar.cc
@@ -719,11 +719,17 @@ namespace CarpetIOScalar {
char* const fullname = CCTK_FullName(vindex);
int const gindex = CCTK_GroupIndexFromVarI(vindex);
- char* const groupname = CCTK_GroupName(gindex);
- for (char* p=groupname; *p; ++p) *p=tolower(*p);
- retval = OutputVarAs (cctkGH, fullname, groupname, out_reductions);
+ char* const groupname_c = CCTK_GroupName(gindex);
+ string groupname(groupname_c);
+ transform
+ (groupname.begin(), groupname.end(), groupname.begin(), ::tolower);
+ string const oldsep ("::");
+ size_t const oldseppos = groupname.find(oldsep);
+ assert (oldseppos != string::npos);
+ groupname.replace(oldseppos, oldsep.size(), out_group_separator);
+ retval =
+ OutputVarAs (cctkGH, fullname, groupname.c_str(), out_reductions);
free (fullname);
- free (groupname);
int const firstvar = CCTK_FirstVarIndexI(gindex);
int const numvars = CCTK_NumVarsInGroupI(gindex);