
FTNCHEK Version 3.3 November 2004

File arg-alias.f:

      1       INTEGER LIST(100)
      2       EQUIVALENCE (E,B)
      3       EQUIVALENCE (E,C)
      4       EQUIVALENCE (A,C)
      5       A = 1.0
      6       CALL FOO(A,D,B,C)
      7       CALL FOO(A,B,C,A)
      8       CALL FOO(W,X,Y,Z)
      9       DO 10 I = 1,100
     10          LIST(I) = I
     11  10   CONTINUE
     12       DO 30 I = 1,100
     13          DO 20 J = 1,I
     14             CALL SWAP(LIST(I),LIST(J))
     15  20      CONTINUE
     16  30   CONTINUE
     17       END

Module %MAIN: prog

External subprograms referenced:

       FOO: subr         SWAP: subr   

Variables:
 
      Name Type Dims     Name Type Dims     Name Type Dims     Name Type Dims
         A real*            B real*            C real*            D real*  
         E real*            I intg*            J intg*         LIST intg  1
         W real*            X real*            Y real*            Z real*  

* Variable not declared. Type has been implicitly defined.



Statement labels defined:

    Label   Line  StmtType    Label   Line  StmtType    Label   Line  StmtType
     <10>     11      exec     <20>     15      exec     <30>     16      exec

     18       SUBROUTINE FOO(A,B,C,D)
     19       CALL SWAP(A,B)
     20       B = C
     21       C = D
     22       D = A
     23       END

Module FOO: subr

External subprograms referenced:

      SWAP: subr   

Variables:
 
      Name Type Dims     Name Type Dims     Name Type Dims     Name Type Dims
         A real*            B real*            C real*            D real*  

* Variable not declared. Type has been implicitly defined.


     24       SUBROUTINE SWAP(X,Y)
     25       INTEGER X,Y
     26       INTEGER TEMP
     27       TEMP = X
     28       X = Y
     29       Y = TEMP
     30       END
     31 

Module SWAP: subr

Variables:
 
      Name Type Dims     Name Type Dims     Name Type Dims     Name Type Dims
      TEMP intg             X intg             Y intg   




 0 syntax errors detected in file arg-alias.f
 2 warnings issued in file arg-alias.f

"arg-alias.f", line 18: Warning: Subprogram FOO argument usage mismatch at
 position 1:
"arg-alias.f", line 18:    Dummy arg A in module FOO may be modified
"arg-alias.f", line 6:    Actual arg A in module %MAIN same as arg 4: C
"arg-alias.f", line 18:  and at position 3:
"arg-alias.f", line 18:    Dummy arg C in module FOO is modified
"arg-alias.f", line 6:    Actual arg B in module %MAIN same as arg 1: A
"arg-alias.f", line 18:  and at position 4:
"arg-alias.f", line 18:    Dummy arg D in module FOO is modified
"arg-alias.f", line 6:    Actual arg C in module %MAIN same as arg 3: B

"arg-alias.f", line 18: Warning: Subprogram FOO argument usage mismatch at
 position 1:
"arg-alias.f", line 18:    Dummy arg A in module FOO may be modified
"arg-alias.f", line 7:    Actual arg A in module %MAIN same as arg 4: A
"arg-alias.f", line 18:  and at position 2:
"arg-alias.f", line 18:    Dummy arg B in module FOO is modified
"arg-alias.f", line 7:    Actual arg B in module %MAIN same as arg 1: A
"arg-alias.f", line 18:  and at position 3:
"arg-alias.f", line 18:    Dummy arg C in module FOO is modified
"arg-alias.f", line 7:    Actual arg C in module %MAIN same as arg 2: B
 etc...

"arg-alias.f", line 18: Warning: Subprogram FOO argument usage mismatch at
 position 3:
"arg-alias.f", line 18:    Dummy arg C in module FOO is used before set
"arg-alias.f", line 8:    Actual arg Y in module %MAIN is not set
"arg-alias.f", line 18:  and at position 4:
"arg-alias.f", line 18:    Dummy arg D in module FOO is used before set
"arg-alias.f", line 8:    Actual arg Z in module %MAIN is not set

"arg-alias.f", line 24: Warning: Subprogram SWAP argument data type mismatch 
 at position 1:
"arg-alias.f", line 24:    Dummy arg X in module SWAP is type intg
"arg-alias.f", line 19:    Actual arg A in module FOO is type real
"arg-alias.f", line 24:  and at position 2:
"arg-alias.f", line 24:    Dummy arg Y in module SWAP is type intg
"arg-alias.f", line 19:    Actual arg B in module FOO is type real

"arg-alias.f", line 24: Warning: Subprogram SWAP argument usage mismatch at
 position 1:
"arg-alias.f", line 24:    Dummy arg X in module SWAP is modified
"arg-alias.f", line 14:    Actual arg LIST(I) in module %MAIN may be same as
 arg 2: LIST(J)
"arg-alias.f", line 24:  and at position 2:
"arg-alias.f", line 24:    Dummy arg Y in module SWAP is modified
"arg-alias.f", line 14:    Actual arg LIST(J) in module %MAIN may be same as
 arg 1: LIST(I)
