My guess is that the explicit listing of 250 here (how could you possibly know it is a string of len 250 being passed in?) causes the Fortran compiler to drop the length information from the stack. Does the syntax
> character(*), intent(in) :: value work and does that make a difference? Barry > On May 31, 2016, at 7:37 AM, Matthew Knepley <[email protected]> wrote: > > On Tue, May 31, 2016 at 7:34 AM, Mark Adams <[email protected]> wrote: > Wrapper code like this does is not working for Robert: > > The easiest thing to do is just look at it in the debugger. > > Matt > > subroutine my_PetscOptionsClearValue(value,ierr) > use petscsys > implicit none > character(len=250), intent(in) :: value > PetscErrorCode, intent(inout) :: ierr > > #if PETSC_VERSION_LT(3,7,0) > call PetscOptionsClearValue(value,ierr) > #else > call PetscOptionsClearValue(PETSC_NULL_OBJECT,value,ierr) > #endif > > Direct calls to PetscOptionsClearValue work, but calling through his wrapper > does not seem to do anything. Is Fortran doing something funny with strings > here? > > Mark > > > > -- > 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
