(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
                                            (Integer 4)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                    []
                                ),
                            c:
                                (Variable
                                    2
                                    c
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (Integer 4)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    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
                                    ()
                                    []
                                ),
                            isource:
                                (Variable
                                    2
                                    isource
                                    []
                                    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
                                    ()
                                    []
                                ),
                            whole_square:
                                (Function
                                    (SymbolTable
                                        3
                                        {
                                            a:
                                                (Variable
                                                    3
                                                    a
                                                    []
                                                    Unspecified
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            a_2:
                                                (Variable
                                                    3
                                                    a_2
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            ab:
                                                (Variable
                                                    3
                                                    ab
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            abc:
                                                (Variable
                                                    3
                                                    abc
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            b:
                                                (Variable
                                                    3
                                                    b
                                                    []
                                                    Unspecified
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            b_2:
                                                (Variable
                                                    3
                                                    b_2
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            bc:
                                                (Variable
                                                    3
                                                    bc
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            c:
                                                (Variable
                                                    3
                                                    c
                                                    []
                                                    Unspecified
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            c_2:
                                                (Variable
                                                    3
                                                    c_2
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            ca:
                                                (Variable
                                                    3
                                                    ca
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            n:
                                                (Variable
                                                    3
                                                    n
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                ),
                                            status:
                                                (Variable
                                                    3
                                                    status
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Public
                                                    Required
                                                    .false.
                                                    .false.
                                                    .false.
                                                    ()
                                                    .false.
                                                    .false.
                                                    NotMethod
                                                    ()
                                                    []
                                                )
                                        })
                                    whole_square
                                    (FunctionType
                                        [(Allocatable
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                        )
                                        (Allocatable
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                        )
                                        (Allocatable
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                        )]
                                        (Integer 4)
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 3 a)
                                    (Var 3 b)
                                    (Var 3 c)]
                                    [(Assignment
                                        (Var 3 n)
                                        (ArraySize
                                            (Var 3 a)
                                            ()
                                            (Integer 4)
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Allocate
                                        [((Var 3 a_2)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())
                                        ((Var 3 b_2)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())
                                        ((Var 3 c_2)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (Allocate
                                        [((Var 3 ab)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())
                                        ((Var 3 bc)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())
                                        ((Var 3 ca)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())
                                        ((Var 3 abc)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (Var 3 n))]
                                        ()
                                        ()
                                        ())]
                                        ()
                                        ()
                                        ()
                                    )
                                    (Assignment
                                        (Var 3 status)
                                        (IntegerConstant 0 (Integer 4) Decimal)
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 a_2)
                                        (IntegerBinOp
                                            (Var 3 a)
                                            Mul
                                            (Var 3 a)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 b_2)
                                        (IntegerBinOp
                                            (Var 3 b)
                                            Mul
                                            (Var 3 b)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 c_2)
                                        (IntegerBinOp
                                            (Var 3 c)
                                            Mul
                                            (Var 3 c)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 ab)
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBroadcast
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (IntrinsicArrayFunction
                                                        Shape
                                                        [(Var 3 a)]
                                                        0
                                                        (Array
                                                            (Integer 4)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (IntegerConstant 1 (Integer 4) Decimal))]
                                                            FixedSizeArray
                                                        )
                                                        ()
                                                    )
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                )
                                                Mul
                                                (Var 3 a)
                                                (Array
                                                    (Integer 4)
                                                    [(()
                                                    ())]
                                                    DescriptorArray
                                                )
                                                ()
                                            )
                                            Mul
                                            (Var 3 b)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 bc)
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBroadcast
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (IntrinsicArrayFunction
                                                        Shape
                                                        [(Var 3 b)]
                                                        0
                                                        (Array
                                                            (Integer 4)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (IntegerConstant 1 (Integer 4) Decimal))]
                                                            FixedSizeArray
                                                        )
                                                        ()
                                                    )
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                )
                                                Mul
                                                (Var 3 b)
                                                (Array
                                                    (Integer 4)
                                                    [(()
                                                    ())]
                                                    DescriptorArray
                                                )
                                                ()
                                            )
                                            Mul
                                            (Var 3 c)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 ca)
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (ArrayBroadcast
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (IntrinsicArrayFunction
                                                        Shape
                                                        [(Var 3 c)]
                                                        0
                                                        (Array
                                                            (Integer 4)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (IntegerConstant 1 (Integer 4) Decimal))]
                                                            FixedSizeArray
                                                        )
                                                        ()
                                                    )
                                                    (Allocatable
                                                        (Array
                                                            (Integer 4)
                                                            [(()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                    )
                                                    ()
                                                )
                                                Mul
                                                (Var 3 c)
                                                (Array
                                                    (Integer 4)
                                                    [(()
                                                    ())]
                                                    DescriptorArray
                                                )
                                                ()
                                            )
                                            Mul
                                            (Var 3 a)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 abc)
                                        (IntegerBinOp
                                            (IntegerBinOp
                                                (IntegerBinOp
                                                    (ArrayBroadcast
                                                        (IntegerConstant 2 (Integer 4) Decimal)
                                                        (IntrinsicArrayFunction
                                                            Shape
                                                            [(Var 3 a)]
                                                            0
                                                            (Array
                                                                (Integer 4)
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (IntegerConstant 1 (Integer 4) Decimal))]
                                                                FixedSizeArray
                                                            )
                                                            ()
                                                        )
                                                        (Allocatable
                                                            (Array
                                                                (Integer 4)
                                                                [(()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                        )
                                                        ()
                                                    )
                                                    Mul
                                                    (Var 3 a)
                                                    (Array
                                                        (Integer 4)
                                                        [(()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                )
                                                Mul
                                                (Var 3 b)
                                                (Array
                                                    (Integer 4)
                                                    [(()
                                                    ())]
                                                    DescriptorArray
                                                )
                                                ()
                                            )
                                            Mul
                                            (Var 3 c)
                                            (Array
                                                (Integer 4)
                                                [(()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        )
                                        ()
                                        .false.
                                        .false.
                                    )
                                    (Assignment
                                        (Var 3 status)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        ()
                                        .false.
                                        .false.
                                    )]
                                    (Var 3 status)
                                    Public
                                    .true.
                                    .true.
                                    ()
                                )
                        })
                    allocate_01
                    []
                    [(Assignment
                        (Var 2 n)
                        (IntegerConstant 10 (Integer 4) Decimal)
                        ()
                        .false.
                        .false.
                    )
                    (Allocate
                        [((Var 2 a)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (Var 2 n))]
                        ()
                        ()
                        ())
                        ((Var 2 b)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (Var 2 n))]
                        ()
                        ()
                        ())
                        ((Var 2 c)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (Var 2 n))]
                        ()
                        ()
                        ())]
                        (Var 2 ierr)
                        ()
                        (Var 2 isource)
                    )
                    (Assignment
                        (Var 2 a)
                        (Var 2 isource)
                        ()
                        .false.
                        .false.
                    )
                    (Assignment
                        (Var 2 b)
                        (Var 2 isource)
                        ()
                        .false.
                        .false.
                    )
                    (Assignment
                        (Var 2 c)
                        (Var 2 isource)
                        ()
                        .false.
                        .false.
                    )
                    (Assignment
                        (Var 2 a)
                        (ArrayBroadcast
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (IntrinsicArrayFunction
                                Shape
                                [(Var 2 a)]
                                0
                                (Array
                                    (Integer 4)
                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                    (IntegerConstant 1 (Integer 4) Decimal))]
                                    FixedSizeArray
                                )
                                ()
                            )
                            (Allocatable
                                (Array
                                    (Integer 4)
                                    [(()
                                    ())]
                                    DescriptorArray
                                )
                            )
                            ()
                        )
                        ()
                        .false.
                        .false.
                    )
                    (Assignment
                        (Var 2 b)
                        (ArrayBroadcast
                            (IntegerConstant 2 (Integer 4) Decimal)
                            (IntrinsicArrayFunction
                                Shape
                                [(Var 2 b)]
                                0
                                (Array
                                    (Integer 4)
                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                    (IntegerConstant 1 (Integer 4) Decimal))]
                                    FixedSizeArray
                                )
                                ()
                            )
                            (Allocatable
                                (Array
                                    (Integer 4)
                                    [(()
                                    ())]
                                    DescriptorArray
                                )
                            )
                            ()
                        )
                        ()
                        .false.
                        .false.
                    )
                    (Assignment
                        (Var 2 c)
                        (ArrayBroadcast
                            (IntegerConstant 3 (Integer 4) Decimal)
                            (IntrinsicArrayFunction
                                Shape
                                [(Var 2 c)]
                                0
                                (Array
                                    (Integer 4)
                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                    (IntegerConstant 1 (Integer 4) Decimal))]
                                    FixedSizeArray
                                )
                                ()
                            )
                            (Allocatable
                                (Array
                                    (Integer 4)
                                    [(()
                                    ())]
                                    DescriptorArray
                                )
                            )
                            ()
                        )
                        ()
                        .false.
                        .false.
                    )
                    (Print
                        (StringFormat
                            ()
                            [(FunctionCall
                                2 whole_square
                                ()
                                [((Var 2 a))
                                ((Var 2 b))
                                ((Var 2 c))]
                                (Integer 4)
                                ()
                                ()
                            )]
                            FormatFortran
                            (Allocatable
                                (String 1 () DeferredLength DescriptorString)
                            )
                            ()
                        )
                    )]
                )
        })
    []
)
