/[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.33 - (show annotations) (download)
Mon Oct 28 15:49:48 2013 UTC (10 years, 7 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint64q, checkpoint64r
Changes since 1.32: +2 -2 lines
File MIME type: text/plain
Increasing MAX_NO_PROCS to 46800, the number of processes
needed to run llc_4320 with 72x72 tiles.

1 C $Header: /u/gcmpack/MITgcm/eesupp/inc/EEPARAMS.h,v 1.32 2013/04/25 06:12:09 dimitri Exp $
2 C $Name: $
3 CBOP
4 C !ROUTINE: EEPARAMS.h
5 C !INTERFACE:
6 C include "EEPARAMS.h"
7 C
8 C !DESCRIPTION:
9 C *==========================================================*
10 C | EEPARAMS.h |
11 C *==========================================================*
12 C | Parameters for "execution environemnt". These are used |
13 C | by both the particular numerical model and the execution |
14 C | environment support routines. |
15 C *==========================================================*
16 CEOP
17
18 C ======== EESIZE.h ========================================
19
20 C MAX_LEN_MBUF - Default message buffer max. size
21 C MAX_LEN_FNAM - Default file name max. size
22 C MAX_LEN_PREC - Default rec len for reading "parameter" files
23
24 INTEGER MAX_LEN_MBUF
25 PARAMETER ( MAX_LEN_MBUF = 512 )
26 INTEGER MAX_LEN_FNAM
27 PARAMETER ( MAX_LEN_FNAM = 512 )
28 INTEGER MAX_LEN_PREC
29 PARAMETER ( MAX_LEN_PREC = 200 )
30
31 C MAX_NO_THREADS - Maximum number of threads allowed.
32 C MAX_NO_PROCS - Maximum number of processes allowed.
33 C MAX_NO_BARRIERS - Maximum number of distinct thread "barriers"
34 INTEGER MAX_NO_THREADS
35 PARAMETER ( MAX_NO_THREADS = 4 )
36 INTEGER MAX_NO_PROCS
37 PARAMETER ( MAX_NO_PROCS = 46800 )
38 INTEGER MAX_NO_BARRIERS
39 PARAMETER ( MAX_NO_BARRIERS = 1 )
40
41 C Particularly weird and obscure voodoo numbers
42 C lShare - This wants to be the length in
43 C [148]-byte words of the size of
44 C the address "window" that is snooped
45 C on an SMP bus. By separating elements in
46 C the global sum buffer we can avoid generating
47 C extraneous invalidate traffic between
48 C processors. The length of this window is usually
49 C a cache line i.e. small O(64 bytes).
50 C The buffer arrays are usually short arrays
51 C and are declared REAL ARRA(lShare[148],LBUFF).
52 C Setting lShare[148] to 1 is like making these arrays
53 C one dimensional.
54 INTEGER cacheLineSize
55 INTEGER lShare1
56 INTEGER lShare4
57 INTEGER lShare8
58 PARAMETER ( cacheLineSize = 256 )
59 PARAMETER ( lShare1 = cacheLineSize )
60 PARAMETER ( lShare4 = cacheLineSize/4 )
61 PARAMETER ( lShare8 = cacheLineSize/8 )
62
63 INTEGER MAX_VGS
64 PARAMETER ( MAX_VGS = 8192 )
65
66 C ======== EESIZE.h ========================================
67
68 C Symbolic values
69 C precXXXX :: precision used for I/O
70 INTEGER precFloat32
71 PARAMETER ( precFloat32 = 32 )
72 INTEGER precFloat64
73 PARAMETER ( precFloat64 = 64 )
74
75 C Real-type constant for some frequently used simple number (0,1,2,1/2):
76 _RS zeroRS, oneRS, twoRS, halfRS
77 PARAMETER ( zeroRS = 0.0 _d 0 , oneRS = 1.0 _d 0 )
78 PARAMETER ( twoRS = 2.0 _d 0 , halfRS = 0.5 _d 0 )
79 _RL zeroRL, oneRL, twoRL, halfRL
80 PARAMETER ( zeroRL = 0.0 _d 0 , oneRL = 1.0 _d 0 )
81 PARAMETER ( twoRL = 2.0 _d 0 , halfRL = 0.5 _d 0 )
82
83 C UNSET_xxx :: Used to indicate variables that have not been given a value
84 Real*8 UNSET_FLOAT8
85 PARAMETER ( UNSET_FLOAT8 = 1.234567D5 )
86 Real*4 UNSET_FLOAT4
87 PARAMETER ( UNSET_FLOAT4 = 1.234567E5 )
88 _RL UNSET_RL
89 PARAMETER ( UNSET_RL = 1.234567D5 )
90 _RS UNSET_RS
91 PARAMETER ( UNSET_RS = 1.234567D5 )
92 INTEGER UNSET_I
93 PARAMETER ( UNSET_I = 123456789 )
94
95 C debLevX :: used to decide when to print debug messages
96 INTEGER debLevZero
97 INTEGER debLevA, debLevB, debLevC, debLevD, debLevE
98 PARAMETER ( debLevZero=0 )
99 PARAMETER ( debLevA=1 )
100 PARAMETER ( debLevB=2 )
101 PARAMETER ( debLevC=3 )
102 PARAMETER ( debLevD=4 )
103 PARAMETER ( debLevE=5 )
104
105 C SQUEEZE_RIGHT - Flag indicating right blank space removal
106 C from text field.
107 C SQUEEZE_LEFT - Flag indicating left blank space removal
108 C from text field.
109 C SQUEEZE_BOTH - Flag indicating left and right blank
110 C space removal from text field.
111 C PRINT_MAP_XY - Flag indicating to plot map as XY slices
112 C PRINT_MAP_XZ - Flag indicating to plot map as XZ slices
113 C PRINT_MAP_YZ - Flag indicating to plot map as YZ slices
114 C commentCharacter - Variable used in column 1 of parameter
115 C files to indicate comments.
116 C INDEX_I - Variable used to select an index label
117 C INDEX_J for formatted input parameters.
118 C INDEX_K
119 C INDEX_NONE
120 CHARACTER*(*) SQUEEZE_RIGHT
121 PARAMETER ( SQUEEZE_RIGHT = 'R' )
122 CHARACTER*(*) SQUEEZE_LEFT
123 PARAMETER ( SQUEEZE_LEFT = 'L' )
124 CHARACTER*(*) SQUEEZE_BOTH
125 PARAMETER ( SQUEEZE_BOTH = 'B' )
126 CHARACTER*(*) PRINT_MAP_XY
127 PARAMETER ( PRINT_MAP_XY = 'XY' )
128 CHARACTER*(*) PRINT_MAP_XZ
129 PARAMETER ( PRINT_MAP_XZ = 'XZ' )
130 CHARACTER*(*) PRINT_MAP_YZ
131 PARAMETER ( PRINT_MAP_YZ = 'YZ' )
132 CHARACTER*(*) commentCharacter
133 PARAMETER ( commentCharacter = '#' )
134 INTEGER INDEX_I
135 INTEGER INDEX_J
136 INTEGER INDEX_K
137 INTEGER INDEX_NONE
138 PARAMETER ( INDEX_I = 1,
139 & INDEX_J = 2,
140 & INDEX_K = 3,
141 & INDEX_NONE = 4 )
142
143 C EXCH_IGNORE_CORNERS - Flag to select ignoring or
144 C EXCH_UPDATE_CORNERS updating of corners during
145 C an edge exchange.
146 INTEGER EXCH_IGNORE_CORNERS
147 INTEGER EXCH_UPDATE_CORNERS
148 PARAMETER ( EXCH_IGNORE_CORNERS = 0,
149 & EXCH_UPDATE_CORNERS = 1 )
150
151 C FORWARD_SIMULATION
152 C REVERSE_SIMULATION
153 C TANGENT_SIMULATION
154 INTEGER FORWARD_SIMULATION
155 INTEGER REVERSE_SIMULATION
156 INTEGER TANGENT_SIMULATION
157 PARAMETER ( FORWARD_SIMULATION = 0,
158 & REVERSE_SIMULATION = 1,
159 & TANGENT_SIMULATION = 2 )
160
161 C-- COMMON /EEPARAMS_L/ Execution environment public logical variables.
162 C eeBootError :: Flags indicating error during multi-processing
163 C eeEndError :: initialisation and termination.
164 C fatalError :: Flag used to indicate that the model is ended with an error
165 C debugMode :: controls printing of debug msg (sequence of S/R calls).
166 C useSingleCpuIO :: When useSingleCpuIO is set, MDS_WRITE_FIELD outputs from
167 C master MPI process only. -- NOTE: read from main parameter
168 C file "data" and not set until call to INI_PARMS.
169 C printMapIncludesZeros :: Flag that controls whether character constant
170 C map code ignores exact zero values.
171 C useCubedSphereExchange :: use Cubed-Sphere topology domain.
172 C useCoupler :: use Coupler for a multi-components set-up.
173 C useNEST_PARENT :: use Parent Nesting interface (pkg/nest_parent)
174 C useNEST_CHILD :: use Child Nesting interface (pkg/nest_child)
175 C useOASIS :: use OASIS-coupler for a multi-components set-up.
176 COMMON /EEPARAMS_L/
177 c & eeBootError, fatalError, eeEndError,
178 & eeBootError, eeEndError, fatalError, debugMode,
179 & useSingleCpuIO, printMapIncludesZeros,
180 & useCubedSphereExchange, useCoupler,
181 & useNEST_PARENT, useNEST_CHILD, useOASIS,
182 & useSETRLSTK, useSIGREG
183 LOGICAL eeBootError
184 LOGICAL eeEndError
185 LOGICAL fatalError
186 LOGICAL debugMode
187 LOGICAL useSingleCpuIO
188 LOGICAL printMapIncludesZeros
189 LOGICAL useCubedSphereExchange
190 LOGICAL useCoupler
191 LOGICAL useNEST_PARENT
192 LOGICAL useNEST_CHILD
193 LOGICAL useOASIS
194 LOGICAL useSETRLSTK
195 LOGICAL useSIGREG
196
197 C-- COMMON /EPARAMS_I/ Execution environment public integer variables.
198 C errorMessageUnit - Fortran IO unit for error messages
199 C standardMessageUnit - Fortran IO unit for informational messages
200 C maxLengthPrt1D :: maximum length for printing (to Std-Msg-Unit) 1-D array
201 C scrUnit1 - Scratch file 1 unit number
202 C scrUnit2 - Scratch file 2 unit number
203 C eeDataUnit - Unit # for reading "execution environment" parameter file.
204 C modelDataUnit - Unit number for reading "model" parameter file.
205 C numberOfProcs - Number of processes computing in parallel
206 C pidIO - Id of process to use for I/O.
207 C myBxLo, myBxHi - Extents of domain in blocks in X and Y
208 C myByLo, myByHi that each threads is responsble for.
209 C myProcId - My own "process" id.
210 C myPx - My X coord on the proc. grid.
211 C myPy - My Y coord on the proc. grid.
212 C myXGlobalLo - My bottom-left (south-west) x-index
213 C global domain. The x-coordinate of this
214 C point in for example m or degrees is *not*
215 C specified here. A model needs to provide a
216 C mechanism for deducing that information if it
217 C is needed.
218 C myYGlobalLo - My bottom-left (south-west) y-index in
219 C global domain. The y-coordinate of this
220 C point in for example m or degrees is *not*
221 C specified here. A model needs to provide a
222 C mechanism for deducing that information if it
223 C is needed.
224 C nThreads - No. of threads
225 C nTx - No. of threads in X
226 C nTy - No. of threads in Y
227 C This assumes a simple cartesian
228 C gridding of the threads which is not required elsewhere
229 C but that makes it easier.
230 C ioErrorCount - IO Error Counter. Set to zero initially and increased
231 C by one every time an IO error occurs.
232 COMMON /EEPARAMS_I/
233 & errorMessageUnit, standardMessageUnit, maxLengthPrt1D,
234 & scrUnit1, scrUnit2, eeDataUnit, modelDataUnit,
235 & numberOfProcs, pidIO, myProcId,
236 & myPx, myPy, myXGlobalLo, myYGlobalLo, nThreads,
237 & myBxLo, myBxHi, myByLo, myByHi,
238 & nTx, nTy, ioErrorCount
239 INTEGER errorMessageUnit
240 INTEGER standardMessageUnit
241 INTEGER maxLengthPrt1D
242 INTEGER scrUnit1
243 INTEGER scrUnit2
244 INTEGER eeDataUnit
245 INTEGER modelDataUnit
246 INTEGER ioErrorCount(MAX_NO_THREADS)
247 INTEGER myBxLo(MAX_NO_THREADS)
248 INTEGER myBxHi(MAX_NO_THREADS)
249 INTEGER myByLo(MAX_NO_THREADS)
250 INTEGER myByHi(MAX_NO_THREADS)
251 INTEGER myProcId
252 INTEGER myPx
253 INTEGER myPy
254 INTEGER myXGlobalLo
255 INTEGER myYGlobalLo
256 INTEGER nThreads
257 INTEGER nTx
258 INTEGER nTy
259 INTEGER numberOfProcs
260 INTEGER pidIO
261
262 CEH3 ;;; Local Variables: ***
263 CEH3 ;;; mode:fortran ***
264 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22