1 |
C $Header: /u/gcmpack/MITgcm/utils/exch2/code-mods/s192t_8x4/W2_EXCH2_TOPOLOGY.h,v 1.1 2008/08/01 21:20:35 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
C *** THIS FILE IS AUTOMATICALLY GENERATED *** |
5 |
C--- Tiling topology data structures header file |
6 |
C NTILES :: Number of tiles in this topology |
7 |
C MAX_NEIGHBOURS :: Maximum number of neighbours any tile has. |
8 |
C exch2_domain_nxt :: Total domain length in tiles. |
9 |
C exch2_domain_nyt :: Maximum domain height in tiles. |
10 |
C exch2_global_Nx :: Global-file domain length. |
11 |
C exch2_global_Ny :: Global-file domain height. |
12 |
C exch2_tNx :: Size in X for each tile. |
13 |
C exch2_tNy :: Size in Y for each tile. |
14 |
C exch2_tBasex :: Tile offset in X within its sub-domain (cube face) |
15 |
C exch2_tBasey :: Tile offset in Y within its sub-domain (cube face) |
16 |
C exch2_txGlobalo :: Tile base X index within global index space. |
17 |
C exch2_tyGlobalo :: Tile base Y index within global index space. |
18 |
C exch2_isWedge :: 1 if West is at domain edge, 0 if not. |
19 |
C exch2_isNedge :: 1 if North is at domain edge, 0 if not. |
20 |
C exch2_isEedge :: 1 if East is at domain edge, 0 if not. |
21 |
C exch2_isSedge :: 1 if South is at domain edge, 0 if not. |
22 |
C exch2_myFace :: Face number for each tile (used for I/O). |
23 |
C exch2_mydNx :: Face size in X for each tile (for I/O). |
24 |
C exch2_mydNy :: Face size in Y for each tile (for I/O). |
25 |
C exch2_tProc :: Rank of process owning tile (filled at run time). |
26 |
C exch2_nNeighbours :: Tile neighbour entries count. |
27 |
C exch2_neighbourId :: Tile number for each neighbour entry. |
28 |
C exch2_opposingSend:: Neighbour entry in target tile send |
29 |
C :: which has this tile and neighbour as its target. |
30 |
C exch2_pij(:,n,t) :: Matrix which applies to target-tile indices to get |
31 |
C :: source-tile "t" indices, for neighbour entry "n". |
32 |
C exch2_oi(n,t) :: Source-tile "t" X index offset in target |
33 |
C :: to source connection (neighbour entry "n"). |
34 |
C exch2_oj(n,t) :: Source-tile "t" Y index offset in target |
35 |
C :: to source connection (neighbour entry "n"). |
36 |
INTEGER NTILES |
37 |
INTEGER MAX_NEIGHBOURS |
38 |
INTEGER exch2_domain_nyt |
39 |
INTEGER exch2_domain_nxt |
40 |
INTEGER exch2_global_Nx |
41 |
INTEGER exch2_global_Ny |
42 |
PARAMETER ( NTILES = 192) |
43 |
PARAMETER ( MAX_NEIGHBOURS = 5) |
44 |
PARAMETER ( exch2_domain_nxt=24) |
45 |
PARAMETER ( exch2_domain_nyt=8) |
46 |
PARAMETER ( exch2_global_Nx = 192) |
47 |
PARAMETER ( exch2_global_Ny = 32) |
48 |
INTEGER exch2_tNx(NTILES) |
49 |
INTEGER exch2_tNy(NTILES) |
50 |
INTEGER exch2_tBasex(NTILES) |
51 |
INTEGER exch2_tBasey(NTILES) |
52 |
INTEGER exch2_txGlobalo(NTILES) |
53 |
INTEGER exch2_tyGlobalo(NTILES) |
54 |
INTEGER exch2_isWedge(NTILES) |
55 |
INTEGER exch2_isNedge(NTILES) |
56 |
INTEGER exch2_isEedge(NTILES) |
57 |
INTEGER exch2_isSedge(NTILES) |
58 |
INTEGER exch2_myFace(NTILES) |
59 |
INTEGER exch2_mydNx(NTILES) |
60 |
INTEGER exch2_mydNy(NTILES) |
61 |
INTEGER exch2_tProc(NTILES) |
62 |
INTEGER exch2_nNeighbours(NTILES) |
63 |
INTEGER exch2_neighbourId(MAX_NEIGHBOURS,NTILES) |
64 |
INTEGER exch2_opposingSend(MAX_NEIGHBOURS,NTILES) |
65 |
INTEGER exch2_pij(4,MAX_NEIGHBOURS,NTILES) |
66 |
INTEGER exch2_oi(MAX_NEIGHBOURS,NTILES) |
67 |
INTEGER exch2_oj(MAX_NEIGHBOURS,NTILES) |
68 |
|
69 |
COMMON /W2_EXCH2_TOPO_I/ |
70 |
& exch2_tNx, exch2_tNy, |
71 |
& exch2_tBasex, exch2_tBasey, |
72 |
& exch2_txGlobalo,exch2_tyGlobalo, |
73 |
& exch2_isWedge, exch2_isNedge, |
74 |
& exch2_isEedge, exch2_isSedge, |
75 |
& exch2_myFace, exch2_mydNx, exch2_mydNy, |
76 |
& exch2_tProc, |
77 |
& exch2_nNeighbours, exch2_neighbourId, |
78 |
& exch2_opposingSend, |
79 |
& exch2_pij, |
80 |
& exch2_oi, exch2_oj |
81 |
|
82 |
C--- Exchange execution loop data structures |
83 |
C exch2_iLo,iHi(n,t) :: X-index range of this tile "t" halo-region |
84 |
C :: to be updated with neighbour entry "n". |
85 |
C exch2_jLo,jHi(n,t) :: Y-index range of this tile "t" halo-region |
86 |
C :: to be updated with neighbour entry "n". |
87 |
INTEGER exch2_iLo(MAX_NEIGHBOURS,NTILES) |
88 |
INTEGER exch2_iHi(MAX_NEIGHBOURS,NTILES) |
89 |
INTEGER exch2_jLo(MAX_NEIGHBOURS,NTILES) |
90 |
INTEGER exch2_jHi(MAX_NEIGHBOURS,NTILES) |
91 |
COMMON /W2_EXCH2_HALO_SPEC/ |
92 |
& exch2_iLo, exch2_iHi, |
93 |
& exch2_jLo, exch2_jHi |
94 |
|