/[MITgcm]/MITgcm/pkg/exch2/w2_eeboot.F
ViewVC logotype

Diff of /MITgcm/pkg/exch2/w2_eeboot.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.7 by jmc, Sat Apr 11 05:34:02 2009 UTC revision 1.8 by jmc, Wed Apr 29 19:44:44 2009 UTC
# Line 28  C     !USES: Line 28  C     !USES:
28  #include "W2_EXCH2_PARAMS.h"  #include "W2_EXCH2_PARAMS.h"
29  CEOP  CEOP
30    
31    C     !FUNCTIONS:
32          INTEGER  ILNBLNK
33          EXTERNAL ILNBLNK
34    
35  C     == Local variables ==  C     == Local variables ==
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
39          INTEGER stdUnit, W2_oUnit, iLen
40        CHARACTER commFlag        CHARACTER commFlag
41        INTEGER myTileId        INTEGER myTileId
42        INTEGER myThid, I, J, II, np, jp        INTEGER myThid, I, J, II, np, jp
43        INTEGER iErr, tNx, tNy        INTEGER iErr, tNx, tNy
       INTEGER pRank  
44    
45  C     Set dummy myThid value (we are not multi-threaded here)  C     Set dummy myThid value (we are not multi-threaded here)
46        myThid = 1        myThid = 1
# Line 71  C     Initialise to zero EXCH2_TOPOLOGY Line 76  C     Initialise to zero EXCH2_TOPOLOGY
76            exch2_jHi(J,I) = 0            exch2_jHi(J,I) = 0
77          ENDDO          ENDDO
78        ENDDO        ENDDO
79    C     Initialise parameters from EXCH2_PARAMS common blocks
80          W2_oUnit = standardMessageUnit
81    
82    C     Set W2-EXCH2 parameters
83    c     CALL W2_EXCH2_READPARMS
84    c     W2_oUnit = -1
85    
86          stdUnit = standardMessageUnit
87          WRITE(msgBuf,'(A)') '===== Start setting W2 TOPOLOGY:'
88          CALL PRINT_MESSAGE( msgBuf, stdUnit, SQUEEZE_RIGHT, myThid )
89    
90    C     Open message output-file (if needed)
91          IF ( W2_oUnit.LT.0 ) THEN
92            WRITE(fName,'(A,I4.4,A)')
93         &     'w2_tile_topology.',myProcId,'.log'
94            iLen = ILNBLNK(fName)
95            CALL MDSFINDUNIT( W2_oUnit, myThid )
96            OPEN( W2_oUnit, file=fName(1:iLen),
97         &                  status='unknown', form='formatted')
98    c       WRITE(msgBuf,'(2AA)') '  repport on file: ', fName(1:iLen)
99            WRITE(msgBuf,'(2AA)') ' write to log-file: ', fName(1:iLen)
100            CALL PRINT_MESSAGE( msgBuf, stdUnit, SQUEEZE_RIGHT, myThid )
101          ENDIF
102    
103  C     Define topology for every tile  C     Define topology for every tile
104        CALL W2_E2SETUP        CALL W2_E2SETUP
# Line 132  C--   Check tile sizes Line 160  C--   Check tile sizes
160        ENDIF        ENDIF
161    
162  C--   Print tiles connection for this process and set myCommonFlag :  C--   Print tiles connection for this process and set myCommonFlag :
163        WRITE(msgBuf,'(A)') '===== W2 TILE TOPLOGY ====='        WRITE(msgBuf,'(A)') '===== W2 TILE TOPOLOGY ====='
164        CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_BOTH, myThid )
      &     SQUEEZE_BOTH,myThid)  
165        DO I=1,nSx        DO I=1,nSx
166         myTileId = W2_myTileList(I)         myTileId = W2_myTileList(I)
167         WRITE(msgBuf,'(A,I4)') ' TILE: ', myTileId         WRITE(msgBuf,'(A,I4)') ' TILE: ', myTileId
168         CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,         CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid )
      &      SQUEEZE_RIGHT,myThid)  
169         DO J=1,exch2_nNeighbours(myTileId)         DO J=1,exch2_nNeighbours(myTileId)
170          commFlag = 'M'          commFlag = 'M'
171          DO II=1,nSx          DO II=1,nSx
# Line 151  C--   Print tiles connection for this pr Line 177  C--   Print tiles connection for this pr
177       &   '      NEIGHBOUR ',J,' = TILE ',       &   '      NEIGHBOUR ',J,' = TILE ',
178       &   exch2_neighbourId(J,myTileId), ' Comm = MSG',       &   exch2_neighbourId(J,myTileId), ' Comm = MSG',
179       &   ' ( PROC = ',exch2_tProc(exch2_neighbourId(J,myTileId)),')'       &   ' ( PROC = ',exch2_tProc(exch2_neighbourId(J,myTileId)),')'
180           CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid )
      &        SQUEEZE_RIGHT,myThid)  
181          ENDIF          ENDIF
182          IF ( commFlag .EQ. 'P' ) THEN          IF ( commFlag .EQ. 'P' ) THEN
183           WRITE(msgBuf,'(A,I4,A,I4,A,A,I4,A)')           WRITE(msgBuf,'(A,I4,A,I4,A,A,I4,A)')
184       &   '      NEIGHBOUR ',J,' = TILE ',       &   '      NEIGHBOUR ',J,' = TILE ',
185       &   exch2_neighbourId(J,myTileId), ' Comm = PUT',       &   exch2_neighbourId(J,myTileId), ' Comm = PUT',
186       &   ' ( PROC = ',exch2_tProc(exch2_neighbourId(J,myTileId)),')'       &   ' ( PROC = ',exch2_tProc(exch2_neighbourId(J,myTileId)),')'
187           CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_RIGHT, myThid )
      &        SQUEEZE_RIGHT,myThid)  
188          ENDIF          ENDIF
189          W2_myCommFlag(J,I) = commFlag          W2_myCommFlag(J,I) = commFlag
190         ENDDO         ENDDO
# Line 178  c     e2FillValue_R4 = 1.e+20 Line 202  c     e2FillValue_R4 = 1.e+20
202  c     e2FillValue_R8 = 1.d+20  c     e2FillValue_R8 = 1.d+20
203    
204  C     Print out the topology communication schedule  C     Print out the topology communication schedule
205        CALL W2_PRINT_COMM_SEQUENCE        CALL W2_PRINT_COMM_SEQUENCE( W2_oUnit )
206    
207    C     Close message output-file (if needed)
208          IF ( W2_oUnit.NE.standardMessageUnit ) THEN
209            WRITE(msgBuf,'(A)') '===  End TOPOLOGY report ==='
210            CALL PRINT_MESSAGE( msgBuf, W2_oUnit, SQUEEZE_BOTH, myThid )
211            CLOSE( W2_oUnit )
212          ENDIF
213          WRITE(msgBuf,'(A)') '=====       setting W2 TOPOLOGY: Done'
214          CALL PRINT_MESSAGE( msgBuf, stdUnit, SQUEEZE_RIGHT, myThid )
215          WRITE(msgBuf,'(A)') ' '
216          CALL PRINT_MESSAGE( msgBuf, stdUnit, SQUEEZE_RIGHT, myThid )
217    
218        RETURN        RETURN
219        END        END

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22