<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Sorry for the confusion. In my example it looked like only the diagonal block was returned, did not test it thoroughly. But anyway, using Jed's patch it works now as expected. </div>

<div>Thanks again for you help!</div>

<div>marius</div>

<div> </div>

<div> 
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"> </div>

<div name="quoted-content"><br/>
Yikes, bad bug. It wasn't returning the diagonal block just the wrong wrong size for columns.<br/>
<br/>
Barry<br/>
<br/>
<br/>
> On Aug 3, 2018, at 1:42 PM, Jed Brown <jed@jedbrown.org> wrote:<br/>
><br/>
> Can you test the patch below?<br/>
><br/>
><br/>
> diff --git i/src/mat/interface/f90-custom/zmatrixf90.c w/src/mat/interface/f90-custom/zmatrixf90.c<br/>
> index 0497d33fe7..7b2ab1011f 100644<br/>
> --- i/src/mat/interface/f90-custom/zmatrixf90.c<br/>
> +++ w/src/mat/interface/f90-custom/zmatrixf90.c<br/>
> @@ -31,10 +31,11 @@ PETSC_EXTERN void PETSC_STDCALL matgetghostsf90_(Mat *mat,F90Array1d *ptr,int *i<br/>
> PETSC_EXTERN void PETSC_STDCALL matdensegetarrayf90_(Mat *mat,F90Array2d *ptr,int *ierr PETSC_F90_2PTR_PROTO(ptrd))<br/>
> {<br/>
> PetscScalar *fa;<br/>
> - PetscInt m,n;<br/>
> + PetscInt m,N;<br/>
> *ierr = MatDenseGetArray(*mat,&fa); if (*ierr) return;<br/>
> - *ierr = MatGetLocalSize(*mat,&m,&n); if (*ierr) return;<br/>
> - *ierr = F90Array2dCreate(fa,MPIU_SCALAR,1,m,1,n,ptr PETSC_F90_2PTR_PARAM(ptrd));<br/>
> + *ierr = MatGetLocalSize(*mat,&m,NULL); if (*ierr) return;<br/>
> + *ierr = MatGetSize(*mat,NULL,&N); if (*ierr) return;<br/>
> + *ierr = F90Array2dCreate(fa,MPIU_SCALAR,1,m,1,N,ptr PETSC_F90_2PTR_PARAM(ptrd));<br/>
> }<br/>
> PETSC_EXTERN void PETSC_STDCALL matdenserestorearrayf90_(Mat *mat,F90Array2d *ptr,int *ierr PETSC_F90_2PTR_PROTO(ptrd))<br/>
> {<br/>
><br/>
><br/>
> Marius Buerkle <mbuerkle@web.de> writes:<br/>
><br/>
>> No I don't get the whole block, only the diagonal block of the matrix. Maybe I am doing something wrong.<br/>
>><br/>
>>><br/>
>>> Marius Buerkle <mbuerkle@web.de> writes:<br/>
>>><br/>
>>>> Hi<br/>
>>>><br/>
>>>> When using MatDenseGetArrayF90 only the diaognal part of the matrix is<br/>
>>>> returned. Is it possible to get the whole matrix?<br/>
>>><br/>
>>> You should get the entire block row (local size m by global size N).<br/>
>>><br/>
 </div>
</div>
</div></div></body></html>