pulseprogram 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659
  1. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  2. ;****************************************************************
  3. ;
  4. ; Copyright (c) 2001-2007
  5. ; Bruker BioSpin MRI GmbH
  6. ; D-76275 Ettlingen, Germany
  7. ;
  8. ; All Rights Reserved
  9. ;
  10. ; $Id$
  11. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 1
  12. ;****************************************************************
  13. ;
  14. ; $Source$
  15. ;
  16. ; Copyright (c) 2006
  17. ; Bruker BioSpin MRI GmbH
  18. ; D-76275 Ettlingen, Germany
  19. ;
  20. ; All Rights Reserved
  21. ;
  22. ;;****************************************************************
  23. ;MRI.include
  24. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Avance.incl" 1
  25. ;Avance3.incl
  26. ; for AV III
  27. ;
  28. ;avance-version (13/06/17)
  29. ;
  30. ;$CLASS=HighRes Incl
  31. ;$COMMENT=
  32. # 169 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Avance.incl"
  33. ;$Id: Avance3.incl,v 1.9.6.1 2013/06/17 15:32:55 pfre Exp $
  34. # 14 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 2
  35. define delay aqq
  36. define delay deparx
  37. define delay derxadc
  38. define delay rdepa
  39. # 21 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  40. "aqq=dw*td"
  41. "rdepa=de-depa"
  42. "deparx=depa-derx"
  43. "derxadc=derx-deadc"
  44. ; contents of De2.incl - usage for different hardware versions to
  45. ; be checked - intermediate solution to support Jobs
  46. define delay rde1
  47. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  48. "rde1=de-de1"
  49. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  50. ; end of contents of De2.incl
  51. # 65 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  52. # 74 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  53. # 128 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  54. # 129 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  55. # 141 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include"
  56. # 11 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2
  57. preset off
  58. # 15 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  59. ;counter of dummy scans (not acquired; DS set to 0)
  60. define loopcounter lcDs
  61. "lcDs = l1"
  62. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
  63. ;****************************************************************
  64. ;
  65. ; Copyright (c) 2003-2007
  66. ; Bruker BioSpin MRI GmbH
  67. ; D-76275 Ettlingen, Germany
  68. ;
  69. ; $Id$
  70. ;
  71. ; All Rights Reserved
  72. ;
  73. ; Declaration of pulseprogram parameters and subroutines for
  74. ; preparation modules
  75. ;
  76. ; Must be included after MRI.include!
  77. ;
  78. ;****************************************************************
  79. ;**** Fat Suppression ****
  80. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
  81. ;****************************************************************
  82. ;
  83. ; Copyright (c) 2018
  84. ; Bruker BioSpin MRI GmbH
  85. ; D-76275 Ettlingen, Germany
  86. ;
  87. ; $Id$
  88. ;
  89. ; All Rights Reserved
  90. ;
  91. ; FatSupDef.mod : Declaration of Fat Suppression Subroutine
  92. ;
  93. ;****************************************************************
  94. # 15 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod"
  95. if (PVM_FatSupPerform == Yes)
  96. {
  97. define pulse fatSupPul = {$PVM_FatSupRfLength}
  98. define list<frequency> fatSupList = {$PVM_FatSupFL}
  99. define delay fatSupRamp = {$PVM_FatSupRampTime}
  100. define delay fatSupAmp = {$PVM_FatSupAmpEnable}
  101. define delay fatSupWait = {$PVM_FatSupGradWait}
  102. define delay fatSupSpoil = {$PVM_FatSupSpoilDur}
  103. ; convert from ms to s
  104. "fatSupRamp = fatSupRamp / 1000"
  105. "fatSupAmp = fatSupAmp / 1000"
  106. "fatSupWait = fatSupWait / 1000"
  107. "fatSupSpoil = fatSupSpoil / 1000"
  108. }
  109. subroutine FatSup
  110. # 20 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  111. ;**** Flow Saturation ****
  112. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1
  113. ;****************************************************************
  114. ;
  115. ; Copyright (c) 2018
  116. ; Bruker BioSpin MRI GmbH
  117. ; D-76275 Ettlingen, Germany
  118. ;
  119. ; $Id$
  120. ;
  121. ; All Rights Reserved
  122. ;
  123. ; FlowSatDef.mod: Declaration of subroutines for Flow Saturation
  124. ; call
  125. ; subr FlowSat()
  126. ; subr FlowSatInit()
  127. ; subr FlowSatInc()
  128. ;
  129. ;****************************************************************
  130. if(PVM_InFlowSatOnOff == 1)
  131. {
  132. define list<frequency> modlis4 = {$PVM_InFlowSatFL}
  133. define list<grad_scalar> flowSatGrad={$PVM_InFlowSatGrad}
  134. define delay SfD0 = {$PVM_SfD0}
  135. define delay SfD1 = {$PVM_SfD1}
  136. define delay SfD2 = {$PVM_SfD2}
  137. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod"
  138. define pulse SfP0 = {$PVM_SfP0}
  139. define loopcounter SfLp0 = {$PVM_SfLp0}
  140. }
  141. subroutine FlowSat
  142. subroutine FlowSatInc
  143. subroutine FlowSatInit
  144. # 24 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  145. ;**** Inversion Pulse ****
  146. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1
  147. ;****************************************************************
  148. ;
  149. ; Copyright (c) 2002-2007
  150. ; Bruker BioSpin MRI GmbH
  151. ; D-76275 Ettlingen, Germany
  152. ;
  153. ; $Id$
  154. ;
  155. ; All Rights Reserved
  156. ;
  157. ; InvPulseDef.mod : Declaration of Inversion Pulse subroutine
  158. ;
  159. ; call
  160. ; subr InvPulse()
  161. ;
  162. ;****************************************************************
  163. ;
  164. ; PVM_InvRFPulseArr :
  165. ;
  166. ; sp22 TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename
  167. ;
  168. ; PVM_IpP0 : PVM_InvRFPulseArr[0].PulseLength
  169. ;
  170. ; PVM_IpD2 : PVM_InvPulseDelay[0]
  171. ; PVM_IpD3 : PVM_InvPulseSpoilTime[0]
  172. ; PVM_IpD1 : CONFIG_amplifier _enable
  173. ; PVM_IpD0 : PVM_RampTime
  174. ;
  175. if(PVM_InvPulseOnOff == 1)
  176. {
  177. define list<frequency> modlis2= {$PVM_InvPulseOffsetHz}
  178. define delay IpD0 = {$PVM_IpD0}
  179. define delay IpD1 = {$PVM_IpD1}
  180. define delay IpD2 = {$PVM_IpD2}
  181. define delay IpD3 = {$PVM_IpD3}
  182. define pulse IpP0 = {$PVM_IpP0}
  183. }
  184. subroutine InvPulse
  185. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  186. ;**** Magnetisation Transfer ****
  187. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod" 1
  188. ;****************************************************************
  189. ; $Source$
  190. ;
  191. ; Copyright (c) 2005-2007
  192. ; Bruker BioSpin MRI GmbH
  193. ; D-76275 Ettlingen, Germany
  194. ;
  195. ; All Rights Reserved
  196. ;
  197. ; MagTransDef.mod: Declaration of subroutine for Magnetization
  198. ; transfer
  199. ; call
  200. ; subr MagTrans()
  201. ;
  202. ; $Id$
  203. ;****************************************************************
  204. ;**** Magnetisation Transfer Module ****
  205. if(PVM_MagTransOnOff)
  206. {
  207. define list<frequency> modlis3 = {$PVM_MagTransFL}
  208. define delay MtD0 = {$PVM_MtD0}
  209. define delay MtD1 = {$PVM_MtD1}
  210. define delay MtD2 = {$PVM_MtD2}
  211. define delay MtD3 = {$PVM_MtD3}
  212. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod"
  213. define pulse MtP0 = {$PVM_MtP0}
  214. define loopcounter MtLp0 = {$PVM_MtLp0}
  215. }
  216. subroutine MagTrans
  217. # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  218. ;**** Saturation Transfer ****
  219. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod" 1
  220. ;****************************************************************
  221. ; $Source$
  222. ;
  223. ; Copyright (c) 2018
  224. ; Bruker BioSpin MRI GmbH
  225. ; D-76275 Ettlingen, Germany
  226. ;
  227. ; All Rights Reserved
  228. ;
  229. ; SatTransDef.mod: Declaration of subroutine for Saturation transfer
  230. ; call
  231. ; subr SatTrans()
  232. ;
  233. ; $Id$
  234. ;****************************************************************
  235. ;**** Saturation Transfer Module ****
  236. ; PVM_SatTransFL: List of offset frequencies to be measured.
  237. ; PVM_SattransNPulses: Number of pulses used in one saturation event
  238. ; PVM_SattransPowerList: List of RF amplitudes for saturation pulses.
  239. ; Two elements long: first element: 0 Watt,
  240. ; used for one reference scan. Subsequent scans
  241. ; use amplitude as specified in UI.
  242. ; StReference: If PVM_SatTransRefScan is On then list StRfPower
  243. ; has two elements (1st is zero for reference scan)
  244. ; If RefScan is Off then lsit has only one element.
  245. ; Nevertheless we increment to avoid another 'if'
  246. # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod"
  247. if(PVM_SatTransOnOff)
  248. {
  249. define list<frequency> modlis5 = {$PVM_SatTransFL}
  250. define list<power> StRfPower = {$PVM_SatTransPowerList}
  251. define delay StD0 = {$PVM_StD0}
  252. define delay StD1 = {$PVM_StD1}
  253. define delay StD2 = {$PVM_StD2}
  254. define delay StD3 = {$PVM_StD3}
  255. define pulse StP0 = {$PVM_StP0}
  256. define loopcounter StNPulses = {$PVM_SatTransNPulses}
  257. define loopcounter StReference
  258. "StReference = 1"
  259. }
  260. subroutine SatTransInit
  261. subroutine SatTransInc
  262. subroutine SatTrans
  263. # 36 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  264. ;**** Saturation Pulse ****
  265. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1
  266. ;****************************************************************
  267. ;
  268. ; Copyright (c) 2002-2003
  269. ; Bruker BioSpin MRI GmbH
  270. ; D-76275 Ettlingen, Germany
  271. ;
  272. ; $Id$
  273. ;
  274. ; All Rights Reserved
  275. ;
  276. ; SatPulseDef.mod : Declaration of Saturation Pulse subroutines
  277. ; call
  278. ; subr SatPulse()
  279. ;
  280. ;****************************************************************
  281. ;
  282. ; PVM_SatRFPulseArr :
  283. ;
  284. ; sp28 DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename
  285. ; sp29 DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename
  286. ; sp30 DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename
  287. ; sp31 DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename
  288. ;
  289. ; PVM_SpP0 : PVM_SatRFPulseArr[0].PulseLength
  290. ; PVM_SpP1 : PVM_SatRFPulseArr[1].PulseLength
  291. ; PVM_SpP2 : PVM_SatRFPulseArr[2].PulseLength
  292. ; PVM_SpP3 : PVM_SatRFPulseArr[3].PulseLength
  293. ;
  294. ; PVM_SpD2 : PVM_SatPulseDelay1[0]
  295. ; PVM_SpD6 : PVM_SatPulseSpoilTime[0]
  296. ; PVM_SpD10 : PVM_SatPulseDelay2[0]
  297. ; PVM_SpD3 : PVM_SatPulseSpoilTime[1]
  298. ; PVM_SpD7 : PVM_SatPulseDelay1[1]
  299. ; PVM_SpD11 : PVM_SatPulseDelay2[1]
  300. ; PVM_SpD4 : PVM_SatPulseDelay1[2]
  301. ; PVM_SpD8 : PVM_SatPulseSpoilTime[2]
  302. ; PVM_SpD12 : PVM_SatPulseDelay2[2]
  303. ; PVM_SpD5 : PVM_SatPulseDelay1[3]
  304. ; PVM_SpD9 : PVM_SatPulseSpoilTime[3]
  305. ; PVM_SpD13 : PVM_SatPulseDelay2[3]
  306. ;
  307. if(PVM_SatPulseOnOff == 1)
  308. {
  309. define list<frequency> modlis7 = {$PVM_SatPulseOffsetHz}
  310. define delay SpD0 = {$PVM_SpD0}
  311. define delay SpD1 = {$PVM_SpD1}
  312. define delay SpD2 = {$PVM_SpD2}
  313. define delay SpD3 = {$PVM_SpD3}
  314. define delay SpD4 = {$PVM_SpD4}
  315. define delay SpD5 = {$PVM_SpD5}
  316. define delay SpD6 = {$PVM_SpD6}
  317. define delay SpD7 = {$PVM_SpD7}
  318. define delay SpD8 = {$PVM_SpD8}
  319. define delay SpD9 = {$PVM_SpD9}
  320. define delay SpD10 = {$PVM_SpD10}
  321. define delay SpD11 = {$PVM_SpD11}
  322. define delay SpD12 = {$PVM_SpD12}
  323. define delay SpD13 = {$PVM_SpD13}
  324. define pulse SpP0 = {$PVM_SpP0}
  325. define pulse SpP1 = {$PVM_SpP1}
  326. define pulse SpP2 = {$PVM_SpP2}
  327. define pulse SpP3 = {$PVM_SpP3}
  328. # 66 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod"
  329. }
  330. subroutine SatPulse
  331. # 40 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  332. ;*** FOV Saturation ***
  333. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" 1
  334. ;****************************************************************
  335. ;
  336. ; Copyright (c) 2018
  337. ; Bruker BioSpin MRI GmbH
  338. ; D-76275 Ettlingen, Germany
  339. ;
  340. ; $Id$
  341. ;
  342. ; All Rights Reserved
  343. ;
  344. ; FovSat.mod : Declaration of FOV Saturation subroutine
  345. ; call: subr FovSat()
  346. ;
  347. ;****************************************************************
  348. if (PVM_FovSatOnOff == On)
  349. {
  350. define pulse fovSatPul = {$PVM_FovSatRfLength}
  351. define list<frequency> fovSatList = {$PVM_FovSatFL}
  352. define delay fovSatRamp = {$PVM_FovSatRampTime}
  353. define delay fovSatAmp = {$PVM_FovSatAmpEnable}
  354. define delay fovSatWait = {$PVM_FovSatGradWait}
  355. define delay fovSatSpoil = {$PVM_FovSatSpoilDur}
  356. # 27 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  357. ; convert from ms to s
  358. "fovSatRamp = fovSatRamp / 1000"
  359. "fovSatAmp = fovSatAmp / 1000"
  360. "fovSatWait = fovSatWait / 1000"
  361. "fovSatSpoil = fovSatSpoil / 1000"
  362. }
  363. subroutine FovSat
  364. # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  365. ; backwards compatibility
  366. subroutine SatSlices
  367. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  368. ;**** Black Blood ****
  369. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1
  370. ;****************************************************************
  371. ;
  372. ; Copyright (c) 2007
  373. ; Bruker BioSpin MRI GmbH
  374. ; D-76275 Ettlingen, Germany
  375. ;
  376. ; $Id$
  377. ;
  378. ; All Rights Reserved
  379. ;
  380. ; BlBloodDef.mod : Declaration of Black blood subroutine
  381. ;
  382. ; call
  383. ; subr BlBlood(ph0) : Black blood preparation with RF phaselist
  384. ; ph0
  385. ;
  386. ;****************************************************************
  387. if(PVM_BlBloodOnOff)
  388. {
  389. define list<frequency> modlis8 = {$PVM_BlBloodFL}
  390. define delay BlbD0 = {$PVM_BlbD0}
  391. define delay BlbD1 = {$PVM_BlbD1}
  392. define delay BlbD2 = {$PVM_BlbD2}
  393. define delay BlbD3 = {$PVM_BlbD3}
  394. define pulse BlbP0 = {$PVM_BlbP0}
  395. }
  396. subroutine BlBlood
  397. # 48 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  398. ;**** Trigger ****
  399. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" 1
  400. ;****************************************************************
  401. ;
  402. ; Copyright (c) 1998-2003
  403. ; Bruker BioSpin MRI GmbH
  404. ; D-76275 Ettlingen, Germany
  405. ;
  406. ; All Rights Reserved
  407. ;
  408. ; TriggerDef.mod - Trigger Module
  409. ;
  410. ;****************************************************************
  411. if (PVM_TriggerModule == On)
  412. {
  413. define delay trigDur = {$PVM_TriggerDur}
  414. define delay trigDel = {$PVM_TriggerDelay}
  415. ; convert from ms to s
  416. "trigDur = trigDur / 1000"
  417. "trigDel = trigDel / 1000"
  418. }
  419. subroutine Trigger
  420. subroutine TriggerPhase
  421. subroutine TriggerSlice
  422. # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  423. ;**** Trigger Out ****
  424. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerOutDef.mod" 1
  425. ;****************************************************************
  426. ;
  427. ; Copyright (c) 2003
  428. ; Bruker BioSpin MRI GmbH
  429. ; D-76275 Ettlingen, Germany
  430. ;
  431. ; All Rights Reserved
  432. ; $Id$
  433. ;****************************************************************
  434. if (PVM_TriggerOutOnOff == On)
  435. {
  436. define delay trigOutDur = {$PVM_TriggerOutDur}
  437. define delay trigOutDel = {$PVM_TriggerOutDelay}
  438. ; convert from ms to s
  439. "trigOutDur = trigOutDur / 1000"
  440. "trigOutDel = trigOutDel / 1000"
  441. }
  442. subroutine TriggerOut
  443. subroutine TriggerOutStart
  444. subroutine TriggerOutSlice
  445. subroutine TriggerOutVolume
  446. # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  447. ;**** Outer Volume Suppression ****
  448. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1
  449. ;****************************************************************
  450. ;
  451. ; Copyright (c) 2005-2007
  452. ; Bruker BioSpin MRI GmbH
  453. ; D-76275 Ettlingen, Germany
  454. ;
  455. ; $Id$
  456. ;
  457. ; All Rights Reserved
  458. ;
  459. ; WsOvsDef.mod: Declaration of water suppression and Outer
  460. ; volume suppression subroutines
  461. ;
  462. ; call
  463. ; subr Ovs(ph0) ; execution of OVS with ph0 phaselist
  464. ;
  465. ; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1
  466. ; phaselist
  467. ;****************************************************************
  468. ;**** OuterVolumeSuppression ****
  469. if(PVM_OvsOnOff == 1)
  470. {
  471. define list<frequency> Ovslist={$PVM_OvsFrequencyList}
  472. define delay OvsD0 = {$PVM_OvsD0}
  473. define delay OvsD1 = {$PVM_OvsD1}
  474. define pulse OvsP0 = {$PVM_OvsP0}
  475. }
  476. subroutine Ovs
  477. # 62 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  478. ;*** WaterSuppression Module with OVS ****
  479. if (PVM_WsMode)
  480. {
  481. define list<frequency> Wslist={$PVM_WsOffsetHz}
  482. define pulse WsP0 = {$PVM_WsP0}
  483. define pulse WsP1 = {$PVM_WsP1}
  484. define pulse WsP2 = {$PVM_WsP2}
  485. define delay WsNp0
  486. "WsNp0 = WsP0"
  487. define delay WsNp1
  488. "WsNp1 = WsP1"
  489. define delay WsNp2
  490. "WsNp2 = WsP2"
  491. define list<delay> ChD1={$PVM_ChppgD1}
  492. define list<delay> ChD2={$PVM_ChppgD2}
  493. define list<delay> VpD1={$PVM_VpppgD1}
  494. define list<delay> VpD2={$PVM_VpppgD2}
  495. # 82 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod"
  496. }
  497. subroutine WsOvsMain
  498. subroutine WsOvs
  499. subroutine Ws
  500. # 60 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  501. ;**** Solvent Suppression module ****
  502. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsSatDef.mod" 1
  503. ;******************************************************************
  504. ;
  505. ; Copyright (c) 2002-2007
  506. ; Bruker BioSpin MRI GmbH
  507. ; D-76275 Ettlingen, Germany
  508. ;
  509. ; $Id$
  510. ;
  511. ; All Rights Reserved
  512. ;
  513. ; WsSatDef.mod - Declaration of water suppression and FOV saturation
  514. ; subroutines
  515. ; call
  516. ; subr WsSat(ph0) : execution of WS with ph0 phaselist and
  517. ; FOV saturation (as passed as argument)
  518. ;
  519. ;*******************************************************************
  520. ; Definitions for WsPpgParams are included in WsOvsDef.mod
  521. subroutine WsSatMain
  522. subroutine WsSat
  523. # 64 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  524. ;**** Selective Inversion Recovery ****
  525. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1
  526. ;****************************************************************
  527. ;
  528. ; Copyright (c) 2018
  529. ; Bruker BioSpin MRI GmbH
  530. ; D-76275 Ettlingen, Germany
  531. ;
  532. ; $Id$
  533. ;
  534. ; All Rights Reserved
  535. ;
  536. ; SlicelSelIr.mod : declaration of slice Selective Inversion
  537. ; Recovery subroutine
  538. ; call SliceSelIr()
  539. ;
  540. ;
  541. ;****************************************************************
  542. if(PVM_SelIrOnOff)
  543. {
  544. define list<frequency> IrFL = {$PVM_SelIrFL}
  545. define delay IrD0 = {$PVM_SelIrD0} ; PVM_InterInvDelay
  546. define delay IrD1 = {$PVM_SelIrD1} ; PVM_InterInvEndDelay[0]
  547. define delay IrD2 = {$PVM_SelIrD2} ; Spoiler duration
  548. define delay IrD3 = {$PVM_SelIrD3} ; Gatepulse duration
  549. define delay IrD4 = {$PVM_SelIrD4} ; risetime
  550. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
  551. define pulse IrP0 = {$PVM_SelIrP0}
  552. define loopcounter IrL0 = {$PVM_SelIrL0}
  553. define loopcounter IrL1
  554. }
  555. subroutine SliceSelIr
  556. # 68 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  557. ;**** Tagging ****
  558. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod" 1
  559. ;****************************************************************
  560. ;
  561. ; Copyright (c) 2018
  562. ; Bruker BioSpin MRI GmbH
  563. ; D-76275 Ettlingen, Germany
  564. ;
  565. ; $Id$
  566. ;
  567. ; All Rights Reserved
  568. ;
  569. ; TagDef.mod : Declaration of tagging subroutine
  570. ; call
  571. ; subr Tagging()
  572. ;
  573. ;****************************************************************
  574. if(PVM_TaggingOnOff)
  575. {
  576. define list<frequency> taggfreq={$PVM_TaggingFL}
  577. define delay TaggD0 = {$PVM_TaggingD0}
  578. define delay TaggD1 = {$PVM_TaggingD1}
  579. define delay TaggD2 = {$PVM_TaggingD2}
  580. define delay TaggD3 = {$PVM_TaggingD3}
  581. define delay TaggD4 = {$PVM_TaggingD4}
  582. define delay TaggD5 = {$PVM_TaggingD5}
  583. # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod"
  584. define pulse TaggP0 = {$PVM_TaggingP0}
  585. define loopcounter TaggL0 = {$PVM_TaggingLp0}
  586. }
  587. subroutine Tagging
  588. # 72 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  589. ;**** Noe ****
  590. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/NoeDef.mod" 1
  591. ;****************************************************************
  592. ;
  593. ; Copyright (c) 2007
  594. ; Bruker BioSpin MRI GmbH
  595. ; D-76275 Ettlingen, Germany
  596. ;
  597. ; $Id$
  598. ;
  599. ; All Rights Reserved
  600. ;
  601. ; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement
  602. ; subroutine
  603. ; call
  604. ; subr Noe()
  605. ;
  606. ;****************************************************************
  607. if(PVM_NoeOnOff == On)
  608. {
  609. define delay NoeD0 = {$PVM_NoeD0}
  610. define delay NoeD1 = {$PVM_NoeD1}
  611. }
  612. subroutine Noe
  613. # 76 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  614. ;**** Evolution ****
  615. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/EvolutionDef.mod" 1
  616. ;****************************************************************
  617. ;
  618. ; Copyright (c) 1998-2003
  619. ; Bruker BioSpin MRI GmbH
  620. ; D-76275 Ettlingen, Germany
  621. ;
  622. ; All Rights Reserved
  623. ;
  624. ; EvolutionDef.mod - Evolution Module
  625. ;
  626. ;****************************************************************
  627. if (PVM_EvolutionOnOff == On)
  628. {
  629. define delay evolDel = {$PVM_EvolutionDelay}
  630. define list<delay> evolTime = {$PVM_EvolutionTime}
  631. }
  632. subroutine Evolution
  633. # 80 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  634. ;**** Drift Compensation ****
  635. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DriftComp.mod" 1
  636. ;==========================================================
  637. ; subroutine for drift compensation
  638. ;==========================================================
  639. if (PVM_DriftCompNavOnOff == On)
  640. {
  641. define list<frequency> txfq = {$PVM_DriftCompNavTxFrq}
  642. define list<frequency> rxfq = {$PVM_DriftCompNavRxFrq}
  643. define pulse DCP0 = {$PVM_DriftCompNavP0}
  644. define delay DCD0 = {$PVM_DriftCompNavD0}
  645. define delay DCD1 = {$PVM_DriftCompNavD1}
  646. define delay DCD2 = {$PVM_DriftCompNavD2}
  647. define delay DCD3 = {$PVM_DriftCompNavD3}
  648. define delay DCD4 = {$PVM_DriftCompNavD4}
  649. define delay DCD5 = {$PVM_DriftCompNavD5}
  650. define delay DCD6
  651. "DCD6 = 10u - de"
  652. define list<phase> dcph = { 0 }
  653. }
  654. subroutine DriftComp
  655. # 84 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  656. # 21 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2
  657. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" 1
  658. ;*************************************************************************
  659. ; Copyright (c) 2018
  660. ; Bruker BioSpin MRI GmbH
  661. ; D-76275 Ettlingen, Germany
  662. ;
  663. ; $Id$
  664. ;
  665. ; All Rights Reserved
  666. ;
  667. ; DwiHead.mod: Declaration of pulseprogram subroutines
  668. ; for Stejscal Tanner Spinecho and Stimulated echo
  669. ; and double spin echo preparation
  670. ; preparation
  671. ;
  672. ; call
  673. ; subr DwiPrep(ph1) : diffusion prepartion with RF phaselist 1
  674. ; subr DwiLoop(Diffl): loop part of diffusion preparation, loops
  675. ; to label Diffl (as passed as argument)
  676. ;
  677. ;*************************************************************************
  678. # 22 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  679. define list<frequency> DwFl0 = {$PVM_DwFlist0}
  680. define delay DwD0 = {$PVM_DwD0}
  681. define delay DwD1 = {$PVM_DwD1}
  682. define delay DwD2 = {$PVM_DwD2}
  683. define delay DwD3 = {$PVM_DwD3}
  684. define delay DwD4 = {$PVM_DwD4}
  685. define delay DwD5 = {$PVM_DwD5}
  686. define delay DwD6 = {$PVM_DwD6}
  687. define delay DwD7 = {$PVM_DwD7}
  688. define delay DwD8 = {$PVM_DwD8}
  689. define delay DwD9 = {$PVM_DwD9}
  690. define delay DwD10 = {$PVM_DwD10}
  691. define delay DwD11 = {$PVM_DwD11}
  692. define delay DwD12 = {$PVM_DwD12}
  693. define delay DwD13 = {$PVM_DwD13}
  694. define delay DwD14 = {$PVM_DwD14}
  695. define delay DwD15 = {$PVM_DwD15}
  696. define delay DwD16 = {$PVM_DwD16}
  697. define delay DwD17 = {$PVM_DwD17}
  698. define delay DwD18 = {$PVM_DwD18}
  699. define delay DwD19 = {$PVM_DwD19}
  700. define pulse DwP0 = {$PVM_DwP0}
  701. define pulse DwP1 = {$PVM_DwP1}
  702. define list<grad_scalar> DwGR1 ={$PVM_DwGradRead}
  703. define list<grad_scalar> DwGP1 ={$PVM_DwGradPhase}
  704. define list<grad_scalar> DwGS1 ={$PVM_DwGradSlice}
  705. define list<grad_vector> DwGV1 ={$PVM_DwGradVec}
  706. define list<grad_vector> DwSPD ={$PVM_DwSpDir}
  707. define list<grad_vector> DwSPD1 ={$PVM_DwSpDir2}
  708. # 69 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  709. define loopcounter DwExp = {$PVM_DwNDiffExp}
  710. ; double spinecho preparation
  711. ; slice refocusing groups
  712. subroutine DwRefDse
  713. subroutine DwRefDse2
  714. subroutine DwDse
  715. # 152 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  716. ; spinecho stejscal tanner preparation
  717. subroutine DwSe
  718. # 184 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  719. ; stimulated echo stejscal tanner preparation
  720. subroutine DwSte
  721. # 221 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  722. ;
  723. ; Diffusion Preparation module
  724. ;
  725. subroutine DwiPrep
  726. # 242 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  727. ; Loop part of DTI module
  728. subroutine DwiInit
  729. subroutine DwiLoop
  730. # 22 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2
  731. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiHead.mod" 1
  732. ;****************************************************************
  733. ;
  734. ; Copyright (c) 2003
  735. ; Bruker BioSpin MRI GmbH
  736. ; D-76275 Ettlingen, Germany
  737. ;
  738. ; All Rights Reserved
  739. ; $Id$
  740. ; Declaration of pulseprogram parameters for epi module
  741. ;
  742. ;****************************************************************
  743. define delay EpiD0 = {$PVM_EpiD0}
  744. define delay EpiD1 = {$PVM_EpiD1}
  745. define delay EpiD2 = {$PVM_EpiD2}
  746. define delay EpiD3 = {$PVM_EpiD3}
  747. define delay EpiD4 = {$PVM_EpiD4}
  748. define delay EpiD5 = {$PVM_EpiD5}
  749. define delay EpiD7 = {$PVM_EpiD7}
  750. define delay EpiD8 = {$PVM_EpiD8}
  751. define delay EpiD9 = {$PVM_EpiD9}
  752. define delay EpiD10 = {$PVM_EpiD10}
  753. define delay EpiD11 = {$PVM_EpiD11}
  754. define delay EpiD12 = {$PVM_EpiD12}
  755. define delay EpiD13 = {$PVM_EpiD13}
  756. # 27 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiHead.mod"
  757. define list<grad_scalar> Interleaving={$PVM_EpiInterleavingFunction}
  758. define delay Epi20u_de
  759. "Epi20u_de = 20u - de"
  760. define list<delay> EpiVd = {$PVM_EpiVdList}
  761. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2
  762. # 26 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  763. if (ACQ_jobs_size > 1)
  764. {
  765. 3u setrtp1|1 \n 7u setrtp1^1 \n 1m swj1 \n 1m dccorr1 \n 3u setrtp1|1 \n 187u setrtp1^1 \n 1u setrtp1|1 \n 9u setrtp1^1 \n 1m swj2 \n 1m dccorr2 \n 3u setrtp1|1 \n 7u setrtp1^1 \n 1m swj1 \n if (CONFIG_preemp_type == GREAT_60) \n { \n if (CONFIG_instrument_type != Avance_III) \n { \n 500m setnmr0|34|33|32 \n } \n else \n { \n 200u setnmr0|34|33|32 \n } \n } \n if (CONFIG_preemp_type == DPP_with_SW_Blanking) \n {\n 10u ctrlgrad 0 \n 10u grad{(0)|(0)|(0) } \n 200u setnmr0|34|33|32 \n }\n if (CONFIG_preemp_type == DPP) \n { \n 10u groff \n }
  766. } else {
  767. 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 }
  768. }
  769. ; GRAPPA adjustment?
  770. if(PVM_EpiAdjustMode==2)
  771. {
  772. define list <grad_scalar> ACQ_spatial_phase_2
  773. }
  774. else
  775. {
  776. grad_zero_for_gs <ACQ_spatial_phase_2>
  777. }
  778. # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  779. 0u grad_matrix.res
  780. subr DwiInit
  781. ;EXEC_begin DwiInit DwiInit()
  782. # 244 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  783. 0u DwSPD.res
  784. if(PVM_DiffPrepMode != 0)
  785. {
  786. 0u DwSPD1.res
  787. }
  788. 0u DwGR1.res
  789. 0u DwGP1.res
  790. 0u DwGS1.res
  791. 0u DwGV1.res
  792. ;EXEC_end DwiInit
  793. # 46 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  794. DiffL, 4u
  795. subr TriggerPhase
  796. ;EXEC_begin TriggerPhase TriggerPhase()
  797. # 37 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  798. if (PVM_TriggerMode == per_PhaseStep)
  799. {
  800. ;EXEC_begin Trigger Trigger()
  801. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  802. if (PVM_TriggerModule == On)
  803. {
  804. trigDur setnmr3|6
  805. trigDur trignl1
  806. trigDur trigpe3
  807. trigDur setnmr3^6
  808. trigDel
  809. }
  810. ;EXEC_end Trigger
  811. }
  812. ;EXEC_end TriggerPhase
  813. # 49 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  814. subr DriftComp
  815. ;EXEC_begin DriftComp DriftComp()
  816. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DriftComp.mod"
  817. if(PVM_DriftCompYesNo == Yes)
  818. {
  819. 20u reload B0 ;close to nav acq
  820. if(PVM_DriftCompNavOnOff == On)
  821. {
  822. 10u swj2
  823. 1u setrtp1|1 \n 9u setrtp1^1 ;lasts 10u
  824. 10u rxfq(receive):f1
  825. 5u txfq:f1
  826. DCD0 gatepulse 1
  827. (DCP0 :sp55 dcph):f1
  828. DCD6 ;is 10u-de
  829. (rde1 sync de1 adc2 dcph syrec) (1u 1u dcph:r):f1 (de) ;is de
  830. DCD1 cpdngs18:f1
  831. 169u ;delay for scan shift
  832. 10u eoscnp #1
  833. DCD2 grad_ramp{PVM_DriftCompNavSpoilAmp,PVM_DriftCompNavSpoilAmp,PVM_DriftCompNavSpoilAmp}
  834. DCD3 ;delay after eoscnp #0 requires about 45u
  835. DCD4 swj1 ;requires about 65u
  836. 3u setrtp1|1 \n 7u setrtp1^1 ;lasts 10u
  837. DCD5
  838. DCD2 grad_off
  839. }
  840. }
  841. ;EXEC_end DriftComp
  842. # 50 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  843. # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  844. slice, 5u fq8(receive):f1
  845. 5u
  846. subr TriggerSlice
  847. ;EXEC_begin TriggerSlice TriggerSlice()
  848. # 45 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  849. if (PVM_TriggerMode == per_Slice)
  850. {
  851. ;EXEC_begin Trigger Trigger()
  852. # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod"
  853. if (PVM_TriggerModule == On)
  854. {
  855. trigDur setnmr3|6
  856. trigDur trignl1
  857. trigDur trigpe3
  858. trigDur setnmr3^6
  859. trigDel
  860. }
  861. ;EXEC_end Trigger
  862. }
  863. ;EXEC_end TriggerSlice
  864. # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  865. subr FovSat
  866. ;EXEC_begin FovSat FovSat()
  867. # 34 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod"
  868. if (PVM_FovSatOnOff == On)
  869. {
  870. 5u PVM_FovSatGrad.res
  871. 5u fovSatList.res
  872. fov19, fovSatRamp grad_ramp<magnet_coord>{PVM_FovSatGrad[]}
  873. 10u fovSatList:f1
  874. fovSatAmp gatepulse 1
  875. (fovSatPul :sp41):f1
  876. fovSatSpoil grad_ramp{0, 0, PVM_FovSatSpoilAmp}
  877. 0u fovSatList.inc
  878. 0u PVM_FovSatGrad.inc
  879. lo to fov19 times PVM_FovSatNSlices
  880. fovSatRamp grad_off
  881. fovSatWait
  882. }
  883. ;EXEC_end FovSat
  884. # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  885. subr FatSup
  886. ;EXEC_begin FatSup FatSup()
  887. # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod"
  888. if (PVM_FatSupPerform == Yes)
  889. {
  890. 10u fatSupList:f1
  891. fatSupAmp gatepulse 1
  892. (fatSupPul :sp40):f1
  893. fatSupSpoil grad_ramp{0, 0, PVM_FatSupSpoilAmp}
  894. fatSupRamp grad_off
  895. fatSupWait
  896. }
  897. ;EXEC_end FatSup
  898. # 57 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  899. ;----------------------------------slice selection------------------
  900. d1 grad_ramp{0, 0, g0} fq1:f1
  901. d8 gatepulse 1
  902. (p0:sp0 ph0):f1
  903. d4 grad_off
  904. ;----------------------------------slice rephase--------------------
  905. d2 grad_ramp{0, 0, g1}
  906. d3 grad_off
  907. subr DwiPrep
  908. ;EXEC_begin DwiPrep DwiPrep(phase ph1)
  909. # 225 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  910. if(PVM_DiffPrepMode == 0)
  911. {
  912. ;EXEC_begin DwSe DwSe(phase ph1)
  913. # 154 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  914. DwD0 grad_off
  915. if(PVM_DwDirectScale == Yes)
  916. {
  917. DwD5 grad_ramp<object_coord>{100*DwGV1[]}
  918. }
  919. else
  920. {
  921. DwD5 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1}
  922. }
  923. DwD6 grad_off
  924. DwD2 grad_ramp<object_coord>{100*DwSPD[]}
  925. DwD3 grad_ramp{0, 0, PVM_DwSliceGrad} DwFl0:f1 gatepulse 1
  926. (DwP0:sp49 ph1):f1
  927. DwD4
  928. DwD2 grad_ramp<object_coord>{100*DwSPD[]}
  929. DwD7 grad_off
  930. if(PVM_DwDirectScale == Yes)
  931. {
  932. DwD5 grad_ramp<object_coord>{100*DwGV1[]}
  933. }
  934. else
  935. {
  936. DwD5 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1}
  937. }
  938. DwD1 grad_off
  939. ;EXEC_end DwSe
  940. }
  941. if(PVM_DiffPrepMode == 1)
  942. {
  943. ;EXEC_begin DwSte DwSte(phase ph1)
  944. # 186 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  945. DwD0 grad_off
  946. if(PVM_DwDirectScale == Yes)
  947. {
  948. DwD9 grad_ramp<object_coord>{100*DwGV1[]}
  949. }
  950. else
  951. {
  952. DwD9 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1}
  953. }
  954. DwD6 grad_off
  955. DwD2 grad_ramp<object_coord>{100*DwSPD[]}
  956. DwD3 grad_ramp{0, 0, PVM_DwSliceGrad} DwFl0:f1 gatepulse 1
  957. (DwP0:sp48 ph1):f1
  958. DwD7
  959. DwD4 grad_ramp<object_coord>{100*DwSPD1[]}
  960. DwD5 grad_off
  961. DwD3 grad_ramp{0, 0, PVM_DwSliceGrad} gatepulse 1
  962. (DwP0:sp48 ph1):f1
  963. DwD7
  964. DwD2 grad_ramp<object_coord>{100*DwSPD[]}
  965. DwD8 grad_off
  966. if(PVM_DwDirectScale == Yes)
  967. {
  968. DwD9 grad_ramp<object_coord>{100*DwGV1[]}
  969. }
  970. else
  971. {
  972. DwD9 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1}
  973. }
  974. DwD1 grad_off
  975. ;EXEC_end DwSte
  976. }
  977. if(PVM_DiffPrepMode == 2)
  978. {
  979. ;EXEC_begin DwDse DwDse(phase ph1)
  980. # 105 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  981. DwD0 grad_off DwFl0:f1
  982. DwD6
  983. if(PVM_DwDirectScale == Yes)
  984. {
  985. DwD7 grad_ramp<object_coord>{100*DwGV1[]}
  986. }
  987. else
  988. {
  989. DwD7 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1}
  990. }
  991. DwD8 grad_off
  992. ;EXEC_begin DwRefDse DwRefDse(phase ph1)
  993. # 77 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  994. DwD5
  995. DwD1 grad_ramp<object_coord>{100*DwSPD1[]}
  996. DwD2 grad_ramp{0, 0, PVM_DwSliceGrad} gatepulse 1
  997. (DwP0:sp49 ph1):f1
  998. DwD3
  999. DwD1 grad_ramp<object_coord>{100*DwSPD1[]}
  1000. DwD4 grad_off
  1001. ;EXEC_end DwRefDse
  1002. DwD9
  1003. if(PVM_DwDirectScale == Yes)
  1004. {
  1005. DwD10 grad_ramp<object_coord>{-100*DwGV1[]}
  1006. }
  1007. else
  1008. {
  1009. DwD10 grad_ramp{-100*DwGR1, -100*DwGP1, -100*DwGS1}
  1010. }
  1011. DwD11 grad_off
  1012. if(PVM_DwDirectScale == Yes)
  1013. {
  1014. DwD12 grad_ramp<object_coord>{100*DwGV1[]}
  1015. }
  1016. else
  1017. {
  1018. DwD12 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1}
  1019. }
  1020. DwD13 grad_off
  1021. ;EXEC_begin DwRefDse2 DwRefDse2(phase ph1)
  1022. # 88 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  1023. DwD5
  1024. DwD1 grad_ramp<object_coord>{100*DwSPD[]}
  1025. DwD2 grad_ramp{0, 0, PVM_DwSliceGrad} gatepulse 1
  1026. (DwP0:sp49 ph1):f1
  1027. DwD3
  1028. DwD1 grad_ramp<object_coord>{100*DwSPD[]}
  1029. DwD4 grad_off
  1030. ;EXEC_end DwRefDse2
  1031. DwD14
  1032. if(PVM_DwDirectScale == Yes)
  1033. {
  1034. DwD15 grad_ramp<object_coord>{-100*DwGV1[]}
  1035. }
  1036. else
  1037. {
  1038. DwD15 grad_ramp{-100*DwGR1, -100*DwGP1, -100*DwGS1}
  1039. }
  1040. DwD16 grad_off
  1041. ;EXEC_end DwDse
  1042. }
  1043. ;EXEC_end DwiPrep
  1044. # 66 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  1045. if "lcDs > 0" goto acqDs
  1046. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod" 1
  1047. ;****************************************************************
  1048. ;
  1049. ; Copyright (c) 2002-2005
  1050. ; Bruker BioSpin MRI GmbH
  1051. ; D-76275 Ettlingen, Germany
  1052. ;
  1053. ; All Rights Reserved
  1054. ;
  1055. ; epi.mod - an Echo-Planar Imaging module
  1056. ;
  1057. ;****************************************************************
  1058. # 14 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod"
  1059. ;-------- version with shaped gradients:
  1060. if(PVM_EpiRampMode != SystemRamp)
  1061. {
  1062. (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph1:r):f1 (de)
  1063. Epi20u_de
  1064. if(PVM_EpiNShots != 1)
  1065. {
  1066. if(PVM_EpiEchoTimeShifting == Yes)
  1067. {
  1068. EpiVd EpiVd.inc
  1069. }
  1070. }
  1071. if (PVM_EpiGradSync == Yes)
  1072. {
  1073. 1u trigpe3
  1074. }
  1075. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1076. {
  1077. EpiD12 cpdngs17:f1
  1078. }
  1079. else
  1080. {
  1081. if(PVM_EpiDynCorr)
  1082. {
  1083. EpiD12 cpdngs17:f1
  1084. }
  1085. }
  1086. if(PVM_EpiDynCorr) ; dynamic ghost correction
  1087. {
  1088. EpiD13 grad_shape{EpiShape17() * 100, (0), (0)}
  1089. EpiD5 grad_shape{EpiShape9() * 100, (0), (0)}
  1090. EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up
  1091. EpiD5 grad_shape{EpiShape2() * 100, EpiShape15() * 100, (0)} ;ramp down
  1092. EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down
  1093. EpiD5 grad_shape{EpiShape12() * 100, EpiShape16() * 100, (0)} ;ramp up
  1094. EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up
  1095. EpiD5 grad_shape{EpiShape10() * 100, (0), (0)}
  1096. EpiD13 grad_shape{EpiShape17() * 100, (0) ,(0)}
  1097. }
  1098. # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod"
  1099. 10u gc_control
  1100. {
  1101. EpiD4 grad_shape{EpiShape1() * 100, EpiShape3() * 100 + EpiShape18() * 100 * r2d , (0)-EpiShape14() * 100 * ACQ_spatial_phase_2}
  1102. EpiD5 grad_shape{EpiShape9() * 100, EpiShape11() * 100 * Interleaving,0}
  1103. EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up
  1104. loop PVM_EpiEchoCounter
  1105. {
  1106. EpiD5 grad_shape{EpiShape2() * 100, EpiShape4() * 100, 0} ;ramp down
  1107. EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down
  1108. EpiD5 grad_shape{EpiShape12() * 100, EpiShape7() * 100, 0} ;ramp up
  1109. EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up
  1110. }
  1111. EpiD5 grad_shape{EpiShape10() * 100, -EpiShape11() * 100 *Interleaving, 0}
  1112. EpiD4 grad_shape{EpiShape5() * 100, EpiShape6() * 100,EpiShape14() * 100 * ACQ_spatial_phase_2}
  1113. }
  1114. EpiD1
  1115. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1116. {
  1117. EpiD2
  1118. }
  1119. else ;no prefix navigator or dyn corr: start adc now
  1120. {
  1121. if(PVM_EpiDynCorr)
  1122. {
  1123. EpiD2
  1124. }
  1125. else
  1126. {
  1127. EpiD2 cpdngs17:f1
  1128. }
  1129. }
  1130. EpiD3
  1131. EpiD0 eoscnp #0
  1132. if(PVM_EpiNShots != 1)
  1133. {
  1134. if(PVM_EpiEchoTimeShifting == Yes)
  1135. {
  1136. EpiVd EpiVd.inc
  1137. }
  1138. }
  1139. } ;--------end of version
  1140. ;----------------------- version with system ramps ---------------------------
  1141. if(PVM_EpiRampMode == SystemRamp)
  1142. {
  1143. (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph1:r):f1 (de)
  1144. Epi20u_de
  1145. if(PVM_EpiNShots != 1)
  1146. {
  1147. if(PVM_EpiEchoTimeShifting == Yes)
  1148. {
  1149. EpiVd EpiVd.inc
  1150. }
  1151. }
  1152. if (PVM_EpiGradSync == Yes)
  1153. {
  1154. 1u trigpe3
  1155. }
  1156. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1157. {
  1158. EpiD12 cpdngs17:f1
  1159. }
  1160. # 121 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod"
  1161. 10u gc_control
  1162. {
  1163. EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, PVM_EpiPhaseDephGrad * 100 +Interleaving * 100 *PVM_EpiPhaseEncGrad,0}
  1164. EpiD8 grad_off
  1165. EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0}
  1166. loop PVM_EpiEchoCounter
  1167. {
  1168. EpiD10 grad_ramp{0, PVM_EpiBlipEvenGrad *100, 0}
  1169. EpiD9 grad_ramp{PVM_EpiReadOddGrad * 100, 0, 0}
  1170. EpiD10 grad_ramp{0, PVM_EpiBlipOddGrad * 100, 0}
  1171. EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0}
  1172. }
  1173. EpiD8 grad_off
  1174. EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, PVM_EpiPhaseRephGrad * 100 + Interleaving * 100 * PVM_EpiPhaseRewGrad, 0}
  1175. grad_off
  1176. }
  1177. EpiD1
  1178. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1179. {
  1180. EpiD2
  1181. }
  1182. if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now
  1183. {
  1184. EpiD2 cpdngs17:f1
  1185. }
  1186. EpiD3
  1187. EpiD0 eoscnp #0
  1188. if(PVM_EpiNShots != 1)
  1189. {
  1190. if(PVM_EpiEchoTimeShifting == Yes)
  1191. {
  1192. EpiVd EpiVd.inc
  1193. }
  1194. }
  1195. }
  1196. ;-------- end of version
  1197. # 69 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2
  1198. # 72 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  1199. ;----------------------------------slice loop-----------------------
  1200. goOn, 0u grad_matrix.inc
  1201. 0u DwFl0.inc
  1202. d0
  1203. lo to slice times NSLICES
  1204. 0u grad_matrix.res
  1205. ;----------------------------------averaging loop-------------------
  1206. d5
  1207. "lcDs = lcDs - 1"
  1208. if "lcDs >= 0" goto DiffL ;dummy scans
  1209. lo to DiffL times NA
  1210. ;----------------------------------2d loop--------------------------
  1211. 0u Interleaving.inc
  1212. lo to DiffL times l0
  1213. 0u Interleaving.res
  1214. ;----------------------------------3d loop--------------------------
  1215. if( ACQ_dim >= 3 )
  1216. {
  1217. 0u ACQ_spatial_phase_2.inc
  1218. lo to DiffL times ACQ_size[2]
  1219. }
  1220. ;----------------------------------diffusion loop-------------------
  1221. subr DwiLoop
  1222. ;EXEC_begin DwiLoop DwiLoop(any DiffL)
  1223. # 261 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod"
  1224. if(PVM_DwFlag1 == 0)
  1225. {
  1226. if( ACQ_scan_type == Scan_Experiment)
  1227. {
  1228. 0u DwSPD.inc
  1229. if(PVM_DiffPrepMode != 0)
  1230. {
  1231. 0u DwSPD1.inc
  1232. }
  1233. 0u DwGR1.inc
  1234. 0u DwGP1.inc
  1235. 0u DwGS1.inc
  1236. 0u DwGV1.inc
  1237. }
  1238. else
  1239. {
  1240. 0u
  1241. }
  1242. }
  1243. else
  1244. {
  1245. 0u DwSPD.inc
  1246. if(PVM_DiffPrepMode != 0)
  1247. {
  1248. 0u DwSPD1.inc
  1249. }
  1250. 0u DwGR1.inc
  1251. 0u DwGP1.inc
  1252. 0u DwGS1.inc
  1253. 0u DwGV1.inc
  1254. }
  1255. lo to DiffL times DwExp
  1256. 0u DwSPD.res
  1257. if(PVM_DiffPrepMode !=0)
  1258. {
  1259. 0u DwSPD1.res
  1260. }
  1261. 0u DwGR1.res
  1262. 0u DwGP1.res
  1263. 0u DwGS1.res
  1264. 0u DwGV1.res
  1265. ;EXEC_end DwiLoop
  1266. # 96 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  1267. ;----------------------------------repetitions loop-----------------
  1268. lo to DiffL times PVM_NRepetitions
  1269. if (ACQ_scan_type != Scan_Experiment) \n{ \n goto DiffL \n}
  1270. goto bye
  1271. ; ---- empty acquisition for dummy scans
  1272. acqDs, 0u
  1273. # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod" 1
  1274. ;****************************************************************
  1275. ;
  1276. ; Copyright (c) 2002-2005
  1277. ; Bruker BioSpin MRI GmbH
  1278. ; D-76275 Ettlingen, Germany
  1279. ;
  1280. ; All Rights Reserved
  1281. ;
  1282. ; epiDum.mod - a version the Echo-Planar Imaging module without phase
  1283. ; acquisition (for the dummy scans)
  1284. ;
  1285. ;****************************************************************
  1286. # 16 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod"
  1287. ;-------- version with shaped gradients:
  1288. if(PVM_EpiRampMode != SystemRamp)
  1289. {
  1290. ;rdepa \n deparx adc ph0 syrec \n derxadc ph1:r \n deadc
  1291. 20u
  1292. if(PVM_EpiNShots != 1)
  1293. {
  1294. if(PVM_EpiEchoTimeShifting == Yes)
  1295. {
  1296. EpiVd ;EpiVd.inc
  1297. }
  1298. }
  1299. if (PVM_EpiGradSync == Yes)
  1300. {
  1301. 1u trigpe3
  1302. }
  1303. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1304. {
  1305. EpiD12 ;cpdngs17:f1
  1306. }
  1307. else
  1308. {
  1309. if(PVM_EpiDynCorr)
  1310. {
  1311. EpiD12 ;cpdngs17:f1
  1312. }
  1313. }
  1314. if(PVM_EpiDynCorr) ; dynamic ghost correction
  1315. {
  1316. EpiD13 grad_shape{EpiShape17() * 100, (0), (0)}
  1317. EpiD5 grad_shape{EpiShape9() * 100, (0), (0)}
  1318. EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up
  1319. EpiD5 grad_shape{EpiShape2() * 100, EpiShape15() * 100, (0)} ;ramp down
  1320. EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down
  1321. EpiD5 grad_shape{EpiShape12() * 100, EpiShape16() * 100, (0)} ;ramp up
  1322. EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up
  1323. EpiD5 grad_shape{EpiShape10() * 100, (0), (0)}
  1324. EpiD13 grad_shape{EpiShape17() * 100, (0) ,(0)}
  1325. }
  1326. # 58 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod"
  1327. 10u gc_control
  1328. {
  1329. EpiD4 grad_shape{EpiShape1() * 100, EpiShape3() * 100 + EpiShape18() * 100 * r2d , (0)-EpiShape14() * 100 * ACQ_spatial_phase_2}
  1330. EpiD5 grad_shape{EpiShape9() * 100, EpiShape11() * 100 * Interleaving,0}
  1331. EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up
  1332. loop PVM_EpiEchoCounter
  1333. {
  1334. EpiD5 grad_shape{EpiShape2() * 100, EpiShape4() * 100, 0} ;ramp down
  1335. EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down
  1336. EpiD5 grad_shape{EpiShape12() * 100, EpiShape7() * 100, 0} ;ramp up
  1337. EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up
  1338. }
  1339. EpiD5 grad_shape{EpiShape10() * 100, -EpiShape11() * 100 *Interleaving, 0}
  1340. EpiD4 grad_shape{EpiShape5() * 100, EpiShape6() * 100,EpiShape14() * 100 * ACQ_spatial_phase_2}
  1341. }
  1342. EpiD1
  1343. # 77 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod"
  1344. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1345. {
  1346. EpiD2
  1347. }
  1348. else ;no prefix navigator or dyn corr: start adc now
  1349. {
  1350. if(PVM_EpiDynCorr)
  1351. {
  1352. EpiD2
  1353. }
  1354. else
  1355. {
  1356. EpiD2 ;cpdngs17:f1
  1357. }
  1358. }
  1359. EpiD3
  1360. EpiD0 ;eoscnp
  1361. if(PVM_EpiNShots != 1)
  1362. {
  1363. if(PVM_EpiEchoTimeShifting == Yes)
  1364. {
  1365. EpiVd ;EpiVd.inc
  1366. }
  1367. }
  1368. } ;--------end of version
  1369. ;----------------------- version with system ramps ---------------------------
  1370. if(PVM_EpiRampMode == SystemRamp)
  1371. {
  1372. ;rdepa \n deparx adc ph0 syrec \n derxadc ph1:r \n deadc
  1373. 20u
  1374. if(PVM_EpiNShots != 1)
  1375. {
  1376. if(PVM_EpiEchoTimeShifting == Yes)
  1377. {
  1378. EpiVd ;EpiVd.inc
  1379. }
  1380. }
  1381. if (PVM_EpiGradSync == Yes)
  1382. {
  1383. 1u trigpe3
  1384. }
  1385. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1386. {
  1387. EpiD12 ;cpdngs17:f1
  1388. }
  1389. # 126 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod"
  1390. 10u gc_control
  1391. {
  1392. EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, 0, 0}
  1393. EpiD8 grad_off
  1394. EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0}
  1395. loop PVM_EpiEchoCounter
  1396. {
  1397. EpiD10 grad_ramp{0, 0, 0}
  1398. EpiD9 grad_ramp{PVM_EpiReadOddGrad * 100, 0, 0}
  1399. EpiD10 grad_ramp{0, 0, 0}
  1400. EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0}
  1401. }
  1402. EpiD8 grad_off
  1403. EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, 0, 0}
  1404. grad_off
  1405. }
  1406. EpiD1
  1407. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1408. {
  1409. EpiD2
  1410. }
  1411. if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now
  1412. {
  1413. EpiD2 ;cpdngs17:f1
  1414. }
  1415. EpiD3
  1416. EpiD0 ;eoscnp
  1417. if(PVM_EpiNShots != 1)
  1418. {
  1419. if(PVM_EpiEchoTimeShifting == Yes)
  1420. {
  1421. EpiVd ;EpiVd.inc
  1422. }
  1423. }
  1424. }
  1425. ;-------- end of version
  1426. # 105 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2
  1427. goto goOn
  1428. # 109 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg"
  1429. bye, 0u
  1430. exit
  1431. ph0 = 0 2
  1432. ph1 = 1