No part of the programs need to do anything functional except check that the correct type and range of parameter values have been passed between caller and callee and printout the following statement "Got to procedure X", where X is the name of the procedure executing, or "Error in procedure X: invalid parameter Y", if the interface rules have been broken by the caller. This is done by having the main() program call every function and having the function check for error conditions and return appropriate error values.
No part of the programs need to do anything functional except check that the correct type and range of parameter values have been passed between caller and callee and printout the following statement "Got to procedure X", where X is the name of the procedure executing, or "Error in procedure X: invalid parameter Y", if the interface rules have been broken by the caller. This is done by having the main() program call every function and having the function check for error conditions and return appropriate error values.