if((x0+x1+x2+x3+g_nproc_t*T)%2==0 && !(((x0 == -1) || (x0 == T)) && ((x1 == -1)||(x1 == LX)))) {
if((x0+x1+x2+x3+g_nproc_t*T)%2==0) {
void geometry(){    int x0,x1,x2,x3,ix;  int i_even,i_odd;  int startvaluet = 0;  int startvaluex = 0;#ifdef PARALLELT  startvaluet = 1;#endif#ifdef PARALLELXT  startvaluex = 1;#endif  /* extended for neighbour slices at x0=-1 and x0=T */  for (x0 = -startvaluet; x0 < (T+startvaluet); x0++){    for (x1 = -startvaluex; x1 < (LX+startvaluex); x1++){      for (x2 = 0; x2 < LY; x2++){	for (x3 = 0; x3 < L; x3++){	  ix=Index(x0, x1, x2, x3);	  /* g_proc_id*T is added to allow for odd T when the number of 	     nodes is even */	  if((x0+x1+x2+x3+g_nproc_t*T)%2==0 && !(((x0 == -1) || (x0 == T)) && ((x1 == -1)||(x1 == LX)))) {	    xeven[ix]=1;	  } 	  else {	    xeven[ix]=0; 	  }	  if(x0 >= 0 && x1 >=0) g_ipt[x0][x1][x2][x3] = ix;	  g_iup[ix][0]=Index(x0+1,x1,x2,x3);	  g_idn[ix][0] = Index(x0-1,x1,x2,x3);	  g_iup[ix][1]=Index(x0,x1+1,x2,x3);	  g_idn[ix][1]=Index(x0,x1-1,x2,x3);	  g_iup[ix][2]=Index(x0,x1,x2+1,x3);	  g_idn[ix][2]=Index(x0,x1,x2-1,x3);	  g_iup[ix][3]=Index(x0,x1,x2,x3+1);	  g_idn[ix][3]=Index(x0,x1,x2,x3-1);	  	}      }    }  }  i_even=0;  i_odd=0;  for (ix = 0; ix < (VOLUME+RAND); ix++){    if(xeven[ix]==1){      trans1[ix]=i_even;      trans2[i_even]=ix;      i_even++;    }    else{      trans1[ix]=(VOLUME+RAND)/2+i_odd;      trans2[(VOLUME+RAND)/2+i_odd]=ix;      i_odd++;    }  }}