Using block might be possible, but I would say is likely overkill; better just to skip the "local scope" that the C versions of the routines have. No one ever used the GUI interface, so that code is all unnecessary plus a Fortran programmer would never use a GUI anyways :-)
https://gitlab.com/petsc/petsc/-/merge_requests/6473 Barry > On May 16, 2023, at 11:33 AM, Blaise Bourdin <bour...@mcmaster.ca> wrote: > > Hi, > > > I am revisiting the way I handle options my fortran fracture code. I see the > following options: > - use PetscGetXXX, with the caveat that as far as I can see options define > this way do not show up when using -help > - use PetscBags, which is what I do now. It is a bit convoluted and I am > still struggling to make it work with fortran deferred types for instance > > In a C code, I would use PetscOptionsXXX, but this is not an options since > PetscOptionsBegin / PetscOptionsEnd do not exist in fortran. I remember > looking at this a while ago, and concluding that a Fortran version was not > possible because these were macro that defined local variables at locations > where it cannot be done legally in Fortran. With the concept of blocks in > modern fortran, this issue is gone, but PetscOptionsBegin has become more > complicated and relies on multiple operations and data types that are not > available in Fortran. > > Does anybody see a way to build fortran versions of > PetscOptionsBegin/PetscOptionsEnd? > > Regards, > Blaise > > > — > Canada Research Chair in Mathematical and Computational Aspects of Solid > Mechanics (Tier 1) > Professor, Department of Mathematics & Statistics > Hamilton Hall room 409A, McMaster University > 1280 Main Street West, Hamilton, Ontario L8S 4K1, Canada > https://www.math.mcmaster.ca/bourdin | +1 (905) 525 9140 ext. 27243 >