On Tue, Nov 10, 2015 at 6:30 AM, TAY wee-beng <zonexo@gmail.com> wrote:

On 10/11/2015 8:27 PM, Matthew Knepley wrote:
On Tue, Nov 10, 2015 at 3:27 AM, TAY wee-beng <zonexo@gmail.com> wrote:
Hi,

Inside my subroutine, I need to access the DA variable cu_types_array frequently.

So I need to call DMDAVecGetArrayF90 and DMDAVecRestoreArrayF90 before and after frequently.

Is this necessary? Can I call DMDAVecGetArrayF90 at the start and only call DMDAVecRestoreArrayF90 towards the end, where I don't need to modify the values of cu_types_array anymore?

Will this cause memory corruption?

You cannot use any other vector operations before you have called Restore.

Hi,

What do you mean by vector operations? I will just be doing some maths operation to change the values in cu_types_array. Is that fine?

While you have the array, no other operation can change the values.

   Matt
 
 
Also, must the array be restored using DMDAVecRestoreArrayF90 before calling DMLocalToLocalBegin,DMLocalToLocalEnd?

Yes.

  Matt
 

--
Thank you.

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 experiments lead.
-- Norbert Wiener




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