A subroutine that has no return value. It can accept input parameters from and return output parameters to the caller.