1 
C $Header: /u/gcmpack/MITgcm/verification/global_ocean.cs32x15/code/SIZE.h_mpi,v 1.5 2009/05/28 23:19:30 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 threedimensional model grid 
13 
C  with indices I,J and K. The threedimensional 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 subgrid. 
24 
C sNy :: No. Y points in subgrid. 
25 
C OLx :: Overlap extent in X. 
26 
C OLy :: Overlat extent in Y. 
27 
C nSx :: No. subgrids in X. 
28 
C nSy :: No. subgrids 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 testexperiments (input, input.thsice, input.viscA4 and 
46 
C input.icedyn ) have different minimum Overlapsize 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 (CSgrid 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 ) 