# 1 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
;****************************************************************
;
; Copyright (c) 2001 - 2003
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; All Rights Reserved
; 
; FLASH - a gradient echo imaging method
;
;****************************************************************
;
; d0 - TR padding
; d1 - T1 padding
; d2 - T2 padding
; d3 = PVM_RiseTime
; d4 = PVM_RampTime
; d8 = SCON / BLKTR_MAN (Amplifier preblanking)

# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include" 1
;****************************************************************
;
; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/Attic/MRI.include,v $
;
; Copyright (c) 2006
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; All Rights Reserved
;
;;****************************************************************
;MRI.include

# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/Avance.incl" 1
;Avance3aqs.incl
;   for AV III with AQS IPSO
;
;avance-version (13/06/17)
;
;$CLASS=HighRes Incl
;$COMMENT=
# 170 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/Avance.incl"
;$Id: Avance3aqs.incl,v 1.1.6.3 2015/03/05 16:37:14 uhei Exp $
# 14 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include" 2

define delay aqq
define delay deparx
define delay derxadc
define delay rdepa

# 21 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
"aqq=dw*td"
"rdepa=de-depa"
"deparx=depa-derx"
"derxadc=derx-deadc"


; contents of De2.incl - usage for different hardware versions to 
; be checked - intermediate solution to support Jobs
define delay rde1
# 31 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
"rde1=de-de1"


# 44 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
; end of contents of De2.incl


# 65 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
	
	


# 74 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
	


# 128 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
# 129 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
   


# 141 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MRI.include"
	


# 20 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg" 2

preset off

define delay denab
# 25 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
define list<shape> excPulse={$ExcPulseList}
define list<phase> phaselist = {$RFPhaseList}

"denab =  d3 - de"
"l3 = l1 + ds"

# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
;****************************************************************
;
; Copyright (c) 2003-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: PrepModulesHead.mod,v 1.19 2012/01/20 10:19:48 wemch Exp $
;
; All Rights Reserved
;
; Declaration of pulseprogram parameters and subroutines for 
; preparation  modules
;
; Must be included after MRI.include!
;
;****************************************************************
# 18 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod"
;**** Fat Suppression ****

# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
;****************************************************************
;
; Copyright (c) 2002-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: FatSupDef.mod,v 1.7 2013/07/05 14:15:26 sako Exp $
;
; All Rights Reserved
;
; FatSupDef.mod : Declaration of Fat Suppression Subroutine
;
;****************************************************************

if (PVM_FatSupPerform == Yes)
{
  define pulse           fatSupPul   = {$PVM_FatSupRfLength}
  define list<frequency> fatSupList  = {$PVM_FatSupFL}
  
  define delay fatSupRamp  = {$PVM_FatSupRampTime}
  define delay fatSupAmp   = {$PVM_FatSupAmpEnable}
  define delay fatSupGrad  = {$PVM_FatSupGradWait}
  define delay fatSupSpoil = {$PVM_FatSupSpoilDur}
# 25 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod"
  ; convert from ms to s
  "fatSupRamp  = fatSupRamp  / 1000"
  "fatSupAmp   = fatSupAmp   / 1000"
  "fatSupGrad  = fatSupGrad  / 1000"
  "fatSupSpoil = fatSupSpoil / 1000"
}

subroutine FatSup

# 20 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Flow Saturation ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1
;****************************************************************
;
; Copyright (c) 2005-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: FlowSatDef.mod,v 1.7 2013/06/04 10:11:30 sako Exp $
;
; All Rights Reserved
;
; FlowSatDef.mod: Declaration of subroutines for Flow Saturation 
; call
; subr FlowSat()
; subr FlowSatInit()
; subr FlowSatInc()
; 
;****************************************************************

