36 |
INTEGER nt_perProc, thisProc |
INTEGER nt_perProc, thisProc |
37 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
38 |
CHARACTER*(MAX_LEN_FNAM) fName |
CHARACTER*(MAX_LEN_FNAM) fName |
39 |
INTEGER stdUnit, W2_oUnit, iLen |
INTEGER W2_oUnit |
40 |
|
INTEGER stdUnit, iLen |
41 |
CHARACTER commFlag |
CHARACTER commFlag |
42 |
INTEGER myTileId |
INTEGER myTileId |
43 |
INTEGER myThid, I, J, II, np, jp |
INTEGER myThid, I, J, II, np, jp |
77 |
exch2_jHi(J,I) = 0 |
exch2_jHi(J,I) = 0 |
78 |
ENDDO |
ENDDO |
79 |
ENDDO |
ENDDO |
|
C Initialise parameters from EXCH2_PARAMS common blocks |
|
80 |
W2_oUnit = standardMessageUnit |
W2_oUnit = standardMessageUnit |
81 |
|
|
82 |
C Set W2-EXCH2 parameters |
C Set W2-EXCH2 parameters |
88 |
CALL PRINT_MESSAGE( msgBuf, stdUnit, SQUEEZE_RIGHT, myThid ) |
CALL PRINT_MESSAGE( msgBuf, stdUnit, SQUEEZE_RIGHT, myThid ) |
89 |
|
|
90 |
C Open message output-file (if needed) |
C Open message output-file (if needed) |
91 |
IF ( W2_oUnit.LT.0 ) THEN |
IF ( W2_oUnit.NE.standardMessageUnit ) THEN |
92 |
WRITE(fName,'(A,I4.4,A)') |
WRITE(fName,'(A,I4.4,A)') |
93 |
& 'w2_tile_topology.',myProcId,'.log' |
& 'w2_tile_topology.',myProcId,'.log' |
94 |
iLen = ILNBLNK(fName) |
iLen = ILNBLNK(fName) |
163 |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_BOTH, myThid ) |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_BOTH, myThid ) |
164 |
DO I=1,nSx |
DO I=1,nSx |
165 |
myTileId = W2_myTileList(I) |
myTileId = W2_myTileList(I) |
166 |
WRITE(msgBuf,'(A,I4)') ' TILE: ', myTileId |
c WRITE(msgBuf,'(A,I4)') ' TILE: ', myTileId |
167 |
|
WRITE(msgBuf,'(A,I5,A,I3)') ' TILE: ', myTileId, |
168 |
|
& ' , Nb of Neighbours =', exch2_nNeighbours(myTileId) |
169 |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid ) |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid ) |
170 |
DO J=1,exch2_nNeighbours(myTileId) |
DO J=1,exch2_nNeighbours(myTileId) |
171 |
commFlag = 'M' |
commFlag = 'M' |
174 |
& commFlag = 'P' |
& commFlag = 'P' |
175 |
ENDDO |
ENDDO |
176 |
IF ( commFlag .EQ. 'M' ) THEN |
IF ( commFlag .EQ. 'M' ) THEN |
177 |
WRITE(msgBuf,'(A,I4,A,I4,A,A,I4,A)') |
WRITE(msgBuf,'(A,I3,A,I5,A,I3,2A,I5,A)') |
178 |
& ' NEIGHBOUR ',J,' = TILE ', |
& ' NEIGHBOUR',J,' = TILE', exch2_neighbourId(J,myTileId), |
179 |
& exch2_neighbourId(J,myTileId), ' Comm = MSG', |
& ' (n=', exch2_opposingSend(J,myTileId), ') Comm = MSG', |
180 |
& ' ( PROC = ',exch2_tProc(exch2_neighbourId(J,myTileId)),')' |
& ' (PROC=',exch2_tProc(exch2_neighbourId(J,myTileId)),')' |
181 |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid ) |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid ) |
182 |
ENDIF |
ENDIF |
183 |
IF ( commFlag .EQ. 'P' ) THEN |
IF ( commFlag .EQ. 'P' ) THEN |
184 |
WRITE(msgBuf,'(A,I4,A,I4,A,A,I4,A)') |
WRITE(msgBuf,'(A,I3,A,I5,A,I3,2A,I5,A)') |
185 |
& ' NEIGHBOUR ',J,' = TILE ', |
& ' NEIGHBOUR',J,' = TILE', exch2_neighbourId(J,myTileId), |
186 |
& exch2_neighbourId(J,myTileId), ' Comm = PUT', |
& ' (n=', exch2_opposingSend(J,myTileId), ') Comm = PUT', |
187 |
& ' ( PROC = ',exch2_tProc(exch2_neighbourId(J,myTileId)),')' |
& ' (PROC=',exch2_tProc(exch2_neighbourId(J,myTileId)),')' |
188 |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid ) |
CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid ) |
189 |
ENDIF |
ENDIF |
190 |
W2_myCommFlag(J,I) = commFlag |
W2_myCommFlag(J,I) = commFlag |