On May 9, 2014, at 7:29 AM, Antonios Mylonakis <[email protected]> wrote:
> Dear Sir or Madam
>
> I am a new PETSc user. I am using PETSc library with fortran.
> I have the following problem. I want to use the matrix-free form of krylov
> solvers. So I am starting by using the example ex14f.F.
> In this example, within subroutine mymult() I try call another subroutine
> which calculates the vector I need as the result of the matrix-vector
> multiplication.In this second subroutine the vector is defined as a simple
> array. (Is this the problem?)
A PETSc Vec is NOT a simple array you cannot do something like
myroutine( x)
double x(*)
….
anotherroutine(y)
Vec y
call myroutine(y)
to access local entries in PETSc Vec directly you need to call
VecGetArray() or VecGetArrayF90()
Barry
> The problem is that I receive errors when I'm attempting to run the program.
> The problem seems to be related with memory, but I am not sure.
>
> The first line of errors can be seen below:
> "Caught signal number 11 SEGV: Segmentation Violation, probably memory access
> out of range"
>
>
> Could you help me?
>
> Thanks in advance