<?xml version="1.0" encoding="ISO-8859-1"?>
<RSL xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="RSL">
  <domain dname="FORTRAN"/>
  <rslelems xsi:type="Pattern" ptoken="execution_part_construct_list">
    <phead name="before_advice_stmt"/>
    <ptext xsi:type="SimplePatternText" ptext="CALL START_TIMER;"/>
  </rslelems>
  <rslelems xsi:type="Pattern" ptoken="execution_part_construct_list">
    <phead name="after_advice_stmt"/>
    <ptext xsi:type="SimplePatternText" ptext="CALL STOP_TIMER;"/>
  </rslelems>
  <rslelems xsi:type="Pattern" ptoken="LABEL">
    <phead name="init"/>
    <ptext xsi:type="SimplePatternText" ptext="1"/>
  </rslelems>
  <rslelems xsi:type="Pattern" ptoken="LABEL">
    <phead name="exit"/>
    <ptext xsi:type="SimplePatternText" ptext="10"/>
  </rslelems>
  <rslelems xsi:type="Pattern" ptoken="NAME">
    <phead name="within_code"/>
    <ptext xsi:type="SimplePatternText" ptext=" define_AB"/>
  </rslelems>
  <rslelems xsi:type="ExternalPattern" ptoken="Fortran90_program" dname="FORTRAN" eptext="around_advice_for">
    <phead name="around_advice_for">
      <params name="program" referTo="Fortran90_program"/>
      <params name="proceed_bef" referTo="execution_part_construct_list"/>
      <params name="proceed_after" referTo="execution_part_construct_list"/>
      <params name="withincode" referTo="NAME"/>
      <params name="init" referTo="LABEL"/>
      <params name="exit" referTo="LABEL"/>
    </phead>
  </rslelems>
  <rslelems xsi:type="Rule" rname="loop_timer" type="Fortran90_program">
    <params name="program" referTo="Fortran90_program"/>
    <r_lhs_pattern>
      <ruletext xsi:type="IDRuleText" text="program"/>
    </r_lhs_pattern>
    <r_rhs_pattern>
      <ruletext xsi:type="ComplexRuleText">
        <pref name="around_advice_for">
          <params xsi:type="RealParameter" name="program"/>
          <params xsi:type="PatternRef" name="before_advice_stmt"/>
          <params xsi:type="PatternRef" name="after_advice_stmt"/>
          <params xsi:type="PatternRef" name="within_code"/>
          <params xsi:type="PatternRef" name="init"/>
          <params xsi:type="PatternRef" name="exit"/>
        </pref>
      </ruletext>
      <condition xsi:type="RuleNotEqCondition" lhs="program">
        <pref name="around_advice_for">
          <params xsi:type="RealParameter" name="program"/>
          <params xsi:type="PatternRef" name="before_advice_stmt"/>
          <params xsi:type="PatternRef" name="after_advice_stmt"/>
          <params xsi:type="PatternRef" name="within_code"/>
          <params xsi:type="PatternRef" name="init"/>
          <params xsi:type="PatternRef" name="exit"/>
        </pref>
      </condition>
    </r_rhs_pattern>
  </rslelems>
  <ruleset rsname="demo_do">
    <rname>loop_timer</rname>
  </ruleset>
</RSL>

