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

Reply via email to