The same actual argument cannot be used more than once in a procedure call if the corresponding dummy arguments are assigned new values. For example, with:
SUBROUTINE FUNNY(X, Y) X = 2.0 Y = 3.0 ENDA call such as:
CALL FUNNY(A, A)
A similar restriction applies to variables which are returned via a common block and also through the procedure argument list.