(TranslationUnit
    (SymbolTable
        1
        {
            string_04:
                (Program
                    (SymbolTable
                        2
                        {
                            greetings:
                                (Variable
                                    2
                                    greetings
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (String 1 1 () PointerString)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            str:
                                (Variable
                                    2
                                    str
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (String 1 -2 () DescriptorString)
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            user_data:
                                (Variable
                                    2
                                    user_data
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (Array
                                            (String 1 40 () PointerString)
                                            [(()
                                            ())]
                                            DescriptorArray
                                        )
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                )
                        })
                    string_04
                    []
                    [(Allocate
                        [((Var 2 user_data)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 3 (Integer 4) Decimal))]
                        ()
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 user_data)
                            [(()
                            (IntegerConstant 1 (Integer 4) Decimal)
                            ())]
                            (String 1 40 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "Mr. "
                            (String 1 4 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 user_data)
                            [(()
                            (IntegerConstant 2 (Integer 4) Decimal)
                            ())]
                            (String 1 40 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "Rowan "
                            (String 1 6 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 user_data)
                            [(()
                            (IntegerConstant 3 (Integer 4) Decimal)
                            ())]
                            (String 1 40 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "Atkinson"
                            (String 1 8 () PointerString)
                        )
                        ()
                    )
                    (Allocate
                        [((Var 2 greetings)
                        [((IntegerConstant 1 (Integer 4) Decimal)
                        (IntegerConstant 5 (Integer 4) Decimal))]
                        ()
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 greetings)
                            [(()
                            (IntegerConstant 1 (Integer 4) Decimal)
                            ())]
                            (String 1 1 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "h"
                            (String 1 1 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 greetings)
                            [(()
                            (IntegerConstant 2 (Integer 4) Decimal)
                            ())]
                            (String 1 1 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "e"
                            (String 1 1 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 greetings)
                            [(()
                            (IntegerConstant 3 (Integer 4) Decimal)
                            ())]
                            (String 1 1 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "l"
                            (String 1 1 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 greetings)
                            [(()
                            (IntegerConstant 4 (Integer 4) Decimal)
                            ())]
                            (String 1 1 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "l"
                            (String 1 1 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (ArrayItem
                            (Var 2 greetings)
                            [(()
                            (IntegerConstant 5 (Integer 4) Decimal)
                            ())]
                            (String 1 1 () PointerString)
                            ColMajor
                            ()
                        )
                        (StringConstant
                            "o"
                            (String 1 1 () PointerString)
                        )
                        ()
                    )
                    (Print
                        (StringFormat
                            ()
                            [(StringConstant
                                "Here is "
                                (String 1 8 () PointerString)
                            )
                            (ArrayItem
                                (Var 2 user_data)
                                [(()
                                (IntegerConstant 1 (Integer 4) Decimal)
                                ())]
                                (String 1 40 () PointerString)
                                ColMajor
                                ()
                            )
                            (ArrayItem
                                (Var 2 user_data)
                                [(()
                                (IntegerConstant 2 (Integer 4) Decimal)
                                ())]
                                (String 1 40 () PointerString)
                                ColMajor
                                ()
                            )
                            (ArrayItem
                                (Var 2 user_data)
                                [(()
                                (IntegerConstant 3 (Integer 4) Decimal)
                                ())]
                                (String 1 40 () PointerString)
                                ColMajor
                                ()
                            )]
                            FormatFortran
                            (String -1 0 () PointerString)
                            ()
                        )
                    )
                    (Print
                        (StringFormat
                            ()
                            [(Var 2 greetings)]
                            FormatFortran
                            (String -1 0 () PointerString)
                            ()
                        )
                    )
                    (Allocate
                        [((Var 2 str)
                        []
                        (IntegerConstant 8 (Integer 4) Decimal)
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Assignment
                        (Var 2 str)
                        (StringPhysicalCast
                            (StringConstant
                                "abcd"
                                (String 1 4 () PointerString)
                            )
                            PointerString
                            DescriptorString
                            (Allocatable
                                (String 1 4 () DescriptorString)
                            )
                            ()
                        )
                        ()
                    )
                    (If
                        (IntegerCompare
                            (StringLen
                                (StringSection
                                    (StringPhysicalCast
                                        (Var 2 str)
                                        DescriptorString
                                        PointerString
                                        (Allocatable
                                            (String 1 -2 () PointerString)
                                        )
                                        ()
                                    )
                                    (IntegerBinOp
                                        (IntegerConstant 2 (Integer 4) Decimal)
                                        Sub
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                        (Integer 4)
                                        (IntegerConstant 1 (Integer 4) Decimal)
                                    )
                                    ()
                                    (IntegerConstant 1 (Integer 4) Decimal)
                                    (String 1 -1 () PointerString)
                                    ()
                                )
                                (Integer 4)
                                ()
                            )
                            NotEq
                            (IntegerConstant 3 (Integer 4) Decimal)
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )]
                )
        })
    []
)
