1 |
C $Header: /u/gcmpack/MITgcm_contrib/llc_hires/llc_4320/code-async/asyncio_driver_init.F,v 1.1 2013/09/20 12:38:03 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 |