C $Header: /u/gcmpack/MITgcm/verification/global_ocean.cs32x15/code/SIZE.h,v 1.6 2009/05/28 23:19:29 jmc Exp $
C $Name: $
CBOP
C !ROUTINE: SIZE.h
C !INTERFACE:
C include SIZE.h
C !DESCRIPTION: \bv
C *==========================================================*
C | SIZE.h Declare size of underlying computational grid.
C *==========================================================*
C | The design here support a three-dimensional model grid
C | with indices I,J and K. The three-dimensional domain
C | is comprised of nPx*nSx blocks of size sNx along one axis
C | nPy*nSy blocks of size sNy along another axis and one
C | block of size Nz along the final axis.
C | Blocks have overlap regions of size OLx and OLy along the
C | dimensions that are subdivided.
C *==========================================================*
C \ev
CEOP
C Voodoo numbers controlling data layout.
C sNx :: No. X points in sub-grid.
C sNy :: No. Y points in sub-grid.
C OLx :: Overlap extent in X.
C OLy :: Overlat extent in Y.
C nSx :: No. sub-grids in X.
C nSy :: No. sub-grids in Y.
C nPx :: No. of processes to use in X.
C nPy :: No. of processes to use in Y.
C Nx :: No. points in X for the total domain.
C Ny :: No. points in Y for the total domain.
C Nr :: No. points in Z for full process domain.
INTEGER sNx
INTEGER sNy
INTEGER OLx
INTEGER OLy
INTEGER nSx
INTEGER nSy
INTEGER nPx
INTEGER nPy
INTEGER Nx
INTEGER Ny
INTEGER Nr
C-- Note: the 4 test-experiments (input, input.thsice, input.viscA4 and
C input.icedyn ) have different minimum Overlap-size requirement:
C input & input.thsice : work with Olx=Oly=2 (= absolute minimum size) ;
C input.viscA4 : needs at least Olx=Oly=3 (for biharmonic viscosity) ;
C input.icedyn : needs at least Olx=Oly=4 (CS-grid multidimensional Advect.)
PARAMETER (
& sNx = 32,
& sNy = 16,
& OLx = 4,
& OLy = 4,
& nSx = 12,
& nSy = 1,
& nPx = 1,
& nPy = 1,
& Nx = sNx*nSx*nPx,
& Ny = sNy*nSy*nPy,
& Nr = 15)
C MAX_OLX :: Set to the maximum overlap region size of any array
C MAX_OLY that will be exchanged. Controls the sizing of exch
C routine buffers.
INTEGER MAX_OLX
INTEGER MAX_OLY
PARAMETER ( MAX_OLX = OLx,
& MAX_OLY = OLy )