/[MITgcm]/MITgcm/eesupp/inc/EESUPPORT.h
ViewVC logotype

Diff of /MITgcm/eesupp/inc/EESUPPORT.h

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

revision 1.3 by cnh, Sat Sep 5 17:52:13 1998 UTC revision 1.4 by cnh, Tue Sep 29 18:50:56 1998 UTC
# Line 17  C     PROCESS_HEADER      - String which Line 17  C     PROCESS_HEADER      - String which
17        CHARACTER*(*) PROCESS_HEADER        CHARACTER*(*) PROCESS_HEADER
18        PARAMETER ( PROCESS_HEADER = 'PID.TID' )        PARAMETER ( PROCESS_HEADER = 'PID.TID' )
19    
20    C     MAX_NUM_COMM_MODES - Maximum number of communication modes
21  C     COMM_NONE       - No edge communication  C     COMM_NONE       - No edge communication
22  C     COMM_MPI        - Use MPI to communicate edges  C     COMM_MSG        - Use messages to communicate edges
23  C     COMM_SHMPG      - Use shm get/put to communicate edges  C     COMM_PUT        - Use put to communicate edges
24  C     COMM_SHARED     - Use true shared memory to communicate edges  C     COMM_GET        - Use get to communicate edges
25    C     Note - commName holds an identifying name for each communication
26    C            mode. The COMM_ parameters are used to index commName
27    C            so the COMM_ parameters need to be in the range
28    C            1 : MAX_NUM_COMM_MODES.
29          INTEGER MAX_NUM_COMM_MODES
30          PARAMETER ( MAX_NUM_COMM_MODES = 4 )
31        INTEGER COMM_NONE        INTEGER COMM_NONE
32        PARAMETER ( COMM_NONE   =   0 )        PARAMETER ( COMM_NONE   =   1 )
33        INTEGER COMM_MPI        INTEGER COMM_MSG
34        PARAMETER ( COMM_MPI    =   1 )        PARAMETER ( COMM_MSG    =   2 )
35        INTEGER COMM_SHMPG        INTEGER COMM_PUT
36        PARAMETER ( COMM_SHMPG  =   2 )        PARAMETER ( COMM_PUT    =   3 )
37        INTEGER COMM_SHARED        INTEGER COMM_GET
38        PARAMETER ( COMM_SHARED =   3 )        PARAMETER ( COMM_GET    =   4 )
39          COMMON /EESUPP_COMMNAME/ commName
40          CHARACTER*10 commName(MAX_NUM_COMM_MODES)
41    
42    C     Tile identifiers
43    C     Tiles have a number that is unique over the global domain.
44    C     A tile that is not there has its number set to NULL_TILE
45          INTEGER NULL_TILE
46          PARAMETER ( NULL_TILE = -1 )
47    
48    
49  C--   COMMON /EESUPP_C/ Execution environment support character variables  C--   COMMON /EESUPP_C/ Execution environment support character variables
50  C     myProcessStr - String identifying my process number  C     myProcessStr - String identifying my process number
# Line 80  C                             exact zero Line 96  C                             exact zero
96        LOGICAL notUsingYPeriodicity        LOGICAL notUsingYPeriodicity
97        LOGICAL printMapIncludesZeros        LOGICAL printMapIncludesZeros
98    
   
99  C--   COMMON /EESUPP_I/ Parallel support integer globals  C--   COMMON /EESUPP_I/ Parallel support integer globals
100  C     pidW   - "Process" ID of neighbor to West  C     pidW   -  Process  ID of neighbor to West
101  C     pidE   -    "       "       "        East  C     pidE   -           ditto             East
102  C     pidN   -    "       "       "        North  C     pidN   -           ditto             North
103  C     pidS   -    "       "       "        South  C     pidS   -           ditto             South
 C     pidNE  -    "       "       "        North-East  
 C     pidNW  -    "       "       "        North-West  
 C     pidSE  -    "       "       "        South-East  
 C     pidSW  -    "       "       "        South-West  
