Error using VecRestoreArrayF90
Ben Tay
zonexo at gmail.com
Tue Aug 28 09:52:02 CDT 2007
Hi,
I tried to use VecRestoreArrayF90. It works on 1 code but failed on the
other. The one which worked is a .F90 free format one while the one
which failed is a .F fixed format one. The failed one is
#define PETSC_AVOID_DECLARATIONS
#include "include/finclude/petsc.h"
#include "include/finclude/petscvec.h"
#include "include/finclude/petscmat.h"
#include "include/finclude/petscksp.h"
#include "include/finclude/petscpc.h"
#undef PETSC_AVOID_DECLARATIONS
module petsc_sub
implicit none
contains
subroutine petsc_solver_pois
#include "include/finclude/petsc.h"
#include "include/finclude/petscvec.h"
#include "include/finclude/petscmat.h"
#include "include/finclude/petscksp.h"
#include "include/finclude/petscpc.h"
#include "include/finclude/petscmat.h90"
PetscScalar, pointer :: xx_v(:)
...
solve using KSPSolve to get xx
...
call VecGetArrayF90(xx,xx_v,ierr) !error at here
pre=xx_v
call VecRestoreArrayF90(xx,xx_v,ierr)
The error msg is :
[0]PETSC ERROR:
----------------------------------------------------------------
--------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation,
probably m
emory access out of range
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[0]PETSC ERROR: or see
http://www.mcs.anl.gov/petsc/petsc-as/documentation/troub
leshooting.html#Signal[0]PETSC ERROR: or try http://valgrind.org on
linux or man
libgmalloc on Apple to find memory corruption errors
[0]PETSC ERROR: likely location of problem given in stack below
[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/d:\cygwin\codes\PET
SC-~1.3-P\src\sys\f90-src\f90_cwrap.c
[0]PETSC ERROR: --------------------- Error Message
----------------------------
--------
[0]PETSC ERROR: Signal received!
[0]PETSC ERROR:
----------------------------------------------------------------
It works if I use "call VecRestoreArray(xx,ppv,i_vec,ierr)". So what did
I do wrong here?
Thank you
More information about the petsc-users
mailing list