As nouns the difference between subroutine and subprogram
is that subroutine is (computer science) a section of code, called by the main body of a program, that implements a task while subprogram is (computing) a program contained within a larger program.