(TranslationUnit
    [(Program
        derived_types_03
        (TriviaNode
            [(EndOfLine)
            (Comment
                "! AST only"
            )]
            []
        )
        []
        []
        []
        [(DoLoop
            0
            ()
            0
            nn
            1
            ndiag
            ()
            [(Assignment
                0
                ing
                len [(diag
                [(()
                nn
                ()
                0)])]
                ()
            )
            (Allocate
                0
                [(()
                (FuncCallOrArray
                    cell_id
                    [(diag
                    [(()
                    nn
                    ()
                    0)])]
                    [(()
                    ing
                    ()
                    0)]
                    []
                    []
                    []
                )
                ()
                0)]
                [(STAT
                ierr)]
                ()
            )
            (If
                0
                ()
                (/= ierr 0)
                [(Return
                    0
                    ()
                    ()
                )]
                []
                ()
                ()
                ()
            )
            (Assignment
                0
                ndpwds
                (+ ndpwds (FuncCallOrArray
                    SIZE
                    []
                    [(()
                    cell_id [(diag
                    [(()
                    nn
                    ()
                    0)])]
                    ()
                    0)]
                    []
                    []
                    []
                ))
                ()
            )]
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (DoLoop
            0
            ()
            0
            k
            1
            nz
            ()
            [(DoLoop
                0
                ()
                0
                j
                1
                ny
                ()
                [(DoLoop
                    0
                    ()
                    0
                    i
                    1
                    ichunk
                    ()
                    [(Assignment
                        0
                        nn
                        (- (+ (+ i j) k) 2)
                        ()
                    )
                    (Assignment
                        0
                        (FuncCallOrArray
                            indx
                            []
                            [(()
                            nn
                            ()
                            0)]
                            []
                            []
                            []
                        )
                        (+ (FuncCallOrArray
                            indx
                            []
                            [(()
                            nn
                            ()
                            0)]
                            []
                            []
                            []
                        ) 1)
                        ()
                    )
                    (Assignment
                        0
                        ing
                        (FuncCallOrArray
                            indx
                            []
                            [(()
                            nn
                            ()
                            0)]
                            []
                            []
                            []
                        )
                        ()
                    )
                    (Assignment
                        0
                        ic [(diag
                        [(()
                        nn
                        ()
                        0)]) (cell_id
                        [(()
                        ing
                        ()
                        0)])]
                        i
                        ()
                    )
                    (Assignment
                        0
                        j [(diag
                        [(()
                        nn
                        ()
                        0)]) (cell_id
                        [(()
                        ing
                        ()
                        0)])]
                        j
                        ()
                    )
                    (Assignment
                        0
                        k [(diag
                        [(()
                        nn
                        ()
                        0)]) (cell_id
                        [(()
                        ing
                        ()
                        0)])]
                        k
                        ()
                    )]
                    ()
                    ()
                )]
                ()
                ()
            )]
            ()
            ()
        )]
        []
    )]
)
