pulseprogram 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884
  1. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  2. ;==============================================================
  3. ;=
  4. ;= $Source: /pv/CvsTree/pv/gen/src/prg/methods/FieldMap/FieldMap.ppg,v $
  5. ;=
  6. ;= A multi gradient echo pulseprogram
  7. ;=
  8. ;= $Id: FieldMap.ppg,v 1.9 2013/01/18 15:16:52 mawi Exp $
  9. ;==============================================================
  10. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include" 1
  11. ;****************************************************************
  12. ;
  13. ; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/Attic/MRI.include,v $
  14. ;
  15. ; Copyright (c) 2006
  16. ; Bruker BioSpin MRI GmbH
  17. ; D-76275 Ettlingen, Germany
  18. ;
  19. ; All Rights Reserved
  20. ;
  21. ;;****************************************************************
  22. ;MRI.include
  23. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/Avance.incl" 1
  24. ;Avance3.incl
  25. ; for AV III
  26. ;
  27. ;avance-version (13/06/17)
  28. ;
  29. ;$CLASS=HighRes Incl
  30. ;$COMMENT=
  31. # 169 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/Avance.incl"
  32. ;$Id: Avance3.incl,v 1.9.6.1 2013/06/17 15:32:55 pfre Exp $
  33. # 14 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include" 2
  34. define delay aqq
  35. define delay deparx
  36. define delay derxadc
  37. define delay rdepa
  38. # 21 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  39. "aqq=dw*td"
  40. "rdepa=de-depa"
  41. "deparx=depa-derx"
  42. "derxadc=derx-deadc"
  43. ; contents of De2.incl - usage for different hardware versions to
  44. ; be checked - intermediate solution to support Jobs
  45. define delay rde1
  46. # 31 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  47. "rde1=de-de1"
  48. # 44 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  49. ; end of contents of De2.incl
  50. # 65 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  51. # 74 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  52. # 128 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  53. # 129 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  54. # 141 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
  55. # 12 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg" 2
  56. preset off
  57. # 16 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  58. ;===========================================================
  59. ; definition of delays
  60. ;===========================================================
  61. define delay denab
  62. "denab = d24 - de"
  63. define delay d4m40u
  64. "d4m40u = d4 - 40u"
  65. define delay d5m10u
  66. "d5m10u = d5 - 10u"
  67. # 29 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  68. "l3 = l0 + ds"
  69. # 34 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  70. grad_zero_for_gs <ACQ_spatial_phase_1, ACQ_spatial_phase_2>
  71. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
  72. ;****************************************************************
  73. ;
  74. ; Copyright (c) 2003-2007
  75. ; Bruker BioSpin MRI GmbH
  76. ; D-76275 Ettlingen, Germany
  77. ;
  78. ; $Id: PrepModulesHead.mod,v 1.19 2012/01/20 10:19:48 wemch Exp $
  79. ;
  80. ; All Rights Reserved
  81. ;
  82. ; Declaration of pulseprogram parameters and subroutines for
  83. ; preparation modules
  84. ;
  85. ; Must be included after MRI.include!
  86. ;
  87. ;****************************************************************
  88. ;**** Fat Suppression ****
  89. # 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
  90. ;****************************************************************
  91. ;
  92. ; Copyright (c) 2002-2007
  93. ; Bruker BioSpin MRI GmbH
  94. ; D-76275 Ettlingen, Germany
  95. ;
  96. ; $Id: FatSupDef.mod,v 1.7 2013/07/05 14:15:26 sako Exp $
  97. ;
  98. ; All Rights Reserved
  99. ;
  100. ; FatSupDef.mod : Declaration of Fat Suppression Subroutine
  101. ;
  102. ;****************************************************************
  103. if (PVM_FatSupPerform == Yes)
  104. {
  105. define pulse fatSupPul = {$PVM_FatSupRfLength}
  106. define list<frequency> fatSupList = {$PVM_FatSupFL}
  107. define delay fatSupRamp = {$PVM_FatSupRampTime}
  108. define delay fatSupAmp = {$PVM_FatSupAmpEnable}
  109. define delay fatSupGrad = {$PVM_FatSupGradWait}
  110. define delay fatSupSpoil = {$PVM_FatSupSpoilDur}
  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. # 36 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg" 2
  595. subroutine FieldMap
  596. # 83 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  597. ;===========================================================
  598. ; declaration of 2d and 3d loop
  599. ;===========================================================
  600. 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 }
  601. if(DS>0)
  602. {
  603. dsl, ACQ_spatial_phase_1.dec
  604. lo to dsl times DS
  605. # 94 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  606. }
  607. ;===============================================================================
  608. ; D/P spec control gradients
  609. ;===============================================================================
  610. start, 10u
  611. subr TriggerPhase
  612. ;EXEC_begin TriggerPhase TriggerPhase()
  613. # 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  614. if (PVM_TriggerMode == per_PhaseStep)
  615. {
  616. ;EXEC_begin Trigger Trigger()
  617. # 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  618. if (PVM_TriggerModule == On)
  619. {
  620. trigDur setnmr3|6
  621. if (CONFIG_instrument_type == Avance_III)
  622. {
  623. trigDur trignl1
  624. trigDur trigpe3
  625. }
  626. else
  627. {
  628. trigDur
  629. trigDur trigpl1
  630. }
  631. trigDur setnmr3^6
  632. trigDel
  633. }
  634. ;EXEC_end Trigger
  635. }
  636. ;EXEC_end TriggerPhase
  637. # 100 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  638. slice, 10u
  639. subr TriggerSlice
  640. ;EXEC_begin TriggerSlice TriggerSlice()
  641. # 53 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  642. if (PVM_TriggerMode == per_Slice)
  643. {
  644. ;EXEC_begin Trigger Trigger()
  645. # 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
  646. if (PVM_TriggerModule == On)
  647. {
  648. trigDur setnmr3|6
  649. if (CONFIG_instrument_type == Avance_III)
  650. {
  651. trigDur trignl1
  652. trigDur trigpe3
  653. }
  654. else
  655. {
  656. trigDur
  657. trigDur trigpl1
  658. }
  659. trigDur setnmr3^6
  660. trigDel
  661. }
  662. ;EXEC_end Trigger
  663. }
  664. ;EXEC_end TriggerSlice
  665. # 102 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  666. subr FovSat
  667. ;EXEC_begin FovSat FovSat()
  668. # 34 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
  669. if (PVM_FovSatOnOff == On)
  670. {
  671. PVM_FovSatGrad.res
  672. fovSatList.res
  673. fov19, fovSatRamp grad_ramp<object_coord>{PVM_FovSatGrad[]}
  674. fovSatAmp fovSatList:f1 gatepulse 1
  675. (fovSatPul :sp41):f1
  676. fovSatSpoil fovSatList.inc grad_ramp{0, 0, PVM_FovSatSpoilAmp}
  677. PVM_FovSatGrad.inc
  678. lo to fov19 times PVM_FovSatNSlices
  679. fovSatRamp grad_off
  680. fovSatGrad
  681. }
  682. ;EXEC_end FovSat
  683. # 104 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  684. subr FatSup
  685. ;EXEC_begin FatSup FatSup()
  686. # 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod"
  687. if (PVM_FatSupPerform == Yes)
  688. {
  689. fatSupAmp fatSupList:f1 gatepulse 1
  690. (fatSupPul :sp40):f1
  691. fatSupSpoil grad_shape {0, 0, PVM_FatSupSpoilAmp}
  692. fatSupRamp grad_off
  693. fatSupGrad
  694. }
  695. ;EXEC_end FatSup
  696. # 105 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  697. subr FieldMap
  698. ;EXEC_begin FieldMap FieldMap(any rps_coord)
  699. # 38 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  700. d1 fq1:f1 grad_ramp<rps_coord>{0, 0, g0}
  701. d2 gatepulse 1
  702. (p0:sp0 ph1):f1
  703. d3 grad_ramp<rps_coord>{g2, ACQ_spatial_phase_1*g3, g1+ACQ_spatial_phase_2*g4}
  704. d5m10u fq2:f1 grad_off
  705. 10u
  706. if(PVM_NEchoImages >1)
  707. {
  708. echo20,10u fq8(receive):f1
  709. denab grad_ramp<rps_coord>{g5, 0, 0}
  710. rdepa \n deparx adc ph1 syrec fqatofqb:f1 \n derxadc ph0:r \n deadc
  711. aqq cpdngs17:f1
  712. d7 groff
  713. d8 grad_ramp<rps_coord>{g9, 0, 0}
  714. d4m40u grad_off
  715. 40u eoscnp
  716. d9
  717. lo to echo20 times l8
  718. }
  719. 10u fq8(receive):f1
  720. denab grad_ramp<rps_coord>{g5, 0, 0}
  721. rdepa \n deparx adc ph1 syrec fqatofqb:f1 \n derxadc ph0:r \n deadc
  722. aqq cpdngs17:f1
  723. d3 grad_ramp<rps_coord>{g8, ACQ_spatial_phase_1*g6, ACQ_spatial_phase_2*g7}
  724. d6 grad_ramp<rps_coord>{g8, 0, 0}
  725. d4m40u grad_off
  726. 40u eoscnp
  727. d0
  728. 1u grad_matrix.inc
  729. lo to slice times NSLICES
  730. 1u ipp1 grad_matrix.res
  731. lo to start times NA
  732. 1u rpp1 ACQ_spatial_phase_1.inc
  733. lo to start times l3
  734. 1u ACQ_spatial_phase_2.inc
  735. "l3=l0"
  736. lo to start times l1
  737. lo to start times NAE
  738. if (ACQ_scan_type != Scan_Experiment) \n{ \n goto start \n}
  739. ;EXEC_end FieldMap
  740. # 108 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  741. # 112 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FieldMap.ppg"
  742. exit
  743. ;============================================================
  744. ;phase lists
  745. ph0 = 0
  746. ph1 = 0 2 1 3
  747. ;============================================================