/[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.34 - (show annotations) (download)
Thu Dec 19 01:06:09 2013 UTC (10 years, 6 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint64s, checkpoint64t
Changes since 1.33: +7 -2 lines
File MIME type: text/plain
useSingleCpuInput separates single-CPU input from single-CPU output

1 C $Header: /u/gcmpack/MITgcm/eesupp/inc/EEPARAMS.h,v 1.33 2013/10/28 15:49:48 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 useSingleCpuInput :: When useSingleCpuInput is set, EXF_INTERP_READ
170 C reads forcing files from master MPI process only.
171 C -- NOTE: read from main parameter file "data"
172 C and defaults to useSingleCpuInput = useSingleCpuIO
173 C printMapIncludesZeros :: Flag that controls whether character constant
174 C map code ignores exact zero values.
175 C useCubedSphereExchange :: use Cubed-Sphere topology domain.
176 C useCoupler :: use Coupler for a multi-components set-up.
177 C useNEST_PARENT :: use Parent Nesting interface (pkg/nest_parent)
178 C useNEST_CHILD :: use Child Nesting interface (pkg/nest_child)
179 C useOASIS :: use OASIS-coupler for a multi-components set-up.
180 COMMON /EEPARAMS_L/
181 c & eeBootError, fatalError, eeEndError,
182 & eeBootError, eeEndError, fatalError, debugMode,
183 & useSingleCpuIO, useSingleCpuInput, printMapIncludesZeros,
184 & useCubedSphereExchange, useCoupler,
185 & useNEST_PARENT, useNEST_CHILD, useOASIS,
186 & useSETRLSTK, useSIGREG
187 LOGICAL eeBootError
188 LOGICAL eeEndError
189 LOGICAL fatalError
190 LOGICAL debugMode
191 LOGICAL useSingleCpuIO
192 LOGICAL useSingleCpuInput
193 LOGICAL printMapIncludesZeros
194 LOGICAL useCubedSphereExchange
195 LOGICAL useCoupler
196 LOGICAL useNEST_PARENT
197 LOGICAL useNEST_CHILD
198 LOGICAL useOASIS
199 LOGICAL useSETRLSTK
200 LOGICAL useSIGREG
201
202 C-- COMMON /EPARAMS_I/ Execution environment public integer variables.
203 C errorMessageUnit - Fortran IO unit for error messages
204 C standardMessageUnit - Fortran IO unit for informational messages
205 C maxLengthPrt1D :: maximum length for printing (to Std-Msg-Unit) 1-D array
206 C scrUnit1 - Scratch file 1 unit number
207 C scrUnit2 - Scratch file 2 unit number
208 C eeDataUnit - Unit # for reading "execution environment" parameter file.
209 C modelDataUnit - Unit number for reading "model" parameter file.
210 C numberOfProcs - Number of processes computing in parallel
211 C pidIO - Id of process to use for I/O.
212 C myBxLo, myBxHi - Extents of domain in blocks in X and Y
213 C myByLo, myByHi that each threads is responsble for.
214 C myProcId - My own "process" id.
215 C myPx - My X coord on the proc. grid.
216 C myPy - My Y coord on the proc. grid.
217 C myXGlobalLo - My bottom-left (south-west) x-index
218 C global domain. The x-coordinate of this
219 C point in for example m or degrees is *not*
220 C specified here. A model needs to provide a
221 C mechanism for deducing that information if it
222 C is needed.
223 C myYGlobalLo - My bottom-left (south-west) y-index in
224 C global domain. The y-coordinate of this
225 C point in for example m or degrees is *not*
226 C specified here. A model needs to provide a
227 C mechanism for deducing that information if it
228 C is needed.
229 C nThreads - No. of threads
230 C nTx - No. of threads in X
231 C nTy - No. of threads in Y
232 C This assumes a simple cartesian
233 C gridding of the threads which is not required elsewhere
234 C but that makes it easier.
235 C ioErrorCount - IO Error Counter. Set to zero initially and increased
236 C by one every time an IO error occurs.
237 COMMON /EEPARAMS_I/
238 & errorMessageUnit, standardMessageUnit, maxLengthPrt1D,
239 & scrUnit1, scrUnit2, eeDataUnit, modelDataUnit,
240 & numberOfProcs, pidIO, myProcId,
241 & myPx, myPy, myXGlobalLo, myYGlobalLo, nThreads,
242 & myBxLo, myBxHi, myByLo, myByHi,
243 & nTx, nTy, ioErrorCount
244 INTEGER errorMessageUnit
245 INTEGER standardMessageUnit
246 INTEGER maxLengthPrt1D
247 INTEGER scrUnit1
248 INTEGER scrUnit2
249 INTEGER eeDataUnit
250 INTEGER modelDataUnit
251 INTEGER ioErrorCount(MAX_NO_THREADS)
252 INTEGER myBxLo(MAX_NO_THREADS)
253 INTEGER myBxHi(MAX_NO_THREADS)
254 INTEGER myByLo(MAX_NO_THREADS)
255 INTEGER myByHi(MAX_NO_THREADS)
256 INTEGER myProcId
257 INTEGER myPx
258 INTEGER myPy
259 INTEGER myXGlobalLo
260 INTEGER myYGlobalLo
261 INTEGER nThreads
262 INTEGER nTx
263 INTEGER nTy
264 INTEGER numberOfProcs
265 INTEGER pidIO
266
267 CEH3 ;;; Local Variables: ***
268 CEH3 ;;; mode:fortran ***
269 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22