pulseprogram 39 KB

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