I suggest that we put this inside mcdetector_import():
/* from rank, set type */
switch (detector.rank) {
case 0: strcpy(detector.type, "array_0d"); m=n=p=1; break;
case 1: snprintf(detector.type, CHAR_BUF_LENGTH, "array_1d(%ld)", m*n*p); m *= n*p; n=p=1; break;
case 2: if(!strcasestr(detector.format,"list")) {
snprintf(detector.type, CHAR_BUF_LENGTH, "array_2d(%ld, %ld)", m, n*p); n *= p; p=1;
} else {
snprintf(detector.type, CHAR_BUF_LENGTH, "list(%ld, %ld)", m, n*p); n *= p; p=1;
}
break;
case 3: snprintf(detector.type, CHAR_BUF_LENGTH, "array_3d(%ld, %ld, %ld)", m, n, p); break;
default: m=0; strcpy(detector.type, ""); strcpy(detector.filename, "");/* invalid */
}
- I did test it already, works fine wrt. the output files, but each of the plotters need to be revisited independently... Consider doing this for next release.
- Legacy PGPLOT mcplot works out of the box with a warning, some of the other plotters "burp" and die...
I suggest that we put this inside mcdetector_import():
/* from rank, set type */ switch (detector.rank) { case 0: strcpy(detector.type, "array_0d"); m=n=p=1; break; case 1: snprintf(detector.type, CHAR_BUF_LENGTH, "array_1d(%ld)", m*n*p); m *= n*p; n=p=1; break; case 2: if(!strcasestr(detector.format,"list")) { snprintf(detector.type, CHAR_BUF_LENGTH, "array_2d(%ld, %ld)", m, n*p); n *= p; p=1; } else { snprintf(detector.type, CHAR_BUF_LENGTH, "list(%ld, %ld)", m, n*p); n *= p; p=1; } break; case 3: snprintf(detector.type, CHAR_BUF_LENGTH, "array_3d(%ld, %ld, %ld)", m, n, p); break; default: m=0; strcpy(detector.type, ""); strcpy(detector.filename, "");/* invalid */ }