When you call one COBOL program from another, you specify the name of the program to call either in a data-name or as a literal. For example:
CALL program-name USING ... CALL "program-name" USING ...
where program-name (without quotation marks) is a data item that contains a valid program-name, and "program-name" (with quotation marks) is a literal string and is the actual name of a valid program.
The called program can be dynamically linked, where a dynamically linked module is a .dll file. The called program can also be dynamically loaded when the program runs, where a dynamically loadable module is a either a .dll file, an .int file or a gnt file.
Use a CALL literal statement to call a dynamically linked program directly. If the program is not already in memory, the dynamic loader tries to find a dynamically loadable version of the program. If the program cannot be found, an RTS error message is issued.
Use either a CALL literal statement, or a CALL data-name statement, to call a dynamically loadable program, and make the dynamic loader run-time support module search for the called program.
If the file is not found, the run-time system tries to load a .dll file from PATH using the specified base-name.