Load modules can be created with any name you want. The default is the PROGRAM-ID but there is no requirement that the load module name be that. The CALL statement uses the PROGRAM-ID (which may be the load module name or it may be the name of a CSECT in the load module).
You can use the linkage editor (binder) statements
You would be advised to read the COBOL Language Reference and Programming Guide manuals (link at the top of the page) about PROGRAM-ID and PGMNAME and if you have questions after reading these manuals, please let us know.
When I compile my program and link edit it I find the load module with the name of my program (and not the Program-id) and I use the same name with proper DSN in my RUN JCL.
I do not find My Program-id any where.
If my program name is PGM1 and Program-id is REPORT then I always refer program name (PGM1) and not REPORT, even there, where Load Module is required.
But as Robert mentioned load Module is program-id(REPORT in this case),
I believe my assumption was wrong and need to go through the COBOL manuals.
In the meanwhile all replies regarding this will be highly appreciated.