373 |
|
finish_receiver(void) |
374 |
|
{ |
375 |
|
char *calfn = NULL; |
376 |
+ |
char *params = NULL; |
377 |
|
char *binv = NULL; |
378 |
|
char *binf = NULL; |
379 |
|
char *nbins = NULL; |
406 |
|
else |
407 |
|
curparams.vup[1] = 1; |
408 |
|
if (tolower(curparams.hemis[0]) == 'u' | curparams.hemis[0] == '1') { |
409 |
< |
binv = "0"; |
409 |
> |
binv = "0"; /* uniform sampling -- one bin */ |
410 |
|
} else if (tolower(curparams.hemis[0]) == 's' && |
411 |
|
tolower(curparams.hemis[1]) == 'c') { |
412 |
|
/* assign parameters */ |
415 |
|
fputs(": missing size for Shirley-Chiu sampling!\n", stderr); |
416 |
|
exit(1); |
417 |
|
} |
418 |
+ |
calfn = shirchiufn; shirchiufn = NULL; |
419 |
|
sprintf(sbuf, "SCdim=%d,Nx=%g,Ny=%g,Nz=%g,Ux=%g,Uy=%g,Uz=%g", |
420 |
|
curparams.hsiz, |
421 |
|
curparams.nrm[0], curparams.nrm[1], curparams.nrm[2], |
422 |
|
curparams.vup[0], curparams.vup[1], curparams.vup[2]); |
423 |
< |
CHECKARGC(2); |
422 |
< |
rcarg[nrcargs++] = "-p"; |
423 |
< |
rcarg[nrcargs++] = savqstr(sbuf); |
424 |
< |
calfn = shirchiufn; shirchiufn = NULL; |
423 |
> |
params = savqstr(sbuf); |
424 |
|
binv = "scbin"; |
425 |
|
nbins = "SCdim*SCdim"; |
426 |
|
} else if ((tolower(curparams.hemis[0]) == 'r') | |
427 |
|
(tolower(curparams.hemis[0]) == 't')) { |
428 |
|
calfn = reinhfn; reinhfn = NULL; |
429 |
< |
/* XXX Need to set number of divisions */ |
430 |
< |
binf = "rhbin"; |
431 |
< |
nbins = "Nrhbins"; |
429 |
> |
sprintf(sbuf, "MF=%d,Nx=%g,Ny=%g,Nz=%g,Ux=%g,Uy=%g,Uz=%g", |
430 |
> |
curparams.hsiz, |
431 |
> |
curparams.nrm[0], curparams.nrm[1], curparams.nrm[2], |
432 |
> |
curparams.vup[0], curparams.vup[1], curparams.vup[2]); |
433 |
> |
params = savqstr(sbuf); |
434 |
> |
binv = "rbin"; |
435 |
> |
nbins = "Nrbins"; |
436 |
|
} else if (tolower(curparams.hemis[0]) == 'k' && |
437 |
|
!curparams.hemis[1] | |
438 |
|
(tolower(curparams.hemis[1]) == 'f') | |
462 |
|
rcarg[nrcargs++] = "-f"; |
463 |
|
rcarg[nrcargs++] = calfn; |
464 |
|
} |
465 |
+ |
if (params != NULL) { /* parameters _after_ cal file */ |
466 |
+ |
CHECKARGC(2); |
467 |
+ |
rcarg[nrcargs++] = "-p"; |
468 |
+ |
rcarg[nrcargs++] = params; |
469 |
+ |
} |
470 |
|
if (nbins != NULL) { /* add #bins if set */ |
471 |
|
CHECKARGC(2); |
472 |
|
rcarg[nrcargs++] = "-bn"; |
473 |
|
rcarg[nrcargs++] = nbins; |
474 |
|
} |
475 |
< |
if (binfv != NULL) { |
475 |
> |
if (binv != NULL) { |
476 |
|
CHECKARGC(2); /* assign bin variable */ |
477 |
|
rcarg[nrcargs++] = "-b"; |
478 |
|
rcarg[nrcargs++] = binv; |
479 |
|
} else if (binf != NULL) { |
480 |
|
CHECKARGC(2); /* assign bin function */ |
481 |
+ |
rcarg[nrcargs++] = "-b"; |
482 |
|
sprintf(sbuf, "%s(%g,%g,%g,%g,%g,%g)", binf, |
483 |
|
curparams.nrm[0], curparams.nrm[1], curparams.nrm[2], |
484 |
|
curparams.vup[0], curparams.vup[1], curparams.vup[2]); |
476 |
– |
rcarg[nrcargs++] = "-b"; |
485 |
|
rcarg[nrcargs++] = savqstr(sbuf); |
486 |
|
} |
487 |
|
CHECKARGC(2); /* modifier argument goes last */ |