/[MITgcm]/MITgcm_contrib/nesting_sannino/code_nest_merged/EEPARAMS.h
ViewVC logotype

Annotation of /MITgcm_contrib/nesting_sannino/code_nest_merged/EEPARAMS.h

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


Revision 1.1 - (hide annotations) (download)
Wed Oct 21 00:00:27 2009 UTC (15 years, 9 months ago) by heimbach
Branch: MAIN
File MIME type: text/plain
Initial checkin of two-way nesting code by
Sannino et al., Ocean Modeling, 2009

1 heimbach 1.1 C $Header: /u/gcmpack/MITgcm/eesupp/inc/EEPARAMS.h,v 1.25 2009/04/21 16:00:53 jmc 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 = 2048 )
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    
69     C Symbolic values
70     C precXXXX :: precision used for I/O
71     INTEGER precFloat32
72     PARAMETER ( precFloat32 = 32 )
73     INTEGER precFloat64
74     PARAMETER ( precFloat64 = 64 )
75    
76     C UNSET_xxx :: Used to indicate variables that have not been given a value
77     Real*8 UNSET_FLOAT8
78     PARAMETER ( UNSET_FLOAT8 = 1.234567D5 )
79     Real*4 UNSET_FLOAT4
80     PARAMETER ( UNSET_FLOAT4 = 1.234567E5 )
81     _RL UNSET_RL
82     PARAMETER ( UNSET_RL = 1.234567D5 )
83     _RS UNSET_RS
84     PARAMETER ( UNSET_RS = 1.234567D5 )
85     INTEGER UNSET_I
86     PARAMETER ( UNSET_I = 123456789 )
87    
88     C debLevX :: used to decide when to print debug messages
89     INTEGER debLevZero
90     PARAMETER ( debLevZero=0 )
91     INTEGER debLevA
92     PARAMETER ( debLevA=1 )
93     INTEGER debLevB
94     PARAMETER ( debLevB=2 )
95    
96     C SQUEEZE_RIGHT - Flag indicating right blank space removal
97     C from text field.
98     C SQUEEZE_LEFT - Flag indicating left blank space removal
99     C from text field.
100     C SQUEEZE_BOTH - Flag indicating left and right blank
101     C space removal from text field.
102     C PRINT_MAP_XY - Flag indicating to plot map as XY slices
103     C PRINT_MAP_XZ - Flag indicating to plot map as XZ slices
104     C PRINT_MAP_YZ - Flag indicating to plot map as YZ slices
105     C commentCharacter - Variable used in column 1 of parameter
106     C files to indicate comments.
107     C INDEX_I - Variable used to select an index label
108     C INDEX_J for formatted input parameters.
109     C INDEX_K
110     C INDEX_NONE
111     CHARACTER*(*) SQUEEZE_RIGHT
112     PARAMETER ( SQUEEZE_RIGHT = 'R' )
113     CHARACTER*(*) SQUEEZE_LEFT
114     PARAMETER ( SQUEEZE_LEFT = 'L' )
115     CHARACTER*(*) SQUEEZE_BOTH
116     PARAMETER ( SQUEEZE_BOTH = 'B' )
117     CHARACTER*(*) PRINT_MAP_XY
118     PARAMETER ( PRINT_MAP_XY = 'XY' )
119     CHARACTER*(*) PRINT_MAP_XZ
120     PARAMETER ( PRINT_MAP_XZ = 'XZ' )
121     CHARACTER*(*) PRINT_MAP_YZ
122     PARAMETER ( PRINT_MAP_YZ = 'YZ' )
123     CHARACTER*(*) commentCharacter
124     PARAMETER ( commentCharacter = '#' )
125     INTEGER INDEX_I
126     INTEGER INDEX_J
127     INTEGER INDEX_K
128     INTEGER INDEX_NONE
129     PARAMETER ( INDEX_I = 1,
130     & INDEX_J = 2,
131     & INDEX_K = 3,
132     & INDEX_NONE = 4 )
133    
134     C EXCH_IGNORE_CORNERS - Flag to select ignoring or
135     C EXCH_UPDATE_CORNERS updating of corners during
136     C an edge exchange.
137     INTEGER EXCH_IGNORE_CORNERS
138     INTEGER EXCH_UPDATE_CORNERS
139     PARAMETER ( EXCH_IGNORE_CORNERS = 0,
140     & EXCH_UPDATE_CORNERS = 1 )
141    
142     C FORWARD_SIMULATION
143     C REVERSE_SIMULATION
144     C TANGENT_SIMULATION
145     INTEGER FORWARD_SIMULATION
146     INTEGER REVERSE_SIMULATION
147     INTEGER TANGENT_SIMULATION
148     PARAMETER ( FORWARD_SIMULATION = 0,
149     & REVERSE_SIMULATION = 1,
150     & TANGENT_SIMULATION = 2 )
151    
152     C-- COMMON /EEPARAMS_L/ Execution environment public logical variables.
153     C eeBootError - Flag indicating error during multi-processing
154     C eeEndError initialisation/termination.
155     C fatalError - Flag used to indicate that the model is ended with an error
156     C printMapIncludesZeros :: Flag that controls whether character constant
157     C map code ignores exact zero values.
158     C useCoupler - use Coupler for a multi-components set-up
159     C useNEST_PARENT
160     C useNEST_CHILD
161     COMMON /EEPARAMS_L/
162     & eeBootError, fatalError, eeEndError,
163     & printMapIncludesZeros,
164     & useCubedSphereExchange, useCoupler, useSETRLSTK, useSIGREG,
165     & useNEST_PARENT, useNEST_CHILD
166     LOGICAL eeBootError
167     LOGICAL eeEndError
168     LOGICAL fatalError
169     LOGICAL printMapIncludesZeros
170     LOGICAL useCubedSphereExchange
171     LOGICAL useCoupler
172     LOGICAL useSETRLSTK
173     LOGICAL useSIGREG
174     LOGICAL useNEST_PARENT
175     LOGICAL useNEST_CHILD
176    
177     C-- COMMON /EPARAMS_I/ Execution environment public integer variables.
178     C errorMessageUnit - Fortran IO unit for error messages
179     C standardMessageUnit - Fortran IO unit for informational messages
180     C maxLengthPrt1D :: maximum length for printing (to Std-Msg-Unit) 1-D array
181     C scrUnit1 - Scratch file 1 unit number
182     C scrUnit2 - Scratch file 2 unit number
183     C eeDataUnit - Unit # for reading "execution environment" parameter file.
184     C modelDataUnit - Unit number for reading "model" parameter file.
185     C numberOfProcs - Number of processes computing in parallel
186     C pidIO - Id of process to use for I/O.
187     C myBxLo, myBxHi - Extents of domain in blocks in X and Y
188     C myByLo, myByHi that each threads is responsble for.
189     C myProcId - My own "process" id.
190     C myPx - My X coord on the proc. grid.
191     C myPy - My Y coord on the proc. grid.
192     C myXGlobalLo - My bottom-left (south-west) x-index
193     C global domain. The x-coordinate of this
194     C point in for example m or degrees is *not*
195     C specified here. A model needs to provide a
196     C mechanism for deducing that information if it
197     C is needed.
198     C myYGlobalLo - My bottom-left (south-west) y-index in
199     C global domain. The y-coordinate of this
200     C point in for example m or degrees is *not*
201     C specified here. A model needs to provide a
202     C mechanism for deducing that information if it
203     C is needed.
204     C nThreads - No. of threads
205     C nTx - No. of threads in X
206     C nTy - No. of threads in Y
207     C This assumes a simple cartesian
208     C gridding of the threads which is not required elsewhere
209     C but that makes it easier.
210     C ioErrorCount - IO Error Counter. Set to zero initially and increased
211     C by one every time an IO error occurs.
212     COMMON /EEPARAMS_I/
213     & errorMessageUnit, standardMessageUnit, maxLengthPrt1D,
214     & scrUnit1, scrUnit2, eeDataUnit, modelDataUnit,
215     & numberOfProcs, pidIO, myProcId,
216     & myPx, myPy, myXGlobalLo, myYGlobalLo, nThreads,
217     & myBxLo, myBxHi, myByLo, myByHi,
218     & nTx, nTy, ioErrorCount
219     INTEGER errorMessageUnit
220     INTEGER standardMessageUnit
221     INTEGER maxLengthPrt1D
222     INTEGER scrUnit1
223     INTEGER scrUnit2
224     INTEGER eeDataUnit
225     INTEGER modelDataUnit
226     INTEGER ioErrorCount(MAX_NO_THREADS)
227     INTEGER myBxLo(MAX_NO_THREADS)
228     INTEGER myBxHi(MAX_NO_THREADS)
229     INTEGER myByLo(MAX_NO_THREADS)
230     INTEGER myByHi(MAX_NO_THREADS)
231     INTEGER myProcId
232     INTEGER myPx
233     INTEGER myPy
234     INTEGER myXGlobalLo
235     INTEGER myYGlobalLo
236     INTEGER nThreads
237     INTEGER nTx
238     INTEGER nTy
239     INTEGER numberOfProcs
240     INTEGER pidIO
241    
242     CEH3 ;;; Local Variables: ***
243     CEH3 ;;; mode:fortran ***
244     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22