(TranslationUnit
    [(Subroutine
        do_concurrent2
        [(a)
        (b)]
        []
        ()
        ()
        []
        []
        []
        [(Declaration
            (AttrType
                TypeReal
                []
                ()
                ()
                None
            )
            [(AttrIntent
                InOut
            )]
            [(a
            [(()
            ()
            DimensionExpr)]
            []
            ()
            ()
            None
            ())
            (b
            [(()
            ()
            DimensionExpr)]
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(i
            []
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeReal
                []
                ()
                ()
                None
            )
            []
            [(x
            []
            []
            ()
            ()
            None
            ())]
            ()
        )]
        [(Assignment
            0
            x
            (Real "1.0")
            ()
        )
        (DoConcurrentLoop
            0
            ()
            [(ConcurrentControl
                ()
                i
                1
                10
                ()
            )]
            ()
            [(ConcurrentShared
                [i]
            )
            (ConcurrentLocal
                [x]
            )
            (ConcurrentDefault)]
            [(If
                0
                ()
                (> (FuncCallOrArray
                    a
                    []
                    [(()
                    i
                    ()
                    0)]
                    []
                    []
                    []
                ) 0)
                [(Assignment
                    0
                    x
                    (FuncCallOrArray
                        sqrt
                        []
                        [(()
                        (FuncCallOrArray
                            a
                            []
                            [(()
                            i
                            ()
                            0)]
                            []
                            []
                            []
                        )
                        ()
                        0)]
                        []
                        []
                        []
                    )
                    ()
                )
                (Assignment
                    0
                    (FuncCallOrArray
                        a
                        []
                        [(()
                        i
                        ()
                        0)]
                        []
                        []
                        []
                    )
                    (- (FuncCallOrArray
                        a
                        []
                        [(()
                        i
                        ()
                        0)]
                        []
                        []
                        []
                    ) (** x 2))
                    ()
                )]
                []
                ()
                ()
                ()
            )
            (Assignment
                0
                (FuncCallOrArray
                    b
                    []
                    [(()
                    i
                    ()
                    0)]
                    []
                    []
                    []
                )
                (- (FuncCallOrArray
                    b
                    []
                    [(()
                    i
                    ()
                    0)]
                    []
                    []
                    []
                ) (FuncCallOrArray
                    a
                    []
                    [(()
                    i
                    ()
                    0)]
                    []
                    []
                    []
                ))
                ()
            )]
            ()
            ()
        )
        (Print
            0
            ()
            [x]
            ()
        )]
        []
        []
    )]
)