if(PVM_InFlowSatOnOff == 1)
{
define list<frequency> modlis4 = {$PVM_InFlowSatFL}
define list<grad_scalar> flowSatGrad={$PVM_InFlowSatGrad}
define delay SfD0 = {$PVM_SfD0}
define delay SfD1 = {$PVM_SfD1}
define delay SfD2 = {$PVM_SfD2}

define pulse SfP0 = {$PVM_SfP0}
define loopcounter SfLp0 = {$PVM_SfLp0}
}
subroutine FlowSat
subroutine FlowSatInc
subroutine FlowSatInit
# 24 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Inversion Pulse ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1
;****************************************************************
;
; Copyright (c) 2002-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: InvPulseDef.mod,v 1.2 2010/12/15 10:52:31 mah Exp $
;
; All Rights Reserved
;
; InvPulseDef.mod : Declaration of Inversion Pulse subroutine
;
; call
; subr InvPulse()
;
;****************************************************************
;   
;       PVM_InvRFPulseArr      :  
;     
;       sp22            TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename
;
;       PVM_IpP0                      :  PVM_InvRFPulseArr[0].PulseLength
;
;       PVM_IpD2                      :  PVM_InvPulseDelay[0]
;       PVM_IpD3                      :  PVM_InvPulseSpoilTime[0]
;       PVM_IpD1                      :  CONFIG_amplifier _enable
;       PVM_IpD0                      :  PVM_RampTime
;

if(PVM_InvPulseOnOff == 1)
{
define list<frequency>  modlis2= {$PVM_InvPulseOffsetHz}
define delay IpD0 = {$PVM_IpD0}
define delay IpD1 = {$PVM_IpD1}
define delay IpD2 = {$PVM_IpD2}
define delay IpD3 = {$PVM_IpD3}

define pulse IpP0 = {$PVM_IpP0}
}
subroutine InvPulse
# 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Magnetisation Transfer ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MagTransDef.mod" 1
;****************************************************************
; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/Attic/MagTransDef.mod,v $
;
; Copyright (c) 2005-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; All Rights Reserved
;
; MagTransDef.mod: Declaration of subroutine for Magnetization 
;                  transfer 
; call
; subr MagTrans()
;
; $Id: MagTransDef.mod,v 1.6.2.1 2015/03/24 14:30:00 sako Exp $
;****************************************************************
;**** Magnetisation Transfer Module ****


if(PVM_MagTransOnOff)
{
define list<frequency> modlis3 = {$PVM_MagTransFL} 
define delay MtD0 = {$PVM_MtD0}
define delay MtD1 = {$PVM_MtD1}
define delay MtD2 = {$PVM_MtD2}
define delay MtD3 = {$PVM_MtD3}
# 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MagTransDef.mod"
define pulse MtP0 = {$PVM_MtP0}

define loopcounter MtLp0 = {$PVM_MtLp0}
}

subroutine MagTrans
# 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Saturation Pulse ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1
;****************************************************************
;
; Copyright (c) 2002-2003
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: SatPulseDef.mod,v 1.3 2010/12/15 10:52:31 mah Exp $
;
; All Rights Reserved
;
; SatPulseDef.mod : Declaration of Saturation Pulse subroutines
; call 
; subr SatPulse()
;
;****************************************************************
;   
;    PVM_SatRFPulseArr      :  
;     
;       sp28            DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename
;       sp29            DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename
;       sp30            DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename
;       sp31            DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename
;
;       PVM_SpP0                     :  PVM_SatRFPulseArr[0].PulseLength
;       PVM_SpP1                     :  PVM_SatRFPulseArr[1].PulseLength
;       PVM_SpP2                     :  PVM_SatRFPulseArr[2].PulseLength
;       PVM_SpP3                     :  PVM_SatRFPulseArr[3].PulseLength
;
;       PVM_SpD2                     :  PVM_SatPulseDelay1[0]
;       PVM_SpD6                     :  PVM_SatPulseSpoilTime[0]
;       PVM_SpD10                    :  PVM_SatPulseDelay2[0]
;       PVM_SpD3                     :  PVM_SatPulseSpoilTime[1]
;       PVM_SpD7                     :  PVM_SatPulseDelay1[1]
;       PVM_SpD11                    :  PVM_SatPulseDelay2[1]
;       PVM_SpD4                     :  PVM_SatPulseDelay1[2]
;       PVM_SpD8                     :  PVM_SatPulseSpoilTime[2]
;       PVM_SpD12                    :  PVM_SatPulseDelay2[2]
;       PVM_SpD5                     :  PVM_SatPulseDelay1[3]
;       PVM_SpD9                     :  PVM_SatPulseSpoilTime[3]
;       PVM_SpD13                    :  PVM_SatPulseDelay2[3]
;

