diff options
Diffstat (limited to 'Carpet/CarpetIOHDF5/src/OutputSlice.cc')
-rw-r--r-- | Carpet/CarpetIOHDF5/src/OutputSlice.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Carpet/CarpetIOHDF5/src/OutputSlice.cc b/Carpet/CarpetIOHDF5/src/OutputSlice.cc index 0a5fcee89..2f67d031b 100644 --- a/Carpet/CarpetIOHDF5/src/OutputSlice.cc +++ b/Carpet/CarpetIOHDF5/src/OutputSlice.cc @@ -357,10 +357,15 @@ namespace CarpetIOHDF5 { 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); |