/[MITgcm]/manual/s_phys_pkgs/text/exch2.tex
ViewVC logotype

Diff of /manual/s_phys_pkgs/text/exch2.tex

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

revision 1.4 by afe, Thu Jan 29 17:55:35 2004 UTC revision 1.5 by afe, Thu Jan 29 21:03:53 2004 UTC
# Line 62  x axis) and y-axis variable {\em bj} is Line 62  x axis) and y-axis variable {\em bj} is
62    
63  \subsubsection{One-Dimensional Arrays}  \subsubsection{One-Dimensional Arrays}
64    
65  The following arrays are indexed to the tile number, and the indices are  The following arrays are of size {\em NTILES}, are indexed to the tile number,
66  omitted in their descriptions.  and the indices are omitted in their descriptions.
67    
68  The arrays {\em exch2\_tnx} and {\em exch2\_tny}  The arrays {\em exch2\_tnx} and {\em exch2\_tny}
69  express the x and y dimensions of each tile.  At present for each tile  express the x and y dimensions of each tile.  At present for each tile
# Line 72  and {\em exch2\_tny = sNy}, as assigned Line 72  and {\em exch2\_tny = sNy}, as assigned
72  MITgcm are to allow varying tile sizes.  MITgcm are to allow varying tile sizes.
73    
74  The location of the tiles' Cartesian origin within a subdomain are determined  The location of the tiles' Cartesian origin within a subdomain are determined
75  by the arrays {\em exch2\_tbasex} and {\em exch2\_tbasey}.  These  by the arrays {\em exch2\_tbasex} and {\em exch2\_tbasey}.  These variables
76    are used to relate the location of the edges of the tiles to each other.  As
77    an example, in the default six-tile topology (the degenerate case)
78    each index in these arrays are
79    set to 0.  The twenty-four, 32x32 cube face case discussed above will have
80    values of 0 or 16, depending on the quadrant the tile falls within the
81    subdomain.  {\em exch2\_myFace} contains the number of the
82    cubeface/subdomain of each tile, numbered 1-6 in the case of the standard
83    cube topology.  
84    
85    The arrays {\em exch2\_txglobalo} and {\em exch2\_txglobalo} are similar to
86    {\em exch2\_tbasex} and {\em exch2\_tbasey}, but locate the tiles within
87    the global address space, similar to that used by global files.  
88    
89    The arrays {\em exch2\_isWedge}, {\em exch2\_isEedge}, {\em exch2\_isSedge},
90    and {\em exch2\_isNedge} are set to 1 if the indexed tile lies on the edge
91    of a subdomain, 0 if not.  The values are used within the topology generator
92    to determine the orientation of neighboring tiles and to indicate whether
93    a tile lies on the corner of a subdomain.  The latter case indicates
94    special exchange and numerical handling for the singularities at the eight
95    corners of the cube.  {\em exch2\_isNedge} contains a count of how many
96    neighboring tiles each tile has, and is used for setting bounds for looping
97    over neighboring tiles.  {\em exch2\_tProc} holds the process rank of each tile,
98    and is used in interprocess communication.
99    
100  \subsubsection{Two-Dimensional Arrays}  \subsubsection{Two-Dimensional Arrays}
101    
102    The following arrays are all of size {\em MAX\_NEIGHBOURS}x{\em NTILES} and
103    describe the orientations between the the tiles.
104    
105    The array {\em exch2\_neighbourId(a,T)} holds the tile number $T_{n}$ for each tile
106    {\em T}'s neighbor tile {\em a}, and {\em exch2\_opposingSend\_record(a,T)} holds
107    the index c in {\em exch2\_neighbourId(b,$T_{n}$)} that holds the tile number T.
108    In other words,
109    
110    \begin{verbatim}  
111    exch2_neighbourId( exch2_opposingSend_record(a,T), exch2_neighbourId(a,T) ) = T
112    \end{verbatim}
113    
114    {\em exch2\_neighbourId(exch2\_opposingSend\_record(a,T),exch2\_neighbourId(a,T))=T}.
115    This is to provide a backreference from the neighbor tiles.
116    
117    
118  //  //
119    
120  \begin{verbatim}  \begin{verbatim}
121  C      NTILES            :: Number of tiles in this topology  
122  C      MAX_NEIGHBOURS    :: Maximum number of neighbours any tile has.  
 C      exch2_domain_nxt  :: Total domain length in tiles.  
 C      exch2_domain_nyt  :: Maximum domain height in tiles.  
 C      exch2_tnx         :: Size in X for each tile.                    
 C      exch2_tny         :: Size in Y for each tile.                    
 C      exch2_tbasex      :: Tile offset in X within its sub-domain (cube face)  
 C      exch2_tbasey      :: Tile offset in Y within its sub-domain (cube face)  
 C      exch2_tglobalxlo  :: Tile base X index within global index space.  
 C      exch2_tglobalylo  :: Tile base Y index within global index space.  
 C      exch2_isWedge     :: 0 if West not at domain edge, 1 if it is.    
 C      exch2_isNedge     :: 0 if North not at domain edge, 1 if it is.    
 C      exch2_isEedge     :: 0 if East not at domain edge, 1 if it is.    
 C      exch2_isSedge     :: 0 if South not at domain edge, 1 if it is.    
 C      exch2_myFace      :: Cube face number used for I/O.                
 C      exch2_nNeighbours :: Tile neighbour entries count.                
 C      exch2_tProc       :: Rank of process owning tile                  
 C                        :: (filled at run time).                        
123  C      exch2_neighbourId :: Tile number for each neighbour entry.          C      exch2_neighbourId :: Tile number for each neighbour entry.        
124  C      exch2_opposingSend_record :: Record for entry in target tile send  C      exch2_opposingSend_record :: Record for entry in target tile send
125  C                                :: list that has this tile and face      C                                :: list that has this tile and face    

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

  ViewVC Help
Powered by ViewVC 1.1.22