if(PVM_SatPulseOnOff == 1)
   {
define list<frequency> modlis7 = {$PVM_SatPulseOffsetHz}

define delay SpD0 = {$PVM_SpD0}
define delay SpD1 = {$PVM_SpD1}
define delay SpD2 = {$PVM_SpD2}
define delay SpD3 = {$PVM_SpD3}
define delay SpD4 = {$PVM_SpD4}
define delay SpD5 = {$PVM_SpD5}
define delay SpD6 = {$PVM_SpD6}
define delay SpD7 = {$PVM_SpD7}
define delay SpD8 = {$PVM_SpD8}
define delay SpD9 = {$PVM_SpD9}
define delay SpD10 = {$PVM_SpD10}
define delay SpD11 = {$PVM_SpD11}
define delay SpD12 = {$PVM_SpD12}
define delay SpD13 = {$PVM_SpD13}
define pulse SpP0 = {$PVM_SpP0}
define pulse SpP1 = {$PVM_SpP1}
define pulse SpP2 = {$PVM_SpP2}
define pulse SpP3 = {$PVM_SpP3}
# 66 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SatPulseDef.mod"
   }


subroutine SatPulse
# 36 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;*** FOV Saturation ***
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod" 1
;****************************************************************
;
; Copyright (c) 2002-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: FovSatDef.mod,v 1.8 2013/08/06 08:09:43 sako Exp $
;
; All Rights Reserved
;
; FovSat.mod : Declaration of FOV Saturation subroutine
; call: subr FovSat()
;
;****************************************************************


if (PVM_FovSatOnOff == On)
{
  define pulse           fovSatPul   = {$PVM_FovSatRfLength}
  define list<frequency> fovSatList  = {$PVM_FovSatFL}
  
  define delay fovSatRamp  = {$PVM_FovSatRampTime}
  define delay fovSatAmp   = {$PVM_FovSatAmpEnable}
  define delay fovSatGrad  = {$PVM_FovSatGradWait}
  define delay fovSatSpoil = {$PVM_FovSatSpoilDur}
# 27 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
  ; convert from ms to s
  "fovSatRamp  = fovSatRamp  / 1000"
  "fovSatAmp   = fovSatAmp   / 1000"
  "fovSatGrad  = fovSatGrad  / 1000"
  "fovSatSpoil = fovSatSpoil / 1000"  
}

subroutine FovSat

# 53 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
; backwards compatibility
subroutine SatSlices


# 40 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Black Blood ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1
;****************************************************************
;
; Copyright (c) 2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: BlBloodDef.mod,v 1.4 2013/06/04 10:11:30 sako Exp $
;
; All Rights Reserved
;
; BlBloodDef.mod : Declaration of Black blood  subroutine
;
; call
; subr BlBlood(ph0) : Black blood preparation with RF phaselist
;                     ph0
;
;****************************************************************

if(PVM_BlBloodOnOff)
{
define list<frequency> modlis8 = {$PVM_BlBloodFL}
define delay BlbD0 = {$PVM_BlbD0}
define delay BlbD1 = {$PVM_BlbD1}
define delay BlbD2 = {$PVM_BlbD2}
define delay BlbD3 = {$PVM_BlbD3}

define pulse BlbP0 = {$PVM_BlbP0}
}
subroutine BlBlood
# 44 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Trigger ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod" 1
;****************************************************************
;
; Copyright (c) 1998-2003
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; All Rights Reserved
;
; TriggerDef.mod - Trigger Module
;
;****************************************************************

if (PVM_TriggerModule == On)
{
  define delay trigDur = {$PVM_TriggerDur}
  define delay trigDel = {$PVM_TriggerDelay}

  ; convert from ms to s
  "trigDur = trigDur / 1000"
  "trigDel = trigDel / 1000"
}
subroutine Trigger
subroutine TriggerPhase
subroutine TriggerSlice
# 48 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Trigger Out ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerOutDef.mod" 1
;****************************************************************
;
; Copyright (c) 2003
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; All Rights Reserved
; $Id: TriggerOutDef.mod,v 1.2 2013/07/05 14:15:26 sako Exp $
;****************************************************************

