HP 3000 Manuals

CROSSREF Directive [ HP FORTRAN 77/iX Reference ] MPE/iX 5.0 Documentation


HP FORTRAN 77/iX Reference

CROSSREF Directive 

The CROSSREF directive produces a cross reference listing of a program
unit.  It is equivalent to the XREF directive.

Syntax 

$CROSSREF [ON ]
          [OFF]

Default               Off.  No cross reference listing is generated.

Location              Must appear before any nondirective statements in
                      the program unit.  It must precede an executable
                      program unit (for example PROGRAM, FUNCTION, or
                      SUBROUTINE.)

Toggling/ Duration    Cannot be toggled after the appearance of
                      nondirective statements in a program unit.

Example 

The following is a sample program using the CROSSREF directive.

      1        $CROSSREF
      2              INTEGER FUNCTION icp(op)
      3              COMMON /chars/ iblnk,ibkslsh,iequal,irparen,ilparen,
      4             1 icomma,iperiod,iplus,iminus,isemi,idollar,ileta,iletz
      5        C     ...
      6        C     ... returns incoming priority of op
      7              INTEGER op
      8              INTEGER legal(34)
      9              data legal /2h( ,2h+ ,2h- ,2h* ,2h/ ,2h^ ,2h-1,2h-2,
     10             1            2h-3,2h-4,2h-5,2h-6,2h-7,2h-8,2h-9,2h10,
     11             2            2h11,2h12,2h13,2h14,2h15,2h16,2h17,2h18,
     12             3            2h19,2h20,2h21,2h22,2h23,2h24,2h25,2h26,
     13             4            2h27,2h) /
     14              icp=-1
     15              DO 20 i=1,34
     16              IF (op .EQ. legal(i)) GO TO 30
     17           20 CONTINUE
     18        C     ...
     19        C     ... illegal op to icp
     20              CALL eror(7)
     21              RETURN
     22        C     ...
     23              30 GO TO (80,40,40,50,50,60,70,70,70,70,70,70,70,70,70,
     24             1       70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,
     25             2       70,70,70,80),i
     26              40 icp=1
     27              RETURN
     28              50 icp=2
     29              RETURN
     30           60 icp=4
     31              RETURN

     32           70 icp=5
     33              RETURN
     34           80 icp=100
     35              RETURN
     36              END

The following is the cross reference listing for the above program.  The
default line width is 80 columns.  It can be changed using the PAGEWIDTH
directive.

     SYMBOL    TYPE    FILE       LINE
     ------    ----    ----       ----
     CHARS/    (COMMN) crossref.f $3
     EROR      (PROC ) crossref.f #20
     I         (VAR  ) crossref.f !15   16   25
     IBKSLSH   (VAR  ) crossref.f %3
     IBLNK     (VAR  ) crossref.f %3
     ICOMMA    (VAR  ) crossref.f %4
     ICP       (PROC ) crossref.f *2   !14  !26  !28  !30  !32  !34
     IDOLLAR   (VAR  ) crossref.f %4
     IEQUAL    (VAR  ) crossref.f %3
     ILETA     (VAR  ) crossref.f %4
     ILETZ     (VAR  ) crossref.f %4
     ILPAREN   (VAR  ) crossref.f %3
     IMINUS    (VAR  ) crossref.f %4
     IPERIOD   (VAR  ) crossref.f %4
     IPLUS     (VAR  ) crossref.f %4
     IRPAREN   (VAR  ) crossref.f %3
     ISEMI     (VAR  ) crossref.f %4
     LEGAL     (VAR  ) crossref.f *8   @9    16
     OP        (ARGMT) crossref.f %2   *7    16

        NUMBER OF ERRORS =     0   NUMBER OF WARNINGS =    0

---------------------------------------------------------------------------------------------
|                   |                                                                       |
| SYMBOL            | The symbol name.                                                      |
|                   |                                                                       |
---------------------------------------------------------------------------------------------
|                   |                                                                       |
| TYPE              | The class of the symbol:                                              |
|                   |    *   ARGMT - argument passed to a procedure or function.            |
|                   |    *   COMMN - name of a common block.                                |
|                   |    *   CONST - named constant in a PARAMETER statement.               |
|                   |    *   NMLST - NAMELIST variable.                                     |
|                   |    *   PROC - internal or external procedure or function name.        |
|                   |    *   VAR - variables.                                               |
|                   |                                                                       |
---------------------------------------------------------------------------------------------
|                   |                                                                       |
| FILE              | The file where the symbol is found.                                   |
|                   |                                                                       |
---------------------------------------------------------------------------------------------
|                   |                                                                       |
| LINE              | One or more rows of line numbers that indicate where the symbol is    |
|                   | found.  Each line has a suffix that indicates the status of the       |
|                   | symbol at time of access.                                             |
|                   |    *   blank - symbol is being referenced.                            |
|                   |    *   !  - symbol is being modified.                                 |
|                   |    *   * - symbol is being defined and declared.                      |
|                   |    *   % - symbol is being declared.                                  |
|                   |    *   ^ - symbol is being declared, defined, and modified.           |
|                   |    *   # - symbol is being called.                                    |
|                   |    *   $ - symbol is declared, defined, and used.                     |
|                   |    *   @ - symbol is declared and modified.                           |
|                   |                                                                       |
---------------------------------------------------------------------------------------------



MPE/iX 5.0 Documentation