(TranslationUnit
    [(Module
        dflt_intent
        (TriviaNode
            [(EndOfLine)
            (EndOfLine)]
            [(EndOfLine)
            (EndOfLine)]
        )
        []
        []
        []
        []
        [(Subroutine
            foo
            [(c)
            (d)]
            []
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
            []
            []
            []
            [(Declaration
                (AttrType
                    TypeReal
                    []
                    ()
                    ()
                    None
                )
                []
                [(c
                []
                []
                ()
                ()
                None
                ())
                (d
                []
                []
                ()
                ()
                None
                ())
                (e
                []
                []
                ()
                ()
                None
                ())
                (g
                []
                []
                ()
                ()
                None
                ())]
                ()
            )]
            [(Assignment
                0
                e
                (FuncCallOrArray
                    f
                    []
                    [(()
                    c
                    ()
                    0)]
                    []
                    []
                    []
                )
                ()
            )
            (Assignment
                0
                g
                (FuncCallOrArray
                    f
                    []
                    [(()
                    d
                    ()
                    0)]
                    []
                    []
                    []
                )
                (TriviaNode
                    []
                    [(EndOfLine)
                    (EndOfLine)]
                )
            )]
            [(Function
                f
                [(x)]
                [(AttrType
                    TypeReal
                    []
                    ()
                    ()
                    None
                )]
                ()
                ()
                (TriviaNode
                    []
                    [(EndOfLine)
                    (EndOfLine)]
                )
                []
                []
                []
                [(Declaration
                    (AttrType
                        TypeReal
                        []
                        ()
                        ()
                        None
                    )
                    [(AttrIntent
                        In
                    )]
                    [(x
                    []
                    []
                    ()
                    ()
                    None
                    ())]
                    ()
                )]
                [(Assignment
                    0
                    f
                    (* 2 x)
                    ()
                )
                (Print
                    0
                    ()
                    [f]
                    ()
                )]
                []
                []
            )]
            []
        )]
    )
    (Program
        main
        ()
        [(Use
            []
            dflt_intent
            []
            .false.
            ()
        )]
        []
        []
        [(SubroutineCall
            0
            foo
            []
            [(()
            (Real "0.0")
            ()
            0)
            (()
            (Real "2.0")
            ()
            0)]
            []
            []
            ()
        )]
        []
    )]
)
