One possible cause of the 'Runtime has stopped working' message.
This can be caused by an index-out-of-bounds condition. If you use compiler option -Za and compile in debug mode then the runtime will notify you if this condition occurs.
What happens is the procedure division allows you to exceed the table size specified in the working storage. This overwrites the working storage elements following the definition of the table. This can be tested by NOT using option Za and monitoring variables following your table as you initialize the last element + 1. The monitor will detect the change.