294 |
elCount = sNy+OLy*2 |
elCount = sNy+OLy*2 |
295 |
elLen = OLx |
elLen = OLx |
296 |
elStride = arrElSep |
elStride = arrElSep |
297 |
|
#ifdef TARGET_SGI |
298 |
|
CALL MPI_TYPE_VECTOR(elCount,elLen,elStride,MPI_REAL, |
299 |
|
& mpiTypeXFaceBlock_xy_r4, mpiRC) |
300 |
|
#else |
301 |
CALL MPI_TYPE_VECTOR(elCount,elLen,elStride,MPI_REAL4, |
CALL MPI_TYPE_VECTOR(elCount,elLen,elStride,MPI_REAL4, |
302 |
& mpiTypeXFaceBlock_xy_r4, mpiRC) |
& mpiTypeXFaceBlock_xy_r4, mpiRC) |
303 |
|
#endif |
304 |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
305 |
eeBootError = .TRUE. |
eeBootError = .TRUE. |
306 |
WRITE(msgBuffer,'(A,I5)') |
WRITE(msgBuffer,'(A,I5)') |
318 |
ENDIF |
ENDIF |
319 |
|
|
320 |
C xFace (y=constant) for XY arrays with real*8 declaration. |
C xFace (y=constant) for XY arrays with real*8 declaration. |
321 |
|
#ifdef TARGET_SGI |
322 |
|
CALL MPI_TYPE_VECTOR(elCount,elLen,elStride,MPI_DOUBLE_PRECISION, |
323 |
|
& mpiTypeXFaceBlock_xy_r8, mpiRC) |
324 |
|
#else |
325 |
CALL MPI_TYPE_VECTOR(elCount,elLen,elStride,MPI_REAL8, |
CALL MPI_TYPE_VECTOR(elCount,elLen,elStride,MPI_REAL8, |
326 |
& mpiTypeXFaceBlock_xy_r8, mpiRC) |
& mpiTypeXFaceBlock_xy_r8, mpiRC) |
327 |
|
#endif |
328 |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
329 |
eeBootError = .TRUE. |
eeBootError = .TRUE. |
330 |
WRITE(msgBuffer,'(A,I5)') |
WRITE(msgBuffer,'(A,I5)') |
392 |
C-- |
C-- |
393 |
C yFace (x=constant) for XY arrays with real*4 declaration |
C yFace (x=constant) for XY arrays with real*4 declaration |
394 |
elCount = OLy*(sNx+OLx*2) |
elCount = OLy*(sNx+OLx*2) |
395 |
|
#ifdef TARGET_SGI |
396 |
|
CALL MPI_TYPE_CONTIGUOUS(elCount,MPI_REAL, |
397 |
|
& mpiTypeYFaceBlock_xy_r4, mpiRC) |
398 |
|
#else |
399 |
CALL MPI_TYPE_CONTIGUOUS(elCount,MPI_REAL4, |
CALL MPI_TYPE_CONTIGUOUS(elCount,MPI_REAL4, |
400 |
& mpiTypeYFaceBlock_xy_r4, mpiRC) |
& mpiTypeYFaceBlock_xy_r4, mpiRC) |
401 |
|
#endif |
402 |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
403 |
eeBootError = .TRUE. |
eeBootError = .TRUE. |
404 |
WRITE(msgBuffer,'(A,I5)') |
WRITE(msgBuffer,'(A,I5)') |
415 |
CALL PRINT_ERROR( msgBuffer , myThid) |
CALL PRINT_ERROR( msgBuffer , myThid) |
416 |
ENDIF |
ENDIF |
417 |
C yFace (x=constant) for XY arrays with real*8 declaration |
C yFace (x=constant) for XY arrays with real*8 declaration |
418 |
|
#ifdef TARGET_SGI |
419 |
|
CALL MPI_TYPE_CONTIGUOUS(elCount,MPI_DOUBLE_PRECISION, |
420 |
|
& mpiTypeYFaceBlock_xy_r8, mpiRC) |
421 |
|
#else |
422 |
CALL MPI_TYPE_CONTIGUOUS(elCount,MPI_REAL8, |
CALL MPI_TYPE_CONTIGUOUS(elCount,MPI_REAL8, |
423 |
& mpiTypeYFaceBlock_xy_r8, mpiRC) |
& mpiTypeYFaceBlock_xy_r8, mpiRC) |
424 |
|
#endif |
425 |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
IF ( mpiRC .NE. MPI_SUCCESS ) THEN |
426 |
eeBootError = .TRUE. |
eeBootError = .TRUE. |
427 |
WRITE(msgBuffer,'(A,I5)') |
WRITE(msgBuffer,'(A,I5)') |