diff --git a/Src/Base/AMReX_Utility.cpp b/Src/Base/AMReX_Utility.cpp index b9cc90df5ae..11da03e844f 100644 --- a/Src/Base/AMReX_Utility.cpp +++ b/Src/Base/AMReX_Utility.cpp @@ -183,10 +183,17 @@ amrex::FileExists(const std::string &filename) std::string amrex::UniqueString() { - std::stringstream tempstring; - tempstring << std::setprecision(11) << std::fixed << ParallelDescriptor::second(); - auto const tsl = tempstring.str().length(); - return(tempstring.str().substr(tsl/2, tsl)); + constexpr int len = 7; + static const auto n = std::max + (len, + static_cast( + std::round(std::log10(double(MaxResSteadyClock::period::den) + /double(MaxResSteadyClock::period::num))))); + std::stringstream tempstring; + tempstring << std::setprecision(n) << std::fixed << amrex::second()+100.0; + auto const ts = tempstring.str(); + auto const tsl = ts.length(); + return ts.substr(tsl-len,tsl); // tsl-len >= 0 } void