With the exception of the return value described below, all parameters appear to the calling routine as read-only (by the called M program) pass-by-descriptor, and to the M routine as pass-by-value. If the M routine is coded as an extrinsic function or special variable, the MACRO should be coded with OUTPUT=YES. In that case, the first parameter appears to the calling routine as write-only (by the called M program) pass-by-descriptor, and to the M routine as the value of the expression that is the argument to the QUIT.