bug fix for dump sort in descending order

This commit is contained in:
Steve Plimpton
2016-11-23 17:08:36 -07:00
parent 59d100ab57
commit 6759630c16

View File

@ -256,7 +256,7 @@ void Dump::init()
if (maxall-minall+1 == isize) {
reorderflag = 1;
double range = maxall-minall + EPSILON;
idlo = static_cast<int> (range*me/nprocs + minall);
idlo = static_cast<tagint> (range*me/nprocs + minall);
tagint idhi = static_cast<tagint> (range*(me+1)/nprocs + minall);
tagint lom1 = static_cast<tagint> ((idlo-1-minall)/range * nprocs);
@ -636,9 +636,13 @@ void Dump::sort()
MPI_Allreduce(&max,&maxall,1,MPI_DOUBLE,MPI_MAX,world);
double range = maxall-minall + EPSILON*(maxall-minall);
if (range == 0.0) range = EPSILON;
// proc assignment is inverted if sortorder = DESCEND
for (i = 0; i < nme; i++) {
value = buf[i*size_one + sortcolm1];
iproc = static_cast<int> ((value-minall)/range * nprocs);
if (sortorder == DESCEND) iproc = nprocs-1 - iproc;
proclist[i] = iproc;
}
}