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