Re: [petsc-dev] Help tracking down unexpected Fortran behavior

2021-12-06 Thread Barry Smith


  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  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  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.
>> 
>> 
>> 
> 



Re: [petsc-dev] Help tracking down unexpected Fortran behavior

2021-12-06 Thread Jose E. Roman
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  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.
> 
> 
> 



[petsc-dev] Help tracking down unexpected Fortran behavior

2021-12-06 Thread Patrick Sanan
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
Description: Binary data