if (PVM_TriggerOutOnOff == On)
{
  define delay trigOutDur = {$PVM_TriggerOutDur}
  define delay trigOutDel = {$PVM_TriggerOutDelay}

  ; convert from ms to s
  "trigOutDur = trigOutDur / 1000"
  "trigOutDel = trigOutDel / 1000"
}
subroutine TriggerOut
subroutine TriggerOutStart
subroutine TriggerOutSlice
subroutine TriggerOutVolume
# 52 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Outer Volume Suppression ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1
;****************************************************************
;
; Copyright (c) 2005-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: WsOvsDef.mod,v 1.6 2013/07/08 08:33:32 josh Exp $
;
; All Rights Reserved
;
; WsOvsDef.mod: Declaration of water suppression and Outer 
;               volume suppression subroutines
;
; call 
; subr Ovs(ph0) ;  execution of OVS with ph0 phaselist
;
; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1
;                       phaselist
;****************************************************************

;**** OuterVolumeSuppression ****

if(PVM_OvsOnOff == 1)
{
define list<frequency> Ovslist={$PVM_OvsFrequencyList}
define delay OvsD0 = {$PVM_OvsD0}
define delay OvsD1 = {$PVM_OvsD1}
define pulse OvsP0 = {$PVM_OvsP0}
}
subroutine Ovs
# 59 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsOvsDef.mod"
;*** WaterSuppression Module with OVS ****

if (PVM_WsMode)
{

define list<frequency> Wslist={$PVM_WsOffsetHz}
define pulse WsP0 = {$PVM_WsP0}
define pulse WsP1 = {$PVM_WsP1}
define pulse WsP2 = {$PVM_WsP2}
define delay WsNp0 
"WsNp0 = WsP0"
define delay WsNp1 
"WsNp1 = WsP1"
define delay WsNp2 
"WsNp2 = WsP2"
define list<delay> ChD1={$PVM_ChppgD1}
define list<delay> ChD2={$PVM_ChppgD2}
define list<delay> VpD1={$PVM_VpppgD1}
define list<delay> VpD2={$PVM_VpppgD2}
# 79 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsOvsDef.mod"
}


subroutine WsOvsMain
subroutine WsOvs
subroutine Ws
# 56 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Solvent Suppression module ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/WsSatDef.mod" 1
;******************************************************************
;
; Copyright (c) 2002-2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: WsSatDef.mod,v 1.11 2013/08/23 08:37:06 josh Exp $ 
;
; All Rights Reserved
;
; WsSatDef.mod - Declaration of water suppression and FOV saturation 
;                subroutines
; call
; subr WsSat(ph0) : execution of WS with ph0 phaselist and 
;                   FOV saturation (as passed as argument)    
;      
;*******************************************************************


; Definitions for WsPpgParams are included in WsOvsDef.mod
subroutine WsSatMain
subroutine WsSat
# 60 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Selective Inversion Recovery ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1
;****************************************************************
;
; Copyright (c) 2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: SelSliceIrDef.mod,v 1.5 2013/06/04 10:11:30 sako Exp $
;
; All Rights Reserved
;
; SelSliceIrDef.mod : declaration of slice Selective Inversion 
;                     Recovery subroutine
; call SliceSelIr()
; 
;
;****************************************************************


if(PVM_SelIrOnOff)
{
  define list<frequency> IrFL = {$PVM_SelIrFL} 
  define delay IrD0 = {$PVM_SelIrD0}
  define delay IrD1 = {$PVM_SelIrD1}
  define delay IrD2 = {$PVM_SelIrD2}
  define delay IrD3 = {$PVM_SelIrD3}
  define delay IrD4 = {$PVM_SelIrD4}
# 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
  define pulse IrP0 = {$PVM_SelIrP0}
  define loopcounter IrL0 = {$PVM_SelIrL0}
}

subroutine SliceSelIr

# 64 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Tagging ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TagDef.mod" 1
;****************************************************************
;
; Copyright (c) 2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: TagDef.mod,v 1.6 2013/06/05 12:55:35 sako Exp $
;
; All Rights Reserved
;
; TagDef.mod : Declaration of tagging subroutine
; call
; subr Tagging()
;
;****************************************************************

if(PVM_TaggingOnOff)
{
define list<frequency> taggfreq={$PVM_TaggingFL}

define delay TaggD0 = {$PVM_TaggingD0}
define delay TaggD1 = {$PVM_TaggingD1}
define delay TaggD2 = {$PVM_TaggingD2}
define delay TaggD3 = {$PVM_TaggingD3}
define delay TaggD4 = {$PVM_TaggingD4}
define delay TaggD5 = {$PVM_TaggingD5}
# 28 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TagDef.mod"
define pulse TaggP0 = {$PVM_TaggingP0}
define loopcounter TaggL0 = {$PVM_TaggingLp0}
}

