SOC7 occurs due to an un-initialized numeric item i.e. moving alphanumeric data item to numeric data item.
OS installations provide you a dump for run time abends .....I hope in JCL listing you will see ABENDAID output or any other tool outputs where you can see these dumps which will provide the offset of the last instruction at which the abend occurred.
Examine the compilation output XREF listing to get the verb and the line number of the source code at this offset. Then you can look at the source code to find the bug. To get capture the runtime dumps, you will have to define some datasets i think it should be something like SYSABOUT.
S0C7 error caused by bad data, which the program was unable to detect.
THIS MAY BE DUE TO DATA EXCEPTION - DECIMAL DATA IS INCORRECT OR IMPROPERLY OVERLAPPED OR NOT VALIDLY INITIALIZED. --POSSIBLE CAUSE-- SUBSCRIPT ERROR, REFERENCED BEYOND TABLE
COBOL - WORKING STORAGE NOT INITIALIZED - BAD DATA.
SHOULD CHECK DATA FOR ERRORS -
INITIALIZE PROPERLY ALL DATA FIELDS -
CHECK FOR NUMERIC CONDITION, AND ACT PROPERLY IF NON NUMERIC DATA -
GARBAGE IN A FIELD BEING TESTED OR DISPLAYED -
MOVE ZEROES TO GROUP LEVEL IS DISPLAY, HAD SUB-LEVELS THAT WERE NOT -
PERIOD MISSING AFTER IMPERATIVE STATEMENTS WITHIN AT END CLAUSE -
BINARY FIELD IN AN ARITHMETIC OPERATION IS NOT LARGE ENOUGH TO ACCEPT RESULT.