Table of Contents

Previous: -brief

## Option: calltree

-calltree=list
    Causes ftnchek to print out the call structure of the complete program.

    The list consists of keywords separated by commas or colons. There are two special keywords: none to turn off all the options, and help to print the list of all the keywords with a brief explanation of each. (The keyword all turns on all the options, but should not normally be used since only one format should be specified.) If list is omitted, -calltree is equivalent to -calltree=tree, and -nocalltree is equivalent to -calltree=none. By default no call graph is printed.

    If the -mkhtml option is invoked and tree is the applied calltree option, a file named CallTree.html, will also be produced depicting the tree in HTML format. This file is useful as a starting point for browsing the HTML files describing each component of the program.

    The keywords which control which format is used are as follows:

    tree:
      produce the call graph in tree format.
    reference:
      produce the call graph in who-calls-who format (same as -reference switch).
    vcg:
      produce the call graph in VCG format (same as -vcg switch).

    Only one of the formats tree, reference, or vcg may be specified.

    The following keywords control options affecting the output:

    prune:
      prune repeated subtrees (applicable only with tree). This the default.
    sort:
      sort children of each routine into alphabetical order. This is the default.

    See the discussion of the -reference and -vcg flags for details about these formats.

    For tree format, The call graph 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, use option no-prune.

    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 unless the no-sort option is given. 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.

    For compatibility with previous versions of ftnchek, a numeric form of this setting is also accepted: the list is replaced by a number from 0 to 15. This number is formed from 1 for tree format, 2 for reference format, or 3 for vcg format, plus 4 for no-prune, and 8 for no-sort.

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

  Next: -check