subroutine Tagging

# 68 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Noe ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/NoeDef.mod" 1
;****************************************************************
;
; Copyright (c) 2007
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; $Id: NoeDef.mod,v 1.1 2007/07/02 14:26:00 mawi Exp $
;
; All Rights Reserved
;
; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement 
;             subroutine
; call
; subr Noe()
;
;****************************************************************

if(PVM_NoeOnOff == On)
{
define delay NoeD0 = {$PVM_NoeD0}
define delay NoeD1 = {$PVM_NoeD1}
}

subroutine Noe
# 72 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


;**** Evolution ****
# 1 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/EvolutionDef.mod" 1
;****************************************************************
;
; Copyright (c) 1998-2003
; Bruker BioSpin MRI GmbH
; D-76275 Ettlingen, Germany
;
; All Rights Reserved
;
; EvolutionDef.mod - Evolution Module
;
;****************************************************************

if (PVM_EvolutionOnOff == On)
{
  define delay       evolDel  = {$PVM_EvolutionDelay}
  define list<delay> evolTime = {$PVM_EvolutionTime}
}

subroutine Evolution
# 76 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2


# 31 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg" 2
subr FlowSatInit
;EXEC_begin FlowSatInit FlowSatInit()
# 55 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod"
 
if(PVM_InFlowSatOnOff == 1)
   {

        40u     modlis4.res
        10u     flowSatGrad.res
   }
 
;EXEC_end   FlowSatInit
# 33 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
# 35 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
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 }


# 40 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
grad_zero_for_gs <ACQ_spatial_phase_1, ACQ_spatial_phase_2>

decr,   ACQ_spatial_phase_1.dec
        lo to decr times DS

        10u recph ph1
start,  10u
# 48 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
if (PVM_BlBloodOnOff == On)
{
subr TriggerPhase
;EXEC_begin TriggerPhase TriggerPhase()
# 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
 
  if (PVM_TriggerMode == per_PhaseStep)
  {
;EXEC_begin Trigger Trigger()
# 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
 
  if (PVM_TriggerModule == On)
  {
    trigDur     
  
    if (CONFIG_instrument_type == Avance_III)
    {
      trigDur   trignl1
      trigDur   trigpe3
    }
    else
    {
      trigDur
      trigDur   trigpl1
    }
  
    trigDur      
    trigDel
  }
 
;EXEC_end   Trigger
  }
 
;EXEC_end   TriggerPhase
# 50 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
}
subr BlBlood
;EXEC_begin BlBlood BlBlood(phase ph0)
# 30 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/BlBloodDef.mod"
 
 if(PVM_BlBloodOnOff) 
   {
        10u     modlis8:f1 
        10u
        BlbD3	gatepulse 1
        (BlbP0:sp46  ph0):f1
        BlbD2     modlis8.inc grad_ramp{0, 0, PVM_BlbGrad}
        10u
        10u       modlis8:f1
        10u 
        BlbD3     gatepulse 1
        (BlbP0:sp46  ph0):f1
        BlbD2     grad_off
        BlbD1     modlis8.inc grad_ramp{0, 0, PVM_BlBloodSpoilAmp}
        BlbD0     grad_off
   }
  
;EXEC_end   BlBlood
# 52 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr TriggerPhase
;EXEC_begin TriggerPhase TriggerPhase()
# 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
 
  if (PVM_TriggerMode == per_PhaseStep)
  {
;EXEC_begin Trigger Trigger()
# 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
 
  if (PVM_TriggerModule == On)
  {
    trigDur     
  
    if (CONFIG_instrument_type == Avance_III)
    {
      trigDur   trignl1
      trigDur   trigpe3
    }
    else
    {
      trigDur
      trigDur   trigpl1
    }
  
    trigDur      
    trigDel
  }
 
;EXEC_end   Trigger
  }
 
