void pulsesequence() { /* DECLARE VARIABLES */ char autocal[MAXSTR], /* auto-calibration flag */ fsat[MAXSTR], fscuba[MAXSTR], f1180[MAXSTR], /* Flag to start t1 @ halfdwell */ f2180[MAXSTR], /* Flag to start t2 @ halfdwell */ mess_flg[MAXSTR], /* water purging */ c180_flg[MAXSTR], spco90a[MAXSTR], spco180a[MAXSTR], spco90b[MAXSTR], spco180b[MAXSTR]; int phase, phase2, ni, t1_counter, /* used for states tppi in t1 */ t2_counter; /* used for states tppi in t2 */ double tau1, /* t1 delay */ tau2, /* t2 delay */ taua, /* ~ 1/4JCH = 1.7 ms */ tauc1, /* ca/cb refocus and ca/c' defocus = 4.5 ms */ tauc2, /* ca/cb stay and ca/c' refocus = 2.7 ms */ taud, /* ca-ha refocus; 1.8 ms */ BigTC, /* carbon constant time period */ dly_pg1, /* delay for water purging */ pwN, /* PW90 for 15N pulse */ pwca90a, /* PW90 for ca nucleus @ pwClvl */ pwca180a, /* PW180 for ca at dvhpwra */ pwco180a, /* PW180 for c' using seduce shape */ pwca90b, /* PW90 for ca nucleus @ dhpwrb */ pwca180b, /* PW180 for ca nucleus @ dvhpwrb */ pwco180b, /* PW180 for c' using rectang. pulse */ pwco90b, /* PW90 for co nucleus @ dhpwrb */ tsatpwr, /* low level 1H trans.power for presat */ tpwrml, /* power level for h decoupling */ tpwrmess, /* power level for water purging */ pwmlev, /* h 90 pulse at tpwrml */ pwClvl, /* power level for 13C pulses on dec1 90 for part a of the sequence at 43 ppm */ dvhpwra, /* power level for 180 13C pulses at 43 ppm */ dpwr_coa, /* power level for C' 180 pulses at 43 ppm */ dhpwrb, /* power level for 13C pulses on dec1 - 54 ppm 90 for part b of the sequence */ dvhpwrb, /* power level for 13C pulses on dec1 - 54 ppm 180 for part b of the sequence */ pwNlvl, /* high dec2 pwr for 15N hard pulses */ sw1, /* sweep width in f1 */ sw2, /* sweep width in f2 */ dofcacb, /* dof for dipsi part, 43 ppm */ cln_dly, /* so that get rid of crap from hb etc with zero tocsy transfer */ sphase, pwC, compC, /* C-13 RF calibration parameters */ compH, waltzB1,gstab, ni2=getval("ni2"), gt0, gt1, gt2, gt3, gt4, gt5, gt6, gt7, gzlvl0, gzlvl1, gzlvl2, gzlvl3, gzlvl4, gzlvl5, gzlvl6, gzlvl7; /* variables commented out are already defined by the system */ /* LOAD VARIABLES */ getstr("autocal",autocal); getstr("fsat",fsat); getstr("f1180",f1180); getstr("f2180",f2180); getstr("fscuba",fscuba); getstr("mess_flg",mess_flg); getstr("c180_flg",c180_flg); taua = getval("taua"); tauc1 = getval("tauc1"); tauc2 = getval("tauc2"); taud = getval("taud"); BigTC = getval("BigTC"); dly_pg1 = getval("dly_pg1"); pwN = getval("pwN"); tpwr = getval("tpwr"); tsatpwr = getval("tsatpwr"); tpwrml = getval("tpwrml"); tpwrmess = getval("tpwrmess"); dpwr = getval("dpwr"); pwNlvl = getval("pwNlvl"); phase = (int) ( getval("phase") + 0.5); phase2 = (int) ( getval("phase2") + 0.5); sw1 = getval("sw1"); sw2 = getval("sw2"); dofcacb = getval("dofcacb"); cln_dly = getval("cln_dly"); ni = getval("ni"); sphase = getval("sphase"); gt0 = getval("gt0"); gt1 = getval("gt1"); gt2 = getval("gt2"); gt3 = getval("gt3"); gt4 = getval("gt4"); gt5 = getval("gt5"); gt6 = getval("gt6"); gt7 = getval("gt7"); gstab = getval("gstab"); gzlvl0 = getval("gzlvl0"); gzlvl1 = getval("gzlvl1"); gzlvl2 = getval("gzlvl2"); gzlvl3 = getval("gzlvl3"); gzlvl4 = getval("gzlvl4"); gzlvl5 = getval("gzlvl5"); gzlvl6 = getval("gzlvl6"); gzlvl7 = getval("gzlvl7"); if(autocal[0]=='n') { getstr("spco90a",spco90a); getstr("spco180a",spco180a); getstr("spco90b",spco90b); getstr("spco180b",spco180b); pwmlev = getval("pwmlev"); pwca90a = getval("pwca90a"); pwca180a = getval("pwca180a"); pwco180a = getval("pwco180a"); pwca90b = getval("pwca90b"); pwca180b = getval("pwca180b"); pwco90b = getval("pwco90b"); pwco180b = getval("pwco180b"); pwClvl = getval("pwClvl"); dvhpwra = getval("dvhpwra"); dpwr_coa = getval("dpwr_coa"); dhpwrb = getval("dhpwrb"); dvhpwrb = getval("dvhpwrb"); } else { waltzB1=getval("waltzB1"); pwmlev=1/(4.0*waltzB1); compH = getval("compH"); tpwrml= tpwr - 20.0*log10(pwmlev/(compH*pw)); tpwrml= (int) (tpwrml + 0.5); strcpy(spco90a,"Psed180_133p"); strcpy(spco180a,"Psed180_133p"); strcpy(spco90b,"Phard90co_118p"); strcpy(spco180b,"Phard180co_118p"); if (FIRST_FID) { pwC = getval("pwC"); pwClvl = getval("pwClvl"); compC = getval("compC"); ca90 = pbox("cal", CA90, "", dfrq, compC*pwC, pwClvl); ca180 = pbox("cal", CA180, "", dfrq, compC*pwC, pwClvl); co180 = pbox(spco180a, CO180, CO180ps, dfrq, compC*pwC, pwClvl); ca90b = pbox("cal", CA90b, "", dfrq, compC*pwC, pwClvl); ca180b = pbox("cal", CA180b, "", dfrq, compC*pwC, pwClvl); co90b = pbox(spco90b, CO90b, CA180ps, dfrq, compC*pwC, pwClvl); co180b = pbox(spco180b, CO180b, CA180ps, dfrq, compC*pwC, pwClvl); w16 = pbox_dec("cal", "WALTZ16", tpwrml, sfrq, compH*pw, tpwr); } pwca90a = ca90.pw; pwClvl = ca90.pwr; pwca180a = ca180.pw; dvhpwra = ca180.pwr; pwco180a = co180.pw; dpwr_coa = co180.pwr; pwco90b = co90b.pw; dhpwrb = co90b.pwr; pwco180b = co180b.pw; pwca90b = ca90b.pw; pwca180b = ca180b.pw; dvhpwrb = ca180b.pwr; pwmlev = 1.0/w16.dmf; } /* LOAD PHASE TABLE */ settable(t1,1,phi1); settable(t2,1,phi2); settable(t3,2,phi3); settable(t4,4,phi4); settable(t5,8,phi5); settable(t6,8,phi6); settable(t7,16,phi7); settable(t9,4,phi9); settable(t8,16,rec); /* CHECK VALIDITY OF PARAMETER RANGES */ if( ni*1/(sw1) > 2.0*BigTC ) { printf(" ni is too big\n"); psg_abort(1); } if((c180_flg[A] == 'y') && (ni2>1)) { printf("set c180_flg=n for C=O evolution"); psg_abort(1); } if((dm[A] == 'y' || dm[B] == 'y')) { printf("incorrect dec1 decoupler flags! "); psg_abort(1); } if((dm2[A] == 'y' || dm2[B] == 'y' || dm2[C] == 'y')) { printf("incorrect dec2 decoupler flags! Should be 'nnn' "); psg_abort(1); } if( pwmlev < 30.0e-6 ) { printf("too much power during proton mlev sequence\n"); psg_abort(1); } if( tpwrml > 53 ) { printf("tpwrml is too high\n"); psg_abort(1); } if( tsatpwr > 6 ) { printf("TSATPWR too large !!! "); psg_abort(1); } if( dpwr > 50 ) { printf("don't fry the probe, DPWR too large! "); psg_abort(1); } if( dpwr2 > 50 ) { printf("don't fry the probe, DPWR2 too large! "); psg_abort(1); } if( pwClvl > 62 ) { printf("don't fry the probe, DHPWR too large! "); psg_abort(1); } if( dhpwrb > 62 ) { printf("don't fry the probe, DHPWRB too large! "); psg_abort(1); } if( dvhpwrb > 62 ) { printf("don't fry the probe, DVHPWRB too large! "); psg_abort(1); } if( pwNlvl > 62 ) { printf("don't fry the probe, DHPWR2 too large! "); psg_abort(1); } if( pw > 200.0e-6 ) { printf("dont fry the probe, pw too high ! "); psg_abort(1); } if( pwmlev > 200.0e-6 ) { printf("dont fry the probe, pwmlev too high ! "); psg_abort(1); } if( pwN > 200.0e-6 ) { printf("dont fry the probe, pwN too high ! "); psg_abort(1); } if( pwca90a > 200.0e-6 ) { printf("dont fry the probe, pwca90a too high ! "); psg_abort(1); } if( pwca90b > 200.0e-6 ) { printf("dont fry the probe, pwca90b too high ! "); psg_abort(1); } if( pwca180b > 200.0e-6 ) { printf("dont fry the probe, pwca180b too high ! "); psg_abort(1); } if( pwco90b > 200.0e-6 ) { printf("dont fry the probe, pwco180b too high ! "); psg_abort(1); } if( gt0 > 15e-3 || gt1 > 15e-3 || gt2 > 15e-3 || gt3 > 15e-3 || gt4 > 15e-3 || gt5 > 15e-3 || gt6 > 15e-3 || gt7 > 15e-3 ) { printf("gradients on for too long. Must be < 15e-3 \n"); psg_abort(1); } /* Phase incrementation for hypercomplex 2D data */ if (phase == 2) { tsadd(t3,1,4); } if (phase2 == 2) tsadd(t7,1,4); /* Set up f1180 tau1 = t1 */ tau1 = d2; if(f1180[A] == 'y') { tau1 += ( 1.0 / (2.0*sw1) ); if(tau1 < 0.2e-6) tau1 = 0.0; } tau1 = tau1/2.0; /* Set up f2180 tau2 = t2 */ tau2 = d3; if(f2180[A] == 'y') { tau2 += ( 1.0 / (2.0*sw2) - pwca180b - 2.0*pwN - (4.0/PI)*pwco90b - 2*POWER_DELAY - WFG_START_DELAY - WFG_STOP_DELAY - 2.0e-6 ); if(tau2 < 0.2e-6) tau2 = 0.0; } tau2 = tau2/2.0; /* Calculate modifications to phases for States-TPPI acquisition */ if( ix == 1) d2_init = d2 ; t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 ); if(t1_counter % 2) { tsadd(t3,2,4); tsadd(t8,2,4); } if( ix == 1) d3_init = d3 ; t2_counter = (int) ( (d3-d3_init)*sw2 + 0.5 ); if(t2_counter % 2) { tsadd(t7,2,4); tsadd(t8,2,4); } /* BEGIN ACTUAL PULSE SEQUENCE */ /* Receiver off time */ status(A); decoffset(dofcacb); /* initially pulse at 43 ppm */ obspower(tsatpwr); /* Set transmitter power for 1H presaturation */ decpower(pwClvl); /* Set Dec1 power for hard 13C pulses */ dec2power(pwNlvl); /* Set Dec2 power for 15N hard pulses */ /* Presaturation Period */ if (fsat[0] == 'y') { delay(2.0e-5); rgpulse(d1,zero,2.0e-6,2.0e-6); obspower(tpwr); /* Set transmitter power for hard 1H pulses */ delay(2.0e-5); if(fscuba[0] == 'y') { delay(2.2e-2); rgpulse(pw,zero,2.0e-6,0.0); rgpulse(2*pw,one,2.0e-6,0.0); rgpulse(pw,zero,2.0e-6,0.0); delay(2.2e-2); } } else { delay(d1); } obspower(tpwr); /* Set transmitter power for hard 1H pulses */ txphase(zero); dec2phase(zero); delay(1.0e-5); /* Begin Pulses */ status(B); rcvroff(); delay(20.0e-6); /* first ensure that magnetization does infact start on H and not C */ decrgpulse(pwca90a,zero,2.0e-6,2.0e-6); delay(2.0e-6); zgradpulse(gzlvl0,gt0); delay(gstab); /* this is the real start */ rgpulse(pw,zero,0.0,0.0); /* 90 deg 1H pulse */ decphase(t1); decpower(dvhpwra); delay(2.0e-6); zgradpulse(gzlvl1,gt1); delay(2.0e-6); delay(taua - POWER_DELAY - gt1 - 4.0e-6); /* taua <= 1/4JCH */ simpulse(2*pw,pwca180a,zero,t1,0.0,0.0); decpower(pwClvl); txphase(t2); decphase(t3); delay(2.0e-6); zgradpulse(gzlvl1,gt1); delay(2.0e-6); delay(taua - POWER_DELAY - gt1 - 4.0e-6); rgpulse(pw,t2,0.0,0.0); delay(2.0e-6); zgradpulse(gzlvl2,gt2); delay(gstab); decrgpulse(pwca90a,t3,0.0,2.0e-6); delay(tau1); decpower(dpwr_coa); decshaped_pulse(spco180a,pwco180a,zero,2.0e-6,0.0); dec2rgpulse(2*pwN,zero,0.0,0.0); delay(2.0e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); decpower(dvhpwra); delay(0.8e-3 - gt7 - 4.0e-6 - 2*POWER_DELAY); delay(0.2e-6); rgpulse(2*pw,zero,0.0,0.0); decphase(t4); delay(BigTC - 0.8e-3); initval(1.0,v3); decstepsize(sphase); dcplrphase(v3); decrgpulse(pwca180a,t4,2.0e-6,2.0e-6); dcplrphase(zero); delay(2.0e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); delay(BigTC - tau1 + 2*pwN + 2*pw - 2.0*POWER_DELAY - gt7 - 4.0e-6); delay(0.2e-6); decpower(dpwr_coa); decshaped_pulse(spco180a,pwco180a,zero,2.0e-6,0.0); /* bloch seigert */ decpower(pwClvl); decrgpulse(pwca90a,t9,2.0e-6,0.0); /* H decoupling on */ obspower(tpwrml); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* TURN ME OFF DONT FORGET */ /* H decoupling on */ decpower(dpwr_coa); decshaped_pulse(spco180a,pwco180a,zero,2.0e-6,0.0); /* bloch seigert */ decpower(pwClvl); delay(tauc1 - 4.0*POWER_DELAY - PRG_START_DELAY - 2.0e-6); decpower(dvhpwra); decrgpulse(pwca180a,t5,2.0e-6,0.0); decpower(dpwr_coa); decshaped_pulse(spco180a,pwco180a,zero,2.0e-6,0.0); decpower(pwClvl); delay(tauc1 - 2.0*POWER_DELAY - 2.0e-6); decrgpulse(pwca90a,t6,2.0e-6,0.0); delay(2.0e-6); decphase(t7); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ delay(2.0e-6); zgradpulse(gzlvl3,gt3); delay(gstab); decoffset(dof); hsdelay(cln_dly); decpower(dhpwrb); /* H decoupling on */ obspower(tpwrml); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* TURN ME OFF DONT FORGET */ /* H decoupling on */ delay(2.0e-6); decshaped_pulse(spco90b,pwco90b,t7,0.0,0.0); delay(tau2); if(c180_flg[A] == 'y') { delay(4.0e-6); decshaped_pulse(spco180b,pwco180b,zero,0.0,0.0); delay(4.0e-6); } else { decpower(dvhpwrb); decrgpulse(pwca180b,zero,2.0e-6,0.0); decpower(dhpwrb); dec2rgpulse(2*pwN,zero,0.0,0.0); } delay(tau2); decshaped_pulse(spco90b,pwco90b,zero,0.0,0.0); delay(0.2e-6); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ if(mess_flg[A] == 'y') { obspower(tpwrmess); rgpulse(dly_pg1,zero,2.0e-6,2.0e-6); rgpulse(dly_pg1/1.62,one,2.0e-6,2.0e-6); } delay(2.0e-6); zgradpulse(gzlvl4,gt4); delay(gstab); obspower(tpwr); rgpulse(pw,zero,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl4,gt4/1.73); delay(gstab); decrgpulse(pwca90b,zero,0.0,0.0); delay(2.0e-6); zgradpulse(gzlvl5,gt5); delay(2.0e-6); delay(taud - gt5 - 4.0e-6); rgpulse(2*pw,zero,0.0,0.0); delay(tauc2 - taud - POWER_DELAY - 2*pw - 2.0e-6 - 2.0e-6); decshaped_pulse(spco180b,pwco180b,zero,2.0e-6,0.0); decpower(dvhpwrb); decrgpulse(pwca180b,zero,2.0e-6,0.0); decpower(dhpwrb); delay(2.0e-6); zgradpulse(gzlvl5,gt5); delay(2.0e-6); delay(tauc2 - gt5 - 6.0e-6 - POWER_DELAY); decshaped_pulse(spco180b,pwco180b,zero,0.0,0.0); /* bloch seigert */ simpulse(pw,pwca90b,zero,zero,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl6,gt6); delay(2.0e-6); delay(taua - POWER_DELAY - gt6 - 4.0e-6 - 2.0e-6); decpower(dvhpwrb); simpulse(2*pw,pwca180b,zero,zero,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl6,gt6); delay(2.0e-6); delay(taua - POWER_DELAY - gt6 - 4.0e-6); decpower(dpwr); /* Set power for decoupling */ rgpulse(pw,zero,0.0,0.0); /* rcvron(); */ /* Turn on receiver to warm up before acq */ /* BEGIN ACQUISITION */ status(C); setreceiver(t8); }
pulsesequence() { /* DECLARE VARIABLES */ char autocal[MAXSTR], /* auto-calibration flag */ fsat[MAXSTR], fscuba[MAXSTR], f1180[MAXSTR], /* Flag to start t1 @ halfdwell */ mess_flg[MAXSTR], /* water purging */ ar180a[MAXSTR], /* waveform shape for aromatic 180 pulse with C transmitter at dof */ cb180b[MAXSTR], /* waveform shape for aliphatic 180 pulse with C transmitter at dofar */ ar180b[MAXSTR]; /* waveform shape for aromatic 180 pulse with C transmitter at dofar */ int phase, ni, t1_counter; /* used for states tppi in t1 */ double tau1, /* t1 delay */ taua, /* ~ 1/4JCbHb = 1.7 ms */ taub, /* ~ 1/4JCgCd = 2.7 ms */ tauc, /* ~ 1/4JCgCd = 2.1 ms */ taud, /* ~ 1/4JCdHd = 1.5 ms */ taue, /* = 1/4JCbHb = 1.8 ms */ tauf, /* 2(tauc-tauf) ~ 1/2JCdHd = 3.1 ms */ TCb, /* carbon constant time period for recording the Cb chemical shifts */ dly_pg1, /* delay for water purging */ pwar180a, /* 180 aro pulse at d_ar180a and dof */ pwcb180b, /* 180 cb pulse at d_cb180b and dofar */ pwC, /* 90 c pulse at pwClvl */ pwsel90, /* 90 c pulse at d_sel90 */ pwar180b, /* 180 c pulse at d_ar180b */ compC, /* C-13 RF calibration parameters */ compH, d_ar180a, d_cb180b, d_sel90, d_ar180b, dofar, tsatpwr, /* low level 1H trans.power for presat */ tpwrmess, /* power level for water purging */ tpwrml, /* power level for 1H decoupling */ pwmlev, /* 90 pulse at tpwrml */ pwClvl, /* power level for high power 13C pulses on dec1 */ sw1, /* sweep width in f1 */ at, gp11, /* gap between 90-90 for selective 180 of Cb */ fab, /* chemical shift difference of Ca-Cb (Hz) */ gt0, gt1, gt2, gt3, gt4, gt5, gt6, gt7, gstab, gzlvl0, gzlvl1, gzlvl2, gzlvl3, gzlvl4, gzlvl5, gzlvl6, gzlvl7; /* variables commented out are already defined by the system */ /* LOAD VARIABLES */ getstr("autocal",autocal); getstr("fsat",fsat); getstr("f1180",f1180); getstr("fscuba",fscuba); getstr("mess_flg",mess_flg); taua = getval("taua"); taub = getval("taub"); tauc = getval("tauc"); taud = getval("taud"); taue = getval("taue"); tauf = getval("tauf"); TCb = getval("TCb"); pwC = getval("pwC"); dofar = getval("dofar"); dly_pg1 = getval("dly_pg1"); tpwr = getval("tpwr"); tsatpwr = getval("tsatpwr"); tpwrmess = getval("tpwrmess"); tpwrml = getval("tpwrml"); pwClvl = getval("pwClvl"); dpwr = getval("dpwr"); phase = (int) ( getval("phase") + 0.5); sw1 = getval("sw1"); ni = getval("ni"); at = getval("at"); fab = getval("fab"); if(autocal[0]=='n') { getstr("ar180a",ar180a); getstr("ar180b",ar180b); getstr("cb180b",cb180b); pwar180a = getval("pwar180a"); pwar180b = getval("pwar180b"); pwcb180b = getval("pwcb180b"); pwsel90 = getval("pwsel90"); d_ar180a = getval("d_ar180a"); d_cb180b = getval("d_cb180b"); d_ar180b = getval("d_ar180b"); d_sel90 = getval("d_sel90"); pwmlev = getval("pwmlev"); } else { strcpy(ar180a,"Pg3_off_cb180a"); strcpy(ar180b,"Pg3_off_cb180b"); strcpy(cb180b,"Pg3_on"); if (FIRST_FID) { compC = getval("compC"); compH = getval("compH"); sel90 = pbox("cal", SEL90, "", dfrq, compC*pwC, pwClvl); ar_180a = pbox(ar180a, AR180a, CB180ps, dfrq, compC*pwC, pwClvl); ar_180b = pbox(ar180b, AR180b, CB180ps, dfrq, compC*pwC, pwClvl); cb_180b = pbox(cb180b, CB180b, CB180ps, dfrq, compC*pwC, pwClvl); w16 = pbox_dec("cal", "WALTZ16", tpwrml, sfrq, compH*pw, tpwr); } pwsel90 = sel90.pw; d_sel90 = sel90.pwr; pwar180a = ar_180a.pw; d_ar180a = ar_180a.pwr; pwar180b = ar_180b.pw; d_ar180b = ar_180b.pwr; pwcb180b = cb_180b.pw; d_cb180b = cb_180b.pwr; pwmlev = 1.0/w16.dmf; } gt0 = getval("gt0"); gt1 = getval("gt1"); gt2 = getval("gt2"); gt3 = getval("gt3"); gt4 = getval("gt4"); gt5 = getval("gt5"); gt6 = getval("gt6"); gstab = getval("gstab"); gt7 = getval("gt7"); gzlvl0 = getval("gzlvl0"); gzlvl1 = getval("gzlvl1"); gzlvl2 = getval("gzlvl2"); gzlvl3 = getval("gzlvl3"); gzlvl4 = getval("gzlvl4"); gzlvl5 = getval("gzlvl5"); gzlvl6 = getval("gzlvl6"); gzlvl7 = getval("gzlvl7"); /* LOAD PHASE TABLE */ settable(t1,1,phi1); settable(t2,1,phi2); settable(t3,4,phi3); settable(t4,8,phi4); settable(t5,1,phi5); settable(t6,8,rec); /* CHECK VALIDITY OF PARAMETER RANGES */ if( 0.5*ni*1/(sw1) > TCb - 2*POWER_DELAY - WFG_START_DELAY - pwar180a - WFG_STOP_DELAY) { printf(" ni is too big\n"); psg_abort(1); } if((dm[A] == 'y' || dm[B] == 'y' )) { printf("incorrect dec1 decoupler flags! "); psg_abort(1); } if(dm2[A] == 'y' || dm2[B] == 'y' || dm2[C] == 'y' ) { printf("incorrect dec2 decoupler flags! "); psg_abort(1); } if( tsatpwr > 6 ) { printf("TSATPWR too large !!! "); psg_abort(1); } if( tpwrml > 53 ) { printf("tpwrml too large !!! "); psg_abort(1); } if( tpwrmess > 56 ) { printf("tpwrmess too large !!! "); psg_abort(1); } if( dpwr > 50 ) { printf("don't fry the probe, DPWR too large! "); psg_abort(1); } if( dpwr2 > 50 ) { printf("don't fry the probe, DPWR2 too large! "); psg_abort(1); } if( pwClvl > 63 ) { printf("don't fry the probe, DHPWR too large! "); psg_abort(1); } if( pw > 20.0e-6 ) { printf("dont fry the probe, pw too high ! "); psg_abort(1); } if( pwcb180b > 500.0e-6 ) { printf("dont fry the probe, pwcb180b too high ! "); psg_abort(1); } if( pwar180a > 500.0e-6 ) { printf("dont fry the probe, pwar180a too high ! "); psg_abort(1); } if (pwar180b > 500.0e-6) { printf("dont fry the probe, pwar180b too long !"); psg_abort(1); } if (pwsel90 > 100.0e-6) { printf("dont fry the probe, pwsel90 too long !"); psg_abort(1); } if(d_ar180a > 60) { printf("dont fry the probe, d_ar180a too high !"); psg_abort(1); } if(d_cb180b > 60) { printf("dont fry the probe, d_cb180b too high !"); psg_abort(1); } if (d_ar180b > 60) { printf("dont fry the probe, d_ar180b too high ! "); psg_abort(1); } if (d_sel90 > 50) { printf("dont fry the probe, d_sel90 too high ! "); psg_abort(1); } if( gt0 > 15e-3 || gt1 > 15e-3 || gt2 > 15e-3 || gt3 > 15e-3 || gt4 > 15e-3 || gt5 > 15e-3 || gt6 > 15e-3 || gt7 > 15e-3) { printf("gradients on for too long. Must be < 15e-3 \n"); psg_abort(1); } if( fabs(gzlvl0) > 30000 || fabs(gzlvl1) > 30000 || fabs(gzlvl2) > 30000 ||fabs(gzlvl3) > 30000 || fabs(gzlvl4) > 30000 || fabs(gzlvl5) > 30000 ||fabs(gzlvl6) > 30000 || fabs(gzlvl7) > 30000) { printf("too strong gradient"); psg_abort(1); } if( 2*TCb - taue > 0.1 ) { printf("dont fry the probe, too long TCb"); psg_abort(1); } if( at > 0.1 && (dm[C]=='y' || dm2[C]=='y')) { printf("dont fry the probe, too long at with decoupling"); psg_abort(1); } if( pwC > 30.0e-6) { printf("dont fry the probe, too long pwC"); psg_abort(1); } if( dly_pg1 > 10.0e-3) { printf("dont fry the probe, too long dly_pg1"); psg_abort(1); } /* Phase incrementation for hypercomplex 2D data */ if (phase == 2) tsadd(t2,1,4); /* Calculate modifications to phases for States-TPPI acquisition */ if( ix == 1) d2_init = d2 ; t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 ); if(t1_counter % 2) { tsadd(t2,2,4); tsadd(t6,2,4); } /* Set up f1180 tau1 = t1 */ tau1 = d2; if(f1180[A] == 'y') { tau1 += ( 1.0 / (2.0*sw1) ); } tau1 = tau1/2.0; /* 90-90 pulse for selective 180 of Cb but not Ca */ gp11 = 1/(2*fab) - 4/PI*pwsel90; if (gp11 < 0.0) { printf("gap of 90-90 negative, check fab and pwsel90"); psg_abort(1); } /* BEGIN ACTUAL PULSE SEQUENCE */ /* Receiver off time */ status(A); decoffset(dof); obspower(tsatpwr); /* Set transmitter power for 1H presaturation */ decpower(pwClvl); /* Set Dec1 power for hard 13C pulses */ dec2power(dpwr2); /* Set Dec2 power for 15N decoupling */ /* Presaturation Period */ if(mess_flg[A] == 'y') { obspower(tpwrmess); rgpulse(dly_pg1,zero,20.0e-6,20.0e-6); rgpulse(dly_pg1/1.62,one,20.0e-6,20.0e-6); obspower(tsatpwr); } if (fsat[0] == 'y') { delay(2.0e-5); rgpulse(d1,zero,20.0e-6,20.0e-6); obspower(tpwr); /* Set transmitter power for hard 1H pulses */ delay(2.0e-5); if(fscuba[0] == 'y') { delay(2.2e-2); rgpulse(pw,zero,2.0e-6,0.0); rgpulse(2*pw,one,2.0e-6,0.0); rgpulse(pw,zero,2.0e-6,0.0); delay(2.2e-2); } } else { delay(d1); } obspower(tpwr); /* Set transmitter power for hard 1H pulses */ txphase(zero); dec2phase(zero); decphase(zero); delay(1.0e-5); /* Begin Pulses */ rcvroff(); delay(10.0e-6); /* first ensure that magnetization does infact start on H and not C */ decrgpulse(pwC,zero,2.0e-6,2.0e-6); delay(2.0e-6); zgradpulse(gzlvl0,gt0); delay(gstab); /* this is the real start */ rgpulse(pw,zero,0.0,0.0); /* 90 deg 1H pulse */ delay(2.0e-6); zgradpulse(gzlvl1,gt1); delay(2.0e-6); delay(taua - gt1 - 4.0e-6); /* taua <= 1/4JCH */ simpulse(2*pw,2*pwC,zero,zero,0.0,0.0); txphase(t1); delay(2.0e-6); zgradpulse(gzlvl1,gt1); delay(2.0e-6); delay(taua - gt1 - 4.0e-6); rgpulse(pw,t1,0.0,0.0); txphase(zero); delay(2.0e-6); zgradpulse(gzlvl2,gt2); delay(gstab); decphase(t2); decpower(d_sel90); decrgpulse(pwsel90,t2,2.0e-6,0.0); decphase(zero); decpower(d_ar180a); decshaped_pulse(ar180a,pwar180a,zero,2.0e-6,0.0); /* bs effect */ delay(taue - POWER_DELAY - 2.0e-6 - WFG_START_DELAY - pwar180a - WFG_STOP_DELAY - POWER_DELAY - PRG_START_DELAY); /* H decoupling on */ obspower(tpwrml); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* TURN ME OFF DONT FORGET */ /* Hldecoupling on */ delay(TCb + tau1 - taue - POWER_DELAY - 2.0e-6); decphase(t3); decpower(d_sel90); decrgpulse(pwsel90,t3,2.0e-6,0.0); delay(gp11); decrgpulse(pwsel90,t3,0.0,0.0); decphase(zero); decpower(d_ar180a); decshaped_pulse(ar180a,pwar180a,zero,2.0e-6,0.0); delay(TCb - tau1 - POWER_DELAY - WFG_START_DELAY - 2.0e-6 - pwar180a - WFG_STOP_DELAY - POWER_DELAY - 2.0e-6); decphase(zero); decpower(d_sel90); decrgpulse(pwsel90,zero,2.0e-6,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); obspower(tpwr); /* H decoupling off */ decoffset(dofar); delay(2.0e-6); zgradpulse(gzlvl3,gt3); delay(gstab); decphase(t4); decpower(d_sel90); decrgpulse(pwsel90,t4,2.0e-6,0.0); decphase(zero); decpower(d_cb180b); decshaped_pulse(cb180b,pwcb180b,zero,2.0e-6,0.0); /* B.S. */ delay(2.0e-6); zgradpulse(gzlvl4,gt4); delay(2.0e-6); delay(taub - POWER_DELAY - WFG_START_DELAY - 2.0e-6 - pwcb180b - WFG_STOP_DELAY - gt4 - 4.0e-6 - POWER_DELAY - WFG_START_DELAY - 2.0e-6); decphase(zero); decpower(d_ar180b); decshaped_pulse(ar180b,pwar180b,zero,2.0e-6,0.0); decpower(d_cb180b); decshaped_pulse(cb180b,pwcb180b,zero,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl4,gt4); delay(2.0e-6); delay(taub - WFG_STOP_DELAY - POWER_DELAY - WFG_START_DELAY - 2.0e-6 - pwcb180b - WFG_STOP_DELAY - gt4 - 4.0e-6 - POWER_DELAY - 2.0e-6); decpower(d_sel90); decrgpulse(pwsel90,zero,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl5,gt5); delay(100.0e-6); delay(tauc - POWER_DELAY - gt5 - 102.0e-6 - 2.0e-6); decphase(t5); decpower(pwClvl); decrgpulse(2*pwC,t5,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl5,gt5); delay(100.0e-6); txphase(zero); delay(tauf - gt5 - 102.0e-6); rgpulse(2*pw,zero,0.0,0.0); delay(tauc - tauf - 2*pw - POWER_DELAY - 2.0e-6); decphase(zero); decpower(d_sel90); decrgpulse(pwsel90,zero,2.0e-6,0.0); txphase(zero); delay(2.0e-6); zgradpulse(gzlvl6,gt6); delay(gstab); rgpulse(pw,zero,0.0,0.0); delay(2.0e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); delay(taud - gt7 - 4.0e-6 - POWER_DELAY - 2.0e-6); decphase(zero); decpower(pwClvl); simpulse(2*pw,2*pwC,zero,zero,2.0e-6,0.0); delay(2.0e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); delay(taud - gt7 - 4.0e-6 - 2*POWER_DELAY); decpower(dpwr); /* Set power for decoupling */ dec2power(dpwr2); /* Set power for decoupling */ rgpulse(pw,zero,0.0,0.0); /* rcvron(); */ /* Turn on receiver to warm up before acq */ /* BEGIN ACQUISITION */ status(C); setreceiver(t6); }
pulsesequence() { /* DECLARE VARIABLES */ char autocal[MAXSTR], /* auto-calibration flag */ fsat[MAXSTR], fscuba[MAXSTR], f1180[MAXSTR], /* Flag to start t1 @ halfdwell */ f2180[MAXSTR], /* Flag to start t2 @ halfdwell */ spco180a[MAXSTR], spco90b[MAXSTR], spco180b[MAXSTR], cadecseq[MAXSTR]; int phase, phase2, ni, ni2, icosel, /* used to get n and p type */ t1_counter, /* used for states tppi in t1 */ t2_counter; /* used for states tppi in t2 */ double tau1, /* t1 delay */ tau2, /* t2 delay */ taua, /* ~ 1/4JCH = 1.7 ms */ tauc, /* ~ 1/4JCAC' = 3.6 ms */ taud, /* ~ 1/4JC'CA = 4.3, 4.4 ms */ taue, /* 1/4JC'N = 12.4 ms */ tauf, /* 1/4JNH = 2.25 ms */ BigTC, /* carbon constant time period */ BigTN, /* nitrogen constant time period */ pwn, /* PW90 for 15N pulse */ pwca90a, /* PW90 for 13C at dvhpwr */ pwca180a, /* PW180 for 13C at dvhpwra */ pwco180a, pwca180b, /* PW180 for ca nucleus @ dvhpwrb */ pwco180b, pwco90b, /* PW90 for co nucleus @ dhpwrb */ tsatpwr, /* low level 1H trans.power for presat */ tpwrml, /* power level for h decoupling */ pwmlev, /* h 90 pulse at tpwrml */ dhpwr, /* power level for 13C pulses on dec1 90 for part a of the sequence at 43 ppm */ dvhpwra, /* power level for 180 13C pulses at 43 ppm */ dhpwrb, /* power level for 13C pulses on dec1 - 54 ppm 90 for part b of the sequence*/ dvhpwrb, /* power level for 13C pulses on dec1 - 54 ppm 180 for part b of the sequence */ dhpwr2, /* high dec2 pwr for 15N hard pulses */ sw1, /* sweep width in f1 */ sw2, /* sweep width in f2 */ dofcacb, /* dof for dipsi part, 43 ppm */ pwcadec, /* seduce ca decoupling at dpwrsed */ dpwrsed, /* power level for seduce ca decoupling */ dressed, /* resoln for seduce decoupling = 2 */ dhpwrcoa, /* power level for pwco180a, 180 shaped C' */ sphase1, /* phase shift for off resonance C' 180 */ pwN, pwNlvl, /* N-15 RF calibration parameters */ pwC, compC, pwClvl, /* C-13 RF calibration parameters */ compH,waltzB1, BigT1, gt1, gt2, gt4, gt5, gt6, gt7, gt9, gt10, gstab, gzlvl1, gzlvl2, gzlvl4, gzlvl5, gzlvl6, gzlvl7, gzlvl9, gzlvl10; /* variables commented out are already defined by the system */ /* LOAD VARIABLES */ getstr("autocal",autocal); getstr("fsat",fsat); getstr("f1180",f1180); getstr("f2180",f2180); getstr("fscuba",fscuba); taua = getval("taua"); tauc = getval("tauc"); taud = getval("taud"); taue = getval("taue"); tauf = getval("tauf"); BigTC = getval("BigTC"); BigTN = getval("BigTN"); pwN = getval("pwN"); pwNlvl = getval("pwNlvl"); pwn = getval("pwn"); tpwr = getval("tpwr"); tsatpwr = getval("tsatpwr"); tpwrml = getval("tpwrml"); dpwr = getval("dpwr"); dhpwr2 = getval("dhpwr2"); phase = (int) ( getval("phase") + 0.5); phase2 = (int) ( getval("phase2") + 0.5); sw1 = getval("sw1"); sw2 = getval("sw2"); dofcacb = getval("dofcacb"); ni = getval("ni"); ni2 = getval("ni2"); BigT1 = getval("BigT1"); sphase1 = getval("sphase1"); gt1 = getval("gt1"); gt2 = getval("gt2"); gt4 = getval("gt4"); gt5 = getval("gt5"); gt6 = getval("gt6"); gt7 = getval("gt7"); gt9 = getval("gt9"); gt10 = getval("gt10"); gstab = getval("gstab"); gzlvl1 = getval("gzlvl1"); gzlvl2 = getval("gzlvl2"); gzlvl4 = getval("gzlvl4"); gzlvl5 = getval("gzlvl5"); gzlvl6 = getval("gzlvl6"); gzlvl7 = getval("gzlvl7"); gzlvl9 = getval("gzlvl9"); gzlvl10 = getval("gzlvl10"); if(autocal[0]=='n') { getstr("spco180a",spco180a); getstr("spco90b",spco90b); getstr("spco180b",spco180b); getstr("cadecseq",cadecseq); pwca90a = getval("pwca90a"); pwca180a = getval("pwca180a"); pwco180a = getval("pwco180a"); pwca180b = getval("pwca180b"); pwco90b = getval("pwco90b"); pwco180b = getval("pwco180b"); dhpwr = getval("dhpwr"); dvhpwra = getval("dvhpwra"); dhpwrb = getval("dhpwrb"); dvhpwrb = getval("dvhpwrb"); dhpwrcoa = getval("dhpwrcoa"); dpwrsed = getval("dpwrsed"); dressed = getval("dressed"); pwcadec = getval("pwcadec"); pwmlev = getval("pwmlev"); } else { waltzB1=getval("waltzB1"); pwmlev=1/(4.0*waltzB1); compH = getval("compH"); tpwrml= tpwr - 20.0*log10(pwmlev/(compH*pw)); tpwrml= (int) (tpwrml + 0.5); strcpy(spco180a,"Psed180_133p"); strcpy(spco90b,"Phard90co_118p"); strcpy(spco180b,"Phard180co_118p"); strcpy(cadecseq,"Pseduce1_lek"); if (FIRST_FID) { pwN = getval("pwN"); pwNlvl = getval("pwNlvl"); pwC = getval("pwC"); pwClvl = getval("pwClvl"); compC = getval("compC"); ca90 = pbox("cal", CA90, "", dfrq, compC*pwC, pwClvl); ca180 = pbox("cal", CA180, "", dfrq, compC*pwC, pwClvl); co180 = pbox(spco180a, CO180, CO180ps, dfrq, compC*pwC, pwClvl); co90b = pbox(spco90b, CO90b, CA180ps, dfrq, compC*pwC, pwClvl); co180b = pbox(spco180b, CO180b, CA180ps, dfrq, compC*pwC, pwClvl); ca180b = pbox("cal", CA180b, "", dfrq, compC*pwC, pwClvl); cadec = pbox(cadecseq, CADEC, CADECps, dfrq, compC*pwC, pwClvl); w16 = pbox_dec("cal", "WALTZ16", tpwrml, sfrq, compH*pw, tpwr); } pwca90a = ca90.pw; dhpwr = ca90.pwr; pwca180a = ca180.pw; dvhpwra = ca180.pwr; pwco180a = co180.pw; dhpwrcoa = co180.pwr; pwco90b = co90b.pw; dhpwrb = co90b.pwr; pwco180b = co180b.pw; pwca180b = ca180b.pw; dvhpwrb = ca180b.pwr; pwcadec = 1.0/cadec.dmf; dpwrsed = cadec.pwr; dressed = cadec.dres; pwmlev = 1.0/w16.dmf; pwn=pwN; dhpwr2=pwNlvl; } /* LOAD PHASE TABLE */ settable(t1,1,phi1); settable(t2,1,phi2); settable(t3,4,phi3); settable(t4,1,phi4); settable(t5,2,phi5); settable(t6,2,phi6); settable(t7,1,phi7); settable(t8,1,phi8); settable(t9,8,phi9); settable(t10,8,rec); settable(t11,1,phi11); settable(t12,1,phi12); settable(t13,1,phi13); /* CHECK VALIDITY OF PARAMETER RANGES */ if( 0.5*ni*1/(sw1) > BigTC - gt10 ) { printf(" ni is too big\n"); psg_abort(1); } if( ni2*1/(sw2) > 2.0*BigTN ) { printf(" ni2 is too big\n"); psg_abort(1); } if((dm[A] == 'y' || dm[B] == 'y' || dm[C] == 'y')) { printf("incorrect dec1 decoupler flags! "); psg_abort(1); } if((dm2[A] == 'y' || dm2[B] == 'y' )) { printf("incorrect dec2 decoupler flags! Should be 'nny' "); psg_abort(1); } if( pwmlev < 30.0e-6 ) { printf("too much power during proton mlev sequence\n"); psg_abort(1); } if( tpwrml > 53 ) { printf("tpwrml is too high\n"); psg_abort(1); } if( tsatpwr > 6 ) { printf("TSATPWR too large !!! "); psg_abort(1); } if( dpwr > 50 ) { printf("don't fry the probe, DPWR too large! "); psg_abort(1); } if( dpwr2 > 50 ) { printf("don't fry the probe, DPWR2 too large! "); psg_abort(1); } if( dhpwr > 62 ) { printf("don't fry the probe, DHPWR too large! "); psg_abort(1); } if( dhpwrb > 62 ) { printf("don't fry the probe, DHPWRB too large! "); psg_abort(1); } if( dvhpwrb > 62 ) /* pwr level for dipsi */ { printf("don't fry the probe, DVHPWRB too large! "); psg_abort(1); } if( dhpwr2 > 62 ) { printf("don't fry the probe, DHPWR2 too large! "); psg_abort(1); } if( pw > 200.0e-6 ) { printf("dont fry the probe, pw too high ! "); psg_abort(1); } if( pwmlev > 200.0e-6 ) { printf("dont fry the probe, pwmlev too high ! "); psg_abort(1); } if( pwn > 200.0e-6 ) { printf("dont fry the probe, pwn too high ! "); psg_abort(1); } if( pwcadec > 500.0e-6 || pwcadec < 200.0e-6 ) { printf("pwcadec outside reasonable limits: < 500e-6 > 200e-6 \n"); psg_abort(1); } if( dpwrsed > 45 ) { printf("dpwrsed is too high\n"); psg_abort(1); } if( gt1 > 15e-3 || gt2 > 15e-3 || gt4 >=15e-3 || gt5 > 15e-3 || gt6 >= 15e-3 || gt7 >= 15e-3 || gt9 >= 15e-3 || gt10 >= 15e-3) { printf("all gti values must be < 15e-3\n"); psg_abort(1); } if(gt10 > 250.0e-6) { printf("gt10 must be 250e-6\n"); psg_abort(1); } /* Phase incrementation for hypercomplex 2D data */ if (phase == 2) tsadd(t3,1,4); if (phase2 == 2) { tsadd(t11,2,4); icosel = 1; } else icosel = -1; /* Set up f1180 tau1 = t1 */ tau1 = d2; if(f1180[A] == 'y') { tau1 += ( 1.0 / (2.0*sw1) ); if(tau1 < 0.2e-6) tau1 = 0.0; } tau1 = tau1/2.0; /* Set up f2180 tau2 = t2 */ tau2 = d3; if(f2180[A] == 'y') { tau2 += ( 1.0 / (2.0*sw2) ); if(tau2 < 0.2e-6) tau2 = 0.0; } tau2 = tau2/2.0; /* Calculate modifications to phases for States-TPPI acquisition */ if( ix == 1) d2_init = d2 ; t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 ); if(t1_counter % 2) { tsadd(t3,2,4); tsadd(t10,2,4); } if( ix == 1) d3_init = d3 ; t2_counter = (int) ( (d3-d3_init)*sw2 + 0.5 ); if(t2_counter % 2) { tsadd(t8,2,4); tsadd(t10,2,4); } /* BEGIN ACTUAL PULSE SEQUENCE */ status(A); decoffset(dofcacb); /* initially pulse at 43 ppm */ decpower(dhpwr); /* Set Dec1 power for hard 13C pulses */ dec2power(dhpwr2); /* Set Dec2 power for 15N hard pulses */ /* Presaturation Period */ if (fsat[A] == 'y') { obspower(tsatpwr); /* Set transmitter power for 1H presaturation */ delay(2.0e-5); rgpulse(d1,zero,rof1,rof1); obspower(tpwr); /* Set transmitter power for hard 1H pulses */ delay(2.0e-5); if(fscuba[A] == 'y') { delay(2.2e-2); rgpulse(pw,zero,2.0e-6,0.0); rgpulse(2*pw,one,2.0e-6,0.0); rgpulse(pw,zero,2.0e-6,0.0); delay(2.2e-2); } } else obspower(tpwr); /* Set transmitter power for hard 1H pulses */ delay(d1); txphase(zero); delay(1.0e-5); /* Begin Pulses */ status(B); rcvroff(); delay(20.0e-6); /* ensure that magnetization originates on H and not 13C */ decrgpulse(pwca90a,zero,0.0,0.0); delay(0.2e-6); zgradpulse(gzlvl6,gt6); delay(gstab); rgpulse(pw,zero,0.0,0.0); /* 90 deg 1H pulse */ decphase(t1); delay(0.2e-6); zgradpulse(gzlvl9,gt9); delay(2.0e-6); decpower(dvhpwra); delay(taua - POWER_DELAY - gt2 - 2.2e-6); /* taua <= 1/4JCH */ simpulse(2*pw,pwca180a,zero,t1,0.0,0.0); decpower(dhpwr); delay(0.2e-6); zgradpulse(gzlvl9,gt9); delay(2.0e-6); txphase(t2); decphase(t3); delay(taua - POWER_DELAY - gt2 - 2.2e-6); rgpulse(pw,t2,0.0,0.0); decrgpulse(pwca90a,t3,2.0e-6,0.0); delay(2.0e-6); delay(tau1); decpower(dhpwrcoa); decshaped_pulse(spco180a,pwco180a,zero,4.0e-6,0.0); dec2rgpulse(2*pwn,zero,0.0,0.0); delay(2.0e-6); zgradpulse(gzlvl10,gt10); delay(2.0e-6); decpower(dvhpwra); delay(0.80e-3 - gt10 - 4.0e-6 - 2*POWER_DELAY); delay(0.2e-6); rgpulse(2*pw,zero,0.0,0.0); decphase(t4); initval(1.0,v3); decstepsize(0.0); dcplrphase(v3); delay(BigTC - 0.80e-3); decrgpulse(pwca180a,t4,0.0,0.0); dcplrphase(zero); delay(2.0e-6); zgradpulse(gzlvl10,gt10); delay(2.0e-6); delay(BigTC - tau1 + 2*pwn + 2*pw - 2*POWER_DELAY - gt10 - 4.0e-6); delay(0.2e-6); decpower(dhpwrcoa); decshaped_pulse(spco180a,pwco180a,zero,4.0e-6,0.0); /* bloch seigert */ decpower(dhpwr); decrgpulse(pwca90a,zero,2.0e-6,0.0); txphase(one); delay(2.0e-6); /* H decoupling on */ obspower(tpwrml); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* TURN ME OFF DONT FORGET */ /* H decoupling on */ decpower(dhpwrcoa); decshaped_pulse(spco180a,pwco180a,zero,4.0e-6,0.0); /* bloch seigert */ decphase(t5); initval(1.0,v3); decstepsize(0.0); dcplrphase(v3); delay(tauc - 3*POWER_DELAY - PRG_START_DELAY); decpower(dvhpwra); decrgpulse(pwca180a,t5,0.0,0.0); dcplrphase(zero); decpower(dhpwrcoa); decshaped_pulse(spco180a,pwco180a,zero,4.0e-6,0.0); decphase(zero); decpower(dhpwr); delay(tauc - 2*POWER_DELAY); decrgpulse(pwca90a,zero,0.0,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,two,2.0e-6,0.0); delay(0.2e-6); decoffset(dof); decpower(dhpwrb); delay(0.2e-6); zgradpulse(gzlvl4,gt4); delay(gstab); rgpulse(pwmlev,zero,2.0e-6,0.0); txphase(one); delay(2.0e-6); /* H decoupling on */ obspower(tpwrml); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ decphase(t6); delay(2.0e-6); decshaped_pulse(spco90b,pwco90b,t6,0.0,0.0); decphase(zero); delay(taud - POWER_DELAY - 4.0e-6); decpower(dvhpwrb); decrgpulse(pwca180b,zero,4.0e-6,0.0); decpower(dhpwrb); delay(taue - taud - POWER_DELAY + 2*pwn); /* adjust phase */ initval(1.0,v2); decstepsize(sphase1); dcplrphase(v2); /* adjust phase */ decshaped_pulse(spco180b,pwco180b,zero,0.0,0.0); dcplrphase(zero); dec2rgpulse(2*pwn,zero,0.0,0.0); delay(taue - 2*POWER_DELAY - 4.0e-6 - 4.0e-6); decpower(dvhpwrb); decrgpulse(pwca180b,zero,4.0e-6,0.0); /* bloch seigert */ decpower(dhpwrb); decshaped_pulse(spco90b,pwco90b,t7,4.0e-6,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,two,2.0e-6,0.0); delay(0.2e-6); zgradpulse(gzlvl5,gt5); delay(gstab); rgpulse(pwmlev,zero,2.0e-6,0.0); txphase(one); delay(2.0e-6); /* H decoupling on */ obspower(tpwrml); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ dec2rgpulse(pwn,t8,2.0e-6,0.0); dec2phase(t9); decphase(zero); /* seduce on */ decpower(dpwrsed); decprgon(cadecseq,pwcadec,dressed); decon(); /* seduce on */ delay(BigTN - tau2 + WFG_START_DELAY + WFG_STOP_DELAY + pwco180b); /* seduce off */ decoff(); decprgoff(); decpower(dhpwrb); /* seduce off */ dec2rgpulse(2*pwn,t9,0.0,0.0); decshaped_pulse(spco180b,pwco180b,zero,0.0,0.0); dec2phase(t11); /* seduce on */ decpower(dpwrsed); decprgon(cadecseq,pwcadec,dressed); decon(); /* seduce on */ delay(BigTN + tau2 - 5.5e-3 - POWER_DELAY - PRG_STOP_DELAY - pwmlev - 2.0e-6); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,two,2.0e-6,0.0); obspower(tpwr); delay(2.5e-3); /* seduce off */ decoff(); decprgoff(); decpower(dhpwrb); /* seduce off */ delay(0.2e-6); zgradpulse(gzlvl1,gt1); delay(2.0e-6); txphase(zero); dec2phase(t11); delay(3.0e-3 - gt1 - 2.2e-6 - 2.0*GRADIENT_DELAY); sim3pulse(pw,0.0,pwn,zero,zero,t11,0.0,0.0); delay(0.2e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); dec2phase(zero); delay(tauf - gt7 - 2.2e-6); sim3pulse(2*pw,0.0,2*pwn,zero,zero,zero,0.0,0.0); delay(0.2e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); txphase(t12); dec2phase(t13); delay(tauf - gt7 - 2.2e-6); sim3pulse(pw,0.0,pwn,t12,zero,t13,0.0,0.0); delay(0.2e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); txphase(zero); dec2phase(zero); delay(tauf - gt7 - 2.2e-6); sim3pulse(2*pw,0.0,2*pwn,zero,zero,zero,0.0,0.0); delay(0.2e-6); zgradpulse(gzlvl7,gt7); delay(2.0e-6); txphase(zero); delay(tauf - gt7 - 2.2e-6); rgpulse(pw,zero,0.0,0.0); txphase(zero); delay(BigT1); rgpulse(2*pw,zero,0.0,0.0); delay(2.0e-6); zgradpulse(icosel*gzlvl2,gt1/10); delay(2.0e-6); delay(BigT1 - gt1/10 - POWER_DELAY - 4.0e-6 - 2*GRADIENT_DELAY); dec2power(dpwr2); /* set power for 15N decoupling */ /* BEGIN ACQUISITION */ status(C); setreceiver(t10); }