diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-05-26 15:55:33 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-05-26 15:55:33 -0400 |
commit | 84e390d73ab7148814b19d4758ff90564c3f1c5d (patch) | |
tree | 93cc0c4ef78338a6cf9879016a9a1e6518a237ac /Carpet/CarpetIOScalar/src | |
parent | 9748e3a83336a9ccae73a66481530f8049e8c78d (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.cc | 14 |
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); |