C $Header: /u/gcmpack/MITgcm/pkg/exch2/W2_EXCH2_TOPOLOGY.h,v 1.4 2008/07/29 20:25:23 jmc Exp $
C $Name:  $

C      *** THIS FILE IS AUTOMATICALLY GENERATED ***
C---   Tiling topology data structures header file
C      NTILES            :: Number of tiles in this topology 
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_global_Nx   :: Global-file domain length.
C      exch2_global_Ny   :: Global-file domain height.
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_txGlobalo   :: Tile base X index within global index space.
C      exch2_tyGlobalo   :: Tile base Y index within global index space.
C      exch2_isWedge     :: 1 if West  is at domain edge, 0 if not.
C      exch2_isNedge     :: 1 if North is at domain edge, 0 if not.
C      exch2_isEedge     :: 1 if East  is at domain edge, 0 if not.
C      exch2_isSedge     :: 1 if South is at domain edge, 0 if not.
C      exch2_myFace      :: Face number for each tile (used for I/O).
C      exch2_mydNx       :: Face size in X for each tile (for I/O).
C      exch2_mydNy       :: Face size in Y for each tile (for I/O).
C      exch2_tProc       :: Rank of process owning tile (filled at run time).
C      exch2_nNeighbours :: Tile neighbour entries count.
C      exch2_neighbourId :: Tile number for each neighbour entry.
C      exch2_opposingSend:: Neighbour entry in target tile send 
C                        :: which has this tile and neighbour as its target.
C      exch2_pij(:,n,t)  :: Matrix which applies to target-tile indices to get
C                        :: source-tile "t" indices, for neighbour entry "n".
C      exch2_oi(n,t)     :: Source-tile "t" X index offset in target
C                        :: to source connection (neighbour entry "n").
C      exch2_oj(n,t)     :: Source-tile "t" Y index offset in target
C                        :: to source connection (neighbour entry "n").
       INTEGER NTILES
       INTEGER MAX_NEIGHBOURS
       INTEGER exch2_domain_nyt
       INTEGER exch2_domain_nxt
       INTEGER exch2_global_Nx
       INTEGER exch2_global_Ny
       PARAMETER ( NTILES = 6)
       PARAMETER ( MAX_NEIGHBOURS = 4)
       PARAMETER ( exch2_domain_nxt=6)
       PARAMETER ( exch2_domain_nyt=1)
       PARAMETER ( exch2_global_Nx = 192)
       PARAMETER ( exch2_global_Ny = 32)
       INTEGER exch2_tNx(NTILES)
       INTEGER exch2_tNy(NTILES)
       INTEGER exch2_tBasex(NTILES)
       INTEGER exch2_tBasey(NTILES)
       INTEGER exch2_txGlobalo(NTILES)
       INTEGER exch2_tyGlobalo(NTILES)
       INTEGER exch2_isWedge(NTILES)
       INTEGER exch2_isNedge(NTILES)
       INTEGER exch2_isEedge(NTILES)
       INTEGER exch2_isSedge(NTILES)
       INTEGER exch2_myFace(NTILES)
       INTEGER exch2_mydNx(NTILES)
       INTEGER exch2_mydNy(NTILES)
       INTEGER exch2_tProc(NTILES)
       INTEGER exch2_nNeighbours(NTILES)
       INTEGER exch2_neighbourId(MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_opposingSend(MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_pij(4,MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_oi(MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_oj(MAX_NEIGHBOURS,NTILES)

       COMMON /W2_EXCH2_TOPO_I/
     &        exch2_tNx, exch2_tNy,
     &        exch2_tBasex, exch2_tBasey,
     &        exch2_txGlobalo,exch2_tyGlobalo,
     &        exch2_isWedge, exch2_isNedge,
     &        exch2_isEedge, exch2_isSedge,
     &        exch2_myFace, exch2_mydNx, exch2_mydNy,
     &        exch2_tProc,
     &        exch2_nNeighbours, exch2_neighbourId,
     &        exch2_opposingSend,
     &        exch2_pij,
     &        exch2_oi, exch2_oj

C---   Exchange execution loop data structures
C      exch2_iLo,iHi(n,t) :: X-index range of this tile "t" halo-region
C                         :: to be updated with neighbour entry "n".
C      exch2_jLo,jHi(n,t) :: Y-index range of this tile "t" halo-region
C                         :: to be updated with neighbour entry "n".
       INTEGER exch2_iLo(MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_iHi(MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_jLo(MAX_NEIGHBOURS,NTILES)
       INTEGER exch2_jHi(MAX_NEIGHBOURS,NTILES)
       COMMON /W2_EXCH2_HALO_SPEC/
     &        exch2_iLo, exch2_iHi,
     &        exch2_jLo, exch2_jHi