| 1 | 
dimitri | 
1.1 | 
C $Header: /u/gcmpack/MITgcm_contrib/llc_hires/llc_1080/code-async/asyncio_driver_init.F,v 1.1 2013/09/29 22:43:00 dimitri Exp $ | 
| 2 | 
  | 
  | 
#include "CPP_EEOPTIONS.h" | 
| 3 | 
  | 
  | 
  | 
| 4 | 
  | 
  | 
      SUBROUTINE ASYNCIO_DRIVER_INIT( | 
| 5 | 
  | 
  | 
     I            mpiCommIO, mpiCommParent, | 
| 6 | 
  | 
  | 
     I            sNx, sNy, Nr, OLx, OLy ) | 
| 7 | 
  | 
  | 
      INTEGER mpiCommIO, mpiCommParent | 
| 8 | 
  | 
  | 
      INTEGER sNx, sNy, Nr, OLx, OLy | 
| 9 | 
  | 
  | 
 | 
| 10 | 
  | 
  | 
      INTEGER IFNBLNK, ILNBLNK, I0, I1 | 
| 11 | 
  | 
  | 
 | 
| 12 | 
  | 
  | 
C--   Driver for separate asynchronous I/O processes | 
| 13 | 
  | 
  | 
C--   Bron is writing real code for this | 
| 14 | 
  | 
  | 
      INTEGER parCtxRank, parCtxNP | 
| 15 | 
  | 
  | 
      INTEGER ioCtxRank,  ioCtxNP | 
| 16 | 
  | 
  | 
 | 
| 17 | 
  | 
  | 
      CHARACTER*1024 msgBuf | 
| 18 | 
  | 
  | 
 | 
| 19 | 
  | 
  | 
      CALL MPI_COMM_SIZE(mpiCommParent, parCtxNP,   mpiRC ) | 
| 20 | 
  | 
  | 
      CALL MPI_COMM_RANK(mpiCommParent, parCtxRank, mpiRC ) | 
| 21 | 
  | 
  | 
 | 
| 22 | 
  | 
  | 
      CALL MPI_COMM_SIZE(mpiCommIO,     ioCtxNP,    mpiRC ) | 
| 23 | 
  | 
  | 
      CALL MPI_COMM_RANK(mpiCommIO,     ioCtxRank,  mpiRC ) | 
| 24 | 
  | 
  | 
 | 
| 25 | 
  | 
  | 
      WRITE(msgBuf,'(A,I6,A,I6,A,I6,A,I6)')  | 
| 26 | 
  | 
  | 
     &'Parent rank ',parCtxRank,' of ',parCtxNP, | 
| 27 | 
  | 
  | 
     &' dedicated for I/O as rank ',ioCtxRank,' of ',ioCtxNP | 
| 28 | 
  | 
  | 
      I0=IFNBLNK(msgBuf) | 
| 29 | 
  | 
  | 
      I1=ILNBLNK(msgBuf) | 
| 30 | 
  | 
  | 
      PRINT *, msgBuf(I0:I1) | 
| 31 | 
  | 
  | 
 | 
| 32 | 
  | 
  | 
      RETURN | 
| 33 | 
  | 
  | 
      END |