1 |
helen |
1.1 |
\begin{verbatim} |
2 |
|
|
1 C /==========================================================\ |
3 |
|
|
2 C | SIZE.h Declare size of underlying computational grid. | |
4 |
|
|
3 C |==========================================================| |
5 |
|
|
4 C | The design here support a three-dimensional model grid | |
6 |
|
|
5 C | with indices I,J and K. The three-dimensional domain | |
7 |
|
|
6 C | is comprised of nPx*nSx blocks of size sNx along one axis| |
8 |
|
|
7 C | nPy*nSy blocks of size sNy along another axis and one | |
9 |
|
|
8 C | block of size Nz along the final axis. | |
10 |
|
|
9 C | Blocks have overlap regions of size OLx and OLy along the| |
11 |
|
|
10 C | dimensions that are subdivided. | |
12 |
|
|
11 C \==========================================================/ |
13 |
|
|
12 C Voodoo numbers controlling data layout. |
14 |
|
|
13 C sNx - No. X points in sub-grid. |
15 |
|
|
14 C sNy - No. Y points in sub-grid. |
16 |
|
|
15 C OLx - Overlap extent in X. |
17 |
|
|
16 C OLy - Overlat extent in Y. |
18 |
|
|
17 C nSx - No. sub-grids in X. |
19 |
|
|
18 C nSy - No. sub-grids in Y. |
20 |
|
|
19 C nPx - No. of processes to use in X. |
21 |
|
|
20 C nPy - No. of processes to use in Y. |
22 |
|
|
21 C Nx - No. points in X for the total domain. |
23 |
|
|
22 C Ny - No. points in Y for the total domain. |
24 |
|
|
23 C Nr - No. points in Z for full process domain. |
25 |
|
|
24 INTEGER sNx |
26 |
|
|
25 INTEGER sNy |
27 |
|
|
26 INTEGER OLx |
28 |
|
|
27 INTEGER OLy |
29 |
|
|
28 INTEGER nSx |
30 |
|
|
29 INTEGER nSy |
31 |
|
|
30 INTEGER nPx |
32 |
|
|
31 INTEGER nPy |
33 |
|
|
32 INTEGER Nx |
34 |
|
|
33 INTEGER Ny |
35 |
|
|
34 INTEGER Nr |
36 |
|
|
35 PARAMETER ( |
37 |
|
|
36 & sNx = 64, |
38 |
|
|
37 & sNy = 64, |
39 |
|
|
38 & OLx = 3, |
40 |
|
|
39 & OLy = 3, |
41 |
|
|
40 & nSx = 1, |
42 |
|
|
41 & nSy = 1, |
43 |
|
|
42 & nPx = 1, |
44 |
|
|
43 & nPy = 1, |
45 |
|
|
44 & Nx = sNx*nSx*nPx, |
46 |
|
|
45 & Ny = sNy*nSy*nPy, |
47 |
|
|
46 & Nr = 20) |
48 |
|
|
|
49 |
|
|
47 C MAX_OLX - Set to the maximum overlap region size of any array |
50 |
|
|
48 C MAX_OLY that will be exchanged. Controls the sizing of exch |
51 |
|
|
49 C routine buufers. |
52 |
|
|
50 INTEGER MAX_OLX |
53 |
|
|
51 INTEGER MAX_OLY |
54 |
|
|
52 PARAMETER ( MAX_OLX = OLx, |
55 |
|
|
53 & MAX_OLY = OLy ) |
56 |
|
|
|
57 |
|
|
\end{verbatim} |