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

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

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


Revision 1.32 - (hide annotations) (download)
Thu Apr 25 06:12:09 2013 UTC (11 years, 2 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint64p, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64g
Changes since 1.31: +2 -2 lines
File MIME type: text/plain
MAX_NO_PROCS = 8192 (Moore's law catching up)

1 dimitri 1.32 C $Header: /u/gcmpack/MITgcm/eesupp/inc/EEPARAMS.h,v 1.31 2012/08/06 16:50:51 jmc Exp $
2 adcroft 1.9 C $Name: $
3 cnh 1.10 CBOP
4     C !ROUTINE: EEPARAMS.h
5     C !INTERFACE:
6     C include "EEPARAMS.h"
7 cnh 1.1 C
8 cnh 1.10 C !DESCRIPTION:
9     C *==========================================================*
10 cnh 1.1 C | EEPARAMS.h |
11 cnh 1.10 C *==========================================================*
12 cnh 1.1 C | Parameters for "execution environemnt". These are used |
13 heimbach 1.12 C | by both the particular numerical model and the execution |
14     C | environment support routines. |
15 cnh 1.10 C *==========================================================*
16     CEOP
17 cnh 1.1
18 edhill 1.19 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 jmc 1.23 PARAMETER ( MAX_NO_THREADS = 4 )
36 edhill 1.19 INTEGER MAX_NO_PROCS
37 dimitri 1.32 PARAMETER ( MAX_NO_PROCS = 8192 )
38 edhill 1.19 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 jmc 1.24 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 jmc 1.31 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 jmc 1.24 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 jmc 1.30 INTEGER debLevA, debLevB, debLevC, debLevD, debLevE
98 jmc 1.24 PARAMETER ( debLevZero=0 )
99     PARAMETER ( debLevA=1 )
100     PARAMETER ( debLevB=2 )
101 jmc 1.30 PARAMETER ( debLevC=3 )
102     PARAMETER ( debLevD=4 )
103     PARAMETER ( debLevE=5 )
104 cnh 1.1
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 edhill 1.18 C commentCharacter - Variable used in column 1 of parameter
115     C files to indicate comments.
116 cnh 1.3 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 cnh 1.1 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 cnh 1.3 INTEGER INDEX_I
135     INTEGER INDEX_J
136 jmc 1.24 INTEGER INDEX_K
137 cnh 1.3 INTEGER INDEX_NONE
138     PARAMETER ( INDEX_I = 1,
139     & INDEX_J = 2,
140     & INDEX_K = 3,
141     & INDEX_NONE = 4 )
142 cnh 1.1
143 cnh 1.5 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 heimbach 1.11 C TANGENT_SIMULATION
154 cnh 1.5 INTEGER FORWARD_SIMULATION
155     INTEGER REVERSE_SIMULATION
156 heimbach 1.11 INTEGER TANGENT_SIMULATION
157 cnh 1.5 PARAMETER ( FORWARD_SIMULATION = 0,
158 heimbach 1.11 & REVERSE_SIMULATION = 1,
159     & TANGENT_SIMULATION = 2 )
160 cnh 1.5
161 cnh 1.1 C-- COMMON /EEPARAMS_L/ Execution environment public logical variables.
162 jmc 1.28 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 jmc 1.30 C debugMode :: controls printing of debug msg (sequence of S/R calls).
166 jmc 1.28 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 jmc 1.26 C useNEST_PARENT :: use Parent Nesting interface (pkg/nest_parent)
174     C useNEST_CHILD :: use Child Nesting interface (pkg/nest_child)
175 mlosch 1.29 C useOASIS :: use OASIS-coupler for a multi-components set-up.
176 jmc 1.25 COMMON /EEPARAMS_L/
177 jmc 1.30 c & eeBootError, fatalError, eeEndError,
178     & eeBootError, eeEndError, fatalError, debugMode,
179 jmc 1.28 & useSingleCpuIO, printMapIncludesZeros,
180     & useCubedSphereExchange, useCoupler,
181 mlosch 1.29 & useNEST_PARENT, useNEST_CHILD, useOASIS,
182 jmc 1.26 & useSETRLSTK, useSIGREG
183 cnh 1.1 LOGICAL eeBootError
184     LOGICAL eeEndError
185     LOGICAL fatalError
186 jmc 1.30 LOGICAL debugMode
187 jmc 1.28 LOGICAL useSingleCpuIO
188 jmc 1.25 LOGICAL printMapIncludesZeros
189 adcroft 1.9 LOGICAL useCubedSphereExchange
190 jmc 1.13 LOGICAL useCoupler
191 jmc 1.26 LOGICAL useNEST_PARENT
192     LOGICAL useNEST_CHILD
193 mlosch 1.29 LOGICAL useOASIS
194 edhill 1.17 LOGICAL useSETRLSTK
195 edhill 1.20 LOGICAL useSIGREG
196 cnh 1.1
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 jmc 1.25 C maxLengthPrt1D :: maximum length for printing (to Std-Msg-Unit) 1-D array
201 cnh 1.1 C scrUnit1 - Scratch file 1 unit number
202     C scrUnit2 - Scratch file 2 unit number
203 jmc 1.25 C eeDataUnit - Unit # for reading "execution environment" parameter file.
204 cnh 1.1 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 cnh 1.4 C ioErrorCount - IO Error Counter. Set to zero initially and increased
231     C by one every time an IO error occurs.
232 jmc 1.25 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 cnh 1.1 INTEGER eeDataUnit
245 jmc 1.25 INTEGER modelDataUnit
246 cnh 1.4 INTEGER ioErrorCount(MAX_NO_THREADS)
247 cnh 1.1 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 edhill 1.15
262     CEH3 ;;; Local Variables: ***
263     CEH3 ;;; mode:fortran ***
264     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22