An error occurs while accessing the file. This is normally due to file permission or because the file does not exist.
Message ID: FTL_IN_FLN_FILE
An error occurs while accessing the library. This is normally due to file permission or because the library does not exist.
Message ID: E_LIB_FILE
Dimension bound expressions of the form [dd1:]dd2 specifying the
lower- and upper- bound
values for an array. They can be arithmetic expressions of type
integer or real. They can be formed using constants, symbolic constants,
formal arguments, or variables defined in the COMMON statement.
Array references and references to user-defined functions cannot
be used in the dimension bound expression. dd2 can also be an asterisk.
If dd1 is not specified, a value of one is assumed. The value of
dd1 must be less than or equal to dd2.
Example: An error occurs because the first dimension bound is greater
than the second dimension bound.
dimension m(5:2)
Message ID: EDECL_NEG_DIM
c f77 EDATA_0_POW_NEG.F -Xlistv3
#define m -5
parameter (z=0**m)
print *, z
end
Message ID: EDATA_0_POW_NEG
c f77 EDATA_INT_POW_NEG.F -Xlistv3
#define m -5
parameter (z=2**m)
print *, z
end
Message ID: EDATA_INT_POW_NEG
parameter ( n = 2 / 0 )
end
Message ID: EDATA_DIV_0
real c(2,2)
data c(3,2) / 0.0 /
end
Message ID: EEXPR_SUBS_BOUNDS_SCR
An integer value cannot be assigned to a variable of type character.
Example:
character j
j = 1
end
Message ID: EEXPR_TYPE
Example: A compilation error occurs because the subroutine name cannot
be used in an arithmetic expression.
subroutine jim
jim = jim + 1
end
Message ID: EEXPR_TYPE_NONARITH_AOP
Example:
if ( 2.55 .and. 1.45 .gt. 2.99999 ) print *, 3.0
end
Message ID: EEXPR_TYPE_NONLOGICAL
Example:
if ( 3 // 6 .eq. 0.5 ) print *, 3/6
end
Message ID: EEXPR_TYPE_NONCHAR
Example:
if ( (2.5,0.0).gt.(0.0,2.5) ) print *, "Huh?"
end
Message ID: EEXPR_COMPARE_COMPLEX
Example:
character*10 d24
data d24(24:24) /'a'/
Message ID: EEXPR_SUBS_BOUNDS_STR
Example:
call s(0,-2)
end
subroutine s0(i,j)
integer i,j
j = abs(j)
entry s(i,j)
k= i**j
c ^
c**** ERR #141: zero raised to a negative power on "s" invocation
print *, k
end
Message ID: EDATA_0_POW_NEG_E
Example:
real x(5)
do i=1, 5,0
x(i) = i + 5.0
enddo
end
Message ID: EEXEC_DO_ZERO_STEP
include "no_file"
C ^
C**** ERR #189: cannot open file "no_file"
end
Message ID: ELEX_FILE
The external symbol used for the common block name must be unique
and cannot collide with another external symbol, like a procedure
name, for example.
Example:
subroutine f
return
end
common/f/f
f=1
end
Message ID: EJUNK_COMMON_GPC
This warning message happens when a GOTO statement causes some
unlabelled group of statement to be skipped.
Example:
goto 10
print *, i
10 continue
end
Message ID: WSTRUCT_NREACH
This error only occurs with -Xlistv3 compilation option when a
loop increment is a dummy argument and the corresponding actual
argument is zero.
Example: Since 'f2' is called with '0' as the actual argument
the loop increment 'n3' corresponds to '0'.
call f2(0)
end
subroutine f(n3)
entry f2(n3)
do i=1, 2, n3 ! Warning over here
C ^
C**** ERR #202: zero loop increment on "f2" invocation
print *, i
enddo
end
Message ID: EEXEC_DO_ZERO_STEP_E
A memory location can only be initialized once. When multiple
initializations are done to the same address, then the latest
initialization will override previous initializations and a
warning is issued by the compiler.
Example:
real m(3) /1e+1,1e+2,1e+3/
data m(2) /-1e+2/
end
Message ID: WDATA_OVERLAP
A memory location can only be initialized once. When multiple
initializations are done to the same address, then the latest
initialization will override previous initializations and a
warning is issued by the compiler.
Example:
structure /s/
union
map
real t / 2.55 /
endmap
map
real q / 5.22 /
endmap
endunion
endstructure
record /s/ t(5)
t(1).q = 2.52
end
Message ID: WDATA_STRUCT_OVERLAP
Example:
parameter (zz=0.0**0.0)
print *, zz
Message ID: WDATA_0_POW_0
call e(0)
call s(1)
end
subroutine s(i)
j = 2/i
entry e(i)
j = 3/i
C**** ERR #217: division by zero on "e" invocation
print *, j
end
Message ID: EDATA_DIV_0_E
This warning is given when the DO loop does not get executed
because the lower bound is greater than the upper bound and the
step size if greater than zero, or the lower bound is less than
the upper bound and the step size is less than zero.
Example: since the step size is '1' and the lower bound '5' is already
greater than the upper bound of '2' the loop never gets executed.
do i=5,2
print *, i
enddo
Message ID: WEXEC_DO_ZERO_ITER
When the DO-loop variable is modified within the loop the number
of iterations is effected. This warning message is given when this
happens.
Example:
do j=1,5
j = j+1
enddo
end
Message ID: WEXEC_ASSIGN_COUNTER
When the number of bits in a bit constant is more than the number of
bits in the destination variable, the leftmost bits will be truncated
and a warning will be given.
Example:
integer*2 k / z'12345' /
end
Message ID: WCON_BIG_BIT
X = 4 .OR. 1
Message ID: WANSI_LOGOP_INT
LOGICAL Z, Z1
Z = .TRUE.
Z1 = .NOT. Z
Z = Z1 * Z
Message ID: WANSI_NUMOP_LOG
parameter (x=2.5e+255+2.5e-255)
print *, x
Message ID: WEXPR_VAL_TOOBIG
C-# E_DUP_MAIN.f:
function foo(x)
foo = x
end
C-# E_DUP_MAIN_1.f:
function foo(x)
C ^
C**** ERR #312: duplicate declaration of "foo", it is declared in file
C E_DUP_MAIN.f, line 2
foo = x*x
end
Message ID: FDECL_DUP_PROC
program X
end
program Z
C**** ERR #313: duplicate declaration of main program
C See: "E_DUP_MAIN.f" line #1
end
Message ID: E_DUP_MAIN
subroutine s
common /bm/ z
common /bl/ a, x
C ^
C**** WAR #314: members of common /bl/ not used in this subprogram
z = 2.0
end
Message ID: W_NOUSED_COMM
CFILE FDECL_UNUSED_TX.f
real a
C ^
C**** WAR #315: variable "a" declared but never used
end
Message ID: FDECL_UNUSED_TX
print *,f1(10), f(1)
end
function f(l)
f = 3
return
entry f1(l)
f1=f+l
C ^
C**** ERR #316: function "f" may be referenced before set
end
Message ID: FREF_UNSET_0
integer arr
pointer (p1, arr(10))
arr(1) = 0
C ^
C**** ERR #318: pointer never set for referenced pointer-based array "arr"
end
Message ID: F_NO_MEM_0
CFILE F_NO_SET_PNT.f
POINTER(CCTPTR, WRK01V)
INTEGER*4 CCTPTR
CCTPTR=3
C ^
C**** WAR #319: possible suspicious pointer "cctptr" assignment
END
Message ID: F_NO_SET_PNT_0
CFILE FDECL_UNUSED_TX.f
x = 2.5
C ^
C**** WAR #320: variable "x" set but never referenced
end
Message ID: FSET_UNUSED
CFILE FFUN_UNSET.f
function foo(j)
j=j+1
end
C**** ERR #322: "foo" function result is not set
Message ID: FFUN_UNSET
CFILE "EEXEC_CLARG.f"
intrinsic sin
i = foo (sin(0.0), 0.0)
C ^
C**** ERR #323: argument #1 is expression, but dummy argument is function
C See: "EEXEC_CLARG.f" line #8
print *,i
end
function foo (sincos, x)
external sincos
if (sincos(x) .gt. 0.0) foo=0
end
Message ID: EEXEC_CLARG
C FILE "EEXEC_CLARGF.f"
x = 1
call s(x,s)
end
subroutine s(x,soo)
if ( x.gt.1000 ) return
call soo(x,%val(x))
C ^
C**** ERR #324: argument #2 for actual "s" is value, but dummy argument is subroutine
C See: "EEXEC_CLARGF.f" line #5
call soo(x,*5)
5 print *, x
end
Message ID: EEXEC_CLARGF
function foo( x, y )
real x, y
external x
foo = x(y)
end
x = foo(y, 5.0)
C ^
C**** ERR #325: argument "y" is variable, but dummy argument is function
C See: "EEXEC_CLARG_ID.f" line #1
end
Message ID: EEXEC_CLARG_ID
CFILE "EEXEC_CLARG_IDF.f"
external sin
i = foo(sin, 9)
print *,i, sin(1)
end
function sin(z)
real z(5)
sin = z(1)
end
function foo(sincos, j)
external sincos
if (sincos(j) .gt. 0.0) foo=0
C ^
C**** ERR #326: argument "j" for actual "sin" is variable, but dummy argument is array
C See: "EEXEC_CLARG_IDF.f" line #6
end
Message ID: EEXEC_CLARG_IDF
CFILE "EEXEC_NOFUN.f"
call s(0.0)
x = s(0.1)
C ^
C**** ERR #327: subroutine "s" called as function
C See: "EEXEC_NOFUN.f" line #8
end
subroutine s(x)
print *, x
end
Message ID: EEXEC_NOFUN
CFILE EEXEC_NOFUN.f
call z(x)
call s (0.0, z)
x = s (0.1, z)
end
subroutine s(x, z)
y = z(x)
C ^
C**** ERR #328: actual subroutine "z" called as function
C See: "EEXEC_NOFUN.f" line #14
call z(x)
print *, x
end
subroutine z(x)
x = 2.0
end
Message ID: EEXEC_NOFUNF
CFILE "EEXEC_NOSUB.f"
call z(x)
C ^
C**** ERR #329: function "z" is called as subroutine
C See: "EEXEC_NOSUB.f" line #9
call s (0.0, z)
x = s (0.1, z)
end
real function z(x)
z = -x
end
Message ID: EEXEC_NOSUB
CFILE "EEXEC_NOSUB.f"
call z(x)
x = s (0.1, z)
end
subroutine s(x, z)
call z(x)
C ^
C**** ERR #330: actual function "z" called as subroutine
C See: "EEXEC_NOSUB.f" line #12
print *, x
end
real function z(x)
z = -x
end
Message ID: EEXEC_NOSUBF
program p
intrinsic cos
call s(cos)
end
subroutine s(f)
external f
real f
call f(3.1415926*0.25)
C ^
C**** ERR #331: actual intrinsic "cos" called as subroutine
end
Message ID: ECALL_INTR
program p
intrinsic cos
call s(cos)
end
subroutine s(f)
external f
real f
print *, f(3,1415926)
C ^
C**** ERR #332: bad number of arguments for actual intrinsic "cos"
end
Message ID: ENARG_INTR
program p
intrinsic cos
call s(cos)
end
subroutine s(f)
external f
real f
print *, f(20)
C ^
C**** ERR #333: bad argument #1 for actual intrinsic "cos"
end
Message ID: ETYPE_IN_INTR
program p
intrinsic cos
call s(cos)
end
subroutine s(f)
external f
real f
i = 3/1415926
print *,f(i)
C ^
C**** ERR #334: bad argument "i" for actual intrinsic "cos"
end
Message ID: ETYPE_IN_INTR_ID
intrinsic sin
call s(sin)
call s(sin,x)
C ^
C**** ERR #335: various number of arguments to "s"
C See: "EEXEC_NARG_VAR.f" line #2
end
Message ID: EEXEC_NARG_VAR
call s(x)
C ^
C**** WAR #337: undefined subprogram "s"
end
Message ID: WFYI_PROC_MISSING
print *, "Hello!"
end
subroutine s
C ^
C**** WAR #338: subroutine "s" never called from program
print *, "Bye!"
end
Message ID: WFYI_NOACCESS
common /cb/ a(10)
a(10) = 0.2
call s
end
subroutine s
common /cb/ a(9)
C ^
C**** ERR #339: incompatible lengths for common /cb/
C See: "EDCL_LENG_COMMON.f" line #1
do i=1,9
a(i) = 0.1
enddo
print *, a
end
Message ID: EDCL_LENG_COMMON
blockdata bld
common /b/ l,i
data i /0/, l /.true./
C ^
C**** WAR #341: in common /b/, "i" set but not referenced in program
end
program main
common /b/ l,i
if (l) then
l = .not. l
end if
end
Message ID: WFYI_SET_NOUSE_COM
call s0
end
subroutine s1
common /c/a,b,k
print *,a,b,k
end
subroutine s0
common /c/a,j,k
C ^
C**** WAR #342: incompatible types for common /c/ at "j" (offset = 4)
C See: "WFYI_TYPE_COM.f" line #15
a=1.0
j=2
k=3
call s1
end
Message ID: WFYI_TYPE_COM
i = -2
iz = 0
if ( irand(1) .gt. 125 ) i = -i
if ( irand(1) .gt. 125 ) j = iz**i
C ^
C**** WAR #345: possibly may be zero raised to a negative power
end
Message ID: EDATA_0_POW_NEG_P
a = 3.5
call se (a, 3.0)
C ^
C**** ERR #346: argument #2 in "se" call is modified
C See: "WFYI_ARGLET.f" line #10
print *,a
end
subroutine soo (x, y)
x = y+1
entry se (x, y)
y = x+1
end
Message ID: WFYI_ARGLET
a = 3.5
call soo (b, a)
call se (a, 3.0)
call ss (soo, b, 3.5)
call ss (se, 3.0, a)
print *,a,b
end
subroutine soo (x, y)
x = y+1
entry se (x, y)
y = x+1
end
subroutine ss (s, x, y)
external s
call s (x, y)
call s (1.0, y)
call s (x, 1.0)
C ^
C**** ERR #347: argument #2 for actual "soo" is modified
C See: "WFYI_ARGLET.f" line #8
C call s (x, 1.0)
C ^
C**** ERR #347: argument #2 for actual "se" is modified
C See: "WFYI_ARGLET.f" line #10
end
Message ID: WFYI_ARGLETF
FUNCTION FCT(I)
INTEGER FCT, FC1
IF (I.EQ.1) THEN
FCT = I
ELSE
FCT = FC1(I-1)
ENDIF
END
FUNCTION FC1(I)
INTEGER FC1, FCT
FC1 = FCT(I)
C ^
C**** WAR #348: recursive call for "fct". See dynamic calls:
C "WANSI.f" line #6
END
Message ID: WANSI_RECURS
i = 0
call s(i)
call se(i)
end
subroutine s(ii)
if ( irand(0) .gt. 125 ) ii = 2
entry se(ii)
if ( irand(0) .gt. 125 ) ii = ii+1
do 1 i=1,10,ii
C ^
C**** WAR #350: possibly may be zero loop increment on "s" invocation
1 print *, i
end
Message ID: EEXEC_DO_ZERO_STEP_E_P
structure /s1/
logical flag
end structure
record /s1/ s1(2),v1(1)
pointer (p1,v1)
p1=loc(s1)
call ss1(p1,1)
C ^
C**** ERR #351: mismatched type: argument "p1" in "ss1" call
C See: "WFYI_TYARG_ID.f" line #13
print *, v1(1).flag
end
subroutine ss1(p1,ilen)
structure /s1/
integer age
end structure
record /s1/v1(1)
pointer (p1,v1)
v1(1).age = 16
end
Message ID: WFYI_TYARG_ID
external ss1
call ss(ss1)
end
subroutine ss(soo)
structure /s1/
logical flag
end structure
record /s1/ s1(2),v1(1)
pointer (p1,v1)
external soo
p1=loc(s1)
call soo(p1,1)
C ^
C**** ERR #352: mismatched type: argument "p1" for actual "ss1"
C See: "WFYI_TYARG_ID_F.f" line #18
print *, v1(1).flag
end
subroutine ss1(p1,ilen)
structure /s1/
integer age
end structure
record /s1/v1(1)
pointer (p1,v1)
v1(1).age = 16
end
Message ID: WFYI_TYARG_ID_F
doubleprecision r / 123d+12 /
complex cx / ( 34.5, 6.78 ) /
x = cx * r
Message ID: WANSI_INCOM_OP
5 GOTO (5,5) 5
Message ID: W_CONST_COND_G
if (.NOT..TRUE.) i=2
Message ID: W_CONST_COND
a=a*0
end
Message ID: WDATA_MUL_0
a=1*a
end
Message ID: WDATA_MUL_1
a=a/1
end
Message ID: WDATA_DIV_1
a=a+0
end
Message ID: WDATA_ADD_0
a=a-0
end
Message ID: WDATA_SUB_0
a=a**0
end
Message ID: WDATA_POW_0
i=i**1
i=1**i
end
Message ID: WDATA_POW_1
subroutine f
common k
n1=1
if (k.eq.1) n1=0
do i=1, 2, n1
C ^
C**** WAR #363: possibly may be zero loop increment
print *, i
enddo
end
Message ID: EEXEC_DO_ZERO_STEP_P
logical l
l = .not..false.
end
Message ID: WDATA_NOT_CONS
logical l
l = l.and..false.
end
Message ID: WDATA_AND_FALSE
logical l
l = l.and..true.
end
Message ID: WDATA_AND_TRUE
logical l
l = l.or..false.
end
Message ID: WDATA_OR_FALSE
logical l
l = l.or..true.
end
Message ID: WDATA_OR_TRUE
subroutine g()
common k
n=-1
if (k.eq.1) n = 0
m=1/n
1 m = n/m
C**** WAR #369: possibly may be division by zero on "g1" invocation
return
entry g1()
m=1
if (k.eq.1) m = 0
n=1
goto 1
end
C
common k
read (5,*) k
call g()
call g1()
end
Message ID: EDATA_DIV_0_E_P
program err
integer*2 j(2)
call s(j,2)
C ^
C**** WAR #373: size of actual argument less than size of dummy in "s"
C See: "E_ARRAY_SIZE.f" line #9
end
subroutine s(j,k)
integer*2 j(4)
print *, j, k
end
Message ID: E_ARRAY_SIZE
program err
integer*2 j(2)
external s
call ss(s,j,2)
end
subroutine s(j,k)
integer*2 j(4)
print *, j, k
end
subroutine ss(foo,j,k)
external foo
integer*2 j(2)
call foo(j,k)
C ^
C**** WAR #374: size of actual argument less than size of dummy for
C actual "s421"
end
Message ID: E_ARRAY_SIZE_F
real ar(10)
real ar1(25)
call ss(ar, ar)
C ^
C**** WAR #375: possible incorrect modification of "ar" (arguments #1 and #2) in "ss" call
call ss(ar1(10), ar(8))
end
subroutine ss(x, y)
real x(5), y(20)
x(1) = y(1)
end
Message ID: WFYI_SECOND_ARG
external acs
double precision mm
mm = -5.D+00
call s(acs,3.D+00,mm)
end
subroutine s(dms,mm,nn)
external dms
double precision mm, nn, ii2
common /bl2/ ii2
ii2 = 3.D+00
call dms(nn,nn)
C ^
C**** WAR #376: possible incorrect modification "nn" (arguments #1 and #2) for actual "acs"
end
subroutine acs(jj,ll)
double precision jj,ll,kk,ii2
common /bl2/ ii2
kk = jj * ii2
ll = kk + 1.D+00
end
Message ID: WFYI_SECOND_ARG_F
subroutine sample 4_1 (a, b, c, d)
common /s_4/ x
a = 1.
c = 1.
x = 1.
print *, a, b, c, d, x
end
subroutine sample 4
common /s_4/ x
call sample 4_1 (1., a, a, x)
C ^
C**** WAR #377: possible incorrect sets/uses "x" from common in "sample4_1" call
end
Message ID: WFYI_COM_ARG
subroutine AS (a)
common /cb/ x
a = 1.0
x = 1.0
print *, a, x
end
subroutine S (DS, a)
common /cb/ x
call DS (x)
C ^
C**** WAR #378: possible incorrect sets/uses "x" from common in actual "as"
print *, a
end
external AS
common /cb/ x
call S (AS, 1.0)
print *, x
end
Message ID: WFYI_COM_ARGF
real c(2,2)
call s(c,2,2)
end
subroutine s(d,m,n)
real d(m,n)
i = 2
if ( irand(1) . gt. 1234567 ) i = 3
d(i,2) = 0.0
C ^
C**** WAR #379: subscript expression on "d" possibly may be out of bounds
end
Message ID: EEXPR_SUBS_BOUNDS_SCR_P
print *,f1(10), f(1)
end
function f(l)
C**** WAR #380: variable "l" used only in unreached code for entry "f"
f = 3
return
entry f1(l)
f1=f+l
end
Message ID: FDECL_UNUSED_E
print *,f1(10), f(1)
end
function f(l)
h = 3
f = h
return
entry f1(l)
f1 = l+1
h = l
C ^
C**** WAR #381: variable "h" set but never referenced for entry "f1"
end
Message ID: FSET_UNUSED_E
blockdata
common /c382/b(5),a,d(2)
data (b(i),i=1,5)/1.0,4*2.0/,a/7.77/,d/3.33,-3.33/
end
program w382
common /c382/b(5)
c ^
c #382: in common /c382/ no variable "a"
c See: "W_COM_NONAME.f" line #10
print *, (b(i),i=1,5)
end
Message ID: W_COM_NONAME
blockdata
common /c383/b(5),a,d(2)
data (b(i),i=1,5)/1.0,4*2.0/,a/7.77/,d/3.33,-3.33/
end
program w383
common /c383/b(5)a,d(2),z
c ^
c #383: in common /c383/ additional variable "a"
c See: "W_COM_NONAME.f" line #10
print *, (b(i),i=1,5), z
end
Message ID: W_COM_ADDNAME
subroutine gtest
integer *2 ,imset(4),imused(4)
common /cmm/ imset,imused
imset(1)=imused(1)
print *,imset
end
integer *2 ,imset(5),imused(5)
common /cmm/ imset,imused
C ^
C**** WAR #384: in common /cmm/ incompatible lengths for "imset"
C See: "W_COM_SIZE.f" line #3
call gtest
print *,imset,imused ! iset,iused
end
Message ID: W_COM_SIZE
subroutine gtest
structure /s/
integer imset(4)
real x
integer imused(4)
endstructure
record /s/ is
common /cmm/ is
is.x=1.0
print *, is.x
end
subroutine g007
structure /s/
integer imset(4)
integer x
integer imused(4)
endstructure
record /s/ is
common /cmm/ is
C ^
C**** WAR #385: incompatible types in common /cmm/ (at "is.x")
C See: "W_COM_TYPE.f" line #8
call gtest
print *,is.x
end
Message ID: W_COM_TYPE
subroutine gtest
integer *2 imset(2),imused(4)
common /cmm/ imset,imused
imset(1)=1
imset(2)=imset(1)+1
print *,imset
end
integer *2 im(2),imused(4)
common /cmm/ im,imused
C ^
C**** WAR #386: incompatible names in common /cmm/ (at "im")
C See: "W_COM_NAME.f" line #3
call gtest
print *,im
end
Message ID: W_COM_NAME
subroutine s1
common /c/k,j,i
integer*4 i,j(2),k
print *, i,j(2)
end
common /c/k,j,i
C ^
C**** WAR #387: incompatible layouts in common /c/ (at "j")
C See: "W_COM_LAYOUT.f" line #2
integer*4 j,k
real*4 i(2)
i(2) = 2.0
j=int(i(2))
call s1
end
Message ID: W_COM_LAYOUT
subroutine g()
common k
m=1
if (k.eq.1) m = 0
n=1
goto 1
entry g1()
n=-1
if (k.eq.1) n = 0
m=1/n
C ^
C**** WAR #388: possibly may be division by zero
1 m = n/m
return
end
common k
read (5,*) k
call g()
call g1()
end
Message ID: EDATA_DIV_0_P
S T R U C T U R E /s1/
integer data
character*2 age
end S T R U C T U R E
parameter (len=2)
record /s1/ st(len)
call ss1(st)
C ^
C**** WAR #389: mismatched type: record "s1", field "s1.data", in "ss1" call
C See: "WFYI_TYARG_REC.f" line #12
end
subroutine ss1(s1)
common /c/ len
S T R U C T U R E /s1/
character*9 data
integer age
end structure
record /s1/s1(2)
external f
i=1
s1(i).data = '960904'
s1(i).age = 16
end
Message ID: WFYI_TYARG_REC
external f
call x(f)
end
subroutine x(fun)
structure /s1/
real a, r
end structure
record /s1/ rp1(10)
external fun
real fun
r = fun(rp1)
C ^
C**** WAR #390: mismatched type: record "rp1", field "rp1.a", for actual "f"
C See: "f.f" line #17
print *, r
end
function f(rp1)
structure /s1/
double precision r
end structure
record /s1/ rp1(10)
f = rp1(1).r
end
Message ID: WFYI_TYARG_REC_F
CHARACTER *80 FILE
INQUIRE (5, NAME=FILE, IOSTAT=IOSTAT)
GO TO 700
WRITE (6, 6010) FILE, IOSTAT
6010 FORMAT ( ' ERROR READING FILE "', A, '".',I )
C ^
C**** WAR #391: format "6010" used only in unreached code
GO TO 700
700 WRITE (6, *) FILE
END
Message ID: FDECL_UNUSED
if (.NOT..TRUE.) i=2
end
Message ID: WSTRUCT_NREACH_L
external soo
do i = 1,5
call soo(i)
C ^
C**** ERR #394: DO-variable "i" modified in "soo" call
C See: "E_DOVAR_CH.f" line #6
enddo
end
subroutine soo(k)
k = k+1
end
Message ID: E_DOVAR_CH
external soo
call too(soo)
end
subroutine soo(k)
k = k+1
end
subroutine too(s,n)
do m=2,5
call s(m)
C ^
C**** ERR #395: DO-variable "m" modified in actual "soo"
C See: "E_DOVAR_CH.f" line #5
enddo
end
Message ID: E_DOVAR_CH_F
if ( 'abc' .ne. 3 ) print *, 1
Message ID: WANSI_NUMOP_CHAR
character str*3 /'adc'/
print *, .not.str(1:2)
Message ID: WANSI_LOGOP_CHAR
structure /s/
union
map
real*4 i
integer j
endmap
map
integer*2 ii/1/
real j /2.87/
C ^
C**** WAR #400: incompatible type of field "j". See: line 6
endmap
endunion
endstructure
record /s/ x
print *, x.j, x.ii, x.i
end
Message ID: W_FIELD_TYPE
structure /s/
union
map
integer*4 i
character*5 age
endmap
map
integer*2 ii/1/
character*5 age / "5 yrs" /
C ^
C**** WAR #401: various field "age" offset. See: line 5
endmap
endunion
endstructure
record /s/ x
print *, x.i, x.ii, x.age
end
Message ID: W_FIELD_OFFSET
structure /ss/
union
map
integer i /1/
character ch/'*'/
endmap
map
integer i
character*4 ch
C ^
C**** WAR #402: various length of field "ch". See: line 20
endmap
endunion
endstructure
record /ss/ xx
print *, xx.i, xx.ch
end
Message ID: W_FIELD_SIZE
external f
call sss(f)
end
subroutine ss(foo,x)
external foo
x = 2.5
entry sss(foo)
x = foo(x*x)
C ^
C**** ERR #407: inconsistent usage of dummy argument on "sss" invocation
end
function f(z)
f = -z
end
Message ID: EINC_US_D_A
call sss(0)
end
subroutine ss(x)
integer x
x = 2
entry sss(x)
if ( x .gt. 1.0 ) print *, x*x
C**** WAR #408: statement in logical IF cannot be reached on "sss" invocation
end
Message ID: WSTRUCT_NREACH_L_E
call sss(0)
end
subroutine ss(x)
integer x
x = 2
entry sss(x)
do i=1,x
C ^
C**** WAR #409: DO range never executed on "sss" invocation
print *, i+x
enddo
end
Message ID: WEXEC_DO_ZERO_ITER_E
program X
end
**** WAR #411: main program contains no executable statements
Message ID: W_NO_EXEC_ST_MAIN
J = FCT(0)
C ^
C**** ERR #412: function "fct" used as real but declared as integer
END
FUNCTION FCT(I)
INTEGER FCT
FCT = I
END
Message ID: W_TY_DEFFUN
EXTERNAL FCT
CALL S(FCT)
END
SUBROUTINE S(F)
C ^
C**** ERR #413: actual function "fct" used as real but declared as integer
C See: "W_TY_DEFFUNF.f" line #7
J = F(0)
END
FUNCTION FCT(I)
INTEGER FCT
FCT = I
END
Message ID: W_TY_DEFFUNF
complex cc / (55.0,1.0) /
call s(cc*cc,54)
C ^
C**** ERR #416: argument #1 is complex, but dummy argument is character
C See: "E_LTYARG.f" line #4
end
subroutine s(st,i)
character st*55
print *, st(i:i)
end
Message ID: E_LTYARG
CFILE "E_LTYARGF.f"
function sincos( x )
real x
sincos = sin(x) + cos(x)
end
function foo(cs, i)
integer i
external cs
if (cs(i*2) .gt. 0.0) foo=0
C ^
C**** ERR #417: argument #1 for actual "sincos" is integer, but dummy argument is real
C See: "E_LTYARGF.f" line #1
end
external sincos
x = foo(sincos, 2)
call soo(*5)
call soo(6)
5 print *, x
end
subroutine soo(*)
return 1
end
Message ID: E_LTYARGF
C FILE "E_LTYARG_ID.f"
complex cc / (55.0,1.0) /
call s(cc,54)
C ^
C**** ERR #418: argument "cc" is complex, but dummy argument is character
C See: "E_LTYARG_ID.f" line #4
end
subroutine s(st,i)
character st*55
st(55:55)=st(i:i)
end
Message ID: E_LTYARG_ID
CFILE EEXEC_CLARGF.f
function sincos( x )
real x
sincos = sin(x) + cos(x)
end
function foo(cs, i)
integer i
external cs
if (cs(i) .gt. 0.0) foo=0
C ^
C**** ERR #419: argument "i" for actual "sincos" is integer, but dummy argument is real
C See: "E_LTYARG_IDF.f" line #1
end
external sincos
x = foo(sincos, 2)
end
Message ID: E_LTYARG_IDF
iz = 0
call s(iz)
if ( irand(0) .gt. 125 ) call se(0)
end
subroutine s(ii)
if ( irand(1) .gt. 125 ) ii = 2
entry se(ii)
kk = -2
ij = ii
if ( irand(0) .gt. 125 ) kk = 2
if ( irand(0) .gt. 125 ) ij = ii+1
i = ii**kk
C ^
C**** WAR #423: possibly may be zero raised to a negative power on "s" invocation
print *, i
end
Message ID: EDATA_0_POW_NEG_E_P
print *, i
C ^
C**** WAR #424: variable "i" is set to zero value by default
end
Message ID: E_SET_ZERO_0
CALL SSS(11)
CALL SS(10)
END
SUBROUTINE SS(I)
REAL X(10)
COMMON /BL/X
X(I)=1
ENTRY SSS(I)
X(I)=2
C ^
C**** WAR #425: subscript expression on "x" out of bounds on "sss" invocation
END
Message ID: EEXPR_SUBS_BOUNDS_E
J=11
IF (IRAND(1).GT.12345) J=J-2
CALL SSS(J)
CALL SS(10)
END
SUBROUTINE SS(I)
REAL X(10)
COMMON /BL/X
X(I)=1
ENTRY SSS(I)
X(I)=2
C ^
C**** WAR #426: subscript expression on "x" possibly may be out of bounds
C on "sss" invocation
END
Message ID: EEXPR_SUBS_BOUNDS_E_P
i = f(i) + i
C ^
C**** WAR #427: "i" changed in this statement, via "f" call
print *, i
end
function f(i)
i = 3
f = i - 1
end
Message ID: F_SET_FUN_USED
i = f(i) + g(i)
C ^
C**** WAR #428: "g" call depended on "f" call in this statement, via "i"
print *, i
end
function f(i)
i = 3
f = i - 1
end
function g(k)
g = -k
end
Message ID: F_FUN_INF_FUN
i = f(i) + g(i)
C ^
C**** WAR #429: "g" call may be depended on "f" call in this statement, via "i"
print *, i
end
function f(i)
if (irand(1).gt.12345) i = 3
f = i - 1
end
function g(i)
g = 1 - i
end
Message ID: F_FUN_INF_FUN_MAYBE
complex c
c = .true.
end
Message ID: EEXPR_TYPE_LOG_CMPL
complex*16 cc
cc = .true.
end
Message ID: EEXPR_TYPE_LOG_DCMPL
complex*32 cc
cc = .true.
end
Message ID: EEXPR_TYPE_LOG_QCMPL
character s
parameter ( s = 5.5 )
print *, s
end
Message ID: EEXPR_TYPE_NUM_CHAR
structure /ss/
logical l/.true./,l1/.false./
endstructure
record /ss/ ll
print *, -ll
end
Message ID: EEXPR_TYPE_NONARITH_NEG
structure /ss/
logical l/.true./,l1/.false./
endstructure
record /ss/ ll
print *, (11.gt.ll)
end
Message ID: EEXPR_TYPE_NONARITH_CMP
structure /ss/
logical l/.true./,l1/.false./
endstructure
record /ss/ ll
print *, .not.ll
end
Message ID: EEXPR_TYPE_NONLOGICAL_NOT
parameter (k=200)
parameter (k1=2**214, k2=-2**(-k))
print *,k,k1,k2
end
Message ID: WEXPR_OVERFLOW1
CFILE "F_PIU_1.f"
CALL SB
CALL SA
END
SUBROUTINE SBA
INTEGER*4 I
COMMON /BL/ I
I = I - 10000
C ^
C**** ERR #556: variable "i" in common /bl/ referenced as integer*4 across
C sa/sba but set as integer*2 by sa in line #14 for entry sa
END
SUBROUTINE SA
COMMON /BL/ I, J
INTEGER*2 I, J
IF (IRAND(0).GT.0) RETURN
ENTRY SB
J = -16383
CALL SBA
END
Message ID: F_PIU_1
CFILE "F_PIU_1_P.f"
CALL SB
CALL SA
END
SUBROUTINE SBA
INTEGER*4 I
COMMON /BL/ I
I = I - 10000
C ^
C**** WAR #557: possibly variable "i" in common /bl/ referenced as integer*4
C across sa/sba but set as integer*2 by sa in line #14 for
C entry sa
I = I - 10000
END
SUBROUTINE SA
COMMON /BL/ I, J
INTEGER*2 I, J
IF (IRAND(0).GT.0) RETURN
ENTRY SB
IF (IRAND(0).GT.0) J = -16383
CALL SBA
END
Message ID: F_PIU_1_P
INTEGER*2 I/16383/
CALL SBB(I)
C ^
C**** ERR #560: variable "i" referenced as integer*4 across MAIN/sbb in line #8 but set as integer*2 by MAIN in line #1
I=I+1
PRINT *,I
END
SUBROUTINE SBB(I)
INTEGER*4 I
IF (I.GT.0) I = I - 10000
END
Message ID: F_PIU_3
CFILE "F_PIU_3_P.f"
COMMON /BL/ I
INTEGER*2 I/16383/
CALL SSS
END
SUBROUTINE SSS
COMMON /BL/ I
INTEGER*4 I
CALL SBB(I)
C ^
C**** WAR #561: possibly variable "i" in common /bl/ referenced as integer*4 across MAIN/sss but set as integer*2 by MAIN in line #2
I=I+1
PRINT *,I
END
SUBROUTINE SBB(I)
INTEGER*4 I
IF (IRAND(0).GT.0) I = I - 10000
END
Message ID: F_PIU_3_P
CFILE "F_PIU_4.f"
COMMON /BL/ I,J, II
INTEGER*2 I, J
INTEGER*4 II
I = -255*63
J = 1
CALL SBB
I=I+1
C ^
C**** ERR #562: variable "i" in common /bl/ referenced as integer*2 but set
C as integer*4 by MAIN/sbb in line #16
PRINT *, I, J, II
C ^
C**** ERR #562: variable "j" in common /bl/ referenced as integer*2 but set
C as integer*4 by MAIN/sbb in line #16
END
SUBROUTINE SBB
COMMON /BL/ I, II
INTEGER*4 I
INTEGER*4 II
INTEGER*2 M(2)
EQUIVALENCE (I,M)
I = M(1)+M(2)
II = 99
END
Message ID: F_PIU_4
CFILE "F_PIU_4_P.f"
COMMON /BL/ I,J
INTEGER*2 I, J
I = -255*63
J = 1
IF (IRAND(0).GT.12345) CALL SBB
PRINT *, I, J
C ^
C**** WAR #563: possibly variable "i" in common /bl/ referenced as integer*2
C but set as integer*4 by MAIN/sbb in line #13
PRINT *, I, J
C ^
C**** WAR #563: possibly variable "j" in common /bl/ referenced as integer*2
C but set as integer*4 by MAIN/sbb in line #13
END
SUBROUTINE SBB
COMMON /BL/ I
INTEGER*4 I
INTEGER*2 M(2)
EQUIVALENCE (I,M)
IF (IRAND(0).GT.12345) I = M(1)+M(2)
END
Message ID: F_PIU_4_P
INTEGER*2 I/16383/
CALL SBB(I)
I=I+1
C ^
C **** ERR #570: variable "i" referenced as integer*2 but set as integer*4 in line #8
PRINT *,I
END
SUBROUTINE SBB(I)
INTEGER*4 I
IF (I.GT.0) I = I - 10000
END
Message ID: F_PIU_8
COMMON /BL/ I, J
INTEGER*2 I/16383/ , J
INTEGER *4 K
EQUIVALENCE (I, K)
IF (IRAND(1).GT.0) K = 16383
IF (IRAND(0).GT.0) CALL SSS
PRINT *, I
C ^
C**** WAR #571: possibly variable "i" in common /bl/ referenced as integer*2 but set as integer*4 in line #5
END
SUBROUTINE SSS
COMMON /BL/ I
INTEGER*4 I
IF (IRAND(0).GT.0) I=I+1
END
Message ID: F_PIU_8_P
POINTER (IP, J)
CALL SSE(J)
C ^
C**** ERR #580: pointer never set for referenced pointer-based variable "j" by sse in line #13
IP = MALLOC(4)
CALL SSS(J)
PRINT *, J
END
SUBROUTINE SSS(J)
COMMON /BL/ I
I = 0
RETURN
ENTRY SSE(J)
PRINT *, J
END
Message ID: F_NO_MEM_2
POINTER (IP, J)
IF ( IRAND(1) .GT. 12345 ) IP = MALLOC(4)
CALL SSE(J)
C ^
C**** WAR #581: possibly pointer never set for referenced pointer-based variable "j" by sse in line #13
IP = MALLOC(4)
CALL SSS(J)
PRINT *, J
END
SUBROUTINE SSS(J)
COMMON /BL/ I
I = 0
RETURN
ENTRY SSE(J)
PRINT *, J
END
Message ID: F_NO_MEM_2_P
y = irand(1)
x = f(y)
print *,x
end
real function f(y)
if (y.ne.0) f = -y
end
Message ID: FFUN_UNSET_PSBL
parameter (i = 2)
call soo(i)
C ^
C**** ERR #1008: constant "i" is modified in "soo" call
C See: "E_CONST_CH.f" line #7
end
subroutine soo(k)
k = k+1
end
Message ID: E_CONST_CH
external soo
call too(soo)
end
subroutine soo(k)
k = k+1
end
subroutine too(s)
parameter (m = 5)
call s(m)
C ^
C**** ERR #1009: constant "m" is modified in actual "soo"
C See: "E_CONST_CH.f" line #4
end
Message ID: E_CONST_CH_F
This message is generated by the license library.
Message ID: LICENSE_ERROR
i2 int*4 from module d058
DU 16:D 18:U
Message ID: XREF_WRD_FROM
program locvar7
equivalence (i,k)
^
**** WAR #1082: equivalent variable "k" never referenced by the name
i=-1
print *,i
end
Message ID: W_NOUSED_EQU
integer i, lbl
read *, i
if (i .eq. 0) assign 10 to i
lbl = i
^
**** WAR #1083: usage of the value of variable "i" may be wrong as it might
be set as integer and as label
See: "f.f" line #2
See: "f.f" line #3
10 print *, lbl
end
Message ID: W_INT_LBL
integer i, lbl
read *, i
if (i .eq. 0) assign 10 to i
lbl = i
^
**** WAR #1084: usage of the value of variable "i" may be wrong as it might
be set as integer and as format
See: "f.f" line #2
See: "f.f" line #3
write(*, fmt=lbl) 10
10 format(i)
end
Message ID: W_INT_FMT
integer i, j, lbl
assign 20 to i
read *, j
if (j .eq. 0) assign 10 to i
lbl = i
^
**** WAR #1085: usage of the value of variable "i" may be wrong as it might
be set as label and as format
See: "f.f" line #2
See: "f.f" line #4
write(*, fmt=lbl) 10
10 format(i)
20 print *, lbl
end
Message ID: W_LBL_FMT
program err
integer j(6), k
read *, k
if (k .lt. 4) k = 3
j = 1
call s(j(1:k))
^
**** WAR #1090: possibly size of actual argument less than size of dummy in "s"
See: "f.f" line #8
end
subroutine s(j)
integer j(4)
print *, j
end
Message ID: E_ARRAY_SIZE_P
program err
integer j(6)
external s
j = 1
call ss(s,j)
end
subroutine s(j)
integer j(4)
print *, j
end
subroutine ss(foo,j)
external foo
integer j(6), k
read *, k
if (k .lt. 4) k = 3
call foo(j(1:k))
^
**** WAR #1091: possibly size of actual argument less than size of dummy for
actual "s"
See: "f.f" line #7
end
Message ID: E_ARRAY_SIZE_F_P
call s(k)
print *,k
end
subroutine s(i,j)
integer, optional :: j
i = j
^
**** WAR #1092: optional dummy argument "j" is used without checking of its
presence
end
Message ID: W_OPT_NOT_CHECK