Skip to content

Commit

Permalink
Add curly brackets between amrex::Initialize and amrex::Finalize. (AM…
Browse files Browse the repository at this point in the history
…ReX-Codes#2352)

This prevents segmentation faults that can occur if amrex objects
(like MultiFabs) are still in scope when Finalize is called.
  • Loading branch information
cgilet authored Sep 23, 2021
1 parent 368a808 commit 8c79eec
Show file tree
Hide file tree
Showing 15 changed files with 2,187 additions and 2,156 deletions.
46 changes: 24 additions & 22 deletions Tools/C_util/Convergence/Add.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,38 +44,40 @@ main (int argc,
char* argv[])
{
amrex::Initialize(argc,argv);
{

if (argc == 1)
PrintUsage(argv[0]);
if (argc == 1)
PrintUsage(argv[0]);

ParmParse pp;
ParmParse pp;

FArrayBox::setFormat(FABio::FAB_IEEE_32);
//
// Scan the arguments.
//
std::string iFileDir, iFile, eFile, oFile, oFileDir;
Real factor;
FArrayBox::setFormat(FABio::FAB_IEEE_32);
//
// Scan the arguments.
//
std::string iFileDir, iFile, eFile, oFile, oFileDir;
Real factor;

pp.query("infile", iFile);
if (iFile.empty())
amrex::Abort("You must specify `infile'");
pp.query("infile", iFile);
if (iFile.empty())
amrex::Abort("You must specify `infile'");

pp.query("factor", factor);
pp.query("factor", factor);

pp.query("outfile", oFile);
if (oFile.empty())
amrex::Abort("You must specify `outfile'");
pp.query("outfile", oFile);
if (oFile.empty())
amrex::Abort("You must specify `outfile'");

std::ifstream is(iFile.c_str(),ios::in);
std::ofstream os(oFile.c_str(),ios::out);
std::ifstream is(iFile.c_str(),ios::in);
std::ofstream os(oFile.c_str(),ios::out);

FArrayBox dataI, dataE;
dataI.readFrom(is);
FArrayBox dataI, dataE;
dataI.readFrom(is);

dataI.plus(factor);
dataI.plus(factor);

dataI.writeOn(os);
dataI.writeOn(os);

}
amrex::Finalize();
}
Loading

0 comments on commit 8c79eec

Please sign in to comment.