;EXEC_end   TriggerPhase
# 53 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr SliceSelIr
;EXEC_begin SliceSelIr SliceSelIr()
# 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/SelSliceIrDef.mod"
 
  if(PVM_SelIrOnOff == On)
  {
    50u      IrFL.res
    irloop19,  10u IrFL :f1
    IrD4     grad_ramp{0, 0, PVM_SelIrGradAmp*100}
    IrD3     gatepulse 1
    (IrP0:sp42  ph0):f1
    IrD4     grad_off
    IrD0     grad_matrix.inc IrFL.inc
    lo to irloop19 times IrL0
    IrD2     grad_ramp{0, 0, PVM_SelIrSpoilAmp}
    IrD4     grad_off IrFL.res
    IrD1     grad_matrix.res
  }
 
;EXEC_end   SliceSelIr
# 54 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr Tagging
;EXEC_begin Tagging Tagging()
# 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TagDef.mod"
 

if(PVM_TaggingOnOff)
{
1u    taggfreq.res
if(PVM_TaggingMode == DANTE)
{
      10u taggfreq:f1  
      TaggD4 grad_ramp{PVM_TaggingGradAmp1, PVM_TaggingGradAmp2,0}
      TaggD5 gatepulse 1
      (TaggP0:sp45):f1
tag120,TaggD2
      (TaggP0:sp45):f1
      lo to tag120 times TaggL0
      TaggD4 grad_off
if(PVM_TaggingDir == Tagging_grid)
    {
      TaggD1
      taggfreq.inc
      10u taggfreq:f1
      TaggD4 grad_ramp{PVM_TaggingGradAmp3,PVM_TaggingGradAmp4,0} 
      (TaggP0:sp45):f1
tag221,TaggD2
          (TaggP0:sp45):f1
          lo to tag221 times TaggL0
      TaggD4 grad_off
      }
}
if(PVM_TaggingMode == SPAMM)
{
      10u taggfreq:f1
      TaggD5 gatepulse 1
      (TaggP0:sp45):f1
tag322,TaggD2 grad_ramp{PVM_TaggingGradAmp1,PVM_TaggingGradAmp2,0}
           TaggD4 grad_off
           (TaggP0:sp45):f1
           lo to tag322 times TaggL0
if(PVM_TaggingDir == Tagging_grid)
    {
      taggfreq.inc
      10u taggfreq:f1
      (TaggP0:sp45):f1
tag423,TaggD2 grad_ramp{PVM_TaggingGradAmp3,PVM_TaggingGradAmp4,0}
           TaggD4 grad_off
           (TaggP0:sp45):f1
           lo to tag423 times TaggL0
      }
}
      10u
      TaggD3 grad_ramp{PVM_TaggingSpoilAmp,0,0}
      TaggD4 grad_off
      TaggD0
}    

 
;EXEC_end   Tagging
# 55 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"

;----------------------------------start of the main loop ----------
slice, 	10u fq8(receive):f1
	20u reload B0

;----------------------------------preparation modules -------------
subr TriggerSlice
;EXEC_begin TriggerSlice TriggerSlice()
# 53 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
 
  if (PVM_TriggerMode == per_Slice)
  {
;EXEC_begin Trigger Trigger()
# 23 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/TriggerDef.mod"
 
  if (PVM_TriggerModule == On)
  {
    trigDur     
  
    if (CONFIG_instrument_type == Avance_III)
    {
      trigDur   trignl1
      trigDur   trigpe3
    }
    else
    {
      trigDur
      trigDur   trigpl1
    }
  
    trigDur      
    trigDel
  }
 
;EXEC_end   Trigger
  }
 
;EXEC_end   TriggerSlice
# 62 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr FlowSat
;EXEC_begin FlowSat FlowSat()
# 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod"
 
if(PVM_InFlowSatOnOff == 1)
{

flow124,  SfD0   	modlis4:f1   	grad_ramp{0, 0, flowSatGrad*100}
        SfD1    gatepulse 1
        (SfP0:sp44):f1
        SfD2            	grad_ramp{0, 0, PVM_InFlowSatSpoilGrad}
        SfD0	        	grad_off
}
  
