/* hetcal_echorm_500.c This pulse sequence will allow one to perform the following experiment: Calibration of X nucleus 90 degree pulse on decoupler 1 (Channel 2) by observing the attached A nucleus Uses two channels: 1) 1H - carrier (tof) on resonance with A spin 2) 13C - carrier (dof) on resonance with X spin Set dm = 'nnnn', dmm = 'cccc' dm2 = 'nnnn', dmm2 = 'cccc' Written by RM BMRB Pulse Sequence Accession Number: 58 */ #include static int phi1[2] = {0,2}, phi2[8] = {0,0,1,1,2,2,3,3}, phi3[4] = {0,2,2,0}; pulsesequence() { char fsat[MAXSTR]; double d5,jxh,tsatpwr,dhpwr,pwx1,at; tsatpwr=getval("tsatpwr"); dhpwr=getval("dhpwr"); pwx1=getval("pwx1"); jxh=getval("jxh"); at = getval("at"); d5=0.5/jxh; getstr("fsat",fsat); /* Check validity of parameter ranges */ if ( tsatpwr > 6 ) { printf("tsatpwr too large - acquisition aborted"); abort(1); } if ((dm[A] == 'y' || dm[B] == 'y' || dm[C] == 'y')) { printf("dm must be set to 'nnnn'or 'nnny'"); abort(1); } if(dm[D] == 'y' && at > 0.1) { printf("at is too long for decoupling\n"); abort(1); } if ((dm2[A] == 'y' || dm2[B] == 'y' || dm2[C] == 'y' || dm2[D] == 'y')) { printf("dm2 must be set to 'nnnn'"); abort(1); } if ((dm3[A] == 'y' || dm3[B] == 'y' || dm3[C] == 'y' || dm3[D] == 'y')) { printf("dm3 must be set to 'nnnn'"); abort(1); } /* phasetable: hetcal_echo t1=0 2 t2=0 0 1 1 2 2 3 3 t3=0 2 2 0 */ settable(t1,2,phi1); settable(t2,8,phi2); settable(t3,4,phi3); /* preparation period */ status(A); /* instrument delay to turn off receiver */ rlpower(tsatpwr,TODEV); rlpower(dhpwr,DODEV); delay(0.1e-03); status(B); /* recycle delay d1 */ if(fsat[0] == 'y') { txphase(zero); rgpulse(d1,zero,2.0e-6,2.0e-6); /* presat. with observe amplifier*/ } else delay(d1); rlpower(tpwr,TODEV); status(C); rcvroff(); delay(20.0e-6); rgpulse(pw,t1,rof1,0.2e-6); /* proton pulse */ delay(d5); /* delay = 1 / (2J) */ simpulse(2*pw,pwx1,t2,zero,5.0e-6,5.0e-6); /* 1H and X-nucleus pulses */ rlpower(dpwr,DODEV); delay(d5 - POWER_DELAY); /* detection period */ status(D); setreceiver(t3); }