Re: [petsc-dev] Help tracking down unexpected Fortran behavior
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
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
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