Okay, I'll let you know when I make the pull request. Thanks.
2016-07-29 16:49 GMT+02:00 Barry Smith <[email protected]>: > >> On Jul 28, 2016, at 2:35 AM, Tim Steinhoff <[email protected]> wrote: >> >> 2016-07-27 21:42 GMT+02:00 Barry Smith <[email protected]>: >>> >>> Actually there is currently no way to PetscInitialize from Fortran without >>> adding the command line options to the database. In the middle >>> of petscinitialize_() is the code fragment >>> >>> PETScParseFortranArgs_Private(&PetscGlobalArgc,&PetscGlobalArgs); >>> FIXCHAR(filename,len,t1); >>> *ierr = PetscOptionsInsert(NULL,&PetscGlobalArgc,&PetscGlobalArgs,t1); >>> >>> We'll need to do a bit of code refactoring to provide a Fortran >>> petscinitializenoarguments_(). The simplest way to refactor would be to >>> change the name of petscinitialize_ to say >>> PetscInitializeFortran_Internal() and add a bool argument whether to >>> process the arguments and then write two trivial routines petscinitialize_ >>> that calls the new routine with PETSC_TRUE and >>> petscinitializenoarguments_() that calls it with PETSC_FALSE. >> >> Thanks Barry. It would be really nice if PETSc comes with that feature >> in future, because I would prefer not to make any changes to the PETSc >> code that disappear with every new PETSc release. > > Understood. You could make a pull request with your changes > https://bitbucket.org/petsc/petsc/wiki/pull-request-instructions-git > otherwise I will add it but it will take a few days since I am backlogged. > > Barry > >> >>> >>> Barry >>> >>> Of course you can have a C/C++ main routine that calls >>> PetscInitializeNoArguments(); followed by PetscInitializeFortran() and then >>> have the bulk of your code in Fortran. >> That would work, but we have a rather large fortran code without any >> C. So, for now we will probably stick to your first approach and keep >> our code fotran only. >> >> Thanks again, >> Volker >> >> >>> >>> >>>> On Jul 27, 2016, at 10:55 AM, Tim Steinhoff <[email protected]> wrote: >>>> >>>> 2016-07-27 16:04 GMT+02:00 Matthew Knepley <[email protected]>: >>>>> On Wed, Jul 27, 2016 at 4:59 AM, Tim Steinhoff <[email protected]> >>>>> wrote: >>>>>> >>>>>> Hi all, >>>>>> >>>>>> we coupled PETSc with our fortran code. Is there any way to let PETSc >>>>>> (PetscInitialize) ignore all arguments passed by the command line? >>>>>> Since our code is controlled by command line arguements as well, it >>>>>> leads to a mess, when those arguments are read twice. >>>>> >>>>> >>>>> 1) You can use PetscInitializeNoArguments() >>>> >>>> Thanks! I thought that function was for C/C++ only. >>>> >>>>> >>>>> 2) What goes wrong? PETSc should just ignore any options it does not >>>>> recognize. >>>> >>>> >>>> The problem is that our code uses the same or similar argument names >>>> as PETSc does and our end user should not have access to all petsc >>>> options. >>>> >>>> >>>>> >>>>> Thanks, >>>>> >>>>> Matt >>>>> >>>>>> >>>>>> Thanks and kind regards, >>>>>> >>>>>> Volker >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> 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 >>> >
