This question was also posted on Stack Overflow and there is a good answer there from cschneid.
NUMCHECK is behaving as intended. Having a positive or negative sign in an unsigned data item is invalid data. The COBOL language guarantees no specific behaviour for invalid data, and therefore leaving it as-is can lead to differences in program behaviour from V4. To get past the abend, compile with NUMCHECK(PAC,MSG) and you will only get messages when invalid data is found. If you cannot fix your invalid data for some reason, please open a PMR if you see different program behaviour. Also, if you haven't listened already, you might find the COBOL Migration Workshop migration recordings useful.
Let me know if you have any other questions!
-----------------------------------------------------
Answered by Nicole Trudeau on Jan 02, 2019
-----------------------------------------------------