Changeset 39143
- Timestamp:
- Nov 15, 2015, 7:30:43 PM (11 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/dvomerge/src/build_links.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/dvomerge/src/build_links.c
r39142 r39143 36 36 37 37 ALLOCATE (next_meas, off_t, Nmeasure); 38 for (i = 0; i < Naverage; i++, N++) { 38 for (i = 0; i < Naverage; i++) { 39 if (!average[i].Nmeasure) continue; 40 off_t m = average[i].measureOffset; 41 myAssert (measure[m].averef == i, "not sorted"); 39 42 for (j = 0; j < average[i].Nmeasure - 1; j++, N++) { 43 myAssert (measure[m+j+1].averef == i, "not sorted"); 40 44 next_meas[N] = N + 1; 41 45 if (N >= Nmeasure) { … … 52 56 abort (); 53 57 } 58 N++; 54 59 } 55 60 return (next_meas); … … 124 129 } 125 130 126 if (m == -1) { 131 // if Nmeasure is 0, m may have been mis-set; add to the end 132 if ((average[0].Nmeasure == 0) || (m == -1)) { 127 133 average[0].measureOffset = Nmeasure; 128 134 } else { … … 138 144 Measure *sort_measure (Average *average, off_t Naverage, Measure *measure, off_t Nmeasure, off_t *next_meas) { 139 145 140 off_t i, k, n, N;146 off_t i, k, n, np, N; 141 147 Measure *tmpmeasure; 142 148 143 149 /* fix order of Measure (memory intensive, but fast) */ 150 np = -1; // previous entry in case of errors 144 151 N = 0; 145 152 ALLOCATE (tmpmeasure, Measure, Nmeasure); 146 153 for (i = 0; i < Naverage; i++) { 154 if (!average[i].Nmeasure) continue; 147 155 n = average[i].measureOffset; 148 156 average[i].measureOffset = N; 149 157 int myObjID = average[i].objID; 150 158 for (k = 0; k < average[i].Nmeasure; k++, N++) { 151 if (n == -1) abort(); 159 if (n == -1) { 160 fprintf (stderr, "entry after %d has a problem\n", (int) np); 161 abort(); 162 } 152 163 tmpmeasure[N] = measure[n]; 153 164 myAssert (measure[n].averef == i, "error in averef?"); 154 165 myAssert (measure[n].objID == myObjID, "error in objID?"); 155 166 tmpmeasure[N].averef = i; 167 np = n; 156 168 n = next_meas[n]; 157 169 } … … 354 366 Lensing *tmplensing; 355 367 356 /*357 for (i = 0; i < Naverage; i++) {358 if (average[i].Nlensing != 4) {359 fprintf (stderr, "check %d %d %d\n", (int) i, (int) average[i].Nlensing, (int) average[i].lensingOffset);360 }361 }362 */363 364 368 /* fix order of Lensing (memory intensive, but fast) */ 365 369 np = -1; … … 370 374 n = average[i].lensingOffset; 371 375 average[i].lensingOffset = N; 376 int myObjID = average[i].objID; 372 377 for (k = 0; k < average[i].Nlensing; k++, N++) { 373 378 if (n == -1) { … … 376 381 } 377 382 tmplensing[N] = lensing[n]; 378 if (lensing[n].averef != i) abort(); 383 myAssert (lensing[n].averef == i, "error in averef"); 384 myAssert (lensing[n].objID == myObjID, "error in objID?"); 379 385 tmplensing[N].averef = i; 380 386 np = n; … … 400 406 for (i = 0; i < Naverage; i++) { 401 407 if (!average[i].Nstarpar) continue; 408 off_t m = average[i].starparOffset; 409 myAssert (starpar[m].averef == i, "not sorted"); 402 410 for (j = 0; j < average[i].Nstarpar - 1; j++, N++) { 411 myAssert (starpar[m+j+1].averef == i, "not sorted"); 403 412 next_star[N] = N + 1; 404 413 if (N >= Nstarpar) { … … 488 497 } 489 498 490 if (m == -1) { 499 // if Nmeasure is 0, m may have been mis-set; add to the end 500 if ((average[0].Nstarpar == 0) || (m == -1)) { 491 501 average[0].starparOffset = Nstarpar; 492 502 } else { … … 505 515 StarPar *tmpstarpar; 506 516 507 /*508 for (i = 0; i < Naverage; i++) {509 if (average[i].Nstarpar != 4) {510 fprintf (stderr, "check %d %d %d\n", (int) i, (int) average[i].Nstarpar, (int) average[i].starparOffset);511 }512 }513 */514 515 517 /* fix order of StarPar (memory intensive, but fast) */ 516 np = -1; 518 np = -1; // previous entry in case of errors 517 519 N = 0; 518 520 ALLOCATE (tmpstarpar, StarPar, Nstarpar); … … 521 523 n = average[i].starparOffset; 522 524 average[i].starparOffset = N; 525 int myObjID = average[i].objID; 523 526 for (k = 0; k < average[i].Nstarpar; k++, N++) { 524 527 if (n == -1) { … … 527 530 } 528 531 tmpstarpar[N] = starpar[n]; 529 if (starpar[n].averef != i) abort(); 532 myAssert (starpar[n].averef == i, "error in averef?"); 533 myAssert (starpar[n].objID == myObjID, "error in objID?"); 530 534 tmpstarpar[N].averef = i; 531 535 np = n; … … 660 664 GalPhot *tmpgalphot; 661 665 662 /*663 for (i = 0; i < Naverage; i++) {664 if (average[i].Ngalphot != 4) {665 fprintf (stderr, "check %d %d %d\n", (int) i, (int) average[i].Ngalphot, (int) average[i].galphotOffset);666 }667 }668 */669 670 666 /* fix order of GalPhot (memory intensive, but fast) */ 671 667 np = -1; … … 676 672 n = average[i].galphotOffset; 677 673 average[i].galphotOffset = N; 674 int myObjID = average[i].objID; 678 675 for (k = 0; k < average[i].Ngalphot; k++, N++) { 679 676 if (n == -1) { … … 682 679 } 683 680 tmpgalphot[N] = galphot[n]; 684 if (galphot[n].averef != i) abort(); 681 myAssert (galphot[n].averef == i, "error in averef?"); 682 myAssert (galphot[n].objID == myObjID, "error in objID?"); 685 683 tmpgalphot[N].averef = i; 686 684 np = n;
Note:
See TracChangeset
for help on using the changeset viewer.
