[petsc-users] error in calling VecGetArrayf90()

Peter Wang pengxwang at hotmail.com
Tue Jan 4 17:38:53 CST 2011

I am trying to obtain the value of each element of a solution Vector by KSPsolve(). 
The variables are defined according the example of ex4f90.F in   \petsc-3.1-p5\src\snes\examples\tutorials\  as following,
PetscScalar, pointer ::  xx_v(:)
     call KSPSolve(ksp,b,x,ierr)
     call VecView(x,PETSC_VIEWER_STDOUT_WORLD,ierr)

       call VecGetArrayF90(x,xx_v,ierr)
       call VecRestoreArrayF90(x,xx_v,ierr)
But, the error keeps coming out when call VecGetArrayF90(x,xx_v,ierr) and  call VecRestoreArrayF90(x,xx_v,ierr) are not commented off.

The error information shows:
Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
[0]PETSC ERROR: ---------------------  Stack Frames ------------------------------------
[0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
[0]PETSC ERROR:       INSTEAD the line number of the start of the function
[0]PETSC ERROR:       is given.
[0]PETSC ERROR: [0] F90Array1dCreate line 52 src/sys/f90-src/f90_cwrap.c
[0]PETSC ERROR: --------------------- Error Message ------------------------------------
I checked the code according the example, but cannot see any difference to that. Just don't know why the pointer array xx_v doesn't work here? Thanks.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110104/282167fa/attachment.htm>

More information about the petsc-users mailing list