Warning, /verification/global_ocean.cs32x15/code/SIZE.h_mpi is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit 03318334 on 2018-06-27 04:27:30 UTC
4b7f67a250 Jean*0001 CBOP
0002 C !ROUTINE: SIZE.h
0003 C !INTERFACE:
0004 C include SIZE.h
0005 C !DESCRIPTION: \bv
0006 C *==========================================================*
03318334e8 Jean*0007 C | SIZE.h Declare size of underlying computational grid.
4b7f67a250 Jean*0008 C *==========================================================*
03318334e8 Jean*0009 C | The design here supports a three-dimensional model grid
0010 C | with indices I,J and K. The three-dimensional domain
0011 C | is comprised of nPx*nSx blocks (or tiles) of size sNx
0012 C | along the first (left-most index) axis, nPy*nSy blocks
0013 C | of size sNy along the second axis and one block of size
0014 C | Nr along the vertical (third) axis.
0015 C | Blocks/tiles have overlap regions of size OLx and OLy
0016 C | along the dimensions that are subdivided.
4b7f67a250 Jean*0017 C *==========================================================*
0018 C \ev
03318334e8 Jean*0019 C
0020 C Voodoo numbers controlling data layout:
0021 C sNx :: Number of X points in tile.
0022 C sNy :: Number of Y points in tile.
0023 C OLx :: Tile overlap extent in X.
0024 C OLy :: Tile overlap extent in Y.
0025 C nSx :: Number of tiles per process in X.
0026 C nSy :: Number of tiles per process in Y.
0027 C nPx :: Number of processes to use in X.
0028 C nPy :: Number of processes to use in Y.
0029 C Nx :: Number of points in X for the full domain.
0030 C Ny :: Number of points in Y for the full domain.
0031 C Nr :: Number of points in vertical direction.
4b7f67a250 Jean*0032 CEOP
42370222fc Ed H*0033 INTEGER sNx
0034 INTEGER sNy
0035 INTEGER OLx
0036 INTEGER OLy
0037 INTEGER nSx
0038 INTEGER nSy
0039 INTEGER nPx
0040 INTEGER nPy
0041 INTEGER Nx
0042 INTEGER Ny
0043 INTEGER Nr
4b7f67a250 Jean*0044 C-- Note: the 4 test-experiments (input, input.thsice, input.viscA4 and
0045 C input.icedyn ) have different minimum Overlap-size requirement:
0046 C input & input.thsice : work with Olx=Oly=2 (= absolute minimum size) ;
0047 C input.viscA4 : needs at least Olx=Oly=3 (for biharmonic viscosity) ;
0048 C input.icedyn : needs at least Olx=Oly=4 (CS-grid multidimensional Advect.)
42370222fc Ed H*0049 PARAMETER (
0050 & sNx = 32,
7772844671 Jean*0051 & sNy = 16,
4b7f67a250 Jean*0052 & OLx = 4,
0053 & OLy = 4,
53442749b0 Jean*0054 & nSx = 3,
42370222fc Ed H*0055 & nSy = 1,
53442749b0 Jean*0056 & nPx = 4,
42370222fc Ed H*0057 & nPy = 1,
0058 & Nx = sNx*nSx*nPx,
0059 & Ny = sNy*nSy*nPy,
0060 & Nr = 15)
0061
7772844671 Jean*0062 C MAX_OLX :: Set to the maximum overlap region size of any array
42370222fc Ed H*0063 C MAX_OLY that will be exchanged. Controls the sizing of exch
7772844671 Jean*0064 C routine buffers.
42370222fc Ed H*0065 INTEGER MAX_OLX
0066 INTEGER MAX_OLY
0067 PARAMETER ( MAX_OLX = OLx,
0068 & MAX_OLY = OLy )
0069