1 |
dimitri |
1.1 |
C $Header: /u/gcmpack/MITgcm_contrib/llc_hires/llc_90/code-async/asyncio_driver_init.F,v 1.1 2017/10/03 00:09:12 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 |