pulseprogram 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956
  1. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  2. ;==============================================================
  3. ;=
  4. ;= $Source$
  5. ;=
  6. ;= A multi gradient echo pulseprogram
  7. ;=
  8. ;= $Id$
  9. ;==============================================================
  10. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 1
  11. ;****************************************************************
  12. ;
  13. ; $Source$
  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/PV-7.0.0/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/PV-7.0.0/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/PV-7.0.0/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/PV-7.0.0/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/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  47. "rde1=de-de1"
  48. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  49. ; end of contents of De2.incl
  50. # 65 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  51. # 74 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  52. # 128 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  53. # 129 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  54. # 141 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  55. # 12 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg" 2
  56. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
  57. ;****************************************************************
  58. ;
  59. ; Copyright (c) 2003-2007
  60. ; Bruker BioSpin MRI GmbH
  61. ; D-76275 Ettlingen, Germany
  62. ;
  63. ; $Id$
  64. ;
  65. ; All Rights Reserved
  66. ;
  67. ; Declaration of pulseprogram parameters and subroutines for
  68. ; preparation modules
  69. ;
  70. ; Must be included after MRI.include!
  71. ;
  72. ;****************************************************************
  73. ;**** Fat Suppression ****
  74. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
  75. ;****************************************************************
  76. ;
  77. ; Copyright (c) 2018
  78. ; Bruker BioSpin MRI GmbH
  79. ; D-76275 Ettlingen, Germany
  80. ;
  81. ; $Id$
  82. ;
  83. ; All Rights Reserved
  84. ;
  85. ; FatSupDef.mod : Declaration of Fat Suppression Subroutine
  86. ;
  87. ;****************************************************************
  88. if (PVM_FatSupPerform == Yes)
  89. {
  90. define pulse fatSupPul = {$PVM_FatSupRfLength}
  91. define list<frequency> fatSupList = {$PVM_FatSupFL}
  92. define delay fatSupRamp = {$PVM_FatSupRampTime}
  93. define delay fatSupAmp = {$PVM_FatSupAmpEnable}
  94. define delay fatSupWait = {$PVM_FatSupGradWait}
  95. define delay fatSupSpoil = {$PVM_FatSupSpoilDur}
  96. ; convert from ms to s
  97. "fatSupRamp = fatSupRamp / 1000"
  98. "fatSupAmp = fatSupAmp / 1000"
  99. "fatSupWait = fatSupWait / 1000"
  100. "fatSupSpoil = fatSupSpoil / 1000"
  101. }
  102. subroutine FatSup
  103. # 20 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  104. ;**** Flow Saturation ****
  105. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1
  106. ;****************************************************************
  107. ;
  108. ; Copyright (c) 2018
  109. ; Bruker BioSpin MRI GmbH
  110. ; D-76275 Ettlingen, Germany
  111. ;
  112. ; $Id$
  113. ;
  114. ; All Rights Reserved
  115. ;
  116. ; FlowSatDef.mod: Declaration of subroutines for Flow Saturation
  117. ; call
  118. ; subr FlowSat()
  119. ; subr FlowSatInit()
  120. ; subr FlowSatInc()
  121. ;
  122. ;****************************************************************
  123. if(PVM_InFlowSatOnOff == 1)
  124. {
  125. define list<frequency> modlis4 = {$PVM_InFlowSatFL}
  126. define list<grad_scalar> flowSatGrad={$PVM_InFlowSatGrad}
  127. define delay SfD0 = {$PVM_SfD0}
  128. define delay SfD1 = {$PVM_SfD1}
  129. define delay SfD2 = {$PVM_SfD2}
  130. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod"
  131. define pulse SfP0 = {$PVM_SfP0}
  132. define loopcounter SfLp0 = {$PVM_SfLp0}
  133. }
  134. subroutine FlowSat
  135. subroutine FlowSatInc
  136. subroutine FlowSatInit
  137. # 24 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  138. ;**** Inversion Pulse ****
  139. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1
  140. ;****************************************************************
  141. ;
  142. ; Copyright (c) 2002-2007
  143. ; Bruker BioSpin MRI GmbH
  144. ; D-76275 Ettlingen, Germany
  145. ;
  146. ; $Id$
  147. ;
  148. ; All Rights Reserved
  149. ;
  150. ; InvPulseDef.mod : Declaration of Inversion Pulse subroutine
  151. ;
  152. ; call
  153. ; subr InvPulse()
  154. ;
  155. ;****************************************************************
  156. ;
  157. ; PVM_InvRFPulseArr :
  158. ;
  159. ; sp22 TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename
  160. ;
  161. ; PVM_IpP0 : PVM_InvRFPulseArr[0].PulseLength
  162. ;
  163. ; PVM_IpD2 : PVM_InvPulseDelay[0]
  164. ; PVM_IpD3 : PVM_InvPulseSpoilTime[0]
  165. ; PVM_IpD1 : CONFIG_amplifier _enable
  166. ; PVM_IpD0 : PVM_RampTime
  167. ;
  168. if(PVM_InvPulseOnOff == 1)
  169. {
  170. define list<frequency> modlis2= {$PVM_InvPulseOffsetHz}
  171. define delay IpD0 = {$PVM_IpD0}
  172. define delay IpD1 = {$PVM_IpD1}
  173. define delay IpD2 = {$PVM_IpD2}
  174. define delay IpD3 = {$PVM_IpD3}
  175. define pulse IpP0 = {$PVM_IpP0}
  176. }
  177. subroutine InvPulse
  178. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  179. ;**** Magnetisation Transfer ****
  180. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod" 1
  181. ;****************************************************************
  182. ; $Source$
  183. ;
  184. ; Copyright (c) 2005-2007
  185. ; Bruker BioSpin MRI GmbH
  186. ; D-76275 Ettlingen, Germany
  187. ;
  188. ; All Rights Reserved
  189. ;
  190. ; MagTransDef.mod: Declaration of subroutine for Magnetization
  191. ; transfer
  192. ; call
  193. ; subr MagTrans()
  194. ;
  195. ; $Id$
  196. ;****************************************************************
  197. ;**** Magnetisation Transfer Module ****
  198. if(PVM_MagTransOnOff)
  199. {
  200. define list<frequency> modlis3 = {$PVM_MagTransFL}
  201. define delay MtD0 = {$PVM_MtD0}
  202. define delay MtD1 = {$PVM_MtD1}
  203. define delay MtD2 = {$PVM_MtD2}
  204. define delay MtD3 = {$PVM_MtD3}
  205. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod"
  206. define pulse MtP0 = {$PVM_MtP0}
  207. define loopcounter MtLp0 = {$PVM_MtLp0}
  208. }
  209. subroutine MagTrans
  210. # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  211. ;**** Saturation Transfer ****
  212. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod" 1
  213. ;****************************************************************
  214. ; $Source$
  215. ;
  216. ; Copyright (c) 2018
  217. ; Bruker BioSpin MRI GmbH
  218. ; D-76275 Ettlingen, Germany
  219. ;
  220. ; All Rights Reserved
  221. ;
  222. ; SatTransDef.mod: Declaration of subroutine for Saturation transfer
  223. ; call
  224. ; subr SatTrans()
  225. ;
  226. ; $Id$
  227. ;****************************************************************
  228. ;**** Saturation Transfer Module ****
  229. ; PVM_SatTransFL: List of offset frequencies to be measured.
  230. ; PVM_SattransNPulses: Number of pulses used in one saturation event
  231. ; PVM_SattransPowerList: List of RF amplitudes for saturation pulses.
  232. ; Two elements long: first element: 0 Watt,
  233. ; used for one reference scan. Subsequent scans
  234. ; use amplitude as specified in UI.
  235. ; StReference: If PVM_SatTransRefScan is On then list StRfPower
  236. ; has two elements (1st is zero for reference scan)
  237. ; If RefScan is Off then lsit has only one element.
  238. ; Nevertheless we increment to avoid another 'if'
  239. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod"
  240. if(PVM_SatTransOnOff)
  241. {
  242. define list<frequency> modlis5 = {$PVM_SatTransFL}
  243. define list<power> StRfPower = {$PVM_SatTransPowerList}
  244. define delay StD0 = {$PVM_StD0}
  245. define delay StD1 = {$PVM_StD1}
  246. define delay StD2 = {$PVM_StD2}
  247. define delay StD3 = {$PVM_StD3}
  248. define pulse StP0 = {$PVM_StP0}
  249. define loopcounter StNPulses = {$PVM_SatTransNPulses}
  250. define loopcounter StReference
  251. "StReference = 1"
  252. }
  253. subroutine SatTransInit
  254. subroutine SatTransInc
  255. subroutine SatTrans
  256. # 36 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  257. ;**** Saturation Pulse ****
  258. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1
  259. ;****************************************************************
  260. ;
  261. ; Copyright (c) 2002-2003
  262. ; Bruker BioSpin MRI GmbH
  263. ; D-76275 Ettlingen, Germany
  264. ;
  265. ; $Id$
  266. ;
  267. ; All Rights Reserved
  268. ;
  269. ; SatPulseDef.mod : Declaration of Saturation Pulse subroutines
  270. ; call
  271. ; subr SatPulse()
  272. ;
  273. ;****************************************************************
  274. ;
  275. ; PVM_SatRFPulseArr :
  276. ;
  277. ; sp28 DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename
  278. ; sp29 DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename
  279. ; sp30 DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename
  280. ; sp31 DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename
  281. ;
  282. ; PVM_SpP0 : PVM_SatRFPulseArr[0].PulseLength
  283. ; PVM_SpP1 : PVM_SatRFPulseArr[1].PulseLength
  284. ; PVM_SpP2 : PVM_SatRFPulseArr[2].PulseLength
  285. ; PVM_SpP3 : PVM_SatRFPulseArr[3].PulseLength
  286. ;
  287. ; PVM_SpD2 : PVM_SatPulseDelay1[0]
  288. ; PVM_SpD6 : PVM_SatPulseSpoilTime[0]
  289. ; PVM_SpD10 : PVM_SatPulseDelay2[0]
  290. ; PVM_SpD3 : PVM_SatPulseSpoilTime[1]
  291. ; PVM_SpD7 : PVM_SatPulseDelay1[1]
  292. ; PVM_SpD11 : PVM_SatPulseDelay2[1]
  293. ; PVM_SpD4 : PVM_SatPulseDelay1[2]
  294. ; PVM_SpD8 : PVM_SatPulseSpoilTime[2]
  295. ; PVM_SpD12 : PVM_SatPulseDelay2[2]
  296. ; PVM_SpD5 : PVM_SatPulseDelay1[3]
  297. ; PVM_SpD9 : PVM_SatPulseSpoilTime[3]
  298. ; PVM_SpD13 : PVM_SatPulseDelay2[3]
  299. ;
  300. if(PVM_SatPulseOnOff == 1)
  301. {
  302. define list<frequency> modlis7 = {$PVM_SatPulseOffsetHz}
  303. define delay SpD0 = {$PVM_SpD0}
  304. define delay SpD1 = {$PVM_SpD1}
  305. define delay SpD2 = {$PVM_SpD2}
  306. define delay SpD3 = {$PVM_SpD3}
  307. define delay SpD4 = {$PVM_SpD4}
  308. define delay SpD5 = {$PVM_SpD5}
  309. define delay SpD6 = {$PVM_SpD6}
  310. define delay SpD7 = {$PVM_SpD7}
  311. define delay SpD8 = {$PVM_SpD8}
  312. define delay SpD9 = {$PVM_SpD9}
  313. define delay SpD10 = {$PVM_SpD10}
  314. define delay SpD11 = {$PVM_SpD11}
  315. define delay SpD12 = {$PVM_SpD12}
  316. define delay SpD13 = {$PVM_SpD13}
  317. define pulse SpP0 = {$PVM_SpP0}
  318. define pulse SpP1 = {$PVM_SpP1}
  319. define pulse SpP2 = {$PVM_SpP2}
  320. define pulse SpP3 = {$PVM_SpP3}
  321. # 66 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod"
  322. }
  323. subroutine SatPulse
  324. # 40 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  325. ;*** FOV Saturation ***
  326. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" 1
  327. ;****************************************************************
  328. ;
  329. ; Copyright (c) 2018
  330. ; Bruker BioSpin MRI GmbH
  331. ; D-76275 Ettlingen, Germany
  332. ;
  333. ; $Id$
  334. ;
  335. ; All Rights Reserved
  336. ;
  337. ; FovSat.mod : Declaration of FOV Saturation subroutine
  338. ; call: subr FovSat()
  339. ;
  340. ;****************************************************************
  341. if (PVM_FovSatOnOff == On)
  342. {
  343. define pulse fovSatPul = {$PVM_FovSatRfLength}
  344. define list<frequency> fovSatList = {$PVM_FovSatFL}
  345. define delay fovSatRamp = {$PVM_FovSatRampTime}
  346. define delay fovSatAmp = {$PVM_FovSatAmpEnable}
  347. define delay fovSatWait = {$PVM_FovSatGradWait}
  348. define delay fovSatSpoil = {$PVM_FovSatSpoilDur}
  349. # 27 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  350. ; convert from ms to s
  351. "fovSatRamp = fovSatRamp / 1000"
  352. "fovSatAmp = fovSatAmp / 1000"
  353. "fovSatWait = fovSatWait / 1000"
  354. "fovSatSpoil = fovSatSpoil / 1000"
  355. }
  356. subroutine FovSat
  357. # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  358. ; backwards compatibility
  359. subroutine SatSlices
  360. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  361. ;**** Black Blood ****
  362. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1
  363. ;****************************************************************
  364. ;
  365. ; Copyright (c) 2007
  366. ; Bruker BioSpin MRI GmbH
  367. ; D-76275 Ettlingen, Germany
  368. ;
  369. ; $Id$
  370. ;
  371. ; All Rights Reserved
  372. ;
  373. ; BlBloodDef.mod : Declaration of Black blood subroutine
  374. ;
  375. ; call
  376. ; subr BlBlood(ph0) : Black blood preparation with RF phaselist
  377. ; ph0
  378. ;
  379. ;****************************************************************
  380. if(PVM_BlBloodOnOff)
  381. {
  382. define list<frequency> modlis8 = {$PVM_BlBloodFL}
  383. define delay BlbD0 = {$PVM_BlbD0}
  384. define delay BlbD1 = {$PVM_BlbD1}
  385. define delay BlbD2 = {$PVM_BlbD2}
  386. define delay BlbD3 = {$PVM_BlbD3}
  387. define pulse BlbP0 = {$PVM_BlbP0}
  388. }
  389. subroutine BlBlood
  390. # 48 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  391. ;**** Trigger ****
  392. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" 1
  393. ;****************************************************************
  394. ;
  395. ; Copyright (c) 1998-2003
  396. ; Bruker BioSpin MRI GmbH
  397. ; D-76275 Ettlingen, Germany
  398. ;
  399. ; All Rights Reserved
  400. ;
  401. ; TriggerDef.mod - Trigger Module
  402. ;
  403. ;****************************************************************
  404. if (PVM_TriggerModule == On)
  405. {
  406. define delay trigDur = {$PVM_TriggerDur}
  407. define delay trigDel = {$PVM_TriggerDelay}
  408. ; convert from ms to s
  409. "trigDur = trigDur / 1000"
  410. "trigDel = trigDel / 1000"
  411. }
  412. subroutine Trigger
  413. subroutine TriggerPhase
  414. subroutine TriggerSlice
  415. # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  416. ;**** Trigger Out ****
  417. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerOutDef.mod" 1
  418. ;****************************************************************
  419. ;
  420. ; Copyright (c) 2003
  421. ; Bruker BioSpin MRI GmbH
  422. ; D-76275 Ettlingen, Germany
  423. ;
  424. ; All Rights Reserved
  425. ; $Id$
  426. ;****************************************************************
  427. if (PVM_TriggerOutOnOff == On)
  428. {
  429. define delay trigOutDur = {$PVM_TriggerOutDur}
  430. define delay trigOutDel = {$PVM_TriggerOutDelay}
  431. ; convert from ms to s
  432. "trigOutDur = trigOutDur / 1000"
  433. "trigOutDel = trigOutDel / 1000"
  434. }
  435. subroutine TriggerOut
  436. subroutine TriggerOutStart
  437. subroutine TriggerOutSlice
  438. subroutine TriggerOutVolume
  439. # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  440. ;**** Outer Volume Suppression ****
  441. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1
  442. ;****************************************************************
  443. ;
  444. ; Copyright (c) 2005-2007
  445. ; Bruker BioSpin MRI GmbH
  446. ; D-76275 Ettlingen, Germany
  447. ;
  448. ; $Id$
  449. ;
  450. ; All Rights Reserved
  451. ;
  452. ; WsOvsDef.mod: Declaration of water suppression and Outer
  453. ; volume suppression subroutines
  454. ;
  455. ; call
  456. ; subr Ovs(ph0) ; execution of OVS with ph0 phaselist
  457. ;
  458. ; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1
  459. ; phaselist
  460. ;****************************************************************
  461. ;**** OuterVolumeSuppression ****
  462. if(PVM_OvsOnOff == 1)
  463. {
  464. define list<frequency> Ovslist={$PVM_OvsFrequencyList}
  465. define delay OvsD0 = {$PVM_OvsD0}
  466. define delay OvsD1 = {$PVM_OvsD1}
  467. define pulse OvsP0 = {$PVM_OvsP0}
  468. }
  469. subroutine Ovs
  470. # 62 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  471. ;*** WaterSuppression Module with OVS ****
  472. if (PVM_WsMode)
  473. {
  474. define list<frequency> Wslist={$PVM_WsOffsetHz}
  475. define pulse WsP0 = {$PVM_WsP0}
  476. define pulse WsP1 = {$PVM_WsP1}
  477. define pulse WsP2 = {$PVM_WsP2}
  478. define delay WsNp0
  479. "WsNp0 = WsP0"
  480. define delay WsNp1
  481. "WsNp1 = WsP1"
  482. define delay WsNp2
  483. "WsNp2 = WsP2"
  484. define list<delay> ChD1={$PVM_ChppgD1}
  485. define list<delay> ChD2={$PVM_ChppgD2}
  486. define list<delay> VpD1={$PVM_VpppgD1}
  487. define list<delay> VpD2={$PVM_VpppgD2}
  488. # 82 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  489. }
  490. subroutine WsOvsMain
  491. subroutine WsOvs
  492. subroutine Ws
  493. # 60 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  494. ;**** Solvent Suppression module ****
  495. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsSatDef.mod" 1
  496. ;******************************************************************
  497. ;
  498. ; Copyright (c) 2002-2007
  499. ; Bruker BioSpin MRI GmbH
  500. ; D-76275 Ettlingen, Germany
  501. ;
  502. ; $Id$
  503. ;
  504. ; All Rights Reserved
  505. ;
  506. ; WsSatDef.mod - Declaration of water suppression and FOV saturation
  507. ; subroutines
  508. ; call
  509. ; subr WsSat(ph0) : execution of WS with ph0 phaselist and
  510. ; FOV saturation (as passed as argument)
  511. ;
  512. ;*******************************************************************
  513. ; Definitions for WsPpgParams are included in WsOvsDef.mod
  514. subroutine WsSatMain
  515. subroutine WsSat
  516. # 64 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  517. ;**** Selective Inversion Recovery ****
  518. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1
  519. ;****************************************************************
  520. ;
  521. ; Copyright (c) 2018
  522. ; Bruker BioSpin MRI GmbH
  523. ; D-76275 Ettlingen, Germany
  524. ;
  525. ; $Id$
  526. ;
  527. ; All Rights Reserved
  528. ;
  529. ; SlicelSelIr.mod : declaration of slice Selective Inversion
  530. ; Recovery subroutine
  531. ; call SliceSelIr()
  532. ;
  533. ;
  534. ;****************************************************************
  535. if(PVM_SelIrOnOff)
  536. {
  537. define list<frequency> IrFL = {$PVM_SelIrFL}
  538. define delay IrD0 = {$PVM_SelIrD0} ; PVM_InterInvDelay
  539. define delay IrD1 = {$PVM_SelIrD1} ; PVM_InterInvEndDelay[0]
  540. define delay IrD2 = {$PVM_SelIrD2} ; Spoiler duration
  541. define delay IrD3 = {$PVM_SelIrD3} ; Gatepulse duration
  542. define delay IrD4 = {$PVM_SelIrD4} ; risetime
  543. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
  544. define pulse IrP0 = {$PVM_SelIrP0}
  545. define loopcounter IrL0 = {$PVM_SelIrL0}
  546. define loopcounter IrL1
  547. }
  548. subroutine SliceSelIr
  549. # 68 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  550. ;**** Tagging ****
  551. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod" 1
  552. ;****************************************************************
  553. ;
  554. ; Copyright (c) 2018
  555. ; Bruker BioSpin MRI GmbH
  556. ; D-76275 Ettlingen, Germany
  557. ;
  558. ; $Id$
  559. ;
  560. ; All Rights Reserved
  561. ;
  562. ; TagDef.mod : Declaration of tagging subroutine
  563. ; call
  564. ; subr Tagging()
  565. ;
  566. ;****************************************************************
  567. if(PVM_TaggingOnOff)
  568. {
  569. define list<frequency> taggfreq={$PVM_TaggingFL}
  570. define delay TaggD0 = {$PVM_TaggingD0}
  571. define delay TaggD1 = {$PVM_TaggingD1}
  572. define delay TaggD2 = {$PVM_TaggingD2}
  573. define delay TaggD3 = {$PVM_TaggingD3}
  574. define delay TaggD4 = {$PVM_TaggingD4}
  575. define delay TaggD5 = {$PVM_TaggingD5}
  576. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod"
  577. define pulse TaggP0 = {$PVM_TaggingP0}
  578. define loopcounter TaggL0 = {$PVM_TaggingLp0}
  579. }
  580. subroutine Tagging
  581. # 72 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  582. ;**** Noe ****
  583. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/NoeDef.mod" 1
  584. ;****************************************************************
  585. ;
  586. ; Copyright (c) 2007
  587. ; Bruker BioSpin MRI GmbH
  588. ; D-76275 Ettlingen, Germany
  589. ;
  590. ; $Id$
  591. ;
  592. ; All Rights Reserved
  593. ;
  594. ; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement
  595. ; subroutine
  596. ; call
  597. ; subr Noe()
  598. ;
  599. ;****************************************************************
  600. if(PVM_NoeOnOff == On)
  601. {
  602. define delay NoeD0 = {$PVM_NoeD0}
  603. define delay NoeD1 = {$PVM_NoeD1}
  604. }
  605. subroutine Noe
  606. # 76 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  607. ;**** Evolution ****
  608. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/EvolutionDef.mod" 1
  609. ;****************************************************************
  610. ;
  611. ; Copyright (c) 1998-2003
  612. ; Bruker BioSpin MRI GmbH
  613. ; D-76275 Ettlingen, Germany
  614. ;
  615. ; All Rights Reserved
  616. ;
  617. ; EvolutionDef.mod - Evolution Module
  618. ;
  619. ;****************************************************************
  620. if (PVM_EvolutionOnOff == On)
  621. {
  622. define delay evolDel = {$PVM_EvolutionDelay}
  623. define list<delay> evolTime = {$PVM_EvolutionTime}
  624. }
  625. subroutine Evolution
  626. # 80 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  627. ;**** Drift Compensation ****
  628. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DriftComp.mod" 1
  629. ;==========================================================
  630. ; subroutine for drift compensation
  631. ;==========================================================
  632. if (PVM_DriftCompNavOnOff == On)
  633. {
  634. define list<frequency> txfq = {$PVM_DriftCompNavTxFrq}
  635. define list<frequency> rxfq = {$PVM_DriftCompNavRxFrq}
  636. define pulse DCP0 = {$PVM_DriftCompNavP0}
  637. define delay DCD0 = {$PVM_DriftCompNavD0}
  638. define delay DCD1 = {$PVM_DriftCompNavD1}
  639. define delay DCD2 = {$PVM_DriftCompNavD2}
  640. define delay DCD3 = {$PVM_DriftCompNavD3}
  641. define delay DCD4 = {$PVM_DriftCompNavD4}
  642. define delay DCD5 = {$PVM_DriftCompNavD5}
  643. define delay DCD6
  644. "DCD6 = 10u - de"
  645. define list<phase> dcph = { 0 }
  646. }
  647. subroutine DriftComp
  648. # 84 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  649. # 13 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg" 2
  650. # 15 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  651. preset off
  652. ;===========================================================
  653. ; definition of delays
  654. ;===========================================================
  655. define delay denab
  656. "denab = d24 - de"
  657. define delay d4m40u
  658. "d4m40u = d4 - 40u"
  659. # 26 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  660. define delay d5m10u
  661. "d5m10u = d5 - 10u"
  662. "l3 = l0 + ds"
  663. # 35 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  664. grad_zero_for_gs <ACQ_spatial_phase_1, ACQ_spatial_phase_2>
  665. subroutine FieldMap
  666. # 92 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  667. ;===========================================================
  668. ; declaration of 2d and 3d loop
  669. ;===========================================================
  670. 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 }
  671. dsl, ACQ_spatial_phase_1.dec
  672. lo to dsl times DS
  673. # 101 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  674. start,
  675. subr TriggerPhase
  676. ;EXEC_begin TriggerPhase TriggerPhase()
  677. # 37 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  678. if (PVM_TriggerMode == per_PhaseStep)
  679. {
  680. ;EXEC_begin Trigger Trigger()
  681. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  682. if (PVM_TriggerModule == On)
  683. {
  684. trigDur setnmr3|6
  685. trigDur trignl1
  686. trigDur trigpe3
  687. trigDur setnmr3^6
  688. trigDel
  689. }
  690. ;EXEC_end Trigger
  691. }
  692. ;EXEC_end TriggerPhase
  693. # 102 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  694. slice,
  695. subr TriggerSlice
  696. ;EXEC_begin TriggerSlice TriggerSlice()
  697. # 45 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  698. if (PVM_TriggerMode == per_Slice)
  699. {
  700. ;EXEC_begin Trigger Trigger()
  701. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  702. if (PVM_TriggerModule == On)
  703. {
  704. trigDur setnmr3|6
  705. trigDur trignl1
  706. trigDur trigpe3
  707. trigDur setnmr3^6
  708. trigDel
  709. }
  710. ;EXEC_end Trigger
  711. }
  712. ;EXEC_end TriggerSlice
  713. # 104 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  714. subr FovSat
  715. ;EXEC_begin FovSat FovSat()
  716. # 34 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  717. if (PVM_FovSatOnOff == On)
  718. {
  719. 5u PVM_FovSatGrad.res
  720. 5u fovSatList.res
  721. fov19, fovSatRamp grad_ramp<magnet_coord>{PVM_FovSatGrad[]}
  722. 10u fovSatList:f1
  723. fovSatAmp gatepulse 1
  724. (fovSatPul :sp41):f1
  725. fovSatSpoil grad_ramp{0, 0, PVM_FovSatSpoilAmp}
  726. 0u fovSatList.inc
  727. 0u PVM_FovSatGrad.inc
  728. lo to fov19 times PVM_FovSatNSlices
  729. fovSatRamp grad_off
  730. fovSatWait
  731. }
  732. ;EXEC_end FovSat
  733. # 105 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  734. subr FatSup
  735. ;EXEC_begin FatSup FatSup()
  736. # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod"
  737. if (PVM_FatSupPerform == Yes)
  738. {
  739. 10u fatSupList:f1
  740. fatSupAmp gatepulse 1
  741. (fatSupPul :sp40):f1
  742. fatSupSpoil grad_ramp{0, 0, PVM_FatSupSpoilAmp}
  743. fatSupRamp grad_off
  744. fatSupWait
  745. }
  746. ;EXEC_end FatSup
  747. # 106 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  748. subr FieldMap
  749. ;EXEC_begin FieldMap FieldMap(any rps_coord)
  750. # 38 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  751. d1 fq1:f1 grad_ramp<rps_coord>{0, 0, g0}
  752. d2 gatepulse 1
  753. (p0:sp0 ph1):f1
  754. d3 grad_ramp<rps_coord>{g2, ACQ_spatial_phase_1*g3, g1+ACQ_spatial_phase_2*g4}
  755. d5m10u fq2:f1 grad_off
  756. 10u
  757. if(PVM_NEchoImages >1)
  758. {
  759. echo20, 10u fq8(receive):f1
  760. denab grad_ramp<rps_coord>{g5, 0, 0}
  761. rdepa \n deparx adc ph1 syrec fqatofqb:f1 \n derxadc ph0:r \n deadc
  762. aqq cpdngs17:f1
  763. d7 groff
  764. d8 grad_ramp<rps_coord>{g9, 0, 0}
  765. d4m40u grad_off
  766. 40u eoscnp
  767. d9
  768. lo to echo20 times l8
  769. }
  770. 10u fq8(receive):f1
  771. denab grad_ramp<rps_coord>{g5, 0, 0}
  772. rdepa \n deparx adc ph1 syrec fqatofqb:f1 \n derxadc ph0:r \n deadc
  773. aqq cpdngs17:f1
  774. d3 grad_ramp<rps_coord>{g8, ACQ_spatial_phase_1*g6, ACQ_spatial_phase_2*g7}
  775. d6 grad_ramp<rps_coord>{g8, 0, 0}
  776. d4m40u grad_off
  777. 40u eoscnp
  778. d0
  779. 0u grad_matrix.inc
  780. lo to slice times NSLICES
  781. 0u ipp1
  782. 0u grad_matrix.res
  783. lo to start times NA
  784. 0u rpp1
  785. 0u ACQ_spatial_phase_1.inc
  786. lo to start times l3
  787. 0u ACQ_spatial_phase_2.inc
  788. "l3=l0"
  789. lo to start times l1
  790. lo to start times NAE
  791. if (ACQ_scan_type != Scan_Experiment) \n{ \n goto start \n}
  792. ;EXEC_end FieldMap
  793. # 107 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  794. exit
  795. ;============================================================
  796. ;phase lists
  797. # 114 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FieldMap.ppg"
  798. ph0 = 0
  799. ph1 = 0 2 1 3
  800. ;============================================================