Stephan,

      Thanks for reporting that problem. Unfortunately for handling  
null objects from Fortran we need to manually write the Fortran stubs  
and we had never written them for this function. I have updated petsc- 
dev to handle this properly by providing the manually written stub.

    Thanks again,

     Barry

On Feb 17, 2010, at 11:55 AM, Stephan Kramer wrote:

> Hi all,
>
> Just a small bug I came across in calling KSPBuildSolution from  
> fortran. I was calling it in the following way:
>
> call KSPBuildSolution(ksp, x, PETSC_NULL_OBJECT, ierr)
>
> i.e. I'm asking it to copy it in my vector x. However as the *V  
> argument (the second vector) gets passed on unchecked in  
> kspbuildsolution_() in itfuncf.c to kspbuildsolution(),
> it gets passed the address of PETSC_NULL_OBJECT (somewhere in the  
> fortran common block) and thinks I've passed it a proper pointer to  
> a vector,
> and copies the address of x also into PETSC_NULL_OBJECT, i.e. it  
> clobbers PETSC_NULL_OBJECT in fortran. Obvious solution for me was  
> to provide it an arbitrary second vector y instead of  
> PETSC_NULL_OBJECT, but it took me a while before realizing my crash  
> later on was due to my PETSC_NULL_OBJECT no longer being zero.
>
> Cheers
> Stephan

Reply via email to