(TranslationUnit
    (SymbolTable
        1
        {
            template_travel_01b:
                (Program
                    (SymbolTable
                        21
                        {
                            operation:
                                (ExternalSymbol
                                    21
                                    operation
                                    2 operation
                                    template_travel_01b_m
                                    []
                                    operation
                                    Public
                                ),
                            test_template:
                                (ExternalSymbol
                                    21
                                    test_template
                                    2 test_template
                                    template_travel_01b_m
                                    []
                                    test_template
                                    Public
                                ),
                            travel_tmpl:
                                (ExternalSymbol
                                    21
                                    travel_tmpl
                                    2 travel_tmpl
                                    template_travel_01b_m
                                    []
                                    travel_tmpl
                                    Public
                                )
                        })
                    template_travel_01b
                    [template_travel_01b_m]
                    [(SubroutineCall
                        21 test_template
                        ()
                        []
                        ()
                    )]
                ),
            template_travel_01b_m:
                (Module
                    (SymbolTable
                        2
                        {
                            operation:
                                (Requirement
                                    (SymbolTable
                                        3
                                        {
                                            a:
                                                (Variable
                                                    3
                                                    a
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        a
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            b:
                                                (Variable
                                                    3
                                                    b
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        b
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            c:
                                                (Variable
                                                    3
                                                    c
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        c
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            op:
                                                (Function
                                                    (SymbolTable
                                                        4
                                                        {
                                                            l:
                                                                (Variable
                                                                    4
                                                                    l
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        a
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    4
                                                                    r
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        b
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    4
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        c
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    op
                                                    (FunctionType
                                                        [(TypeParameter
                                                            a
                                                        )
                                                        (TypeParameter
                                                            b
                                                        )]
                                                        (TypeParameter
                                                            c
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 4 l)
                                                    (Var 4 r)]
                                                    []
                                                    (Var 4 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                )
                                        })
                                    operation
                                    [a
                                    b
                                    c
                                    op]
                                    []
                                ),
                            test_template:
                                (Function
                                    (SymbolTable
                                        12
                                        {
                                            avg_integer_s_from_s:
                                                (Function
                                                    (SymbolTable
                                                        20
                                                        {
                                                            avg:
                                                                (Variable
                                                                    20
                                                                    avg
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d1:
                                                                (Variable
                                                                    20
                                                                    d1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d2:
                                                                (Variable
                                                                    20
                                                                    d2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            s1:
                                                                (Variable
                                                                    20
                                                                    s1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            s2:
                                                                (Variable
                                                                    20
                                                                    s2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    avg_integer_s_from_s
                                                    (FunctionType
                                                        [(Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)]
                                                        (Integer 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [~div_intrinsic1
                                                    avg_integer_s_from_t]
                                                    [(Var 20 d1)
                                                    (Var 20 s1)
                                                    (Var 20 d2)
                                                    (Var 20 s2)]
                                                    [(Assignment
                                                        (Var 20 avg)
                                                        (FunctionCall
                                                            12 avg_integer_s_from_t
                                                            ()
                                                            [((Var 20 d1))
                                                            ((FunctionCall
                                                                12 ~div_intrinsic1
                                                                ()
                                                                [((Var 20 d1))
                                                                ((Var 20 s1))]
                                                                (Integer 4)
                                                                ()
                                                                ()
                                                            ))
                                                            ((Var 20 d2))
                                                            ((FunctionCall
                                                                12 ~div_intrinsic1
                                                                ()
                                                                [((Var 20 d2))
                                                                ((Var 20 s2))]
                                                                (Integer 4)
                                                                ()
                                                                ()
                                                            ))]
                                                            (Integer 4)
                                                            ()
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 20 avg)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            avg_integer_s_from_t:
                                                (Function
                                                    (SymbolTable
                                                        19
                                                        {
                                                            avg:
                                                                (Variable
                                                                    19
                                                                    avg
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d1:
                                                                (Variable
                                                                    19
                                                                    d1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d2:
                                                                (Variable
                                                                    19
                                                                    d2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            t1:
                                                                (Variable
                                                                    19
                                                                    t1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            t2:
                                                                (Variable
                                                                    19
                                                                    t2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    avg_integer_s_from_t
                                                    (FunctionType
                                                        [(Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)]
                                                        (Integer 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [~add_intrinsic1
                                                    ~div_intrinsic1]
                                                    [(Var 19 d1)
                                                    (Var 19 t1)
                                                    (Var 19 d2)
                                                    (Var 19 t2)]
                                                    [(Assignment
                                                        (Var 19 avg)
                                                        (FunctionCall
                                                            12 ~div_intrinsic1
                                                            ()
                                                            [((FunctionCall
                                                                12 ~add_intrinsic1
                                                                ()
                                                                [((Var 19 d1))
                                                                ((Var 19 d2))]
                                                                (Integer 4)
                                                                ()
                                                                ()
                                                            ))
                                                            ((FunctionCall
                                                                12 ~add_intrinsic1
                                                                ()
                                                                [((Var 19 t1))
                                                                ((Var 19 t2))]
                                                                (Integer 4)
                                                                ()
                                                                ()
                                                            ))]
                                                            (Integer 4)
                                                            ()
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 19 avg)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            avg_real_s_from_s:
                                                (Function
                                                    (SymbolTable
                                                        16
                                                        {
                                                            avg:
                                                                (Variable
                                                                    16
                                                                    avg
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d1:
                                                                (Variable
                                                                    16
                                                                    d1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d2:
                                                                (Variable
                                                                    16
                                                                    d2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            s1:
                                                                (Variable
                                                                    16
                                                                    s1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            s2:
                                                                (Variable
                                                                    16
                                                                    s2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    avg_real_s_from_s
                                                    (FunctionType
                                                        [(Real 4)
                                                        (Real 4)
                                                        (Real 4)
                                                        (Real 4)]
                                                        (Real 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [~div_intrinsic
                                                    avg_real_s_from_t]
                                                    [(Var 16 d1)
                                                    (Var 16 s1)
                                                    (Var 16 d2)
                                                    (Var 16 s2)]
                                                    [(Assignment
                                                        (Var 16 avg)
                                                        (FunctionCall
                                                            12 avg_real_s_from_t
                                                            ()
                                                            [((Var 16 d1))
                                                            ((FunctionCall
                                                                12 ~div_intrinsic
                                                                ()
                                                                [((Var 16 d1))
                                                                ((Var 16 s1))]
                                                                (Real 4)
                                                                ()
                                                                ()
                                                            ))
                                                            ((Var 16 d2))
                                                            ((FunctionCall
                                                                12 ~div_intrinsic
                                                                ()
                                                                [((Var 16 d2))
                                                                ((Var 16 s2))]
                                                                (Real 4)
                                                                ()
                                                                ()
                                                            ))]
                                                            (Real 4)
                                                            ()
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 16 avg)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            avg_real_s_from_t:
                                                (Function
                                                    (SymbolTable
                                                        15
                                                        {
                                                            avg:
                                                                (Variable
                                                                    15
                                                                    avg
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d1:
                                                                (Variable
                                                                    15
                                                                    d1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d2:
                                                                (Variable
                                                                    15
                                                                    d2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            t1:
                                                                (Variable
                                                                    15
                                                                    t1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            t2:
                                                                (Variable
                                                                    15
                                                                    t2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    avg_real_s_from_t
                                                    (FunctionType
                                                        [(Real 4)
                                                        (Real 4)
                                                        (Real 4)
                                                        (Real 4)]
                                                        (Real 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [~add_intrinsic
                                                    ~div_intrinsic]
                                                    [(Var 15 d1)
                                                    (Var 15 t1)
                                                    (Var 15 d2)
                                                    (Var 15 t2)]
                                                    [(Assignment
                                                        (Var 15 avg)
                                                        (FunctionCall
                                                            12 ~div_intrinsic
                                                            ()
                                                            [((FunctionCall
                                                                12 ~add_intrinsic
                                                                ()
                                                                [((Var 15 d1))
                                                                ((Var 15 d2))]
                                                                (Real 4)
                                                                ()
                                                                ()
                                                            ))
                                                            ((FunctionCall
                                                                12 ~add_intrinsic
                                                                ()
                                                                [((Var 15 t1))
                                                                ((Var 15 t2))]
                                                                (Real 4)
                                                                ()
                                                                ()
                                                            ))]
                                                            (Real 4)
                                                            ()
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 15 avg)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            i1:
                                                (Variable
                                                    12
                                                    i1
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            i2:
                                                (Variable
                                                    12
                                                    i2
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            s1:
                                                (Variable
                                                    12
                                                    s1
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            s2:
                                                (Variable
                                                    12
                                                    s2
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ~add:
                                                (CustomOperator
                                                    12
                                                    ~add
                                                    [12 ~add_intrinsic
                                                    12 ~add_intrinsic1]
                                                    Public
                                                ),
                                            ~add_intrinsic:
                                                (Function
                                                    (SymbolTable
                                                        13
                                                        {
                                                            arg0:
                                                                (Variable
                                                                    13
                                                                    arg0
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            arg1:
                                                                (Variable
                                                                    13
                                                                    arg1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ret:
                                                                (Variable
                                                                    13
                                                                    ret
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    ~add_intrinsic
                                                    (FunctionType
                                                        [(Real 4)
                                                        (Real 4)]
                                                        (Real 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 13 arg0)
                                                    (Var 13 arg1)]
                                                    [(Assignment
                                                        (Var 13 ret)
                                                        (RealBinOp
                                                            (Var 13 arg0)
                                                            Add
                                                            (Var 13 arg1)
                                                            (Real 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 13 ret)
                                                    Public
                                                    .false.
                                                    .true.
                                                    ()
                                                ),
                                            ~add_intrinsic1:
                                                (Function
                                                    (SymbolTable
                                                        17
                                                        {
                                                            arg0:
                                                                (Variable
                                                                    17
                                                                    arg0
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            arg1:
                                                                (Variable
                                                                    17
                                                                    arg1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ret:
                                                                (Variable
                                                                    17
                                                                    ret
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    ~add_intrinsic1
                                                    (FunctionType
                                                        [(Integer 4)
                                                        (Integer 4)]
                                                        (Integer 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 17 arg0)
                                                    (Var 17 arg1)]
                                                    [(Assignment
                                                        (Var 17 ret)
                                                        (IntegerBinOp
                                                            (Var 17 arg0)
                                                            Add
                                                            (Var 17 arg1)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 17 ret)
                                                    Public
                                                    .false.
                                                    .true.
                                                    ()
                                                ),
                                            ~div:
                                                (CustomOperator
                                                    12
                                                    ~div
                                                    [12 ~div_intrinsic
                                                    12 ~div_intrinsic1]
                                                    Public
                                                ),
                                            ~div_intrinsic:
                                                (Function
                                                    (SymbolTable
                                                        14
                                                        {
                                                            arg0:
                                                                (Variable
                                                                    14
                                                                    arg0
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            arg1:
                                                                (Variable
                                                                    14
                                                                    arg1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ret:
                                                                (Variable
                                                                    14
                                                                    ret
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    ~div_intrinsic
                                                    (FunctionType
                                                        [(Real 4)
                                                        (Real 4)]
                                                        (Real 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 14 arg0)
                                                    (Var 14 arg1)]
                                                    [(Assignment
                                                        (Var 14 ret)
                                                        (RealBinOp
                                                            (Var 14 arg0)
                                                            Div
                                                            (Var 14 arg1)
                                                            (Real 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 14 ret)
                                                    Public
                                                    .false.
                                                    .true.
                                                    ()
                                                ),
                                            ~div_intrinsic1:
                                                (Function
                                                    (SymbolTable
                                                        18
                                                        {
                                                            arg0:
                                                                (Variable
                                                                    18
                                                                    arg0
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            arg1:
                                                                (Variable
                                                                    18
                                                                    arg1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ret:
                                                                (Variable
                                                                    18
                                                                    ret
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    ~div_intrinsic1
                                                    (FunctionType
                                                        [(Integer 4)
                                                        (Integer 4)]
                                                        (Integer 4)
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    []
                                                    [(Var 18 arg0)
                                                    (Var 18 arg1)]
                                                    [(Assignment
                                                        (Var 18 ret)
                                                        (IntegerBinOp
                                                            (Var 18 arg0)
                                                            Div
                                                            (Var 18 arg1)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 18 ret)
                                                    Public
                                                    .false.
                                                    .true.
                                                    ()
                                                )
                                        })
                                    test_template
                                    (FunctionType
                                        []
                                        ()
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    []
                                    [(Assignment
                                        (Var 12 s1)
                                        (FunctionCall
                                            12 avg_real_s_from_t
                                            ()
                                            [((RealConstant
                                                1.000000
                                                (Real 4)
                                            ))
                                            ((RealConstant
                                                3.000000
                                                (Real 4)
                                            ))
                                            ((RealConstant
                                                1.500000
                                                (Real 4)
                                            ))
                                            ((RealConstant
                                                4.000000
                                                (Real 4)
                                            ))]
                                            (Real 4)
                                            ()
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (Var 12 s2)
                                        (FunctionCall
                                            12 avg_real_s_from_s
                                            ()
                                            [((RealConstant
                                                1.100000
                                                (Real 4)
                                            ))
                                            ((Var 12 s1))
                                            ((RealConstant
                                                2.000000
                                                (Real 4)
                                            ))
                                            ((Var 12 s1))]
                                            (Real 4)
                                            ()
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (Var 12 i1)
                                        (FunctionCall
                                            12 avg_integer_s_from_t
                                            ()
                                            [((IntegerConstant 1 (Integer 4) Decimal))
                                            ((IntegerConstant 3 (Integer 4) Decimal))
                                            ((IntegerConstant 20 (Integer 4) Decimal))
                                            ((IntegerConstant 4 (Integer 4) Decimal))]
                                            (Integer 4)
                                            ()
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (Var 12 i2)
                                        (FunctionCall
                                            12 avg_integer_s_from_s
                                            ()
                                            [((IntegerConstant 1 (Integer 4) Decimal))
                                            ((Var 12 i1))
                                            ((IntegerConstant 15 (Integer 4) Decimal))
                                            ((Var 12 i1))]
                                            (Integer 4)
                                            ()
                                            ()
                                        )
                                        ()
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "s1="
                                                (String 1 3 () PointerString)
                                            )
                                            (Var 12 s1)]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "s2="
                                                (String 1 3 () PointerString)
                                            )
                                            (Var 12 s2)]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "i1="
                                                (String 1 3 () PointerString)
                                            )
                                            (Var 12 i1)]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )
                                    (Print
                                        (StringFormat
                                            ()
                                            [(StringConstant
                                                "i2="
                                                (String 1 3 () PointerString)
                                            )
                                            (Var 12 i2)]
                                            FormatFortran
                                            (String -1 0 () PointerString)
                                            ()
                                        )
                                    )]
                                    ()
                                    Private
                                    .false.
                                    .false.
                                    ()
                                ),
                            travel_tmpl:
                                (Template
                                    (SymbolTable
                                        5
                                        {
                                            avg_s_from_s:
                                                (Function
                                                    (SymbolTable
                                                        11
                                                        {
                                                            avg:
                                                                (Variable
                                                                    11
                                                                    avg
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        s
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d1:
                                                                (Variable
                                                                    11
                                                                    d1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d2:
                                                                (Variable
                                                                    11
                                                                    d2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            s1:
                                                                (Variable
                                                                    11
                                                                    s1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        s
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            s2:
                                                                (Variable
                                                                    11
                                                                    s2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        s
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    avg_s_from_s
                                                    (FunctionType
                                                        [(TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            s
                                                        )
                                                        (TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            s
                                                        )]
                                                        (TypeParameter
                                                            s
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [d_divided_by_s
                                                    avg_s_from_t]
                                                    [(Var 11 d1)
                                                    (Var 11 s1)
                                                    (Var 11 d2)
                                                    (Var 11 s2)]
                                                    [(Assignment
                                                        (Var 11 avg)
                                                        (FunctionCall
                                                            5 avg_s_from_t
                                                            ()
                                                            [((Var 11 d1))
                                                            ((FunctionCall
                                                                5 d_divided_by_s
                                                                ()
                                                                [((Var 11 d1))
                                                                ((Var 11 s1))]
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                ()
                                                                ()
                                                            ))
                                                            ((Var 11 d2))
                                                            ((FunctionCall
                                                                5 d_divided_by_s
                                                                ()
                                                                [((Var 11 d2))
                                                                ((Var 11 s2))]
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                ()
                                                                ()
                                                            ))]
                                                            (TypeParameter
                                                                s
                                                            )
                                                            ()
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 11 avg)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            avg_s_from_t:
                                                (Function
                                                    (SymbolTable
                                                        10
                                                        {
                                                            avg:
                                                                (Variable
                                                                    10
                                                                    avg
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        s
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d1:
                                                                (Variable
                                                                    10
                                                                    d1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            d2:
                                                                (Variable
                                                                    10
                                                                    d2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            t1:
                                                                (Variable
                                                                    10
                                                                    t1
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            t2:
                                                                (Variable
                                                                    10
                                                                    t2
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    avg_s_from_t
                                                    (FunctionType
                                                        [(TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            t
                                                        )]
                                                        (TypeParameter
                                                            s
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [plus_d
                                                    plus_t
                                                    d_divided_by_t]
                                                    [(Var 10 d1)
                                                    (Var 10 t1)
                                                    (Var 10 d2)
                                                    (Var 10 t2)]
                                                    [(Assignment
                                                        (Var 10 avg)
                                                        (FunctionCall
                                                            5 d_divided_by_t
                                                            ()
                                                            [((FunctionCall
                                                                5 plus_d
                                                                ()
                                                                [((Var 10 d1))
                                                                ((Var 10 d2))]
                                                                (TypeParameter
                                                                    d
                                                                )
                                                                ()
                                                                ()
                                                            ))
                                                            ((FunctionCall
                                                                5 plus_t
                                                                ()
                                                                [((Var 10 t1))
                                                                ((Var 10 t2))]
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                ()
                                                                ()
                                                            ))]
                                                            (TypeParameter
                                                                s
                                                            )
                                                            ()
                                                            ()
                                                        )
                                                        ()
                                                    )]
                                                    (Var 10 avg)
                                                    Public
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            d:
                                                (Variable
                                                    5
                                                    d
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        d
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            d_divided_by_s:
                                                (Function
                                                    (SymbolTable
                                                        9
                                                        {
                                                            l:
                                                                (Variable
                                                                    9
                                                                    l
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    9
                                                                    r
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        s
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    9
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    d_divided_by_s
                                                    (FunctionType
                                                        [(TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            s
                                                        )]
                                                        (TypeParameter
                                                            t
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 9 l)
                                                    (Var 9 r)]
                                                    []
                                                    (Var 9 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            d_divided_by_t:
                                                (Function
                                                    (SymbolTable
                                                        8
                                                        {
                                                            l:
                                                                (Variable
                                                                    8
                                                                    l
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    8
                                                                    r
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    8
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        s
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    d_divided_by_t
                                                    (FunctionType
                                                        [(TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            t
                                                        )]
                                                        (TypeParameter
                                                            s
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 8 l)
                                                    (Var 8 r)]
                                                    []
                                                    (Var 8 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            plus_d:
                                                (Function
                                                    (SymbolTable
                                                        6
                                                        {
                                                            l:
                                                                (Variable
                                                                    6
                                                                    l
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    6
                                                                    r
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    6
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        d
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    plus_d
                                                    (FunctionType
                                                        [(TypeParameter
                                                            d
                                                        )
                                                        (TypeParameter
                                                            d
                                                        )]
                                                        (TypeParameter
                                                            d
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 6 l)
                                                    (Var 6 r)]
                                                    []
                                                    (Var 6 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            plus_t:
                                                (Function
                                                    (SymbolTable
                                                        7
                                                        {
                                                            l:
                                                                (Variable
                                                                    7
                                                                    l
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            r:
                                                                (Variable
                                                                    7
                                                                    r
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    7
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    plus_t
                                                    (FunctionType
                                                        [(TypeParameter
                                                            t
                                                        )
                                                        (TypeParameter
                                                            t
                                                        )]
                                                        (TypeParameter
                                                            t
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 7 l)
                                                    (Var 7 r)]
                                                    []
                                                    (Var 7 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            s:
                                                (Variable
                                                    5
                                                    s
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        s
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            t:
                                                (Variable
                                                    5
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    travel_tmpl
                                    [d
                                    t
                                    s
                                    plus_d
                                    plus_t
                                    d_divided_by_t
                                    d_divided_by_s]
                                    [(Require
                                        operation
                                        [d
                                        plus_d]
                                    )
                                    (Require
                                        operation
                                        [t
                                        plus_t]
                                    )
                                    (Require
                                        operation
                                        [d
                                        t
                                        s
                                        d_divided_by_t]
                                    )
                                    (Require
                                        operation
                                        [d
                                        s
                                        t
                                        d_divided_by_s]
                                    )]
                                )
                        })
                    template_travel_01b_m
                    [template_travel_01b_m]
                    .false.
                    .false.
                )
        })
    []
)
