+-------------------------------IBM Extension--------------------------------+
When the BY VALUE phrase is specified, the value of the parameter is passed, not a reference to the sending data item. The called program can modify the formal parameter corresponding to the BY VALUE parameter, but any such changes do not affect the parameter since the called program has access to a temporary copy of the sending data item.
While BY VALUE parameters are primarily intended for communication with non-COBOL programs (such as C), they can also be used for COBOL-to-COBOL invocations. In this case, BY VALUE must be specified or implied for both the parameter in the CALL USING phrase and the corresponding formal parameter in the PROCEDURE DIVISION USING phrase.
The BY CONTENT, BY VALUE and BY REFERENCE phrases apply to the parameters that follow them until another BY CONTENT, BY VALUE or BY REFERENCE phrase is encountered. If none of these phrases appear before the first parameter, BY REFERENCE is assumed.
The BY VALUE phrase is not allowed for programs called with linkage type of program.
It can be:
Integer-1 is passed as a binary value. If integer-2 is not specified then integer-1 will be passed as a 4-byte binary value. Integer-2 specifies the size of integer-1. This can be one of 1, 2, 4 or 8.
+----------------------------End of IBM Extension----------------------------+
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.