As Franj mentioned, and I alluded to, it is entirely possible, just not as easy as using the call stack the way done in C. Just have the subroutine operate on values referenced by array index, then bump the index, stuff new values, and call the subroutine again. Since you are operating on external data, it's not even necessary to 'pass' the parameters, just increment the index, set the associated value, then CALL. Data can be returned in the same stack, and pre or post decremented as required.