typedef struct { PetscInt rank; /* Rank of owner */ PetscInt index; /* Index of node on rank */ } PetscSFNode; Shouldn't rank be a PetscMPIInt? and its various uses be fixed? Barry