#include "ga.h"
int ga_read_inc(GA ga, int i, int j, int inc)
{
  MPI_Aint disp;
  int      rank, one = 1, result;

  rank = (j - 1) / ga->chunk2;

  /* disp depends on the displacement unit being sizeof(int) */
  disp = (j - 1 - (rank * ga->chunk2)) * ga->dim1 + i - 1;

  MPI_Win_lock(MPI_LOCK_SHARED, rank, MPI_MODE_NOCHECK, ga->ga_win);
  MPI_Fetch_and_op(&one, &result, MPI_INT, rank, disp, MPI_SUM,
                   ga->ga_win);
  MPI_Win_unlock(rank, ga->ga_win);

  return result;
}