Hi Petsc Users I am trying to use the sequence of call DMLabelPropagateBegin(synchLabel,sf,ierr) call DMLabelPropagatePush(synchLabel,sf,PETSC_NULL_OPTIONS,PETSC_NULL_INTEGER,ierr) call DMLabelPropagateEnd(synchLabel,sf, ierr) in fortran. I apologize if I messed something up, it appears as if the DMLabelPropagatePush command doesn't have an appropriate Fortran interface as I get an undefined reference when it is called. I would appreciate any assistance. As a side note in practice, what is the proper Fortran NULL pointer to use for void arguments? I used an integer one temporarily to get to the undefined reference error but I assume it doesn't matter? Sincerely Nicholas -- Nicholas Arnold-Medabalimi Ph.D. Candidate Computational Aeroscience Lab University of Michigan
On Fri, Jan 6, 2023 at 10:03 AM Nicholas Arnold-Medabalimi < [email protected]> wrote:
Hi Petsc Users
I apologize. I found this email today and it looks like no one answered.
I am trying to use the sequence of call DMLabelPropagateBegin(synchLabel,sf,ierr) call DMLabelPropagatePush(synchLabel,sf,PETSC_NULL_OPTIONS,PETSC_NULL_INTEGER,ierr) call DMLabelPropagateEnd(synchLabel,sf, ierr) in fortran.
I apologize if I messed something up, it appears as if the DMLabelPropagatePush command doesn't have an appropriate Fortran interface as I get an undefined reference when it is called.
Yes, it takes a function pointer, and using function pointers with Fortran is not easy, although it can be done. It might be better to create a C function with some default marking and then wrap that. What do you want to do? Thanks, Matt
I would appreciate any assistance.
As a side note in practice, what is the proper Fortran NULL pointer to use for void arguments? I used an integer one temporarily to get to the undefined reference error but I assume it doesn't matter?
Sincerely Nicholas
-- Nicholas Arnold-Medabalimi
Ph.D. Candidate Computational Aeroscience Lab University of Michigan
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
Hi Matthew Thanks for checking in on this. Fortunately, I was able to get the behavior I needed through alternate means so I probably wouldn't investigate doing this further. Sincerely Nicholas On Mon, Mar 27, 2023 at 8:49 PM Matthew Knepley <[email protected]> wrote:
On Fri, Jan 6, 2023 at 10:03 AM Nicholas Arnold-Medabalimi < [email protected]> wrote:
Hi Petsc Users
I apologize. I found this email today and it looks like no one answered.
I am trying to use the sequence of call DMLabelPropagateBegin(synchLabel,sf,ierr) call DMLabelPropagatePush(synchLabel,sf,PETSC_NULL_OPTIONS,PETSC_NULL_INTEGER,ierr) call DMLabelPropagateEnd(synchLabel,sf, ierr) in fortran.
I apologize if I messed something up, it appears as if the DMLabelPropagatePush command doesn't have an appropriate Fortran interface as I get an undefined reference when it is called.
Yes, it takes a function pointer, and using function pointers with Fortran is not easy, although it can be done. It might be better to create a C function with some default marking and then wrap that. What do you want to do?
Thanks,
Matt
I would appreciate any assistance.
As a side note in practice, what is the proper Fortran NULL pointer to use for void arguments? I used an integer one temporarily to get to the undefined reference error but I assume it doesn't matter?
Sincerely Nicholas
-- Nicholas Arnold-Medabalimi
Ph.D. Candidate Computational Aeroscience Lab University of Michigan
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-- Nicholas Arnold-Medabalimi Ph.D. Candidate Computational Aeroscience Lab University of Michigan
participants (2)
-
Matthew Knepley -
Nicholas Arnold-Medabalimi