1 |
C $Header: /u/gcmpack/MITgcm/verification/global_ocean.cs32x15/code_ad/SIZE.h_mpi,v 1.1 2009/05/30 16:35:31 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
CBOP |
5 |
C !ROUTINE: SIZE.h |
6 |
C !INTERFACE: |
7 |
C include SIZE.h |
8 |
C !DESCRIPTION: \bv |
9 |
C *==========================================================* |
10 |
C | SIZE.h Declare size of underlying computational grid. |
11 |
C *==========================================================* |
12 |
C | The design here support a three-dimensional model grid |
13 |
C | with indices I,J and K. The three-dimensional domain |
14 |
C | is comprised of nPx*nSx blocks of size sNx along one axis |
15 |
C | nPy*nSy blocks of size sNy along another axis and one |
16 |
C | block of size Nz along the final axis. |
17 |
C | Blocks have overlap regions of size OLx and OLy along the |
18 |
C | dimensions that are subdivided. |
19 |
C *==========================================================* |
20 |
C \ev |
21 |
CEOP |
22 |
C Voodoo numbers controlling data layout. |
23 |
C sNx :: No. X points in sub-grid. |
24 |
C sNy :: No. Y points in sub-grid. |
25 |
C OLx :: Overlap extent in X. |
26 |
C OLy :: Overlat extent in Y. |
27 |
C nSx :: No. sub-grids in X. |
28 |
C nSy :: No. sub-grids in Y. |
29 |
C nPx :: No. of processes to use in X. |
30 |
C nPy :: No. of processes to use in Y. |
31 |
C Nx :: No. points in X for the total domain. |
32 |
C Ny :: No. points in Y for the total domain. |
33 |
C Nr :: No. points in Z for full process domain. |
34 |
INTEGER sNx |
35 |
INTEGER sNy |
36 |
INTEGER OLx |
37 |
INTEGER OLy |
38 |
INTEGER nSx |
39 |
INTEGER nSy |
40 |
INTEGER nPx |
41 |
INTEGER nPy |
42 |
INTEGER Nx |
43 |
INTEGER Ny |
44 |
INTEGER Nr |
45 |
C-- Note: the 4 test-experiments (input, input.thsice, input.viscA4 and |
46 |
C input.icedyn ) have different minimum Overlap-size requirement: |
47 |
C input & input.thsice : work with Olx=Oly=2 (= absolute minimum size) ; |
48 |
C input.viscA4 : needs at least Olx=Oly=3 (for biharmonic viscosity) ; |
49 |
C input.icedyn : needs at least Olx=Oly=4 (CS-grid multidimensional Advect.) |
50 |
PARAMETER ( |
51 |
& sNx = 32, |
52 |
& sNy = 16, |
53 |
& OLx = 4, |
54 |
& OLy = 4, |
55 |
& nSx = 3, |
56 |
& nSy = 1, |
57 |
& nPx = 4, |
58 |
& nPy = 1, |
59 |
& Nx = sNx*nSx*nPx, |
60 |
& Ny = sNy*nSy*nPy, |
61 |
& Nr = 15) |
62 |
|
63 |
C MAX_OLX :: Set to the maximum overlap region size of any array |
64 |
C MAX_OLY that will be exchanged. Controls the sizing of exch |
65 |
C routine buffers. |
66 |
INTEGER MAX_OLX |
67 |
INTEGER MAX_OLY |
68 |
PARAMETER ( MAX_OLX = OLx, |
69 |
& MAX_OLY = OLy ) |
70 |
|
71 |
INTEGER nobcs |
72 |
PARAMETER ( nobcs = 4 ) |