[petsc-dev] Help tracking down unexpected Fortran behavior

Barry Smith bsmith at petsc.dev
Mon Dec 6 09:20:20 CST 2021


  Interfaces are generated automatically by sowing if the Fortran stub is generated automatically. For manual stubs one should always write a manual interface, but since we only started providing interfaces recently many manual stubs are still missing their corresponding interface. One can add any they notice are missing.

  Barry


> On Dec 6, 2021, at 6:22 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
> 
> PCSetType() has an interface in src/ksp/f90-mod/petscpc.h90 while PCFactorSetMatOrderingType() does not.
> 
> I don't know if there is a clear criterion for when to add an interface in the corresponding h90 file. One criterion is that we need a F90 interface in case one of the arguments is allowed to be NULL.
> 
> Jose
> 
> 
>> El 6 dic 2021, a las 11:20, Patrick Sanan <patrick.sanan at gmail.com> escribió:
>> 
>> I ran into an unexpected seg fault, which took me too long to realize was because of the old-school "you forgot the ierr" mistake! I was expecting the compiler to complain, since we've had better checking for a while. E.g. as in the attached code to reproduce, my compiler indeed errors on this
>> 
>>    call PCSetType(pc, PCLU)
>> 
>> but not this
>> 
>>   call PCFactorSetMatOrderingType(pc, MATORDERINGEXTERNAL)
>> 
>> I'm not yet seeing what the difference is, but there is still plenty I don't understand about how the custom fortran interfaces work. E.g. both of those functions have custom interfaces in ftn-custom directories, accepting an additional "len" argument to be used with FIXCHAR(), but I'm  not sure how that argument is ultimately populated.
>> 
>> 
>> <ex999f.F90>
> 



More information about the petsc-dev mailing list