The code below is a shortened version of a much longer subroutine, with enough content to demonstrate an issue with the current version of Absoft F77.
! Compile with f77 -N32
subroutine expint(x,y,c)
DATA Q, GAMMA / 3.1415927, 0.57721566 /
c = q*exp(gamma*(x+y))
return
end
If the compiler (20.0.2) is run on this code, with one of these commands
f77 -c xgamma.f
f77 -N32 -c xgamma.f
f95 -c xgamma.f
it refuses to produce an OBJ file, aborting the compilation with the error message
f77 -N32 -c xgamma.f
Absoft ERROR 922: EXPINT: xgamma.f: 3, 15
"GAMMA" has been use associated, therefore it must not be redeclared with the DATA initialized attribute.
Absoft Pro Fortran 20.0: 1 Errors, 0 Warnings, 0 Other messages, 0 ANSI
f90fe reported errors.
I should remark that Gamma is an intrinsic function only in F2008 and later versions of the Fortran Standard. Even if a compiler were to provide Gamma() as an extension, since intrinsic function names have never been reserved names in Fortran, only a warning message would be justified, not an aborting of the compilation.
If a REAL type declaration for GAMMA is added, the error goes away.
Attachments and other options
I note that Gamma() is an intrinsic function in F2008 and later; it is not present as such in F2003 or Fortran 95 and earlier versions of Fortran. Secondly, since intrinsic function names are not reserved names, even if we apply Fortran 2008 rules the use of Gamma may at best trigger a warning, not an error.