Normally subroutines use the USING phrase, like:
PROCEDURE DIVISION USING DFHCOMMAREA.
I saw a subroutine that does not use USING phrase, but it receives parameters through LINKAGE section.
*------------------------------------------
LINKAGE SECTION.
*------------------------------------------
01 DFHCOMMAREA.
...
LINKAGE SECTION.
*------------------------------------------
01 DFHCOMMAREA.
...
I didn't find anything telling that you can omit the USING phrase:
https://www.ibm.com/support/knowledgece ... pdsusi.htm
http://www.ibm.com/support/knowledgecen ... pdsusi.htm
References to items in the linkage section
Data items defined in the linkage section of the called program or invoked method can be referenced within the procedure division of that program if and only if they satisfy one of the following conditions:
They are operands of the USING phrase of the procedure division header or the ENTRY statement.
They are operands of SET ADDRESS OF, CALL ... BY REFERENCE ADDRESS OF, or INVOKE ... BY REFERENCE ADDRESS OF.
They are defined with a REDEFINES or RENAMES clause, the object of which satisfies the above conditions.
They are items subordinate to any item that satisfies the condition in the rules above.
They are condition-names or index-names associated with data items that satisfy any of the above conditions.
So I am wondering why this works. Maybe it's because it's using DFHCOMMAREA as a name?
I will try a different name and see if it works.