(TranslationUnit
    [(Subroutine
        process
        [(x)]
        []
        ()
        (TriviaNode
            []
            [(EndOfLine)
            (EndOfLine)]
        )
        []
        []
        []
        [(Declaration
            (AttrType
                TypeReal
                []
                ()
                ()
                None
            )
            []
            [(x
            [(()
            ()
            AssumedRank)]
            []
            ()
            ()
            None
            ())]
            ()
        )]
        [(SelectRank
            0
            ()
            ()
            x
            [(RankExpr
                0
                ()
                [(Assignment
                    0
                    x
                    0
                    ()
                )]
            )
            (RankExpr
                2
                ()
                [(If
                    0
                    ()
                    (>= (FuncCallOrArray
                        size
                        []
                        [(()
                        x
                        ()
                        0)
                        (()
                        2
                        ()
                        0)]
                        []
                        []
                        []
                    ) 2)
                    [(Assignment
                        0
                        (FuncCallOrArray
                            x
                            []
                            [(()
                            ()
                            1
                            0)
                            (()
                            2
                            ()
                            0)]
                            []
                            []
                            []
                        )
                        2
                        ()
                    )]
                    []
                    ()
                    ()
                    ()
                )]
            )
            (RankDefault
                ()
                [(Print
                    0
                    ()
                    [(String "i did not expect rank" ())
                    (FuncCallOrArray
                        rank
                        []
                        [(()
                        x
                        ()
                        0)]
                        []
                        []
                        []
                    )
                    (String "shape" ())
                    (FuncCallOrArray
                        shape
                        []
                        [(()
                        x
                        ()
                        0)]
                        []
                        []
                        []
                    )]
                    ()
                )
                (ErrorStop
                    0
                    (String "process bad arg" ())
                    ()
                    ()
                )]
            )]
            ()
            ()
        )
        (Return
            0
            ()
            ()
        )]
        []
        []
    )
    (Subroutine
        initialize
        [(arg)
        (size)]
        []
        ()
        ()
        []
        []
        []
        [(Declaration
            (AttrType
                TypeReal
                []
                ()
                ()
                None
            )
            [(SimpleAttribute
                AttrContiguous
            )]
            [(arg
            [(()
            ()
            AssumedRank)]
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(size
            []
            []
            ()
            ()
            None
            ())
            (i
            []
            []
            ()
            ()
            None
            ())]
            ()
        )]
        [(SelectRank
            0
            ()
            ()
            arg
            [(RankExpr
                0
                (TriviaNode
                    []
                    [(EOLComment
                        "! special case the scalar case"
                    )]
                )
                [(Assignment
                    0
                    arg
                    (Real "0.0")
                    ()
                )]
            )
            (RankStar
                ()
                [(DoLoop
                    0
                    ()
                    0
                    i
                    1
                    size
                    ()
                    [(Assignment
                        0
                        (FuncCallOrArray
                            arg
                            []
                            [(()
                            i
                            ()
                            0)]
                            []
                            []
                            []
                        )
                        (Real "0.0")
                        ()
                    )]
                    ()
                    ()
                )]
            )]
            ()
            ()
        )
        (Return
            0
            ()
            ()
        )]
        []
        []
    )]
)
