My understanding for static call is ... I have to compile all the main and sub programs separately. and at the time of link edit we should link edit all the modules(main and sub) to a single load module with the main program name.

Here I have a question .. How to link edit the main and my 5 sub programs to a single load module.

Your best bet is to talk with your system support people. They can show how this is done on your system.

In general, you compile the 5 subprograms and link them. Once they are compiled/linked, compile and link the main program. The link for the main program should automatically include the called modules. Unless there is something "special" in your environment, you should not need to do anythng else.

If your main program is TEST which calls two sub programs TESTA and TESTB, then you need to compile and linkedit (this can be done in a single compile JCL) TESTA and TESTB first.
Then compile and link edit the main program TEST.

NCAL is a Linkage Editor Option so that called modules (like the COBOL support routines) will not be linked into the sub modules when they are first linked. These sub modules are linked into a PDS. This PDS that the sub modules are linked into should be allocated to the DD SYSlib in the link step when the main program is linked. When linking the main program do not use NCAL. The sub modules and all of the COBOL support routines will be linked in at this time. Sorry I was not more explicit in my previous post.