Dear Matt and Barry: thanks for the quick reply. Please forget about the segmentation fault, that was a mistake in my code.
Regarding the necessity of PetscDSRestoreTabulation: It cleans up "b" and "bDer". Those are defined as "PetscReal, pointer". If they are defined in a function or subroutine, they go out of scope automatically. So I believed (backed up by measuring the memory consumption with and without PetscDSRestoreTabulation) that the PetscDSRestoreTabulation does not add anything important. Martin On Thu, 2024-08-29 at 17:21 -0400, Barry Smith wrote: > > The interface definition and Fortran stub look ok to my eyeballs. > However, eyeballs cannot compile code, so using the debugger to > determine the cause of the crash is best. > > Barry > > > > > On Aug 29, 2024, at 5:18 PM, Matthew Knepley <knep...@gmail.com> > > wrote: > > > > On Thu, Aug 29, 2024 at 9:57 AM Martin Diehl > > <martin.di...@kuleuven.be> wrote: > > > Dear PETSc team, > > > > > > I have a question regarding the use of PetscDSGetTabulation from > > > Fortran. > > > PetscDSGetTabulation has a slightly different function signature > > > between Fortran and C. In addition, there is an (undocumented) > > > PetscDSRestoreTabulation in Fortran which cleans up the arrays. > > > Calling > > > it results in a segmentation fault. > > > > > > I believe that PetscDSRestoreTabulation is not needed. At least > > > our > > > Fortran FEM code compiles and runs without it. However, we have > > > convergence issues that we don't understand so any suspicious > > > code is > > > currently under investigation. > > > > > > > > > This may be due to my weak Fortran knowledge. Here is the code > > > > > > https://gitlab.com/petsc/petsc/-/blob/main/src/dm/dt/interface/f90- > > custom/zdtdsf90.c?ref_type=heads > > > > I call F90Array1dCreate() in the GetTabulation and > > F90Array1dDestroy() in the RestoreTabulation(), which I thought > > was right. However, I remember something about interface > > declarations, which have now moved somewhere I cannot find. > > > > Barry, is the interface declaration for this function correct? > > > > Thanks, > > > > Matt > > > > > best regards, > > > Martin > > > -- KU Leuven Department of Computer Science Department of Materials Engineering Celestijnenlaan 200a 3001 Leuven, Belgium
signature.asc
Description: This is a digitally signed message part