1 | CBOP
|
---|
2 | C !ROUTINE: SIZE.h
|
---|
3 | C !INTERFACE:
|
---|
4 | C include SIZE.h
|
---|
5 | C !DESCRIPTION: \bv
|
---|
6 | C *==========================================================*
|
---|
7 | C | SIZE.h Declare size of underlying computational grid.
|
---|
8 | C *==========================================================*
|
---|
9 | C | The design here supports a three-dimensional model grid
|
---|
10 | C | with indices I,J and K. The three-dimensional domain
|
---|
11 | C | is comprised of nPx*nSx blocks (or tiles) of size sNx
|
---|
12 | C | along the first (left-most index) axis, nPy*nSy blocks
|
---|
13 | C | of size sNy along the second axis and one block of size
|
---|
14 | C | Nr along the vertical (third) axis.
|
---|
15 | C | Blocks/tiles have overlap regions of size OLx and OLy
|
---|
16 | C | along the dimensions that are subdivided.
|
---|
17 | C *==========================================================*
|
---|
18 | C \ev
|
---|
19 | C
|
---|
20 | C Voodoo numbers controlling data layout:
|
---|
21 | C sNx :: Number of X points in tile.
|
---|
22 | C sNy :: Number of Y points in tile.
|
---|
23 | C OLx :: Tile overlap extent in X.
|
---|
24 | C OLy :: Tile overlap extent in Y.
|
---|
25 | C nSx :: Number of tiles per process in X.
|
---|
26 | C nSy :: Number of tiles per process in Y.
|
---|
27 | C nPx :: Number of processes to use in X.
|
---|
28 | C nPy :: Number of processes to use in Y.
|
---|
29 | C Nx :: Number of points in X for the full domain.
|
---|
30 | C Ny :: Number of points in Y for the full domain.
|
---|
31 | C Nr :: Number of points in vertical direction.
|
---|
32 | CEOP
|
---|
33 | INTEGER sNx
|
---|
34 | INTEGER sNy
|
---|
35 | INTEGER OLx
|
---|
36 | INTEGER OLy
|
---|
37 | INTEGER nSx
|
---|
38 | INTEGER nSy
|
---|
39 | INTEGER nPx
|
---|
40 | INTEGER nPy
|
---|
41 | INTEGER Nx
|
---|
42 | INTEGER Ny
|
---|
43 | INTEGER Nr
|
---|
44 | PARAMETER (
|
---|
45 | & sNx = 10,
|
---|
46 | & sNy = 10,
|
---|
47 | & OLx = 3,
|
---|
48 | & OLy = 3,
|
---|
49 | & nSx = 1,
|
---|
50 | & nSy = 1,
|
---|
51 | & nPx = 2,
|
---|
52 | & nPy = 4,
|
---|
53 | & Nx = sNx*nSx*nPx,
|
---|
54 | & Ny = sNy*nSy*nPy,
|
---|
55 | & Nr = 30)
|
---|
56 |
|
---|
57 | C MAX_OLX :: Set to the maximum overlap region size of any array
|
---|
58 | C MAX_OLY that will be exchanged. Controls the sizing of exch
|
---|
59 | C routine buffers.
|
---|
60 | INTEGER MAX_OLX
|
---|
61 | INTEGER MAX_OLY
|
---|
62 | PARAMETER ( MAX_OLX = OLx,
|
---|
63 | & MAX_OLY = OLy )
|
---|
64 |
|
---|