16.1. CHAPTER OBJECTIVES16.2. DOUBLE-LEVEL OCCURS CLAUSE16.3. DEFINING A DOUBLE-LEVEL, OR TWO-DIMENSIONAL, ARRAY16.4. USING SUBSCRIPTS WITH DOUBLE-LEVEL OCCURS ENTRIES16.5. ACCESSING A DOUBLE-LEVEL, OR TWO-DIMENSIONAL, ARRAY16.6. THE PERFORM ... VARYING WITH THE AFTER OPTION16.7. USING NESTED PERFORMS16.8. USING PERFORM ... VARYING ... AFTER16.9. USING A DOUBLE-LEVEL, OR TWO-DIMENSIONAL, ARRAY FOR ACCUMULATING TOTALS16.10. LOADING INPUT DATA INTO A DOUBLE-LEVEL, OR TWO-DIMENSIONAL, ARRAY16.11. PERFORMING A LOOK-UP USING A DOUBLE-LEVEL OCCURS16.11.1. PERFORMING A FULL TABLE LOOK-UP16.12. THE IDENTIFIER USED WITH THE SEARCH REFERS TO THE LOWEST-LEVEL OCCURS ENTRY16.13. SEARCHING ONLY PART OF A TABLE16.14. VARYING ONLY ONE INDEX16.15. SEARCHING ELEMENTS IN AN ARRAY16.16. SEARCHING AN ARRAY UNTIL A MATCH IS FOUND16.17. SEARCHING AN ENTIRE ARRAY FOR MULTIPLE MATCHES16.18. TRIPLE-LEVEL OCCURS CLAUSES AND MORE16.19. END-OF-CHAPTER AIDS16.19.1. CHAPTER SUMMARY16.19.2. KEY TERMS16.20. CHAPTER SELF-TEST16.20.1. TRUE-OR-FALSE QUESTIONS16.20.2. FILL-IN-THE BLANKS16.20.3. GENERAL QUESTIONS16.21. DEBUGGING EXERCISES16.22. PRACTICE PROGRAM16.23. PROGRAMMING ASSIGNMENTS