My preference would be to see the condition in the subroutine, for two reasons:
It keeps the boundary condition of the subroutine in the same location as the code body. This leaves no chance of running the sub by accident without first checking the input. (This may not be a crisis in this example, but there are other cases where calling a routine with incorrect (but syntactically valid) arguments can cause some really ugly, nasty, hard to sort out, bugs. Ask me sometime about the "cooling tower simulator"...)
If your control logic comes in two pieces, putting both pieces together in one place means that the maintenance programmer will be automatically reminded of the conditions and limitations. Consider it a form of internal documentation, using the code to show your logic.