In reply to ben@SystemVerilog.us:
Ben,
You may be confusing the terms “refers to” with “a reference argument”.
The term “refers to” is a mention of an identifier in the source text, referring to something declared in another place. In the code
send(i), The variable i is referred to inside the fork/join_any, and was declared outside the fork. ‘i’ is not a formal argument.
A “formal argument passed by reference” is an indirection. The formal argument identifier becomes a symbolic reference to the actual identifier. And the reference is unidirectional and only active for the duration of the task/function call. Formal j is a reference to actual i, but actual i is not a reference to j. That’s because there is no variable j.