A piece of a program that is “called” from another part of the program. Often a well-structured program will consist of a short main routine that calls many subroutines to do the work. Subroutines are individually tested sections of programming code and therefore, cut down the debugging and testing time when used and then used again in other situations. Programmers often have libraries of subroutines. A program that consists of mostly routines and subroutines is often called a subroutine sandwich by programmers. Subroutines are small in comparison to programs and are smaller than routines. A sub routine does one and only one job.