pulseprogram 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513
  1. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  2. ;****************************************************************
  3. ;
  4. ; Copyright (c) 2002-2003
  5. ; Bruker BioSpin MRI GmbH
  6. ; D-76275 Ettlingen, Germany
  7. ;
  8. ; All Rights Reserved
  9. ;
  10. ; PRESS.ppg - voxel selective spectroscogpy method
  11. ;
  12. ;****************************************************************
  13. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 1
  14. ;****************************************************************
  15. ;
  16. ; $Source$
  17. ;
  18. ; Copyright (c) 2006
  19. ; Bruker BioSpin MRI GmbH
  20. ; D-76275 Ettlingen, Germany
  21. ;
  22. ; All Rights Reserved
  23. ;
  24. ;;****************************************************************
  25. ;MRI.include
  26. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Avance.incl" 1
  27. ;Avance3.incl
  28. ; for AV III
  29. ;
  30. ;avance-version (13/06/17)
  31. ;
  32. ;$CLASS=HighRes Incl
  33. ;$COMMENT=
  34. # 169 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Avance.incl"
  35. ;$Id: Avance3.incl,v 1.9.6.1 2013/06/17 15:32:55 pfre Exp $
  36. # 14 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 2
  37. define delay aqq
  38. define delay deparx
  39. define delay derxadc
  40. define delay rdepa
  41. # 21 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  42. "aqq=dw*td"
  43. "rdepa=de-depa"
  44. "deparx=depa-derx"
  45. "derxadc=derx-deadc"
  46. ; contents of De2.incl - usage for different hardware versions to
  47. ; be checked - intermediate solution to support Jobs
  48. define delay rde1
  49. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  50. "rde1=de-de1"
  51. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  52. ; end of contents of De2.incl
  53. # 65 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  54. # 74 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  55. # 128 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  56. # 129 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  57. # 141 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  58. # 13 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg" 2
  59. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
  60. ;****************************************************************
  61. ;
  62. ; Copyright (c) 2003-2007
  63. ; Bruker BioSpin MRI GmbH
  64. ; D-76275 Ettlingen, Germany
  65. ;
  66. ; $Id$
  67. ;
  68. ; All Rights Reserved
  69. ;
  70. ; Declaration of pulseprogram parameters and subroutines for
  71. ; preparation modules
  72. ;
  73. ; Must be included after MRI.include!
  74. ;
  75. ;****************************************************************
  76. # 18 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod"
  77. ;**** Fat Suppression ****
  78. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
  79. ;****************************************************************
  80. ;
  81. ; Copyright (c) 2018
  82. ; Bruker BioSpin MRI GmbH
  83. ; D-76275 Ettlingen, Germany
  84. ;
  85. ; $Id$
  86. ;
  87. ; All Rights Reserved
  88. ;
  89. ; FatSupDef.mod : Declaration of Fat Suppression Subroutine
  90. ;
  91. ;****************************************************************
  92. if (PVM_FatSupPerform == Yes)
  93. {
  94. define pulse fatSupPul = {$PVM_FatSupRfLength}
  95. define list<frequency> fatSupList = {$PVM_FatSupFL}
  96. define delay fatSupRamp = {$PVM_FatSupRampTime}
  97. define delay fatSupAmp = {$PVM_FatSupAmpEnable}
  98. define delay fatSupWait = {$PVM_FatSupGradWait}
  99. define delay fatSupSpoil = {$PVM_FatSupSpoilDur}
  100. # 25 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod"
  101. ; convert from ms to s
  102. "fatSupRamp = fatSupRamp / 1000"
  103. "fatSupAmp = fatSupAmp / 1000"
  104. "fatSupWait = fatSupWait / 1000"
  105. "fatSupSpoil = fatSupSpoil / 1000"
  106. }
  107. subroutine FatSup
  108. # 20 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  109. ;**** Flow Saturation ****
  110. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1
  111. ;****************************************************************
  112. ;
  113. ; Copyright (c) 2018
  114. ; Bruker BioSpin MRI GmbH
  115. ; D-76275 Ettlingen, Germany
  116. ;
  117. ; $Id$
  118. ;
  119. ; All Rights Reserved
  120. ;
  121. ; FlowSatDef.mod: Declaration of subroutines for Flow Saturation
  122. ; call
  123. ; subr FlowSat()
  124. ; subr FlowSatInit()
  125. ; subr FlowSatInc()
  126. ;
  127. ;****************************************************************
  128. if(PVM_InFlowSatOnOff == 1)
  129. {
  130. define list<frequency> modlis4 = {$PVM_InFlowSatFL}
  131. define list<grad_scalar> flowSatGrad={$PVM_InFlowSatGrad}
  132. define delay SfD0 = {$PVM_SfD0}
  133. define delay SfD1 = {$PVM_SfD1}
  134. define delay SfD2 = {$PVM_SfD2}
  135. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod"
  136. define pulse SfP0 = {$PVM_SfP0}
  137. define loopcounter SfLp0 = {$PVM_SfLp0}
  138. }
  139. subroutine FlowSat
  140. subroutine FlowSatInc
  141. subroutine FlowSatInit
  142. # 24 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  143. ;**** Inversion Pulse ****
  144. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1
  145. ;****************************************************************
  146. ;
  147. ; Copyright (c) 2002-2007
  148. ; Bruker BioSpin MRI GmbH
  149. ; D-76275 Ettlingen, Germany
  150. ;
  151. ; $Id$
  152. ;
  153. ; All Rights Reserved
  154. ;
  155. ; InvPulseDef.mod : Declaration of Inversion Pulse subroutine
  156. ;
  157. ; call
  158. ; subr InvPulse()
  159. ;
  160. ;****************************************************************
  161. ;
  162. ; PVM_InvRFPulseArr :
  163. ;
  164. ; sp22 TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename
  165. ;
  166. ; PVM_IpP0 : PVM_InvRFPulseArr[0].PulseLength
  167. ;
  168. ; PVM_IpD2 : PVM_InvPulseDelay[0]
  169. ; PVM_IpD3 : PVM_InvPulseSpoilTime[0]
  170. ; PVM_IpD1 : CONFIG_amplifier _enable
  171. ; PVM_IpD0 : PVM_RampTime
  172. ;
  173. if(PVM_InvPulseOnOff == 1)
  174. {
  175. define list<frequency> modlis2= {$PVM_InvPulseOffsetHz}
  176. define delay IpD0 = {$PVM_IpD0}
  177. define delay IpD1 = {$PVM_IpD1}
  178. define delay IpD2 = {$PVM_IpD2}
  179. define delay IpD3 = {$PVM_IpD3}
  180. define pulse IpP0 = {$PVM_IpP0}
  181. }
  182. subroutine InvPulse
  183. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  184. ;**** Magnetisation Transfer ****
  185. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod" 1
  186. ;****************************************************************
  187. ; $Source$
  188. ;
  189. ; Copyright (c) 2005-2007
  190. ; Bruker BioSpin MRI GmbH
  191. ; D-76275 Ettlingen, Germany
  192. ;
  193. ; All Rights Reserved
  194. ;
  195. ; MagTransDef.mod: Declaration of subroutine for Magnetization
  196. ; transfer
  197. ; call
  198. ; subr MagTrans()
  199. ;
  200. ; $Id$
  201. ;****************************************************************
  202. ;**** Magnetisation Transfer Module ****
  203. if(PVM_MagTransOnOff)
  204. {
  205. define list<frequency> modlis3 = {$PVM_MagTransFL}
  206. define delay MtD0 = {$PVM_MtD0}
  207. define delay MtD1 = {$PVM_MtD1}
  208. define delay MtD2 = {$PVM_MtD2}
  209. define delay MtD3 = {$PVM_MtD3}
  210. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod"
  211. define pulse MtP0 = {$PVM_MtP0}
  212. define loopcounter MtLp0 = {$PVM_MtLp0}
  213. }
  214. subroutine MagTrans
  215. # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  216. ;**** Saturation Transfer ****
  217. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod" 1
  218. ;****************************************************************
  219. ; $Source$
  220. ;
  221. ; Copyright (c) 2018
  222. ; Bruker BioSpin MRI GmbH
  223. ; D-76275 Ettlingen, Germany
  224. ;
  225. ; All Rights Reserved
  226. ;
  227. ; SatTransDef.mod: Declaration of subroutine for Saturation transfer
  228. ; call
  229. ; subr SatTrans()
  230. ;
  231. ; $Id$
  232. ;****************************************************************
  233. ;**** Saturation Transfer Module ****
  234. ; PVM_SatTransFL: List of offset frequencies to be measured.
  235. ; PVM_SattransNPulses: Number of pulses used in one saturation event
  236. ; PVM_SattransPowerList: List of RF amplitudes for saturation pulses.
  237. ; Two elements long: first element: 0 Watt,
  238. ; used for one reference scan. Subsequent scans
  239. ; use amplitude as specified in UI.
  240. ; StReference: If PVM_SatTransRefScan is On then list StRfPower
  241. ; has two elements (1st is zero for reference scan)
  242. ; If RefScan is Off then lsit has only one element.
  243. ; Nevertheless we increment to avoid another 'if'
  244. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod"
  245. if(PVM_SatTransOnOff)
  246. {
  247. define list<frequency> modlis5 = {$PVM_SatTransFL}
  248. define list<power> StRfPower = {$PVM_SatTransPowerList}
  249. define delay StD0 = {$PVM_StD0}
  250. define delay StD1 = {$PVM_StD1}
  251. define delay StD2 = {$PVM_StD2}
  252. define delay StD3 = {$PVM_StD3}
  253. define pulse StP0 = {$PVM_StP0}
  254. define loopcounter StNPulses = {$PVM_SatTransNPulses}
  255. define loopcounter StReference
  256. "StReference = 1"
  257. }
  258. subroutine SatTransInit
  259. subroutine SatTransInc
  260. subroutine SatTrans
  261. # 36 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  262. ;**** Saturation Pulse ****
  263. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1
  264. ;****************************************************************
  265. ;
  266. ; Copyright (c) 2002-2003
  267. ; Bruker BioSpin MRI GmbH
  268. ; D-76275 Ettlingen, Germany
  269. ;
  270. ; $Id$
  271. ;
  272. ; All Rights Reserved
  273. ;
  274. ; SatPulseDef.mod : Declaration of Saturation Pulse subroutines
  275. ; call
  276. ; subr SatPulse()
  277. ;
  278. ;****************************************************************
  279. ;
  280. ; PVM_SatRFPulseArr :
  281. ;
  282. ; sp28 DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename
  283. ; sp29 DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename
  284. ; sp30 DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename
  285. ; sp31 DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename
  286. ;
  287. ; PVM_SpP0 : PVM_SatRFPulseArr[0].PulseLength
  288. ; PVM_SpP1 : PVM_SatRFPulseArr[1].PulseLength
  289. ; PVM_SpP2 : PVM_SatRFPulseArr[2].PulseLength
  290. ; PVM_SpP3 : PVM_SatRFPulseArr[3].PulseLength
  291. ;
  292. ; PVM_SpD2 : PVM_SatPulseDelay1[0]
  293. ; PVM_SpD6 : PVM_SatPulseSpoilTime[0]
  294. ; PVM_SpD10 : PVM_SatPulseDelay2[0]
  295. ; PVM_SpD3 : PVM_SatPulseSpoilTime[1]
  296. ; PVM_SpD7 : PVM_SatPulseDelay1[1]
  297. ; PVM_SpD11 : PVM_SatPulseDelay2[1]
  298. ; PVM_SpD4 : PVM_SatPulseDelay1[2]
  299. ; PVM_SpD8 : PVM_SatPulseSpoilTime[2]
  300. ; PVM_SpD12 : PVM_SatPulseDelay2[2]
  301. ; PVM_SpD5 : PVM_SatPulseDelay1[3]
  302. ; PVM_SpD9 : PVM_SatPulseSpoilTime[3]
  303. ; PVM_SpD13 : PVM_SatPulseDelay2[3]
  304. ;
  305. if(PVM_SatPulseOnOff == 1)
  306. {
  307. define list<frequency> modlis7 = {$PVM_SatPulseOffsetHz}
  308. define delay SpD0 = {$PVM_SpD0}
  309. define delay SpD1 = {$PVM_SpD1}
  310. define delay SpD2 = {$PVM_SpD2}
  311. define delay SpD3 = {$PVM_SpD3}
  312. define delay SpD4 = {$PVM_SpD4}
  313. define delay SpD5 = {$PVM_SpD5}
  314. define delay SpD6 = {$PVM_SpD6}
  315. define delay SpD7 = {$PVM_SpD7}
  316. define delay SpD8 = {$PVM_SpD8}
  317. define delay SpD9 = {$PVM_SpD9}
  318. define delay SpD10 = {$PVM_SpD10}
  319. define delay SpD11 = {$PVM_SpD11}
  320. define delay SpD12 = {$PVM_SpD12}
  321. define delay SpD13 = {$PVM_SpD13}
  322. define pulse SpP0 = {$PVM_SpP0}
  323. define pulse SpP1 = {$PVM_SpP1}
  324. define pulse SpP2 = {$PVM_SpP2}
  325. define pulse SpP3 = {$PVM_SpP3}
  326. # 66 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod"
  327. }
  328. subroutine SatPulse
  329. # 40 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  330. ;*** FOV Saturation ***
  331. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" 1
  332. ;****************************************************************
  333. ;
  334. ; Copyright (c) 2018
  335. ; Bruker BioSpin MRI GmbH
  336. ; D-76275 Ettlingen, Germany
  337. ;
  338. ; $Id$
  339. ;
  340. ; All Rights Reserved
  341. ;
  342. ; FovSat.mod : Declaration of FOV Saturation subroutine
  343. ; call: subr FovSat()
  344. ;
  345. ;****************************************************************
  346. if (PVM_FovSatOnOff == On)
  347. {
  348. define pulse fovSatPul = {$PVM_FovSatRfLength}
  349. define list<frequency> fovSatList = {$PVM_FovSatFL}
  350. define delay fovSatRamp = {$PVM_FovSatRampTime}
  351. define delay fovSatAmp = {$PVM_FovSatAmpEnable}
  352. define delay fovSatWait = {$PVM_FovSatGradWait}
  353. define delay fovSatSpoil = {$PVM_FovSatSpoilDur}
  354. # 27 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  355. ; convert from ms to s
  356. "fovSatRamp = fovSatRamp / 1000"
  357. "fovSatAmp = fovSatAmp / 1000"
  358. "fovSatWait = fovSatWait / 1000"
  359. "fovSatSpoil = fovSatSpoil / 1000"
  360. }
  361. subroutine FovSat
  362. # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  363. ; backwards compatibility
  364. subroutine SatSlices
  365. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  366. ;**** Black Blood ****
  367. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1
  368. ;****************************************************************
  369. ;
  370. ; Copyright (c) 2007
  371. ; Bruker BioSpin MRI GmbH
  372. ; D-76275 Ettlingen, Germany
  373. ;
  374. ; $Id$
  375. ;
  376. ; All Rights Reserved
  377. ;
  378. ; BlBloodDef.mod : Declaration of Black blood subroutine
  379. ;
  380. ; call
  381. ; subr BlBlood(ph0) : Black blood preparation with RF phaselist
  382. ; ph0
  383. ;
  384. ;****************************************************************
  385. if(PVM_BlBloodOnOff)
  386. {
  387. define list<frequency> modlis8 = {$PVM_BlBloodFL}
  388. define delay BlbD0 = {$PVM_BlbD0}
  389. define delay BlbD1 = {$PVM_BlbD1}
  390. define delay BlbD2 = {$PVM_BlbD2}
  391. define delay BlbD3 = {$PVM_BlbD3}
  392. define pulse BlbP0 = {$PVM_BlbP0}
  393. }
  394. subroutine BlBlood
  395. # 48 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  396. ;**** Trigger ****
  397. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" 1
  398. ;****************************************************************
  399. ;
  400. ; Copyright (c) 1998-2003
  401. ; Bruker BioSpin MRI GmbH
  402. ; D-76275 Ettlingen, Germany
  403. ;
  404. ; All Rights Reserved
  405. ;
  406. ; TriggerDef.mod - Trigger Module
  407. ;
  408. ;****************************************************************
  409. if (PVM_TriggerModule == On)
  410. {
  411. define delay trigDur = {$PVM_TriggerDur}
  412. define delay trigDel = {$PVM_TriggerDelay}
  413. ; convert from ms to s
  414. "trigDur = trigDur / 1000"
  415. "trigDel = trigDel / 1000"
  416. }
  417. subroutine Trigger
  418. subroutine TriggerPhase
  419. subroutine TriggerSlice
  420. # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  421. ;**** Trigger Out ****
  422. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerOutDef.mod" 1
  423. ;****************************************************************
  424. ;
  425. ; Copyright (c) 2003
  426. ; Bruker BioSpin MRI GmbH
  427. ; D-76275 Ettlingen, Germany
  428. ;
  429. ; All Rights Reserved
  430. ; $Id$
  431. ;****************************************************************
  432. if (PVM_TriggerOutOnOff == On)
  433. {
  434. define delay trigOutDur = {$PVM_TriggerOutDur}
  435. define delay trigOutDel = {$PVM_TriggerOutDelay}
  436. ; convert from ms to s
  437. "trigOutDur = trigOutDur / 1000"
  438. "trigOutDel = trigOutDel / 1000"
  439. }
  440. subroutine TriggerOut
  441. subroutine TriggerOutStart
  442. subroutine TriggerOutSlice
  443. subroutine TriggerOutVolume
  444. # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  445. ;**** Outer Volume Suppression ****
  446. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1
  447. ;****************************************************************
  448. ;
  449. ; Copyright (c) 2005-2007
  450. ; Bruker BioSpin MRI GmbH
  451. ; D-76275 Ettlingen, Germany
  452. ;
  453. ; $Id$
  454. ;
  455. ; All Rights Reserved
  456. ;
  457. ; WsOvsDef.mod: Declaration of water suppression and Outer
  458. ; volume suppression subroutines
  459. ;
  460. ; call
  461. ; subr Ovs(ph0) ; execution of OVS with ph0 phaselist
  462. ;
  463. ; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1
  464. ; phaselist
  465. ;****************************************************************
  466. ;**** OuterVolumeSuppression ****
  467. if(PVM_OvsOnOff == 1)
  468. {
  469. define list<frequency> Ovslist={$PVM_OvsFrequencyList}
  470. define delay OvsD0 = {$PVM_OvsD0}
  471. define delay OvsD1 = {$PVM_OvsD1}
  472. define pulse OvsP0 = {$PVM_OvsP0}
  473. }
  474. subroutine Ovs
  475. # 62 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  476. ;*** WaterSuppression Module with OVS ****
  477. if (PVM_WsMode)
  478. {
  479. define list<frequency> Wslist={$PVM_WsOffsetHz}
  480. define pulse WsP0 = {$PVM_WsP0}
  481. define pulse WsP1 = {$PVM_WsP1}
  482. define pulse WsP2 = {$PVM_WsP2}
  483. define delay WsNp0
  484. "WsNp0 = WsP0"
  485. define delay WsNp1
  486. "WsNp1 = WsP1"
  487. define delay WsNp2
  488. "WsNp2 = WsP2"
  489. define list<delay> ChD1={$PVM_ChppgD1}
  490. define list<delay> ChD2={$PVM_ChppgD2}
  491. define list<delay> VpD1={$PVM_VpppgD1}
  492. define list<delay> VpD2={$PVM_VpppgD2}
  493. # 82 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  494. }
  495. subroutine WsOvsMain
  496. subroutine WsOvs
  497. subroutine Ws
  498. # 60 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  499. ;**** Solvent Suppression module ****
  500. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsSatDef.mod" 1
  501. ;******************************************************************
  502. ;
  503. ; Copyright (c) 2002-2007
  504. ; Bruker BioSpin MRI GmbH
  505. ; D-76275 Ettlingen, Germany
  506. ;
  507. ; $Id$
  508. ;
  509. ; All Rights Reserved
  510. ;
  511. ; WsSatDef.mod - Declaration of water suppression and FOV saturation
  512. ; subroutines
  513. ; call
  514. ; subr WsSat(ph0) : execution of WS with ph0 phaselist and
  515. ; FOV saturation (as passed as argument)
  516. ;
  517. ;*******************************************************************
  518. ; Definitions for WsPpgParams are included in WsOvsDef.mod
  519. subroutine WsSatMain
  520. subroutine WsSat
  521. # 64 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  522. ;**** Selective Inversion Recovery ****
  523. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1
  524. ;****************************************************************
  525. ;
  526. ; Copyright (c) 2018
  527. ; Bruker BioSpin MRI GmbH
  528. ; D-76275 Ettlingen, Germany
  529. ;
  530. ; $Id$
  531. ;
  532. ; All Rights Reserved
  533. ;
  534. ; SlicelSelIr.mod : declaration of slice Selective Inversion
  535. ; Recovery subroutine
  536. ; call SliceSelIr()
  537. ;
  538. ;
  539. ;****************************************************************
  540. if(PVM_SelIrOnOff)
  541. {
  542. define list<frequency> IrFL = {$PVM_SelIrFL}
  543. define delay IrD0 = {$PVM_SelIrD0} ; PVM_InterInvDelay
  544. define delay IrD1 = {$PVM_SelIrD1} ; PVM_InterInvEndDelay[0]
  545. define delay IrD2 = {$PVM_SelIrD2} ; Spoiler duration
  546. define delay IrD3 = {$PVM_SelIrD3} ; Gatepulse duration
  547. define delay IrD4 = {$PVM_SelIrD4} ; risetime
  548. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
  549. define pulse IrP0 = {$PVM_SelIrP0}
  550. define loopcounter IrL0 = {$PVM_SelIrL0}
  551. define loopcounter IrL1
  552. }
  553. subroutine SliceSelIr
  554. # 68 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  555. ;**** Tagging ****
  556. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod" 1
  557. ;****************************************************************
  558. ;
  559. ; Copyright (c) 2018
  560. ; Bruker BioSpin MRI GmbH
  561. ; D-76275 Ettlingen, Germany
  562. ;
  563. ; $Id$
  564. ;
  565. ; All Rights Reserved
  566. ;
  567. ; TagDef.mod : Declaration of tagging subroutine
  568. ; call
  569. ; subr Tagging()
  570. ;
  571. ;****************************************************************
  572. if(PVM_TaggingOnOff)
  573. {
  574. define list<frequency> taggfreq={$PVM_TaggingFL}
  575. define delay TaggD0 = {$PVM_TaggingD0}
  576. define delay TaggD1 = {$PVM_TaggingD1}
  577. define delay TaggD2 = {$PVM_TaggingD2}
  578. define delay TaggD3 = {$PVM_TaggingD3}
  579. define delay TaggD4 = {$PVM_TaggingD4}
  580. define delay TaggD5 = {$PVM_TaggingD5}
  581. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod"
  582. define pulse TaggP0 = {$PVM_TaggingP0}
  583. define loopcounter TaggL0 = {$PVM_TaggingLp0}
  584. }
  585. subroutine Tagging
  586. # 72 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  587. ;**** Noe ****
  588. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/NoeDef.mod" 1
  589. ;****************************************************************
  590. ;
  591. ; Copyright (c) 2007
  592. ; Bruker BioSpin MRI GmbH
  593. ; D-76275 Ettlingen, Germany
  594. ;
  595. ; $Id$
  596. ;
  597. ; All Rights Reserved
  598. ;
  599. ; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement
  600. ; subroutine
  601. ; call
  602. ; subr Noe()
  603. ;
  604. ;****************************************************************
  605. if(PVM_NoeOnOff == On)
  606. {
  607. define delay NoeD0 = {$PVM_NoeD0}
  608. define delay NoeD1 = {$PVM_NoeD1}
  609. }
  610. subroutine Noe
  611. # 76 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  612. ;**** Evolution ****
  613. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/EvolutionDef.mod" 1
  614. ;****************************************************************
  615. ;
  616. ; Copyright (c) 1998-2003
  617. ; Bruker BioSpin MRI GmbH
  618. ; D-76275 Ettlingen, Germany
  619. ;
  620. ; All Rights Reserved
  621. ;
  622. ; EvolutionDef.mod - Evolution Module
  623. ;
  624. ;****************************************************************
  625. if (PVM_EvolutionOnOff == On)
  626. {
  627. define delay evolDel = {$PVM_EvolutionDelay}
  628. define list<delay> evolTime = {$PVM_EvolutionTime}
  629. }
  630. subroutine Evolution
  631. # 80 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  632. ;**** Drift Compensation ****
  633. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DriftComp.mod" 1
  634. ;==========================================================
  635. ; subroutine for drift compensation
  636. ;==========================================================
  637. if (PVM_DriftCompNavOnOff == On)
  638. {
  639. define list<frequency> txfq = {$PVM_DriftCompNavTxFrq}
  640. define list<frequency> rxfq = {$PVM_DriftCompNavRxFrq}
  641. define pulse DCP0 = {$PVM_DriftCompNavP0}
  642. define delay DCD0 = {$PVM_DriftCompNavD0}
  643. define delay DCD1 = {$PVM_DriftCompNavD1}
  644. define delay DCD2 = {$PVM_DriftCompNavD2}
  645. define delay DCD3 = {$PVM_DriftCompNavD3}
  646. define delay DCD4 = {$PVM_DriftCompNavD4}
  647. define delay DCD5 = {$PVM_DriftCompNavD5}
  648. define delay DCD6
  649. "DCD6 = 10u - de"
  650. define list<phase> dcph = { 0 }
  651. }
  652. subroutine DriftComp
  653. # 84 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  654. # 15 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg" 2
  655. # 17 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  656. define delay de4
  657. "de4=0.00002s-de"
  658. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/acqdec.mod" 1
  659. ;****************************************************************
  660. ;
  661. ; Copyright (c) 2012
  662. ; Bruker BioSpin MRI GmbH
  663. ; D-76275 Ettlingen, Germany
  664. ;
  665. ; All Rights Reserved
  666. ;
  667. ; $Id$
  668. ;
  669. ; All Rights Reserved
  670. ;
  671. ; Declaration of subroutine for decoupling
  672. ;
  673. ;****************************************************************
  674. # 18 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/acqdec.mod"
  675. if(PVM_DecOnOff == On)
  676. {
  677. define delay DecD0 = {$PVM_DecD0}
  678. define delay DecD1 = {$PVM_DecD1}
  679. }
  680. define delay durx
  681. "durx = 10u - de - 1u" ; 10u - fixed delays
  682. subroutine acqdec
  683. subroutine acqdec_jobs
  684. # 20 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg" 2
  685. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Navigator.mod" 1
  686. ;****************************************************************
  687. ;
  688. ; Copyright (c) 2011
  689. ; Bruker BioSpin MRI GmbH
  690. ; D-76275 Ettlingen, Germany
  691. ;
  692. ; All Rights Reserved
  693. ;
  694. ; Navigator.mod - Preparation Module for Navigator
  695. ;
  696. ;****************************************************************
  697. if (PVM_NavOnOff == On)
  698. {
  699. define list<frequency> navlist = {$PVM_NavFrequencyList}
  700. define list<frequency> navrec ={$PVM_NavFreqRecList}
  701. define list<grad_vector> vec ={$PVM_NavVec}
  702. define pulse NavP0 = {$PVM_NavP0}
  703. define delay NAVD1 = {$PVM_NavD1}
  704. define delay NAVD2 = {$PVM_NavD2}
  705. define delay NAVD3 = {$PVM_NavD3}
  706. define delay NAVD4 = {$PVM_NavD4}
  707. if(PVM_NavSpatEnc == Yes)
  708. {
  709. define list<grad_vector> vecRead ={$PVM_NavReadVec}
  710. define delay NAVD5 = {$PVM_NavD5}
  711. define delay NAVD1DE
  712. "NAVD1DE = NAVD1 - de"
  713. }
  714. }
  715. subroutine Navigator
  716. subroutine NavigatorSpat
  717. subroutine NavigatorSpatDum
  718. subroutine Navigator_NOPH
  719. subroutine NavigatorDummy
  720. subroutine NavigatorGlobal
  721. # 21 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg" 2
  722. define loopcounter lds={$PVM_DummyScans}
  723. define list<loopcounter> avList={$AverageList}
  724. preset off
  725. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  726. if (ACQ_jobs_size >1)
  727. {
  728. 3u setrtp1|1 \n 7u setrtp1^1 \n 1m swj1 \n 1m dccorr1 \n 3u setrtp1|1 \n 187u setrtp1^1 \n 1u setrtp1|1 \n 9u setrtp1^1 \n 1m swj2 \n 1m dccorr2 \n 3u setrtp1|1 \n 7u setrtp1^1 \n 1m swj1 \n if (CONFIG_preemp_type == GREAT_60) \n { \n if (CONFIG_instrument_type != Avance_III) \n { \n 500m setnmr0|34|33|32 \n } \n else \n { \n 200u setnmr0|34|33|32 \n } \n } \n if (CONFIG_preemp_type == DPP_with_SW_Blanking) \n {\n 10u ctrlgrad 0 \n 10u grad{(0)|(0)|(0) } \n 200u setnmr0|34|33|32 \n }\n if (CONFIG_preemp_type == DPP) \n { \n 10u groff \n }
  729. }
  730. else
  731. {
  732. dccorr \n \n if (CONFIG_preemp_type == GREAT_60) \n { \n if (CONFIG_instrument_type != Avance_III) \n { \n 500m setnmr0|34|33|32 \n } \n else \n { \n 200u setnmr0|34|33|32 \n } \n } \n if (CONFIG_preemp_type == DPP_with_SW_Blanking) \n {\n 10u ctrlgrad 0 \n 10u grad{(0)|(0)|(0) } \n 200u setnmr0|34|33|32 \n }\n if (CONFIG_preemp_type == DPP) \n { \n 10u groff \n }
  733. }
  734. 10u ;delay after dccorr \n \n if (CONFIG_preemp_type == GREAT_60) \n { \n if (CONFIG_instrument_type != Avance_III) \n { \n 500m setnmr0|34|33|32 \n } \n else \n { \n 200u setnmr0|34|33|32 \n } \n } \n if (CONFIG_preemp_type == DPP_with_SW_Blanking) \n {\n 10u ctrlgrad 0 \n 10u grad{(0)|(0)|(0) } \n 200u setnmr0|34|33|32 \n }\n if (CONFIG_preemp_type == DPP) \n { \n 10u groff \n } needed
  735. 3u setrtp1|1 \n 7u setrtp1^1 ; lasts 10u
  736. # 41 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  737. ;-------D/P-----GRAD-----------------------------RF/ACQ---------
  738. 0u rpp1
  739. 0u rpp2
  740. 0u rpp3
  741. 0u rpp31
  742. start, 10u
  743. 1m fq8(receive):f1
  744. subr TriggerSlice
  745. ;EXEC_begin TriggerSlice TriggerSlice()
  746. # 45 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  747. if (PVM_TriggerMode == per_Slice)
  748. {
  749. ;EXEC_begin Trigger Trigger()
  750. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  751. if (PVM_TriggerModule == On)
  752. {
  753. trigDur setnmr3|6
  754. trigDur trignl1
  755. trigDur trigpe3
  756. trigDur setnmr3^6
  757. trigDel
  758. }
  759. ;EXEC_end Trigger
  760. }
  761. ;EXEC_end TriggerSlice
  762. # 51 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  763. subr Noe
  764. ;EXEC_begin Noe Noe()
  765. # 24 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/NoeDef.mod"
  766. if(PVM_NoeOnOff == On)
  767. {
  768. if (PVM_NoeMode == Continuous_Wave_Noe)
  769. {
  770. 3u pl1:f2
  771. NoeD0 cw:f2
  772. 1u do:f2
  773. NoeD1
  774. }
  775. if (PVM_NoeMode == Composite_Pulse_Noe)
  776. {
  777. 3u pl1:f2
  778. NoeD0 cpds1:f2
  779. 1u do:f2
  780. NoeD1
  781. }
  782. }
  783. ;EXEC_end Noe
  784. # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  785. subr WsOvs
  786. ;EXEC_begin WsOvs WsOvs(phase ph0, phase ph0)
  787. # 251 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  788. ;EXEC_begin WsOvsMain WsOvsMain(phase ph0, phase ph0, any PVM_OvsOnOff)
  789. # 85 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  790. ;-------------------------------------------------------------------------------
  791. ; NO_SUPPRESSION
  792. ;-------------------------------------------------------------------------------
  793. ;WS_Mode == NO_SUPPRESSION
  794. if ( PVM_WsMode == 0 ) {
  795. if ( PVM_OvsOnOff == On ) {
  796. ;EXEC_begin Ovs Ovs(phase ph0)
  797. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  798. ;-------------------------------------------------------------------------------
  799. ; delays grads rf/rec comments
  800. ;-------------------------------------------------------------------------------
  801. ;pulses 1 + 2
  802. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  803. (OvsP0:sp53 ph0):f1
  804. 5u Ovslist.inc
  805. 5u Ovslist:f1
  806. (OvsP0:sp53 ph0):f1
  807. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  808. ;pulses 3 + 4
  809. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  810. (OvsP0:sp53 ph0):f1
  811. 5u Ovslist.inc
  812. 5u Ovslist:f1
  813. (OvsP0:sp53 ph0):f1
  814. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  815. ;pulses 5 + 6
  816. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  817. (OvsP0:sp53 ph0):f1
  818. 5u Ovslist.inc
  819. 5u Ovslist:f1
  820. (OvsP0:sp53 ph0):f1
  821. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  822. OvsD0 grad_off
  823. ;EXEC_end Ovs
  824. ;EXEC_begin Ovs Ovs(phase ph0)
  825. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  826. ;-------------------------------------------------------------------------------
  827. ; delays grads rf/rec comments
  828. ;-------------------------------------------------------------------------------
  829. ;pulses 1 + 2
  830. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  831. (OvsP0:sp53 ph0):f1
  832. 5u Ovslist.inc
  833. 5u Ovslist:f1
  834. (OvsP0:sp53 ph0):f1
  835. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  836. ;pulses 3 + 4
  837. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  838. (OvsP0:sp53 ph0):f1
  839. 5u Ovslist.inc
  840. 5u Ovslist:f1
  841. (OvsP0:sp53 ph0):f1
  842. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  843. ;pulses 5 + 6
  844. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  845. (OvsP0:sp53 ph0):f1
  846. 5u Ovslist.inc
  847. 5u Ovslist:f1
  848. (OvsP0:sp53 ph0):f1
  849. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  850. OvsD0 grad_off
  851. ;EXEC_end Ovs
  852. ;EXEC_begin Ovs Ovs(phase ph0)
  853. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  854. ;-------------------------------------------------------------------------------
  855. ; delays grads rf/rec comments
  856. ;-------------------------------------------------------------------------------
  857. ;pulses 1 + 2
  858. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  859. (OvsP0:sp53 ph0):f1
  860. 5u Ovslist.inc
  861. 5u Ovslist:f1
  862. (OvsP0:sp53 ph0):f1
  863. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  864. ;pulses 3 + 4
  865. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  866. (OvsP0:sp53 ph0):f1
  867. 5u Ovslist.inc
  868. 5u Ovslist:f1
  869. (OvsP0:sp53 ph0):f1
  870. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  871. ;pulses 5 + 6
  872. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  873. (OvsP0:sp53 ph0):f1
  874. 5u Ovslist.inc
  875. 5u Ovslist:f1
  876. (OvsP0:sp53 ph0):f1
  877. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  878. OvsD0 grad_off
  879. ;EXEC_end Ovs
  880. }
  881. }
  882. ;-------------------------------------------------------------------------------
  883. ; CHESS scheme
  884. ;-------------------------------------------------------------------------------
  885. if ( PVM_WsMode == 1 ) {
  886. 2u Wslist:f1
  887. ;first pulse
  888. if ( PVM_WsOnOff == On ) {
  889. (WsP0:sp50 ph0):f1
  890. }
  891. if ( PVM_WsOnOff == Off ) {
  892. WsNp0
  893. }
  894. ChD1[0] grad_ramp{ PVM_ChTrim[0], PVM_ChTrim[1], PVM_ChTrim[2] }
  895. ChD2[0] grad_off
  896. if ( PVM_OvsOnOff == On ) {
  897. ;EXEC_begin Ovs Ovs(phase ph0)
  898. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  899. ;-------------------------------------------------------------------------------
  900. ; delays grads rf/rec comments
  901. ;-------------------------------------------------------------------------------
  902. ;pulses 1 + 2
  903. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  904. (OvsP0:sp53 ph0):f1
  905. 5u Ovslist.inc
  906. 5u Ovslist:f1
  907. (OvsP0:sp53 ph0):f1
  908. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  909. ;pulses 3 + 4
  910. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  911. (OvsP0:sp53 ph0):f1
  912. 5u Ovslist.inc
  913. 5u Ovslist:f1
  914. (OvsP0:sp53 ph0):f1
  915. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  916. ;pulses 5 + 6
  917. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  918. (OvsP0:sp53 ph0):f1
  919. 5u Ovslist.inc
  920. 5u Ovslist:f1
  921. (OvsP0:sp53 ph0):f1
  922. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  923. OvsD0 grad_off
  924. ;EXEC_end Ovs
  925. 2u Wslist:f1
  926. }
  927. ;second pulse
  928. if ( PVM_WsOnOff == On ) {
  929. (WsP1:sp51 ph0):f1
  930. }
  931. if ( PVM_WsOnOff == Off ) {
  932. WsNp1
  933. }
  934. ChD1[1] grad_ramp{ PVM_ChTrim[3], PVM_ChTrim[4], PVM_ChTrim[5] }
  935. ChD2[1] grad_off
  936. if ( PVM_OvsOnOff == On ) {
  937. ;EXEC_begin Ovs Ovs(phase ph0)
  938. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  939. ;-------------------------------------------------------------------------------
  940. ; delays grads rf/rec comments
  941. ;-------------------------------------------------------------------------------
  942. ;pulses 1 + 2
  943. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  944. (OvsP0:sp53 ph0):f1
  945. 5u Ovslist.inc
  946. 5u Ovslist:f1
  947. (OvsP0:sp53 ph0):f1
  948. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  949. ;pulses 3 + 4
  950. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  951. (OvsP0:sp53 ph0):f1
  952. 5u Ovslist.inc
  953. 5u Ovslist:f1
  954. (OvsP0:sp53 ph0):f1
  955. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  956. ;pulses 5 + 6
  957. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  958. (OvsP0:sp53 ph0):f1
  959. 5u Ovslist.inc
  960. 5u Ovslist:f1
  961. (OvsP0:sp53 ph0):f1
  962. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  963. OvsD0 grad_off
  964. ;EXEC_end Ovs
  965. 2u Wslist:f1
  966. }
  967. ;third pulse
  968. if ( PVM_WsOnOff == On ) {
  969. (WsP2:sp52 ph0):f1
  970. }
  971. if ( PVM_WsOnOff == Off ) {
  972. WsNp2
  973. }
  974. ChD1[2] grad_ramp{ PVM_ChTrim[6], PVM_ChTrim[7], PVM_ChTrim[8] }
  975. ChD2[2] grad_off
  976. if ( PVM_OvsOnOff == On ) {
  977. ;EXEC_begin Ovs Ovs(phase ph0)
  978. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  979. ;-------------------------------------------------------------------------------
  980. ; delays grads rf/rec comments
  981. ;-------------------------------------------------------------------------------
  982. ;pulses 1 + 2
  983. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  984. (OvsP0:sp53 ph0):f1
  985. 5u Ovslist.inc
  986. 5u Ovslist:f1
  987. (OvsP0:sp53 ph0):f1
  988. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  989. ;pulses 3 + 4
  990. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  991. (OvsP0:sp53 ph0):f1
  992. 5u Ovslist.inc
  993. 5u Ovslist:f1
  994. (OvsP0:sp53 ph0):f1
  995. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  996. ;pulses 5 + 6
  997. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  998. (OvsP0:sp53 ph0):f1
  999. 5u Ovslist.inc
  1000. 5u Ovslist:f1
  1001. (OvsP0:sp53 ph0):f1
  1002. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  1003. OvsD0 grad_off
  1004. ;EXEC_end Ovs
  1005. 2u
  1006. }
  1007. };end of CHESS
  1008. ;-------------------------------------------------------------------------------
  1009. ; VAPOR scheme
  1010. ;-------------------------------------------------------------------------------
  1011. if ( PVM_WsMode == 2 ) {
  1012. 2u Wslist:f1
  1013. ;first pulse
  1014. if ( PVM_WsOnOff == On ) {
  1015. (WsP0:sp50 ph0):f1
  1016. }
  1017. if ( PVM_WsOnOff == Off ) {
  1018. WsNp0
  1019. }
  1020. VpD1[0] grad_ramp{ PVM_VpTrim[0], PVM_VpTrim[1], PVM_VpTrim[2] }
  1021. VpD2[0] grad_off
  1022. ;second pulse
  1023. if ( PVM_WsOnOff == On ) {
  1024. (WsP0:sp50 ph0):f1
  1025. }
  1026. if ( PVM_WsOnOff == Off ) {
  1027. WsNp0
  1028. }
  1029. VpD1[1] grad_ramp{ PVM_VpTrim[3], PVM_VpTrim[4], PVM_VpTrim[5] }
  1030. VpD2[1] grad_off
  1031. ;third pulse
  1032. if ( PVM_WsOnOff == On ) {
  1033. (WsP1:sp51 ph0):f1
  1034. }
  1035. if ( PVM_WsOnOff == Off ) {
  1036. WsNp1
  1037. }
  1038. VpD1[2] grad_ramp{ PVM_VpTrim[6], PVM_VpTrim[7], PVM_VpTrim[8] }
  1039. VpD2[2] grad_off
  1040. ;fourth pulse
  1041. if ( PVM_WsOnOff == On ) {
  1042. (WsP0:sp50 ph0):f1
  1043. }
  1044. if ( PVM_WsOnOff == Off ) {
  1045. WsNp0
  1046. }
  1047. if ( PVM_OvsOnOff == On ) {
  1048. ;EXEC_begin Ovs Ovs(phase ph0)
  1049. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  1050. ;-------------------------------------------------------------------------------
  1051. ; delays grads rf/rec comments
  1052. ;-------------------------------------------------------------------------------
  1053. ;pulses 1 + 2
  1054. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  1055. (OvsP0:sp53 ph0):f1
  1056. 5u Ovslist.inc
  1057. 5u Ovslist:f1
  1058. (OvsP0:sp53 ph0):f1
  1059. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  1060. ;pulses 3 + 4
  1061. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  1062. (OvsP0:sp53 ph0):f1
  1063. 5u Ovslist.inc
  1064. 5u Ovslist:f1
  1065. (OvsP0:sp53 ph0):f1
  1066. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  1067. ;pulses 5 + 6
  1068. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  1069. (OvsP0:sp53 ph0):f1
  1070. 5u Ovslist.inc
  1071. 5u Ovslist:f1
  1072. (OvsP0:sp53 ph0):f1
  1073. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  1074. OvsD0 grad_off
  1075. ;EXEC_end Ovs
  1076. 2u Wslist:f1
  1077. }
  1078. VpD1[3] grad_ramp{ PVM_VpTrim[9], PVM_VpTrim[10], PVM_VpTrim[11] }
  1079. VpD2[3] grad_off
  1080. ;5.th pulse
  1081. if ( PVM_WsOnOff == On ) {
  1082. ( WsP1:sp51 ph0):f1
  1083. }
  1084. if ( PVM_WsOnOff == Off ) {
  1085. WsNp1
  1086. }
  1087. VpD1[4] grad_ramp{ PVM_VpTrim[12], PVM_VpTrim[13], PVM_VpTrim[14] }
  1088. VpD2[4] grad_off
  1089. if ( PVM_OvsOnOff == On ) {
  1090. ;EXEC_begin Ovs Ovs(phase ph0)
  1091. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  1092. ;-------------------------------------------------------------------------------
  1093. ; delays grads rf/rec comments
  1094. ;-------------------------------------------------------------------------------
  1095. ;pulses 1 + 2
  1096. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  1097. (OvsP0:sp53 ph0):f1
  1098. 5u Ovslist.inc
  1099. 5u Ovslist:f1
  1100. (OvsP0:sp53 ph0):f1
  1101. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  1102. ;pulses 3 + 4
  1103. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  1104. (OvsP0:sp53 ph0):f1
  1105. 5u Ovslist.inc
  1106. 5u Ovslist:f1
  1107. (OvsP0:sp53 ph0):f1
  1108. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  1109. ;pulses 5 + 6
  1110. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  1111. (OvsP0:sp53 ph0):f1
  1112. 5u Ovslist.inc
  1113. 5u Ovslist:f1
  1114. (OvsP0:sp53 ph0):f1
  1115. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  1116. OvsD0 grad_off
  1117. ;EXEC_end Ovs
  1118. 2u Wslist:f1
  1119. }
  1120. ;6.th pulse
  1121. if ( PVM_WsOnOff == On ) {
  1122. (WsP0:sp50 ph0):f1
  1123. }
  1124. if ( PVM_WsOnOff == Off ) {
  1125. WsNp0
  1126. }
  1127. VpD1[5] grad_ramp{ PVM_VpTrim[15], PVM_VpTrim[16], PVM_VpTrim[17] }
  1128. VpD2[5] grad_off
  1129. ;7.th pulse
  1130. if ( PVM_WsOnOff == On ) {
  1131. (WsP1:sp51 ph0):f1
  1132. }
  1133. if ( PVM_WsOnOff == Off ) {
  1134. WsNp1
  1135. }
  1136. VpD1[6] grad_ramp{ PVM_VpTrim[18], PVM_VpTrim[19], PVM_VpTrim[20] }
  1137. VpD2[6] grad_off
  1138. if ( PVM_OvsOnOff == On ) {
  1139. ;EXEC_begin Ovs Ovs(phase ph0)
  1140. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  1141. ;-------------------------------------------------------------------------------
  1142. ; delays grads rf/rec comments
  1143. ;-------------------------------------------------------------------------------
  1144. ;pulses 1 + 2
  1145. OvsD0 grad_ramp{ PVM_OvsTrim0, 0.0, 0.0 } Ovslist:f1
  1146. (OvsP0:sp53 ph0):f1
  1147. 5u Ovslist.inc
  1148. 5u Ovslist:f1
  1149. (OvsP0:sp53 ph0):f1
  1150. OvsD1 grad_ramp{ PVM_OvsTrim1, 0.0, 0.0 } Ovslist.inc
  1151. ;pulses 3 + 4
  1152. OvsD0 grad_ramp{ 0.0, PVM_OvsTrim0, 0.0 } Ovslist:f1
  1153. (OvsP0:sp53 ph0):f1
  1154. 5u Ovslist.inc
  1155. 5u Ovslist:f1
  1156. (OvsP0:sp53 ph0):f1
  1157. OvsD1 grad_ramp{ 0.0, PVM_OvsTrim2, 0.0 } Ovslist.inc
  1158. ;pulses 5 + 6
  1159. OvsD0 grad_ramp{ 0.0, 0.0, PVM_OvsTrim0 } Ovslist:f1
  1160. (OvsP0:sp53 ph0):f1
  1161. 5u Ovslist.inc
  1162. 5u Ovslist:f1
  1163. (OvsP0:sp53 ph0):f1
  1164. OvsD1 grad_ramp{ 0.0, 0.0, PVM_OvsTrim3 } Ovslist.inc
  1165. OvsD0 grad_off
  1166. ;EXEC_end Ovs
  1167. 2u
  1168. }
  1169. };end vapor
  1170. ;end subr WsOvsMain
  1171. ;EXEC_end WsOvsMain
  1172. ;EXEC_end WsOvs
  1173. # 53 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  1174. # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  1175. ;---------localisation module------------------------------------
  1176. d4 grad_ramp{g1, 0.0, 0.0} fq1:f1
  1177. d6 gatepulse 1
  1178. (p1:sp1 ph1):f1
  1179. d6
  1180. d7 grad_off
  1181. d8 grad_ramp{g4, g6, g7}
  1182. d4 grad_ramp{0.0, g2, 0.0} fq1:f1
  1183. d6 gatepulse 1
  1184. (p2:sp2 ph2):f1
  1185. d6
  1186. d8 grad_ramp{g5, g6, g7}
  1187. d9 grad_off
  1188. ;-------pulse adjustments--------------------------------------
  1189. if ( PVM_ppgFlag3 == Yes ) {
  1190. d12 grad_ramp{g11, g12, g13}
  1191. d4 groff
  1192. }
  1193. 20u ;for symmetry with de4
  1194. d10 grad_ramp{g8, g9, g10} fq1:f1
  1195. d4 grad_ramp{0.0, 0.0, g3}
  1196. d6 gatepulse 1
  1197. (p3:sp3 ph3):f1
  1198. d6
  1199. d10 grad_ramp{g8, g9, g10}
  1200. d11 grad_off
  1201. # 85 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  1202. ;---------data acquisition--------------------------------------------
  1203. ;pulse adjustments:
  1204. if ( PVM_ppgFlag3 == Yes )
  1205. {
  1206. d4 grad_ramp{g14, g15, g16}
  1207. de4
  1208. rdepa \n deparx adc ph0 syrec fqatofqb:f1 \n derxadc ph31:r \n deadc
  1209. aqq cpdngs17:f1
  1210. }
  1211. else
  1212. {
  1213. 10u
  1214. subr acqdec_jobs
  1215. ;EXEC_begin acqdec_jobs acqdec_jobs(phase ph0, phase ph31)
  1216. # 58 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/acqdec.mod"
  1217. if (PVM_DecOnOff == Off)
  1218. {
  1219. durx
  1220. (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph31:r):f1 (de)
  1221. 1u
  1222. aqq cpdngs17:f1
  1223. }
  1224. if (PVM_DecOnOff == On)
  1225. {
  1226. if (PVM_DecMode == Continuous_Wave)
  1227. {
  1228. durx pl2:f2
  1229. (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph31:r):f1 (de)
  1230. 1u cpdngs17:f1
  1231. DecD0 cw:f2
  1232. DecD1 do:f2
  1233. }
  1234. if (PVM_DecMode == Composite_Pulse)
  1235. {
  1236. durx pl2:f2
  1237. (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph31:r):f1 (de)
  1238. 1u cpdngs17:f1
  1239. DecD0 cpd2:f2
  1240. DecD1 do:f2
  1241. }
  1242. }
  1243. ;EXEC_end acqdec_jobs
  1244. # 97 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  1245. }
  1246. 2m grad_off
  1247. 500u eoscnp
  1248. 500u ;eoscnp with jobs needs a second following delay >8us
  1249. if(PVM_NavOnOff == On)
  1250. {
  1251. 10u swj2
  1252. 1u setrtp1|1 \n 9u setrtp1^1 ;lasts 10u
  1253. 20u reload B0
  1254. subr NavigatorGlobal
  1255. ;EXEC_begin NavigatorGlobal NavigatorGlobal(any sp0, phase ph31, phase ph0, phase ph31)
  1256. # 148 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Navigator.mod"
  1257. if (PVM_NavOnOff == On)
  1258. {
  1259. 10u navrec(receive):f1
  1260. 5u navlist:f1
  1261. NAVD2 gatepulse 1
  1262. (NavP0:sp0 ph31):f1
  1263. 10u
  1264. (rde1 sync de1 adc2 ph0 syrec) (1u 1u ph31:r):f1 (de) ;includes 6u
  1265. NAVD4 cpdngs18:f1
  1266. 169u ;delay for scan shift
  1267. 10u eoscnp #1
  1268. }
  1269. ;EXEC_end NavigatorGlobal
  1270. # 108 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  1271. 100u ; 2 delays needed after ADC_END_JOB
  1272. 10u swj1
  1273. 3u setrtp1|1 \n 7u setrtp1^1 ;lasts 10u
  1274. }
  1275. d1 ;TR delay
  1276. ;---------dummy scans ------------------------------------------------
  1277. "lds = lds - 1"
  1278. if "lds>=0" goto start
  1279. # 119 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PRESS.ppg"
  1280. ;---------averaging & phase cycling-----------------------------------
  1281. if ( ACQ_scan_type == Scan_Experiment ) {
  1282. 0u ipp1
  1283. 0u ipp2
  1284. 0u ipp3
  1285. 0u ipp31
  1286. }
  1287. lo to start times avList
  1288. 0u avList.inc
  1289. 0u rpp1
  1290. 0u rpp2
  1291. 0u rpp3
  1292. 0u rpp31
  1293. lo to start times NR
  1294. if (ACQ_scan_type != Scan_Experiment) \n{ \n goto start \n}
  1295. exit
  1296. ph0 = 0
  1297. ph1 = {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0}^2^1^3
  1298. ph2 = {0 0 1 1 0 0 1 1 2 2 3 3 2 2 3 3}^2^1^3
  1299. ph3 = {0 2 0 2 1 3 1 3 0 2 0 2 1 3 1 3}^2^1^3
  1300. ph31= {0 0 2 2 2 2 0 0 0 0 2 2 2 2 0 0}^2^1^3