Calling a subroutine

When calling a subroutine, the input runtime options string is ignored. The subroutine is run in an environment that is initialized using the initialization runtime options string merged with the system-level defaults before initializing the environment.

When a subroutine is run on an environment just after a main routine is run on the same environment, the subroutine receives a reinitialized environment. When a subroutine calls exit(), the atexits are invoked and environment terminates after the atexits. The next time this environment is used, it is reinitialized.