[petsc-dev] Case TS005062693 - XLF: ICE in xlfentry compiling a module with 358 subroutines

Satish Balay balay at mcs.anl.gov
Wed Mar 3 13:43:36 CST 2021


The only change I can get working (i.e avoid compile errors) is to split petscvecmod.F90 into 2 source files - but I don't know if this will help with xlf..

My [partial] change is in branch balay/reorg-f90-for-xlf

Satish

On Wed, 3 Mar 2021, Satish Balay via petsc-dev wrote:

> On Wed, 3 Mar 2021, Satish Balay via petsc-dev wrote:
> 
> > Sure - once any change works locally [for gcc and xlf]
> > 
> > When I try - I get a bunch of errors.. [yet to digest them.]
> 
> > > >>> Can you please give the following source code workaround a try?
> > > >>> Since there is already "use petscvecdefdummy" at the module scope, one workaround might be to remove the unnecessary "use petscvecdefdummy" in vecnotequal and vecequals 
> > > >>> and all similar procedures.
> > > >>> 
> > > >>> For example, the test case has:
> > > >>>        module petscvecdef
> > > >>>        use petscvecdefdummy
> > > >>> ...
> > > >>>        function vecnotequal(A,B)
> > > >>>          use petscvecdefdummy
> > > >>>          logical vecnotequal
> > > >>>          type(tVec), intent(in) :: A,B
> > > >>>          vecnotequal = (A%v .ne. B%v)
> > > >>>        end function
> 
> 
> Ok - try this suggestion:
> 
> diff --git a/src/vec/f90-mod/petscvecmod.F90 b/src/vec/f90-mod/petscvecmod.F90
> index 0c447156b9..81968c7ca1 100644
> --- a/src/vec/f90-mod/petscvecmod.F90
> +++ b/src/vec/f90-mod/petscvecmod.F90
> @@ -77,7 +77,6 @@
>          use petscvecdefdummy
>          interface operator(.ne.)
>            function vecnotequal(A,B)
> -            use petscvecdefdummy
>              logical vecnotequal
>              type(tVec), intent(in) :: A,B
>            end function
> 
> 
> >>>>>
>           FC arch-linux-c-debug/obj/vec/f90-mod/petscvecmod.o
> /home/balay/petsc/src/vec/f90-mod/petscvecmod.F90:81:22:
> 
>    81 |             type(tVec), intent(in) :: A,B
>       |                      1
> Error: Derived type ‘tvec’ at (1) is being used before it is defined
> /home/balay/petsc/include/../src/vec/f90-mod/ftn-auto-interfaces/petscis.h90:2:10:
> 
>     2 |       use petscvecdef
>       |          1
> Fatal Error: Cannot open module file ‘petscvecdef.mod’ for reading at (1): No such file or directory
> <<<<<<
> 
> Satish


More information about the petsc-dev mailing list