(TranslationUnit
    (SymbolTable
        1
        {
            allocate_01:
                (Program
                    (SymbolTable
                        2
                        {
                            a:
                                (Variable
                                    2
                                    a
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Integer 4)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            b:
                                (Variable
                                    2
                                    b
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Real 4)
                                            [(()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            c:
                                (Variable
                                    2
                                    c
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Complex 4)
                                            [(()
                                            ())
                                            (()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            d:
                                (Variable
                                    2
                                    d
                                    []
                                    Local
                                    (ArrayConstant
                                        20
                                        [1, 2, 3, 4, 5]
                                        (Array
                                            (Integer 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (IntegerConstant 5 (Integer 4) Decimal))]
                                            FixedSizeArray
                                        )
                                        ColMajor
                                    )
                                    (ArrayConstant
                                        20
                                        [1, 2, 3, 4, 5]
                                        (Array
                                            (Integer 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (IntegerConstant 5 (Integer 4) Decimal))]
                                            FixedSizeArray
                                        )
                                        ColMajor
                                    )
                                    Save
                                    (Array
                                        (Integer 4)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 5 (Integer 4) Decimal))]
                                        FixedSizeArray
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            e:
                                (Variable
                                    2
                                    e
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Integer 4)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            f:
                                (Variable
                                    2
                                    f
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Real 4)
                                            [(()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            g:
                                (Variable
                                    2
                                    g
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Complex 4)
                                            [(()
                                            ())
                                            (()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            i:
                                (Variable
                                    2
                                    i
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            ierr:
                                (Variable
                                    2
                                    ierr
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            j:
                                (Variable
                                    2
                                    j
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            k:
                                (Variable
                                    2
                                    k
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            n:
                                (Variable
                                    2
                                    n
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            r:
                                (Variable
                                    2
                                    r
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Complex 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                ),
                            reduce_sum:
                                (Function
                                    (SymbolTable
                                        4
                                        {
                                            c:
                                                (Variable
                                                    4
                                                    c
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Complex 4)
                                                        [(()
                                                        ())
                                                        (()
                                                        ())
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            i:
                                                (Variable
                                                    4
                                                    i
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            j:
                                                (Variable
                                                    4
                                                    j
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            k:
                                                (Variable
                                                    4
                                                    k
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            r:
                                                (Variable
                                                    4
                                                    r
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Complex 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                )
                                        })
                                    reduce_sum
                                    (FunctionType
                                        [(Array
                                            (Complex 4)
                                            [(()
                                            ())
                                            (()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )]
                                        (Complex 4)
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 4 c)]
                                    [(Assignment
                                        (Var 4 r)
                                        (Cast
                                            (IntegerConstant 0 (Integer 4) Decimal)
                                            IntegerToComplex
                                            (Complex 4)
                                            (ComplexConstant
                                                0.000000
                                                0.000000
                                                (Complex 4)
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (DoLoop
                                        ()
                                        ((Var 4 i)
                                        (ArrayBound
                                            (Var 4 c)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (ArrayBound
                                            (Var 4 c)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            UBound
                                            ()
                                        )
                                        ())
                                        [(DoLoop
                                            ()
                                            ((Var 4 j)
                                            (ArrayBound
                                                (Var 4 c)
                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                (Integer 4)
                                                LBound
                                                ()
                                            )
                                            (ArrayBound
                                                (Var 4 c)
                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                (Integer 4)
                                                UBound
                                                ()
                                            )
                                            ())
                                            [(DoLoop
                                                ()
                                                ((Var 4 k)
                                                (ArrayBound
                                                    (Var 4 c)
                                                    (IntegerConstant 3 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (ArrayBound
                                                    (Var 4 c)
                                                    (IntegerConstant 3 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                ())
                                                [(Assignment
                                                    (Var 4 r)
                                                    (ComplexBinOp
                                                        (Var 4 r)
                                                        Add
                                                        (ArrayItem
                                                            (Var 4 c)
                                                            [(()
                                                            (Var 4 i)
                                                            ())
                                                            (()
                                                            (Var 4 j)
                                                            ())
                                                            (()
                                                            (Var 4 k)
                                                            ())]
                                                            (Complex 4)
                                                            ColMajor
                                                            ()
                                                        )
                                                        (Complex 4)
                                                        ()
                                                    )
                                                    ()
                                                    .false.
                                                    .false.
                                                )]
                                                []
                                            )]
                                            []
                                        )]
                                        []
                                    )]
                                    (Var 4 r)
                                    Public
                                    .true.
                                    .true.
                                    ()
                                ),
                            sum:
                                (Function
                                    (SymbolTable
                                        3
                                        {
                                            a:
                                                (Variable
                                                    3
                                                    a
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            b:
                                                (Variable
                                                    3
                                                    b
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Real 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            c:
                                                (Variable
                                                    3
                                                    c
                                                    []
                                                    Out
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Complex 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            c_copy:
                                                (Variable
                                                    3
                                                    c_copy
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Complex 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            i:
                                                (Variable
                                                    3
                                                    i
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            j:
                                                (Variable
                                                    3
                                                    j
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                ),
                                            k:
                                                (Variable
                                                    3
                                                    k
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                )
                                        })
                                    sum
                                    (FunctionType
                                        [(Allocatable
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                        )
                                        (Allocatable
                                            (Array
                                                (Real 4)
                                                [(()
                                                ())
                                                (()
                                                ())]
                                                DescriptorArray
                                            )
                                        )
                                        (Allocatable
                                            (Array
                                                (Complex 4)
                                                [(()
                                                ())
                                                (()
                                                ())
                                                (()
                                                ())]
                                                DescriptorArray
                                            )
                                        )]
                                        ()
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 3 a)
                                    (Var 3 b)
                                    (Var 3 c)]
                                    [(Allocate
                                        [((Var 3 c_copy)
                                        [((ArrayBound
                                            (Var 3 a)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBound
                                                    (Var 3 a)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                Sub
                                                (ArrayBound
                                                    (Var 3 a)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (Integer 4)
                                                ()
                                            )
                                            Add
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        ))
                                        ((ArrayBound
                                            (Var 3 b)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                Sub
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (Integer 4)
                                                ()
                                            )
                                            Add
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        ))
                                        ((ArrayBound
                                            (Var 3 b)
                                            (IntegerConstant 2 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                Sub
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (Integer 4)
                                                ()
                                            )
                                            Add
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        ))]
                                        ()
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (Allocate
                                        [((Var 3 c)
                                        [((ArrayBound
                                            (Var 3 a)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBound
                                                    (Var 3 a)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                Sub
                                                (ArrayBound
                                                    (Var 3 a)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (Integer 4)
                                                ()
                                            )
                                            Add
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        ))
                                        ((ArrayBound
                                            (Var 3 b)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                Sub
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (Integer 4)
                                                ()
                                            )
                                            Add
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        ))
                                        ((ArrayBound
                                            (Var 3 b)
                                            (IntegerConstant 2 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                Sub
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (Integer 4)
                                                ()
                                            )
                                            Add
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        ))]
                                        ()
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (DoLoop
                                        ()
                                        ((Var 3 i)
                                        (ArrayBound
                                            (Var 3 a)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            LBound
                                            ()
                                        )
                                        (ArrayBound
                                            (Var 3 a)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            UBound
                                            ()
                                        )
                                        ())
                                        [(DoLoop
                                            ()
                                            ((Var 3 j)
                                            (ArrayBound
                                                (Var 3 b)
                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                (Integer 4)
                                                LBound
                                                ()
                                            )
                                            (ArrayBound
                                                (Var 3 b)
                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                (Integer 4)
                                                UBound
                                                ()
                                            )
                                            ())
                                            [(DoLoop
                                                ()
                                                ((Var 3 k)
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    LBound
                                                    ()
                                                )
                                                (ArrayBound
                                                    (Var 3 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    UBound
                                                    ()
                                                )
                                                ())
                                                [(Assignment
                                                    (ArrayItem
                                                        (Var 3 c_copy)
                                                        [(()
                                                        (Var 3 i)
                                                        ())
                                                        (()
                                                        (Var 3 j)
                                                        ())
                                                        (()
                                                        (Var 3 k)
                                                        ())]
                                                        (Complex 4)
                                                        ColMajor
                                                        ()
                                                    )
                                                    (Cast
                                                        (RealBinOp
                                                            (Cast
                                                                (ArrayItem
                                                                    (Var 3 a)
                                                                    [(()
                                                                    (Var 3 i)
                                                                    ())]
                                                                    (Integer 4)
                                                                    ColMajor
                                                                    ()
                                                                )
                                                                IntegerToReal
                                                                (Real 4)
                                                                ()
                                                                ()
                                                            )
                                                            Add
                                                            (ArrayItem
                                                                (Var 3 b)
                                                                [(()
                                                                (Var 3 j)
                                                                ())
                                                                (()
                                                                (Var 3 k)
                                                                ())]
                                                                (Real 4)
                                                                ColMajor
                                                                ()
                                                            )
                                                            (Real 4)
                                                            ()
                                                        )
                                                        RealToComplex
                                                        (Complex 4)
                                                        ()
                                                        ()
                                                    )
                                                    ()
                                                    .false.
                                                    .false.
                                                )
                                                (Assignment
                                                    (ArrayItem
                                                        (Var 3 c)
                                                        [(()
                                                        (Var 3 i)
                                                        ())
                                                        (()
                                                        (Var 3 j)
                                                        ())
                                                        (()
                                                        (Var 3 k)
                                                        ())]
                                                        (Complex 4)
                                                        ColMajor
                                                        ()
                                                    )
                                                    (Cast
                                                        (RealBinOp
                                                            (Cast
                                                                (ArrayItem
                                                                    (Var 3 a)
                                                                    [(()
                                                                    (Var 3 i)
                                                                    ())]
                                                                    (Integer 4)
                                                                    ColMajor
                                                                    ()
                                                                )
                                                                IntegerToReal
                                                                (Real 4)
                                                                ()
                                                                ()
                                                            )
                                                            Add
                                                            (ArrayItem
                                                                (Var 3 b)
                                                                [(()
                                                                (Var 3 j)
                                                                ())
                                                                (()
                                                                (Var 3 k)
                                                                ())]
                                                                (Real 4)
                                                                ColMajor
                                                                ()
                                                            )
                                                            (Real 4)
                                                            ()
                                                        )
                                                        RealToComplex
                                                        (Complex 4)
                                                        ()
                                                        ()
                                                    )
                                                    ()
                                                    .false.
                                                    .false.
                                                )]
                                                []
                                            )]
                                            []
                                        )]
                                        []
                                    )
                                    (ExplicitDeallocate
                                        [(Var 3 c_copy)]
                                    )]
                                    ()
                                    Public
                                    .true.
                                    .true.
                                    ()
                                )
                        })
                    allocate_01
                    []
                    [(Assignment
                        (Var 2 n)
                        (IntegerConstant 10 (Integer 4) Decimal)
                        ()
                        .false.
                        .false.
                    )
                    (Allocate
                        [((Var 2 e)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 5 (Integer 4) Decimal))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        (Var 2 d)
                    )
                    (If
                        ()
                        (IntegerCompare
                            (ArraySize
                                (Var 2 e)
                                ()
                                (Integer 4)
                                ()
                            )
                            NotEq
                            (IntegerConstant 5 (Integer 4) Decimal)
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (Allocate
                        [((Var 2 a)
                        [((ArrayBound
                            (Var 2 e)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArraySize
                            (Var 2 e)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        (Var 2 e)
                    )
                    (If
                        ()
                        (IntegerCompare
                            (ArraySize
                                (Var 2 a)
                                ()
                                (Integer 4)
                                ()
                            )
                            NotEq
                            (IntegerConstant 5 (Integer 4) Decimal)
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (ExplicitDeallocate
                        [(Var 2 a)]
                    )
                    (Allocate
                        [((Var 2 b)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 2 (Integer 4) Decimal))
                        ((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 3 (Integer 4) Decimal))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Allocate
                        [((Var 2 f)
                        [((ArrayBound
                            (Var 2 b)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArraySize
                            (Var 2 b)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))
                        ((ArrayBound
                            (Var 2 b)
                            (IntegerConstant 2 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArraySize
                            (Var 2 b)
                            (IntegerConstant 2 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        (Var 2 b)
                    )
                    (If
                        ()
                        (LogicalBinOp
                            (IntegerCompare
                                (ArraySize
                                    (Var 2 f)
                                    (IntegerConstant 1 (Integer 4) Decimal)
                                    (Integer 4)
                                    ()
                                )
                                NotEq
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Logical 4)
                                ()
                            )
                            Or
                            (IntegerCompare
                                (ArraySize
                                    (Var 2 f)
                                    (IntegerConstant 2 (Integer 4) Decimal)
                                    (Integer 4)
                                    ()
                                )
                                NotEq
                                (IntegerConstant 3 (Integer 4) Decimal)
                                (Logical 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (ExplicitDeallocate
                        [(Var 2 b)]
                    )
                    (Allocate
                        [((Var 2 c)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 2 (Integer 4) Decimal))
                        ((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 3 (Integer 4) Decimal))
                        ((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 4 (Integer 4) Decimal))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Allocate
                        [((Var 2 g)
                        [((ArrayBound
                            (Var 2 c)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArraySize
                            (Var 2 c)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))
                        ((ArrayBound
                            (Var 2 c)
                            (IntegerConstant 2 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArraySize
                            (Var 2 c)
                            (IntegerConstant 2 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))
                        ((ArrayBound
                            (Var 2 c)
                            (IntegerConstant 3 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArraySize
                            (Var 2 c)
                            (IntegerConstant 3 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        (Var 2 c)
                    )
                    (If
                        ()
                        (LogicalBinOp
                            (LogicalBinOp
                                (IntegerCompare
                                    (ArraySize
                                        (Var 2 g)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        (Integer 4)
                                        ()
                                    )
                                    NotEq
                                    (IntegerConstant 2 (Integer 4) Decimal)
                                    (Logical 4)
                                    ()
                                )
                                Or
                                (IntegerCompare
                                    (ArraySize
                                        (Var 2 g)
                                        (IntegerConstant 2 (Integer 4) Decimal)
                                        (Integer 4)
                                        ()
                                    )
                                    NotEq
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    (Logical 4)
                                    ()
                                )
                                (Logical 4)
                                ()
                            )
                            Or
                            (IntegerCompare
                                (ArraySize
                                    (Var 2 g)
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    (Integer 4)
                                    ()
                                )
                                NotEq
                                (IntegerConstant 4 (Integer 4) Decimal)
                                (Logical 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (ExplicitDeallocate
                        [(Var 2 c)]
                    )
                    (Allocate
                        [((Var 2 a)
                        [((IntegerConstant 5 (Integer 4) Decimal)
                        (IntegerBinOp
                            (Var 2 n)
                            Add
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))]
                        ()
                        ()
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Allocate
                        [((Var 2 b)
                        [((Var 2 n)
                        (IntegerBinOp
                            (IntegerBinOp
                                (IntegerBinOp
                                    (IntegerConstant 2 (Integer 4) Decimal)
                                    Mul
                                    (Var 2 n)
                                    (Integer 4)
                                    ()
                                )
                                Sub
                                (Var 2 n)
                                (Integer 4)
                                ()
                            )
                            Add
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))
                        ((Var 2 n)
                        (IntegerBinOp
                            (IntegerBinOp
                                (IntegerBinOp
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    Mul
                                    (Var 2 n)
                                    (Integer 4)
                                    ()
                                )
                                Sub
                                (Var 2 n)
                                (Integer 4)
                                ()
                            )
                            Add
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            ()
                        ))]
                        ()
                        ()
                        ())]
                        (Var 2 ierr)
                        ()
                        ()
                    )
                    (If
                        ()
                        (IntegerCompare
                            (ArraySize
                                (Var 2 a)
                                ()
                                (Integer 4)
                                ()
                            )
                            NotEq
                            (IntegerBinOp
                                (Var 2 n)
                                Add
                                (IntegerConstant 1 (Integer 4) Decimal)
                                (Integer 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (If
                        ()
                        (IntegerCompare
                            (ArraySize
                                (Var 2 b)
                                ()
                                (Integer 4)
                                ()
                            )
                            NotEq
                            (IntegerBinOp
                                (IntegerBinOp
                                    (Var 2 n)
                                    Add
                                    (IntegerConstant 1 (Integer 4) Decimal)
                                    (Integer 4)
                                    ()
                                )
                                Mul
                                (IntegerBinOp
                                    (IntegerBinOp
                                        (IntegerConstant 2 (Integer 4) Decimal)
                                        Mul
                                        (Var 2 n)
                                        (Integer 4)
                                        ()
                                    )
                                    Add
                                    (IntegerConstant 1 (Integer 4) Decimal)
                                    (Integer 4)
                                    ()
                                )
                                (Integer 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 a)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 a)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(Assignment
                            (ArrayItem
                                (Var 2 a)
                                [(()
                                (Var 2 i)
                                ())]
                                (Integer 4)
                                ColMajor
                                ()
                            )
                            (Var 2 i)
                            ()
                            .false.
                            .false.
                        )]
                        []
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 b)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 b)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(DoLoop
                            ()
                            ((Var 2 j)
                            (ArrayBound
                                (Var 2 b)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                LBound
                                ()
                            )
                            (ArrayBound
                                (Var 2 b)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                UBound
                                ()
                            )
                            ())
                            [(Assignment
                                (ArrayItem
                                    (Var 2 b)
                                    [(()
                                    (Var 2 i)
                                    ())
                                    (()
                                    (Var 2 j)
                                    ())]
                                    (Real 4)
                                    ColMajor
                                    ()
                                )
                                (Cast
                                    (IntegerBinOp
                                        (Var 2 i)
                                        Add
                                        (Var 2 j)
                                        (Integer 4)
                                        ()
                                    )
                                    IntegerToReal
                                    (Real 4)
                                    ()
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )]
                            []
                        )]
                        []
                    )
                    (SubroutineCall
                        2 sum
                        ()
                        [((Var 2 a))
                        ((Var 2 b))
                        ((Var 2 c))]
                        ()
                        .false.
                    )
                    (If
                        ()
                        (LogicalBinOp
                            (IntegerCompare
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 1 (Integer 4) Decimal)
                                    (Integer 4)
                                    LBound
                                    ()
                                )
                                NotEq
                                (IntegerConstant 5 (Integer 4) Decimal)
                                (Logical 4)
                                ()
                            )
                            Or
                            (IntegerCompare
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 1 (Integer 4) Decimal)
                                    (Integer 4)
                                    UBound
                                    ()
                                )
                                NotEq
                                (IntegerBinOp
                                    (Var 2 n)
                                    Add
                                    (IntegerConstant 5 (Integer 4) Decimal)
                                    (Integer 4)
                                    ()
                                )
                                (Logical 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (If
                        ()
                        (LogicalBinOp
                            (IntegerCompare
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 2 (Integer 4) Decimal)
                                    (Integer 4)
                                    LBound
                                    ()
                                )
                                NotEq
                                (Var 2 n)
                                (Logical 4)
                                ()
                            )
                            Or
                            (IntegerCompare
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 2 (Integer 4) Decimal)
                                    (Integer 4)
                                    UBound
                                    ()
                                )
                                NotEq
                                (IntegerBinOp
                                    (IntegerConstant 2 (Integer 4) Decimal)
                                    Mul
                                    (Var 2 n)
                                    (Integer 4)
                                    ()
                                )
                                (Logical 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (If
                        ()
                        (LogicalBinOp
                            (IntegerCompare
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    (Integer 4)
                                    LBound
                                    ()
                                )
                                NotEq
                                (Var 2 n)
                                (Logical 4)
                                ()
                            )
                            Or
                            (IntegerCompare
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    (Integer 4)
                                    UBound
                                    ()
                                )
                                NotEq
                                (IntegerBinOp
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    Mul
                                    (Var 2 n)
                                    (Integer 4)
                                    ()
                                )
                                (Logical 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 a)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 a)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(If
                            ()
                            (IntegerCompare
                                (ArrayItem
                                    (Var 2 a)
                                    [(()
                                    (Var 2 i)
                                    ())]
                                    (Integer 4)
                                    ColMajor
                                    ()
                                )
                                NotEq
                                (Var 2 i)
                                (Logical 4)
                                ()
                            )
                            [(ErrorStop
                                ()
                            )]
                            []
                        )]
                        []
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 b)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 b)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(DoLoop
                            ()
                            ((Var 2 j)
                            (ArrayBound
                                (Var 2 b)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                LBound
                                ()
                            )
                            (ArrayBound
                                (Var 2 b)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                UBound
                                ()
                            )
                            ())
                            [(If
                                ()
                                (RealCompare
                                    (ArrayItem
                                        (Var 2 b)
                                        [(()
                                        (Var 2 i)
                                        ())
                                        (()
                                        (Var 2 j)
                                        ())]
                                        (Real 4)
                                        ColMajor
                                        ()
                                    )
                                    NotEq
                                    (Cast
                                        (IntegerBinOp
                                            (Var 2 i)
                                            Add
                                            (Var 2 j)
                                            (Integer 4)
                                            ()
                                        )
                                        IntegerToReal
                                        (Real 4)
                                        ()
                                        ()
                                    )
                                    (Logical 4)
                                    ()
                                )
                                [(ErrorStop
                                    ()
                                )]
                                []
                            )]
                            []
                        )]
                        []
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 c)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 c)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(DoLoop
                            ()
                            ((Var 2 j)
                            (ArrayBound
                                (Var 2 c)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                LBound
                                ()
                            )
                            (ArrayBound
                                (Var 2 c)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                UBound
                                ()
                            )
                            ())
                            [(DoLoop
                                ()
                                ((Var 2 k)
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    (Integer 4)
                                    LBound
                                    ()
                                )
                                (ArrayBound
                                    (Var 2 c)
                                    (IntegerConstant 3 (Integer 4) Decimal)
                                    (Integer 4)
                                    UBound
                                    ()
                                )
                                ())
                                [(If
                                    ()
                                    (ComplexCompare
                                        (ArrayItem
                                            (Var 2 c)
                                            [(()
                                            (Var 2 i)
                                            ())
                                            (()
                                            (Var 2 j)
                                            ())
                                            (()
                                            (Var 2 k)
                                            ())]
                                            (Complex 4)
                                            ColMajor
                                            ()
                                        )
                                        NotEq
                                        (Cast
                                            (IntegerBinOp
                                                (IntegerBinOp
                                                    (Var 2 i)
                                                    Add
                                                    (Var 2 j)
                                                    (Integer 4)
                                                    ()
                                                )
                                                Add
                                                (Var 2 k)
                                                (Integer 4)
                                                ()
                                            )
                                            IntegerToComplex
                                            (Complex 4)
                                            ()
                                            ()
                                        )
                                        (Logical 4)
                                        ()
                                    )
                                    [(ErrorStop
                                        ()
                                    )]
                                    []
                                )]
                                []
                            )]
                            []
                        )]
                        []
                    )
                    (Assignment
                        (Var 2 r)
                        (FunctionCall
                            2 reduce_sum
                            ()
                            [((Var 2 c))]
                            (Complex 4)
                            ()
                            ()
                        )
                        ()
                        .false.
                        .false.
                    )
                    (If
                        ()
                        (ComplexCompare
                            (Var 2 r)
                            NotEq
                            (ComplexConstructor
                                (RealConstant
                                    114345.000000
                                    (Real 4)
                                )
                                (RealConstant
                                    0.000000
                                    (Real 4)
                                )
                                (Complex 4)
                                (ComplexConstant
                                    114345.000000
                                    0.000000
                                    (Complex 4)
                                )
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )]
                )
        })
    []
)
