Manta alt


You must allow the browser to execute JavaScript programs if you want to view product information. If your browser is set up to execute JavaScript programs, the problem is that the product ID was incorrect. Use the menu bar above to find the desired product.



This course covers the creation and use of subprograms. The course begins by describing the concepts that are common to all subprograms. It then discusses appropriate applications for subprograms. Following this, the course illustrates how external subprograms affect the execution process and examines subprogram linkage.

Next, the course discusses subprogram usage in COBOL, beginning with how to call a subprogram from a COBOL program. You will then see how to write a subprogram in COBOL. The course also discusses design and testing considerations when using subprograms, as well as several advanced subprogramming techniques. Finally, the course demonstrates how to use dynamic subprogram calls.

Approximate Study Time: 5 hours


After completing this course, you should be able to:

  • Identify the ways in which a subprogram may be called from a COBOL program
  • Describe the ways in which data can be shared between a subprogram and its caller
  • Write a COBOL program that uses a subprogram
  • Design and code a COBOL subprogram
  • Use the RETURN-CODE special register in a subprogram and a calling program to determine the success of a subprogram
  • Code a COBOL subprogram which, in turn, invokes another subprogram
  • Code a COBOL main program that accepts parameter information from the operating system
  • Modify a COBOL subprogram so that it can be used in a wider variety of situations
  • Write a program stub to replace a COBOL subprogram during the testing of its calling programs
  • Write a COBOL driver program to test a subprogram
  • Code the COBOL statements to accomplish dynamic subprogram linkage

Topic Outline

Subprogram Concepts and Applications

Invoking Subprograms in COBOL

Writing COBOL Subprograms

Advanced Subprogram Considerations

Designing and Testing in a Subprogram Environment

Controlling Subprogram Linkage


The course is suitable for entry-level programming students with no prior COBOL experience. It can also be taken by COBOL/400 programmers who want to learn ILE COBOL.


Before you begin your study of the material, you should know basic programming concepts and be acquainted with structured programming design techniques. In particular, you will be expected to understand program logic that is documented using pseudocode or structured flowcharts. You may have gained this knowledge from attending classes or from relevant work experience.

This course also assumes that you have a working knowledge of IBM i programming concepts and facilities. You can satisfy this prerequisite by successfully completing the courses in the following Manta series:

Finally, the course assumes that you have completed the previous courses of this series: