Print

Print


> A colleague has discovered a problem in a library that I wrote.  Being
> a good `debugger', he has already distilled a minimal skeleton from my
> code:
> 
>     module foo1
>       type, public :: xx
>     	 integer :: i
>       end type xx
>     end module foo1

First, the compiler can do whatever it wants, since your code is 
nonstandard: 

%F90-W-WARNING, Extension to FORTRAN-90: tab formatting
at line number 3 in file DISK$SCRATCH:[HELBIG]TO.F90;1

:-)

> while NAG f95 accepts the source and produces correct code.  We both
> think that DIGITAL Fortran is incorrect and that my code is correct.
> What's the opinion of the board's combined expertise?

>     f90: Error: foo.f90, line 25: The same named entity from different
>          modules and/or program units cannot be referenced.   [XX]
>         type(xx), intent(in) :: x
>     ---------^

I get

        type(xx), intent(in) :: x
.............^
%F90-E-ERROR, The same named entity from different modules and/or program units
cannot be referenced.   [XX]
at line number 25 in file DISK$SCRATCH:[HELBIG]TO.F90;1

which is not surprising since my compiler has the same backend.  (Does 
DVF really give the source line AFTER the error?)

Puzzling, at least to me, is

      subroutine foobar(x)
........................^
%F90-W-WARNING, This name has not been given an explicit type.   [X]
at line number 24 in file DISK$SCRATCH:[HELBIG]TO.F90;1

For what it's worth, XLF doesn't complain.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%