FDUMP - Fortran symbolic dump subroutine.

Usage:

call fdump(n,do)

Where:

do
is an integer specifying the logical unit on which to write the dump. If "do" is not given or is non-positive, unit 6 is used.
n
specifies the number of subroutines to dump, starting with the one most recently called. If "n" is less than or equal to 0, the call is ignored. If "n" equals one, only the faulting routine is dumped. If "n" equals two, the faulting routine and the one which called it (if any) is dumped, and so on. If "n" is not supplied, the nesting list is traced back to the main program, if possible.

Description:

Unless preventive action is taken by the programmer, a symbolic dump will automatically be produced by FDUMP when a batch Fortran program terminates abnormally. It can also be called from any Fortran program, in TSS or batch, as many times as you wish.

The dump is written on logical unit "do" and will include the "n" subprograms most recently entered into the nesting list. If "n" is not supplied, it is taken to be a very large integer, so that the nesting list will always be traced back to the main program.

When FDUMP is called, it prints a heading describing how it was entered. Next comes a symbolic dump (by name and according to type) of the variables of every subroutine that was in the nesting list at the time FDUMP was entered.

When FDUMP is entered by a call, the heading reads

FDUMP CALLED FROM <name> IN LINE NUMBER <line-no.>

When FDUMP is entered after an abnormal termination, the heading reads

FDUMP CALLED FROM WRAPUP

FDUMP starts with the subprogram that called it or the subprogram in control at the time of abnormal termination. For each routine in the nesting list that it dumps, the following subheading is printed.

SUBPROGRAM <name>
CALLED FROM <name2> IN LINE NUMBER <line-no>

The second line is omitted when the main level is reached. The subheading is followed by a list of of the non-subscripted variables, followed by the arrays. Arrays are printed by column, with "..." used to indicate successive lines of output that would be identical. In addition, "..." is used to indicate successive columns that would be identical.

The format used for each type of variable is as follows.

integer          I13
real             1PE15.7
logical          O13
complex          1P2E15.7
double precision 1PD26.18
character        An

Messages:

FDUMP COMPLETE
- no error conditions occurred and the dump is complete.
SYMBOL TABLE NOT AVAILABLE OR OVERWRITTEN
- the routine has no symbol tables, probably because the generation of FDS debug tables was suppressed when the routine was compiled.
CIRCULAR CALL DETECTED, DUMP TERMINATED
- indicates FDUMP has discovered a routine it has already dumped during this call; a routine is calling itself recursively or several routines are calling each other in a circular manner.
NESTING LIST OVERWRITTEN, DUMP TERMINATED
- the nesting list, maintained for traceback purposes, has been clobbered in such a way that it cannot be traced back.

Copyright © 1996, Thinkage Ltd.