diff --git a/c_tools/zobov2/jozov2.cpp b/c_tools/zobov2/jozov2.cpp index b33a906..718b8e9 100644 --- a/c_tools/zobov2/jozov2.cpp +++ b/c_tools/zobov2/jozov2.cpp @@ -139,10 +139,10 @@ int main(int argc,char **argv) if (z[i].np == 1) continue; - txt << format("%d %d %d %e %e %d %d %e %d %f %6.2e %f") + txt << format("%d %d %d %e %e %d %d %e %d %f %6.2e") % (h+1) % i % z[i].core % p[z[i].core].dens % z[i].vol % z[i].np % z[i].nhl % z[i].voljoin % z[i].npjoin - % z[i].denscontrast % prob % z[i].leak << endl; + % z[i].denscontrast % prob << endl; } /* h+1 to start from 1, not zero */ txt.close(); diff --git a/c_tools/zobov2/jozov2_watershed.cpp b/c_tools/zobov2/jozov2_watershed.cpp index 3c46e97..c66ba48 100644 --- a/c_tools/zobov2/jozov2_watershed.cpp +++ b/c_tools/zobov2/jozov2_watershed.cpp @@ -50,23 +50,9 @@ static void build_process_queue(ZoneQueue& q, ZONE *z, char *inyet, int h) void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, float voltol) { - int *iord; - - double *sorter = new double[numZones+1]; - /* Assign sorter by probability (could use volume instead) */ - for (int h = 0; h < numZones; h++) - sorter[h] = (double)z[h].core; - /* Text output file */ - printf("about to sort (pre-watershed sort) ...\n");FF; - - iord = new int[numZones]; - -// findrtop(sorter, numZones, iord, numZones); - delete[] sorter; - - //#pragma omp parallel +#pragma omp parallel { char *inyet, *inyet2; int *zonelist, *zonelist2; @@ -82,7 +68,7 @@ void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, flo fill(inyet2, inyet2 + numZones, 0); nhl = 0; - //#pragma omp for schedule(dynamic,1) +#pragma omp for schedule(dynamic,1) for (int h = 0; h < numZones; h++) { int nhlcount = 0; @@ -244,7 +230,6 @@ void doWatershed(PARTICLE *p, pid_t np, ZONE *z, int numZones, float maxvol, flo delete[] inyet2; } - delete[] iord; double maxdenscontrast = 0; #pragma omp parallel shared(maxdenscontrast) diff --git a/c_tools/zobov2/jozov2_zones.cpp b/c_tools/zobov2/jozov2_zones.cpp index ca59768..ebfc974 100644 --- a/c_tools/zobov2/jozov2_zones.cpp +++ b/c_tools/zobov2/jozov2_zones.cpp @@ -39,10 +39,13 @@ void buildInitialZones(PARTICLE *p, pid_t np, pid_t* jumped, } (cout << "Post-jump ..." << endl).flush(); - numZones = 0; + pid_t loc_NumZones = 0; +#pragma omp parallel for schedule(static) reduction(+:loc_NumZones) for (pid_t i = 0; i < np; i++) if (numinh[i] > 0) - numZones++; + loc_NumZones++; + + numZones = loc_NumZones; cout << format("%d initial zones found") % numZones << endl; delete[] jumper;