/[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.34 - (hide annotations) (download)
Thu Dec 19 01:06:09 2013 UTC (10 years, 5 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 dimitri 1.34 C $Header: /u/gcmpack/MITgcm/eesupp/inc/EEPARAMS.h,v 1.33 2013/10/28 15:49:48 dimitri 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.33 PARAMETER ( MAX_NO_PROCS = 46800 )
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 dimitri 1.34 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 jmc 1.28 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 jmc 1.26 C useNEST_PARENT :: use Parent Nesting interface (pkg/nest_parent)
178     C useNEST_CHILD :: use Child Nesting interface (pkg/nest_child)
179 mlosch 1.29 C useOASIS :: use OASIS-coupler for a multi-components set-up.
180 jmc 1.25 COMMON /EEPARAMS_L/
181 jmc 1.30 c & eeBootError, fatalError, eeEndError,
182     & eeBootError, eeEndError, fatalError, debugMode,
183 dimitri 1.34 & useSingleCpuIO, useSingleCpuInput, printMapIncludesZeros,
184 jmc 1.28 & useCubedSphereExchange, useCoupler,
185 mlosch 1.29 & useNEST_PARENT, useNEST_CHILD, useOASIS,
186 jmc 1.26 & useSETRLSTK, useSIGREG
187 cnh 1.1 LOGICAL eeBootError
188     LOGICAL eeEndError
189     LOGICAL fatalError
190 jmc 1.30 LOGICAL debugMode
191 jmc 1.28 LOGICAL useSingleCpuIO
192 dimitri 1.34 LOGICAL useSingleCpuInput
193 jmc 1.25 LOGICAL printMapIncludesZeros
194 adcroft 1.9 LOGICAL useCubedSphereExchange
195 jmc 1.13 LOGICAL useCoupler
196 jmc 1.26 LOGICAL useNEST_PARENT
197     LOGICAL useNEST_CHILD
198 mlosch 1.29 LOGICAL useOASIS
199 edhill 1.17 LOGICAL useSETRLSTK
200 edhill 1.20 LOGICAL useSIGREG
201 cnh 1.1
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 jmc 1.25 C maxLengthPrt1D :: maximum length for printing (to Std-Msg-Unit) 1-D array
206 cnh 1.1 C scrUnit1 - Scratch file 1 unit number
207     C scrUnit2 - Scratch file 2 unit number
208 jmc 1.25 C eeDataUnit - Unit # for reading "execution environment" parameter file.
209 cnh 1.1 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 cnh 1.4 C ioErrorCount - IO Error Counter. Set to zero initially and increased
236     C by one every time an IO error occurs.
237 jmc 1.25 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 cnh 1.1 INTEGER eeDataUnit
250 jmc 1.25 INTEGER modelDataUnit
251 cnh 1.4 INTEGER ioErrorCount(MAX_NO_THREADS)
252 cnh 1.1 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 edhill 1.15
267     CEH3 ;;; Local Variables: ***
268     CEH3 ;;; mode:fortran ***
269     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22