/[MITgcm]/MITgcm/eesupp/inc/EEPARAMS.h
ViewVC logotype

Contents of /MITgcm/eesupp/inc/EEPARAMS.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (show annotations) (download)
Tue Sep 29 18:50:55 1998 UTC (25 years, 6 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint15, checkpoint17, checkpoint19, checkpoint18, checkpoint28, checkpoint20, checkpoint21, checkpoint22, checkpoint23, checkpoint24, checkpoint25, checkpoint27, checkpoint26, checkpoint16
Changes since 1.4: +24 -5 lines
File MIME type: text/plain
Changes for new exchange routines which do general tile <-> tile
connectivity, variable width overlap regions and provide
hooks for shared memory  and DMA protocols like Arctic, Memory Channel
etc..

1 C $Header: /u/gcmpack/models/MITgcmUV/eesupp/inc/EEPARAMS.h,v 1.4 1998/05/21 18:30:45 cnh Exp $
2 C
3 C /==========================================================\
4 C | EEPARAMS.h |
5 C |==========================================================|
6 C | Parameters for "execution environemnt". These are used |
7 C | by both the particular numerical model and the "execution|
8 C | environment" support routines. |
9 C \==========================================================/
10
11 C MAX_LEN_MBUF - Default message buffer max. size
12 C MAX_LEN_FNAM - Default file name max. size
13 C MAX_LEN_PREC - Default record length for reading "parameter" files
14 INTEGER MAX_LEN_MBUF
15 PARAMETER ( MAX_LEN_MBUF = 512 )
16 INTEGER MAX_LEN_FNAM
17 PARAMETER ( MAX_LEN_FNAM = 512 )
18 INTEGER MAX_LEN_PREC
19 PARAMETER ( MAX_LEN_PREC = 200 )
20
21 C SQUEEZE_RIGHT - Flag indicating right blank space removal
22 C from text field.
23 C SQUEEZE_LEFT - Flag indicating left blank space removal
24 C from text field.
25 C SQUEEZE_BOTH - Flag indicating left and right blank
26 C space removal from text field.
27 C PRINT_MAP_XY - Flag indicating to plot map as XY slices
28 C PRINT_MAP_XZ - Flag indicating to plot map as XZ slices
29 C PRINT_MAP_YZ - Flag indicating to plot map as YZ slices
30 C commentCharacter - Variable used in column 1 of parameter files to
31 C indicate comments.
32 C INDEX_I - Variable used to select an index label
33 C INDEX_J for formatted input parameters.
34 C INDEX_K
35 C INDEX_NONE
36 CHARACTER*(*) SQUEEZE_RIGHT
37 PARAMETER ( SQUEEZE_RIGHT = 'R' )
38 CHARACTER*(*) SQUEEZE_LEFT
39 PARAMETER ( SQUEEZE_LEFT = 'L' )
40 CHARACTER*(*) SQUEEZE_BOTH
41 PARAMETER ( SQUEEZE_BOTH = 'B' )
42 CHARACTER*(*) PRINT_MAP_XY
43 PARAMETER ( PRINT_MAP_XY = 'XY' )
44 CHARACTER*(*) PRINT_MAP_XZ
45 PARAMETER ( PRINT_MAP_XZ = 'XZ' )
46 CHARACTER*(*) PRINT_MAP_YZ
47 PARAMETER ( PRINT_MAP_YZ = 'YZ' )
48 CHARACTER*(*) commentCharacter
49 PARAMETER ( commentCharacter = '#' )
50 INTEGER INDEX_I
51 INTEGER INDEX_J
52 INTEGER INDEX_K
53 INTEGER INDEX_NONE
54 PARAMETER ( INDEX_I = 1,
55 & INDEX_J = 2,
56 & INDEX_K = 3,
57 & INDEX_NONE = 4 )
58
59
60 C EXCH_IGNORE_CORNERS - Flag to select ignoring or
61 C EXCH_UPDATE_CORNERS updating of corners during
62 C an edge exchange.
63 INTEGER EXCH_IGNORE_CORNERS
64 INTEGER EXCH_UPDATE_CORNERS
65 PARAMETER ( EXCH_IGNORE_CORNERS = 0,
66 & EXCH_UPDATE_CORNERS = 1 )
67
68 C FORWARD_SIMULATION
69 C REVERSE_SIMULATION
70 INTEGER FORWARD_SIMULATION
71 INTEGER REVERSE_SIMULATION
72 PARAMETER ( FORWARD_SIMULATION = 0,
73 & REVERSE_SIMULATION = 1 )
74
75
76 C Particularly weird and obscure voodoo numbers
77 C lShare - This wants to be the length in
78 C [148]-byte words of the size of
79 C the address "window" that is snooped
80 C on an SMP bus. By separating elements in
81 C the global sum buffer we can avoid generating
82 C extraneous invalidate traffic between
83 C processors. The length of this window is usually
84 C a cache line i.e. small O(64 bytes).
85 C The buffer arrays are usually short arrays
86 C and are declared REAL ARRA(lShare[148],LBUFF).
87 C Setting lShare[148] to 1 is like making these arrays
88 C one dimensional.
89 INTEGER cacheLineSize
90 INTEGER lShare1
91 INTEGER lShare4
92 INTEGER lShare8
93 PARAMETER ( cacheLineSize = 256 )
94 PARAMETER ( lShare1 = cacheLineSize )
95 PARAMETER ( lShare4 = cacheLineSize/4 )
96 PARAMETER ( lShare8 = cacheLineSize/8 )
97
98 C MAX_NO_THREADS - Maximum number of threads allowed.
99 C MAX_NO_PROCS - Maximum number of processes allowed.
100 C MAX_NO_BARRIERS - Maximum number of distinct thread "barriers"
101 INTEGER MAX_NO_THREADS
102 PARAMETER ( MAX_NO_THREADS = 32 )
103 INTEGER MAX_NO_PROCS
104 PARAMETER ( MAX_NO_PROCS = 128 )
105 INTEGER MAX_NO_BARRIERS
106 PARAMETER ( MAX_NO_BARRIERS = 1 )
107
108 C-- COMMON /EEPARAMS_L/ Execution environment public logical variables.
109 C eeBootError - Flag indicating error during multi-processing
110 C eeEndError initialisation/termination.
111 C fatalError - Flag used to indicate that the model is ended with
112 C an error
113 COMMON /EEPARAMS_L/ eeBootError, fatalError, eeEndError
114 LOGICAL eeBootError
115 LOGICAL eeEndError
116 LOGICAL fatalError
117
118 C-- COMMON /EPARAMS_I/ Execution environment public integer variables.
119 C errorMessageUnit - Fortran IO unit for error messages
120 C standardMessageUnit - Fortran IO unit for informational messages
121 C scrUnit1 - Scratch file 1 unit number
122 C scrUnit2 - Scratch file 2 unit number
123 C eeDataUnit - Unit number used for reading "execution environment" parameter file.
124 C modelDataUnit - Unit number for reading "model" parameter file.
125 C numberOfProcs - Number of processes computing in parallel
126 C pidIO - Id of process to use for I/O.
127 C myBxLo, myBxHi - Extents of domain in blocks in X and Y
128 C myByLo, myByHi that each threads is responsble for.
129 C myProcId - My own "process" id.
130 C myPx - My X coord on the proc. grid.
131 C myPy - My Y coord on the proc. grid.
132 C myXGlobalLo - My bottom-left (south-west) x-index
133 C global domain. The x-coordinate of this
134 C point in for example m or degrees is *not*
135 C specified here. A model needs to provide a
136 C mechanism for deducing that information if it
137 C is needed.
138 C myYGlobalLo - My bottom-left (south-west) y-index in
139 C global domain. The y-coordinate of this
140 C point in for example m or degrees is *not*
141 C specified here. A model needs to provide a
142 C mechanism for deducing that information if it
143 C is needed.
144 C nThreads - No. of threads
145 C nTx - No. of threads in X
146 C nTy - No. of threads in Y
147 C This assumes a simple cartesian
148 C gridding of the threads which is not required elsewhere
149 C but that makes it easier.
150 C ioErrorCount - IO Error Counter. Set to zero initially and increased
151 C by one every time an IO error occurs.
152 COMMON /EEPARAMS_I/ errorMessageUnit, standardMessageUnit,
153 & scrUnit1, scrUnit2, eeDataUnit, modelDataUnit,
154 & numberOfProcs, pidIO, myProcId,
155 & myPx, myPy, myXGlobalLo, myYGlobalLo, nThreads,
156 & myBxLo, myBxHi, myByLo, myByHi,
157 & nTx, nTy, ioErrorCount
158 INTEGER eeDataUnit
159 INTEGER errorMessageUnit
160 INTEGER ioErrorCount(MAX_NO_THREADS)
161 INTEGER modelDataUnit
162 INTEGER myBxLo(MAX_NO_THREADS)
163 INTEGER myBxHi(MAX_NO_THREADS)
164 INTEGER myByLo(MAX_NO_THREADS)
165 INTEGER myByHi(MAX_NO_THREADS)
166 INTEGER myProcId
167 INTEGER myPx
168 INTEGER myPy
169 INTEGER myXGlobalLo
170 INTEGER myYGlobalLo
171 INTEGER nThreads
172 INTEGER nTx
173 INTEGER nTy
174 INTEGER numberOfProcs
175 INTEGER pidIO
176 INTEGER scrUnit1
177 INTEGER scrUnit2
178 INTEGER standardMessageUnit

  ViewVC Help
Powered by ViewVC 1.1.22