Error using VecRestoreArrayF90
Satish Balay
balay at mcs.anl.gov
Tue Aug 28 09:57:47 CDT 2007
Perhaps the error is due to the missing include file?
#include "include/finclude/petscvec.h90"
Satish
On Tue, 28 Aug 2007, Ben Tay wrote:
> 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