;EXEC_end   FlowSat
# 63 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr FovSat
;EXEC_begin FovSat FovSat()
# 34 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FovSatDef.mod"
 
  if (PVM_FovSatOnOff == On)
  {
         PVM_FovSatGrad.res
         fovSatList.res

    fov25, fovSatRamp   grad_ramp<object_coord>{PVM_FovSatGrad[]}
         fovSatAmp    fovSatList:f1 gatepulse 1
         (fovSatPul    :sp41):f1
         fovSatSpoil  fovSatList.inc  grad_ramp{0, 0, PVM_FovSatSpoilAmp}
         PVM_FovSatGrad.inc        
    lo to fov25 times PVM_FovSatNSlices
         
         fovSatRamp   grad_off
         fovSatGrad
  }
 
;EXEC_end   FovSat
# 64 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr MagTrans
;EXEC_begin MagTrans MagTrans()
# 33 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/MagTransDef.mod"
 

  if(PVM_MagTransOnOff)
  {
 
      50u  modlis3.res
      MtD1 
mtc26,MtD2 modlis3:f1 gatepulse 1
      MtP0:sp43:f1 
      lo to mtc26 times MtLp0
      MtD3  		grad_ramp{0, 0, PVM_MagTransSpoiler}
      MtD0       	groff
      100u
  }
 
;EXEC_end   MagTrans
# 65 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
subr FatSup
;EXEC_begin FatSup FatSup()
# 32 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FatSupDef.mod"
 
  if (PVM_FatSupPerform == Yes)
  {
    fatSupAmp       fatSupList:f1 gatepulse 1
    (fatSupPul       :sp40):f1
    fatSupSpoil     grad_shape {0, 0, PVM_FatSupSpoilAmp}
    fatSupRamp      grad_off
    fatSupGrad
  }
 
;EXEC_end   FatSup
# 66 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
# 68 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
        d6	grad_ramp{0, 0, g9}
;----------------------------------slice selection------------------	
	d3 	grad_ramp{0, 0, g0} fq1:f1
        d8	gatepulse 1
	(p0:excPulse phaselist):f1
	d4 	grad_off
;----------------------slice rephase, read dephase, phase encoding----
	d10 	grad_ramp{g2, ACQ_spatial_phase_1*g3, g1+ACQ_spatial_phase_2*g4}
	d2 	grad_off
;----------------------------------frequency encoding---------------
        denab   grad_ramp{g5, 0, 0} 
	rdepa						 \n deparx     adc   syrec fqatofqb:f1 \n derxadc     phaselist:r  			 \n deadc        ;ph1 is used (see recph)
        aqq	cpdngs17:f1	
;----------------------------------read spoiler + phase encoding----
        d11     grad_ramp{g6, ACQ_spatial_phase_1*g7, ACQ_spatial_phase_2*g8} ; 2nd and 3rd dims
	d12     grad_ramp{g6, 0, 0}
	d3	grad_off
        d0	eoscnp
;----------------------------------slice and movie loop-----------------------	
subr FlowSatInc
;EXEC_begin FlowSatInc FlowSatInc()
# 45 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/FlowSatDef.mod"
 
if(PVM_InFlowSatOnOff == 1)
{

         5u 	modlis4.inc 
          
}
 
;EXEC_end   FlowSatInc
# 87 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
if(NI > 1)
{
	2.5u grad_matrix.inc
	lo to slice times NI
}
        d20
        1u  phaselist.inc    ;phase list for RF spoiling
;----------------------------------averaging loop-------------------
if(NA > 1)
{
	lo to start times NA
}
;----------------------------------2d loop--------------------------
	ACQ_spatial_phase_1.inc
	lo to start times l3
        "l3=l1"
;----------------------------------3d loop--------------------------
	ACQ_spatial_phase_2.inc
	lo to start times l2
        2.5u
        lo to start times NAE
        2.5u
subr Evolution
;EXEC_begin Evolution Evolution()
# 19 "/opt/PV6.0.1/exp/stan/nmr/lists/pp/EvolutionDef.mod"
 
  if (PVM_EvolutionOnOff == On)
  {
    if (PVM_EvolutionMode == Variable_Delay)
    {
      evolTime
      evolTime.inc
    }
    else
    {
      evolDel
    }
  }
 
;EXEC_end   Evolution
# 110 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
        2.5u excPulse.inc
        lo to start times NR
if (ACQ_scan_type != Scan_Experiment) \n{ \n goto start \n}

exit

ph0 = 0
ph1 = 0 
# 123 "/opt/PV6.0.1/prog/curdir/mri/ParaVision/exp/lists/pp/tcwMultiFLASH.ppg"
	


