9 |
C !DESCRIPTION: |
C !DESCRIPTION: |
10 |
C *==========================================================* |
C *==========================================================* |
11 |
C | W2_EXCH2_PARAMS.h |
C | W2_EXCH2_PARAMS.h |
12 |
C | o Header file defining Parameters for WRAPPER2 topology |
C | o Header file defining WRAPPER2-EXCH2 topology parameters |
13 |
C *==========================================================* |
C *==========================================================* |
14 |
CEOP |
CEOP |
15 |
|
|
16 |
C W2_ioBufferSize :: Maximum size of Single-CPU IO buffer |
C-- COMMON /W2_EXCH2_PARM_I/ Integer valued parameters used by W2-EXCH2 |
17 |
INTEGER W2_ioBufferSize |
C preDefTopol :: pre-defined Topology selector: |
18 |
PARAMETER( W2_ioBufferSize = exch2_global_Nx*exch2_global_Ny ) |
C :: = 0 : topology defined from processing "data.exch2"; |
19 |
|
C :: = 1 : simple, single facet topology; |
20 |
|
C :: = 2 : customized topology (w2_set_myown_facets) |
21 |
|
C :: = 3 : 6-face Cube (3 face-dims: nRed, nGreen, nBlue). |
22 |
|
C nFacets :: Number of facets (or domains) in this topology |
23 |
|
C facet_dims :: facet pair of dimensions (n1x,n1y, n2x,n2y, ...) |
24 |
|
C nTiles :: Number of tiles in this topology |
25 |
|
C nBlankTiles :: Number of "Blank-Tiles" |
26 |
|
C blankList :: List of "Blank-Tiles" (non active) |
27 |
|
C-- |
28 |
|
C W2_mapIO :: select option for global-IO mapping: |
29 |
|
C =-1 :: old format, put facets 1 after the other in the X dir.; |
30 |
|
C :: this is not necessary "compact". |
31 |
|
C = 1 :: compact format, 1 facet after the other (mostly in Y dir.) |
32 |
|
C :: but needs to fold some facet (domain) if too large |
33 |
|
C = 0 :: compact format (= 1 long line), one facet after the other. |
34 |
|
C-- |
35 |
|
C W2_oUnit :: output fortran Unit for printing Std messages |
36 |
|
C W2_printMsg :: select option for information messages printing |
37 |
|
C < 0 :: open and print to "w2_tile_topology" log file |
38 |
|
C = 0 :: print the minimun, to StdOut |
39 |
|
C = 1 :: no duplicated print from different processes (only Master) |
40 |
|
C = 2 :: all processes do print (used to check). |
41 |
|
INTEGER preDefTopol |
42 |
|
INTEGER nFacets |
43 |
|
INTEGER facet_dims(2*W2_maxNbFacets) |
44 |
|
INTEGER nTiles |
45 |
|
INTEGER nBlankTiles |
46 |
|
INTEGER blankList(W2_maxNbTiles) |
47 |
|
INTEGER W2_mapIO |
48 |
|
INTEGER W2_oUnit, W2_printMsg |
49 |
|
COMMON /W2_EXCH2_PARM_I/ |
50 |
|
& preDefTopol, |
51 |
|
& nFacets, facet_dims, |
52 |
|
& nTiles, nBlankTiles, |
53 |
|
& blankList, |
54 |
|
& W2_mapIO, |
55 |
|
& W2_oUnit, W2_printMsg |
56 |
|
|
57 |
C W2 tile id variables (tile ids are no longer a function of |
C-- COMMON /W2_EXCH2_BUILD_I/ Integer variables used to build topology |
58 |
C process and subgrid indicies). |
C facet_owns :: Range of tiles this facet "owns" |
59 |
C W2_myTileList :: list of tiles owned by this process |
C facet_pij \ :: |
60 |
C W2_mpi_myTileList :: same as W2_myTileList, but contains |
C facet_oi } :: indices correspondence matrix (facet_pij) & offsets: |
61 |
C information for all processes |
C facet_oj / :: |
62 |
INTEGER W2_myTileList(nSx), W2_mpi_myTileList(nPx*nPy,nSx) |
C-with: suffix "so" for indices of source facet j ; |
63 |
c INTEGER E2_MSGHANDLES(2,MAX_NEIGHBOURS, nSx) |
C suffix "tg" for indices of target facet jj= INT(facet_link(i,j)) |
64 |
COMMON /W2_EXCH2_PARAMS_I/ W2_myTileList, W2_mpi_myTileList |
C pij(:,i,j) : matrix which gives so indices when applied to tg indices |
65 |
|
C iso = pij(1)*itg + pij(2)*jtg + oi |
66 |
|
C jso = pij(3)*itg + pij(4)*jtg + oj |
67 |
|
C----- |
68 |
|
INTEGER facet_owns(2,W2_maxNbFacets) |
69 |
|
INTEGER facet_pij(4,4,W2_maxNbFacets) |
70 |
|
INTEGER facet_oi(4,W2_maxNbFacets) |
71 |
|
INTEGER facet_oj(4,W2_maxNbFacets) |
72 |
|
COMMON /W2_EXCH2_BUILD_I/ |
73 |
|
& facet_owns, |
74 |
|
& facet_pij, facet_oi, facet_oj |
75 |
|
|
76 |
CHARACTER W2_myCommFlag(MAX_NEIGHBOURS,nSx) |
C-- COMMON /W2_EXCH2_PARM_R/ Real*4 valued parameters used by W2-EXCH2 |
77 |
COMMON /W2_EXCH2_PARAMS_C/ W2_myCommFlag |
C-- topology defined from processing "data.exch2" (preDefTopol=0): |
78 |
|
C facet_link :: Face-Edge connectivity map: |
79 |
|
C facet_link(i,j)=XX.1 : face(j)-edge(i) (i=1,2,3,4 <==> N,S,E,W) |
80 |
|
C is connected to Northern edge of face "XX" ; similarly, |
81 |
|
C = XX.2 : to Southern.E, XX.3 = Eastern.E, XX.4 = Western.E of face "XX". |
82 |
|
Real*4 facet_link( 4, W2_maxNbFacets ) |
83 |
|
COMMON /W2_EXCH2_PARM_R/ facet_link |
84 |
|
|
85 |
C e2FillValue_RX :: filling value for null regions (face-corner halo regions) |
C-- COMMON /EXCH2_FILLVAL_RX/ real type filling vallue used by EXCH2 |
86 |
INTEGER e2BufrRecSize |
C e2FillValue_RX :: filling value for null regions (facet-corner |
87 |
PARAMETER ( |
C :: halo regions) |
|
& e2BufrRecSize = ( (sNx+2*OLx)*2*OLy+(sNy+2*OLy)*2*OLx)*Nr |
|
|
&) |
|
|
_RL E2BUFR1_RL( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_RL E2BUFR2_RL( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_RS E2BUFR1_RS( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_RS E2BUFR2_RS( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_R4 E2BUFR1_R4( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_R4 E2BUFR2_R4( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_R8 E2BUFR1_R8( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
|
_R8 E2BUFR2_R8( e2BufrRecSize, MAX_NEIGHBOURS, nSx, 2 ) |
|
88 |
_RL e2FillValue_RL |
_RL e2FillValue_RL |
89 |
_RS e2FillValue_RS |
_RS e2FillValue_RS |
90 |
_R4 e2FillValue_R4 |
_R4 e2FillValue_R4 |
91 |
_R8 e2FillValue_R8 |
_R8 e2FillValue_R8 |
92 |
COMMON /W2_EXCH2_BUF_RL/ E2BUFR1_RL, E2BUFR2_RL, e2FillValue_RL |
COMMON /EXCH2_FILLVAL_RL/ e2FillValue_RL |
93 |
COMMON /W2_EXCH2_BUF_RS/ E2BUFR1_RS, E2BUFR2_RS, e2FillValue_RS |
COMMON /EXCH2_FILLVAL_RS/ e2FillValue_RS |
94 |
COMMON /W2_EXCH2_BUF_R4/ E2BUFR1_R4, E2BUFR2_R4, e2FillValue_R4 |
COMMON /EXCH2_FILLVAL_R4/ e2FillValue_R4 |
95 |
COMMON /W2_EXCH2_BUF_R8/ E2BUFR1_R8, E2BUFR2_R8, e2FillValue_R8 |
COMMON /EXCH2_FILLVAL_R8/ e2FillValue_R8 |
96 |
|
|
97 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |