Subroutines allow parts of your program code to run selectively, and only when required. This can substantially reduce the size of the main program routine, improve scan times, and simplify your program.
One subroutine can be called from multiple locations in the main program
When a subroutine is called the main program is on hold - at the current rung - waiting for the subroutine to "return"
When a subroutine is not running that subroutine is not scanned, and any coils unique to that routine do not change
Subroutines are indicated with a green background in the editor