Problem:
Subprogram's Working-Storage is only initialized the first time is called. Any subsequent calls to the same subprogram will find the previous values of Working-Storage.
Resolution:
Add the INITIAL clause to the subprogram's PROGRAM-ID, e.g. PROGRAM-ID SubProgram IS INITIAL.
An initial program is one whose program state is initialized when the program is called. During the process of initializing an initial program, that program's internal data is initialized as described in the section State of a Function, Method, Object or Program. The initial attribute is attained by specifying the INITIAL clause in the program's Identification Division.