CALL and RETURN:

 
<call statement>        ::= CALL <variable>

<variable>        ::= <identifier>
                    | <subscript head> <expression> ) 

<subscript head>  ::= <identifier> (
                    | <subscript head> <expression> ,

<return statement>      ::= RETURN
                          | RETURN <expression>

  
 
A procedure may be called by a call statement, or be called as a function proceure by the appearance of its name in an expression. When called by a call statement, the value, if any, returned by the procedure is ignored.

The return statement, or reaching the end statement of the procedure, returns control to the statement following the call. Return <expression> causes <expression> to be evaluated and its value returned as the value of a function procedure. If a procedure does not return with return <expression> the returned value is undefined.