Table of Contents

Previous: -array


Option: calltree

-calltree=num
Causes ftnchek to print out the call structure of the complete program. The value of num is the sum of numbers selected from the following list:
0:
do not produce any call graph.
1:
produce the call graph in tree format.
2:
produce the call graph in who-calls-who format (same as -reference switch).
3:
produce the call graph in VCG format (same as -vcg switch).
4:
do not prune repeated subtrees (applicable only for format 1).
8:
do not sort children into alphabetical order.

Only one of the formats 1, 2, or 3 may be included in the sum. If no format is specified but one of the other options is given so that the number is nonzero, call-tree format will be used.

Default = turn-on = 1. See the discussion of the -reference and -vcg flags for details about these formats.

For tree format, The tree is printed out starting from the main program, which is listed on the first line at the left margin. Then on the following lines, each routine called by the main program is listed, indented a few spaces, followed by the subtree starting at that routine.

In the default mode, if a routine is called by more than one other routine, its call subtree is printed only the first time it is encountered Later calls give only the routine name and the notice ``(see above)''. To have the subtree printed for each occurrence of the routine, include 4 (don't-prune) in num .

Note that the call tree will be incomplete if any of the input files are project files containing more than one module that were created in -library mode. See the discussion of project files below.

Technical points: Each list of routines called by a given routine is printed in alphabetical order. If multiple main programs are found, the call tree of each is printed separately. If no main program is found, a report to that effect is printed out, and the call trees of any top-level non-library routines are printed. This flag only controls the printing of the call tree: ftnchek constructs the call tree in any case because it is used to determine which library modules will be cross-checked. See the discussion of the -library flag.

See also: -crossref , -library , -reference , -sort , -symtab , -vcg .


Next: -check