>>130
これってどういう挙動のソート?
for(p=0; p<nlocal; p++) {
   for(q=0; q<nlocal; q++) {
       if(array[p]>temp_array[q]) {
           array[p]=array[p]^array[q];
           array[q]=array[p]^array[q];
           array[p]=array[p]^array[q];
       }
   }
}