(TranslationUnit
    (SymbolTable
        1
        {
            bindc4:
                (Program
                    (SymbolTable
                        2
                        {
                            c_associated:
                                (ExternalSymbol
                                    2
                                    c_associated
                                    4 c_associated
                                    lfortran_intrinsic_iso_c_binding
                                    []
                                    c_associated
                                    Public
                                ),
                            c_f_pointer:
                                (ExternalSymbol
                                    2
                                    c_f_pointer
                                    4 c_f_pointer
                                    lfortran_intrinsic_iso_c_binding
                                    []
                                    c_f_pointer
                                    Public
                                ),
                            c_loc:
                                (ExternalSymbol
                                    2
                                    c_loc
                                    4 c_loc
                                    lfortran_intrinsic_iso_c_binding
                                    []
                                    c_loc
                                    Public
                                ),
                            c_null_ptr:
                                (ExternalSymbol
                                    2
                                    c_null_ptr
                                    4 c_null_ptr
                                    lfortran_intrinsic_iso_c_binding
                                    []
                                    c_null_ptr
                                    Public
                                ),
                            c_ptr:
                                (ExternalSymbol
                                    2
                                    c_ptr
                                    4 c_ptr
                                    lfortran_intrinsic_iso_c_binding
                                    []
                                    c_ptr
                                    Public
                                ),
                            i:
                                (Variable
                                    2
                                    i
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            j:
                                (Variable
                                    2
                                    j
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 4)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            newshape:
                                (Variable
                                    2
                                    newshape
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Array
                                        (Integer 4)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                        FixedSizeArray
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            queries:
                                (Variable
                                    2
                                    queries
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (CPtr)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            queries2:
                                (Variable
                                    2
                                    queries2
                                    []
                                    Local
                                    (PointerNullConstant
                                        (CPtr)
                                    )
                                    (PointerNullConstant
                                        (CPtr)
                                    )
                                    Default
                                    (CPtr)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            x:
                                (Variable
                                    2
                                    x
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Pointer
                                        (Array
                                            (Integer 2)
                                            [(()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            xv:
                                (Variable
                                    2
                                    xv
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Array
                                        (Integer 2)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 3 (Integer 4) Decimal))
                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 4 (Integer 4) Decimal))]
                                        FixedSizeArray
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .true.
                                ),
                            y:
                                (Variable
                                    2
                                    y
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Pointer
                                        (Array
                                            (Integer 2)
                                            [(()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            yv:
                                (Variable
                                    2
                                    yv
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Array
                                        (Integer 2)
                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 3 (Integer 4) Decimal))
                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                        (IntegerConstant 4 (Integer 4) Decimal))]
                                        FixedSizeArray
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .true.
                                )
                        })
                    bindc4
                    [iso_c_binding]
                    [(Assignment
                        (ArrayItem
                            (Var 2 newshape)
                            [(()
                            (IntegerConstant 1 (Integer 4) Decimal)
                            ())]
                            (Integer 4)
                            ColMajor
                            ()
                        )
                        (IntegerConstant 2 (Integer 4) Decimal)
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 newshape)
                            [(()
                            (IntegerConstant 2 (Integer 4) Decimal)
                            ())]
                            (Integer 4)
                            ColMajor
                            ()
                        )
                        (IntegerConstant 3 (Integer 4) Decimal)
                        ()
                    )
                    (Associate
                        (Var 2 x)
                        (ArrayPhysicalCast
                            (Var 2 xv)
                            FixedSizeArray
                            DescriptorArray
                            (Array
                                (Integer 2)
                                [((IntegerConstant 1 (Integer 4) Decimal)
                                (IntegerConstant 3 (Integer 4) Decimal))
                                ((IntegerConstant 1 (Integer 4) Decimal)
                                (IntegerConstant 4 (Integer 4) Decimal))]
                                DescriptorArray
                            )
                            ()
                        )
                    )
                    (Associate
                        (Var 2 y)
                        (ArrayPhysicalCast
                            (Var 2 yv)
                            FixedSizeArray
                            DescriptorArray
                            (Array
                                (Integer 2)
                                [((IntegerConstant 1 (Integer 4) Decimal)
                                (IntegerConstant 3 (Integer 4) Decimal))
                                ((IntegerConstant 1 (Integer 4) Decimal)
                                (IntegerConstant 4 (Integer 4) Decimal))]
                                DescriptorArray
                            )
                            ()
                        )
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 x)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 x)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(DoLoop
                            ()
                            ((Var 2 j)
                            (ArrayBound
                                (Var 2 x)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                LBound
                                ()
                            )
                            (ArrayBound
                                (Var 2 x)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                UBound
                                ()
                            )
                            ())
                            [(Print
                                (StringFormat
                                    ()
                                    [(Var 2 i)
                                    (Var 2 j)
                                    (PointerToCPtr
                                        (GetPointer
                                            (ArrayItem
                                                (Var 2 x)
                                                [(()
                                                (Var 2 i)
                                                ())
                                                (()
                                                (Var 2 j)
                                                ())]
                                                (Integer 2)
                                                ColMajor
                                                ()
                                            )
                                            (Pointer
                                                (Integer 2)
                                            )
                                            ()
                                        )
                                        (CPtr)
                                        ()
                                    )]
                                    FormatFortran
                                    (String -1 0 () PointerString)
                                    ()
                                )
                            )]
                            []
                        )]
                        []
                    )
                    (CPtrToPointer
                        (Var 2 queries)
                        (Var 2 x)
                        (Var 2 newshape)
                        ()
                    )
                    (Print
                        (StringFormat
                            ()
                            [(PointerToCPtr
                                (Var 2 x)
                                (CPtr)
                                ()
                            )
                            (Var 2 queries)]
                            FormatFortran
                            (String -1 0 () PointerString)
                            ()
                        )
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 x)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 x)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(DoLoop
                            ()
                            ((Var 2 j)
                            (ArrayBound
                                (Var 2 x)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                LBound
                                ()
                            )
                            (ArrayBound
                                (Var 2 x)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                UBound
                                ()
                            )
                            ())
                            [(Print
                                (StringFormat
                                    ()
                                    [(Var 2 i)
                                    (Var 2 j)
                                    (PointerToCPtr
                                        (GetPointer
                                            (ArrayItem
                                                (Var 2 x)
                                                [(()
                                                (Var 2 i)
                                                ())
                                                (()
                                                (Var 2 j)
                                                ())]
                                                (Integer 2)
                                                ColMajor
                                                ()
                                            )
                                            (Pointer
                                                (Integer 2)
                                            )
                                            ()
                                        )
                                        (CPtr)
                                        ()
                                    )]
                                    FormatFortran
                                    (String -1 0 () PointerString)
                                    ()
                                )
                            )]
                            []
                        )]
                        []
                    )
                    (CPtrToPointer
                        (Var 2 queries)
                        (Var 2 x)
                        (ArrayConstant
                            8
                            [3, 4]
                            (Array
                                (Integer 4)
                                [((IntegerConstant 1 (Integer 4) Decimal)
                                (IntegerConstant 2 (Integer 4) Decimal))]
                                PointerToDataArray
                            )
                            ColMajor
                        )
                        ()
                    )
                    (Print
                        (StringFormat
                            ()
                            [(PointerToCPtr
                                (Var 2 x)
                                (CPtr)
                                ()
                            )
                            (Var 2 queries)]
                            FormatFortran
                            (String -1 0 () PointerString)
                            ()
                        )
                    )
                    (DoLoop
                        ()
                        ((Var 2 i)
                        (ArrayBound
                            (Var 2 x)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            LBound
                            ()
                        )
                        (ArrayBound
                            (Var 2 x)
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (Integer 4)
                            UBound
                            ()
                        )
                        ())
                        [(DoLoop
                            ()
                            ((Var 2 j)
                            (ArrayBound
                                (Var 2 x)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                LBound
                                ()
                            )
                            (ArrayBound
                                (Var 2 x)
                                (IntegerConstant 2 (Integer 4) Decimal)
                                (Integer 4)
                                UBound
                                ()
                            )
                            ())
                            [(Print
                                (StringFormat
                                    ()
                                    [(Var 2 i)
                                    (Var 2 j)
                                    (PointerToCPtr
                                        (GetPointer
                                            (ArrayItem
                                                (Var 2 x)
                                                [(()
                                                (Var 2 i)
                                                ())
                                                (()
                                                (Var 2 j)
                                                ())]
                                                (Integer 2)
                                                ColMajor
                                                ()
                                            )
                                            (Pointer
                                                (Integer 2)
                                            )
                                            ()
                                        )
                                        (CPtr)
                                        ()
                                    )]
                                    FormatFortran
                                    (String -1 0 () PointerString)
                                    ()
                                )
                            )]
                            []
                        )]
                        []
                    )
                    (If
                        (PointerAssociated
                            (Var 2 queries)
                            (PointerToCPtr
                                (GetPointer
                                    (ArrayItem
                                        (Var 2 x)
                                        [(()
                                        (IntegerConstant 0 (Integer 4) Decimal)
                                        ())
                                        (()
                                        (IntegerConstant 0 (Integer 4) Decimal)
                                        ())]
                                        (Integer 2)
                                        ColMajor
                                        ()
                                    )
                                    (Pointer
                                        (Integer 2)
                                    )
                                    ()
                                )
                                (CPtr)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (If
                        (LogicalNot
                            (PointerAssociated
                                (Var 2 queries)
                                (PointerToCPtr
                                    (Var 2 x)
                                    (CPtr)
                                    ()
                                )
                                (Logical 4)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (If
                        (PointerAssociated
                            (Var 2 queries)
                            (PointerToCPtr
                                (Var 2 y)
                                (CPtr)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (If
                        (PointerAssociated
                            (Var 2 queries2)
                            ()
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (Assignment
                        (Var 2 queries)
                        (PointerNullConstant
                            (CPtr)
                        )
                        ()
                    )]
                ),
            iso_c_binding:
                (IntrinsicModule lfortran_intrinsic_iso_c_binding)
        })
    []
)
