Maybe you need to use Elseif?
You can also create a global variable and asign it different values within each subroutine, you can then follow the value of this global variable in your results at each timestep so that you can check that the routine is doing what you expect
EnergyManagementSystem:OutputVariable,
ReportMyVariable, !- Name
MyVariable, !- EMS Variable Name
Averaged, !- Type of Data in Variable
ZoneTimeStep, !- Update Frequency
, !- EMS Program or Subroutine Name
val; !- Units
Output:Variable,*,ReportMyVariable,timestep;