(TranslationUnit
    (SymbolTable
        1
        {
            template_02:
                (Program
                    (SymbolTable
                        8
                        {
                            change_positions_chr:
                                (Function
                                    (SymbolTable
                                        12
                                        {
                                            i:
                                                (Variable
                                                    12
                                                    i
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            j:
                                                (Variable
                                                    12
                                                    j
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            mask:
                                                (Variable
                                                    12
                                                    mask
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            n:
                                                (Variable
                                                    12
                                                    n
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            pos:
                                                (Variable
                                                    12
                                                    pos
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            vec:
                                                (Variable
                                                    12
                                                    vec
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (String 1 1 () PointerString)
                                                        [(()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    change_positions_chr
                                    (FunctionType
                                        [(Array
                                            (String 1 1 () PointerString)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )]
                                        (Allocatable
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                        )
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    [~neq_intrinsic1]
                                    [(Var 12 vec)]
                                    [(Assignment
                                        (Var 12 n)
                                        (ArraySize
                                            (Var 12 vec)
                                            ()
                                            (Integer 4)
                                            ()
                                        )
                                        ()
                                    )
                                    (Allocate
                                        [((Var 12 pos)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 12 n))]
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (If
                                        (IntegerCompare
                                            (Var 12 n)
                                            Lt
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Logical 4)
                                            ()
                                        )
                                        [(Return)]
                                        []
                                    )
                                    (Assignment
                                        (Var 12 pos)
                                        (ArrayBroadcast
                                            (IntegerConstant 0 (Integer 4) Decimal)
                                            (IntrinsicArrayFunction
                                                Shape
                                                [(Var 12 pos)]
                                                0
                                                (Array
                                                    (Integer 4)
                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 1 (Integer 4) Decimal))]
                                                    FixedSizeArray
                                                )
                                                ()
                                            )
                                            (Allocatable
                                                (Array
                                                    (Integer 4)
                                                    [(()
                                                    ())]
                                                    DescriptorArray
                                                )
                                            )
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (ArrayItem
                                            (Var 12 pos)
                                            [(()
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            ())]
                                            (Integer 4)
                                            ColMajor
                                            ()
                                        )
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        ()
                                    )
                                    (Assignment
                                        (Var 12 j)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        ()
                                    )
                                    (DoLoop
                                        ()
                                        ((Var 12 i)
                                        (IntegerConstant 2 (Integer 4) Decimal)
                                        (Var 12 n)
                                        ())
                                        [(If
                                            (FunctionCall
                                                8 ~neq_intrinsic1
                                                ()
                                                [((ArrayItem
                                                    (Var 12 vec)
                                                    [(()
                                                    (Var 12 i)
                                                    ())]
                                                    (String 1 1 () PointerString)
                                                    ColMajor
                                                    ()
                                                ))
                                                ((ArrayItem
                                                    (Var 12 vec)
                                                    [(()
                                                    (IntegerBinOp
                                                        (Var 12 i)
                                                        Sub
                                                        (IntegerConstant 1 (Integer 4) Decimal)
                                                        (Integer 4)
                                                        ()
                                                    )
                                                    ())]
                                                    (String 1 1 () PointerString)
                                                    ColMajor
                                                    ()
                                                ))]
                                                (Logical 4)
                                                ()
                                                ()
                                            )
                                            [(Assignment
                                                (Var 12 j)
                                                (IntegerBinOp
                                                    (Var 12 j)
                                                    Add
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    ()
                                                )
                                                ()
                                            )
                                            (Assignment
                                                (ArrayItem
                                                    (Var 12 pos)
                                                    [(()
                                                    (Var 12 j)
                                                    ())]
                                                    (Integer 4)
                                                    ColMajor
                                                    ()
                                                )
                                                (Var 12 i)
                                                ()
                                            )]
                                            []
                                        )]
                                        []
                                    )
                                    (Allocate
                                        [((Var 12 mask)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 12 j))]
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (DoLoop
                                        ()
                                        ((Var 12 i)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 12 j)
                                        ())
                                        [(Assignment
                                            (ArrayItem
                                                (Var 12 mask)
                                                [(()
                                                (Var 12 i)
                                                ())]
                                                (Integer 4)
                                                ColMajor
                                                ()
                                            )
                                            (ArrayItem
                                                (Var 12 pos)
                                                [(()
                                                (Var 12 i)
                                                ())]
                                                (Integer 4)
                                                ColMajor
                                                ()
                                            )
                                            ()
                                        )]
                                        []
                                    )]
                                    (Var 12 mask)
                                    Public
                                    .false.
                                    .false.
                                    ()
                                ),
                            change_positions_int:
                                (Function
                                    (SymbolTable
                                        10
                                        {
                                            i:
                                                (Variable
                                                    10
                                                    i
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            j:
                                                (Variable
                                                    10
                                                    j
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            mask:
                                                (Variable
                                                    10
                                                    mask
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            n:
                                                (Variable
                                                    10
                                                    n
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            pos:
                                                (Variable
                                                    10
                                                    pos
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            vec:
                                                (Variable
                                                    10
                                                    vec
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Integer 4)
                                                        [(()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    change_positions_int
                                    (FunctionType
                                        [(Array
                                            (Integer 4)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )]
                                        (Allocatable
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                        )
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    [~neq_intrinsic]
                                    [(Var 10 vec)]
                                    [(Assignment
                                        (Var 10 n)
                                        (ArraySize
                                            (Var 10 vec)
                                            ()
                                            (Integer 4)
                                            ()
                                        )
                                        ()
                                    )
                                    (Allocate
                                        [((Var 10 pos)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 10 n))]
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (If
                                        (IntegerCompare
                                            (Var 10 n)
                                            Lt
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Logical 4)
                                            ()
                                        )
                                        [(Return)]
                                        []
                                    )
                                    (Assignment
                                        (Var 10 pos)
                                        (ArrayBroadcast
                                            (IntegerConstant 0 (Integer 4) Decimal)
                                            (IntrinsicArrayFunction
                                                Shape
                                                [(Var 10 pos)]
                                                0
                                                (Array
                                                    (Integer 4)
                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 1 (Integer 4) Decimal))]
                                                    FixedSizeArray
                                                )
                                                ()
                                            )
                                            (Allocatable
                                                (Array
                                                    (Integer 4)
                                                    [(()
                                                    ())]
                                                    DescriptorArray
                                                )
                                            )
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (ArrayItem
                                            (Var 10 pos)
                                            [(()
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            ())]
                                            (Integer 4)
                                            ColMajor
                                            ()
                                        )
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        ()
                                    )
                                    (Assignment
                                        (Var 10 j)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        ()
                                    )
                                    (DoLoop
                                        ()
                                        ((Var 10 i)
                                        (IntegerConstant 2 (Integer 4) Decimal)
                                        (Var 10 n)
                                        ())
                                        [(If
                                            (FunctionCall
                                                8 ~neq_intrinsic
                                                ()
                                                [((ArrayItem
                                                    (Var 10 vec)
                                                    [(()
                                                    (Var 10 i)
                                                    ())]
                                                    (Integer 4)
                                                    ColMajor
                                                    ()
                                                ))
                                                ((ArrayItem
                                                    (Var 10 vec)
                                                    [(()
                                                    (IntegerBinOp
                                                        (Var 10 i)
                                                        Sub
                                                        (IntegerConstant 1 (Integer 4) Decimal)
                                                        (Integer 4)
                                                        ()
                                                    )
                                                    ())]
                                                    (Integer 4)
                                                    ColMajor
                                                    ()
                                                ))]
                                                (Logical 4)
                                                ()
                                                ()
                                            )
                                            [(Assignment
                                                (Var 10 j)
                                                (IntegerBinOp
                                                    (Var 10 j)
                                                    Add
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    ()
                                                )
                                                ()
                                            )
                                            (Assignment
                                                (ArrayItem
                                                    (Var 10 pos)
                                                    [(()
                                                    (Var 10 j)
                                                    ())]
                                                    (Integer 4)
                                                    ColMajor
                                                    ()
                                                )
                                                (Var 10 i)
                                                ()
                                            )]
                                            []
                                        )]
                                        []
                                    )
                                    (Allocate
                                        [((Var 10 mask)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 10 j))]
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (DoLoop
                                        ()
                                        ((Var 10 i)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 10 j)
                                        ())
                                        [(Assignment
                                            (ArrayItem
                                                (Var 10 mask)
                                                [(()
                                                (Var 10 i)
                                                ())]
                                                (Integer 4)
                                                ColMajor
                                                ()
                                            )
                                            (ArrayItem
                                                (Var 10 pos)
                                                [(()
                                                (Var 10 i)
                                                ())]
                                                (Integer 4)
                                                ColMajor
                                                ()
                                            )
                                            ()
                                        )]
                                        []
                                    )]
                                    (Var 10 mask)
                                    Public
                                    .false.
                                    .false.
                                    ()
                                ),
                            change_positions_tmpl:
                                (ExternalSymbol
                                    8
                                    change_positions_tmpl
                                    2 change_positions_tmpl
                                    template_02_m
                                    []
                                    change_positions_tmpl
                                    Public
                                ),
                            eq:
                                (ExternalSymbol
                                    8
                                    eq
                                    2 eq
                                    template_02_m
                                    []
                                    eq
                                    Public
                                ),
                            ~neq:
                                (CustomOperator
                                    8
                                    ~neq
                                    [8 ~neq_intrinsic
                                    8 ~neq_intrinsic1]
                                    Public
                                ),
                            ~neq_intrinsic:
                                (Function
                                    (SymbolTable
                                        9
                                        {
                                            arg0:
                                                (Variable
                                                    9
                                                    arg0
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            arg1:
                                                (Variable
                                                    9
                                                    arg1
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ret:
                                                (Variable
                                                    9
                                                    ret
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Logical 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    ~neq_intrinsic
                                    (FunctionType
                                        [(Integer 4)
                                        (Integer 4)]
                                        (Logical 4)
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 9 arg0)
                                    (Var 9 arg1)]
                                    [(Assignment
                                        (Var 9 ret)
                                        (IntegerCompare
                                            (Var 9 arg0)
                                            NotEq
                                            (Var 9 arg1)
                                            (Logical 4)
                                            ()
                                        )
                                        ()
                                    )]
                                    (Var 9 ret)
                                    Public
                                    .false.
                                    .true.
                                    ()
                                ),
                            ~neq_intrinsic1:
                                (Function
                                    (SymbolTable
                                        11
                                        {
                                            arg0:
                                                (Variable
                                                    11
                                                    arg0
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (String 1 1 () PointerString)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            arg1:
                                                (Variable
                                                    11
                                                    arg1
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (String 1 1 () PointerString)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ret:
                                                (Variable
                                                    11
                                                    ret
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Logical 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    ~neq_intrinsic1
                                    (FunctionType
                                        [(String 1 1 () PointerString)
                                        (String 1 1 () PointerString)]
                                        (Logical 4)
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 11 arg0)
                                    (Var 11 arg1)]
                                    [(Assignment
                                        (Var 11 ret)
                                        (StringCompare
                                            (Var 11 arg0)
                                            NotEq
                                            (Var 11 arg1)
                                            (Logical 4)
                                            ()
                                        )
                                        ()
                                    )]
                                    (Var 11 ret)
                                    Public
                                    .false.
                                    .true.
                                    ()
                                )
                        })
                    template_02
                    [template_02_m]
                    [(Print
                        (StringFormat
                            ()
                            [(FunctionCall
                                8 change_positions_int
                                ()
                                [((ArrayPhysicalCast
                                    (ArrayConstant
                                        28
                                        [3, 3, 6, ...., 2, 2, 1]
                                        (Array
                                            (Integer 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (IntegerConstant 7 (Integer 4) Decimal))]
                                            FixedSizeArray
                                        )
                                        ColMajor
                                    )
                                    FixedSizeArray
                                    DescriptorArray
                                    (Array
                                        (Integer 4)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 7 (Integer 4) Decimal))]
                                        DescriptorArray
                                    )
                                    ()
                                ))]
                                (Allocatable
                                    (Array
                                        (Integer 4)
                                        [(()
                                        ())]
                                        DescriptorArray
                                    )
                                )
                                ()
                                ()
                            )]
                            FormatFortran
                            (String -1 0 () PointerString)
                            ()
                        )
                    )
                    (Print
                        (StringFormat
                            ()
                            [(FunctionCall
                                8 change_positions_chr
                                ()
                                [((ArrayPhysicalCast
                                    (ArrayConstant
                                        7
                                        ["a", "a", "b", ...., "p", "p", "o"]
                                        (Array
                                            (String 1 1 () PointerString)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (IntegerConstant 7 (Integer 4) Decimal))]
                                            FixedSizeArray
                                        )
                                        ColMajor
                                    )
                                    FixedSizeArray
                                    DescriptorArray
                                    (Array
                                        (String 1 1 () PointerString)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 7 (Integer 4) Decimal))]
                                        DescriptorArray
                                    )
                                    ()
                                ))]
                                (Allocatable
                                    (Array
                                        (Integer 4)
                                        [(()
                                        ())]
                                        DescriptorArray
                                    )
                                )
                                ()
                                ()
                            )]
                            FormatFortran
                            (String -1 0 () PointerString)
                            ()
                        )
                    )]
                ),
            template_02_m:
                (Module
                    (SymbolTable
                        2
                        {
                            change_positions_tmpl:
                                (Template
                                    (SymbolTable
                                        5
                                        {
                                            change_positions_t:
                                                (Function
                                                    (SymbolTable
                                                        7
                                                        {
                                                            i:
                                                                (Variable
                                                                    7
                                                                    i
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            j:
                                                                (Variable
                                                                    7
                                                                    j
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            mask:
                                                                (Variable
                                                                    7
                                                                    mask
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Allocatable
                                                                        (Array
                                                                            (Integer 4)
                                                                            [(()
                                                                            ())]
                                                                            DescriptorArray
                                                                        )
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    7
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            pos:
                                                                (Variable
                                                                    7
                                                                    pos
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Allocatable
                                                                        (Array
                                                                            (Integer 4)
                                                                            [(()
                                                                            ())]
                                                                            DescriptorArray
                                                                        )
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            vec:
                                                                (Variable
                                                                    7
                                                                    vec
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    change_positions_t
                                                    (FunctionType
                                                        [(Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Allocatable
                                                            (Array
                                                                (Integer 4)
                                                                [(()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [ne]
                                                    [(Var 7 vec)]
                                                    [(Assignment
                                                        (Var 7 n)
                                                        (ArraySize
                                                            (Var 7 vec)
                                                            ()
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Allocate
                                                        [((Var 7 pos)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 7 n))]
                                                        ()
                                                        ())]
                                                        ()
                                                        ()
                                                        ()
                                                    )
                                                    (If
                                                        (IntegerCompare
                                                            (Var 7 n)
                                                            Lt
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Logical 4)
                                                            ()
                                                        )
                                                        [(Return)]
                                                        []
                                                    )
                                                    (Assignment
                                                        (Var 7 pos)
                                                        (ArrayBroadcast
                                                            (IntegerConstant 0 (Integer 4) Decimal)
                                                            (IntrinsicArrayFunction
                                                                Shape
                                                                [(Var 7 pos)]
                                                                0
                                                                (Array
                                                                    (Integer 4)
                                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                                    (IntegerConstant 1 (Integer 4) Decimal))]
                                                                    FixedSizeArray
                                                                )
                                                                ()
                                                            )
                                                            (Allocatable
                                                                (Array
                                                                    (Integer 4)
                                                                    [(()
                                                                    ())]
                                                                    DescriptorArray
                                                                )
                                                            )
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (ArrayItem
                                                            (Var 7 pos)
                                                            [(()
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            ())]
                                                            (Integer 4)
                                                            ColMajor
                                                            ()
                                                        )
                                                        (IntegerConstant 1 (Integer 4) Decimal)
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 7 j)
                                                        (IntegerConstant 1 (Integer 4) Decimal)
                                                        ()
                                                    )
                                                    (DoLoop
                                                        ()
                                                        ((Var 7 i)
                                                        (IntegerConstant 2 (Integer 4) Decimal)
                                                        (Var 7 n)
                                                        ())
                                                        [(If
                                                            (FunctionCall
                                                                5 ne
                                                                ()
                                                                [((ArrayItem
                                                                    (Var 7 vec)
                                                                    [(()
                                                                    (Var 7 i)
                                                                    ())]
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ColMajor
                                                                    ()
                                                                ))
                                                                ((ArrayItem
                                                                    (Var 7 vec)
                                                                    [(()
                                                                    (IntegerBinOp
                                                                        (Var 7 i)
                                                                        Sub
                                                                        (IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Integer 4)
                                                                        ()
                                                                    )
                                                                    ())]
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ColMajor
                                                                    ()
                                                                ))]
                                                                (Logical 4)
                                                                ()
                                                                ()
                                                            )
                                                            [(Assignment
                                                                (Var 7 j)
                                                                (IntegerBinOp
                                                                    (Var 7 j)
                                                                    Add
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                )
                                                                ()
                                                            )
                                                            (Assignment
                                                                (ArrayItem
                                                                    (Var 7 pos)
                                                                    [(()
                                                                    (Var 7 j)
                                                                    ())]
                                                                    (Integer 4)
                                                                    ColMajor
                                                                    ()
                                                                )
                                                                (Var 7 i)
                                                                ()
                                                            )]
                                                            []
                                                        )]
                                                        []
                                                    )
                                                    (Allocate
                                                        [((Var 7 mask)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 7 j))]
                                                        ()
                                                        ())]
                                                        ()
                                                        ()
                                                        ()
                                                    )
                                                    (DoLoop
                                                        ()
                                                        ((Var 7 i)
                                                        (IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 7 j)
                                                        ())
                                                        [(Assignment
                                                            (ArrayItem
                                                                (Var 7 mask)
                                                                [(()
                                                                (Var 7 i)
                                                                ())]
                                                                (Integer 4)
                                                                ColMajor
                                                                ()
                                                            )
                                                            (ArrayItem
                                                                (Var 7 pos)
                                                                [(()
                                                                (Var 7 i)
                                                                ())]
                                                                (Integer 4)
                                                                ColMajor
                                                                ()
                                                            )
                                                            ()
                                                        )]
                                                        []
                                                    )]
                                                    (Var 7 mask)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            ne:
                                                (Function
                                                    (SymbolTable
                                                        6
                                                        {
                                                            lhs:
                                                                (Variable
                                                                    6
                                                                    lhs
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Public
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ne:
                                                                (Variable
                                                                    6
                                                                    ne
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Logical 4)
                                                                    ()
                                                                    Source
                                                                    Public
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            rhs:
                                                                (Variable
                                                                    6
                                                                    rhs
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Public
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    ne
                                                    (FunctionType
                                                        [(TypeParameter
                                                            t
                                                        )
                                                        (TypeParameter
                                                            t
                                                        )]
                                                        (Logical 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 6 lhs)
                                                    (Var 6 rhs)]
                                                    []
                                                    (Var 6 ne)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            t:
                                                (Variable
                                                    5
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    change_positions_tmpl
                                    [t
                                    ne]
                                    [(Require
                                        eq
                                        [t
                                        ne]
                                    )]
                                ),
                            eq:
                                (Requirement
                                    (SymbolTable
                                        3
                                        {
                                            ne:
                                                (Function
                                                    (SymbolTable
                                                        4
                                                        {
                                                            lhs:
                                                                (Variable
                                                                    4
                                                                    lhs
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Public
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ne:
                                                                (Variable
                                                                    4
                                                                    ne
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Logical 4)
                                                                    ()
                                                                    Source
                                                                    Public
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            rhs:
                                                                (Variable
                                                                    4
                                                                    rhs
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Public
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    ne
                                                    (FunctionType
                                                        [(TypeParameter
                                                            t
                                                        )
                                                        (TypeParameter
                                                            t
                                                        )]
                                                        (Logical 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 4 lhs)
                                                    (Var 4 rhs)]
                                                    []
                                                    (Var 4 ne)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            t:
                                                (Variable
                                                    3
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    eq
                                    [t
                                    ne]
                                    []
                                )
                        })
                    template_02_m
                    [template_02_m]
                    .false.
                    .false.
                )
        })
    []
)