104  C              Note: pid[XY] is not necessairily the UNIX  C              Note: pid[XY] is not necessairily the UNIX
105  C                    process id - it is just an identifying  C                    process id - it is just an identifying
106  C                    number.  C                    number.
107  C     commW       - Communication method at thread edge to the  C     myPid  - My own process id
108  C     commE         west (W), east (E), south (S), north (N).  C     nProcs - Number of processes
109  C     commS  C     westCommunicationMode  - Mode of communication for each tile face
110  C     commN  C     eastCommunicationMode
111  C     myThrS      - Thread number of neighboring thread, used  C     northCommunicationMode
112  C     myThrN        to match senders with receivers of  C     southCommunicationMode
113  C     myThrW        messages.  C     bi0   - Low cartesian tile index for this process
114  C     myThrE  C     bj0     Note - In a tile distribution with holes bi0 and bj0
115  C     myThrSW  C                    are not useful. Neighboring tile indices must
116  C     myThrSE  C                    be derived some other way.
117  C     myThrNW  C     tileNo       - Tile identification number for my tile and
118  C     myThrNE  C     tileNo[WENS]   my N,S,E,W neighbor tiles.
119  C     nTx, nTy    - No. threads in X and Y. This assumes a simple cartesian  C     tilePid[WENS] - Process identification number for
120  C                   gridding of the threads which is not required elsewhere  C                     my N,S,E,W neighbor tiles.
121  C                   but that makes it easier.  C     nTx, nTy    - No. threads in X and Y. This assumes a simple
122    C                   cartesian gridding of the threads which is not
123    C                   required elsewhere but that makes it easier.
124        COMMON /EESUPP_I/        COMMON /EESUPP_I/
125       & pidW, pidE, pidS, pidN, pidSE, pidSW, pidNE, pidNW,       & myPid, nProcs, pidW, pidE, pidN, pidS,
126       & commW, commN, commS, commE,       & tileCommModeW,  tileCommModeE,
127       & myThrS,  myThrN,  myThrW,  myThrE,       & tileCommModeN,  tileCommModeS,
128       & myThrNE, myThrNW, myThrSE, myThrSW       & tileNo, tileNoW, tileNoE, tileNoS, tileNoN,
129        INTEGER commW(MAX_NO_THREADS)       &  tilePidW, tilePidE, tilePidS, tilePidN,
130        INTEGER commE(MAX_NO_THREADS)       &  tileBiW, tileBiE, tileBiS, tileBiN,
131        INTEGER commN(MAX_NO_THREADS)       & tileBjW, tileBjE, tileBjS, tileBjN,
132        INTEGER commS(MAX_NO_THREADS)       & tileTagSendW, tileTagSendE, tileTagSendS, tileTagSendN,
133         & tileTagRecvW, tileTagRecvE, tileTagRecvS, tileTagRecvN
134          INTEGER myPid
135          INTEGER nProcs
136        INTEGER pidW        INTEGER pidW
137        INTEGER pidE        INTEGER pidE
       INTEGER pidS  
138        INTEGER pidN        INTEGER pidN
139        INTEGER pidSE        INTEGER pidS
140        INTEGER pidSW        INTEGER tileCommModeW ( nSx, nSy )
141        INTEGER pidNE        INTEGER tileCommModeE ( nSx, nSy )
142        INTEGER pidNW        INTEGER tileCommModeN ( nSx, nSy )
143        INTEGER myThrS(MAX_NO_THREADS)        INTEGER tileCommModeS ( nSx, nSy )
144        INTEGER myThrN(MAX_NO_THREADS)        INTEGER tileNo( nSx, nSy )
145        INTEGER myThrW(MAX_NO_THREADS)        INTEGER tileNoW( nSx, nSy )
146        INTEGER myThrE(MAX_NO_THREADS)        INTEGER tileNoE( nSx, nSy )
147        INTEGER myThrSW(MAX_NO_THREADS)        INTEGER tileNoN( nSx, nSy )
148        INTEGER myThrNW(MAX_NO_THREADS)        INTEGER tileNoS( nSx, nSy )
149        INTEGER myThrNE(MAX_NO_THREADS)        INTEGER tilePidW( nSx, nSy )
150        INTEGER myThrSE(MAX_NO_THREADS)        INTEGER tilePidE( nSx, nSy )
151          INTEGER tilePidN( nSx, nSy )
152          INTEGER tilePidS( nSx, nSy )
153          INTEGER tileBiW( nSx, nSy )
154          INTEGER tileBiE( nSx, nSy )
155          INTEGER tileBiN( nSx, nSy )
156          INTEGER tileBiS( nSx, nSy )
157          INTEGER tileBjW( nSx, nSy )
158          INTEGER tileBjE( nSx, nSy )
159          INTEGER tileBjN( nSx, nSy )
160          INTEGER tileBjS( nSx, nSy )
161          INTEGER tileTagSendW( nSx, nSy )
162          INTEGER tileTagSendE( nSx, nSy )
163          INTEGER tileTagSendN( nSx, nSy )
164          INTEGER tileTagSendS( nSx, nSy )
165          INTEGER tileTagRecvW( nSx, nSy )
166          INTEGER tileTagRecvE( nSx, nSy )
167          INTEGER tileTagRecvN( nSx, nSy )
168          INTEGER tileTagRecvS( nSx, nSy )
169    
170  #ifdef ALLOW_USE_MPI  #ifdef ALLOW_USE_MPI
171  C--   Include MPI standard Fortran header file  C--   Include MPI standard Fortran header file

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22