Trashing a program question

By JamesBond, in Android: Netrunner Rules Questions

So I have a question that seems very basic, but I can't find an answer for it in the rulebook.

If a piece of ice has a subroutine that reads "Trash 1 program" and that subroutine is not broken, how is the program to trash chosen? Does the Corp player get to select? Does the Runner get to select? Is it chosen at random (like net and meat damage)? And how did I miss the answer to such a basic question?

Thank you in advance.

Most of the instructions on ice subroutines are written as instructions to the Corp: "Do 3 net damage", "Give the runner 1 tag". This is no different. The Corporation player chooses which program to trash, should this subroutine trigger.

Thank you for your prompt reply.