1 |
jmc |
1.6 |
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 |
dgoldberg |
1.1 |
C |
20 |
jmc |
1.6 |
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 |
dgoldberg |
1.1 |
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 |
dgoldberg |
1.2 |
& sNx = 3, |
46 |
dgoldberg |
1.5 |
& sNy = 200, |
47 |
dgoldberg |
1.1 |
& OLx = 3, |
48 |
|
|
& OLy = 3, |
49 |
|
|
& nSx = 1, |
50 |
|
|
& nSy = 1, |
51 |
|
|
& nPx = 1, |
52 |
|
|
& nPy = 1, |
53 |
|
|
& Nx = sNx*nSx*nPx, |
54 |
|
|
& Ny = sNy*nSy*nPy, |
55 |
dgoldberg |
1.5 |
& Nr = 90) |
56 |
dgoldberg |
1.1 |
|
57 |
jmc |
1.6 |
C MAX_OLX :: Set to the maximum overlap region size of any array |
58 |
dgoldberg |
1.1 |
C MAX_OLY that will be exchanged. Controls the sizing of exch |
59 |
jmc |
1.6 |
C routine buffers. |
60 |
dgoldberg |
1.1 |
INTEGER MAX_OLX |
61 |
|
|
INTEGER MAX_OLY |
62 |
|
|
PARAMETER ( MAX_OLX = OLx, |
63 |
|
|
& MAX_OLY = OLy ) |
64 |
|
|
|
65 |
jmc |
1.6 |
C for pkg/ctrl: |
66 |
dgoldberg |
1.1 |
INTEGER nobcs |
67 |
|
|
PARAMETER ( nobcs = 4 ) |
68 |
|
|
|