/home/eoseret/qaas_runs_CPU_9468/171-148-3214/intel/CoMD/build/CoMD/CoMD/src-openmp/linkCells.c: 204 - 250
--------------------------------------------------------------------------------

204: {
205:    int iBox = 0;
206:    const int* gridSize = boxes->gridSize; // alias
207:    
208:    // Halo in Z+
209:    if (iz == gridSize[2])
210:    {
211:       iBox = boxes->nLocalBoxes + 2*gridSize[2]*gridSize[1] + 2*gridSize[2]*(gridSize[0]+2) +
212:          (gridSize[0]+2)*(gridSize[1]+2) + (gridSize[0]+2)*(iy+1) + (ix+1);
213:    }
214:    // Halo in Z-
215:    else if (iz == -1)
216:    {
217:       iBox = boxes->nLocalBoxes + 2*gridSize[2]*gridSize[1] + 2*gridSize[2]*(gridSize[0]+2) +
218:          (gridSize[0]+2)*(iy+1) + (ix+1);
219:    }
220:    // Halo in Y+
221:    else if (iy == gridSize[1])
222:    {
223:       iBox = boxes->nLocalBoxes + 2*gridSize[2]*gridSize[1] + gridSize[2]*(gridSize[0]+2) +
224:          (gridSize[0]+2)*iz + (ix+1);
225:    }
226:    // Halo in Y-
227:    else if (iy == -1)
228:    {
229:       iBox = boxes->nLocalBoxes + 2*gridSize[2]*gridSize[1] + iz*(gridSize[0]+2) + (ix+1);
230:    }
231:    // Halo in X+
232:    else if (ix == gridSize[0])
233:    {
234:       iBox = boxes->nLocalBoxes + gridSize[1]*gridSize[2] + iz*gridSize[1] + iy;
235:    }
236:    // Halo in X-
237:    else if (ix == -1)
238:    {
239:       iBox = boxes->nLocalBoxes + iz*gridSize[1] + iy;
240:    }
241:    // local link celll.
242:    else
243:    {
244:       iBox = ix + gridSize[0]*iy + gridSize[0]*gridSize[1]*iz;
245:    }
246:    assert(iBox >= 0);
247:    assert(iBox < boxes->nTotalBoxes);
248: 
249:    return iBox;
250: }
