[petsc-users] Strange compiling error in DMPlexDistribute after updating PETSc to V3.11.0

Danyang Su danyang.su at gmail.com
Fri Apr 5 16:05:44 CDT 2019


Hi Satish,

Because of the intent(out) declaration, I use a temporary solution that 
passing a PetscSF type variable to DMPlexDistribute instead of passing 
PETSC_NULL_SF. But I am still confused how the example works without 
problem.

Thanks,

Danyang

On 2019-04-05 2:00 p.m., Balay, Satish wrote:
> Ah - the message about distributed_dm - not PETSC_NULL_SF. So I'm off base here..
>
> Satish
>
>
> On Fri, 5 Apr 2019, Balay, Satish via petsc-users wrote:
>
>> A fortran interface definition was added in petsc-3.11 so the compile now checks if its used correctly.
>>
>> http://bitbucket.org/petsc/petsc/commits/fdb49207a8b58c421782c7e45b1394c0a6567048
>>
>> +          PetscSF, intent(out) :: sf
>>
>> So this should be inout?
>>
>> [All auto-generated stubs don't quantify intent()]
>>
>> Satish
>>
>> On Fri, 5 Apr 2019, Danyang Su via petsc-users wrote:
>>
>>> Hi All,
>>>
>>> I got a strange error in calling DMPlexDistribute after updating PETSc to
>>> V3.11.0. There sounds no change in the interface of DMPlexDistribute as
>>> documented in
>>>
>>> https://www.mcs.anl.gov/petsc/petsc-3.10/docs/manualpages/DMPLEX/DMPlexDistribute.html#DMPlexDistribute
>>>
>>> https://www.mcs.anl.gov/petsc/petsc-3.11/docs/manualpages/DMPLEX/DMPlexDistribute.html#DMPlexDistribute
>>>
>>> The code section is shown below.
>>>
>>>        !c distribute mesh over processes
>>>        call
>>> DMPlexDistribute(dm,stencil_width,PETSC_NULL_SF,distributed_dm,ierr)
>>>
>>> When I use PETSc V3.10 and earlier versions, it works fine. After updating to
>>> latest PETSc V3.11.0, I got the following error during compiling
>>>
>>>        call
>>> DMPlexDistribute(dm,stencil_width,PETSC_NULL_SF,distributed_dm,ierr)
>>>                                                                       1
>>> Error: Non-variable expression in variable definition context (actual argument
>>> to INTENT = OUT/INOUT) at (1)
>>> /home/dsu/Soft/PETSc/petsc-3.11.0/linux-gnu-opt/lib/petsc/conf/petscrules:31:
>>> recipe for target '../../solver/solver_ddmethod.o' failed
>>>
>>> The fortran example
>>> /home/dsu/Soft/PETSc/petsc-3.11.0/src/dm/label/examples/tutorials/ex1f90.F90
>>> which also uses DMPlexDistribute can be compiled without problem. Is there any
>>> updates in the compiler flags I need to change?
>>>
>>> Thanks,
>>>
>>> Danyang
>>>
>>>
>>>


More information about the petsc-users mailing list