# [petsc-users] Problem with fortran version of ex29 in ksp

Matthew Knepley knepley at gmail.com
Tue May 1 16:54:56 CDT 2012

```On Tue, May 1, 2012 at 5:48 PM, TAY wee-beng <zonexo at gmail.com> wrote:

> Hi,
>
> Do you mean my method is wrong?
>
> I am following the template of ex22f,
>
> where the variables are declared as :
>
> PetscScalar  v(5)
>
> MatStencil   row(4),col(4,5)
>
> Hence,
>
> for the neumann BC
>
> num = 1
>
>                if (j/=0) then
>
>                    v(num) = -rho*HxdHy
>
>                    col(MatStencil_i,num) = i
>
>                    col(MatStencil_j,num) = j-1
>
>                    num = num + 1
>
>                end if
>
>                if (i/=0) then
>
>                    v(num) = -rho*HydHx
>
>                    col(MatStencil_i,num) = i-1
>
>                    col(MatStencil_j,num) = j
>
>                    num = num + 1
>
>                end if
>
>                if (i/=mx-1) then
>
>                    v(num) = -rho*HydHx
>
>                    col(MatStencil_i,num) = i+1
>
>                    col(MatStencil_j,num) = j
>
>                    num = num + 1
>
>                end if
>
>                if (j/=my-1) then
>
>                    v(num) = -rho*HxdHy
>
>                    col(MatStencil_i,num) = i
>
>                    col(MatStencil_j,num) = j+1
>
>                    num = num + 1
>
>                end if
>
>                v(num) = ((num-1)/2.0)*rho*(HxdHy + HydHx)
>
>                print *, v
>
>                col(MatStencil_i,num) = i
>
>                col(MatStencil_j,num) = j
>
>                !num = num + 1
>
>                call MatSetValuesStencil(jac,i1,**
> row,num,col,v,INSERT_VALUES,**ierr)
>
> I do not get any more out of range error. However,my ans is still
> different from that of ex29 in C.
>

This is very simple. You have an error in your code. Checking it is very
simple: run the code and
break in MatSetValues(). Make sure ex29 makes calls with exactly the same

Matt

> Yours sincerely,
>
> TAY wee-beng
>

--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their