/****************************************************************/ /* P_BBHMBC: Process interleaved bb-hmbc experiments */ /****************************************************************/ /* Short Description : */ /* Process interleaved bb-hmbc experiments */ /****************************************************************/ /* SYNTAX: p_bbhmbc expnomask */ /* */ /* EXAMPLE: p_bbhmbc 6[0123] */ /* Splitcombines expno 60, 61, 62 and 63 */ /* XFB on all, and separate additions of all the */ /* two interleaved, processed data */ /* */ /* The processing uses the same parameters (current expno) */ /* for all processing */ /* */ /* Note that this AU uses splitcomb, mxfb and madd2d */ /****************************************************************/ /* Nils Nyberg, CRC, 2005-10-03 */ /* */ /* */ /****************************************************************/ #define MAXEXP 8 int toprocno, fromprocno, targetexpno; int noofexp, nargs; int sourceexpno[MAXEXP]; char path[PATH_MAX],mask[32],**list; GETCURDATA /* Get arguments */ nargs = sscanf(cmd,"%s %d %d",&mask,&toprocno); switch (nargs) { default: case -1: case 0: sprintf(mask,"%d",expno); GETSTRING("Enter file-mask to experiment numbers to add: ", mask); toprocno = 100; GETINT("Enter target procno: ", toprocno); break; case 1: toprocno = 100; break; } (void)sprintf(text,"Mask = %s, to_procno = %d",mask, toprocno); Show_status(text); targetexpno = expno; fromprocno = procno; /* List experiment numbers that matches the file mask */ (void)sprintf(path,"%s/data/%s/nmr/%s/",disk,user,name); noofexp=getdir(path,&list,mask); if (noofexp == 0 || noofexp > MAXEXP) { (void)sprintf(text,"%d experiments found... ", noofexp); Proc_err(DEF_ERR_OPT,text); ABORT } /* Do the split and combine */ for (i1 = 0; i1 < noofexp; i1++) { Show_status(list[i1]); if (nargs = sscanf(list[i1],"%d", &sourceexpno[i1]) < 1) {ABORT}; DATASET(name, sourceexpno[i1], fromprocno, disk, user); (void)strcpy(text,"splitcomb 2"); XCMD(text); } /* Do the XFB + XF2M */ DATASET(name, targetexpno, fromprocno, disk, user); (void)sprintf(text,"mxfbxf2m %s0[12]",mask); XCMD(text); /* Do the additions */ DATASET(name, sourceexpno[0]*100+1, 1, disk, user); (void)sprintf(text,"madd2d %s01",mask); XCMD(text); DATASET(name, sourceexpno[0]*100+1, 100, disk, user); ABS2 ABS1 LEVCALC VIEWDATA DATASET(name, sourceexpno[0]*100+2, 100, disk, user); (void)sprintf(text,"madd2d %s02",mask); XCMD(text); DATASET(name, sourceexpno[0]*100+2, 100, disk, user); ABS2 ABS1 LEVCALC VIEWDATA QUIT;