STOWing calling programs


Till date I had teh understanding that if any subprogram is modified then the calling programs need to be modified.
But today when I suggested the same thing to my team mate, I got the answer as not necessary to STOW the dependent programs.

I tried this and it is working fine.
I wrote a program and called a subprogram from with in it. I modified teh subprogram and stowed it but did not STOW the program. It was working fine.

Can someone please clarify this to me. If any subprogram is modified is it ok if we do not STOW the calling program.

Note: I am using Natural 4.2.nn version.


Only changes to the parameter list would require the calling module to be STOWed or CATalogued. If the changes are within an external PDA which is common to the caller and callee, then only a CAT is needed, no SAVE nor STOW. If the caller and callee define their own PDAs (external or internal), then the caller must be modified and STOWed.

The exception relates to OPTIONAL parameters. If the parameter modifications to the subprogram are limited to OPTIONAL parameters which are not reference by the caller, then the caller need not be catalogued.