pulseprogram 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003
  1. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  2. ;****************************************************************
  3. ;
  4. ; Copyright (c) 2002
  5. ; Bruker BioSpin MRI GmbH
  6. ; D-76275 Ettlingen, Germany
  7. ;
  8. ; All Rights Reserved
  9. ;
  10. ; a RARE imaging experiment
  11. ;
  12. ;****************************************************************
  13. ;
  14. ;
  15. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include" 1
  16. ;****************************************************************
  17. ;
  18. ; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/Attic/MRI.include,v $
  19. ;
  20. ; Copyright (c) 2006
  21. ; Bruker BioSpin MRI GmbH
  22. ; D-76275 Ettlingen, Germany
  23. ;
  24. ; All Rights Reserved
  25. ;
  26. ;;****************************************************************
  27. ;MRI.include
  28. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/Avance.incl" 1
  29. ;Avance3aqs.incl
  30. ; for AV III with AQS IPSO
  31. ;
  32. ;avance-version (13/06/17)
  33. ;
  34. ;$CLASS=HighRes Incl
  35. ;$COMMENT=
  36. # 170 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/Avance.incl"
  37. ;$Id: Avance3aqs.incl,v 1.1.6.3 2015/03/05 16:37:14 uhei Exp $
  38. # 14 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include" 2
  39. define delay aqq
  40. define delay deparx
  41. define delay derxadc
  42. define delay rdepa
  43. # 21 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  44. "aqq=dw*td"
  45. "rdepa=de-depa"
  46. "deparx=depa-derx"
  47. "derxadc=derx-deadc"
  48. ; contents of De2.incl - usage for different hardware versions to
  49. ; be checked - intermediate solution to support Jobs
  50. define delay rde1
  51. # 31 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  52. "rde1=de-de1"
  53. # 44 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  54. ; end of contents of De2.incl
  55. # 65 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  56. # 74 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  57. # 128 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  58. # 129 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  59. # 141 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  60. # 15 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg" 2
  61. preset off
  62. define delay denab
  63. "denab = d3 - de"
  64. # 21 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  65. define delay d5m40u
  66. "d5m40u = d5 - 40u"
  67. define loopcounter lsize = {$ACQ_size[1]}
  68. "l1 = lsize +ds"
  69. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
  70. ;****************************************************************
  71. ;
  72. ; Copyright (c) 2003-2007
  73. ; Bruker BioSpin MRI GmbH
  74. ; D-76275 Ettlingen, Germany
  75. ;
  76. ; $Id: PrepModulesHead.mod,v 1.19 2012/01/20 10:19:48 wemch Exp $
  77. ;
  78. ; All Rights Reserved
  79. ;
  80. ; Declaration of pulseprogram parameters and subroutines for
  81. ; preparation modules
  82. ;
  83. ; Must be included after MRI.include!
  84. ;
  85. ;****************************************************************
  86. # 18 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod"
  87. ;**** Fat Suppression ****
  88. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
  89. ;****************************************************************
  90. ;
  91. ; Copyright (c) 2002-2007
  92. ; Bruker BioSpin MRI GmbH
  93. ; D-76275 Ettlingen, Germany
  94. ;
  95. ; $Id: FatSupDef.mod,v 1.7 2013/07/05 14:15:26 sako Exp $
  96. ;
  97. ; All Rights Reserved
  98. ;
  99. ; FatSupDef.mod : Declaration of Fat Suppression Subroutine
  100. ;
  101. ;****************************************************************
  102. if (PVM_FatSupPerform == Yes)
  103. {
  104. define pulse fatSupPul = {$PVM_FatSupRfLength}
  105. define list<frequency> fatSupList = {$PVM_FatSupFL}
  106. define delay fatSupRamp = {$PVM_FatSupRampTime}
  107. define delay fatSupAmp = {$PVM_FatSupAmpEnable}
  108. define delay fatSupGrad = {$PVM_FatSupGradWait}
  109. define delay fatSupSpoil = {$PVM_FatSupSpoilDur}
  110. # 25 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod"
  111. ; convert from ms to s
  112. "fatSupRamp = fatSupRamp / 1000"
  113. "fatSupAmp = fatSupAmp / 1000"
  114. "fatSupGrad = fatSupGrad / 1000"
  115. "fatSupSpoil = fatSupSpoil / 1000"
  116. }
  117. subroutine FatSup
  118. # 20 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  119. ;**** Flow Saturation ****
  120. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1
  121. ;****************************************************************
  122. ;
  123. ; Copyright (c) 2005-2007
  124. ; Bruker BioSpin MRI GmbH
  125. ; D-76275 Ettlingen, Germany
  126. ;
  127. ; $Id: FlowSatDef.mod,v 1.7 2013/06/04 10:11:30 sako Exp $
  128. ;
  129. ; All Rights Reserved
  130. ;
  131. ; FlowSatDef.mod: Declaration of subroutines for Flow Saturation
  132. ; call
  133. ; subr FlowSat()
  134. ; subr FlowSatInit()
  135. ; subr FlowSatInc()
  136. ;
  137. ;****************************************************************
  138. if(PVM_InFlowSatOnOff == 1)
  139. {
  140. define list<frequency> modlis4 = {$PVM_InFlowSatFL}
  141. define list<grad_scalar> flowSatGrad={$PVM_InFlowSatGrad}
  142. define delay SfD0 = {$PVM_SfD0}
  143. define delay SfD1 = {$PVM_SfD1}
  144. define delay SfD2 = {$PVM_SfD2}
  145. define pulse SfP0 = {$PVM_SfP0}
  146. define loopcounter SfLp0 = {$PVM_SfLp0}
  147. }
  148. subroutine FlowSat
  149. subroutine FlowSatInc
  150. subroutine FlowSatInit
  151. # 24 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  152. ;**** Inversion Pulse ****
  153. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1
  154. ;****************************************************************
  155. ;
  156. ; Copyright (c) 2002-2007
  157. ; Bruker BioSpin MRI GmbH
  158. ; D-76275 Ettlingen, Germany
  159. ;
  160. ; $Id: InvPulseDef.mod,v 1.2 2010/12/15 10:52:31 mah Exp $
  161. ;
  162. ; All Rights Reserved
  163. ;
  164. ; InvPulseDef.mod : Declaration of Inversion Pulse subroutine
  165. ;
  166. ; call
  167. ; subr InvPulse()
  168. ;
  169. ;****************************************************************
  170. ;
  171. ; PVM_InvRFPulseArr :
  172. ;
  173. ; sp22 TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename
  174. ;
  175. ; PVM_IpP0 : PVM_InvRFPulseArr[0].PulseLength
  176. ;
  177. ; PVM_IpD2 : PVM_InvPulseDelay[0]
  178. ; PVM_IpD3 : PVM_InvPulseSpoilTime[0]
  179. ; PVM_IpD1 : CONFIG_amplifier _enable
  180. ; PVM_IpD0 : PVM_RampTime
  181. ;
  182. if(PVM_InvPulseOnOff == 1)
  183. {
  184. define list<frequency> modlis2= {$PVM_InvPulseOffsetHz}
  185. define delay IpD0 = {$PVM_IpD0}
  186. define delay IpD1 = {$PVM_IpD1}
  187. define delay IpD2 = {$PVM_IpD2}
  188. define delay IpD3 = {$PVM_IpD3}
  189. define pulse IpP0 = {$PVM_IpP0}
  190. }
  191. subroutine InvPulse
  192. # 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  193. ;**** Magnetisation Transfer ****
  194. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MagTransDef.mod" 1
  195. ;****************************************************************
  196. ; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/Attic/MagTransDef.mod,v $
  197. ;
  198. ; Copyright (c) 2005-2007
  199. ; Bruker BioSpin MRI GmbH
  200. ; D-76275 Ettlingen, Germany
  201. ;
  202. ; All Rights Reserved
  203. ;
  204. ; MagTransDef.mod: Declaration of subroutine for Magnetization
  205. ; transfer
  206. ; call
  207. ; subr MagTrans()
  208. ;
  209. ; $Id: MagTransDef.mod,v 1.6.2.1 2015/03/24 14:30:00 sako Exp $
  210. ;****************************************************************
  211. ;**** Magnetisation Transfer Module ****
  212. if(PVM_MagTransOnOff)
  213. {
  214. define list<frequency> modlis3 = {$PVM_MagTransFL}
  215. define delay MtD0 = {$PVM_MtD0}
  216. define delay MtD1 = {$PVM_MtD1}
  217. define delay MtD2 = {$PVM_MtD2}
  218. define delay MtD3 = {$PVM_MtD3}
  219. # 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MagTransDef.mod"
  220. define pulse MtP0 = {$PVM_MtP0}
  221. define loopcounter MtLp0 = {$PVM_MtLp0}
  222. }
  223. subroutine MagTrans
  224. # 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  225. ;**** Saturation Pulse ****
  226. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1
  227. ;****************************************************************
  228. ;
  229. ; Copyright (c) 2002-2003
  230. ; Bruker BioSpin MRI GmbH
  231. ; D-76275 Ettlingen, Germany
  232. ;
  233. ; $Id: SatPulseDef.mod,v 1.3 2010/12/15 10:52:31 mah Exp $
  234. ;
  235. ; All Rights Reserved
  236. ;
  237. ; SatPulseDef.mod : Declaration of Saturation Pulse subroutines
  238. ; call
  239. ; subr SatPulse()
  240. ;
  241. ;****************************************************************
  242. ;
  243. ; PVM_SatRFPulseArr :
  244. ;
  245. ; sp28 DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename
  246. ; sp29 DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename
  247. ; sp30 DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename
  248. ; sp31 DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename
  249. ;
  250. ; PVM_SpP0 : PVM_SatRFPulseArr[0].PulseLength
  251. ; PVM_SpP1 : PVM_SatRFPulseArr[1].PulseLength
  252. ; PVM_SpP2 : PVM_SatRFPulseArr[2].PulseLength
  253. ; PVM_SpP3 : PVM_SatRFPulseArr[3].PulseLength
  254. ;
  255. ; PVM_SpD2 : PVM_SatPulseDelay1[0]
  256. ; PVM_SpD6 : PVM_SatPulseSpoilTime[0]
  257. ; PVM_SpD10 : PVM_SatPulseDelay2[0]
  258. ; PVM_SpD3 : PVM_SatPulseSpoilTime[1]
  259. ; PVM_SpD7 : PVM_SatPulseDelay1[1]
  260. ; PVM_SpD11 : PVM_SatPulseDelay2[1]
  261. ; PVM_SpD4 : PVM_SatPulseDelay1[2]
  262. ; PVM_SpD8 : PVM_SatPulseSpoilTime[2]
  263. ; PVM_SpD12 : PVM_SatPulseDelay2[2]
  264. ; PVM_SpD5 : PVM_SatPulseDelay1[3]
  265. ; PVM_SpD9 : PVM_SatPulseSpoilTime[3]
  266. ; PVM_SpD13 : PVM_SatPulseDelay2[3]
  267. ;
  268. if(PVM_SatPulseOnOff == 1)
  269. {
  270. define list<frequency> modlis7 = {$PVM_SatPulseOffsetHz}
  271. define delay SpD0 = {$PVM_SpD0}
  272. define delay SpD1 = {$PVM_SpD1}
  273. define delay SpD2 = {$PVM_SpD2}
  274. define delay SpD3 = {$PVM_SpD3}
  275. define delay SpD4 = {$PVM_SpD4}
  276. define delay SpD5 = {$PVM_SpD5}
  277. define delay SpD6 = {$PVM_SpD6}
  278. define delay SpD7 = {$PVM_SpD7}
  279. define delay SpD8 = {$PVM_SpD8}
  280. define delay SpD9 = {$PVM_SpD9}
  281. define delay SpD10 = {$PVM_SpD10}
  282. define delay SpD11 = {$PVM_SpD11}
  283. define delay SpD12 = {$PVM_SpD12}
  284. define delay SpD13 = {$PVM_SpD13}
  285. define pulse SpP0 = {$PVM_SpP0}
  286. define pulse SpP1 = {$PVM_SpP1}
  287. define pulse SpP2 = {$PVM_SpP2}
  288. define pulse SpP3 = {$PVM_SpP3}
  289. # 66 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SatPulseDef.mod"
  290. }
  291. subroutine SatPulse
  292. # 36 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  293. ;*** FOV Saturation ***
  294. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod" 1
  295. ;****************************************************************
  296. ;
  297. ; Copyright (c) 2002-2007
  298. ; Bruker BioSpin MRI GmbH
  299. ; D-76275 Ettlingen, Germany
  300. ;
  301. ; $Id: FovSatDef.mod,v 1.8 2013/08/06 08:09:43 sako Exp $
  302. ;
  303. ; All Rights Reserved
  304. ;
  305. ; FovSat.mod : Declaration of FOV Saturation subroutine
  306. ; call: subr FovSat()
  307. ;
  308. ;****************************************************************
  309. if (PVM_FovSatOnOff == On)
  310. {
  311. define pulse fovSatPul = {$PVM_FovSatRfLength}
  312. define list<frequency> fovSatList = {$PVM_FovSatFL}
  313. define delay fovSatRamp = {$PVM_FovSatRampTime}
  314. define delay fovSatAmp = {$PVM_FovSatAmpEnable}
  315. define delay fovSatGrad = {$PVM_FovSatGradWait}
  316. define delay fovSatSpoil = {$PVM_FovSatSpoilDur}
  317. # 27 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
  318. ; convert from ms to s
  319. "fovSatRamp = fovSatRamp / 1000"
  320. "fovSatAmp = fovSatAmp / 1000"
  321. "fovSatGrad = fovSatGrad / 1000"
  322. "fovSatSpoil = fovSatSpoil / 1000"
  323. }
  324. subroutine FovSat
  325. # 53 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
  326. ; backwards compatibility
  327. subroutine SatSlices
  328. # 40 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  329. ;**** Black Blood ****
  330. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1
  331. ;****************************************************************
  332. ;
  333. ; Copyright (c) 2007
  334. ; Bruker BioSpin MRI GmbH
  335. ; D-76275 Ettlingen, Germany
  336. ;
  337. ; $Id: BlBloodDef.mod,v 1.4 2013/06/04 10:11:30 sako Exp $
  338. ;
  339. ; All Rights Reserved
  340. ;
  341. ; BlBloodDef.mod : Declaration of Black blood subroutine
  342. ;
  343. ; call
  344. ; subr BlBlood(ph0) : Black blood preparation with RF phaselist
  345. ; ph0
  346. ;
  347. ;****************************************************************
  348. if(PVM_BlBloodOnOff)
  349. {
  350. define list<frequency> modlis8 = {$PVM_BlBloodFL}
  351. define delay BlbD0 = {$PVM_BlbD0}
  352. define delay BlbD1 = {$PVM_BlbD1}
  353. define delay BlbD2 = {$PVM_BlbD2}
  354. define delay BlbD3 = {$PVM_BlbD3}
  355. define pulse BlbP0 = {$PVM_BlbP0}
  356. }
  357. subroutine BlBlood
  358. # 44 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  359. ;**** Trigger ****
  360. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod" 1
  361. ;****************************************************************
  362. ;
  363. ; Copyright (c) 1998-2003
  364. ; Bruker BioSpin MRI GmbH
  365. ; D-76275 Ettlingen, Germany
  366. ;
  367. ; All Rights Reserved
  368. ;
  369. ; TriggerDef.mod - Trigger Module
  370. ;
  371. ;****************************************************************
  372. if (PVM_TriggerModule == On)
  373. {
  374. define delay trigDur = {$PVM_TriggerDur}
  375. define delay trigDel = {$PVM_TriggerDelay}
  376. ; convert from ms to s
  377. "trigDur = trigDur / 1000"
  378. "trigDel = trigDel / 1000"
  379. }
  380. subroutine Trigger
  381. subroutine TriggerPhase
  382. subroutine TriggerSlice
  383. # 48 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  384. ;**** Trigger Out ****
  385. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerOutDef.mod" 1
  386. ;****************************************************************
  387. ;
  388. ; Copyright (c) 2003
  389. ; Bruker BioSpin MRI GmbH
  390. ; D-76275 Ettlingen, Germany
  391. ;
  392. ; All Rights Reserved
  393. ; $Id: TriggerOutDef.mod,v 1.2 2013/07/05 14:15:26 sako Exp $
  394. ;****************************************************************
  395. if (PVM_TriggerOutOnOff == On)
  396. {
  397. define delay trigOutDur = {$PVM_TriggerOutDur}
  398. define delay trigOutDel = {$PVM_TriggerOutDelay}
  399. ; convert from ms to s
  400. "trigOutDur = trigOutDur / 1000"
  401. "trigOutDel = trigOutDel / 1000"
  402. }
  403. subroutine TriggerOut
  404. subroutine TriggerOutStart
  405. subroutine TriggerOutSlice
  406. subroutine TriggerOutVolume
  407. # 52 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  408. ;**** Outer Volume Suppression ****
  409. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1
  410. ;****************************************************************
  411. ;
  412. ; Copyright (c) 2005-2007
  413. ; Bruker BioSpin MRI GmbH
  414. ; D-76275 Ettlingen, Germany
  415. ;
  416. ; $Id: WsOvsDef.mod,v 1.6 2013/07/08 08:33:32 josh Exp $
  417. ;
  418. ; All Rights Reserved
  419. ;
  420. ; WsOvsDef.mod: Declaration of water suppression and Outer
  421. ; volume suppression subroutines
  422. ;
  423. ; call
  424. ; subr Ovs(ph0) ; execution of OVS with ph0 phaselist
  425. ;
  426. ; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1
  427. ; phaselist
  428. ;****************************************************************
  429. ;**** OuterVolumeSuppression ****
  430. if(PVM_OvsOnOff == 1)
  431. {
  432. define list<frequency> Ovslist={$PVM_OvsFrequencyList}
  433. define delay OvsD0 = {$PVM_OvsD0}
  434. define delay OvsD1 = {$PVM_OvsD1}
  435. define pulse OvsP0 = {$PVM_OvsP0}
  436. }
  437. subroutine Ovs
  438. # 59 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  439. ;*** WaterSuppression Module with OVS ****
  440. if (PVM_WsMode)
  441. {
  442. define list<frequency> Wslist={$PVM_WsOffsetHz}
  443. define pulse WsP0 = {$PVM_WsP0}
  444. define pulse WsP1 = {$PVM_WsP1}
  445. define pulse WsP2 = {$PVM_WsP2}
  446. define delay WsNp0
  447. "WsNp0 = WsP0"
  448. define delay WsNp1
  449. "WsNp1 = WsP1"
  450. define delay WsNp2
  451. "WsNp2 = WsP2"
  452. define list<delay> ChD1={$PVM_ChppgD1}
  453. define list<delay> ChD2={$PVM_ChppgD2}
  454. define list<delay> VpD1={$PVM_VpppgD1}
  455. define list<delay> VpD2={$PVM_VpppgD2}
  456. # 79 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  457. }
  458. subroutine WsOvsMain
  459. subroutine WsOvs
  460. subroutine Ws
  461. # 56 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  462. ;**** Solvent Suppression module ****
  463. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsSatDef.mod" 1
  464. ;******************************************************************
  465. ;
  466. ; Copyright (c) 2002-2007
  467. ; Bruker BioSpin MRI GmbH
  468. ; D-76275 Ettlingen, Germany
  469. ;
  470. ; $Id: WsSatDef.mod,v 1.11 2013/08/23 08:37:06 josh Exp $
  471. ;
  472. ; All Rights Reserved
  473. ;
  474. ; WsSatDef.mod - Declaration of water suppression and FOV saturation
  475. ; subroutines
  476. ; call
  477. ; subr WsSat(ph0) : execution of WS with ph0 phaselist and
  478. ; FOV saturation (as passed as argument)
  479. ;
  480. ;*******************************************************************
  481. ; Definitions for WsPpgParams are included in WsOvsDef.mod
  482. subroutine WsSatMain
  483. subroutine WsSat
  484. # 60 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  485. ;**** Selective Inversion Recovery ****
  486. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1
  487. ;****************************************************************
  488. ;
  489. ; Copyright (c) 2007
  490. ; Bruker BioSpin MRI GmbH
  491. ; D-76275 Ettlingen, Germany
  492. ;
  493. ; $Id: SelSliceIrDef.mod,v 1.5 2013/06/04 10:11:30 sako Exp $
  494. ;
  495. ; All Rights Reserved
  496. ;
  497. ; SelSliceIrDef.mod : declaration of slice Selective Inversion
  498. ; Recovery subroutine
  499. ; call SliceSelIr()
  500. ;
  501. ;
  502. ;****************************************************************
  503. if(PVM_SelIrOnOff)
  504. {
  505. define list<frequency> IrFL = {$PVM_SelIrFL}
  506. define delay IrD0 = {$PVM_SelIrD0}
  507. define delay IrD1 = {$PVM_SelIrD1}
  508. define delay IrD2 = {$PVM_SelIrD2}
  509. define delay IrD3 = {$PVM_SelIrD3}
  510. define delay IrD4 = {$PVM_SelIrD4}
  511. # 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
  512. define pulse IrP0 = {$PVM_SelIrP0}
  513. define loopcounter IrL0 = {$PVM_SelIrL0}
  514. }
  515. subroutine SliceSelIr
  516. # 64 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  517. ;**** Tagging ****
  518. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TagDef.mod" 1
  519. ;****************************************************************
  520. ;
  521. ; Copyright (c) 2007
  522. ; Bruker BioSpin MRI GmbH
  523. ; D-76275 Ettlingen, Germany
  524. ;
  525. ; $Id: TagDef.mod,v 1.6 2013/06/05 12:55:35 sako Exp $
  526. ;
  527. ; All Rights Reserved
  528. ;
  529. ; TagDef.mod : Declaration of tagging subroutine
  530. ; call
  531. ; subr Tagging()
  532. ;
  533. ;****************************************************************
  534. if(PVM_TaggingOnOff)
  535. {
  536. define list<frequency> taggfreq={$PVM_TaggingFL}
  537. define delay TaggD0 = {$PVM_TaggingD0}
  538. define delay TaggD1 = {$PVM_TaggingD1}
  539. define delay TaggD2 = {$PVM_TaggingD2}
  540. define delay TaggD3 = {$PVM_TaggingD3}
  541. define delay TaggD4 = {$PVM_TaggingD4}
  542. define delay TaggD5 = {$PVM_TaggingD5}
  543. # 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TagDef.mod"
  544. define pulse TaggP0 = {$PVM_TaggingP0}
  545. define loopcounter TaggL0 = {$PVM_TaggingLp0}
  546. }
  547. subroutine Tagging
  548. # 68 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  549. ;**** Noe ****
  550. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/NoeDef.mod" 1
  551. ;****************************************************************
  552. ;
  553. ; Copyright (c) 2007
  554. ; Bruker BioSpin MRI GmbH
  555. ; D-76275 Ettlingen, Germany
  556. ;
  557. ; $Id: NoeDef.mod,v 1.1 2007/07/02 14:26:00 mawi Exp $
  558. ;
  559. ; All Rights Reserved
  560. ;
  561. ; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement
  562. ; subroutine
  563. ; call
  564. ; subr Noe()
  565. ;
  566. ;****************************************************************
  567. if(PVM_NoeOnOff == On)
  568. {
  569. define delay NoeD0 = {$PVM_NoeD0}
  570. define delay NoeD1 = {$PVM_NoeD1}
  571. }
  572. subroutine Noe
  573. # 72 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  574. ;**** Evolution ****
  575. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/EvolutionDef.mod" 1
  576. ;****************************************************************
  577. ;
  578. ; Copyright (c) 1998-2003
  579. ; Bruker BioSpin MRI GmbH
  580. ; D-76275 Ettlingen, Germany
  581. ;
  582. ; All Rights Reserved
  583. ;
  584. ; EvolutionDef.mod - Evolution Module
  585. ;
  586. ;****************************************************************
  587. if (PVM_EvolutionOnOff == On)
  588. {
  589. define delay evolDel = {$PVM_EvolutionDelay}
  590. define list<delay> evolTime = {$PVM_EvolutionTime}
  591. }
  592. subroutine Evolution
  593. # 76 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  594. # 27 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg" 2
  595. # 29 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  596. 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 }
  597. # 34 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  598. grad_zero_for_gs <ACQ_spatial_phase_1, ACQ_spatial_phase_2>
  599. subr FlowSatInit
  600. ;EXEC_begin FlowSatInit FlowSatInit()
  601. # 55 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod"
  602. if(PVM_InFlowSatOnOff == 1)
  603. {
  604. 40u modlis4.res
  605. 10u flowSatGrad.res
  606. }
  607. ;EXEC_end FlowSatInit
  608. # 36 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  609. ;pre-setting the ACQ_spatial_phase_1 counter for the dummy scans:
  610. decr, dgrad ACQ_spatial_phase_1
  611. lo to decr times DS
  612. # 42 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  613. start, 10u
  614. subr TriggerPhase
  615. ;EXEC_begin TriggerPhase TriggerPhase()
  616. # 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  617. if (PVM_TriggerMode == per_PhaseStep)
  618. {
  619. ;EXEC_begin Trigger Trigger()
  620. # 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  621. if (PVM_TriggerModule == On)
  622. {
  623. trigDur
  624. if (CONFIG_instrument_type == Avance_III)
  625. {
  626. trigDur trignl1
  627. trigDur trigpe3
  628. }
  629. else
  630. {
  631. trigDur
  632. trigDur trigpl1
  633. }
  634. trigDur
  635. trigDel
  636. }
  637. ;EXEC_end Trigger
  638. }
  639. ;EXEC_end TriggerPhase
  640. # 44 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  641. subr SliceSelIr
  642. ;EXEC_begin SliceSelIr SliceSelIr()
  643. # 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
  644. if(PVM_SelIrOnOff == On)
  645. {
  646. 50u IrFL.res
  647. irloop19, 10u IrFL :f1
  648. IrD4 grad_ramp{0, 0, PVM_SelIrGradAmp*100}
  649. IrD3 gatepulse 1
  650. (IrP0:sp42 ph0):f1
  651. IrD4 grad_off
  652. IrD0 grad_matrix.inc IrFL.inc
  653. lo to irloop19 times IrL0
  654. IrD2 grad_ramp{0, 0, PVM_SelIrSpoilAmp}
  655. IrD4 grad_off IrFL.res
  656. IrD1 grad_matrix.res
  657. }
  658. ;EXEC_end SliceSelIr
  659. # 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  660. slice, 10u fq8(receive):f1
  661. 20u reload B0
  662. ;----------------------------------preparation modules -------------
  663. subr TriggerSlice
  664. ;EXEC_begin TriggerSlice TriggerSlice()
  665. # 53 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  666. if (PVM_TriggerMode == per_Slice)
  667. {
  668. ;EXEC_begin Trigger Trigger()
  669. # 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  670. if (PVM_TriggerModule == On)
  671. {
  672. trigDur
  673. if (CONFIG_instrument_type == Avance_III)
  674. {
  675. trigDur trignl1
  676. trigDur trigpe3
  677. }
  678. else
  679. {
  680. trigDur
  681. trigDur trigpl1
  682. }
  683. trigDur
  684. trigDel
  685. }
  686. ;EXEC_end Trigger
  687. }
  688. ;EXEC_end TriggerSlice
  689. # 51 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  690. subr FlowSat
  691. ;EXEC_begin FlowSat FlowSat()
  692. # 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod"
  693. if(PVM_InFlowSatOnOff == 1)
  694. {
  695. flow120, SfD0 modlis4:f1 grad_ramp{0, 0, flowSatGrad*100}
  696. SfD1 gatepulse 1
  697. (SfP0:sp44):f1
  698. SfD2 grad_ramp{0, 0, PVM_InFlowSatSpoilGrad}
  699. SfD0 grad_off
  700. }
  701. ;EXEC_end FlowSat
  702. # 52 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  703. subr FovSat
  704. ;EXEC_begin FovSat FovSat()
  705. # 34 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
  706. if (PVM_FovSatOnOff == On)
  707. {
  708. PVM_FovSatGrad.res
  709. fovSatList.res
  710. fov21, fovSatRamp grad_ramp<object_coord>{PVM_FovSatGrad[]}
  711. fovSatAmp fovSatList:f1 gatepulse 1
  712. (fovSatPul :sp41):f1
  713. fovSatSpoil fovSatList.inc grad_ramp{0, 0, PVM_FovSatSpoilAmp}
  714. PVM_FovSatGrad.inc
  715. lo to fov21 times PVM_FovSatNSlices
  716. fovSatRamp grad_off
  717. fovSatGrad
  718. }
  719. ;EXEC_end FovSat
  720. # 53 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  721. subr MagTrans
  722. ;EXEC_begin MagTrans MagTrans()
  723. # 33 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MagTransDef.mod"
  724. if(PVM_MagTransOnOff)
  725. {
  726. 50u modlis3.res
  727. MtD1
  728. mtc22,MtD2 modlis3:f1 gatepulse 1
  729. MtP0:sp43:f1
  730. lo to mtc22 times MtLp0
  731. MtD3 grad_ramp{0, 0, PVM_MagTransSpoiler}
  732. MtD0 groff
  733. 100u
  734. }
  735. ;EXEC_end MagTrans
  736. # 54 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  737. subr FatSup
  738. ;EXEC_begin FatSup FatSup()
  739. # 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod"
  740. if (PVM_FatSupPerform == Yes)
  741. {
  742. fatSupAmp fatSupList:f1 gatepulse 1
  743. (fatSupPul :sp40):f1
  744. fatSupSpoil grad_shape {0, 0, PVM_FatSupSpoilAmp}
  745. fatSupRamp grad_off
  746. fatSupGrad
  747. }
  748. ;EXEC_end FatSup
  749. # 55 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  750. ;---------------------------------- excitation ---------------------
  751. # 58 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  752. d9 grad_ramp{g1, 0, g1} ;TR spoiler
  753. d3 grad_ramp{0, 0, g0} fq1:f1 ;slice on
  754. d8 gatepulse 1
  755. (p0:sp0 ph0):f1 ;exc pulse
  756. d2 grad_ramp{g2, 0, g7} ;read deph, slice spoil
  757. d1 grad_off ;TE-fill 1
  758. ;---------------------------------- refocusing -----------------
  759. echo, d3 grad_ramp{0, 0, g0} gatepulse 1 ;slice on
  760. # 69 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  761. (p1:sp1 ph1):f1 ;pi-pulse
  762. d5 grad_ramp{g8, ACQ_spatial_phase_1*g4, g3-ACQ_spatial_phase_2*g6} ;enc+slice-reph
  763. d6 grad_off ;TE-fill 2a
  764. denab grad_ramp{g5, 0, 0} ;read-on + acq
  765. rdepa \n deparx adc ph0 syrec fqatofqb:f1 \n derxadc ph1:r \n deadc
  766. aqq cpdngs17:f1
  767. # 78 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  768. d6 grad_off ;TE-fill 2b
  769. d5m40u grad_ramp{g8, -ACQ_spatial_phase_1*g4, g3+ACQ_spatial_phase_2*g6} ;enc+slice-reph2
  770. 40u eoscnp
  771. lo to echo times NECHOES
  772. ;--------------------------------- flipback ------------------------
  773. # 86 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  774. if( PVM_FlipBackOnOff == On)
  775. {
  776. d3 grad_ramp{0, 0, g0} gatepulse 1 ;slice on
  777. (p1:sp1 ph1):f1 ;pi-pulse
  778. d1 grad_off
  779. d2 grad_ramp{g2, 0, 0} ;read-dephase
  780. d3 grad_ramp{0, 0, g0} gatepulse 1 ;slice on
  781. (p0:sp0 ph3):f1 ;flipback
  782. }
  783. d3 grad_off
  784. ;----------------------------------slice loop-----------------------
  785. grad_matrix.inc
  786. d0
  787. subr FlowSatInc
  788. ;EXEC_begin FlowSatInc FlowSatInc()
  789. # 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod"
  790. if(PVM_InFlowSatOnOff == 1)
  791. {
  792. 5u modlis4.inc
  793. }
  794. ;EXEC_end FlowSatInc
  795. # 100 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  796. lo to slice times NSLICES
  797. d10
  798. 2.5u ipp0
  799. 2.5u ipp3
  800. ;----------------------------------averaging loop-------------------
  801. lo to start times NA
  802. 2.5u rpp0
  803. 2.5u rpp3
  804. ;----------------------------------2d loop--------------------------
  805. if( ACQ_dim >= 2 )
  806. {
  807. ACQ_spatial_phase_1.inc
  808. lo to start times l1 ; ACQ_size[1] (+DS in first run)
  809. }
  810. "l1=lsize"
  811. ;----------------------------------3d loop--------------------------
  812. if( ACQ_dim >= 3 )
  813. {
  814. ACQ_spatial_phase_2.inc
  815. lo to start times ACQ_size[2]
  816. }
  817. 5u
  818. lo to start times NAE
  819. 5u
  820. subr Evolution
  821. ;EXEC_begin Evolution Evolution()
  822. # 19 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/EvolutionDef.mod"
  823. if (PVM_EvolutionOnOff == On)
  824. {
  825. if (PVM_EvolutionMode == Variable_Delay)
  826. {
  827. evolTime
  828. evolTime.inc
  829. }
  830. else
  831. {
  832. evolDel
  833. }
  834. }
  835. ;EXEC_end Evolution
  836. # 125 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  837. 5u
  838. lo to start times NR
  839. if (ACQ_scan_type != Scan_Experiment) \n{ \n goto start \n}
  840. exit
  841. # 132 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MSME.ppg"
  842. ph0 = 0 2
  843. ph1 = 1
  844. ph3 = 2 0