1 |
edhill |
1.3 |
C $Header: /u/gcmpack/MITgcm_contrib/eh3_spgr/hs94.cs-32x32x5/code_v2/W2_EXCH2_TOPOLOGY.h,v 1.2 2005/09/28 20:52:22 edhill Exp $ |
2 |
edhill |
1.1 |
C $Name: $ |
3 |
|
|
|
4 |
|
|
#include "W2_EXCH2_TSIZE.h" |
5 |
|
|
|
6 |
|
|
C Tiling topology data structures header file |
7 |
|
|
C |
8 |
|
|
C exch2_tnx :: Size in X for each tile. |
9 |
|
|
C exch2_tny :: Size in Y for each tile. |
10 |
|
|
C exch2_tbasex :: Tile X offset in its sub-domain (face) |
11 |
|
|
C exch2_tbasey :: Tile Y offset in its sub-domain (face) |
12 |
|
|
C exch2_tglobalxlo :: Tile base X index within global index space. |
13 |
|
|
C exch2_tglobalylo :: Tile base Y index within global index space. |
14 |
|
|
C exch2_isWedge :: 0 if West not at domain edge, 1 if it is. |
15 |
|
|
C exch2_isNedge :: 0 if North not at domain edge, 1 if it is. |
16 |
|
|
C exch2_isEedge :: 0 if East not at domain edge, 1 if it is. |
17 |
|
|
C exch2_isSedge :: 0 if South not at domain edge, 1 if it is. |
18 |
|
|
C exch2_myFace :: Cube face number used for I/O. |
19 |
|
|
C exch2_nNeighbours :: Tile neighbour entries count. |
20 |
|
|
C exch2_tProc :: Rank of process owning tile |
21 |
|
|
C . :: (filled at run time). |
22 |
|
|
C exch2_neighbourId :: Tile number for each neighbour entry. |
23 |
|
|
C exch2_opposingSend_record :: Record for entry in target tile send |
24 |
|
|
C . :: list that has this tile and face |
25 |
|
|
C . :: as its target. |
26 |
|
|
C exch2_pi :: X index row of target to source permutation |
27 |
|
|
C . :: matrix for each neighbour entry. |
28 |
|
|
C exch2_pj :: Y index row of target to source permutation |
29 |
|
|
C . :: matrix for each neighbour entry. |
30 |
|
|
C exch2_oi :: X index element of target to source |
31 |
|
|
C . :: offset vector for cell-centered quantities |
32 |
|
|
C . :: of each neighbor entry. |
33 |
|
|
C exch2_oj :: Y index element of target to source |
34 |
|
|
C . :: offset vector for cell-centered quantities |
35 |
|
|
C . :: of each neighbor entry. |
36 |
|
|
C exch2_oi_f :: X index element of target to source |
37 |
|
|
C . :: offset vector for face quantities |
38 |
|
|
C . :: of each neighbor entry. |
39 |
|
|
C exch2_oj_f :: Y index element of target to source |
40 |
|
|
C . :: offset vector for face quantities |
41 |
|
|
C . :: of each neighbor entry. |
42 |
|
|
|
43 |
|
|
INTEGER exch2_tnx(NTILES) |
44 |
|
|
INTEGER exch2_tny(NTILES) |
45 |
|
|
INTEGER exch2_tbasex(NTILES) |
46 |
|
|
INTEGER exch2_tbasey(NTILES) |
47 |
|
|
INTEGER exch2_txglobalo(NTILES) |
48 |
|
|
INTEGER exch2_tyglobalo(NTILES) |
49 |
|
|
INTEGER exch2_isWedge(NTILES) |
50 |
|
|
INTEGER exch2_isNedge(NTILES) |
51 |
|
|
INTEGER exch2_isEedge(NTILES) |
52 |
|
|
INTEGER exch2_isSedge(NTILES) |
53 |
|
|
INTEGER exch2_myFace(NTILES) |
54 |
|
|
INTEGER exch2_mydnx(NTILES) |
55 |
|
|
INTEGER exch2_mydny(NTILES) |
56 |
|
|
INTEGER exch2_nNeighbours(NTILES) |
57 |
|
|
INTEGER exch2_tProc(NTILES) |
58 |
|
|
INTEGER exch2_neighbourId(MAX_NEIGHBOURS,NTILES) |
59 |
|
|
INTEGER exch2_opposingSend_record(MAX_NEIGHBOURS,NTILES) |
60 |
|
|
INTEGER exch2_pi(2,MAX_NEIGHBOURS,NTILES) |
61 |
|
|
INTEGER exch2_pj(2,MAX_NEIGHBOURS,NTILES) |
62 |
|
|
INTEGER exch2_oi(MAX_NEIGHBOURS,NTILES) |
63 |
|
|
INTEGER exch2_oj(MAX_NEIGHBOURS,NTILES) |
64 |
|
|
INTEGER exch2_oi_f(MAX_NEIGHBOURS,NTILES) |
65 |
|
|
INTEGER exch2_oj_f(MAX_NEIGHBOURS,NTILES) |
66 |
|
|
|
67 |
|
|
C Exchange execution loop data structures |
68 |
|
|
INTEGER exch2_itlo_c(MAX_NEIGHBOURS,NTILES) |
69 |
|
|
INTEGER exch2_ithi_c(MAX_NEIGHBOURS,NTILES) |
70 |
|
|
INTEGER exch2_jtlo_c(MAX_NEIGHBOURS,NTILES) |
71 |
|
|
INTEGER exch2_jthi_c(MAX_NEIGHBOURS,NTILES) |
72 |
|
|
|
73 |
|
|
COMMON /W2_EXCH2_TOPO_I/ |
74 |
|
|
& exch2_tnx, exch2_tny, |
75 |
|
|
& exch2_tbasex,exch2_tbasey, |
76 |
|
|
& exch2_txglobalo,exch2_tyglobalo, |
77 |
|
|
& exch2_isWedge, exch2_isNedge, |
78 |
|
|
& exch2_isEedge, exch2_isSedge, |
79 |
|
|
& exch2_myFace, exch2_mydnx, exch2_mydny, |
80 |
|
|
& exch2_nNeighbours,exch2_neighbourId, |
81 |
|
|
& exch2_opposingSend_record, |
82 |
|
|
& exch2_tProc, |
83 |
|
|
& exch2_pi,exch2_pj, |
84 |
|
|
& exch2_oi,exch2_oj, |
85 |
|
|
& exch2_oi_f,exch2_oj_f |
86 |
|
|
|
87 |
|
|
COMMON /W2_EXCH2_HALO_SPEC/ |
88 |
|
|
& exch2_itlo_c, exch2_ithi_c, |
89 |
|
|
& exch2_jtlo_c, exch2_jthi_c |
90 |
|
|
|
91 |
edhill |
1.3 |
C ===== GEx ===== |
92 |
|
|
INTEGER GEx_affm(4,8) |
93 |
|
|
INTEGER GEx_n(GEX_NEDGE_MAX,GEX_NTILE_MAX) |
94 |
|
|
INTEGER GEx_i(3,GEX_NEDGE_MAX,GEX_NTILE_MAX) |
95 |
|
|
INTEGER GEx_j(3,GEX_NEDGE_MAX,GEX_NTILE_MAX) |
96 |
|
|
INTEGER GEx_ncor(4,GEX_NTILE_MAX) |
97 |
|
|
INTEGER GEx_cinfo(3,4,GEX_NCOR_MAX,GEX_NTILE_MAX) |
98 |
|
|
|
99 |
|
|
COMMON /W2_GEX_I/ |
100 |
|
|
& GEx_affm, GEx_n, GEx_i, GEx_j, GEx_ncor, GEx_cinfo |
101 |
|
|
|
102 |
edhill |
1.1 |
CEH3 ;;; Local Variables: *** |
103 |
|
|
CEH3 ;;; mode:fortran *** |
104 |
|
|
CEH3 ;;; End: *** |
105 |
|
|
|