[petsc-users] updating values in a DA Global array

Barry Smith bsmith at mcs.anl.gov
Tue Jun 22 18:36:25 CDT 2010


On Jun 22, 2010, at 6:32 PM, Jed Brown wrote:

> On Tue, 22 Jun 2010 23:21:11 +0000, Matthew Knepley <knepley at gmail.com> wrote:
>> That should work.
> 
> I thought *GetArrayF90 requires you have to call a "local function" for
> multidimensional arrays, as in snes ex5f90.F.

    VecGetArrayF90 requires 1d array (since Vec has no concept of multi-dimension)

>  If you declare the
> pointer as multi-dimensional, you get errors about shape-matching rules,
> if you try to use a usual pointer (1D) you get errors about incorrect
> subscripting.  Is there a workaround, or do you always need to call the
> local version to get it to type-check?

   In theory someone could take the energy to finish the DAVecGetArrayF90() for 2 and 3 dimensions and get what is needed. In practice the only people who know enough to finish it despise Fortran so much you need to bash them on the head to get it done (and that includes me). See my other email for directions.

   Barry

> 
> Jed



More information about the petsc-users mailing list